From 8b6b8ec06c18360ab38d41e6ecca9a641fb68af2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 20 Aug 2014 17:08:47 -0400 Subject: Implemented TextField.Invalid() on Mac OS X. --- redo/textfield_darwin.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'redo/textfield_darwin.go') 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 -- cgit v1.2.3