diff options
Diffstat (limited to 'new/tab_unix.c')
| -rw-r--r-- | new/tab_unix.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/new/tab_unix.c b/new/tab_unix.c deleted file mode 100644 index dd69e4c..0000000 --- a/new/tab_unix.c +++ /dev/null @@ -1,58 +0,0 @@ -// 12 april 2015 -#include "uipriv_unix.h" - -struct tab { - uiParent **pages; - uintmax_t len; - uintmax_t cap; -}; - -static void onDestroy(GtkWidget *widget, gpointer data) -{ - struct tab *t = (struct tab *) data; - - uiFree(t->pages); - uiFree(t); -} - -uiControl *uiNewTab(void) -{ - uiControl *c; - struct tab *t; - GtkWidget *widget; - - c = uiUnixNewControl(GTK_TYPE_NOTEBOOK, - FALSE, FALSE, - NULL); - - widget = GTK_WIDGET(uiControlHandle(c)); - - t = uiNew(struct tab); - g_signal_connect(widget, "destroy", G_CALLBACK(onDestroy), t); - c->data = t; - - return c; -} - -#define tabCapGrow 32 - -void uiTabAddPage(uiControl *c, const char *name, uiControl *child) -{ - struct tab *t = (struct tab *) (c->data); - GtkWidget *notebook; - uiParent *content; - - if (t->len >= t->cap) { - t->cap += tabCapGrow; - t->pages = (uiParent **) uiRealloc(t->pages, t->cap * sizeof (uiParent *), "uiParent *[]"); - } - - notebook = GTK_WIDGET(uiControlHandle(c)); - content = uiNewParent((uintptr_t) notebook); - uiParentSetChild(content, child); - uiParentUpdate(content); - gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(notebook), GTK_WIDGET(uiParentHandle(content)), name); - - t->pages[t->len] = content; - t->len++; -} |
