/* Changes the menu label of child. Nothing happens if child is not in notebook. */ int clip_GTK_NOTEBOOKSETMENULABEL(ClipMachine * cm) { C_widget *cntb = _fetch_cw_arg(cm); C_widget *cchild = _fetch_cwidget(cm,_clip_spar(cm,2)); C_widget *clabel; CHECKCWID(cntb,GTK_IS_NOTEBOOK); CHECKARG2(2,MAP_t,NUMERIC_t); CHECKCWID(cchild,GTK_IS_WIDGET); CHECKARG3(3,MAP_t,NUMERIC_t,CHARACTER_t); if (_clip_parinfo(cm,3)==CHARACTER_t) { char * menu_text = _clip_parc(cm,3); LOCALE_TO_UTF(menu_text); gtk_notebook_set_menu_label_text(GTK_NOTEBOOK(cntb->widget), cchild->widget, menu_text); FREE_TEXT(menu_text); } else { clabel = _fetch_cwidget(cm,_clip_spar(cm,3)); CHECKCWID(clabel,GTK_IS_WIDGET); if (clabel) gtk_notebook_set_menu_label(GTK_NOTEBOOK(cntb->widget), cchild->widget, clabel->widget); } return 0; err: return 1; }
/****************************************************************************** * Name * notebook_main_add_page * * Synopsis * #include "tabbed_browser.h" * * void notebook_main_add_page(PASSAGE_TAB_INFO *tbinf) * * Description * adds a new page and label to the main notebook for a new scripture passage * * Return value * void */ void notebook_main_add_page(PASSAGE_TAB_INFO *tbinf) { GtkWidget *tab_widget; GtkWidget *menu_label; GString *str; str = pick_tab_label(tbinf); UI_VBOX(tbinf->page_widget, FALSE, 0); if (tbinf->showparallel) widgets.parallel_tab = tbinf->page_widget; gtk_widget_show(tbinf->page_widget); tab_widget = tab_widget_new(tbinf, str->str); /*gtk_notebook_insert_page(GTK_NOTEBOOK(widgets.notebook_main), tbinf->page_widget, tab_widget, tbinf->showparallel ? 1 : -1); */ gtk_notebook_append_page(GTK_NOTEBOOK(widgets.notebook_main), tbinf->page_widget, tab_widget); gtk_notebook_set_menu_label_text(GTK_NOTEBOOK(widgets.notebook_main), tbinf->page_widget, str->str); menu_label = gtk_label_new(str->str); gtk_notebook_set_menu_label(GTK_NOTEBOOK(widgets.notebook_main), tbinf->page_widget, menu_label); g_string_free(str, TRUE); }
static VALUE rg_set_menu_label(VALUE self, VALUE child, VALUE label) { gtk_notebook_set_menu_label(_SELF(self), RVAL2WIDGET(child), NIL_P(label)?NULL:RVAL2WIDGET(label)); return self; }
/** * schema_browser_perspective_display_diagram * */ void schema_browser_perspective_display_diagram (SchemaBrowserPerspective *bpers, gint fav_id) { GtkWidget *diagram = NULL; if (fav_id >= 0) { gint ntabs, i; ntabs = gtk_notebook_get_n_pages (GTK_NOTEBOOK (bpers->priv->notebook)); for (i = 0; i < ntabs; i++) { GtkWidget *child; child = gtk_notebook_get_nth_page (GTK_NOTEBOOK (bpers->priv->notebook), i); if (IS_RELATIONS_DIAGRAM (child)) { if (relations_diagram_get_fav_id (RELATIONS_DIAGRAM (child)) == fav_id) { gtk_notebook_set_current_page (GTK_NOTEBOOK (bpers->priv->notebook), i); return; } } } GError *error = NULL; diagram = relations_diagram_new_with_fav_id (browser_window_get_connection (bpers->priv->bwin), fav_id, &error); if (! diagram) { ui_show_error ((GtkWindow*) gtk_widget_get_toplevel ((GtkWidget*) bpers), error && error->message ? error->message : _("Could not load diagram")); g_clear_error (&error); } } else diagram = relations_diagram_new (browser_window_get_connection (bpers->priv->bwin)); if (diagram) { GtkWidget *close_btn; GtkWidget *tab_label; gint i; tab_label = browser_page_get_tab_label (BROWSER_PAGE (diagram), &close_btn); i = gtk_notebook_append_page (GTK_NOTEBOOK (bpers->priv->notebook), diagram, tab_label); g_signal_connect (close_btn, "clicked", G_CALLBACK (close_button_clicked_cb), diagram); gtk_widget_show (diagram); tab_label = browser_page_get_tab_label (BROWSER_PAGE (diagram), NULL); gtk_notebook_set_menu_label (GTK_NOTEBOOK (bpers->priv->notebook), diagram, tab_label); gtk_notebook_set_current_page (GTK_NOTEBOOK (bpers->priv->notebook), i); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (bpers->priv->notebook), diagram, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (bpers->priv->notebook), diagram, TRUE); } }
/** * schema_browser_perspective_new * * Creates new #BrowserPerspective widget which */ BrowserPerspective * schema_browser_perspective_new (BrowserWindow *bwin) { TConnection *tcnc; BrowserPerspective *bpers; SchemaBrowserPerspective *perspective; gboolean fav_supported; bpers = (BrowserPerspective*) g_object_new (TYPE_SCHEMA_BROWSER_PERSPECTIVE, NULL); perspective = (SchemaBrowserPerspective*) bpers; tcnc = browser_window_get_connection (bwin); fav_supported = t_connection_get_favorites (tcnc) ? TRUE : FALSE; perspective->priv->bwin = bwin; /* contents */ GtkWidget *paned, *wid, *nb; paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); if (fav_supported) { wid = favorite_selector_new (tcnc); g_signal_connect (wid, "selection-changed", G_CALLBACK (fav_selection_changed_cb), bpers); gtk_paned_add1 (GTK_PANED (paned), wid); gtk_paned_set_position (GTK_PANED (paned), DEFAULT_FAVORITES_SIZE); perspective->priv->favorites = wid; } nb = browser_perspective_create_notebook (bpers); perspective->priv->notebook = nb; gtk_paned_add2 (GTK_PANED (paned), nb); wid = objects_index_new (tcnc); g_signal_connect (wid, "selection-changed", G_CALLBACK (objects_index_selection_changed_cb), bpers); gtk_notebook_append_page (GTK_NOTEBOOK (nb), wid, ui_make_tab_label_with_icon (_("Index"), "help-about", FALSE, NULL)); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (nb), wid, TRUE); gtk_notebook_set_group_name (GTK_NOTEBOOK (nb), "schema-browser"); gtk_notebook_set_menu_label (GTK_NOTEBOOK (nb), wid, ui_make_tab_label_with_icon (_("Index"), "help-about", FALSE, NULL)); gtk_box_pack_start (GTK_BOX (bpers), paned, TRUE, TRUE, 0); gtk_widget_show_all (paned); if (perspective->priv->favorites && !perspective->priv->favorites_shown) gtk_widget_hide (perspective->priv->favorites); return bpers; }
/** * schema_browser_perspective_display_table_info * * Display (and create if necessary) a new page for the table's properties */ void schema_browser_perspective_display_table_info (SchemaBrowserPerspective *bpers, const gchar *table_schema, const gchar *table_name, G_GNUC_UNUSED const gchar *table_short_name) { g_return_if_fail (IS_SCHEMA_BROWSER_PERSPECTIVE (bpers)); gint ntabs, i; ntabs = gtk_notebook_get_n_pages (GTK_NOTEBOOK (bpers->priv->notebook)); for (i = 0; i < ntabs; i++) { GtkWidget *child; child = gtk_notebook_get_nth_page (GTK_NOTEBOOK (bpers->priv->notebook), i); if (IS_TABLE_INFO (child)) { if (!strcmp (table_schema, table_info_get_table_schema (TABLE_INFO (child))) && !strcmp (table_name, table_info_get_table_name (TABLE_INFO (child)))) { gtk_notebook_set_current_page (GTK_NOTEBOOK (bpers->priv->notebook), i); return; } } } GtkWidget *ti; ti = table_info_new (browser_window_get_connection (bpers->priv->bwin), table_schema, table_name); if (ti) { GtkWidget *close_btn; GtkWidget *tab_label; gint i; tab_label = browser_page_get_tab_label (BROWSER_PAGE (ti), &close_btn); i = gtk_notebook_append_page (GTK_NOTEBOOK (bpers->priv->notebook), ti, tab_label); g_signal_connect (close_btn, "clicked", G_CALLBACK (close_button_clicked_cb), ti); gtk_widget_show (ti); tab_label = browser_page_get_tab_label (BROWSER_PAGE (ti), NULL); gtk_notebook_set_menu_label (GTK_NOTEBOOK (bpers->priv->notebook), ti, tab_label); gtk_notebook_set_current_page (GTK_NOTEBOOK (bpers->priv->notebook), i); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (bpers->priv->notebook), ti, TRUE); gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (bpers->priv->notebook), ti, TRUE); } }