diff options
Diffstat (limited to 'redo/textfield_darwin.go')
| -rw-r--r-- | redo/textfield_darwin.go | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/redo/textfield_darwin.go b/redo/textfield_darwin.go index 22a97cf..3ea3997 100644 --- a/redo/textfield_darwin.go +++ b/redo/textfield_darwin.go @@ -10,13 +10,17 @@ import ( import "C" type textfield struct { - _id C.id + _id C.id + changed *event } func newTextField() *textfield { - return &textfield{ - _id: C.newTextField(), + t := &textfield{ + _id: C.newTextField(), + changed: newEvent(), } + C.textfieldSetDelegate(t._id, unsafe.Pointer(t)) + return t } func newPasswordField() *textfield { @@ -35,6 +39,21 @@ func (t *textfield) SetText(text string) { C.textFieldSetText(t._id, ctext) } +func (t *textfield) OnChanged(f func()) { + t.changed.set(f) +} + +func (t *textfield) Invalid(reason string) { + // TODO +} + +//export textfieldChanged +func textfieldChanged(data unsafe.Pointer) { + t := (*textfield)(data) +println("changed") + t.changed.fire() +} + func (t *textfield) id() C.id { return t._id } |
