static gboolean draw_cb_frame (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context; context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); gtk_style_context_add_class (context, "frame1"); gtk_style_context_set_junction_sides (context, 0); gtk_render_frame (context, cr, 12, 12, 50, 50); gtk_style_context_remove_class (context, "frame1"); gtk_style_context_add_class (context, "frame2"); gtk_render_frame (context, cr, 74, 12, 50, 50); gtk_style_context_remove_class (context, "frame2"); gtk_style_context_add_class (context, "frame3"); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_RIGHT); gtk_render_frame (context, cr, 12, 74, 56, 50); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_LEFT); gtk_render_frame (context, cr, 68, 74, 56, 50); gtk_style_context_remove_class (context, "frame3"); gtk_style_context_restore (context); return TRUE; }
void setup_language (GtkBuilder *builder) { GtkWidget *treeview; GHashTable *user_langs; GError *error = NULL; GtkWidget *widget; GtkStyleContext *context; GtkTreeSelection *selection; /* Setup junction between toolbar and treeview */ widget = (GtkWidget *)gtk_builder_get_object (builder, "language-swindow"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = (GtkWidget *)gtk_builder_get_object (builder, "language-toolbar"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); treeview = GTK_WIDGET (gtk_builder_get_object (builder, "display_language_treeview")); /* Connect buttons */ widget = (GtkWidget *)gtk_builder_get_object (builder, "language_add"); g_signal_connect (widget, "clicked", G_CALLBACK (add_language), treeview); /* Setup accounts service */ proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, G_DBUS_PROXY_FLAGS_NONE, NULL, "org.freedesktop.Accounts", "/org/freedesktop/Accounts", "org.freedesktop.Accounts", NULL, &error); if (proxy == NULL) { g_warning ("Failed to contact accounts service: %s", error->message); g_error_free (error); } else { g_object_weak_ref (G_OBJECT (treeview), (GWeakNotify) g_object_unref, proxy); } /* Add user languages */ user_langs = cc_common_language_get_initial_languages (); cc_common_language_setup_list (treeview, user_langs); /* And select the current language */ cc_common_language_select_current_language (GTK_TREE_VIEW (treeview)); /* And now listen for changes */ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (selection_changed), builder); gtk_widget_grab_focus (treeview); }
JNIEXPORT void JNICALL Java_org_gnome_gtk_GtkStyleContext_gtk_1style_1context_1set_1junction_1sides ( JNIEnv* env, jclass cls, jlong _self, jint _sides ) { GtkStyleContext* self; GtkJunctionSides sides; // convert parameter self self = (GtkStyleContext*) _self; // convert parameter sides sides = (GtkJunctionSides) _sides; // call function gtk_style_context_set_junction_sides(self, sides); // cleanup parameter self // cleanup parameter sides }
static void add_section_toolbar (CEPageIP6 *page, GtkWidget *section, GCallback add_cb) { GtkWidget *toolbar; GtkToolItem *item; GtkStyleContext *context; GtkWidget *box; GtkWidget *button; GtkWidget *image; toolbar = gtk_toolbar_new (); gtk_toolbar_set_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS); gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU); context = gtk_widget_get_style_context (toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_container_add (GTK_CONTAINER (section), toolbar); item = gtk_separator_tool_item_new (); gtk_tool_item_set_expand (item, TRUE); gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (item), FALSE); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (item), 0); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); item = gtk_tool_item_new (); gtk_container_add (GTK_CONTAINER (item), box); button = gtk_button_new (); g_signal_connect_swapped (button, "clicked", G_CALLBACK (add_cb), page); image = gtk_image_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_MENU); atk_object_set_name (gtk_widget_get_accessible (button), _("Add")); gtk_button_set_image (GTK_BUTTON (button), image); gtk_container_add (GTK_CONTAINER (box), button); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), GTK_TOOL_ITEM (item), 1); }
static void um_user_panel_init (UmUserPanel *self) { UmUserPanelPrivate *d; GError *error; volatile GType type G_GNUC_UNUSED; const gchar *filename; GtkWidget *button; GtkStyleContext *context; d = self->priv = UM_USER_PANEL_PRIVATE (self); /* register types that the builder might need */ type = cc_strength_bar_get_type (); type = um_editable_button_get_type (); type = cc_editable_entry_get_type (); type = um_editable_combo_get_type (); gtk_widget_set_size_request (GTK_WIDGET (self), -1, 350); d->builder = gtk_builder_new (); d->um = um_user_manager_ref_default (); filename = UIDIR "/user-accounts-dialog.ui"; if (!g_file_test (filename, G_FILE_TEST_EXISTS)) { filename = "data/user-accounts-dialog.ui"; } error = NULL; if (!gtk_builder_add_from_file (d->builder, filename, &error)) { g_error ("%s", error->message); g_error_free (error); return; } setup_main_window (d); d->account_dialog = um_account_dialog_new (); d->password_dialog = um_password_dialog_new (); button = get_widget (d, "user-icon-button"); d->photo_dialog = um_photo_dialog_new (button); d->main_box = get_widget (d, "accounts-vbox"); gtk_widget_reparent (d->main_box, GTK_WIDGET (self)); context = gtk_widget_get_style_context (get_widget (d, "list-scrolledwindow")); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (get_widget (d, "add-remove-toolbar")); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); }
//gqk static void fcitx_im_widget_init(FcitxImWidget* self) { self->builder = gtk_builder_new(); gtk_builder_add_from_resource(self->builder, "/org/fcitx/fcitx-config-gtk3/im_widget.ui", NULL); #define _GET_OBJECT(NAME) \ self->NAME = (typeof(self->NAME)) gtk_builder_get_object(self->builder, #NAME); _GET_OBJECT(imstore) _GET_OBJECT(imview) _GET_OBJECT(addimbutton) _GET_OBJECT(delimbutton) _GET_OBJECT(moveupbutton) _GET_OBJECT(movedownbutton) _GET_OBJECT(configurebutton) _GET_OBJECT(default_layout_button) _GET_OBJECT(scrolledwindow) _GET_OBJECT(toolbar) GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self->imview)); g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_fcitx_im_widget_im_selection_changed), self); GtkStyleContext* context; context = gtk_widget_get_style_context (self->scrolledwindow); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (self->toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); gtk_style_context_add_class (context, "inline-toolbar"); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->addimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-add-symbolic"), GTK_ICON_SIZE_BUTTON)); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->delimbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("list-remove-symbolic"), GTK_ICON_SIZE_BUTTON)); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->moveupbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-up-symbolic"), GTK_ICON_SIZE_BUTTON)); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->movedownbutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("go-down-symbolic"), GTK_ICON_SIZE_BUTTON)); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->configurebutton), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("preferences-system-symbolic"), GTK_ICON_SIZE_BUTTON)); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(self->default_layout_button), gtk_image_new_from_gicon(g_themed_icon_new_with_default_fallbacks("input-keyboard-symbolic"), GTK_ICON_SIZE_BUTTON)); g_signal_connect(G_OBJECT(self->addimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_addim_button_clicked), self); g_signal_connect(G_OBJECT(self->delimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_delim_button_clicked), self); g_signal_connect(G_OBJECT(self->moveupbutton), "clicked", G_CALLBACK(_fcitx_im_widget_moveup_button_clicked), self); g_signal_connect(G_OBJECT(self->movedownbutton), "clicked", G_CALLBACK(_fcitx_im_widget_movedown_button_clicked), self); g_signal_connect(G_OBJECT(self->configurebutton), "clicked", G_CALLBACK(_fcitx_im_widget_configure_button_clicked), self); g_signal_connect(G_OBJECT(self->default_layout_button), "clicked", G_CALLBACK(_fcitx_im_widget_default_layout_button_clicked), self); g_signal_connect(G_OBJECT(self->imview), "row-activated", G_CALLBACK(_fcitx_im_widget_row_activated), self); }
static void nautilus_toolbar_constructed (GObject *obj) { NautilusToolbar *self = NAUTILUS_TOOLBAR (obj); GtkToolItem *item; GtkWidget *hbox, *toolbar, *search; GtkStyleContext *context; const gchar *ui; G_OBJECT_CLASS (nautilus_toolbar_parent_class)->constructed (obj); gtk_style_context_set_junction_sides (gtk_widget_get_style_context (GTK_WIDGET (self)), GTK_JUNCTION_BOTTOM); /* add the UI */ ui = nautilus_ui_string_get ("nautilus-toolbar-ui.xml"); self->priv->ui_manager = gtk_ui_manager_new (); gtk_ui_manager_add_ui_from_string (self->priv->ui_manager, ui, -1, NULL); gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->action_group, 0); toolbar = gtk_ui_manager_get_widget (self->priv->ui_manager, "/Toolbar"); self->priv->toolbar = toolbar; context = gtk_widget_get_style_context (toolbar); gtk_style_context_add_class (context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR); search = gtk_ui_manager_get_widget (self->priv->ui_manager, "/Toolbar/Search"); gtk_style_context_add_class (gtk_widget_get_style_context (search), GTK_STYLE_CLASS_RAISED); gtk_box_pack_start (GTK_BOX (self), self->priv->toolbar, TRUE, TRUE, 0); gtk_widget_show_all (self->priv->toolbar); hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_widget_show (hbox); /* regular path bar */ self->priv->path_bar = g_object_new (NAUTILUS_TYPE_PATH_BAR, NULL); gtk_box_pack_start (GTK_BOX (hbox), self->priv->path_bar, TRUE, TRUE, 0); /* entry-like location bar */ self->priv->location_bar = nautilus_location_bar_new (); gtk_box_pack_start (GTK_BOX (hbox), self->priv->location_bar, TRUE, TRUE, 0); item = gtk_tool_item_new (); gtk_tool_item_set_expand (item, TRUE); gtk_container_add (GTK_CONTAINER (item), hbox); gtk_toolbar_insert (GTK_TOOLBAR (self->priv->toolbar), item, 0); gtk_widget_show (GTK_WIDGET (item)); /* search bar */ self->priv->search_bar = nautilus_search_bar_new (); gtk_box_pack_start (GTK_BOX (self), self->priv->search_bar, TRUE, TRUE, 0); g_signal_connect_swapped (nautilus_preferences, "changed::" NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY, G_CALLBACK (toolbar_update_appearance), self); toolbar_update_appearance (self); }
void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) ) { wxPaintDC dc(this); #ifdef __WXGTK20__ // Draw grip first if ( ShowsSizeGrip() ) { const wxRect& rc = GetSizeGripRect(); #ifdef __WXGTK3__ GtkWidget* toplevel = gtk_widget_get_toplevel(m_widget); GdkRectangle rect; if (toplevel && (!gtk_window_get_resize_grip_area(GTK_WINDOW(toplevel), &rect) || rect.width == 0 || rect.height == 0)) { GtkStyleContext* sc = gtk_widget_get_style_context(toplevel); gtk_style_context_save(sc); gtk_style_context_add_class(sc, GTK_STYLE_CLASS_GRIP); GtkJunctionSides sides = GTK_JUNCTION_CORNER_BOTTOMRIGHT; if (GetLayoutDirection() == wxLayout_RightToLeft) sides = GTK_JUNCTION_CORNER_BOTTOMLEFT; gtk_style_context_set_junction_sides(sc, sides); gtk_render_handle(sc, static_cast<cairo_t*>(dc.GetImpl()->GetCairoContext()), rc.x, rc.y, rc.width, rc.height); gtk_style_context_restore(sc); } #else GdkWindowEdge edge = GetLayoutDirection() == wxLayout_RightToLeft ? GDK_WINDOW_EDGE_SOUTH_WEST : GDK_WINDOW_EDGE_SOUTH_EAST; gtk_paint_resize_grip(gtk_widget_get_style(m_widget), GTKGetDrawingWindow(), gtk_widget_get_state(m_widget), NULL, m_widget, "statusbar", edge, rc.x, rc.y, rc.width, rc.height ); #endif } #endif // __WXGTK20__ if (GetFont().IsOk()) dc.SetFont(GetFont()); // compute char height only once for all panes: int textHeight = dc.GetCharHeight(); dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT); for (size_t i = 0; i < m_panes.GetCount(); i ++) DrawField(dc, i, textHeight); }
static void anjuta_tabber_setup_style_context (AnjutaTabber* tabber, GtkStyleContext* context, GList* child, GtkStateFlags* state_flags, GtkRegionFlags* region_flags) { gint page_num; gboolean current; GtkRegionFlags region; GtkStateFlags state; page_num = g_list_position (tabber->priv->children, child); current = page_num == tabber->priv->active_page; region = anjuta_tabber_get_region_flags (tabber, page_num); gtk_style_context_add_region (context, GTK_STYLE_REGION_TAB, region); if (gtk_widget_get_direction (GTK_WIDGET (tabber)) == GTK_TEXT_DIR_LTR) gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_TOPLEFT); else gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_TOPRIGHT); state = gtk_style_context_get_state (context); if (current) state |= GTK_STATE_FLAG_ACTIVE; else state &= ~GTK_STATE_FLAG_ACTIVE; gtk_style_context_set_state (context, state); if (state_flags) *state_flags = state; if (region_flags) *region_flags = region; }
static gboolean draw_cb_handles (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context; context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); gtk_style_context_add_class (context, "paned"); gtk_render_handle (context, cr, 12, 22, 20, 10); gtk_render_handle (context, cr, 44, 12, 10, 20); gtk_style_context_remove_class (context, "paned"); gtk_style_context_add_class (context, "grip"); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_BOTTOMLEFT); gtk_render_handle (context, cr, 12, 48, 12, 12); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_BOTTOMRIGHT); gtk_render_handle (context, cr, 40, 48, 12, 12); gtk_style_context_restore (context); return TRUE; }
static gboolean draw_cb_frame_gap (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context; context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); gtk_style_context_add_class (context, "frame"); gtk_style_context_set_junction_sides (context, 0); gtk_render_frame_gap (context, cr, 12, 12, 50, 50, GTK_POS_TOP, 15, 35); gtk_style_context_remove_class (context, "frame"); gtk_style_context_restore (context); return TRUE; }
static gboolean draw_cb_background (GtkWidget *widget, cairo_t *cr) { GtkStyleContext *context; context = gtk_widget_get_style_context (widget); gtk_style_context_save (context); gtk_style_context_add_class (context, "background"); gtk_style_context_set_junction_sides (context, 0); gtk_render_background (context, cr, 12, 12, 100, 100); gtk_style_context_remove_class (context, "background"); gtk_style_context_restore (context); return TRUE; }
void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) ) { wxPaintDC dc(this); #ifdef __WXGTK20__ // Draw grip first if ( ShowsSizeGrip() ) { const wxRect& rc = GetSizeGripRect(); #ifdef __WXGTK3__ GtkWidget* toplevel = gtk_widget_get_toplevel(m_widget); GdkRectangle rect; wxGCC_WARNING_SUPPRESS(deprecated-declarations) if (toplevel && (!gtk_window_get_resize_grip_area(GTK_WINDOW(toplevel), &rect) || rect.width == 0 || rect.height == 0)) wxGCC_WARNING_RESTORE() { GtkStyleContext* sc = gtk_widget_get_style_context(toplevel); gtk_style_context_save(sc); gtk_style_context_add_class(sc, GTK_STYLE_CLASS_GRIP); GtkJunctionSides sides = GTK_JUNCTION_CORNER_BOTTOMRIGHT; if (GetLayoutDirection() == wxLayout_RightToLeft) sides = GTK_JUNCTION_CORNER_BOTTOMLEFT; gtk_style_context_set_junction_sides(sc, sides); gtk_render_handle(sc, static_cast<cairo_t*>(dc.GetImpl()->GetCairoContext()), rc.x, rc.y, rc.width, rc.height); gtk_style_context_restore(sc); } #else GdkWindowEdge edge = GetLayoutDirection() == wxLayout_RightToLeft ? GDK_WINDOW_EDGE_SOUTH_WEST : GDK_WINDOW_EDGE_SOUTH_EAST; gtk_paint_resize_grip(gtk_widget_get_style(m_widget), GTKGetDrawingWindow(), gtk_widget_get_state(m_widget), NULL, m_widget, "statusbar", edge, rc.x, rc.y, rc.width, rc.height ); #endif }
static void nautilus_toolbar_constructed (GObject *obj) { NautilusToolbar *self = NAUTILUS_TOOLBAR (obj); GtkWidget *toolbar; GtkWidget *button; GtkWidget *menu; GtkWidget *box; GtkWidget *separator; GtkUIManager *ui_manager; gboolean rtl; G_OBJECT_CLASS (nautilus_toolbar_parent_class)->constructed (obj); gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self)), "header-bar"); self->priv->toolbar = toolbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); g_object_set (toolbar, "margin", 8, NULL); gtk_container_add (GTK_CONTAINER (self), toolbar); rtl = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL; ui_manager = nautilus_window_get_ui_manager (self->priv->window); gtk_style_context_set_junction_sides (gtk_widget_get_style_context (GTK_WIDGET (self)), GTK_JUNCTION_BOTTOM); /* Back and Forward */ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); /* Back */ button = toolbar_create_toolbutton (self, FALSE, FALSE, NAUTILUS_ACTION_BACK, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_action_set_icon_name (gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)), rtl ? "go-previous-rtl-symbolic" : "go-previous-symbolic"); navigation_button_setup_menu (self, button, NAUTILUS_NAVIGATION_DIRECTION_BACK); gtk_container_add (GTK_CONTAINER (box), button); /* Forward */ button = toolbar_create_toolbutton (self, FALSE, FALSE, NAUTILUS_ACTION_FORWARD, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_action_set_icon_name (gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)), rtl ? "go-next-rtl-symbolic" : "go-next-symbolic"); navigation_button_setup_menu (self, button, NAUTILUS_NAVIGATION_DIRECTION_FORWARD); gtk_container_add (GTK_CONTAINER (box), button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_box_pack_start (GTK_BOX (toolbar), box, FALSE, FALSE, 0); if (rtl) { gtk_widget_set_margin_left (box, 12); } else { gtk_widget_set_margin_right (box, 12); } /* regular path bar */ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->path_bar = g_object_new (NAUTILUS_TYPE_PATH_BAR, NULL); gtk_box_pack_start (GTK_BOX (box), self->priv->path_bar, TRUE, TRUE, 0); /* entry-like location bar */ self->priv->location_entry = nautilus_location_entry_new (); gtk_box_pack_start (GTK_BOX (box), self->priv->location_entry, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (toolbar), box, TRUE, TRUE, 0); /* search */ button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_SEARCH, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (toolbar), button); if (rtl) { gtk_widget_set_margin_right (button, 76); } else { gtk_widget_set_margin_left (button, 76); } /* View buttons */ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_LIST, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (box), button); button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_GRID, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (box), button); button = toolbar_create_toolbutton (self, TRUE, FALSE, "go-down-symbolic", _("View options")); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (box), button); menu = gtk_ui_manager_get_widget (ui_manager, "/ViewMenu"); gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_container_add (GTK_CONTAINER (toolbar), box); if (rtl) { gtk_widget_set_margin_right (box, 12); } else { gtk_widget_set_margin_left (box, 12); } /* Action Menu */ button = toolbar_create_toolbutton (self, TRUE, FALSE, "emblem-system-symbolic", _("Location options")); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); menu = gtk_ui_manager_get_widget (ui_manager, "/ActionMenu"); gtk_widget_set_halign (menu, GTK_ALIGN_END); gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.gear-menu"); g_signal_connect (menu, "key-press-event", G_CALLBACK (gear_menu_key_press), self); gtk_container_add (GTK_CONTAINER (toolbar), button); if (rtl) { gtk_widget_set_margin_right (button, 12); } else { gtk_widget_set_margin_left (button, 12); } /* Separator and Close */ separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (toolbar), separator); if (rtl) { gtk_widget_set_margin_right (separator, 8); } else { gtk_widget_set_margin_left (separator, 8); } button = gtk_button_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU); gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); g_signal_connect (button, "clicked", G_CALLBACK (close_button_clicked), self); gtk_container_add (GTK_CONTAINER (toolbar), button); if (rtl) { gtk_widget_set_margin_right (button, 6); } else { gtk_widget_set_margin_left (button, 6); } g_signal_connect_swapped (nautilus_preferences, "changed::" NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY, G_CALLBACK (toolbar_update_appearance), self); gtk_widget_show_all (toolbar); toolbar_update_appearance (self); }
/** * empathy_irc_network_dialog_show: * @network: the #EmpathyIrcNetwork to configure * @parent: the parent of this dialog * * Display a dialog to configure a given #EmpathyIrcNetwork. * This function is a singleton so if a configuration dialog already * exists we use this one to edit the network. * * Returns: The displayed #GtkDialog */ GtkWidget * empathy_irc_network_dialog_show (EmpathyIrcNetwork *network, GtkWidget *parent) { static EmpathyIrcNetworkDialog *dialog = NULL; GtkBuilder *gui; GtkListStore *store; GtkCellRenderer *renderer; GtkAdjustment *adjustment; GtkTreeSelection *selection; GtkTreeViewColumn *column; gchar *filename; GtkWidget *sw, *toolbar; GtkStyleContext *context; g_return_val_if_fail (network != NULL, NULL); if (dialog != NULL) { change_network (dialog, network); gtk_window_present (GTK_WINDOW (dialog->dialog)); return dialog->dialog; } dialog = g_slice_new0 (EmpathyIrcNetworkDialog); dialog->network = network; g_object_ref (dialog->network); filename = empathy_file_lookup ("empathy-account-widget-irc.ui", "libempathy-gtk"); gui = empathy_builder_get_file (filename, "irc_network_dialog", &dialog->dialog, "button_close", &dialog->button_close, "entry_network", &dialog->entry_network, "combobox_charset", &dialog->combobox_charset, "treeview_servers", &dialog->treeview_servers, "button_add", &dialog->button_add, "button_remove", &dialog->button_remove, "button_up", &dialog->button_up, "button_down", &dialog->button_down, "scrolledwindow_network_server", &sw, "toolbar_network_server", &toolbar, NULL); g_free (filename); store = gtk_list_store_new (4, G_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_BOOLEAN); gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->treeview_servers), GTK_TREE_MODEL (store)); g_object_unref (store); /* address */ renderer = gtk_cell_renderer_text_new (); g_object_set (renderer, "editable", TRUE, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (irc_network_dialog_address_edited_cb), dialog); gtk_tree_view_insert_column_with_attributes ( GTK_TREE_VIEW (dialog->treeview_servers), -1, _("Server"), renderer, "text", COL_ADR, NULL); column = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->treeview_servers), 0); gtk_tree_view_column_set_expand (column, TRUE); /* port */ adjustment = (GtkAdjustment *) gtk_adjustment_new (6667, 1, G_MAXUINT16, 1, 10, 0); renderer = gtk_cell_renderer_spin_new (); g_object_set (renderer, "editable", TRUE, "adjustment", adjustment, NULL); g_signal_connect (renderer, "edited", G_CALLBACK (irc_network_dialog_port_edited_cb), dialog); gtk_tree_view_insert_column_with_attributes ( GTK_TREE_VIEW (dialog->treeview_servers), -1, _("Port"), renderer, "text", COL_PORT, NULL); /* SSL */ renderer = gtk_cell_renderer_toggle_new (); g_object_set (renderer, "activatable", TRUE, NULL); g_signal_connect (renderer, "toggled", G_CALLBACK (irc_network_dialog_ssl_toggled_cb), dialog); gtk_tree_view_insert_column_with_attributes ( GTK_TREE_VIEW (dialog->treeview_servers), -1, _("SSL"), renderer, "active", COL_SSL, NULL); selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (dialog->treeview_servers)); gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE); /* charset */ totem_subtitle_encoding_init (GTK_COMBO_BOX (dialog->combobox_charset)); irc_network_dialog_setup (dialog); empathy_builder_connect (gui, dialog, "irc_network_dialog", "destroy", irc_network_dialog_destroy_cb, "button_close", "clicked", irc_network_dialog_close_clicked_cb, "entry_network", "focus-out-event", irc_network_dialog_network_focus_cb, "button_add", "clicked", irc_network_dialog_button_add_clicked_cb, "button_remove", "clicked", irc_network_dialog_button_remove_clicked_cb, "button_up", "clicked", irc_network_dialog_button_up_clicked_cb, "button_down", "clicked", irc_network_dialog_button_down_clicked_cb, "combobox_charset", "changed", irc_network_dialog_combobox_charset_changed_cb, NULL); g_object_unref (gui); g_object_add_weak_pointer (G_OBJECT (dialog->dialog), (gpointer) &dialog); g_signal_connect (selection, "changed", G_CALLBACK (irc_network_dialog_selection_changed_cb), dialog); gtk_window_set_transient_for (GTK_WINDOW (dialog->dialog), GTK_WINDOW (parent)); gtk_window_set_modal (GTK_WINDOW (dialog->dialog), TRUE); /* join the add/remove toolbar to the treeview */ context = gtk_widget_get_style_context (sw); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); irc_network_dialog_network_update_buttons (dialog); gtk_widget_show_all (dialog->dialog); return dialog->dialog; }
static void goa_panel_init (GoaPanel *panel) { GtkWidget *button; GtkWidget *w; GError *error; GtkStyleContext *context; GtkTreeViewColumn *column; GtkCellRenderer *renderer; GtkTreeIter iter; panel->builder = gtk_builder_new (); error = NULL; if (gtk_builder_add_from_file (panel->builder, CINNAMONCC_UI_DIR "/online-accounts.ui", &error) == 0) { goa_warning ("Error loading UI file: %s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); g_error_free (error); goto out; } panel->toolbar = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-toolbar")); panel->toolbar_add_button = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-toolbutton-add")); g_signal_connect (panel->toolbar_add_button, "clicked", G_CALLBACK (on_toolbar_add_button_clicked), panel); panel->toolbar_remove_button = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-toolbutton-remove")); g_signal_connect (panel->toolbar_remove_button, "clicked", G_CALLBACK (on_toolbar_remove_button_clicked), panel); context = gtk_widget_get_style_context (GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-scrolledwindow"))); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (panel->toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); panel->accounts_treeview = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-tree-treeview")); g_signal_connect (gtk_tree_view_get_selection (GTK_TREE_VIEW (panel->accounts_treeview)), "changed", G_CALLBACK (on_tree_view_selection_changed), panel); button = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-button-add")); g_signal_connect (button, "clicked", G_CALLBACK (on_add_button_clicked), panel); panel->accounts_vbox = GTK_WIDGET (gtk_builder_get_object (panel->builder, "accounts-vbox")); /* TODO: probably want to avoid _sync() ... */ error = NULL; panel->client = goa_client_new_sync (NULL /* GCancellable */, &error); if (panel->client == NULL) { goa_warning ("Error getting a GoaClient: %s (%s, %d)", error->message, g_quark_to_string (error->domain), error->code); w = GTK_WIDGET (gtk_builder_get_object (panel->builder, "goa-top-widget")); gtk_widget_set_sensitive (w, FALSE); g_error_free (error); goto out; } g_signal_connect (panel->client, "account-changed", G_CALLBACK (on_account_changed), panel); panel->accounts_model = goa_panel_accounts_model_new (panel->client); gtk_tree_view_set_model (GTK_TREE_VIEW (panel->accounts_treeview), GTK_TREE_MODEL (panel->accounts_model)); g_signal_connect (panel->accounts_model, "row-deleted", G_CALLBACK (on_model_row_deleted), panel); g_signal_connect (panel->accounts_model, "row-inserted", G_CALLBACK (on_model_row_inserted), panel); column = gtk_tree_view_column_new (); gtk_tree_view_append_column (GTK_TREE_VIEW (panel->accounts_treeview), column); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_start (column, renderer, FALSE); g_object_set (G_OBJECT (renderer), "stock-size", GTK_ICON_SIZE_DIALOG, NULL); gtk_tree_view_column_set_attributes (column, renderer, "gicon", GOA_PANEL_ACCOUNTS_MODEL_COLUMN_ICON, NULL); renderer = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, renderer, FALSE); g_object_set (G_OBJECT (renderer), "ellipsize", PANGO_ELLIPSIZE_END, "ellipsize-set", TRUE, "width-chars", 30, NULL); gtk_tree_view_column_set_attributes (column, renderer, "markup", GOA_PANEL_ACCOUNTS_MODEL_COLUMN_MARKUP, NULL); renderer = gtk_cell_renderer_pixbuf_new (); gtk_tree_view_column_pack_end (column, renderer, FALSE); g_object_set (G_OBJECT (renderer), "icon-name", "dialog-error-symbolic", NULL); gtk_tree_view_column_set_attributes (column, renderer, "visible", GOA_PANEL_ACCOUNTS_MODEL_COLUMN_ATTENTION_NEEDED, NULL); /* Select the first row, if any */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (panel->accounts_model), &iter)) gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (panel->accounts_treeview)), &iter); out: w = GTK_WIDGET (gtk_builder_get_object (panel->builder, "goa-top-widget")); gtk_widget_reparent (w, GTK_WIDGET (panel)); gtk_widget_show_all (w); }
static void empathy_contact_blocking_dialog_init (EmpathyContactBlockingDialog *self) { GtkBuilder *gui; char *filename; GtkWidget *contents; GtkWidget *account_hbox, *blocked_contacts_view, *blocked_contacts_sw, *remove_toolbar; GtkEntryCompletion *completion; TpAccountManager *am; GtkStyleContext *context; TpSimpleClientFactory *factory; self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, EMPATHY_TYPE_CONTACT_BLOCKING_DIALOG, EmpathyContactBlockingDialogPrivate); gtk_window_set_title (GTK_WINDOW (self), _("Edit Blocked Contacts")); gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); filename = empathy_file_lookup ("empathy-contact-blocking-dialog.ui", "libempathy-gtk"); gui = empathy_builder_get_file (filename, "contents", &contents, "account-hbox", &account_hbox, "add-button", &self->priv->add_button, "add-contact-entry", &self->priv->add_contact_entry, "blocked-contacts", &self->priv->blocked_contacts, "blocked-contacts-sw", &blocked_contacts_sw, "blocked-contacts-view", &blocked_contacts_view, "remove-button", &self->priv->remove_button, "remove-toolbar", &remove_toolbar, NULL); empathy_builder_connect (gui, self, "add-button", "clicked", contact_blocking_dialog_add_contact, "add-contact-entry", "activate", contact_blocking_dialog_add_contact, "remove-button", "clicked", contact_blocking_dialog_remove_contacts, NULL); /* join the remove toolbar to the treeview */ context = gtk_widget_get_style_context (blocked_contacts_sw); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (remove_toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); /* add the contents to the dialog */ gtk_container_add ( GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (self))), contents); gtk_widget_show (contents); /* set up the tree selection */ self->priv->selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (blocked_contacts_view)); gtk_tree_selection_set_mode (self->priv->selection, GTK_SELECTION_MULTIPLE); g_signal_connect (self->priv->selection, "changed", G_CALLBACK (contact_blocking_dialog_view_selection_changed), self); /* build the contact entry */ self->priv->completion_contacts = gtk_list_store_new (N_COMPLETION_COLUMNS, G_TYPE_STRING, /* id */ G_TYPE_STRING, /* text */ TP_TYPE_CONTACT); /* contact */ completion = gtk_entry_completion_new (); gtk_entry_completion_set_model (completion, GTK_TREE_MODEL (self->priv->completion_contacts)); gtk_entry_completion_set_text_column (completion, COL_COMPLETION_TEXT); gtk_entry_completion_set_match_func (completion, contact_selector_dialog_match_func, NULL, NULL); g_signal_connect (completion, "match-selected", G_CALLBACK (contact_selector_dialog_match_selected_cb), self); gtk_entry_set_completion (GTK_ENTRY (self->priv->add_contact_entry), completion); g_object_unref (completion); g_object_unref (self->priv->completion_contacts); /* add the account chooser */ self->priv->account_chooser = empathy_account_chooser_new (); contact_blocking_dialog_refilter_account_chooser (self); g_signal_connect (self->priv->account_chooser, "changed", G_CALLBACK (contact_blocking_dialog_account_changed), self); gtk_box_pack_start (GTK_BOX (account_hbox), self->priv->account_chooser, TRUE, TRUE, 0); gtk_widget_show (self->priv->account_chooser); /* add an error warning info bar */ self->priv->info_bar = gtk_info_bar_new (); gtk_box_pack_start (GTK_BOX (contents), self->priv->info_bar, FALSE, TRUE, 0); gtk_info_bar_set_message_type (GTK_INFO_BAR (self->priv->info_bar), GTK_MESSAGE_ERROR); self->priv->info_bar_label = gtk_label_new (""); gtk_container_add (GTK_CONTAINER ( gtk_info_bar_get_content_area (GTK_INFO_BAR (self->priv->info_bar))), self->priv->info_bar_label); gtk_widget_show (self->priv->info_bar_label); /* prepare the account manager */ am = tp_account_manager_dup (); factory = tp_proxy_get_factory (am); tp_simple_client_factory_add_connection_features_varargs (factory, TP_CONNECTION_FEATURE_CONTACT_BLOCKING, NULL); tp_proxy_prepare_async (am, NULL, contact_blocking_dialog_am_prepared, self); g_object_unref (am); g_free (filename); g_object_unref (gui); }
static void cc_background_panel_init (CcBackgroundPanel *self) { CcBackgroundPanelPrivate *priv; gchar *objects[] = { "style-liststore", "sources-liststore", "background-panel", "sizegroup", NULL }; GError *err = NULL; GtkWidget *widget; GtkListStore *store; GtkStyleContext *context; priv = self->priv = BACKGROUND_PANEL_PRIVATE (self); priv->builder = gtk_builder_new (); gtk_builder_add_objects_from_file (priv->builder, DATADIR"/background.ui", objects, &err); if (err) { g_warning ("Could not load ui: %s", err->message); g_error_free (err); return; } /* See shell_notify_cb for details */ g_signal_connect (WID ("scrolledwindow1"), "realize", G_CALLBACK (scrolled_realize_cb), self); priv->settings = g_settings_new (WP_PATH_ID); g_settings_delay (priv->settings); store = (GtkListStore*) gtk_builder_get_object (priv->builder, "sources-liststore"); priv->wallpapers_source = bg_wallpapers_source_new (); gtk_list_store_insert_with_values (store, NULL, G_MAXINT, COL_SOURCE_NAME, _("Wallpapers"), COL_SOURCE_TYPE, SOURCE_WALLPAPERS, COL_SOURCE, priv->wallpapers_source, -1); priv->pictures_source = bg_pictures_source_new (); gtk_list_store_insert_with_values (store, NULL, G_MAXINT, COL_SOURCE_NAME, _("Pictures Folder"), COL_SOURCE_TYPE, SOURCE_PICTURES, COL_SOURCE, priv->pictures_source, -1); priv->colors_source = bg_colors_source_new (); gtk_list_store_insert_with_values (store, NULL, G_MAXINT, COL_SOURCE_NAME, _("Colors & Gradients"), COL_SOURCE_TYPE, SOURCE_COLORS, COL_SOURCE, priv->colors_source, -1); #ifdef HAVE_LIBSOCIALWEB priv->flickr_source = bg_flickr_source_new (); gtk_list_store_insert_with_values (store, NULL, G_MAXINT, COL_SOURCE_NAME, _("Flickr"), COL_SOURCE_TYPE, SOURCE_FLICKR, COL_SOURCE, priv->flickr_source, -1); #endif /* add the top level widget */ widget = WID ("background-panel"); gtk_container_add (GTK_CONTAINER (self), widget); gtk_widget_show_all (GTK_WIDGET (self)); /* connect to source change signal */ widget = WID ("sources-combobox"); g_signal_connect (widget, "changed", G_CALLBACK (source_changed_cb), priv); /* select first item */ gtk_combo_box_set_active (GTK_COMBO_BOX (widget), 0); /* connect to the background iconview change signal */ widget = WID ("backgrounds-iconview"); g_signal_connect (widget, "selection-changed", G_CALLBACK (backgrounds_changed_cb), self); /* Join treeview and buttons */ widget = WID ("scrolledwindow1"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = WID ("toolbar1"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); g_signal_connect (WID ("add_button"), "clicked", G_CALLBACK (add_button_clicked), self); g_signal_connect (WID ("remove_button"), "clicked", G_CALLBACK (remove_button_clicked), self); /* Add drag and drop support for bg images */ widget = WID ("scrolledwindow1"); gtk_drag_dest_set (widget, GTK_DEST_DEFAULT_ALL, NULL, 0, GDK_ACTION_COPY); gtk_drag_dest_add_uri_targets (widget); g_signal_connect (widget, "drag-data-received", G_CALLBACK (cc_background_panel_drag_uris), self); /* setup preview area */ gtk_label_set_ellipsize (GTK_LABEL (WID ("background-label")), PANGO_ELLIPSIZE_END); widget = WID ("preview-area"); g_signal_connect (widget, "draw", G_CALLBACK (preview_draw_cb), self); priv->display_base = gdk_pixbuf_new_from_file (DATADIR "/display-base.png", NULL); priv->display_overlay = gdk_pixbuf_new_from_file (DATADIR "/display-overlay.png", NULL); g_signal_connect (WID ("style-combobox"), "changed", G_CALLBACK (style_changed_cb), self); g_signal_connect (WID ("style-pcolor"), "color-set", G_CALLBACK (color_changed_cb), self); g_signal_connect (WID ("style-scolor"), "color-set", G_CALLBACK (color_changed_cb), self); g_signal_connect (WID ("swap-color-button"), "clicked", G_CALLBACK (swap_colors_clicked), self); priv->copy_cancellable = g_cancellable_new (); priv->thumb_factory = gnome_desktop_thumbnail_factory_new (GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL); load_current_bg (self); update_preview (priv, NULL); /* Setup the edit box with our current settings */ source_update_edit_box (priv, TRUE); }
void setup_formats (GtkBuilder *builder) { GtkWidget *treeview; gchar *current_lang; GtkTreeModel *model; GtkCellRenderer *cell; GtkTreeViewColumn *column; GtkWidget *widget; GtkStyleContext *context; GSettings *locale_settings; GtkTreeSelection *selection; locale_settings = g_settings_new ("org.gnome.system.locale"); /* Setup junction between toolbar and treeview */ widget = (GtkWidget *)gtk_builder_get_object (builder, "region-swindow"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = (GtkWidget *)gtk_builder_get_object (builder, "region-toolbar"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); /* Setup formats selector */ treeview = GTK_WIDGET (gtk_builder_get_object (builder, "region_selector")); cell = gtk_cell_renderer_text_new (); g_object_set (cell, "width-chars", 40, "ellipsize", PANGO_ELLIPSIZE_END, NULL); column = gtk_tree_view_column_new_with_attributes (NULL, cell, "text", 1, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column); model = (GtkTreeModel*)gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (model), sort_regions, NULL, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID, GTK_SORT_ASCENDING); gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), model); g_object_set_data_full (G_OBJECT (treeview), "settings", locale_settings, g_object_unref); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview)); g_signal_connect (selection, "changed", G_CALLBACK (update_settings_cb), builder); g_signal_connect (selection, "changed", G_CALLBACK (update_examples_cb), builder); /* Connect buttons */ widget = (GtkWidget *)gtk_builder_get_object (builder, "region_add"); g_signal_connect (widget, "clicked", G_CALLBACK (add_region), treeview); current_lang = cc_common_language_get_current_language (); populate_regions (builder, current_lang); g_free (current_lang); g_signal_connect (locale_settings, "changed::region", G_CALLBACK (setting_changed_cb), treeview); }
static void fcitx_im_widget_init(FcitxImWidget* self) { gtk_orientable_set_orientation(GTK_ORIENTABLE(self), GTK_ORIENTATION_VERTICAL); GtkCellRenderer* renderer; GtkTreeViewColumn* column; GtkWidget* hbox; GtkToolItem* separator; self->imstore = gtk_list_store_new(IM_N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER); self->imview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(self->imstore)); renderer = gtk_cell_renderer_text_new(); column = gtk_tree_view_column_new_with_attributes( _("Input Method"), renderer, "text", IM_LIST_IM_STRING, NULL); gtk_tree_view_append_column(GTK_TREE_VIEW(self->imview), column); gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(self->imview), FALSE); GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(self->imview)); gtk_tree_selection_set_mode(selection, GTK_SELECTION_BROWSE); g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(_fcitx_im_widget_im_selection_changed), self); GtkWidget* scrolledwindow = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scrolledwindow), self->imview); g_object_set(G_OBJECT(scrolledwindow), "shadow-type", GTK_SHADOW_IN, NULL); GtkWidget* toolbar = gtk_toolbar_new(); gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), 1); gtk_toolbar_set_show_arrow(GTK_TOOLBAR(toolbar), false); gtk_toolbar_set_style(GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS); GtkToolItem* item; /* add and remove */ self->addimbutton = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(self->addimbutton), gtk_image_new_from_icon_name("list-add-symbolic", GTK_ICON_SIZE_BUTTON)); self->delimbutton = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(self->delimbutton), gtk_image_new_from_icon_name("list-remove-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_widget_set_sensitive(self->delimbutton, FALSE); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(hbox), self->addimbutton, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), self->delimbutton, FALSE, FALSE, 0); item = gtk_tool_item_new(); gtk_container_add(GTK_CONTAINER(item), hbox); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); /* separator */ separator = gtk_separator_tool_item_new(); g_object_set(G_OBJECT(separator), "draw", false, NULL); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), separator, -1); /* move up and move down */ self->moveupbutton = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(self->moveupbutton), gtk_image_new_from_icon_name("go-up-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_widget_set_sensitive(self->moveupbutton, FALSE); self->movedownbutton = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(self->movedownbutton), gtk_image_new_from_icon_name("go-down-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_widget_set_sensitive(self->movedownbutton, FALSE); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(hbox), self->moveupbutton, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), self->movedownbutton, FALSE, FALSE, 0); item = gtk_tool_item_new(); gtk_container_add(GTK_CONTAINER(item), hbox); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); /* separator */ separator = gtk_separator_tool_item_new(); g_object_set(G_OBJECT(separator), "draw", false, NULL); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), separator, -1); /* configure */ self->configurebutton = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(self->configurebutton), gtk_image_new_from_icon_name("preferences-system-symbolic", GTK_ICON_SIZE_BUTTON)); gtk_widget_set_sensitive(self->configurebutton, FALSE); hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start(GTK_BOX(hbox), self->configurebutton, FALSE, FALSE, 0); item = gtk_tool_item_new(); gtk_container_add(GTK_CONTAINER(item), hbox); gtk_toolbar_insert(GTK_TOOLBAR(toolbar), item, -1); GtkStyleContext* context; context = gtk_widget_get_style_context (scrolledwindow); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); gtk_style_context_add_class (context, "inline-toolbar"); gtk_box_pack_start(GTK_BOX(self), scrolledwindow, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(self), toolbar, FALSE, TRUE, 0); g_object_set(G_OBJECT(self), "margin", 5, NULL); g_signal_connect(G_OBJECT(self->addimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_addim_button_clicked), self); g_signal_connect(G_OBJECT(self->delimbutton), "clicked", G_CALLBACK(_fcitx_im_widget_delim_button_clicked), self); g_signal_connect(G_OBJECT(self->moveupbutton), "clicked", G_CALLBACK(_fcitx_im_widget_moveup_button_clicked), self); g_signal_connect(G_OBJECT(self->movedownbutton), "clicked", G_CALLBACK(_fcitx_im_widget_movedown_button_clicked), self); g_signal_connect(G_OBJECT(self->configurebutton), "clicked", G_CALLBACK(_fcitx_im_widget_configure_button_clicked), self); _fcitx_im_widget_connect(self); }
void empathy_chatrooms_window_show (GtkWindow *parent) { static EmpathyChatroomsWindow *window = NULL; GtkBuilder *gui; gchar *filename; GtkWidget *sw, *toolbar; GtkStyleContext *context; if (window) { gtk_window_present (GTK_WINDOW (window->window)); return; } window = g_new0 (EmpathyChatroomsWindow, 1); filename = empathy_file_lookup ("empathy-chatrooms-window.ui", "src"); gui = empathy_builder_get_file (filename, "chatrooms_window", &window->window, "hbox_account", &window->hbox_account, "label_account", &window->label_account, "sw_room_list", &sw, "treeview", &window->treeview, "toolbar_remove", &toolbar, "button_remove", &window->button_remove, "button_close", &window->button_close, NULL); g_free (filename); /* join the remove toolbar to the treeview */ context = gtk_widget_get_style_context (sw); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); empathy_builder_connect (gui, window, "chatrooms_window", "destroy", chatrooms_window_destroy_cb, "button_remove", "clicked", chatrooms_window_button_remove_clicked_cb, "button_close", "clicked", chatrooms_window_button_close_clicked_cb, NULL); g_object_unref (gui); g_object_add_weak_pointer (G_OBJECT (window->window), (gpointer) &window); /* Get the session and chat room manager */ window->manager = empathy_chatroom_manager_dup_singleton (NULL); g_signal_connect (window->manager, "chatroom-added", G_CALLBACK (chatrooms_window_chatroom_added_cb), window); g_signal_connect (window->manager, "chatroom-removed", G_CALLBACK (chatrooms_window_chatroom_removed_cb), window); /* Account chooser for chat rooms */ window->account_chooser = empathy_account_chooser_new (); empathy_account_chooser_set_filter (EMPATHY_ACCOUNT_CHOOSER (window->account_chooser), empathy_account_chooser_filter_supports_chatrooms, NULL); g_object_set (window->account_chooser, "has-all-option", TRUE, NULL); empathy_account_chooser_set_account (EMPATHY_ACCOUNT_CHOOSER (window->account_chooser), NULL); gtk_box_pack_start (GTK_BOX (window->hbox_account), window->account_chooser, TRUE, TRUE, 0); g_signal_connect (window->account_chooser, "changed", G_CALLBACK (chatrooms_window_account_changed_cb), window); gtk_widget_show (window->account_chooser); /* Set up chatrooms */ chatrooms_window_model_setup (window); /* Set focus */ gtk_widget_grab_focus (window->treeview); /* Last touches */ if (parent) { gtk_window_set_transient_for (GTK_WINDOW (window->window), GTK_WINDOW (parent)); } gtk_widget_show (window->window); }
void setup_xkb_tabs (GtkBuilder * dialog) { GtkWidget *widget; GtkStyleContext *context; GtkWidget *chk_new_windows_inherit_layout; chk_new_windows_inherit_layout = WID ("chk_new_windows_inherit_layout"); xkb_desktop_settings = g_settings_new (GKBD_DESKTOP_SCHEMA); xkb_keyboard_settings = g_settings_new (GKBD_KEYBOARD_SCHEMA); engine = xkl_engine_get_instance (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); config_registry = xkl_config_registry_get_instance (engine); gkbd_desktop_config_init (&desktop_config, engine); gkbd_desktop_config_load (&desktop_config); xkl_config_registry_load (config_registry, desktop_config.load_extra_items); gkbd_keyboard_config_init (&initial_config, engine); gkbd_keyboard_config_load_from_x_initial (&initial_config, NULL); /* Set initial state */ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("chk_separate_group_per_window")), g_settings_get_boolean (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (chk_new_windows_inherit_layout), xkb_get_default_group () < 0); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_separate_group_per_window"), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_new_windows_inherit_layout"), "sensitive", G_SETTINGS_BIND_DEFAULT); g_settings_bind (xkb_desktop_settings, GKBD_DESKTOP_CONFIG_KEY_GROUP_PER_WINDOW, WID ("chk_new_windows_default_layout"), "sensitive", G_SETTINGS_BIND_DEFAULT); xkb_layouts_prepare_selected_tree (dialog); xkb_layouts_fill_selected_tree (dialog); xkb_layouts_register_buttons_handlers (dialog); g_signal_connect (G_OBJECT (WID ("xkb_reset_to_defaults")), "clicked", G_CALLBACK (reset_to_defaults), dialog); g_signal_connect (G_OBJECT (chk_new_windows_inherit_layout), "toggled", G_CALLBACK (chk_new_windows_inherit_layout_toggled), dialog); g_signal_connect_swapped (G_OBJECT (WID ("xkb_layout_options")), "clicked", G_CALLBACK (xkb_options_popup_dialog), dialog); xkb_layouts_register_conf_listener (dialog); xkb_options_register_conf_listener (dialog); g_object_weak_ref (G_OBJECT (WID ("region_notebook")), (GWeakNotify) cleanup_xkb_tabs, dialog); enable_disable_restoring (dialog); /* Setup junction between toolbar and treeview */ widget = WID ("xkb_layouts_swindow"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = WID ("layouts-toolbar"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); }
static void tpaw_irc_network_chooser_dialog_constructed (GObject *object) { TpawIrcNetworkChooserDialog *self = (TpawIrcNetworkChooserDialog *) object; GtkDialog *dialog = GTK_DIALOG (self); GtkCellRenderer *renderer; GtkWidget *vbox; GtkTreeViewColumn *column; GtkWidget *scroll; GtkWidget *toolbar; GtkToolItem *item; GtkStyleContext *context; g_assert (self->priv->settings != NULL); gtk_window_set_title (GTK_WINDOW (self), _("Choose an IRC network")); /* Create store and treeview */ self->priv->store = gtk_list_store_new (2, G_TYPE_OBJECT, G_TYPE_STRING); gtk_tree_sortable_set_sort_column_id ( GTK_TREE_SORTABLE (self->priv->store), COL_NETWORK_NAME, GTK_SORT_ASCENDING); self->priv->treeview = gtk_tree_view_new (); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self->priv->treeview), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (self->priv->treeview), FALSE); column = gtk_tree_view_column_new (); gtk_tree_view_append_column (GTK_TREE_VIEW (self->priv->treeview), column); renderer = gtk_cell_renderer_text_new (); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (column), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (column), renderer, "text", COL_NETWORK_NAME, NULL); /* add the treeview in a GtkScrolledWindow */ vbox = gtk_dialog_get_content_area (dialog); scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (scroll), self->priv->treeview); gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 6); /* Treeview toolbar */ toolbar = gtk_toolbar_new (); gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU); gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0); item = gtk_tool_button_new (NULL, ""); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-add-symbolic"); g_signal_connect (item, "clicked", G_CALLBACK (add_clicked_cb), self); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, ""); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-remove-symbolic"); g_signal_connect (item, "clicked", G_CALLBACK (remove_clicked_cb), self); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); item = gtk_tool_button_new (NULL, ""); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "preferences-system-symbolic"); g_signal_connect (item, "clicked", G_CALLBACK (edit_clicked_cb), self); gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1); context = gtk_widget_get_style_context (scroll); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (toolbar); gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); /* Live search */ self->priv->search = tpaw_live_search_new (self->priv->treeview); gtk_box_pack_start (GTK_BOX (vbox), self->priv->search, FALSE, TRUE, 0); self->priv->filter = GTK_TREE_MODEL_FILTER (gtk_tree_model_filter_new ( GTK_TREE_MODEL (self->priv->store), NULL)); gtk_tree_model_filter_set_visible_func (self->priv->filter, filter_visible_func, self, NULL); gtk_tree_view_set_model (GTK_TREE_VIEW (self->priv->treeview), GTK_TREE_MODEL (self->priv->filter)); self->priv->search_sig = g_signal_connect (self->priv->search, "notify::text", G_CALLBACK (search_text_notify_cb), self); self->priv->activate_sig = g_signal_connect (self->priv->search, "activate", G_CALLBACK (search_activate_cb), self); /* Add buttons */ gtk_dialog_add_buttons (dialog, _("Reset _Networks List"), RESPONSE_RESET, NULL); self->priv->select_button = gtk_dialog_add_button (dialog, C_("verb displayed on a button to select an IRC network", "Select"), GTK_RESPONSE_CLOSE); fill_store (self); g_signal_connect (self->priv->treeview, "cursor-changed", G_CALLBACK (treeview_changed_cb), self); g_signal_connect (self, "response", G_CALLBACK (dialog_response_cb), self); /* Request a side ensuring to display at least some networks */ gtk_widget_set_size_request (GTK_WIDGET (self), -1, 300); gtk_window_set_modal (GTK_WINDOW (self), TRUE); }
PpJobsDialog * pp_jobs_dialog_new (GtkWindow *parent, UserResponseCallback user_callback, gpointer user_data, gchar *printer_name) { GtkStyleContext *context; PpJobsDialog *dialog; GtkWidget *widget; GError *error = NULL; gchar *objects[] = { "jobs-dialog", NULL }; guint builder_result; gchar *title; dialog = g_new0 (PpJobsDialog, 1); dialog->builder = gtk_builder_new (); dialog->parent = GTK_WIDGET (parent); builder_result = gtk_builder_add_objects_from_resource (dialog->builder, "/org/gnome/control-center/printers/jobs-dialog.ui", objects, &error); if (builder_result == 0) { g_warning ("Could not load ui: %s", error->message); g_error_free (error); return NULL; } dialog->dialog = (GtkWidget *) gtk_builder_get_object (dialog->builder, "jobs-dialog"); dialog->user_callback = user_callback; dialog->user_data = user_data; dialog->printer_name = g_strdup (printer_name); dialog->current_job_id = -1; dialog->ref_count = 0; /* connect signals */ g_signal_connect (dialog->dialog, "delete-event", G_CALLBACK (gtk_widget_hide_on_delete), NULL); g_signal_connect (dialog->dialog, "response", G_CALLBACK (jobs_dialog_response_cb), dialog); widget = (GtkWidget*) gtk_builder_get_object (dialog->builder, "job-cancel-button"); g_signal_connect (widget, "clicked", G_CALLBACK (job_process_cb), dialog); widget = (GtkWidget*) gtk_builder_get_object (dialog->builder, "job-hold-button"); g_signal_connect (widget, "clicked", G_CALLBACK (job_process_cb), dialog); widget = (GtkWidget*) gtk_builder_get_object (dialog->builder, "job-release-button"); g_signal_connect (widget, "clicked", G_CALLBACK (job_process_cb), dialog); /* Set junctions */ widget = (GtkWidget*) gtk_builder_get_object (dialog->builder, "queue-scrolledwindow"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); widget = (GtkWidget*) gtk_builder_get_object (dialog->builder, "queue-toolbar"); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); title = g_strdup_printf (_("%s Active Jobs"), printer_name); gtk_window_set_title (GTK_WINDOW (dialog->dialog), title); g_free (title); populate_jobs_list (dialog); gtk_window_set_transient_for (GTK_WINDOW (dialog->dialog), GTK_WINDOW (parent)); gtk_window_present (GTK_WINDOW (dialog->dialog)); gtk_widget_show_all (GTK_WIDGET (dialog->dialog)); return dialog; }
static void anjuta_tabber_render_tab (GtkWidget* widget, GtkWidget* tab, cairo_t* cr, gboolean current, GtkRegionFlags region_flags) { AnjutaTabber* tabber = ANJUTA_TABBER (widget); GtkAllocation alloc; GtkAllocation widget_alloc; gint focus_width; gint tab_curvature; gint tab_overlap; gint tab_begin; gint tab_end; gint xpadding; gint ypadding; GtkStyleContext* context = gtk_widget_get_style_context (widget); if (current) gtk_widget_set_state_flags (tab, GTK_STATE_FLAG_ACTIVE, TRUE); else gtk_widget_unset_state_flags (tab, GTK_STATE_FLAG_ACTIVE); gtk_widget_style_get (widget, "focus-line-width", &focus_width, "tab-curvature", &tab_curvature, "tab-overlap", &tab_overlap, NULL); /* Get border/padding for tab */ gtk_style_context_save (context); gtk_style_context_add_class (context, GTK_STYLE_CLASS_NOTEBOOK); gtk_style_context_add_region (context, GTK_STYLE_REGION_TAB, region_flags); if (current) gtk_style_context_set_state (context, GTK_STATE_FLAG_ACTIVE); if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_TOPLEFT); else gtk_style_context_set_junction_sides (context, GTK_JUNCTION_CORNER_TOPRIGHT); gtk_widget_get_allocation (widget, &widget_alloc); gtk_widget_get_allocation (tab, &alloc); xpadding = focus_width + tabber->priv->tab_hborder; ypadding = focus_width + tabber->priv->tab_vborder; tab_begin = tab_curvature - tab_overlap; tab_end = tab_curvature - tab_overlap; if (region_flags | GTK_REGION_FIRST) tab_begin += tab_overlap; if (region_flags | GTK_REGION_LAST) tab_end += tab_overlap; alloc.x -= widget_alloc.x; alloc.x -= tab_begin; alloc.x -= xpadding; alloc.y -= widget_alloc.y; alloc.y -= ypadding; alloc.width += 2 * (xpadding) + tab_begin + tab_end; alloc.height += 2 * ypadding; gtk_render_extension (context, cr, alloc.x, alloc.y, alloc.width, alloc.height, GTK_POS_BOTTOM); if (gtk_widget_has_focus (widget) && current) { GtkAllocation allocation; gtk_widget_get_allocation (tab, &allocation); gtk_render_focus (context, cr, allocation.x - focus_width, allocation.y - focus_width, allocation.width + 2 * focus_width, allocation.height + 2 * focus_width); } gtk_style_context_restore (context); }
static void gtr_preferences_dialog_init (GtrPreferencesDialog * dlg) { GtrPreferencesDialogPrivate *priv; GtkWidget *action_area; GtkWidget *profiles_toolbar; GtkWidget *profiles_scrolled_window; GtkBuilder *builder; GtkBox *content_area; GtkStyleContext *context; gchar *root_objects[] = { "notebook", "adjustment1", "adjustment2", "adjustment3", "model1", NULL }; dlg->priv = GTR_PREFERENCES_DIALOG_GET_PRIVATE (dlg); priv = dlg->priv; priv->ui_settings = g_settings_new ("org.gnome.gtranslator.preferences.ui"); priv->editor_settings = g_settings_new ("org.gnome.gtranslator.preferences.editor"); priv->files_settings = g_settings_new ("org.gnome.gtranslator.preferences.files"); gtk_dialog_add_buttons (GTK_DIALOG (dlg), GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, GTK_STOCK_HELP, GTK_RESPONSE_HELP, NULL); gtk_window_set_title (GTK_WINDOW (dlg), _("Gtranslator Preferences")); gtk_window_set_resizable (GTK_WINDOW (dlg), FALSE); gtk_window_set_destroy_with_parent (GTK_WINDOW (dlg), TRUE); action_area = gtk_dialog_get_action_area (GTK_DIALOG (dlg)); content_area = GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (dlg))); /* HIG defaults */ gtk_container_set_border_width (GTK_CONTAINER (dlg), 5); gtk_box_set_spacing (content_area, 2); /* 2 * 5 + 2 = 12 */ gtk_container_set_border_width (GTK_CONTAINER (action_area), 5); gtk_box_set_spacing (GTK_BOX (action_area), 4); g_signal_connect (dlg, "response", G_CALLBACK (dialog_response_handler), NULL); builder = gtk_builder_new (); gtk_builder_add_objects_from_resource (builder, "/org/gnome/gtranslator/ui/gtr-preferences-dialog.ui", root_objects, NULL); priv->notebook = GTK_WIDGET (gtk_builder_get_object (builder, "notebook")); g_object_ref (priv->notebook); priv->warn_if_contains_fuzzy_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "warn_if_fuzzy_checkbutton")); priv->autosave_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "autosave_checkbutton")); priv->autosave_interval_spinbutton = GTK_WIDGET (gtk_builder_get_object (builder, "autosave_interval_spinbutton")); priv->autosave_grid = GTK_WIDGET (gtk_builder_get_object (builder, "autosave_grid")); priv->create_backup_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "create_backup_checkbutton")); priv->highlight_syntax_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "highlight_checkbutton")); priv->visible_whitespace_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "visible_whitespace_checkbutton")); priv->use_custom_font_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "use_custom_font_checkbutton")); priv->editor_font_fontbutton = GTK_WIDGET (gtk_builder_get_object (builder, "editor_font_fontbutton")); priv->editor_font_hbox = GTK_WIDGET (gtk_builder_get_object (builder, "editor_font_hbox")); priv->unmark_fuzzy_when_changed_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "unmark_fuzzy_checkbutton")); priv->spellcheck_checkbutton = GTK_WIDGET (gtk_builder_get_object (builder, "spellcheck_checkbutton")); priv->profile_treeview = GTK_WIDGET (gtk_builder_get_object (builder, "profile_treeview")); priv->add_button = GTK_WIDGET (gtk_builder_get_object (builder, "add-button")); priv->edit_button = GTK_WIDGET (gtk_builder_get_object (builder, "edit-button")); priv->delete_button = GTK_WIDGET (gtk_builder_get_object (builder, "delete-button")); profiles_toolbar = GTK_WIDGET (gtk_builder_get_object (builder, "profiles-toolbar")); profiles_scrolled_window = GTK_WIDGET (gtk_builder_get_object (builder, "profiles-scrolledwindow")); priv->plugins_box = GTK_WIDGET (gtk_builder_get_object (builder, "plugins_box")); g_object_unref (builder); gtk_box_pack_start (content_area, priv->notebook, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (priv->notebook), 5); context = gtk_widget_get_style_context (profiles_scrolled_window); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); context = gtk_widget_get_style_context (profiles_toolbar); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); setup_files_pages (dlg); setup_editor_pages (dlg); setup_profile_pages (dlg); setup_plugin_pages (dlg); }
static void gw_settingswindow_init_styles (GwSettingsWindow *window) { //Declarations GtkToolbar *toolbar; GtkStyleContext *context; GtkWidget *widget; //Vocabulary list pane widget = GTK_WIDGET (gw_window_get_object (GW_WINDOW (window), "dictionary_scrolledwindow")); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); gtk_widget_reset_style (widget); toolbar = GTK_TOOLBAR (gw_window_get_object (GW_WINDOW (window), "dictionary_toolbar")); widget = GTK_WIDGET (toolbar); context = gtk_widget_get_style_context (widget); gtk_style_context_add_class (context, "inline-toolbar"); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); gtk_widget_reset_style (widget); { GtkIconTheme *theme; GtkToolItem *item; theme = gtk_icon_theme_get_default (); item = gtk_tool_button_new_from_stock (GTK_STOCK_ADD); if (gtk_icon_theme_has_icon (theme, "list-add-symbolic")) { gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-add-symbolic"); gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (item), NULL); } gtk_toolbar_insert (toolbar, item, -1); gtk_actionable_set_detailed_action_name (GTK_ACTIONABLE (item), "win.add-dictionary"); gtk_widget_show (GTK_WIDGET (item)); item = gtk_tool_button_new_from_stock (GTK_STOCK_REMOVE); if (gtk_icon_theme_has_icon (theme, "list-remove-symbolic")) { gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-remove-symbolic"); gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (item), NULL); } gtk_toolbar_insert (toolbar, item, -1); gtk_actionable_set_detailed_action_name (GTK_ACTIONABLE (item), "win.remove-dictionary"); gtk_widget_show (GTK_WIDGET (item)); } //Vocabulary listitem pane widget = GTK_WIDGET (gw_window_get_object (GW_WINDOW (window), "plugin_scrolledwindow")); context = gtk_widget_get_style_context (widget); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM); gtk_widget_reset_style (widget); toolbar = GTK_TOOLBAR (gw_window_get_object (GW_WINDOW (window), "plugin_toolbar")); widget = GTK_WIDGET (toolbar); context = gtk_widget_get_style_context (widget); gtk_style_context_add_class (context, "inline-toolbar"); gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP); gtk_widget_reset_style (widget); { GtkIconTheme *theme; GtkToolItem *item; theme = gtk_icon_theme_get_default (); item = gtk_tool_button_new_from_stock (GTK_STOCK_ADD); if (gtk_icon_theme_has_icon (theme, "list-add-symbolic")) { gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-add-symbolic"); gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (item), NULL); } gtk_toolbar_insert (toolbar, item, -1); gtk_actionable_set_detailed_action_name (GTK_ACTIONABLE (item), "win.add-plugin"); gtk_widget_show (GTK_WIDGET (item)); item = gtk_tool_button_new_from_stock (GTK_STOCK_REMOVE); if (gtk_icon_theme_has_icon (theme, "list-remove-symbolic")) { gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-remove-symbolic"); gtk_tool_button_set_stock_id (GTK_TOOL_BUTTON (item), NULL); } gtk_toolbar_insert (toolbar, item, -1); gtk_actionable_set_detailed_action_name (GTK_ACTIONABLE (item), "win.remove-plugin"); gtk_widget_show (GTK_WIDGET (item)); } }
static void nemo_toolbar_constructed (GObject *obj) { NemoToolbar *self = NEMO_TOOLBAR (obj); GtkWidget *toolbar; GtkWidget *hbox; GtkToolItem *tool_box; GtkWidget *box; GtkStyleContext *context; G_OBJECT_CLASS (nemo_toolbar_parent_class)->constructed (obj); gtk_style_context_set_junction_sides (gtk_widget_get_style_context (GTK_WIDGET (self)), GTK_JUNCTION_BOTTOM); self->priv->show_location_entry = g_settings_get_boolean (nemo_preferences, NEMO_PREFERENCES_SHOW_LOCATION_ENTRY); /* add the UI */ self->priv->ui_manager = gtk_ui_manager_new (); gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->action_group, 0); toolbar = gtk_toolbar_new (); self->priv->toolbar = toolbar; gtk_box_pack_start (GTK_BOX (self), self->priv->toolbar, TRUE, TRUE, 0); context = gtk_widget_get_style_context (GTK_WIDGET(toolbar)); gtk_style_context_add_class (context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR); /* Back/Forward/Up */ self->priv->navigation_box = gtk_tool_item_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->previous_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_BACK); gtk_container_add (GTK_CONTAINER (box), self->priv->previous_button); self->priv->next_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_FORWARD); gtk_container_add (GTK_CONTAINER (box), self->priv->next_button); self->priv->up_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_UP); gtk_container_add (GTK_CONTAINER (box), self->priv->up_button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_container_add (GTK_CONTAINER (self->priv->navigation_box), GTK_WIDGET (box)); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (self->priv->navigation_box)); gtk_widget_show_all (GTK_WIDGET (self->priv->navigation_box)); gtk_widget_set_margin_right (GTK_WIDGET (self->priv->navigation_box), 6); /* Refresh */ self->priv->refresh_box = gtk_tool_item_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->refresh_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_RELOAD); gtk_container_add (GTK_CONTAINER (box), self->priv->refresh_button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_container_add (GTK_CONTAINER (self->priv->refresh_box), GTK_WIDGET (box)); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (self->priv->refresh_box)); gtk_widget_show_all (GTK_WIDGET (self->priv->refresh_box)); gtk_widget_set_margin_right (GTK_WIDGET (self->priv->refresh_box), 6); /* Home/Computer */ self->priv->location_box = gtk_tool_item_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->home_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_HOME); gtk_container_add (GTK_CONTAINER (box), self->priv->home_button); self->priv->computer_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_COMPUTER); gtk_container_add (GTK_CONTAINER (box), self->priv->computer_button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_container_add (GTK_CONTAINER (self->priv->location_box), GTK_WIDGET (box)); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (self->priv->location_box)); gtk_widget_show_all (GTK_WIDGET (self->priv->location_box)); gtk_widget_set_margin_right (GTK_WIDGET (self->priv->location_box), 6); /* Container to hold the location and pathbars */ self->priv->stack = gtk_stack_new(); gtk_stack_set_transition_type (GTK_STACK (self->priv->stack), GTK_STACK_TRANSITION_TYPE_CROSSFADE); gtk_stack_set_transition_duration (GTK_STACK (self->priv->stack), 150); /* Regular Path Bar */ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_box_pack_start (GTK_BOX (hbox), GTK_WIDGET (self->priv->stack), TRUE, TRUE, 0); self->priv->path_bar = g_object_new (NEMO_TYPE_PATH_BAR, NULL); gtk_stack_add_named(GTK_STACK (self->priv->stack), GTK_WIDGET (self->priv->path_bar), "path_bar"); /* Entry-Like Location Bar */ self->priv->location_bar = nemo_location_bar_new (); gtk_stack_add_named(GTK_STACK (self->priv->stack), GTK_WIDGET (self->priv->location_bar), "location_bar"); gtk_widget_show_all (hbox); tool_box = gtk_tool_item_new (); gtk_tool_item_set_expand (tool_box, TRUE); gtk_container_add (GTK_CONTAINER (tool_box), hbox); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (tool_box)); gtk_widget_show (GTK_WIDGET (tool_box)); /* Search/Open in Terminal/New Folder/Toggle Location */ self->priv->tools_box = gtk_tool_item_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->toggle_location_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_TOGGLE_LOCATION); gtk_container_add (GTK_CONTAINER (box), self->priv->toggle_location_button); self->priv->open_terminal_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_OPEN_IN_TERMINAL); gtk_container_add (GTK_CONTAINER (box), self->priv->open_terminal_button); self->priv->new_folder_button = toolbar_create_toolbutton (self, FALSE, NEMO_ACTION_NEW_FOLDER); gtk_container_add (GTK_CONTAINER (box), self->priv->new_folder_button); self->priv->search_button = toolbar_create_toolbutton (self, TRUE, NEMO_ACTION_SEARCH); gtk_container_add (GTK_CONTAINER (box), self->priv->search_button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_container_add (GTK_CONTAINER (self->priv->tools_box), GTK_WIDGET (box)); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (self->priv->tools_box)); gtk_widget_show_all (GTK_WIDGET (self->priv->tools_box)); gtk_widget_set_margin_left (GTK_WIDGET (self->priv->tools_box), 6); setup_root_info_bar (self); /* View Select */ self->priv->view_box = gtk_tool_item_new (); box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); self->priv->icon_view_button = toolbar_create_toolbutton (self, TRUE, NEMO_ACTION_ICON_VIEW); gtk_container_add (GTK_CONTAINER (box), self->priv->icon_view_button); self->priv->list_view_button = toolbar_create_toolbutton (self, TRUE, NEMO_ACTION_LIST_VIEW); gtk_container_add (GTK_CONTAINER (box), self->priv->list_view_button); self->priv->compact_view_button = toolbar_create_toolbutton (self, TRUE, NEMO_ACTION_COMPACT_VIEW); gtk_container_add (GTK_CONTAINER (box), self->priv->compact_view_button); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_LINKED); gtk_container_add (GTK_CONTAINER (self->priv->view_box), GTK_WIDGET (box)); gtk_container_add (GTK_CONTAINER (self->priv->toolbar), GTK_WIDGET (self->priv->view_box)); gtk_widget_show_all (GTK_WIDGET (self->priv->view_box)); gtk_widget_set_margin_left (GTK_WIDGET (self->priv->view_box), 6); /* nemo patch */ g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_PREVIOUS_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_NEXT_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_UP_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_EDIT_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_RELOAD_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_HOME_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_COMPUTER_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_SEARCH_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_NEW_FOLDER_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_OPEN_IN_TERMINAL_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_ICON_VIEW_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_LIST_VIEW_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_COMPACT_VIEW_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); toolbar_update_appearance (self); }
static void nemo_toolbar_constructed (GObject *obj) { NemoToolbar *self = NEMO_TOOLBAR (obj); GtkToolItem *item; GtkBox *hbox; GtkToolbar *toolbar, *secondary_toolbar; GtkWidget *search; GtkStyleContext *context; GtkWidget *sep_space; G_OBJECT_CLASS (nemo_toolbar_parent_class)->constructed (obj); gtk_style_context_set_junction_sides (gtk_widget_get_style_context (GTK_WIDGET (self)), GTK_JUNCTION_BOTTOM); /* add the UI */ self->priv->ui_manager = gtk_ui_manager_new (); gtk_ui_manager_add_ui_from_resource (self->priv->ui_manager, "/org/nemo/nemo-toolbar-ui.xml", NULL); gtk_ui_manager_insert_action_group (self->priv->ui_manager, self->priv->action_group, 0); toolbar = GTK_TOOLBAR (gtk_ui_manager_get_widget (self->priv->ui_manager, "/Toolbar")); self->priv->toolbar = toolbar; secondary_toolbar = GTK_TOOLBAR (gtk_ui_manager_get_widget (self->priv->ui_manager, "/SecondaryToolbar")); self->priv->secondary_toolbar = secondary_toolbar; gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_BUTTON); gtk_toolbar_set_icon_size (GTK_TOOLBAR (secondary_toolbar), GTK_ICON_SIZE_MENU); context = gtk_widget_get_style_context (GTK_WIDGET(toolbar)); gtk_style_context_add_class (context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR); context = gtk_widget_get_style_context (GTK_WIDGET(secondary_toolbar)); gtk_style_context_add_class (context, GTK_STYLE_CLASS_PRIMARY_TOOLBAR); //search = gtk_ui_manager_get_widget (self->priv->ui_manager, "/Toolbar/Search"); //gtk_style_context_add_class (gtk_widget_get_style_context (search), GTK_STYLE_CLASS_RAISED); //gtk_widget_set_name (search, "nemo-search-button"); hbox = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); gtk_box_pack_start (hbox, GTK_WIDGET(self->priv->toolbar), TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET(self->priv->toolbar)); gtk_toolbar_set_show_arrow (self->priv->secondary_toolbar, FALSE); gtk_box_pack_start (hbox, GTK_WIDGET(self->priv->secondary_toolbar), FALSE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET(self->priv->secondary_toolbar)); gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET(hbox), TRUE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET(hbox)); hbox = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0)); gtk_widget_show (GTK_WIDGET(hbox)); /* regular path bar */ self->priv->path_bar = g_object_new (NEMO_TYPE_PATH_BAR, NULL); /* entry-like location bar */ self->priv->location_bar = nemo_location_bar_new (); gtk_box_pack_start (GTK_BOX (hbox), self->priv->location_bar, TRUE, TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox), self->priv->path_bar, TRUE, TRUE, 0); item = gtk_tool_item_new (); gtk_tool_item_set_expand (item, TRUE); gtk_container_add (GTK_CONTAINER (item), GTK_WIDGET(hbox)); /* append to the end of the toolbar so navigation buttons are at the beginning */ gtk_toolbar_insert (GTK_TOOLBAR (self->priv->toolbar), item, 8); gtk_widget_show (GTK_WIDGET (item)); setup_root_info_bar (self); /* search bar */ self->priv->search_bar = nemo_search_bar_new (); gtk_box_pack_start (GTK_BOX (self), self->priv->search_bar, TRUE, TRUE, 0); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_LOCATION_ENTRY, G_CALLBACK (toolbar_update_appearance), self); /* nemo patch */ g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_UP_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_EDIT_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_RELOAD_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_HOME_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_COMPUTER_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_SEARCH_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_SHOW_LABEL_SEARCH_ICON_TOOLBAR, G_CALLBACK (toolbar_update_appearance), self); toolbar_update_appearance (self); }