summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--label.go85
-rw-r--r--zz_test.go7
2 files changed, 87 insertions, 5 deletions
diff --git a/label.go b/label.go
new file mode 100644
index 0000000..e143d50
--- /dev/null
+++ b/label.go
@@ -0,0 +1,85 @@
+// 12 december 2015
+
+package ui
+
+import (
+ "unsafe"
+)
+
+// #include "ui.h"
+import "C"
+
+// Label is a Control that represents a line of text that cannot be
+// interacted with. TODO rest of documentation.
+type Label struct {
+ c *C.uiControl
+ l *C.uiLabel
+}
+
+// NewLabel creates a new Label with the given text.
+func NewLabel(text string) *Label {
+ l := new(Label)
+
+ ctext := C.CString(text)
+ l.l = C.uiNewLabel(ctext)
+ l.c = (*C.uiControl)(unsafe.Pointer(l.l))
+ freestr(ctext)
+
+ return l
+}
+
+// Destroy destroys the Label.
+func (l *Label) Destroy() {
+ C.uiControlDestroy(l.c)
+}
+
+// LibuiControl returns the libui uiControl pointer that backs
+// the Window. This is only used by package ui itself and should
+// not be called by programs.
+func (l *Label) LibuiControl() uintptr {
+ return uintptr(unsafe.Pointer(l.c))
+}
+
+// Handle returns the OS-level handle associated with this Label.
+// On Windows this is an HWND of a standard Windows API STATIC
+// class (as provided by Common Controls version 6).
+// On GTK+ this is a pointer to a GtkLabel.
+// On OS X this is a pointer to a NSTextField.
+func (l *Label) Handle() uintptr {
+ return uintptr(C.uiControlHandle(l.c))
+}
+
+// Show shows the Label.
+func (l *Label) Show() {
+ C.uiControlShow(l.c)
+}
+
+// Hide hides the Label.
+func (l *Label) Hide() {
+ C.uiControlHide(l.c)
+}
+
+// Enable enables the Label.
+func (l *Label) Enable() {
+ C.uiControlEnable(l.c)
+}
+
+// Disable disables the Label.
+func (l *Label) Disable() {
+ C.uiControlDisable(l.c)
+}
+
+// Text returns the Label's text.
+func (l *Label) Text() string {
+ ctext := C.uiLabelText(l.l)
+ text := C.GoString(ctext)
+ C.uiFreeText(ctext)
+ return text
+}
+
+// SetText sets the Label's text to text.
+func (l *Label) SetText(text string) {
+ ctext := C.CString(text)
+ C.uiLabelSetText(l.l, ctext)
+ freestr(ctext)
+}
diff --git a/zz_test.go b/zz_test.go
index d35ba1a..0b24300 100644
--- a/zz_test.go
+++ b/zz_test.go
@@ -11,11 +11,8 @@ func TestIt(t *testing.T) {
Quit()
return true
})
- e := NewEntry()
- e.OnChanged(func(*Entry) {
- w.SetTitle(e.Text())
- })
- w.SetChild(e)
+ l := NewLabel("A Label")
+ w.SetChild(l)
w.Show()
})
if err != nil {