render: Refactor Events System to Make Module Standalone

* Refactor the events used in lib/render/sdl to be more general-purpose
  to make librender a stand-alone library separate from Doodle.
menus
Noah 2019-12-22 14:11:01 -08:00
parent 3b01592e85
commit 5450f40b3c
2 changed files with 7 additions and 7 deletions

View File

@ -100,7 +100,7 @@ func (mw *MainWindow) Loop() error {
return fmt.Errorf("event poll error: %s", err) return fmt.Errorf("event poll error: %s", err)
} }
if ev.Resized.Now { if ev.WindowResized {
w, h := mw.engine.WindowSize() w, h := mw.engine.WindowSize()
if w != mw.w || h != mw.h { if w != mw.w || h != mw.h {
mw.w = w mw.w = w

View File

@ -4,8 +4,8 @@ import (
"errors" "errors"
"sync" "sync"
"git.kirsle.net/apps/doodle/lib/events"
"git.kirsle.net/apps/doodle/lib/render" "git.kirsle.net/apps/doodle/lib/render"
"git.kirsle.net/apps/doodle/lib/render/event"
) )
// Event is a named event that the supervisor will send. // Event is a named event that the supervisor will send.
@ -79,11 +79,11 @@ var (
// //
// Useful errors returned by this may be: // Useful errors returned by this may be:
// - ErrStopPropagation // - ErrStopPropagation
func (s *Supervisor) Loop(ev *events.State) error { func (s *Supervisor) Loop(ev *event.State) error {
var ( var (
XY = render.Point{ XY = render.Point{
X: ev.CursorX.Now, X: int32(ev.CursorX),
Y: ev.CursorY.Now, Y: int32(ev.CursorY),
} }
) )
@ -93,7 +93,7 @@ func (s *Supervisor) Loop(ev *events.State) error {
// If we are dragging something around, do not trigger any mouse events // If we are dragging something around, do not trigger any mouse events
// to other widgets but DO notify any widget we dropped on top of! // to other widgets but DO notify any widget we dropped on top of!
if s.dd.IsDragging() { if s.dd.IsDragging() {
if !ev.Button1.Now && !ev.Button2.Now { if !ev.Button1 && !ev.Button3 {
// The mouse has been released. TODO: make mouse button important? // The mouse has been released. TODO: make mouse button important?
for _, child := range hovering { for _, child := range hovering {
child.widget.Event(Drop, XY) child.widget.Event(Drop, XY)
@ -121,7 +121,7 @@ func (s *Supervisor) Loop(ev *events.State) error {
} }
_, isClicked := s.clicked[id] _, isClicked := s.clicked[id]
if ev.Button1.Now { if ev.Button1 {
if !isClicked { if !isClicked {
w.Event(MouseDown, XY) w.Event(MouseDown, XY)
s.clicked[id] = nil s.clicked[id] = nil