summaryrefslogtreecommitdiff
path: root/redo/textfield_darwin.go
diff options
context:
space:
mode:
Diffstat (limited to 'redo/textfield_darwin.go')
-rw-r--r--redo/textfield_darwin.go25
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
}