Skip to content

Commit 1422e22

Browse files
committed
debugui: refactoring
1 parent e95e73a commit 1422e22

File tree

3 files changed

+36
-68
lines changed

3 files changed

+36
-68
lines changed

event.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,6 @@ func (o *eventHandler) On(f func()) {
1919
}
2020
}
2121

22-
type preprendedEventHandler struct {
23-
e EventHandler
24-
f func()
25-
}
26-
27-
func (o *preprendedEventHandler) On(f func()) {
28-
o.e.On(func() {
29-
if o.f != nil {
30-
o.f()
31-
}
32-
f()
33-
})
34-
}
35-
3622
type nullEventHandler struct{}
3723

3824
func (n *nullEventHandler) On(func()) {}

slider.go

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,13 @@ func (c *Context) slider(value *int, low, high, step int, id WidgetID, opt optio
5050
last := *value
5151
v := last
5252

53-
e, err := c.numberTextField(&v, id)
54-
if err != nil {
53+
if err := c.numberTextField(&v, id); err != nil {
5554
return nil, err
5655
}
57-
if e != nil {
58-
e.On(func() {
59-
*value = v
60-
})
56+
if c.numberEdit == id {
6157
return nil, nil
6258
}
59+
*value = v
6360

6461
return c.widget(id, opt, func(bounds image.Rectangle, wasFocused bool) (bool, error) {
6562
var res bool
@@ -93,16 +90,13 @@ func (c *Context) sliderF(value *float64, low, high, step float64, digits int, i
9390
last := *value
9491
v := last
9592

96-
e, err := c.numberTextFieldF(&v, id)
97-
if err != nil {
93+
if err := c.numberTextFieldF(&v, id); err != nil {
9894
return nil, err
9995
}
100-
if e != nil {
101-
e.On(func() {
102-
*value = v
103-
})
96+
if c.numberEdit == id {
10497
return nil, nil
10598
}
99+
*value = v
106100

107101
return c.widget(id, opt, func(bounds image.Rectangle, wasFocused bool) (bool, error) {
108102
var res bool

textfield.go

Lines changed: 30 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -152,12 +152,10 @@ func (c *Context) NumberFieldF(value *float64, step float64, digits int) EventHa
152152
func (c *Context) numberField(value *int, step int, id WidgetID, opt option) (EventHandler, error) {
153153
last := *value
154154

155-
e, err := c.numberTextField(value, id)
156-
if err != nil {
155+
if err := c.numberTextField(value, id); err != nil {
157156
return nil, err
158157
}
159-
if e != nil {
160-
e.On(func() {})
158+
if c.numberEdit == id {
161159
return nil, nil
162160
}
163161

@@ -182,12 +180,10 @@ func (c *Context) numberField(value *int, step int, id WidgetID, opt option) (Ev
182180
func (c *Context) numberFieldF(value *float64, step float64, digits int, id WidgetID, opt option) (EventHandler, error) {
183181
last := *value
184182

185-
oner, err := c.numberTextFieldF(value, id)
186-
if err != nil {
183+
if err := c.numberTextFieldF(value, id); err != nil {
187184
return nil, err
188185
}
189-
if oner != nil {
190-
oner.On(func() {})
186+
if c.numberEdit == id {
191187
return nil, nil
192188
}
193189

@@ -209,60 +205,52 @@ func (c *Context) numberFieldF(value *float64, step float64, digits int, id Widg
209205
})
210206
}
211207

212-
func (c *Context) numberTextField(value *int, id WidgetID) (EventHandler, error) {
213-
if c.pointing.justPressed() && ebiten.IsKeyPressed(ebiten.KeyShift) &&
214-
c.hover == id {
208+
func (c *Context) numberTextField(value *int, id WidgetID) error {
209+
if c.pointing.justPressed() && ebiten.IsKeyPressed(ebiten.KeyShift) && c.hover == id {
215210
c.numberEdit = id
216211
c.numberEditBuf = fmt.Sprintf("%d", *value)
217212
}
218213
if c.numberEdit == id {
219214
e, err := c.textFieldRaw(&c.numberEditBuf, id, 0)
220215
if err != nil {
221-
return nil, err
216+
return err
222217
}
223-
return &preprendedEventHandler{
224-
e: e,
225-
f: func() {
226-
if e != nil || c.focus != id {
227-
nval, err := strconv.ParseInt(c.numberEditBuf, 10, 64)
228-
if err != nil {
229-
nval = 0
230-
}
231-
*value = int(nval)
232-
c.numberEdit = emptyWidgetID
218+
if e != nil {
219+
e.On(func() {
220+
nval, err := strconv.ParseInt(c.numberEditBuf, 10, 64)
221+
if err != nil {
222+
nval = 0
233223
}
234-
},
235-
}, nil
224+
*value = int(nval)
225+
c.numberEdit = emptyWidgetID
226+
})
227+
}
236228
}
237-
return nil, nil
229+
return nil
238230
}
239231

240-
func (c *Context) numberTextFieldF(value *float64, id WidgetID) (EventHandler, error) {
241-
if c.pointing.justPressed() && ebiten.IsKeyPressed(ebiten.KeyShift) &&
242-
c.hover == id {
232+
func (c *Context) numberTextFieldF(value *float64, id WidgetID) error {
233+
if c.pointing.justPressed() && ebiten.IsKeyPressed(ebiten.KeyShift) && c.hover == id {
243234
c.numberEdit = id
244235
c.numberEditBuf = fmt.Sprintf(realFmt, *value)
245236
}
246237
if c.numberEdit == id {
247238
e, err := c.textFieldRaw(&c.numberEditBuf, id, 0)
248239
if err != nil {
249-
return nil, err
240+
return err
250241
}
251-
return &preprendedEventHandler{
252-
e: e,
253-
f: func() {
254-
if e != nil || c.focus != id {
255-
nval, err := strconv.ParseFloat(c.numberEditBuf, 64)
256-
if err != nil {
257-
nval = 0
258-
}
259-
*value = float64(nval)
260-
c.numberEdit = emptyWidgetID
242+
if e != nil {
243+
e.On(func() {
244+
nval, err := strconv.ParseFloat(c.numberEditBuf, 64)
245+
if err != nil {
246+
nval = 0
261247
}
262-
},
263-
}, nil
248+
*value = float64(nval)
249+
c.numberEdit = emptyWidgetID
250+
})
251+
}
264252
}
265-
return nil, nil
253+
return nil
266254
}
267255

268256
func formatNumber(v float64, digits int) string {

0 commit comments

Comments
 (0)