summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/testgtk.c134
-rw-r--r--tests/testgtkrc10
2 files changed, 132 insertions, 12 deletions
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 86d9be591..a24554f6b 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -161,8 +161,12 @@ create_buttons (void)
if (!window)
{
+ GtkAccelGroup *accel_group;
+
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ accel_group = gtk_window_get_default_accel_group (GTK_WINDOW (window));
+
gtk_signal_connect (GTK_OBJECT (window), "destroy",
GTK_SIGNAL_FUNC (gtk_widget_destroyed),
&window);
@@ -180,15 +184,15 @@ create_buttons (void)
gtk_box_pack_start (GTK_BOX (box1), table, TRUE, TRUE, 0);
button[0] = gtk_button_new_with_label ("button1");
- button[1] = gtk_button_new_with_label ("button2");
+ button[1] = gtk_button_new_accel ("_button2", accel_group);
button[2] = gtk_button_new_with_label ("button3");
- button[3] = gtk_button_new_with_label ("button4");
+ button[3] = gtk_button_new_stock (GTK_STOCK_BUTTON_OK, NULL);
button[4] = gtk_button_new_with_label ("button5");
button[5] = gtk_button_new_with_label ("button6");
button[6] = gtk_button_new_with_label ("button7");
- button[7] = gtk_button_new_with_label ("button8");
+ button[7] = gtk_button_new_stock (GTK_STOCK_BUTTON_CLOSE, accel_group);
button[8] = gtk_button_new_with_label ("button9");
-
+
gtk_signal_connect (GTK_OBJECT (button[0]), "clicked",
GTK_SIGNAL_FUNC(button_window),
button[1]);
@@ -2222,6 +2226,65 @@ create_tooltips (void)
}
/*
+ * GtkImage
+ */
+
+static void
+pack_image (GtkWidget *box,
+ const gchar *text,
+ GtkWidget *image)
+{
+ gtk_box_pack_start (GTK_BOX (box),
+ gtk_label_new (text),
+ FALSE, FALSE, 0);
+
+ gtk_box_pack_start (GTK_BOX (box),
+ image,
+ TRUE, TRUE, 0);
+}
+
+static void
+create_image (void)
+{
+ static GtkWidget *window = NULL;
+
+ if (window == NULL)
+ {
+ GtkWidget *vbox;
+ GdkPixmap *pixmap;
+ GdkBitmap *mask;
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+
+ gtk_signal_connect (GTK_OBJECT (window), "destroy",
+ GTK_SIGNAL_FUNC(gtk_widget_destroyed),
+ &window);
+
+ vbox = gtk_vbox_new (FALSE, 5);
+
+ gtk_container_add (GTK_CONTAINER (window), vbox);
+
+ pack_image (vbox, "Stock Warning Dialog",
+ gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
+ GTK_ICON_SIZE_DIALOG));
+
+ pixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL,
+ gtk_widget_get_colormap (window),
+ &mask,
+ NULL,
+ openfile);
+
+ pack_image (vbox, "Pixmap",
+ gtk_image_new_from_pixmap (pixmap, mask));
+ }
+
+ if (!GTK_WIDGET_VISIBLE (window))
+ gtk_widget_show_all (window);
+ else
+ gtk_widget_destroy (window);
+}
+
+/*
* Menu demo
*/
@@ -2609,12 +2672,12 @@ create_modal_window (void)
/* Pack widgets */
gtk_container_add (GTK_CONTAINER (window), box1);
- gtk_box_pack_start (GTK_BOX (box1), frame1, TRUE, TRUE, 4);
- gtk_container_add (GTK_CONTAINER (frame1), box2);
- gtk_box_pack_start (GTK_BOX (box2), btnColor, FALSE, FALSE, 4);
- gtk_box_pack_start (GTK_BOX (box2), btnFile, FALSE, FALSE, 4);
- gtk_box_pack_start (GTK_BOX (box1), gtk_hseparator_new (), FALSE, FALSE, 4);
- gtk_box_pack_start (GTK_BOX (box1), btnClose, FALSE, FALSE, 4);
+ gtk_box_pack_start (GTK_BOX (box1), frame1, TRUE, TRUE, 4);
+ gtk_container_add (GTK_CONTAINER (frame1), box2);
+ gtk_box_pack_start (GTK_BOX (box2), btnColor, FALSE, FALSE, 4);
+ gtk_box_pack_start (GTK_BOX (box2), btnFile, FALSE, FALSE, 4);
+ gtk_box_pack_start (GTK_BOX (box1), gtk_hseparator_new (), FALSE, FALSE, 4);
+ gtk_box_pack_start (GTK_BOX (box1), btnClose, FALSE, FALSE, 4);
/* connect signals */
gtk_signal_connect_object (GTK_OBJECT (btnClose), "clicked",
@@ -2637,6 +2700,53 @@ create_modal_window (void)
}
/*
+ * GtkMessageDialog
+ */
+
+static void
+make_message_dialog (GtkWidget **dialog,
+ GtkMessageType type,
+ GtkButtonsType buttons)
+{
+ if (*dialog)
+ {
+ if (GTK_WIDGET_REALIZED (*dialog))
+ gdk_window_show ((*dialog)->window);
+
+ return;
+ }
+
+ *dialog = gtk_message_dialog_new (NULL, 0, type, buttons,
+ "This is a message dialog; it can wrap long lines. This is a long line. La la la. Look this line is wrapped. Blah blah blah blah blah blah. (Note: testgtk has a nonstandard gtkrc that changes some of the message dialog icons.)");
+
+ gtk_signal_connect_object (GTK_OBJECT (*dialog),
+ "response",
+ GTK_SIGNAL_FUNC (gtk_widget_destroy),
+ GTK_OBJECT (*dialog));
+
+ gtk_signal_connect (GTK_OBJECT (*dialog),
+ "destroy",
+ GTK_SIGNAL_FUNC (gtk_widget_destroyed),
+ dialog);
+
+ gtk_widget_show (*dialog);
+}
+
+static void
+create_message_dialog (void)
+{
+ static GtkWidget *info = NULL;
+ static GtkWidget *warning = NULL;
+ static GtkWidget *error = NULL;
+ static GtkWidget *question = NULL;
+
+ make_message_dialog (&info, GTK_MESSAGE_INFO, GTK_BUTTONS_OK);
+ make_message_dialog (&warning, GTK_MESSAGE_WARNING, GTK_BUTTONS_CLOSE);
+ make_message_dialog (&error, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK_CANCEL);
+ make_message_dialog (&question, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO);
+}
+
+/*
* GtkScrolledWindow
*/
@@ -8624,11 +8734,13 @@ create_main_window (void)
{ "font selection", create_font_selection },
{ "gamma curve", create_gamma_curve },
{ "handle box", create_handle_box },
+ { "image", create_image },
{ "item factory", create_item_factory },
{ "labels", create_labels },
{ "layout", create_layout },
{ "list", create_list },
{ "menus", create_menus },
+ { "message dialog", create_message_dialog },
{ "modal window", create_modal_window },
{ "notebook", create_notebook },
{ "panes", create_panes },
@@ -8771,8 +8883,6 @@ main (int argc, char *argv[])
gtk_init (&argc, &argv);
- gdk_rgb_init ();
-
/* bindings test
*/
binding_set = gtk_binding_set_by_class (gtk_type_class (GTK_TYPE_WIDGET));
diff --git a/tests/testgtkrc b/tests/testgtkrc
index 85fb90453..170ad4d1f 100644
--- a/tests/testgtkrc
+++ b/tests/testgtkrc
@@ -29,6 +29,16 @@ style "defaultfont"
font_name = "Sans 12"
}
+style "myicons"
+{
+ stock["gtk-dialog-warning"] =
+ {
+ { "3DRings.xpm", *, *, *}
+ }
+}
+
+class "GtkImage" style "myicons"
+
# common default
class "GtkWidget" style "defaultfont"