diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-20 17:08:47 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-20 17:08:47 -0400 |
| commit | 8b6b8ec06c18360ab38d41e6ecca9a641fb68af2 (patch) | |
| tree | 513aeac9de7179e1a2d9baa139ac91cd1085219f /redo/textfield_darwin.go | |
| parent | 35e788aa7fd2b27750bfcb654e46e35c6bc9fae8 (diff) | |
Implemented TextField.Invalid() on Mac OS X.
Diffstat (limited to 'redo/textfield_darwin.go')
| -rw-r--r-- | redo/textfield_darwin.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/redo/textfield_darwin.go b/redo/textfield_darwin.go index 1b6ff82..cbe5f8b 100644 --- a/redo/textfield_darwin.go +++ b/redo/textfield_darwin.go @@ -12,6 +12,7 @@ import "C" type textfield struct { _id C.id changed *event + invalid C.id } func finishNewTextField(id C.id) *textfield { @@ -24,7 +25,7 @@ func finishNewTextField(id C.id) *textfield { } func newTextField() *textfield { - return finishNewTextField(C.newTextField() + return finishNewTextField(C.newTextField()) } func newPasswordField() *textfield { @@ -46,7 +47,18 @@ func (t *textfield) OnChanged(f func()) { } func (t *textfield) Invalid(reason string) { - // TODO + // TODO disable animations if reason is still valid + // TODO don't steal focus + if t.invalid != nil { + C.textfieldCloseInvalidPopover(t.invalid) + t.invalid = nil + } + if reason == "" { + return + } + creason := C.CString(reason) + defer C.free(unsafe.Pointer(creason)) + t.invalid = C.textfieldOpenInvalidPopover(t._id, creason) } //export textfieldChanged |
