summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@daimi.au.dk>2004-03-02 20:49:15 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2004-03-02 20:49:15 +0000
commitcddfd994ef4ed9a92444c409dd37d9357acbfacb (patch)
tree046fa434f0e40fa93e33f946756009c925037c36 /tests
parentf05cb42db9b7c1d8409f4dcfc0f25d32ef62a973 (diff)
downloadgtk+-cddfd994ef4ed9a92444c409dd37d9357acbfacb.tar.gz
Patch from Frederic Crozat, test code from Jean-Philippe Chancelier. Fixes
Tue Mar 2 21:23:30 2004 Soeren Sandmann <sandmann@daimi.au.dk> Patch from Frederic Crozat, test code from Jean-Philippe Chancelier. Fixes bug #120479. * gtk/gtkcombo.c (gtk_combo_popup_list): Make sure popup belongs to the right window group. * gtk/gtkmenu.c (gtk_menu_popup): Same * tests/testsocket.c (main): Pack the plugs into an hbox instead of a vbox. * tests/testsocket_common.c: Add a GtkMenuBar, a GtkCombo and a GtkComboBox to the children.
Diffstat (limited to 'tests')
-rw-r--r--tests/testsocket.c18
-rw-r--r--tests/testsocket_common.c150
2 files changed, 137 insertions, 31 deletions
diff --git a/tests/testsocket.c b/tests/testsocket.c
index 7168d1d434..85a7192d74 100644
--- a/tests/testsocket.c
+++ b/tests/testsocket.c
@@ -11,7 +11,7 @@ int n_children = 0;
GSList *sockets = NULL;
GtkWidget *window;
-GtkWidget *vbox;
+GtkWidget *box;
typedef struct
{
@@ -129,7 +129,7 @@ steal (GtkWidget *window, GtkEntry *entry)
}
socket = create_socket ();
- gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0);
gtk_widget_show (socket->box);
gtk_socket_steal (GTK_SOCKET (socket->socket), xid);
@@ -167,7 +167,7 @@ child_read_watch (GIOChannel *channel, GIOCondition cond, gpointer data)
else
{
Socket *socket = create_socket ();
- gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0);
gtk_widget_show (socket->box);
gtk_socket_add_id (GTK_SOCKET (socket->socket), xid);
@@ -204,7 +204,7 @@ add_child (GtkWidget *window,
if (active)
{
socket = create_socket ();
- gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0);
gtk_widget_show (socket->box);
sprintf(buffer, "%#lx", (gulong) gtk_socket_get_id (GTK_SOCKET (socket->socket)));
argv[1] = buffer;
@@ -248,7 +248,7 @@ add_local_active_child (GtkWidget *window)
Socket *socket;
socket = create_socket ();
- gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0);
gtk_widget_show (socket->box);
create_child_plug (gtk_socket_get_id (GTK_SOCKET (socket->socket)), TRUE);
@@ -261,7 +261,7 @@ add_local_passive_child (GtkWidget *window)
GdkNativeWindow xid;
socket = create_socket ();
- gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (box), socket->box, TRUE, TRUE, 0);
gtk_widget_show (socket->box);
xid = create_child_plug (0, TRUE);
@@ -273,6 +273,7 @@ main (int argc, char *argv[])
{
GtkWidget *button;
GtkWidget *hbox;
+ GtkWidget *vbox;
GtkWidget *entry;
GtkAccelGroup *accel_group;
GtkItemFactory *item_factory;
@@ -345,6 +346,11 @@ main (int argc, char *argv[])
G_CALLBACK (steal),
entry);
+ hbox = gtk_hbox_new (FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
+
+ box = hbox;
+
gtk_widget_show_all (window);
gtk_main ();
diff --git a/tests/testsocket_common.c b/tests/testsocket_common.c
index 4e87de6b07..6e96d35cd9 100644
--- a/tests/testsocket_common.c
+++ b/tests/testsocket_common.c
@@ -1,7 +1,26 @@
+#undef GTK_DISABLE_DEPRECATED
+
#include "x11/gdkx.h"
#include <gtk/gtk.h>
static void
+print_hello (GtkWidget *w, gpointer data)
+{
+ g_message (data);
+}
+
+static GtkItemFactoryEntry menu_items[] = {
+ { "/_File", NULL, NULL, 0, "<Branch>" },
+ { "/File/_New", "<control>N", print_hello, GPOINTER_TO_INT("File New activated"), "<Item>" },
+ { "/File/_Open", "<control>O", print_hello, GPOINTER_TO_INT("File Open activated"), "<Item>" },
+ { "/File/sep1", NULL, NULL, 0, "<Separator>" },
+ { "/File/Quit", "<control>Q", gtk_main_quit, 0, "<Item>" },
+ { "/O_K", "<control>K",print_hello, GPOINTER_TO_INT("OK activated"), "<Item>" },
+ { "/_Help", NULL, NULL, 0, "<LastBranch>" },
+ { "/_Help/About", NULL, print_hello, GPOINTER_TO_INT("Help About activated "), "<Item>" },
+};
+
+static void
remove_buttons (GtkWidget *widget, GtkWidget *other_button)
{
gtk_widget_destroy (other_button);
@@ -72,48 +91,129 @@ add_buttons (GtkWidget *widget, GtkWidget *box)
add_button);
}
-guint32
-create_child_plug (guint32 xid,
- gboolean local)
+static GtkWidget *
+create_combo (void)
{
- GtkWidget *window;
- GtkWidget *hbox;
- GtkWidget *entry;
- GtkWidget *button;
- GtkWidget *label;
+ GList *cbitems;
+ GtkCombo *combo;
+
+ cbitems = NULL;
+ cbitems = g_list_append (cbitems, "item0");
+ cbitems = g_list_append (cbitems, "item1 item1");
+ cbitems = g_list_append (cbitems, "item2 item2 item2");
+ cbitems = g_list_append (cbitems, "item3 item3 item3 item3");
+ cbitems = g_list_append (cbitems, "item4 item4 item4 item4 item4");
+ cbitems = g_list_append (cbitems, "item5 item5 item5 item5 item5 item5");
+ cbitems = g_list_append (cbitems, "item6 item6 item6 item6 item6");
+ cbitems = g_list_append (cbitems, "item7 item7 item7 item7");
+ cbitems = g_list_append (cbitems, "item8 item8 item8");
+ cbitems = g_list_append (cbitems, "item9 item9");
+
+ combo = GTK_COMBO (gtk_combo_new ());
+ gtk_combo_set_popdown_strings (combo, cbitems);
+ gtk_entry_set_text (GTK_ENTRY (combo->entry), "hello world");
+ gtk_editable_select_region (GTK_EDITABLE (combo->entry), 0, -1);
+
+ return GTK_WIDGET (combo);
+}
- window = gtk_plug_new (xid);
+static GtkWidget *
+create_menubar (GtkWindow *window)
+{
+ GtkItemFactory *item_factory;
+ GtkAccelGroup *accel_group=NULL;
+ GtkWidget *menubar;
+
+ accel_group = gtk_accel_group_new ();
+ item_factory = gtk_item_factory_new (GTK_TYPE_MENU_BAR, "<main>",
+ accel_group);
+ gtk_item_factory_create_items (item_factory,
+ G_N_ELEMENTS (menu_items),
+ menu_items, NULL);
+
+ gtk_window_add_accel_group (window, accel_group);
+ menubar = gtk_item_factory_get_widget (item_factory, "<main>");
- g_signal_connect (window, "destroy",
- local ? G_CALLBACK (local_destroy)
- : G_CALLBACK (remote_destroy),
- NULL);
- gtk_container_set_border_width (GTK_CONTAINER (window), 0);
+ return menubar;
+}
- hbox = gtk_hbox_new (FALSE, 0);
- gtk_container_add (GTK_CONTAINER (window), hbox);
+static GtkWidget *
+create_combo_box (void)
+{
+ GtkComboBox *combo_box = GTK_COMBO_BOX (gtk_combo_box_new_text ());
- label = gtk_label_new (local ? "Local:" : "Remote:");
- gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ gtk_combo_box_append_text (combo_box, "This");
+ gtk_combo_box_append_text (combo_box, "Is");
+ gtk_combo_box_append_text (combo_box, "A");
+ gtk_combo_box_append_text (combo_box, "ComboBox");
- entry = gtk_entry_new ();
- gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
+ return GTK_WIDGET (combo_box);
+}
- button = gtk_button_new_with_mnemonic ("_Close");
- gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
+static GtkWidget *
+create_content (GtkWindow *window, gboolean local)
+{
+ GtkWidget *vbox;
+ GtkWidget *button;
+ GtkWidget *frame;
+ frame = gtk_frame_new (local? "Local" : "Remote");
+ gtk_container_set_border_width (GTK_CONTAINER (frame), 3);
+ vbox = gtk_vbox_new (TRUE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox), 3);
+
+ gtk_container_add (GTK_CONTAINER (frame), vbox);
+
+ /* Combo */
+ gtk_box_pack_start (GTK_BOX (vbox), create_combo(), TRUE, TRUE, 0);
+
+ /* Entry */
+ gtk_box_pack_start (GTK_BOX (vbox), gtk_entry_new(), TRUE, TRUE, 0);
+
+ /* Close Button */
+ button = gtk_button_new_with_mnemonic ("_Close");
+ gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
g_signal_connect_swapped (button, "clicked",
G_CALLBACK (gtk_widget_destroy), window);
+ /* Blink Button */
button = gtk_button_new_with_mnemonic ("_Blink");
- gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 0);
-
+ gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
g_signal_connect (button, "clicked",
G_CALLBACK (blink),
window);
- add_buttons (NULL, hbox);
+ /* Menubar */
+ gtk_box_pack_start (GTK_BOX (vbox), create_menubar (GTK_WINDOW (window)),
+ TRUE, TRUE, 0);
+
+ /* Combo Box */
+ gtk_box_pack_start (GTK_BOX (vbox), create_combo_box (), TRUE, TRUE, 0);
+
+ add_buttons (NULL, vbox);
+
+ return frame;
+}
+
+guint32
+create_child_plug (guint32 xid,
+ gboolean local)
+{
+ GtkWidget *window;
+ GtkWidget *content;
+
+ window = gtk_plug_new (xid);
+
+ g_signal_connect (window, "destroy",
+ local ? G_CALLBACK (local_destroy)
+ : G_CALLBACK (remote_destroy),
+ NULL);
+ gtk_container_set_border_width (GTK_CONTAINER (window), 0);
+
+ content = create_content (GTK_WINDOW (window), local);
+ gtk_container_add (GTK_CONTAINER (window), content);
+
gtk_widget_show_all (window);
if (GTK_WIDGET_REALIZED (window))