forked from AuroraMiddleware/gtk
testgtk: Get rid of GtkEventBox
This commit is contained in:
parent
69da7836f9
commit
7297aeb54c
267
tests/testgtk.c
267
tests/testgtk.c
@ -995,7 +995,7 @@ create_alpha_widgets (GtkWidget *widget)
|
|||||||
if (!window)
|
if (!window)
|
||||||
{
|
{
|
||||||
GtkWidget *vbox2, *vbox, *main_hbox;
|
GtkWidget *vbox2, *vbox, *main_hbox;
|
||||||
GtkWidget *button, *event_box, *label, *scale;
|
GtkWidget *button, *label, *scale;
|
||||||
GtkWidget *alpha1, *alpha2, *alpha3;
|
GtkWidget *alpha1, *alpha2, *alpha3;
|
||||||
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||||
@ -1028,19 +1028,14 @@ create_alpha_widgets (GtkWidget *widget)
|
|||||||
label = gtk_label_new ("\nwindow widget");
|
label = gtk_label_new ("\nwindow widget");
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), label);
|
gtk_box_pack_start (GTK_BOX (vbox), label);
|
||||||
|
|
||||||
alpha2 = event_box = gtk_event_box_new ();
|
alpha2 = vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), event_box);
|
gtk_box_pack_start (GTK_BOX (vbox), vbox2);
|
||||||
|
|
||||||
vbox2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
|
||||||
gtk_container_add (GTK_CONTAINER (event_box), vbox2);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("A Button");
|
button = gtk_button_new_with_label ("A Button");
|
||||||
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
||||||
|
|
||||||
event_box = gtk_event_box_new ();
|
|
||||||
button = gtk_button_new_with_label ("A Button (in window)");
|
button = gtk_button_new_with_label ("A Button (in window)");
|
||||||
gtk_container_add (GTK_CONTAINER (event_box), button);
|
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox2), event_box);
|
|
||||||
|
|
||||||
/* non-windowed container with both windowed and normal button */
|
/* non-windowed container with both windowed and normal button */
|
||||||
label = gtk_label_new ("\nnon-window widget with widget child");
|
label = gtk_label_new ("\nnon-window widget with widget child");
|
||||||
@ -1052,10 +1047,8 @@ create_alpha_widgets (GtkWidget *widget)
|
|||||||
button = gtk_button_new_with_label ("A Button");
|
button = gtk_button_new_with_label ("A Button");
|
||||||
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
||||||
|
|
||||||
event_box = gtk_event_box_new ();
|
|
||||||
button = gtk_button_new_with_label ("A Button (in window)");
|
button = gtk_button_new_with_label ("A Button (in window)");
|
||||||
gtk_container_add (GTK_CONTAINER (event_box), button);
|
gtk_box_pack_start (GTK_BOX (vbox2), button);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox2), event_box);
|
|
||||||
|
|
||||||
scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
|
scale = gtk_scale_new_with_range (GTK_ORIENTATION_VERTICAL,
|
||||||
0, 100, 1);
|
0, 100, 1);
|
||||||
@ -1500,131 +1493,6 @@ create_rotated_text (GtkWidget *widget)
|
|||||||
gtk_widget_destroy (window);
|
gtk_widget_destroy (window);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Reparent demo
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void
|
|
||||||
reparent_label (GtkWidget *widget,
|
|
||||||
GtkWidget *new_parent)
|
|
||||||
{
|
|
||||||
GtkWidget *label;
|
|
||||||
|
|
||||||
label = g_object_get_data (G_OBJECT (widget), "user_data");
|
|
||||||
|
|
||||||
g_object_ref (label);
|
|
||||||
gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (widget)), label);
|
|
||||||
gtk_container_add (GTK_CONTAINER (new_parent), label);
|
|
||||||
g_object_unref (label);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
set_parent_signal (GtkWidget *child,
|
|
||||||
GtkWidget *old_parent,
|
|
||||||
gpointer func_data)
|
|
||||||
{
|
|
||||||
GtkWidget *parent;
|
|
||||||
|
|
||||||
parent = gtk_widget_get_parent (child);
|
|
||||||
g_message ("set_parent for \"%s\": new parent: \"%s\", old parent: \"%s\", data: %d\n",
|
|
||||||
g_type_name (G_OBJECT_TYPE (child)),
|
|
||||||
parent ? g_type_name (G_OBJECT_TYPE (parent)) : "NULL",
|
|
||||||
old_parent ? g_type_name (G_OBJECT_TYPE (old_parent)) : "NULL",
|
|
||||||
GPOINTER_TO_INT (func_data));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
create_reparent (GtkWidget *widget)
|
|
||||||
{
|
|
||||||
static GtkWidget *window = NULL;
|
|
||||||
GtkWidget *box1;
|
|
||||||
GtkWidget *box2;
|
|
||||||
GtkWidget *box3;
|
|
||||||
GtkWidget *frame;
|
|
||||||
GtkWidget *button;
|
|
||||||
GtkWidget *label;
|
|
||||||
GtkWidget *separator;
|
|
||||||
GtkWidget *event_box;
|
|
||||||
|
|
||||||
if (!window)
|
|
||||||
{
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
||||||
|
|
||||||
gtk_window_set_screen (GTK_WINDOW (window),
|
|
||||||
gtk_widget_get_screen (widget));
|
|
||||||
|
|
||||||
g_signal_connect (window, "destroy",
|
|
||||||
G_CALLBACK (gtk_widget_destroyed),
|
|
||||||
&window);
|
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (window), "reparent");
|
|
||||||
|
|
||||||
box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
|
||||||
gtk_container_add (GTK_CONTAINER (window), box1);
|
|
||||||
|
|
||||||
box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), box2);
|
|
||||||
|
|
||||||
label = gtk_label_new ("Hello World");
|
|
||||||
|
|
||||||
frame = gtk_frame_new ("Frame 1");
|
|
||||||
gtk_box_pack_start (GTK_BOX (box2), frame);
|
|
||||||
|
|
||||||
box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
|
||||||
gtk_container_add (GTK_CONTAINER (frame), box3);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("switch");
|
|
||||||
g_object_set_data (G_OBJECT (button), "user_data", label);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box3), button);
|
|
||||||
|
|
||||||
event_box = gtk_event_box_new ();
|
|
||||||
gtk_box_pack_start (GTK_BOX (box3), event_box);
|
|
||||||
gtk_container_add (GTK_CONTAINER (event_box), label);
|
|
||||||
|
|
||||||
g_signal_connect (button, "clicked",
|
|
||||||
G_CALLBACK (reparent_label),
|
|
||||||
event_box);
|
|
||||||
|
|
||||||
g_signal_connect (label, "parent_set",
|
|
||||||
G_CALLBACK (set_parent_signal),
|
|
||||||
GINT_TO_POINTER (42));
|
|
||||||
|
|
||||||
frame = gtk_frame_new ("Frame 2");
|
|
||||||
gtk_box_pack_start (GTK_BOX (box2), frame);
|
|
||||||
|
|
||||||
box3 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);
|
|
||||||
gtk_container_add (GTK_CONTAINER (frame), box3);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("switch");
|
|
||||||
g_object_set_data (G_OBJECT (button), "user_data", label);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box3), button);
|
|
||||||
|
|
||||||
event_box = gtk_event_box_new ();
|
|
||||||
gtk_box_pack_start (GTK_BOX (box3), event_box);
|
|
||||||
|
|
||||||
g_signal_connect (button, "clicked",
|
|
||||||
G_CALLBACK (reparent_label),
|
|
||||||
event_box);
|
|
||||||
|
|
||||||
separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), separator);
|
|
||||||
|
|
||||||
box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), box2);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("close");
|
|
||||||
g_signal_connect_swapped (button, "clicked",
|
|
||||||
G_CALLBACK (gtk_widget_destroy), window);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box2), button);
|
|
||||||
gtk_widget_set_can_default (button, TRUE);
|
|
||||||
gtk_widget_grab_default (button);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!gtk_widget_get_visible (window))
|
|
||||||
gtk_widget_show (window);
|
|
||||||
else
|
|
||||||
gtk_widget_destroy (window);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Saved Position
|
* Saved Position
|
||||||
@ -3228,129 +3096,6 @@ create_expander (GtkWidget *widget)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* GtkEventBox */
|
|
||||||
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
event_box_draw (GtkWidget *widget,
|
|
||||||
cairo_t *cr,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
if (gtk_widget_get_window (widget) ==
|
|
||||||
gtk_widget_get_window (gtk_widget_get_parent (widget)))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
cairo_set_source_rgb (cr, 0, 1, 0);
|
|
||||||
cairo_paint (cr);
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
event_box_label_pressed (GtkWidget *widget,
|
|
||||||
GdkEventButton *event,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
g_print ("clicked on event box\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
event_box_button_clicked (GtkWidget *widget,
|
|
||||||
GtkWidget *button,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
g_print ("pushed button\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
event_box_toggle_above_child (GtkWidget *checkbutton,
|
|
||||||
GtkEventBox *event_box)
|
|
||||||
{
|
|
||||||
gtk_event_box_set_above_child (event_box,
|
|
||||||
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbutton)));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
create_event_box (GtkWidget *widget)
|
|
||||||
{
|
|
||||||
static GtkWidget *window = NULL;
|
|
||||||
GtkWidget *box1;
|
|
||||||
GtkWidget *box2;
|
|
||||||
GtkWidget *hbox;
|
|
||||||
GtkWidget *vbox;
|
|
||||||
GtkWidget *button;
|
|
||||||
GtkWidget *separator;
|
|
||||||
GtkWidget *event_box;
|
|
||||||
GtkWidget *label;
|
|
||||||
GtkWidget *above_child_check;
|
|
||||||
|
|
||||||
if (!window)
|
|
||||||
{
|
|
||||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
|
||||||
gtk_window_set_screen (GTK_WINDOW (window),
|
|
||||||
gtk_widget_get_screen (widget));
|
|
||||||
|
|
||||||
g_signal_connect (window, "destroy",
|
|
||||||
G_CALLBACK (gtk_widget_destroyed),
|
|
||||||
&window);
|
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (window), "event box");
|
|
||||||
|
|
||||||
box1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
|
||||||
gtk_container_add (GTK_CONTAINER (window), box1);
|
|
||||||
|
|
||||||
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), hbox);
|
|
||||||
|
|
||||||
event_box = gtk_event_box_new ();
|
|
||||||
gtk_box_pack_start (GTK_BOX (hbox), event_box);
|
|
||||||
|
|
||||||
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
|
||||||
gtk_container_add (GTK_CONTAINER (event_box), vbox);
|
|
||||||
g_signal_connect (event_box, "button_press_event",
|
|
||||||
G_CALLBACK (event_box_label_pressed),
|
|
||||||
NULL);
|
|
||||||
g_signal_connect (event_box, "draw",
|
|
||||||
G_CALLBACK (event_box_draw),
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
label = gtk_label_new ("Click on this label");
|
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), label);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("button in eventbox");
|
|
||||||
gtk_box_pack_start (GTK_BOX (vbox), button);
|
|
||||||
g_signal_connect (button, "clicked",
|
|
||||||
G_CALLBACK (event_box_button_clicked),
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
above_child_check = gtk_check_button_new_with_label("Above Child");
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), above_child_check);
|
|
||||||
g_signal_connect (above_child_check, "toggled",
|
|
||||||
G_CALLBACK (event_box_toggle_above_child), event_box);
|
|
||||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (above_child_check), FALSE);
|
|
||||||
|
|
||||||
separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), separator);
|
|
||||||
|
|
||||||
box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box1), box2);
|
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("close");
|
|
||||||
g_signal_connect_swapped (button, "clicked",
|
|
||||||
G_CALLBACK (gtk_widget_destroy),
|
|
||||||
window);
|
|
||||||
gtk_box_pack_start (GTK_BOX (box2), button);
|
|
||||||
gtk_widget_set_can_default (button, TRUE);
|
|
||||||
gtk_widget_grab_default (button);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!gtk_widget_get_visible (window))
|
|
||||||
gtk_widget_show (window);
|
|
||||||
else
|
|
||||||
gtk_widget_destroy (window);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GtkSizeGroup
|
* GtkSizeGroup
|
||||||
*/
|
*/
|
||||||
@ -8531,7 +8276,6 @@ struct {
|
|||||||
{ "dialog", create_dialog },
|
{ "dialog", create_dialog },
|
||||||
{ "display", create_display_screen, TRUE },
|
{ "display", create_display_screen, TRUE },
|
||||||
{ "entry", create_entry },
|
{ "entry", create_entry },
|
||||||
{ "event box", create_event_box },
|
|
||||||
{ "event watcher", create_event_watcher },
|
{ "event watcher", create_event_watcher },
|
||||||
{ "expander", create_expander },
|
{ "expander", create_expander },
|
||||||
{ "flipping", create_flipping },
|
{ "flipping", create_flipping },
|
||||||
@ -8553,7 +8297,6 @@ struct {
|
|||||||
{ "progress bar", create_progress_bar },
|
{ "progress bar", create_progress_bar },
|
||||||
{ "radio buttons", create_radio_buttons },
|
{ "radio buttons", create_radio_buttons },
|
||||||
{ "range controls", create_range_controls },
|
{ "range controls", create_range_controls },
|
||||||
{ "reparent", create_reparent },
|
|
||||||
{ "rotated text", create_rotated_text },
|
{ "rotated text", create_rotated_text },
|
||||||
{ "saved position", create_saved_position },
|
{ "saved position", create_saved_position },
|
||||||
{ "scrolled windows", create_scrolled_windows },
|
{ "scrolled windows", create_scrolled_windows },
|
||||||
|
Loading…
Reference in New Issue
Block a user