diff options
Diffstat (limited to 'newctrl/tab_unix.go')
| -rw-r--r-- | newctrl/tab_unix.go | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/newctrl/tab_unix.go b/newctrl/tab_unix.go deleted file mode 100644 index 064f17f..0000000 --- a/newctrl/tab_unix.go +++ /dev/null @@ -1,63 +0,0 @@ -// +build !windows,!darwin - -// 25 july 2014 - -package ui - -import ( - "unsafe" -) - -// #include "gtk_unix.h" -import "C" - -type tab struct { - *controlSingleWidget - container *C.GtkContainer - notebook *C.GtkNotebook - - tabs []*container - children []Control - - chainresize func(x int, y int, width int, height int, d *sizing) -} - -func newTab() Tab { - widget := C.gtk_notebook_new() - t := &tab{ - controlSingleWidget: newControlSingleWidget(widget), - container: (*C.GtkContainer)(unsafe.Pointer(widget)), - notebook: (*C.GtkNotebook)(unsafe.Pointer(widget)), - } - t.chainresize = t.fresize - t.fresize = t.xresize - // there are no scrolling arrows by default; add them in case there are too many tabs - C.gtk_notebook_set_scrollable(t.notebook, C.TRUE) - return t -} - -func (t *tab) Append(name string, control Control) { - c := newContainer() - t.tabs = append(t.tabs, c) - // this calls gtk_container_add(), which, according to gregier in irc.gimp.net/#gtk+, acts just like gtk_notebook_append_page() - c.setParent(&controlParent{t.container}) - control.setParent(c.parent()) - t.children = append(t.children, control) - cname := togstr(name) - defer freegstr(cname) - C.gtk_notebook_set_tab_label_text(t.notebook, - // unfortunately there does not seem to be a gtk_notebook_set_nth_tab_label_text() - C.gtk_notebook_get_nth_page(t.notebook, C.gint(len(t.tabs)-1)), - cname) -} - -func (t *tab) xresize(x int, y int, width int, height int, d *sizing) { - // first, chain up to change the GtkFrame and its child container - t.chainresize(x, y, width, height, d) - - // now that the containers have the correct size, we can resize the children - for i, _ := range t.tabs { - a := t.tabs[i].allocation(false/*TODO*/) - t.children[i].resize(int(a.x), int(a.y), int(a.width), int(a.height), d) - } -} |
