static void xviewer_properties_dialog_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { XviewerPropertiesDialog *prop_dlg = XVIEWER_PROPERTIES_DIALOG (object); switch (prop_id) { case PROP_THUMBVIEW: prop_dlg->priv->thumbview = g_value_get_object (value); break; case PROP_NETBOOK_MODE: xviewer_properties_dialog_set_netbook_mode (prop_dlg, g_value_get_boolean (value)); break; case PROP_NEXT_ACTION: gtk_activatable_set_related_action (GTK_ACTIVATABLE (prop_dlg->priv->next_button), g_value_get_object(value)); gtk_button_set_always_show_image(GTK_BUTTON(prop_dlg->priv->next_button), TRUE); break; case PROP_PREV_ACTION: gtk_activatable_set_related_action (GTK_ACTIVATABLE (prop_dlg->priv->previous_button), g_value_get_object(value)); gtk_button_set_always_show_image(GTK_BUTTON(prop_dlg->priv->previous_button), TRUE); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
/** * gtk_action_create_menu_item: * @action: the action object * * Creates a menu item widget that proxies for the given action. * * Returns: (transfer none): a menu item connected to the action. * * Since: 2.4 */ GtkWidget * gtk_action_create_menu_item (GtkAction *action) { GtkWidget *menu_item; g_return_val_if_fail (GTK_IS_ACTION (action), NULL); menu_item = GTK_ACTION_GET_CLASS (action)->create_menu_item (action); gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (menu_item), TRUE); gtk_activatable_set_related_action (GTK_ACTIVATABLE (menu_item), action); return menu_item; }
/** * gtk_action_create_tool_item: * @action: the action object * * Creates a toolbar item widget that proxies for the given action. * * Returns: (transfer none): a toolbar item connected to the action. * * Since: 2.4 */ GtkWidget * gtk_action_create_tool_item (GtkAction *action) { GtkWidget *button; g_return_val_if_fail (GTK_IS_ACTION (action), NULL); button = GTK_ACTION_GET_CLASS (action)->create_tool_item (action); gtk_activatable_set_use_action_appearance (GTK_ACTIVATABLE (button), TRUE); gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action); return button; }
static GtkWidget * create_menu_item (GtkAction *action) { NemoWidgetAction *widget_action; GType menu_item_type; GtkWidget *w, *ret; gint slot; widget_action = NEMO_WIDGET_ACTION (action); menu_item_type = GTK_ACTION_GET_CLASS (action)->menu_item_type; if (!widget_action->a_used) { w = widget_action->widget_a; widget_action->a_used = TRUE; slot = ACTION_SLOT_A; } else if (!widget_action->b_used) { w = widget_action->widget_b; widget_action->b_used = TRUE; slot = ACTION_SLOT_B; } else return NULL; ret = g_object_new (menu_item_type, "child-widget", w, "action-slot", slot, NULL); gtk_activatable_set_related_action (GTK_ACTIVATABLE (ret), action); return ret; }
static void drag_end_cb (GtkWidget *widget, GdkDragContext *context, EggEditableToolbar *etoolbar) { GtkAction *action; gint flags; if (gtk_widget_get_parent (widget) != NULL) { gtk_widget_show (widget); #if GTK_CHECK_VERSION (2, 16, 0) action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget)); #else action = gtk_widget_get_action (widget); #endif if (action == NULL) return; flags = egg_toolbars_model_get_name_flags (etoolbar->priv->model, gtk_action_get_name (action)); if (!(flags & EGG_TB_MODEL_NAME_INFINITE)) { flags |= EGG_TB_MODEL_NAME_USED; egg_toolbars_model_set_name_flags (etoolbar->priv->model, gtk_action_get_name (action), flags); } } }
static GtkWidget * toolbar_create_toolbutton (NemoToolbar *self, gboolean create_toggle, const gchar *name) { GtkWidget *button; GtkWidget *image; GtkAction *action; if (create_toggle) { button = gtk_toggle_button_new (); } else { button = gtk_button_new (); } image = gtk_image_new (); gtk_button_set_image (GTK_BUTTON (button), image); action = gtk_action_group_get_action (self->priv->action_group, name); gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action); gtk_button_set_label (GTK_BUTTON (button), NULL); gtk_widget_set_tooltip_text (button, gtk_action_get_tooltip (action)); return button; }
/** * _gtk_action_sync_menu_visible: * @action: (allow-none): a #GtkAction, or %NULL to determine the action from @proxy * @proxy: a proxy menu item * @empty: whether the submenu attached to @proxy is empty * * Updates the visibility of @proxy from the visibility of @action * according to the following rules: * <itemizedlist> * <listitem><para>if @action is invisible, @proxy is too * </para></listitem> * <listitem><para>if @empty is %TRUE, hide @proxy unless the "hide-if-empty" * property of @action indicates otherwise * </para></listitem> * </itemizedlist> * * This function is used in the implementation of #GtkUIManager. **/ void _gtk_action_sync_menu_visible (GtkAction *action, GtkWidget *proxy, gboolean empty) { gboolean visible = TRUE; gboolean hide_if_empty = TRUE; g_return_if_fail (GTK_IS_MENU_ITEM (proxy)); g_return_if_fail (action == NULL || GTK_IS_ACTION (action)); if (action == NULL) action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (proxy)); if (action) { /* a GtkMenu for a <popup/> doesn't have to have an action */ visible = gtk_action_is_visible (action); hide_if_empty = action->private_data->hide_if_empty; } if (visible && !(empty && hide_if_empty)) gtk_widget_show (proxy); else gtk_widget_hide (proxy); }
static void mail_attachment_bar_update_status (EMailAttachmentBar *bar) { EAttachmentView *view; EAttachmentStore *store; GtkActivatable *activatable; GtkAction *action; GtkLabel *label; gint num_attachments; guint64 total_size; gchar *display_size; gchar *markup; view = E_ATTACHMENT_VIEW (bar); store = e_attachment_view_get_store (view); label = GTK_LABEL (bar->priv->status_label); num_attachments = e_attachment_store_get_num_attachments (store); total_size = e_attachment_store_get_total_size (store); display_size = g_format_size_for_display (total_size); if (total_size > 0) markup = g_strdup_printf ( "<b>%d</b> %s (%s)", num_attachments, ngettext ( "Attachment", "Attachments", num_attachments), display_size); else markup = g_strdup_printf ( "<b>%d</b> %s", num_attachments, ngettext ( "Attachment", "Attachments", num_attachments)); gtk_label_set_markup (label, markup); g_free (markup); activatable = GTK_ACTIVATABLE (bar->priv->save_all_button); action = gtk_activatable_get_related_action (activatable); gtk_action_set_visible (action, (num_attachments > 1)); activatable = GTK_ACTIVATABLE (bar->priv->save_one_button); action = gtk_activatable_get_related_action (activatable); gtk_action_set_visible (action, (num_attachments == 1)); g_free (display_size); }
GtkWidget * vnr_properties_dialog_new (VnrWindow *vnr_win, GtkAction *next_action, GtkAction *prev_action) { VnrPropertiesDialog *dialog; dialog = g_object_new (VNR_TYPE_PROPERTIES_DIALOG, NULL); dialog->thumbnail = NULL; dialog->vnr_win = vnr_win; gtk_activatable_set_related_action (GTK_ACTIVATABLE(dialog->next_button), next_action); gtk_activatable_set_related_action (GTK_ACTIVATABLE(dialog->prev_button), prev_action); gtk_button_set_label (GTK_BUTTON(dialog->next_button), _("_Next")); gtk_button_set_label (GTK_BUTTON(dialog->prev_button), _("_Previous")); gtk_widget_grab_focus (dialog->close_button); return (GtkWidget *) dialog; }
static void gtk_tool_item_set_use_action_appearance (GtkToolItem *item, gboolean use_appearance) { if (item->priv->use_action_appearance != use_appearance) { item->priv->use_action_appearance = use_appearance; gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (item), item->priv->action); } }
static void gtk_tool_item_dispose (GObject *object) { GtkToolItem *item = GTK_TOOL_ITEM (object); if (item->priv->action) { gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (item), NULL); item->priv->action = NULL; } G_OBJECT_CLASS (gtk_tool_item_parent_class)->dispose (object); }
static void button_clicked (GtkWidget *widget, GtkToolButton *button) { GtkAction *action; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)); if (action) gtk_action_activate (action); g_signal_emit_by_name (button, "clicked"); }
static void gtk_switch_dispose (GObject *object) { GtkSwitchPrivate *priv = GTK_SWITCH (object)->priv; if (priv->action) { gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (object), NULL); priv->action = NULL; } G_OBJECT_CLASS (gtk_switch_parent_class)->dispose (object); }
static void gtk_switch_set_use_action_appearance (GtkSwitch *sw, gboolean use_appearance) { GtkSwitchPrivate *priv = sw->priv; if (priv->use_action_appearance != use_appearance) { priv->use_action_appearance = use_appearance; gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (sw), priv->action); } }
static void gtk_switch_set_related_action (GtkSwitch *sw, GtkAction *action) { GtkSwitchPrivate *priv = sw->priv; if (priv->action == action) return; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (sw), action); priv->action = action; }
static void assign_tooltip_from_action(GtkWidget* widget) { GtkAction* action; const gchar * tooltip; action = gtk_activatable_get_related_action(GTK_ACTIVATABLE(widget)); if (!action) return; if (!gtk_activatable_get_use_action_appearance(GTK_ACTIVATABLE(widget))) return; tooltip = gtk_action_get_tooltip(action); if (tooltip) { gtk_widget_set_tooltip_text(widget, tooltip); gtk_widget_set_has_tooltip(widget, TRUE); } else { gtk_widget_set_has_tooltip(widget, FALSE); } }
static void gimp_ui_manager_menu_item_select (GtkWidget *widget, GimpUIManager *manager) { GtkAction *action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget)); if (action) { const gchar *tooltip = gtk_action_get_tooltip (action); if (tooltip) g_signal_emit (manager, manager_signals[SHOW_TOOLTIP], 0, tooltip); } }
static void gtk_switch_set_use_action_appearance (GtkSwitch *sw, gboolean use_appearance) { GtkSwitchPrivate *priv = sw->priv; if (priv->use_action_appearance != use_appearance) { priv->use_action_appearance = use_appearance; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (sw), priv->action); G_GNUC_END_IGNORE_DEPRECATIONS; } }
static void on_menu_item_selected (GtkWidget *item, LdWindowMain *window) { GtkAction *action; gchar *tooltip; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (item)); g_object_get (G_OBJECT (action), "tooltip", &tooltip, NULL); if (tooltip != NULL) gtk_statusbar_push (GTK_STATUSBAR (window->priv->statusbar), window->priv->statusbar_menu_context_id, tooltip); g_free (tooltip); }
static void gtk_switch_set_related_action (GtkSwitch *sw, GtkAction *action) { GtkSwitchPrivate *priv = sw->priv; if (priv->action == action) return; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (sw), action); G_GNUC_END_IGNORE_DEPRECATIONS; priv->action = action; }
void _gtk_recent_chooser_set_related_action (GtkRecentChooser *recent_chooser, GtkAction *action) { GtkAction *prev_action; prev_action = g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action); if (prev_action == action) return; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (recent_chooser), action); G_GNUC_END_IGNORE_DEPRECATIONS; g_object_set_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action, action); }
static void configure_item_tooltip (GtkToolItem *item) { GtkAction *action; #if GTK_CHECK_VERSION (2, 16, 0) action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (item)); #else action = gtk_widget_get_action (GTK_WIDGET (item)); #endif if (action != NULL) { g_object_notify (G_OBJECT (action), "tooltip"); } }
static void gtk_tool_item_set_related_action (GtkToolItem *item, GtkAction *action) { if (item->priv->action == action) return; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (item), action); item->priv->action = action; if (action) { gtk_tool_item_rebuild_menu (item); } }
static void menu_item_select_cb (GtkMenuItem *proxy, NautilusWindow *window) { GtkAction *action; char *message; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (proxy)); g_return_if_fail (action != NULL); g_object_get (G_OBJECT (action), "tooltip", &message, NULL); if (message) { gtk_statusbar_push (GTK_STATUSBAR (window->details->statusbar), window->details->help_message_cid, message); g_free (message); } }
static void menu_item_select_cb (GtkMenuItem *proxy, AnjutaWindow *win) { GtkAction *action; char *message; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (proxy)); g_return_if_fail (action != NULL); g_object_get (G_OBJECT (action), "tooltip", &message, NULL); if (message) { anjuta_status_push (win->status, "%s", message); g_free (message); } }
static void gtk_switch_dispose (GObject *object) { GtkSwitchPrivate *priv = GTK_SWITCH (object)->priv; g_clear_object (&priv->action_helper); if (priv->action) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (object), NULL); G_GNUC_END_IGNORE_DEPRECATIONS; priv->action = NULL; } G_OBJECT_CLASS (gtk_switch_parent_class)->dispose (object); }
static void button_clicked (GtkWidget *widget, GtkToolButton *button) { GtkAction *action; G_GNUC_BEGIN_IGNORE_DEPRECATIONS; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (button)); if (action) gtk_action_activate (action); G_GNUC_END_IGNORE_DEPRECATIONS; g_signal_emit_by_name (button, "clicked"); }
static void menu_item_select_cb (GtkMenuItem *proxy, ProcData *procdata) { GtkAction *action; char *message; action = gtk_activatable_get_related_action (GTK_ACTIVATABLE(proxy)); g_assert(action); g_object_get (G_OBJECT (action), "tooltip", &message, NULL); if (message) { gtk_statusbar_push (GTK_STATUSBAR (procdata->statusbar), procdata->tip_message_cid, message); g_free (message); } }
static void menu_item_select_cb (GtkWidget * widget, GtkStatusbar * statusbar) { GtkAction *action; gchar *tooltip; guint context_id; context_id = gtk_statusbar_get_context_id (statusbar, "games-tooltip"); action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (widget)); g_return_if_fail (action != NULL); g_object_get (action, "tooltip", &tooltip, NULL); if (tooltip) { gtk_statusbar_push (statusbar, context_id, tooltip); g_free (tooltip); } }
static void menu_item_sync_action_properties (NemoContextMenuMenuItem *menu_item, GtkAction *action) { GtkImageMenuItem *image_menu_item; GtkActivatable *activatable; GtkWidget *image; gboolean use_appearance; image_menu_item = GTK_IMAGE_MENU_ITEM (menu_item); activatable = GTK_ACTIVATABLE (image_menu_item); if (!action) return; use_appearance = gtk_activatable_get_use_action_appearance (activatable); if (!use_appearance) return; image = gtk_image_menu_item_get_image (image_menu_item); if (image && !GTK_IS_IMAGE (image)) { gtk_image_menu_item_set_image (image_menu_item, NULL); image = NULL; } if (!image) { image = gtk_image_new (); gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (activatable), image); } if (!activatable_update_stock_id (image_menu_item, action) && !activatable_update_gicon (image_menu_item, action)) activatable_update_icon_name (image_menu_item, action); gtk_image_menu_item_set_always_show_image (image_menu_item, gtk_action_get_always_show_image (action)); activatable_update_label (GTK_MENU_ITEM (menu_item), action); }