ebiten/ui/cocoa/window_events.go

45 lines
1.0 KiB
Go
Raw Normal View History

2013-12-10 14:12:39 +01:00
package cocoa
import (
"github.com/hajimehoshi/go-ebiten/ui"
)
type windowEvents struct {
screenSizeUpdated chan ui.ScreenSizeUpdatedEvent // initialized lazily
inputStateUpdated chan ui.InputStateUpdatedEvent // initialized lazily
}
func (w *windowEvents) ScreenSizeUpdated() <-chan ui.ScreenSizeUpdatedEvent {
if w.screenSizeUpdated != nil {
return w.screenSizeUpdated
}
w.screenSizeUpdated = make(chan ui.ScreenSizeUpdatedEvent)
return w.screenSizeUpdated
}
func (w *windowEvents) notifyScreenSizeUpdated(e ui.ScreenSizeUpdatedEvent) {
if w.screenSizeUpdated == nil {
return
}
go func() {
w.screenSizeUpdated <- e
}()
}
func (w *windowEvents) InputStateUpdated() <-chan ui.InputStateUpdatedEvent {
if w.inputStateUpdated != nil {
return w.inputStateUpdated
}
w.inputStateUpdated = make(chan ui.InputStateUpdatedEvent)
return w.inputStateUpdated
}
func (w *windowEvents) notifyInputStateUpdated(e ui.InputStateUpdatedEvent) {
if w.inputStateUpdated == nil {
return
}
go func() {
w.inputStateUpdated <- e
}()
}