Move code to setup UI from main to test_suite_new.

2007-06-29  Mathias Hasselmann  <mathias.hasselmann@gmx.de>

	* tests/testextendedlayout.c: Move code to setup UI
	from main to test_suite_new.

svn path=/branches/extended-layout/; revision=18298
This commit is contained in:
Mathias Hasselmann
2007-06-29 20:31:05 +00:00
committed by Mathias Hasselmann
parent ce56b73010
commit 32ec6ad779
2 changed files with 117 additions and 98 deletions

View File

@@ -1,3 +1,8 @@
2007-06-29 Mathias Hasselmann <mathias.hasselmann@gmx.de>
* tests/testextendedlayout.c: Move code to setup UI
from main to test_suite_new.
2007-06-29 Mathias Hasselmann <mathias.hasselmann@gmx.de>
* tests/testextendedlayout.c: Split Baseline Alignment tests into

View File

@@ -86,10 +86,12 @@ struct _TestCase
struct _TestSuite
{
GtkWidget *window;
GtkWidget *notebook;
GtkWidget *baselines;
GtkWidget *interiour;
GtkWidget *exteriour;
GtkWidget *statusbar;
GtkTreeStore *results;
GtkWidget *results_view;
@@ -965,71 +967,6 @@ realize_notebook_cb (GtkWidget *widget,
mask_xpm);
}
static TestSuite*
test_suite_new ()
{
TestSuite* self = g_new0 (TestSuite, 1);
GtkTreeViewColumn *column;
GtkCellRenderer *cell;
GtkWidget *scroller;
self->notebook = gtk_notebook_new ();
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (self->notebook), GTK_POS_RIGHT);
test_suite_append (self, create_natural_size_test (self));
test_suite_append (self, create_height_for_width_test (self));
test_suite_append (self, create_baseline_test (self));
test_suite_append (self, create_baseline_test_bin (self));
test_suite_append (self, create_baseline_test_hbox (self));
self->results = gtk_tree_store_new (COLUNN_COUNT,
G_TYPE_STRING, PANGO_TYPE_WEIGHT,
G_TYPE_STRING, G_TYPE_STRING);
self->results_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->results));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self->results_view), FALSE);
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_expand (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (self->results_view), column);
cell = gtk_cell_renderer_pixbuf_new ();
gtk_tree_view_column_pack_start (column, cell, FALSE);
gtk_tree_view_column_set_attributes (column, cell,
"icon-name", COLUMN_ICON, NULL);
cell = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, cell, TRUE);
gtk_tree_view_column_set_attributes (column, cell,
"text", COLUMN_MESSAGE,
"weight", COLUMN_WEIGHT, NULL);
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_expand (column, FALSE);
gtk_tree_view_append_column (GTK_TREE_VIEW (self->results_view), column);
cell = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, cell, TRUE);
gtk_tree_view_column_set_attributes (column, cell,
"text", COLUMN_RESULT, NULL);
scroller = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroller),
GTK_SHADOW_IN);
gtk_container_set_border_width (GTK_CONTAINER (scroller), 12);
gtk_container_add (GTK_CONTAINER (scroller), self->results_view);
gtk_notebook_append_page (GTK_NOTEBOOK (self->notebook),
scroller, gtk_label_new ("Results"));
g_signal_connect (self->notebook, "realize",
G_CALLBACK (realize_notebook_cb), self);
return self;
}
static void
test_suite_free (TestSuite* self)
{
@@ -1373,36 +1310,87 @@ watch_pointer_cb (gpointer data)
return TRUE;
}
int
main (int argc, char *argv[])
static void
test_suite_setup_results_page (TestSuite *self)
{
GtkTreeViewColumn *column;
GtkCellRenderer *cell;
GtkWidget *scroller;
self->results = gtk_tree_store_new (COLUNN_COUNT,
G_TYPE_STRING, PANGO_TYPE_WEIGHT,
G_TYPE_STRING, G_TYPE_STRING);
self->results_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (self->results));
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self->results_view), FALSE);
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_expand (column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW (self->results_view), column);
cell = gtk_cell_renderer_pixbuf_new ();
gtk_tree_view_column_pack_start (column, cell, FALSE);
gtk_tree_view_column_set_attributes (column, cell,
"icon-name", COLUMN_ICON, NULL);
cell = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, cell, TRUE);
gtk_tree_view_column_set_attributes (column, cell,
"text", COLUMN_MESSAGE,
"weight", COLUMN_WEIGHT, NULL);
column = gtk_tree_view_column_new ();
gtk_tree_view_column_set_expand (column, FALSE);
gtk_tree_view_append_column (GTK_TREE_VIEW (self->results_view), column);
cell = gtk_cell_renderer_text_new ();
gtk_tree_view_column_pack_start (column, cell, TRUE);
gtk_tree_view_column_set_attributes (column, cell,
"text", COLUMN_RESULT, NULL);
scroller = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroller),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scroller),
GTK_SHADOW_IN);
gtk_container_set_border_width (GTK_CONTAINER (scroller), 12);
gtk_container_add (GTK_CONTAINER (scroller), self->results_view);
gtk_notebook_append_page (GTK_NOTEBOOK (self->notebook),
scroller, gtk_label_new ("Results"));
g_signal_connect (self->notebook, "realize",
G_CALLBACK (realize_notebook_cb), self);
}
static void
test_suite_setup_ui (TestSuite *self)
{
TestSuite *suite;
GtkWidget *window;
GtkWidget *actions;
GtkWidget *button;
GtkWidget *align;
GtkWidget *vbox;
gtk_init (&argc, &argv);
self->notebook = gtk_notebook_new ();
gtk_notebook_set_tab_pos (GTK_NOTEBOOK (self->notebook), GTK_POS_RIGHT);
suite = test_suite_new ();
actions = gtk_hbox_new (FALSE, 12);
align = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);
gtk_container_add (GTK_CONTAINER (align), actions);
button = gtk_button_new_with_mnemonic ("Test _Current Page");
g_signal_connect (button, "clicked", G_CALLBACK (test_current_cb), suite);
g_signal_connect (button, "clicked", G_CALLBACK (test_current_cb), self);
gtk_box_pack_start (GTK_BOX (actions), button, FALSE, TRUE, 0);
g_signal_connect_data (suite->notebook, "switch-page",
g_signal_connect_data (self->notebook, "switch-page",
G_CALLBACK (switch_page_cb),
pointer_bag_new (suite, button, NULL),
pointer_bag_new (self, button, NULL),
(GClosureNotify) pointer_bag_free, 0);
button = gtk_button_new_with_mnemonic ("Test _All Pages");
g_signal_connect (button, "clicked", G_CALLBACK (test_all_cb), suite);
g_signal_connect (button, "clicked", G_CALLBACK (test_all_cb), self);
gtk_box_pack_start (GTK_BOX (actions), button, FALSE, TRUE, 0);
actions = gtk_hbox_new (FALSE, 12);
@@ -1412,43 +1400,69 @@ main (int argc, char *argv[])
gtk_label_new ("Guides:"),
FALSE, TRUE, 0);
suite->baselines = gtk_check_button_new_with_mnemonic ("_Baselines");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (suite->baselines), TRUE);
gtk_box_pack_start (GTK_BOX (actions), suite->baselines, FALSE, TRUE, 0);
self->baselines = gtk_check_button_new_with_mnemonic ("_Baselines");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->baselines), TRUE);
gtk_box_pack_start (GTK_BOX (actions), self->baselines, FALSE, TRUE, 0);
g_signal_connect_swapped (suite->baselines, "toggled",
g_signal_connect_swapped (self->baselines, "toggled",
G_CALLBACK (gtk_widget_queue_draw),
suite->notebook);
self->notebook);
suite->interiour = gtk_check_button_new_with_mnemonic ("_Interiours");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (suite->interiour), TRUE);
gtk_box_pack_start (GTK_BOX (actions), suite->interiour, FALSE, TRUE, 0);
self->interiour = gtk_check_button_new_with_mnemonic ("_Interiours");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->interiour), TRUE);
gtk_box_pack_start (GTK_BOX (actions), self->interiour, FALSE, TRUE, 0);
g_signal_connect_swapped (suite->interiour, "toggled",
g_signal_connect_swapped (self->interiour, "toggled",
G_CALLBACK (gtk_widget_queue_draw),
suite->notebook);
self->notebook);
suite->exteriour = gtk_check_button_new_with_mnemonic ("_Exteriours");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (suite->exteriour), TRUE);
gtk_box_pack_start (GTK_BOX (actions), suite->exteriour, FALSE, TRUE, 0);
self->exteriour = gtk_check_button_new_with_mnemonic ("_Exteriours");
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->exteriour), TRUE);
gtk_box_pack_start (GTK_BOX (actions), self->exteriour, FALSE, TRUE, 0);
g_signal_connect_swapped (suite->exteriour, "toggled",
g_signal_connect_swapped (self->exteriour, "toggled",
G_CALLBACK (gtk_widget_queue_draw),
suite->notebook);
self->notebook);
vbox = gtk_vbox_new (FALSE, 12);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 6);
gtk_box_pack_start (GTK_BOX (vbox), suite->notebook, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), self->notebook, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), actions, FALSE, TRUE, 0);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
self->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
g_timeout_add (200, watch_pointer_cb, suite);
g_signal_connect (self->window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
g_timeout_add (200, watch_pointer_cb, self);
gtk_window_set_title (GTK_WINDOW (window), "Testing GtkExtendedLayout");
gtk_container_add (GTK_CONTAINER (window), vbox);
gtk_widget_show_all (window);
gtk_window_set_title (GTK_WINDOW (self->window), "Testing GtkExtendedLayout");
gtk_container_add (GTK_CONTAINER (self->window), vbox);
}
static TestSuite*
test_suite_new ()
{
TestSuite* self = g_new0 (TestSuite, 1);
test_suite_setup_ui (self);
test_suite_append (self, create_natural_size_test (self));
test_suite_append (self, create_height_for_width_test (self));
test_suite_append (self, create_baseline_test (self));
test_suite_append (self, create_baseline_test_bin (self));
test_suite_append (self, create_baseline_test_hbox (self));
test_suite_setup_results_page (self);
return self;
}
int
main (int argc, char *argv[])
{
TestSuite *suite;
gtk_init (&argc, &argv);
suite = test_suite_new ();
gtk_widget_show_all (suite->window);
gtk_main ();