void panel_action_button_invoke_menu (PanelActionButton *button, const char *callback_name) { g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); g_return_if_fail (callback_name != NULL); g_return_if_fail (button->priv->type > PANEL_ACTION_NONE && button->priv->type < PANEL_ACTION_LAST); if (!strcmp (callback_name, "help")) { GdkScreen *screen; if (!actions [button->priv->type].help_index) return; screen = gtk_widget_get_screen (GTK_WIDGET (button)); panel_show_help (screen, "mate-user-guide", actions [button->priv->type].help_index, NULL); return; } if (actions [button->priv->type].invoke_menu) actions [button->priv->type].invoke_menu (button, callback_name); }
void panel_action_button_set_dnd_enabled (PanelActionButton *button, gboolean enabled) { g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); if (!button->priv->type) return; /* wait until we know what type it is */ enabled = enabled != FALSE; if (button->priv->dnd_enabled == enabled) return; if (enabled) { static GtkTargetEntry dnd_targets [] = { { "application/x-mate-panel-applet-internal", 0, 0 } }; gtk_widget_set_has_window (GTK_WIDGET (button), TRUE); gtk_drag_source_set (GTK_WIDGET (button), GDK_BUTTON1_MASK, dnd_targets, 1, GDK_ACTION_COPY | GDK_ACTION_MOVE); if (actions [button->priv->type].icon_name != NULL) gtk_drag_source_set_icon_name (GTK_WIDGET (button), actions [button->priv->type].icon_name); gtk_widget_set_has_window (GTK_WIDGET (button), FALSE); } else gtk_drag_source_unset (GTK_WIDGET (button)); button->priv->dnd_enabled = enabled; g_object_notify (G_OBJECT (button), "dnd-enabled"); }
static void panel_action_button_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { PanelActionButton *button; g_return_if_fail (PANEL_IS_ACTION_BUTTON (object)); button = PANEL_ACTION_BUTTON (object); switch (prop_id) { case PROP_ACTION_TYPE: panel_action_button_set_type (button, g_value_get_enum (value)); break; case PROP_DND_ENABLED: panel_action_button_set_dnd_enabled (button, g_value_get_boolean (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void panel_action_button_type_changed (GSettings *settings, gchar *key, PanelActionButton *button) { int type; g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); type = g_settings_get_enum (settings, key); panel_action_button_set_type (button, type); }
static void panel_action_lock_invoke_menu (PanelActionButton *button, const char *callback_name) { g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); g_return_if_fail (callback_name != NULL); panel_lock_screen_action (gtk_widget_get_screen (GTK_WIDGET (button)), callback_name); }
void panel_action_button_invoke_menu (PanelActionButton *button, const char *callback_name) { g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); g_return_if_fail (callback_name != NULL); g_return_if_fail (button->priv->type > PANEL_ACTION_NONE && button->priv->type < PANEL_ACTION_LAST); if (actions [button->priv->type].invoke_menu) actions [button->priv->type].invoke_menu (button, callback_name); }
static void panel_action_button_clicked (GtkButton *gtk_button) { PanelActionButton *button; g_return_if_fail (PANEL_IS_ACTION_BUTTON (gtk_button)); button = PANEL_ACTION_BUTTON (gtk_button); g_return_if_fail (button->priv->type > PANEL_ACTION_NONE); g_return_if_fail (button->priv->type < PANEL_ACTION_LAST); if (actions [button->priv->type].invoke) actions [button->priv->type].invoke (GTK_WIDGET (button)); }
static void panel_action_lock_invoke_menu (PanelActionButton *button, const char *callback_name) { g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); g_return_if_fail (callback_name != NULL); if (g_strcmp0 (callback_name, "lock") == 0) panel_screensaver_lock (panel_screensaver_get ()); else if (g_strcmp0 (callback_name, "activate") == 0) panel_screensaver_activate (panel_screensaver_get ()); else if (g_strcmp0 (callback_name, "prefs") == 0) panel_launch_desktop_file ("gnome-screen-panel.desktop", gtk_widget_get_screen (GTK_WIDGET (button)), NULL); else g_assert_not_reached (); }
static void panel_action_button_type_changed (MateConfClient *client, guint cnxn_id, MateConfEntry *entry, PanelActionButton *button) { int type; const char *action_type; g_return_if_fail (PANEL_IS_ACTION_BUTTON (button)); if (!entry->value || entry->value->type != MATECONF_VALUE_STRING) return; action_type = mateconf_value_get_string (entry->value); if (!mateconf_string_to_enum (panel_action_type_map, action_type, &type)) return; panel_action_button_set_type (button, type); }
static void panel_action_button_clicked (GtkButton *gtk_button) { PanelActionButton *button; g_return_if_fail (PANEL_IS_ACTION_BUTTON (gtk_button)); button = PANEL_ACTION_BUTTON (gtk_button); g_return_if_fail (button->priv->type > PANEL_ACTION_NONE); g_return_if_fail (button->priv->type < PANEL_ACTION_LAST); if (panel_global_config_get_drawer_auto_close ()) { PanelToplevel *toplevel; toplevel = PANEL_WIDGET (gtk_widget_get_parent (GTK_WIDGET (button)))->toplevel; if (panel_toplevel_get_is_attached (toplevel)) panel_toplevel_hide (toplevel, FALSE, -1); } if (actions [button->priv->type].invoke) actions [button->priv->type].invoke (GTK_WIDGET (button)); }
static void panel_action_button_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time) { PanelActionButton *button; char *drag_data; g_return_if_fail (PANEL_IS_ACTION_BUTTON (widget)); button = PANEL_ACTION_BUTTON (widget); drag_data = g_strdup_printf ("ACTION:%s:%d", obsolete_enum_to_string (panel_action_type_map, button->priv->type), panel_find_applet_index (widget)); gtk_selection_data_set ( selection_data, gtk_selection_data_get_target (selection_data), 8, (guchar *) drag_data, strlen (drag_data)); g_free (drag_data); }