diff options
author | Matthias Clasen <mclasen@redhat.com> | 2013-10-07 18:19:16 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2013-10-07 18:19:16 -0400 |
commit | 05907afc1cc05c668938cb247cbc409277c48994 (patch) | |
tree | 2276324e5618ad79e3b426feb8967e0ab02617c9 /tests/teststockbuttonmenu.c | |
parent | 1e1c1556f6ed9e385065df775217f127326b45ff (diff) | |
download | gtk+-05907afc1cc05c668938cb247cbc409277c48994.tar.gz |
Add various tests for stock widgets
This test demonstrates that various deprecated ways
to construct buttons and menuitems still work as they
are supposed to, including always-show-image functionality.
Diffstat (limited to 'tests/teststockbuttonmenu.c')
-rw-r--r-- | tests/teststockbuttonmenu.c | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/tests/teststockbuttonmenu.c b/tests/teststockbuttonmenu.c new file mode 100644 index 0000000000..d36790ff19 --- /dev/null +++ b/tests/teststockbuttonmenu.c @@ -0,0 +1,97 @@ +#include <glib.h> +#define GDK_VERSION_MIN_REQUIRED G_ENCODE_VERSION (3, 8) +#include <gtk/gtk.h> + +int main (int argc, char **argv) +{ + GtkWidget *window; + GtkWidget *grid; + GtkWidget *button; + GtkWidget *menu; + GtkWidget *item; + GtkWidget *box; + GtkAction *action1; + GtkAction *action2; + + gtk_init (&argc, &argv); + + action1 = gtk_action_new ("bold", NULL, NULL, GTK_STOCK_BOLD); + action2 = gtk_action_new ("new", NULL, NULL, GTK_STOCK_NEW); + gtk_action_set_always_show_image (action2, TRUE); + + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + + grid = gtk_grid_new (); + gtk_container_add (GTK_CONTAINER (window), grid); + + /* plain old stock button */ + button = gtk_button_new_from_stock (GTK_STOCK_DELETE); + gtk_container_add (GTK_CONTAINER (grid), button); + + /* gtk_button_set_always_show_image still works */ + button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); + gtk_button_set_always_show_image (GTK_BUTTON (button), TRUE); + gtk_container_add (GTK_CONTAINER (grid), button); + + /* old-style image-only button */ + button = gtk_button_new (); + gtk_button_set_image (GTK_BUTTON (button), gtk_image_new_from_icon_name ("edit-find", GTK_ICON_SIZE_BUTTON)); + gtk_container_add (GTK_CONTAINER (grid), button); + + /* new-style image-only button */ + button = gtk_button_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_BUTTON); + gtk_container_add (GTK_CONTAINER (grid), button); + + /* GtkAction-backed button */ + button = gtk_button_new (); + gtk_button_set_use_stock (GTK_BUTTON (button), TRUE); + gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action1); + gtk_container_add (GTK_CONTAINER (grid), button); + + /* gtk_action_set_always_show_image still works for buttons */ + button = gtk_button_new (); + gtk_button_set_use_stock (GTK_BUTTON (button), TRUE); + gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action2); + gtk_container_add (GTK_CONTAINER (grid), button); + + button = gtk_menu_button_new (); + gtk_container_add (GTK_CONTAINER (grid), button); + + menu = gtk_menu_new (); + gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); + + /* plain old stock menuitem */ + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_DELETE, NULL); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* gtk_image_menu_item_set_always_show_image still works */ + item = gtk_image_menu_item_new_from_stock (GTK_STOCK_CLOSE, NULL); + gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* new-style menuitem with image */ + item = gtk_menu_item_new (); + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); + gtk_container_add (GTK_CONTAINER (item), box); + gtk_container_add (GTK_CONTAINER (box), gtk_image_new_from_icon_name ("edit-clear", GTK_ICON_SIZE_MENU)); + gtk_container_add (GTK_CONTAINER (box), gtk_label_new_with_mnemonic ("_Clear")); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* GtkAction-backed menuitem */ + item = gtk_image_menu_item_new (); + gtk_activatable_set_related_action (GTK_ACTIVATABLE (item), action1); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + /* gtk_action_set_always_show_image still works for menuitems */ + item = gtk_image_menu_item_new (); + gtk_activatable_set_related_action (GTK_ACTIVATABLE (item), action2); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + + gtk_widget_show_all (menu); + + gtk_widget_show_all (window); + + gtk_main (); + + return 0; +} |