[gtk+/gtk-2-90] Use an array and new toolbar API in testgtk
- From: Christian Dywan <cdywan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-90] Use an array and new toolbar API in testgtk
- Date: Wed, 31 Mar 2010 13:08:06 +0000 (UTC)
commit c96fbc12075da65308828fe116d377667f2bf69a
Author: Christian Dywan <christian twotoasts de>
Date: Wed Mar 31 15:08:13 2010 +0200
Use an array and new toolbar API in testgtk
tests/testgtk.c | 273 +++++++++++++++++++++++++------------------------------
1 files changed, 125 insertions(+), 148 deletions(-)
---
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 8a259a5..16c69af 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -1361,14 +1361,14 @@ static void
set_toolbar_horizontal (GtkWidget *widget,
gpointer data)
{
- gtk_toolbar_set_orientation (GTK_TOOLBAR (data), GTK_ORIENTATION_HORIZONTAL);
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (data), GTK_ORIENTATION_HORIZONTAL);
}
static void
set_toolbar_vertical (GtkWidget *widget,
gpointer data)
{
- gtk_toolbar_set_orientation (GTK_TOOLBAR (data), GTK_ORIENTATION_VERTICAL);
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (data), GTK_ORIENTATION_VERTICAL);
}
static void
@@ -1403,25 +1403,67 @@ static void
set_toolbar_enable (GtkWidget *widget,
gpointer data)
{
- gtk_toolbar_set_tooltips (GTK_TOOLBAR (data), TRUE);
+ GtkSettings *settings = gtk_widget_get_settings (widget);
+ g_object_set (settings, "gtk-enable-tooltips", TRUE, NULL);
}
static void
set_toolbar_disable (GtkWidget *widget,
gpointer data)
{
- gtk_toolbar_set_tooltips (GTK_TOOLBAR (data), FALSE);
-}
+ GtkSettings *settings = gtk_widget_get_settings (widget);
+ g_object_set (settings, "gtk-enable-tooltips", FALSE, NULL);
+}
+
+static GtkActionEntry create_toolbar_items[] = {
+ { NULL, GTK_STOCK_NEW, NULL, NULL, "Stock icon: New",
+ G_CALLBACK (set_toolbar_small_stock) },
+ { NULL, GTK_STOCK_OPEN, NULL, NULL, "Stock icon: Open",
+ G_CALLBACK (set_toolbar_large_stock) },
+ { NULL, NULL, "Horizontal", NULL, "Horizontal toolbar layout",
+ G_CALLBACK (set_toolbar_horizontal) },
+ { NULL, NULL, "Vertical", NULL, "Vertical toolbar layout",
+ G_CALLBACK (set_toolbar_vertical) },
+ { NULL },
+ { NULL, NULL, "Icons", NULL, "Only show toolbar icons",
+ G_CALLBACK (set_toolbar_icons) },
+ { NULL, NULL, "Text", NULL, "Only show toolbar text",
+ G_CALLBACK (set_toolbar_text) },
+ { NULL, NULL, "Both", NULL, "Show toolbar icons and text",
+ G_CALLBACK (set_toolbar_both) },
+ { NULL, NULL, "Both (horizontal)", NULL, "Show toolbar icons and text in a horizontal fashion",
+ G_CALLBACK (set_toolbar_both_horiz) },
+ { NULL },
+ { "entry", NULL, NULL, "This is an unusable GtkEntry ;)",
+ NULL },
+ { NULL },
+ { NULL },
+ { NULL, NULL, "Enable", NULL, "Enable tooltips",
+ G_CALLBACK (set_toolbar_enable) },
+ { NULL, NULL, "Disable", NULL, "Disable tooltips",
+ G_CALLBACK (set_toolbar_disable) },
+ { NULL },
+ { NULL, NULL, "Frobate", NULL, "Frobate tooltip",
+ NULL },
+ { NULL, NULL, "Baz", NULL, "Baz tooltip",
+ NULL },
+ { NULL },
+ { NULL, NULL, "Blah", NULL, "Blash tooltip",
+ NULL },
+ { NULL, NULL, "Bar", NULL, "Bar tooltip",
+ NULL },
+};
static void
create_toolbar (GtkWidget *widget)
{
static GtkWidget *window = NULL;
GtkWidget *toolbar;
- GtkWidget *entry;
if (!window)
{
+ guint i;
+
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (widget));
@@ -1436,88 +1478,36 @@ create_toolbar (GtkWidget *widget)
gtk_widget_realize (window);
toolbar = gtk_toolbar_new ();
+ for (i = 0; i < G_N_ELEMENTS (create_toolbar_items); i++)
+ {
+ GtkToolItem *toolitem;
- gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
- GTK_STOCK_NEW,
- "Stock icon: New", "Toolbar/New",
- G_CALLBACK (set_toolbar_small_stock), toolbar, -1);
-
- gtk_toolbar_insert_stock (GTK_TOOLBAR (toolbar),
- GTK_STOCK_OPEN,
- "Stock icon: Open", "Toolbar/Open",
- G_CALLBACK (set_toolbar_large_stock), toolbar, -1);
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Horizontal", "Horizontal toolbar layout", "Toolbar/Horizontal",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_horizontal), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Vertical", "Vertical toolbar layout", "Toolbar/Vertical",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_vertical), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR(toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Icons", "Only show toolbar icons", "Toolbar/IconsOnly",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_icons), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Text", "Only show toolbar text", "Toolbar/TextOnly",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_text), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Both", "Show toolbar icons and text", "Toolbar/Both",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_both), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Both (horizontal)",
- "Show toolbar icons and text in a horizontal fashion",
- "Toolbar/BothHoriz",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_both_horiz), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- entry = gtk_entry_new ();
-
- gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), entry, "This is an unusable GtkEntry ;)", "Hey don't click me!!!");
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Enable", "Enable tooltips", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_enable), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Disable", "Disable tooltips", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_disable), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
+ if (create_toolbar_items[i].tooltip == NULL)
+ toolitem = gtk_separator_tool_item_new ();
+ else if (g_strcmp0 (create_toolbar_items[i].name, "entry") == 0)
+ {
+ GtkWidget *entry;
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Frobate", "Frobate tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Baz", "Baz tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
+ toolitem = gtk_tool_item_new ();
+ entry = gtk_entry_new ();
+ gtk_container_add (GTK_CONTAINER (toolitem), entry);
+ }
+ else if (create_toolbar_items[i].stock_id)
+ toolitem = gtk_tool_button_new_from_stock (create_toolbar_items[i].stock_id);
+ else
+ {
+ GtkWidget *icon;
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Blah", "Blah tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Bar", "Bar tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
+ icon = new_pixmap ("test.xpm", window->window,
+ &window->style->bg[GTK_STATE_NORMAL]);
+ toolitem = gtk_tool_button_new (icon, create_toolbar_items[i].label);
+ }
+ if (create_toolbar_items[i].callback)
+ g_signal_connect (toolitem, "clicked",
+ create_toolbar_items[i].callback, toolbar);
+ gtk_tool_item_set_tooltip_text (toolitem, create_toolbar_items[i].tooltip);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
+ }
gtk_container_add (GTK_CONTAINER (window), toolbar);
@@ -1530,72 +1520,63 @@ create_toolbar (GtkWidget *widget)
gtk_widget_destroy (window);
}
+static GtkActionEntry make_toolbar_items[] = {
+ { NULL, NULL, "Horizontal", NULL, "Horizontal toolbar layout",
+ G_CALLBACK (set_toolbar_horizontal) },
+ { NULL, NULL, "Vertical", NULL, "Vertical toolbar layout",
+ G_CALLBACK (set_toolbar_vertical) },
+ { NULL },
+ { NULL, NULL, "Icons", NULL, "Only show toolbar icons",
+ G_CALLBACK (set_toolbar_icons) },
+ { NULL, NULL, "Text", NULL, "Only show toolbar text",
+ G_CALLBACK (set_toolbar_text) },
+ { NULL, NULL, "Both", NULL, "Show toolbar icons and text",
+ G_CALLBACK (set_toolbar_both) },
+ { NULL },
+ { NULL, NULL, "Woot", NULL, "Woot woot woot",
+ NULL },
+ { NULL, NULL, "Blah", NULL, "Blah blah blah",
+ NULL },
+ { NULL },
+ { NULL, NULL, "Enable", NULL, "Enable tooltips",
+ G_CALLBACK (set_toolbar_enable) },
+ { NULL, NULL, "Disable", NULL, "Disable tooltips",
+ G_CALLBACK (set_toolbar_disable) },
+ { NULL },
+ { NULL, NULL, "Hoo", NULL, "Hoo tooltip",
+ NULL },
+ { NULL, NULL, "Woo", NULL, "Woo tooltip",
+ NULL }
+};
+
static GtkWidget*
make_toolbar (GtkWidget *window)
{
GtkWidget *toolbar;
+ guint i;
if (!gtk_widget_get_realized (window))
gtk_widget_realize (window);
toolbar = gtk_toolbar_new ();
+ for (i = 0; i < G_N_ELEMENTS (make_toolbar_items); i++)
+ {
+ GtkWidget *icon;
+ GtkToolItem *toolitem;
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Horizontal", "Horizontal toolbar layout", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_horizontal), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Vertical", "Vertical toolbar layout", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_vertical), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR(toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Icons", "Only show toolbar icons", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_icons), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Text", "Only show toolbar text", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_text), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Both", "Show toolbar icons and text", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_both), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Woot", "Woot woot woot", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Blah", "Blah blah blah", "Toolbar/Big",
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Enable", "Enable tooltips", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_enable), toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Disable", "Disable tooltips", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- G_CALLBACK (set_toolbar_disable), toolbar);
-
- gtk_toolbar_append_space (GTK_TOOLBAR (toolbar));
-
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Hoo", "Hoo tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
- gtk_toolbar_append_item (GTK_TOOLBAR (toolbar),
- "Woo", "Woo tooltip", NULL,
- new_pixmap ("test.xpm", window->window, &window->style->bg[GTK_STATE_NORMAL]),
- NULL, toolbar);
+ if (make_toolbar_items[i].label == NULL)
+ {
+ toolitem = gtk_separator_tool_item_new ();
+ continue;
+ }
+ icon = new_pixmap ("test.xpm", window->window,
+ &window->style->bg[GTK_STATE_NORMAL]);
+ toolitem = gtk_tool_button_new (icon, make_toolbar_items[i].label);
+ gtk_tool_item_set_tooltip_text (toolitem, make_toolbar_items[i].tooltip);
+ if (make_toolbar_items[i].callback != NULL)
+ g_signal_connect (toolitem, "clicked", make_toolbar_items[i].callback, toolbar);
+ gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
+ }
return toolbar;
}
@@ -3914,10 +3895,6 @@ create_tooltips (GtkWidget *widget)
gtk_window_set_screen (GTK_WINDOW (window),
gtk_widget_get_screen (widget));
- g_signal_connect (window, "destroy",
- G_CALLBACK (destroy_tooltips),
- &window);
-
box1 = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), box1);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]