static void panel_action_button_load (PanelActionButtonType type, PanelWidget *panel, gboolean locked, int position, gboolean exactpos, const char *id, gboolean compatibility) { PanelActionButton *button; PanelObjectType object_type; g_return_if_fail (panel != NULL); button = g_object_new (PANEL_TYPE_ACTION_BUTTON, "action-type", type, NULL); object_type = PANEL_OBJECT_ACTION; if (compatibility) { /* Backward compatibility with MATE 2.0.x */ if (type == PANEL_ACTION_LOCK) { object_type = PANEL_OBJECT_LOCK; } else if (type == PANEL_ACTION_LOGOUT) { object_type = PANEL_OBJECT_LOGOUT; } } button->priv->info = mate_panel_applet_register (GTK_WIDGET (button), NULL, NULL, panel, locked, position, exactpos, object_type, id); if (!button->priv->info) { gtk_widget_destroy (GTK_WIDGET (button)); return; } mate_panel_applet_add_callback (button->priv->info, "help", GTK_STOCK_HELP, _("_Help"), NULL); panel_widget_set_applet_expandable (panel, GTK_WIDGET (button), FALSE, TRUE); panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (button), TRUE); if (actions [button->priv->type].setup_menu) actions [button->priv->type].setup_menu (button); panel_action_button_connect_to_mateconf (button); g_signal_connect (button, "style-set", G_CALLBACK (panel_action_button_style_set), NULL); }
static void panel_menu_button_load (const char *menu_path, gboolean use_menu_path, const char *custom_icon, gboolean use_custom_icon, const char *tooltip, PanelWidget *panel, gboolean locked, int position, gboolean exactpos, gboolean has_arrow, const char *id) { PanelMenuButton *button; AppletInfo *info; g_return_if_fail (panel != NULL); button = g_object_new (PANEL_TYPE_MENU_BUTTON, "menu-path", menu_path, "custom-icon", custom_icon, "tooltip", tooltip, "use-menu-path", use_menu_path, "use-custom-icon", use_custom_icon, "has-arrow", has_arrow, NULL); info = mate_panel_applet_register (GTK_WIDGET (button), NULL, NULL, panel, locked, position, exactpos, PANEL_OBJECT_MENU, id); if (!info) { gtk_widget_destroy (GTK_WIDGET (button)); return; } button->priv->applet_id = g_strdup (info->id); mate_panel_applet_add_callback (info, "help", GTK_STOCK_HELP, _("_Help"), NULL); if (!panel_lockdown_get_locked_down () && (panel_is_program_in_path ("mozo") || panel_is_program_in_path ("matemenu-simple-editor"))) mate_panel_applet_add_callback (info, "edit", NULL, _("_Edit Menus"), NULL); panel_widget_set_applet_expandable (panel, GTK_WIDGET (button), FALSE, TRUE); panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (button), TRUE); panel_menu_button_connect_to_gsettings (button); panel_lockdown_notify_add (G_CALLBACK (panel_menu_button_recreate_menu), button); }
static void panel_action_button_load (PanelActionButtonType type, PanelWidget *panel, gboolean locked, int position, gboolean exactpos, const char *id) { PanelActionButton *button; g_return_if_fail (panel != NULL); button = g_object_new (PANEL_TYPE_ACTION_BUTTON, "action-type", type, NULL); button->priv->info = mate_panel_applet_register (GTK_WIDGET (button), NULL, NULL, panel, locked, position, exactpos, PANEL_OBJECT_ACTION, id); if (!button->priv->info) { gtk_widget_destroy (GTK_WIDGET (button)); return; } mate_panel_applet_add_callback (button->priv->info, "help", #if GTK_CHECK_VERSION (3, 10, 0) "help-browser", #else GTK_STOCK_HELP, #endif _("_Help"), NULL); panel_widget_set_applet_expandable (panel, GTK_WIDGET (button), FALSE, TRUE); panel_widget_set_applet_size_constrained (panel, GTK_WIDGET (button), TRUE); if (actions [button->priv->type].setup_menu) actions [button->priv->type].setup_menu (button); panel_action_button_connect_to_gsettings (button); }
static void panel_menu_bar_load(PanelWidget* panel, gboolean locked, int position, gboolean exactpos, const char* id) { PanelMenuBar* menubar; g_return_if_fail (panel != NULL); menubar = g_object_new(PANEL_TYPE_MENU_BAR, NULL); menubar->priv->info = mate_panel_applet_register(GTK_WIDGET(menubar), NULL, NULL, panel, locked, position, exactpos, PANEL_OBJECT_MENU_BAR, id); if (!menubar->priv->info) { gtk_widget_destroy(GTK_WIDGET(menubar)); return; } mate_panel_applet_add_callback(menubar->priv->info, "help", GTK_STOCK_HELP, _("_Help"), NULL); /* Menu editors */ if (!panel_lockdown_get_locked_down () && (panel_is_program_in_path("mozo") || panel_is_program_in_path("matemenu-simple-editor"))) { mate_panel_applet_add_callback (menubar->priv->info, "edit", NULL, _("_Edit Menus"), NULL); } g_signal_connect_after(menubar, "focus-in-event", G_CALLBACK(gtk_widget_queue_draw), menubar); g_signal_connect_after(menubar, "focus-out-event", G_CALLBACK(gtk_widget_queue_draw), menubar); #if GTK_CHECK_VERSION (3, 0, 0) g_signal_connect_after(menubar, "draw", G_CALLBACK(panel_menu_bar_on_draw), menubar); #else g_signal_connect_after(menubar, "expose-event", G_CALLBACK(panel_menu_bar_on_expose), menubar); #endif gtk_widget_set_can_focus(GTK_WIDGET(menubar), TRUE); panel_widget_set_applet_expandable(panel, GTK_WIDGET(menubar), FALSE, TRUE); panel_menu_bar_update_visibility(menubar->priv->settings, NULL, menubar); }
static void load_drawer_applet (char *toplevel_id, GSettings *settings, const char *custom_icon, gboolean use_custom_icon, const char *tooltip, PanelToplevel *parent_toplevel, gboolean locked, int pos, gboolean exactpos, const char *id) { PanelOrientation orientation; PanelToplevel *toplevel = NULL; Drawer *drawer = NULL; PanelWidget *panel_widget; orientation = panel_toplevel_get_orientation (parent_toplevel); if (toplevel_id) toplevel = panel_profile_get_toplevel_by_id (toplevel_id); if (!toplevel) toplevel = create_drawer_toplevel (id, settings); if (toplevel) { panel_toplevel_hide (toplevel, FALSE, -1); drawer = create_drawer_applet (toplevel, parent_toplevel, tooltip, custom_icon, use_custom_icon, orientation); } if (!drawer) return; panel_widget = panel_toplevel_get_panel_widget (parent_toplevel); drawer->info = mate_panel_applet_register (drawer->button, drawer, (GDestroyNotify) g_free, panel_widget, locked, pos, exactpos, PANEL_OBJECT_DRAWER, id); if (!drawer->info) { gtk_widget_destroy (GTK_WIDGET (toplevel)); return; } g_signal_connect_after (drawer->button, "size_allocate", G_CALLBACK (drawer_button_size_allocated), drawer); panel_widget_add_forbidden (panel_toplevel_get_panel_widget (drawer->toplevel)); panel_widget_set_applet_expandable (panel_widget, GTK_WIDGET (drawer->button), FALSE, TRUE); panel_widget_set_applet_size_constrained (panel_widget, GTK_WIDGET (drawer->button), TRUE); mate_panel_applet_add_callback (drawer->info, "add", "list-add", _("_Add to Drawer..."), drawer_changes_enabled); mate_panel_applet_add_callback (drawer->info, "properties", "document-properties", _("_Properties"), drawer_changes_enabled); mate_panel_applet_add_callback (drawer->info, "help", "help-browser", _("_Help"), NULL); panel_drawer_connect_to_gsettings (drawer); }