static void panel_menu_bar_size_allocate(GtkWidget* widget, GtkAllocation* allocation) { GtkAllocation old_allocation; GtkAllocation widget_allocation; PanelBackground* background; gtk_widget_get_allocation(widget, &widget_allocation); old_allocation.x = widget_allocation.x; old_allocation.y = widget_allocation.y; old_allocation.width = widget_allocation.width; old_allocation.height = widget_allocation.height; GTK_WIDGET_CLASS(panel_menu_bar_parent_class)->size_allocate (widget, allocation); if (old_allocation.x == allocation->x && old_allocation.y == allocation->y && old_allocation.width == allocation->width && old_allocation.height == allocation->height) { return; } background = &PANEL_MENU_BAR(widget)->priv->panel->background; if (background->type == PANEL_BACK_NONE || (background->type == PANEL_BACK_COLOR && !background->has_alpha)) { return; } panel_menu_bar_change_background(PANEL_MENU_BAR(widget)); }
static void panel_action_protocol_main_menu (GdkScreen *screen, guint32 activate_time) { PanelWidget *panel_widget; GtkWidget *menu; AppletInfo *info; info = panel_applet_get_by_type (PANEL_OBJECT_MENU_BAR, screen); if (info) { panel_menu_bar_popup_menu (PANEL_MENU_BAR (info->widget), activate_time); return; } info = panel_applet_get_by_type (PANEL_OBJECT_MENU, screen); if (info && panel_menu_button_is_main_menu (PANEL_MENU_BUTTON (info->widget))) { panel_menu_button_popup_menu (PANEL_MENU_BUTTON (info->widget), 1, activate_time); return; } panel_widget = panels->data; menu = create_main_menu (panel_widget); panel_toplevel_push_autohide_disabler (panel_widget->toplevel); gtk_menu_set_screen (GTK_MENU (menu), screen); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, activate_time); }
static void panel_menu_bar_parent_set(GtkWidget* widget, GtkWidget* previous_parent) { PanelMenuBar* menubar = PANEL_MENU_BAR(widget); GtkWidget* parent; parent = gtk_widget_get_parent(widget); g_assert(!parent || PANEL_IS_WIDGET(parent)); menubar->priv->panel = (PanelWidget*) parent; if (menubar->priv->applications_menu) { mate_panel_applet_menu_set_recurse(GTK_MENU(menubar->priv->applications_menu), "menu_panel", menubar->priv->panel); } if (menubar->priv->places_item) { panel_place_menu_item_set_panel(menubar->priv->places_item, menubar->priv->panel); } if (menubar->priv->desktop_item) { panel_desktop_menu_item_set_panel(menubar->priv->desktop_item, menubar->priv->panel); } }
static void applet_callback_callback (GtkWidget *widget, AppletUserMenu *menu) { GdkScreen *screen; g_return_if_fail (menu->info != NULL); screen = applet_user_menu_get_screen (menu); switch (menu->info->type) { case PANEL_OBJECT_LAUNCHER: if (!strcmp (menu->name, "launch")) launcher_launch (menu->info->data, widget); else if (!strcmp (menu->name, "properties")) launcher_properties (menu->info->data); break; case PANEL_OBJECT_DRAWER: if (strcmp (menu->name, "add") == 0) { Drawer *drawer = menu->info->data; panel_addto_present (GTK_MENU_ITEM (widget), panel_toplevel_get_panel_widget (drawer->toplevel)); } else if (strcmp (menu->name, "properties") == 0) { Drawer *drawer = menu->info->data; panel_properties_dialog_present (drawer->toplevel); } else if (strcmp (menu->name, "help") == 0) { panel_show_help (screen, "user-guide", "gospanel-18", NULL); } break; case PANEL_OBJECT_MENU: panel_menu_button_invoke_menu ( PANEL_MENU_BUTTON (menu->info->widget), menu->name); break; case PANEL_OBJECT_ACTION: case PANEL_OBJECT_LOGOUT: case PANEL_OBJECT_LOCK: panel_action_button_invoke_menu ( PANEL_ACTION_BUTTON (menu->info->widget), menu->name); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_invoke_menu ( PANEL_MENU_BAR (menu->info->widget), menu->name); break; case PANEL_OBJECT_APPLET: /* * Applet's menu's are handled differently */ break; case PANEL_OBJECT_SEPARATOR: break; default: g_assert_not_reached (); break; } }
static void panel_menu_bar_finalize (GObject* object) { PanelMenuBar* menubar; menubar = PANEL_MENU_BAR (object); if (menubar->priv->settings != NULL) { g_object_unref (menubar->priv->settings); menubar->priv->settings = NULL; } }
static void panel_menu_bar_style_updated (GtkWidget *widget) { PanelMenuBar *menubar = PANEL_MENU_BAR (widget); gboolean visible; GTK_WIDGET_CLASS (panel_menu_bar_parent_class)->style_updated (widget); gtk_widget_style_get (widget, "icon-visible", &visible, NULL); if (visible) gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menubar->priv->applications_item), menubar->priv->image); else gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menubar->priv->applications_item), NULL); }
static void panel_menu_bar_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) { PanelMenuBar* menubar; g_return_if_fail (PANEL_IS_MENU_BAR (object)); menubar = PANEL_MENU_BAR(object); switch (prop_id) { case PROP_ORIENTATION: panel_menu_bar_set_orientation(menubar, g_value_get_enum(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
void orientation_change (AppletInfo *info, PanelWidget *panel) { PanelOrientation orientation; orientation = panel_widget_get_applet_orientation (panel); switch (info->type) { case PANEL_OBJECT_APPLET: mate_panel_applet_frame_change_orientation ( MATE_PANEL_APPLET_FRAME (info->widget), orientation); break; case PANEL_OBJECT_MENU: case PANEL_OBJECT_LAUNCHER: case PANEL_OBJECT_ACTION: button_widget_set_orientation (BUTTON_WIDGET (info->widget), orientation); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_set_orientation (PANEL_MENU_BAR (info->widget), orientation); break; case PANEL_OBJECT_DRAWER: { Drawer *drawer = info->data; PanelWidget *panel_widget; panel_widget = panel_toplevel_get_panel_widget (drawer->toplevel); button_widget_set_orientation (BUTTON_WIDGET (info->widget), orientation); gtk_widget_queue_resize (GTK_WIDGET (drawer->toplevel)); gtk_container_foreach (GTK_CONTAINER (panel_widget), orient_change_foreach, panel_widget); } break; case PANEL_OBJECT_SEPARATOR: panel_separator_set_orientation (PANEL_SEPARATOR (info->widget), orientation); break; default: break; } }
void back_change (AppletInfo *info, PanelWidget *panel) { switch (info->type) { case PANEL_OBJECT_APPLET: mate_panel_applet_frame_change_background ( MATE_PANEL_APPLET_FRAME (info->widget), panel->background.type); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_change_background (PANEL_MENU_BAR (info->widget)); break; case PANEL_OBJECT_SEPARATOR: panel_separator_change_background (PANEL_SEPARATOR (info->widget)); break; default: break; } }
static void applet_callback_callback (GtkWidget *widget, AppletUserMenu *menu) { g_return_if_fail (menu->info != NULL); switch (menu->info->type) { case PANEL_OBJECT_LAUNCHER: if (!strcmp (menu->name, "launch")) launcher_launch (menu->info->data, widget); else if (!strcmp (menu->name, "properties")) launcher_properties (menu->info->data); break; case PANEL_OBJECT_MENU: panel_menu_button_invoke_menu ( PANEL_MENU_BUTTON (menu->info->widget), menu->name); break; case PANEL_OBJECT_ACTION: panel_action_button_invoke_menu ( PANEL_ACTION_BUTTON (menu->info->widget), menu->name); break; case PANEL_OBJECT_MENU_BAR: panel_menu_bar_invoke_menu ( PANEL_MENU_BAR (menu->info->widget), menu->name); break; case PANEL_OBJECT_APPLET: /* * Applet's menu's are handled differently */ break; case PANEL_OBJECT_SEPARATOR: case PANEL_OBJECT_USER_MENU: break; default: g_assert_not_reached (); break; } }