diff options
| author | Pietro Gagliardi <[email protected]> | 2018-08-11 18:39:18 -0400 |
|---|---|---|
| committer | Pietro Gagliardi <[email protected]> | 2018-08-11 18:39:18 -0400 |
| commit | 485c946ad8961f836edb191eed60248f2ca6b617 (patch) | |
| tree | 05da1a286c8dc8dfd0adc57f154de57c8fe7128b /box.go | |
| parent | 6700b2ec544d813c91e5493e43e6b8c973aaf236 (diff) | |
Moved all the Go files back out of the way. There needs to be a better way.
Diffstat (limited to 'box.go')
| -rw-r--r-- | box.go | 121 |
1 files changed, 0 insertions, 121 deletions
@@ -1,121 +0,0 @@ -// 12 december 2015 - -package ui - -import ( - "unsafe" -) - -// #include "ui.h" -import "C" - -// Box is a Control that holds a group of Controls horizontally -// or vertically. If horizontally, then all controls have the same -// height. If vertically, then all controls have the same width. -// By default, each control has its preferred width (horizontal) -// or height (vertical); if a control is marked "stretchy", it will -// take whatever space is left over. If multiple controls are marked -// stretchy, they will be given equal shares of the leftover space. -// There can also be space between each control ("padding"). -type Box struct { - c *C.uiControl - b *C.uiBox - - children []Control -} - -// NewHorizontalBox creates a new horizontal Box. -func NewHorizontalBox() *Box { - b := new(Box) - - b.b = C.uiNewHorizontalBox() - b.c = (*C.uiControl)(unsafe.Pointer(b.b)) - - return b -} - -// NewVerticalBox creates a new vertical Box. -func NewVerticalBox() *Box { - b := new(Box) - - b.b = C.uiNewVerticalBox() - b.c = (*C.uiControl)(unsafe.Pointer(b.b)) - - return b -} - -// Destroy destroys the Box. If the Box has children, -// Destroy calls Destroy on those Controls as well. -func (b *Box) Destroy() { - for len(b.children) != 0 { - c := b.children[0] - b.Delete(0) - c.Destroy() - } - C.uiControlDestroy(b.c) -} - -// LibuiControl returns the libui uiControl pointer that backs -// the Box. This is only used by package ui itself and should -// not be called by programs. -func (b *Box) LibuiControl() uintptr { - return uintptr(unsafe.Pointer(b.c)) -} - -// Handle returns the OS-level handle associated with this Box. -// On Windows this is an HWND of a libui-internal class. -// On GTK+ this is a pointer to a GtkBox. -// On OS X this is a pointer to a NSView. -func (b *Box) Handle() uintptr { - return uintptr(C.uiControlHandle(b.c)) -} - -// Show shows the Box. -func (b *Box) Show() { - C.uiControlShow(b.c) -} - -// Hide hides the Box. -func (b *Box) Hide() { - C.uiControlHide(b.c) -} - -// Enable enables the Box. -func (b *Box) Enable() { - C.uiControlEnable(b.c) -} - -// Disable disables the Box. -func (b *Box) Disable() { - C.uiControlDisable(b.c) -} - -// Append adds the given control to the end of the Box. -func (b *Box) Append(child Control, stretchy bool) { - c := (*C.uiControl)(nil) - if child != nil { - c = touiControl(child.LibuiControl()) - } - C.uiBoxAppend(b.b, c, frombool(stretchy)) - b.children = append(b.children, child) -} - -// Delete deletes the nth control of the Box. -func (b *Box) Delete(n int) { - b.children = append(b.children[:n], b.children[n + 1:]...) - // TODO why is this uintmax_t instead of intmax_t - C.uiBoxDelete(b.b, C.uintmax_t(n)) -} - -// Padded returns whether there is space between each control -// of the Box. -func (b *Box) Padded() bool { - return tobool(C.uiBoxPadded(b.b)) -} - -// SetPadded controls whether there is space between each control -// of the Box. The size of the padding is determined by the OS and -// its best practices. -func (b *Box) SetPadded(padded bool) { - C.uiBoxSetPadded(b.b, frombool(padded)) -} |
