*/
#include <gtk/gtk.h>
-#include <hildon-button.h>
-#include <hildon-stackable-window.h>
+#include <hildon/hildon.h>
static GtkWidget *horizontal_layout;
static GtkWidget *images;
gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (hbox));
- g_signal_connect (win, "delete_event", G_CALLBACK (gtk_widget_destroy), NULL);
-
gtk_widget_show_all (win);
}
gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));
- g_signal_connect (win, "delete_event", G_CALLBACK (gtk_widget_destroy), NULL);
+ gtk_widget_show_all (win);
+}
+
+static void
+common_buttons_window (GtkButton *b,
+ gpointer data)
+{
+ GtkWidget *win;
+ GtkWidget *button;
+ GtkWidget *panarea;
+ GtkBox *vbox;
+ GtkSizeGroup *title1, *value1, *title2, *value2, *centered;
+
+ /* Create window */
+ win = hildon_stackable_window_new ();
+ gtk_container_set_border_width (GTK_CONTAINER (win), 20);
+
+ panarea = hildon_pannable_area_new ();
+ vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
+
+ /* Single centered title */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Centered title", NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Single left-aligned title */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Left-aligned title", NULL);
+ gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Single right-aligned title */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Right-aligned title", NULL);
+ gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Centered title and value */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Centered title", "Centered value");
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 0.5, 0.5);
+ hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.5, 0.5);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Left-aligned title and value */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Left-aligned title", "Left-aligned value");
+ gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Right-aligned title and value */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Right-aligned title", "Right-aligned value");
+ gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Left-aligned title and value (with image) */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Left-aligned title (with image)", "Left-aligned value");
+ hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0);
+ hildon_button_set_image (HILDON_BUTTON (button), create_image ());
+ hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Right-aligned title and value (with image) */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
+ "Right-aligned title (with image)", "Right-aligned value");
+ hildon_button_set_alignment (HILDON_BUTTON (button), 1.0, 0.5, 1.0, 0.0);
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_image (HILDON_BUTTON (button), create_image ());
+ hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_LEFT);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Centered title and value (horizontal) */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Centered labels", "Left and right margins are the same");
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Left-aligned title, right-aligned value (horizontal) */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Left-aligned title", "Right-aligned value");
+ hildon_button_set_alignment (HILDON_BUTTON (button), 0.5, 0.5, 1.0, 0.0);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Centered title and value (horizontal) */
+ centered = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Same sized labels", "All using the same size group");
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), centered, centered, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Centered title and value (horizontal) */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Labels aligned to the center", "Both buttons are aligned");
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), centered, centered, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Left-aligned title and value (horizontal) */
+ title1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ value1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Left-aligned title", "Left-aligned value");
+ gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), title1, value1, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Left-aligned title and value (horizontal), sharing the same GtkSizeGroup */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Left-aligned title (2)", "Left-aligned value (2)");
+ gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), title1, value1, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+
+ /* Right-aligned title and value (horizontal) */
+ title2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ value2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Right-aligned title", "Right-aligned value");
+ gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), title2, value2, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Right-aligned title and value (horizontal), sharing the same GtkSizeGroup */
+ button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
+ HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
+ "Right-aligned title (2)", "Right-aligned value (2)");
+ gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
+ hildon_button_add_size_groups (HILDON_BUTTON (button), title2, value2, NULL);
+ gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
+ g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
+
+ /* Pack widgets */
+ hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (panarea), GTK_WIDGET (vbox));
+ gtk_container_add (GTK_CONTAINER (win), panarea);
+
+ g_object_unref (title1);
+ g_object_unref (value1);
+ g_object_unref (title2);
+ g_object_unref (value2);
+ g_object_unref (centered);
gtk_widget_show_all (win);
}
GtkWidget *win;
GtkWidget *but1;
GtkWidget *but2;
+ GtkWidget *but3;
GtkWidget *label;
GtkBox *vbox;
GtkBox *hbox;
GtkWidget *align;
- gtk_init (&argc, &argv);
+ hildon_gtk_init (&argc, &argv);
vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
hbox = GTK_BOX (gtk_hbox_new (TRUE, 10));
label = gtk_label_new ("HildonButton example");
but1 = gtk_button_new_with_label ("Buttons with different heights");
but2 = gtk_button_new_with_label ("Buttons with different widths");
+ but3 = gtk_button_new_with_label ("Common button layouts");
horizontal_layout = gtk_check_button_new_with_label ("Use horizontal layout");
images = gtk_check_button_new_with_label ("Use images");
gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (hbox));
gtk_box_pack_start (vbox, label, TRUE, TRUE, 0);
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
gtk_box_pack_start (vbox, but1, TRUE, TRUE, 0);
gtk_box_pack_start (vbox, but2, TRUE, TRUE, 0);
gtk_box_pack_start (vbox, align, FALSE, FALSE, 0);
+ gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
+ gtk_box_pack_start (vbox, but3, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (win), 20);
gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));
g_signal_connect (but1, "clicked", G_CALLBACK (vertical_buttons_window), NULL);
g_signal_connect (but2, "clicked", G_CALLBACK (horizontal_buttons_window), NULL);
- g_signal_connect (win, "delete_event", G_CALLBACK (gtk_main_quit), NULL);
+ g_signal_connect (but3, "clicked", G_CALLBACK (common_buttons_window), NULL);
+ g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_show_all (win);