#include <config.h>
#include "gtkaction.h"
+#include "gtkbutton.h"
#include "gtktoolbutton.h"
#include "gtkmenuitem.h"
#include "gtkimagemenuitem.h"
G_CALLBACK (gtk_action_create_menu_proxy),
action, 0);
+ g_signal_connect_object (proxy, "clicked",
+ G_CALLBACK (gtk_action_activate), action,
+ G_CONNECT_SWAPPED);
+ }
+ else if (GTK_IS_BUTTON (proxy))
+ {
+ /* button specific synchronisers ... */
+
+ /* synchronise the label */
+ g_object_set (G_OBJECT (proxy),
+ "label", action->private_data->short_label,
+ "use_underline", TRUE,
+ NULL);
+ g_signal_connect_object (action, "notify::short_label",
+ G_CALLBACK (gtk_action_sync_short_label),
+ proxy, 0);
+
g_signal_connect_object (proxy, "clicked",
G_CALLBACK (gtk_action_activate), action,
G_CONNECT_SWAPPED);
#include "gtktoggleaction.h"
#include "gtktoggleactionprivate.h"
#include "gtktoggletoolbutton.h"
+#include "gtktogglebutton.h"
#include "gtkcheckmenuitem.h"
enum
else if (GTK_IS_TOGGLE_TOOL_BUTTON (proxy))
gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (proxy),
action->private_data->active);
+ else if (GTK_IS_TOGGLE_BUTTON (proxy))
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy),
+ action->private_data->active);
else {
g_warning ("Don't know how to toggle `%s' widgets",
G_OBJECT_TYPE_NAME (proxy));
else if (GTK_IS_TOGGLE_TOOL_BUTTON (proxy))
gtk_toggle_tool_button_set_active (GTK_TOGGLE_TOOL_BUTTON (proxy),
toggle_action->private_data->active);
+ else if (GTK_IS_TOGGLE_BUTTON (proxy))
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (proxy),
+ toggle_action->private_data->active);
(* GTK_ACTION_CLASS (parent_class)->connect_proxy) (action, proxy);
}
const gchar *name = gtk_action_get_name (action);
const gchar *typename = G_OBJECT_TYPE_NAME (action);
- g_message ("Action %s (type=%s) activated (active=%d)", name, typename,
+ g_message ("ToggleAction %s (type=%s) toggled (active=%d)", name, typename,
gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action)));
}
static void
radio_action_changed (GtkAction *action, GtkRadioAction *current)
{
- g_message ("Action %s (type=%s) activated (active=%d) (value %d)",
+ g_message ("RadioAction %s (type=%s) activated (active=%d) (value %d)",
gtk_action_get_name (GTK_ACTION (current)),
G_OBJECT_TYPE_NAME (GTK_ACTION (current)),
gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (current)),
{ "JustifyMenuAction", NULL, "_Justify" },
{ "Test", NULL, "Test" },
- { "QuitAction", GTK_STOCK_QUIT, NULL, "<control>q", NULL, G_CALLBACK (gtk_main_quit) },
- { "NewAction", GTK_STOCK_NEW, NULL, "<control>n", NULL, G_CALLBACK (activate_action) },
- { "New2Action", GTK_STOCK_NEW, NULL, "<control>m", NULL, G_CALLBACK (activate_action) },
- { "OpenAction", GTK_STOCK_OPEN, NULL, "<control>o", NULL, G_CALLBACK (activate_action) },
- { "CutAction", GTK_STOCK_CUT, NULL, "<control>x", NULL, G_CALLBACK (activate_action) },
- { "CopyAction", GTK_STOCK_COPY, NULL, "<control>c", NULL, G_CALLBACK (activate_action) },
- { "PasteAction", GTK_STOCK_PASTE, NULL, "<control>v", NULL, G_CALLBACK (activate_action) },
- { "AboutAction", NULL, "_About", NULL, NULL, G_CALLBACK (activate_action) },
+ { "QuitAction", GTK_STOCK_QUIT, NULL, "<control>q", NULL, G_CALLBACK (gtk_main_quit) },
+ { "NewAction", GTK_STOCK_NEW, NULL, "<control>n", NULL, G_CALLBACK (activate_action) },
+ { "New2Action", GTK_STOCK_NEW, NULL, "<control>m", NULL, G_CALLBACK (activate_action) },
+ { "OpenAction", GTK_STOCK_OPEN, NULL, "<control>o", NULL, G_CALLBACK (activate_action) },
+ { "CutAction", GTK_STOCK_CUT, NULL, "<control>x", NULL, G_CALLBACK (activate_action) },
+ { "CopyAction", GTK_STOCK_COPY, NULL, "<control>c", NULL, G_CALLBACK (activate_action) },
+ { "PasteAction", GTK_STOCK_PASTE, NULL, "<control>v", NULL, G_CALLBACK (activate_action) },
+ { "AboutAction", NULL, "_About", NULL, NULL, G_CALLBACK (activate_action) },
+ { "BoldAction", GTK_STOCK_BOLD, "_Bold", "<control>b", NULL, G_CALLBACK (toggle_action), TRUE },
};
static guint n_entries = G_N_ELEMENTS (entries);
gtk_box_pack_end (GTK_BOX (menu_box), area, FALSE, FALSE, 0);
gtk_widget_show (area);
+ button = gtk_button_new ();
+ gtk_box_pack_end (GTK_BOX (menu_box), button, FALSE, FALSE, 0);
+ gtk_action_connect_proxy (gtk_action_group_get_action (action_group, "AboutAction"),
+ button);
+ gtk_widget_show (button);
+ merge = gtk_ui_manager_new ();
+
+ button = gtk_check_button_new ();
+ gtk_box_pack_end (GTK_BOX (menu_box), button, FALSE, FALSE, 0);
+ gtk_action_connect_proxy (gtk_action_group_get_action (action_group, "BoldAction"),
+ button);
+ gtk_widget_show (button);
merge = gtk_ui_manager_new ();
g_signal_connect (area, "button_press_event",