static GtkWidget * notebook_new(GladeXML *xml, GladeWidgetInfo *info) { GtkWidget *notebook = gtk_notebook_new(); GList *tmp; for (tmp = info->attributes; tmp; tmp = tmp->next) { GladeAttribute *attr = tmp->data; if (!strcmp(attr->name, "popup_enable")) { if (attr->value[0] == 'T') gtk_notebook_popup_enable(GTK_NOTEBOOK(notebook)); else gtk_notebook_popup_disable(GTK_NOTEBOOK(notebook)); } else if (!strcmp(attr->name, "scrollable")) gtk_notebook_set_scrollable(GTK_NOTEBOOK(notebook), attr->value[0] == 'T'); else if (!strcmp(attr->name, "show_border")) gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), attr->value[0] == 'T'); else if (!strcmp(attr->name, "show_tabs")) gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), attr->value[0] == 'T'); else if (!strcmp(attr->name, "tab_pos")) gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), glade_enum_from_string(GTK_TYPE_POSITION_TYPE, attr->value)); } return notebook; }
static void page_removed_callback (GtkNotebook *notebook, GtkWidget *child, gint pgnum, gpointer data) { int np = gtk_notebook_get_n_pages(notebook); #if TDEBUG fprintf(stderr, "*** page_removed_callback: child=%p\n", (void *) child); #endif if (np < 5) { gtk_notebook_popup_disable(notebook); } if (np == 1) { /* only one tab left after removal: this page should not display its own closer button, nor should it be detachable */ GtkWidget *tab = gtk_notebook_get_nth_page(notebook, 0); gtk_notebook_set_tab_detachable(notebook, tab, FALSE); viewer_tab_show_closer(notebook, tab, FALSE); } }
/* Disables the popup menu */ int clip_GTK_NOTEBOOKPOPUPDISABLE(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); CHECKCWID(cntb,GTK_IS_NOTEBOOK); gtk_notebook_popup_disable(GTK_NOTEBOOK(cntb->widget)); return 0; err: return 1; }