diff options
| author | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2014-08-30 23:02:02 -0400 |
| commit | 77bf566ebbcb62acd4d08d905d9542d6ff9b6b80 (patch) | |
| tree | eeb8e72bc3bf57f5be7f0c0af4319189ac6de838 /control_windows.go | |
| parent | 155899c65ed32245e2ccad4197a10c77017d835b (diff) | |
...in with the new.
Diffstat (limited to 'control_windows.go')
| -rw-r--r-- | control_windows.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/control_windows.go b/control_windows.go new file mode 100644 index 0000000..564d8d4 --- /dev/null +++ b/control_windows.go @@ -0,0 +1,49 @@ +// 30 july 2014 + +package ui + +// #include "winapi_windows.h" +import "C" + +type controlPrivate interface { + hwnd() C.HWND + Control +} + +type controlParent struct { + c *container +} + +func basesetParent(c controlPrivate, p *controlParent) { + C.controlSetParent(c.hwnd(), p.c.hwnd) + p.c.nchildren++ +} + +// don't specify basepreferredSize; it is custom on ALL controls + +func basecommitResize(c controlPrivate, a *allocation, d *sizing) { + C.moveWindow(c.hwnd(), C.int(a.x), C.int(a.y), C.int(a.width), C.int(a.height)) +} + +func basegetAuxResizeInfo(c controlPrivate, d *sizing) { + // do nothing +} + +// these are provided for convenience + +type textableControl interface { + controlPrivate + textlen() C.LONG + settextlen(C.LONG) +} + +func baseText(c textableControl) string { + return getWindowText(c.hwnd()) +} + +func baseSetText(c textableControl, text string) { + hwnd := c.hwnd() + t := toUTF16(text) + C.setWindowText(hwnd, t) + c.settextlen(C.controlTextLength(hwnd, t)) +} |
