From 348b3f70327e1bbf35e9db455a5939f7197b17d9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 26 Jul 2014 08:52:33 -0400 Subject: [PATCH] Implemented TextField on GTK+. --- redo/controls_unix.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/redo/controls_unix.go b/redo/controls_unix.go index 4867e7d..0761fa1 100644 --- a/redo/controls_unix.go +++ b/redo/controls_unix.go @@ -120,3 +120,36 @@ func (c *checkbox) Checked() bool { func (c *checkbox) SetChecked(checked bool) { C.gtk_toggle_button_set_active(c.toggle, togbool(checked)) } + +type textField struct { + *widgetbase + entry *C.GtkEntry +} + +func startNewTextField() *textField { + w := C.gtk_entry_new() + return &textField{ + widgetbase: newWidget(w), + entry: (*C.GtkEntry)(unsafe.Pointer(w)), + } +} + +func newTextField() *textField { + return startNewTextField() +} + +func newPasswordField() *textField { + t := startNewTextField() + C.gtk_entry_set_visibility(t.entry, C.FALSE) + return t +} + +func (t *textField) Text() string { + return fromgstr(C.gtk_entry_get_text(t.entry)) +} + +func (t *textField) SetText(text string) { + ctext := togstr(text) + defer freegstr(ctext) + C.gtk_entry_set_text(t.entry, ctext) +}