Skip to content

Commit f86a514

Browse files
authored
Major changes to code (#65)
1 parent d5a29fc commit f86a514

510 files changed

Lines changed: 29844 additions & 12817 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/go.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Setup Go
1818
uses: actions/setup-go@v5
1919
with:
20-
go-version: "1.23"
20+
go-version: "1.25"
2121

2222
- name: Run Tests
23-
run: go run github.com/onsi/ginkgo/v2/ginkgo -r -randomize-all
23+
run: go tool ginkgo -r -randomize-all

app/controller.go

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package app
22

3+
import (
4+
"slices"
5+
)
6+
37
// Controller is a mechanism through which the user code can be
48
// notified of changes to the application window.
59
//
@@ -33,6 +37,12 @@ type Controller interface {
3337
// not be propagated to other potential receivers, otherwise return false.
3438
OnMouseEvent(window Window, event MouseEvent) bool
3539

40+
// OnGamepadEvent is called whenever a gamepad event has occurred.
41+
//
42+
// Return true to indicate that the event has been consumed and should
43+
// not be propagated to other potential receivers, otherwise return false.
44+
OnGamepadEvent(window Window, event GamepadEvent) bool
45+
3646
// OnClipboardEvent is called whenever the clipboard content has been
3747
// requested and the underlying window has managed to retrieve it.
3848
OnClipboardEvent(window Window, event ClipboardEvent) bool
@@ -71,6 +81,8 @@ func (NopController) OnKeyboardEvent(window Window, event KeyboardEvent) bool {
7181

7282
func (NopController) OnMouseEvent(window Window, event MouseEvent) bool { return false }
7383

84+
func (NopController) OnGamepadEvent(window Window, event GamepadEvent) bool { return false }
85+
7486
func (NopController) OnClipboardEvent(window Window, event ClipboardEvent) bool { return false }
7587

7688
func (NopController) OnRender(window Window) {}
@@ -97,67 +109,76 @@ type LayeredController struct {
97109
}
98110

99111
func (c *LayeredController) OnCreate(window Window) {
100-
for i := 0; i < len(c.layers); i++ {
101-
c.layers[i].OnCreate(window)
112+
for _, layer := range c.layers {
113+
layer.OnCreate(window)
102114
}
103115
}
104116

105117
func (c *LayeredController) OnResize(window Window, width, height int) {
106-
for i := 0; i < len(c.layers); i++ {
107-
c.layers[i].OnResize(window, width, height)
118+
for _, layer := range c.layers {
119+
layer.OnResize(window, width, height)
108120
}
109121
}
110122

111123
func (c *LayeredController) OnFramebufferResize(window Window, width, height int) {
112-
for i := 0; i < len(c.layers); i++ {
113-
c.layers[i].OnFramebufferResize(window, width, height)
124+
for _, layer := range c.layers {
125+
layer.OnFramebufferResize(window, width, height)
114126
}
115127
}
116128

117129
func (c *LayeredController) OnKeyboardEvent(window Window, event KeyboardEvent) bool {
118-
for i := len(c.layers) - 1; i >= 0; i-- {
119-
if c.layers[i].OnKeyboardEvent(window, event) {
130+
for _, layer := range slices.Backward(c.layers) {
131+
if layer.OnKeyboardEvent(window, event) {
120132
return true
121133
}
122134
}
123135
return false
124136
}
125137

126138
func (c *LayeredController) OnMouseEvent(window Window, event MouseEvent) bool {
127-
for i := len(c.layers) - 1; i >= 0; i-- {
128-
if c.layers[i].OnMouseEvent(window, event) {
139+
for _, layer := range slices.Backward(c.layers) {
140+
if layer.OnMouseEvent(window, event) {
141+
return true
142+
}
143+
}
144+
return false
145+
}
146+
147+
func (c *LayeredController) OnGamepadEvent(window Window, event GamepadEvent) bool {
148+
for _, layer := range slices.Backward(c.layers) {
149+
if layer.OnGamepadEvent(window, event) {
129150
return true
130151
}
131152
}
132153
return false
133154
}
134155

135156
func (c *LayeredController) OnClipboardEvent(window Window, event ClipboardEvent) bool {
136-
for i := len(c.layers) - 1; i >= 0; i-- {
137-
if c.layers[i].OnClipboardEvent(window, event) {
157+
for _, layer := range slices.Backward(c.layers) {
158+
if layer.OnClipboardEvent(window, event) {
138159
return true
139160
}
140161
}
141162
return false
142163
}
143164

144165
func (c *LayeredController) OnRender(window Window) {
145-
for i := 0; i < len(c.layers); i++ {
146-
c.layers[i].OnRender(window)
166+
for _, layer := range c.layers {
167+
layer.OnRender(window)
147168
}
148169
}
149170

150171
func (c *LayeredController) OnCloseRequested(window Window) bool {
151-
for i := len(c.layers) - 1; i >= 0; i-- {
152-
if !c.layers[i].OnCloseRequested(window) {
172+
for _, layer := range slices.Backward(c.layers) {
173+
if !layer.OnCloseRequested(window) {
153174
return false
154175
}
155176
}
156177
return true
157178
}
158179

159180
func (c *LayeredController) OnDestroy(window Window) {
160-
for i := len(c.layers) - 1; i >= 0; i-- {
161-
c.layers[i].OnDestroy(window)
181+
for _, layer := range slices.Backward(c.layers) {
182+
layer.OnDestroy(window)
162183
}
163184
}

0 commit comments

Comments
 (0)