summaryrefslogtreecommitdiff
path: root/multilineentry.go
diff options
context:
space:
mode:
Diffstat (limited to 'multilineentry.go')
-rw-r--r--multilineentry.go97
1 files changed, 0 insertions, 97 deletions
diff --git a/multilineentry.go b/multilineentry.go
deleted file mode 100644
index 88a75c4..0000000
--- a/multilineentry.go
+++ /dev/null
@@ -1,97 +0,0 @@
-// 12 december 2015
-
-// TODO typing in entry in OS X crashes libui
-// I've had similar issues with checkboxes on libui
-// something's wrong with NSMapTable
-
-package ui
-
-import (
- "unsafe"
-)
-
-// #include "ui.h"
-// extern void doMultilineEntryOnChanged(uiMultilineEntry *, void *);
-// // see golang/go#19835
-// typedef void (*multilineEntryCallback)(uiMultilineEntry *, void *);
-import "C"
-
-// MultilineEntry is a Control that represents a space that the user
-// can type multiple lines of text into.
-type MultilineEntry struct {
- ControlBase
- e *C.uiMultilineEntry
- onChanged func(*MultilineEntry)
-}
-
-func finishNewMultilineEntry(ee *C.uiMultilineEntry) *MultilineEntry {
- m := new(MultilineEntry)
-
- m.e = ee
-
- C.uiMultilineEntryOnChanged(m.e, C.multilineEntryCallback(C.doMultilineEntryOnChanged), nil)
-
- m.ControlBase = NewControlBase(m, uintptr(unsafe.Pointer(m.e)))
- return m
-}
-
-// NewMultilineEntry creates a new MultilineEntry.
-// The MultilineEntry soft-word-wraps and has no horizontal
-// scrollbar.
-func NewMultilineEntry() *MultilineEntry {
- return finishNewMultilineEntry(C.uiNewMultilineEntry())
-}
-
-// NewNonWrappingMultilineEntry creates a new MultilineEntry.
-// The MultilineEntry does not word-wrap and thus has horizontal
-// scrollbar.
-func NewNonWrappingMultilineEntry() *MultilineEntry {
- return finishNewMultilineEntry(C.uiNewNonWrappingMultilineEntry())
-}
-
-// Text returns the MultilineEntry's text.
-func (m *MultilineEntry) Text() string {
- ctext := C.uiMultilineEntryText(m.e)
- text := C.GoString(ctext)
- C.uiFreeText(ctext)
- return text
-}
-
-// SetText sets the MultilineEntry's text to text.
-func (m *MultilineEntry) SetText(text string) {
- ctext := C.CString(text)
- C.uiMultilineEntrySetText(m.e, ctext)
- freestr(ctext)
-}
-
-// Append adds text to the end of the MultilineEntry's text.
-// TODO selection and scroll behavior
-func (m *MultilineEntry) Append(text string) {
- ctext := C.CString(text)
- C.uiMultilineEntryAppend(m.e, ctext)
- freestr(ctext)
-}
-
-// OnChanged registers f to be run when the user makes a change to
-// the MultilineEntry. Only one function can be registered at a time.
-func (m *MultilineEntry) OnChanged(f func(*MultilineEntry)) {
- m.onChanged = f
-}
-
-//export doMultilineEntryOnChanged
-func doMultilineEntryOnChanged(ee *C.uiMultilineEntry, data unsafe.Pointer) {
- m := ControlFromLibui(uintptr(unsafe.Pointer(ee))).(*MultilineEntry)
- if m.onChanged != nil {
- m.onChanged(m)
- }
-}
-
-// ReadOnly returns whether the MultilineEntry can be changed.
-func (m *MultilineEntry) ReadOnly() bool {
- return tobool(C.uiMultilineEntryReadOnly(m.e))
-}
-
-// SetReadOnly sets whether the MultilineEntry can be changed.
-func (m *MultilineEntry) SetReadOnly(ro bool) {
- C.uiMultilineEntrySetReadOnly(m.e, frombool(ro))
-}