mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-23 20:30:15 +00:00
New file with a set of tests for GtkCellRendererText. The idea is to run a
2005-09-28 Federico Mena Quintero <federico@ximian.com> * tests/testcellrenderertext.c: New file with a set of tests for GtkCellRendererText. The idea is to run a text renderer through most of its interesting property values to see that it works correctly. * tests/Makefile.am: Added testcellrenderertext. * gtk/gtkfilechooserdefault.c (load_set_model): Mark the entry/exit of this function for profiling. (gtk_file_chooser_default_style_set): Mark the start/end of the calls to the parent class and the the signal emission for profiling.
This commit is contained in:
parent
77b5224967
commit
3e9f549d3b
@ -37,7 +37,6 @@
|
||||
* modules/input/imime.c: Include <config.h>. (#317444, Kazuki
|
||||
Iwamoto)
|
||||
|
||||
>>>>>>> 1.7129
|
||||
2005-09-27 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
Don't reload the current folder unnecessarily on ::map().
|
||||
|
@ -37,7 +37,6 @@
|
||||
* modules/input/imime.c: Include <config.h>. (#317444, Kazuki
|
||||
Iwamoto)
|
||||
|
||||
>>>>>>> 1.7129
|
||||
2005-09-27 Federico Mena Quintero <federico@ximian.com>
|
||||
|
||||
Don't reload the current folder unnecessarily on ::map().
|
||||
|
@ -114,9 +114,9 @@ _gtk_file_chooser_profile_log (const char *func, int indent, const char *msg1, c
|
||||
profile_add_indent (indent);
|
||||
|
||||
if (profile_indent == 0)
|
||||
str = g_strdup_printf ("MARK: %s %s %s", func, msg1 ? msg1 : "", msg2 ? msg2 : "");
|
||||
str = g_strdup_printf ("MARK: %s %s %s", func ? func : "", msg1 ? msg1 : "", msg2 ? msg2 : "");
|
||||
else
|
||||
str = g_strdup_printf ("MARK: %*c %s %s %s", profile_indent - 1, ' ', func, msg1 ? msg1 : "", msg2 ? msg2 : "");
|
||||
str = g_strdup_printf ("MARK: %*c %s %s %s", profile_indent - 1, ' ', func ? func : "", msg1 ? msg1 : "", msg2 ? msg2 : "");
|
||||
|
||||
access (str, F_OK);
|
||||
g_free (str);
|
||||
@ -3097,6 +3097,9 @@ shortcuts_list_create (GtkFileChooserDefault *impl)
|
||||
/* Tree */
|
||||
|
||||
impl->browse_shortcuts_tree_view = gtk_tree_view_new ();
|
||||
#ifdef PROFILE_FILE_CHOOSER
|
||||
g_object_set_data (impl->browse_shortcuts_tree_view, "fmq-name", "shortcuts");
|
||||
#endif
|
||||
g_signal_connect (impl->browse_shortcuts_tree_view, "key-press-event",
|
||||
G_CALLBACK (tree_view_keybinding_cb), impl);
|
||||
g_signal_connect (impl->browse_shortcuts_tree_view, "popup-menu",
|
||||
@ -3605,6 +3608,9 @@ create_file_list (GtkFileChooserDefault *impl)
|
||||
/* Tree/list view */
|
||||
|
||||
impl->browse_files_tree_view = gtk_tree_view_new ();
|
||||
#ifdef PROFILE_FILE_CHOOSER
|
||||
g_object_set_data (impl->browse_files_tree_view, "fmq-name", "file_list");
|
||||
#endif
|
||||
g_object_set_data (G_OBJECT (impl->browse_files_tree_view), I_("GtkFileChooserDefault"), impl);
|
||||
atk_object_set_name (gtk_widget_get_accessible (impl->browse_files_tree_view), _("Files"));
|
||||
|
||||
@ -4574,13 +4580,17 @@ gtk_file_chooser_default_style_set (GtkWidget *widget,
|
||||
|
||||
impl = GTK_FILE_CHOOSER_DEFAULT (widget);
|
||||
|
||||
profile_msg (" parent class style_set start", NULL);
|
||||
if (GTK_WIDGET_CLASS (parent_class)->style_set)
|
||||
GTK_WIDGET_CLASS (parent_class)->style_set (widget, previous_style);
|
||||
profile_msg (" parent class style_set end", NULL);
|
||||
|
||||
if (gtk_widget_has_screen (GTK_WIDGET (impl)))
|
||||
change_icon_theme (impl);
|
||||
|
||||
profile_msg (" emit default-size-changed start", NULL);
|
||||
g_signal_emit_by_name (widget, "default-size-changed");
|
||||
profile_msg (" emit default-size-changed end", NULL);
|
||||
|
||||
profile_end ("end", NULL);
|
||||
}
|
||||
@ -4858,9 +4868,12 @@ set_busy_cursor (GtkFileChooserDefault *impl,
|
||||
static void
|
||||
load_set_model (GtkFileChooserDefault *impl)
|
||||
{
|
||||
profile_start ("start", NULL);
|
||||
|
||||
g_assert (impl->browse_files_model != NULL);
|
||||
g_assert (impl->sort_model == NULL);
|
||||
|
||||
profile_msg (" gtk_tree_model_sort_new_with_model start", NULL);
|
||||
impl->sort_model = (GtkTreeModelSort *)gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (impl->browse_files_model));
|
||||
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (impl->sort_model), FILE_LIST_COL_NAME, name_sort_func, impl, NULL);
|
||||
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (impl->sort_model), FILE_LIST_COL_SIZE, size_sort_func, impl, NULL);
|
||||
@ -4868,15 +4881,20 @@ load_set_model (GtkFileChooserDefault *impl)
|
||||
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (impl->sort_model), NULL, NULL, NULL);
|
||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (impl->sort_model), FILE_LIST_COL_NAME, GTK_SORT_ASCENDING);
|
||||
impl->list_sort_ascending = TRUE;
|
||||
profile_msg (" gtk_tree_model_sort_new_with_model end", NULL);
|
||||
|
||||
g_signal_connect (impl->sort_model, "sort-column-changed",
|
||||
G_CALLBACK (list_sort_column_changed_cb), impl);
|
||||
|
||||
profile_msg (" gtk_tree_view_set_model start", NULL);
|
||||
gtk_tree_view_set_model (GTK_TREE_VIEW (impl->browse_files_tree_view),
|
||||
GTK_TREE_MODEL (impl->sort_model));
|
||||
gtk_tree_view_columns_autosize (GTK_TREE_VIEW (impl->browse_files_tree_view));
|
||||
gtk_tree_view_set_search_column (GTK_TREE_VIEW (impl->browse_files_tree_view),
|
||||
GTK_FILE_SYSTEM_MODEL_DISPLAY_NAME);
|
||||
profile_msg (" gtk_tree_view_set_model end", NULL);
|
||||
|
||||
profile_end ("end", NULL);
|
||||
}
|
||||
|
||||
/* Timeout callback used when the loading timer expires */
|
||||
|
@ -34,6 +34,7 @@ noinst_PROGRAMS = \
|
||||
testcalendar \
|
||||
testcombo \
|
||||
testcombochange \
|
||||
testcellrenderertext \
|
||||
testdnd \
|
||||
testellipsise \
|
||||
testentrycompletion \
|
||||
@ -83,6 +84,7 @@ testcairo_DEPENDENCIES = $(TEST_DEPS)
|
||||
testcalendar_DEPENDENCIES = $(TEST_DEPS)
|
||||
testcombo_DEPENDENCIES = $(TEST_DEPS)
|
||||
testcombochange_DEPENDENCIES = $(TEST_DEPS)
|
||||
testcellrenderertext_DEPENDENCIES = $(TEST_DEPS)
|
||||
testdnd_DEPENDENCIES = $(TEST_DEPS)
|
||||
testellipsise_DEPENDENCIES = $(TEST_DEPS)
|
||||
testentrycompletion_DEPENDENCIES = $(TEST_DEPS)
|
||||
@ -122,6 +124,7 @@ testcairo_LDADD = $(LDADDS)
|
||||
testcalendar_LDADD = $(LDADDS)
|
||||
testcombo_LDADD = $(LDADDS)
|
||||
testcombochange_LDADD = $(LDADDS)
|
||||
testcellrenderertext_LDADD = $(LDADDS)
|
||||
testdnd_LDADD = $(LDADDS)
|
||||
testellipsise_LDADD = $(LDADDS)
|
||||
testentrycompletion_LDADD = $(LDADDS)
|
||||
|
@ -1,3 +1,26 @@
|
||||
/* GTK - The GIMP Toolkit
|
||||
* autotestfilechooser.c: Automated unit tests for the GtkFileChooser widget
|
||||
* Copyright (C) 2005, Novell, Inc.
|
||||
*
|
||||
* Authors:
|
||||
* Federico Mena-Quintero <federico@novell.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED
|
||||
|
||||
#include <config.h>
|
||||
|
273
tests/testcellrenderertext.c
Normal file
273
tests/testcellrenderertext.c
Normal file
@ -0,0 +1,273 @@
|
||||
/* GTK - The GIMP Toolkit
|
||||
* testcellrenderertext.c: Tests for the various properties of GtkCellRendererText
|
||||
* Copyright (C) 2005, Novell, Inc.
|
||||
*
|
||||
* Authors:
|
||||
* Federico Mena-Quintero <federico@novell.com>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the
|
||||
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#define COL_BACKGROUND 14
|
||||
#define COL_LINE_NUM 15
|
||||
#define NUM_COLS 16 /* change this when adding columns */
|
||||
|
||||
struct cell_params {
|
||||
char *description; /* 0 */
|
||||
char *test; /* 1 */
|
||||
int xpad; /* 2 */
|
||||
int ypad; /* 3 */
|
||||
double xalign; /* 4 */
|
||||
double yalign; /* 5 */
|
||||
gboolean sensitive; /* 6 */
|
||||
int width; /* 7 */
|
||||
int height; /* 8 */
|
||||
int width_chars; /* 9 */
|
||||
int wrap_width; /* 10 */
|
||||
PangoWrapMode wrap_mode; /* 11 */
|
||||
gboolean single_paragraph_mode; /* 12 */
|
||||
PangoEllipsizeMode ellipsize; /* 13 */
|
||||
/* COL_BACKGROUND */ /* 14 */
|
||||
/* COL_LINE_NUM */ /* 15 */
|
||||
};
|
||||
|
||||
#define WO PANGO_WRAP_WORD
|
||||
#define CH PANGO_WRAP_CHAR
|
||||
#define WC PANGO_WRAP_WORD_CHAR
|
||||
|
||||
#define NO PANGO_ELLIPSIZE_NONE
|
||||
#define ST PANGO_ELLIPSIZE_START
|
||||
#define MI PANGO_ELLIPSIZE_MIDDLE
|
||||
#define EN PANGO_ELLIPSIZE_END
|
||||
|
||||
|
||||
#define TESTL "LEFT JUSTIFIED This is really truly verily some very long text\n\330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205"
|
||||
|
||||
#define TESTC "CENTERED This is really truly verily some very long text\n\330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205"
|
||||
|
||||
#define TESTR "RIGHT JUSTIFIED This is really truly verily some very long text\n\330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205 \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205"
|
||||
|
||||
static const struct cell_params cell_params[] = {
|
||||
{ "xp yp xa ya se wi he wc ww wm sp el", "", 0, 0, 0.0, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 0 */
|
||||
|
||||
/* Test alignment */
|
||||
|
||||
{ "0 0 0 0 T -1 -1 -1 -1 CH F NO", TESTL, 0, 0, 0.0, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 1 */
|
||||
{ "0 0 .5 0 T -1 -1 -1 -1 CH F NO", TESTC, 0, 0, 0.5, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 2 */
|
||||
{ "0 0 1 0 T -1 -1 -1 -1 CH F NO", TESTR, 0, 0, 1.0, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 3 */
|
||||
{ "0 0 0 .5 T -1 -1 -1 -1 CH F NO", TESTL, 0, 0, 0.0, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 4 */
|
||||
{ "0 0 .5 .5 T -1 -1 -1 -1 CH F NO", TESTC, 0, 0, 0.5, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 5 */
|
||||
{ "0 0 1 .5 T -1 -1 -1 -1 CH F NO", TESTR, 0, 0, 1.0, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 6 */
|
||||
{ "0 0 0 1 T -1 -1 -1 -1 CH F NO", TESTL, 0, 0, 0.0, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 7 */
|
||||
{ "0 0 .5 1 T -1 -1 -1 -1 CH F NO", TESTC, 0, 0, 0.5, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 8 */
|
||||
{ "0 0 1 1 T -1 -1 -1 -1 CH F NO", TESTR, 0, 0, 1.0, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 9 */
|
||||
|
||||
/* Test padding */
|
||||
|
||||
{ "10 10 0 0 T -1 -1 -1 -1 CH F NO", TESTL, 10, 10, 0.0, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 10 */
|
||||
{ "10 10 .5 0 T -1 -1 -1 -1 CH F NO", TESTC, 10, 10, 0.5, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 11 */
|
||||
{ "10 10 1 0 T -1 -1 -1 -1 CH F NO", TESTR, 10, 10, 1.0, 0.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 12 */
|
||||
{ "10 10 0 .5 T -1 -1 -1 -1 CH F NO", TESTL, 10, 10, 0.0, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 13 */
|
||||
{ "10 10 .5 .5 T -1 -1 -1 -1 CH F NO", TESTC, 10, 10, 0.5, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 14 */
|
||||
{ "10 10 1 .5 T -1 -1 -1 -1 CH F NO", TESTR, 10, 10, 1.0, 0.5, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 15 */
|
||||
{ "10 10 0 1 T -1 -1 -1 -1 CH F NO", TESTL, 10, 10, 0.0, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 16 */
|
||||
{ "10 10 .5 1 T -1 -1 -1 -1 CH F NO", TESTC, 10, 10, 0.5, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 17 */
|
||||
{ "10 10 1 1 T -1 -1 -1 -1 CH F NO", TESTR, 10, 10, 1.0, 1.0, TRUE, -1, -1, -1, -1, CH, FALSE, NO }, /* 18 */
|
||||
|
||||
|
||||
};
|
||||
|
||||
static GtkListStore *
|
||||
create_list_store (void)
|
||||
{
|
||||
GtkListStore *list_store;
|
||||
int i;
|
||||
|
||||
list_store = gtk_list_store_new (NUM_COLS,
|
||||
G_TYPE_STRING, /* 0 */
|
||||
G_TYPE_STRING, /* 1 */
|
||||
G_TYPE_INT, /* 2 */
|
||||
G_TYPE_INT, /* 3 */
|
||||
G_TYPE_DOUBLE, /* 4 */
|
||||
G_TYPE_DOUBLE, /* 5 */
|
||||
G_TYPE_BOOLEAN, /* 6 */
|
||||
G_TYPE_INT, /* 7 */
|
||||
G_TYPE_INT, /* 8 */
|
||||
G_TYPE_INT, /* 9 */
|
||||
G_TYPE_INT, /* 10 */
|
||||
PANGO_TYPE_WRAP_MODE, /* 11 */
|
||||
G_TYPE_BOOLEAN, /* 12 */
|
||||
PANGO_TYPE_ELLIPSIZE_MODE, /* 13 */
|
||||
G_TYPE_STRING, /* 14 */
|
||||
G_TYPE_STRING); /* 15 */
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (cell_params); i++)
|
||||
{
|
||||
const struct cell_params *p;
|
||||
GtkTreeIter iter;
|
||||
char buf[50];
|
||||
|
||||
p = cell_params + i;
|
||||
|
||||
snprintf (buf, sizeof (buf), "%d", i);
|
||||
|
||||
gtk_list_store_append (list_store, &iter);
|
||||
gtk_list_store_set (list_store, &iter,
|
||||
0, p->description,
|
||||
1, p->test,
|
||||
2, p->xpad,
|
||||
3, p->ypad,
|
||||
4, p->xalign,
|
||||
5, p->yalign,
|
||||
6, p->sensitive,
|
||||
7, p->width,
|
||||
8, p->height,
|
||||
9, p->width_chars,
|
||||
10, p->wrap_width,
|
||||
11, p->wrap_mode,
|
||||
12, p->single_paragraph_mode,
|
||||
13, p->ellipsize,
|
||||
14, (i % 2 == 0) ? "gray50" : "gray80",
|
||||
15, buf,
|
||||
-1);
|
||||
}
|
||||
|
||||
return list_store;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_tree (gboolean rtl)
|
||||
{
|
||||
GtkWidget *sw;
|
||||
GtkWidget *treeview;
|
||||
GtkListStore *list_store;
|
||||
GtkTreeViewColumn *column;
|
||||
GtkCellRenderer *renderer;
|
||||
GdkPixbuf *pixbuf;
|
||||
|
||||
sw = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_IN);
|
||||
gtk_widget_set_direction (sw, rtl ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR);
|
||||
|
||||
list_store = create_list_store ();
|
||||
|
||||
treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
|
||||
gtk_widget_set_direction (treeview, rtl ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR);
|
||||
gtk_container_add (GTK_CONTAINER (sw), treeview);
|
||||
|
||||
/* Line number */
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
column = gtk_tree_view_column_new_with_attributes ("#",
|
||||
renderer,
|
||||
"text", COL_LINE_NUM,
|
||||
NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
||||
|
||||
/* Description */
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
g_object_set (renderer,
|
||||
"font", "monospace",
|
||||
NULL);
|
||||
column = gtk_tree_view_column_new_with_attributes ("Description",
|
||||
renderer,
|
||||
"text", 0,
|
||||
NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
||||
|
||||
/* Test text */
|
||||
|
||||
renderer = gtk_cell_renderer_text_new ();
|
||||
column = gtk_tree_view_column_new_with_attributes ("Test",
|
||||
renderer,
|
||||
"text", 1,
|
||||
"xpad", 2,
|
||||
"ypad", 3,
|
||||
"xalign", 4,
|
||||
"yalign", 5,
|
||||
"sensitive", 6,
|
||||
"width", 7,
|
||||
"height", 8,
|
||||
"width_chars", 9,
|
||||
"wrap_width", 10,
|
||||
"wrap_mode", 11,
|
||||
"single_paragraph_mode", 12,
|
||||
"ellipsize", 13,
|
||||
"cell_background", 14,
|
||||
NULL);
|
||||
gtk_tree_view_column_set_resizable (column, TRUE);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
||||
|
||||
/* Empty column */
|
||||
|
||||
pixbuf = gdk_pixbuf_new_from_file ("apple-red.png", NULL);
|
||||
|
||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||
g_object_set (renderer,
|
||||
"pixbuf", pixbuf,
|
||||
"xpad", 10,
|
||||
"ypad", 10,
|
||||
NULL);
|
||||
column = gtk_tree_view_column_new_with_attributes ("Empty",
|
||||
renderer,
|
||||
NULL);
|
||||
gtk_tree_view_append_column (GTK_TREE_VIEW (treeview), column);
|
||||
|
||||
return sw;
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
GtkWidget *window;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *label;
|
||||
GtkWidget *tree;
|
||||
|
||||
gtk_init (&argc, &argv);
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_main_quit), NULL);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 12);
|
||||
|
||||
vbox = gtk_vbox_new (FALSE, 12);
|
||||
gtk_container_add (GTK_CONTAINER (window), vbox);
|
||||
|
||||
/* LTR */
|
||||
|
||||
label = gtk_label_new ("Left to right");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
tree = create_tree (FALSE);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), tree, TRUE, TRUE, 0);
|
||||
|
||||
/* RTL */
|
||||
|
||||
label = gtk_label_new ("Right to left");
|
||||
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
|
||||
|
||||
tree = create_tree (TRUE);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), tree, TRUE, TRUE, 0);
|
||||
|
||||
gtk_widget_show_all (window);
|
||||
gtk_main ();
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user