5 new_widget_info (const char *name,
10 info = g_new0 (WidgetInfo, 1);
11 info->name = g_strdup (name);
12 info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
13 info->no_focus = TRUE;
14 info->include_decorations = FALSE;
16 gtk_widget_set_app_paintable (info->window, TRUE);
17 g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
18 gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
19 gtk_widget_show_all (widget);
20 gtk_container_add (GTK_CONTAINER (info->window), widget);
30 widget = gtk_button_new_with_mnemonic ("_Button");
32 return new_widget_info ("button", widget);
36 create_toggle_button (void)
40 widget = gtk_toggle_button_new_with_mnemonic ("_Toggle Button");
41 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
43 return new_widget_info ("toggle-button", widget);
47 create_check_button (void)
51 widget = gtk_check_button_new_with_mnemonic ("_Check Button");
52 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
54 return new_widget_info ("check-button", widget);
62 widget = gtk_entry_new ();
63 gtk_entry_set_text (GTK_ENTRY (widget), "Entry");
64 gtk_editable_set_position (GTK_EDITABLE (widget), -1);
66 return new_widget_info ("entry", widget);
75 widget = gtk_vbox_new (FALSE, 3);
76 radio = gtk_radio_button_new_with_mnemonic (NULL, "Radio Button Item _One");
77 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
78 radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (radio), "Radio Button Item _Two");
79 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
80 radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (radio), "Radio Button Item T_hree");
81 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
83 return new_widget_info ("radio-group", widget);
91 widget = gtk_label_new ("Label");
93 return new_widget_info ("label", widget);
97 create_combo_box_entry (void)
101 widget = gtk_combo_box_entry_new_text ();
102 gtk_entry_set_text (GTK_ENTRY (GTK_BIN (widget)->child), "Combo Box Entry");
105 return new_widget_info ("combo-box-entry", widget);
109 create_text_view (void)
112 GtkWidget *text_view;
114 widget = gtk_frame_new (NULL);
115 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
116 text_view = gtk_text_view_new ();
117 gtk_container_add (GTK_CONTAINER (widget), text_view);
118 /* Bad hack to add some size to the widget */
119 gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)),
120 "Multiline \nText\n\n", -1);
121 gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
123 return new_widget_info ("multiline-text", widget);
127 create_tree_view (void)
130 GtkWidget *tree_view;
131 GtkListStore *list_store;
135 widget = gtk_frame_new (NULL);
136 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
137 list_store = gtk_list_store_new (1, G_TYPE_STRING);
138 gtk_list_store_append (list_store, &iter);
139 gtk_list_store_set (list_store, &iter, 0, "Line One", -1);
140 gtk_list_store_append (list_store, &iter);
141 gtk_list_store_set (list_store, &iter, 0, "Line Two", -1);
142 gtk_list_store_append (list_store, &iter);
143 gtk_list_store_set (list_store, &iter, 0, "Line Three", -1);
145 tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
146 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
148 gtk_cell_renderer_text_new (),
150 gtk_container_add (GTK_CONTAINER (widget), tree_view);
152 info = new_widget_info ("list-and-tree", widget);
153 info->no_focus = FALSE;
159 create_color_button (void)
166 vbox = gtk_vbox_new (FALSE, 3);
167 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
168 color.red = 0x1e<<8; /* Go Gagne! */
169 color.green = 0x90<<8;
170 color.blue = 0xff<<8;
171 picker = gtk_color_button_new_with_color (&color);
172 gtk_container_add (GTK_CONTAINER (align), picker);
173 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
174 gtk_box_pack_start (GTK_BOX (vbox),
175 gtk_label_new ("Color Button"),
178 return new_widget_info ("color-button", vbox);
182 create_font_button (void)
188 vbox = gtk_vbox_new (FALSE, 3);
189 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
190 picker = gtk_font_button_new_with_font ("Sans Serif 10");
191 gtk_container_add (GTK_CONTAINER (align), picker);
192 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
193 gtk_box_pack_start (GTK_BOX (vbox),
194 gtk_label_new ("Font Button"),
197 return new_widget_info ("font-button", vbox);
201 create_separator (void)
206 vbox = gtk_vbox_new (FALSE, 3);
207 hbox = gtk_hbox_new (TRUE, 0);
208 gtk_box_pack_start (GTK_BOX (hbox),
209 gtk_hseparator_new (),
211 gtk_box_pack_start (GTK_BOX (hbox),
212 gtk_vseparator_new (),
214 gtk_widget_set_size_request (hbox, 200, 150);
215 gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
216 gtk_box_pack_start (GTK_BOX (vbox),
217 gtk_label_new ("Horizontal and Vertical Separators"),
219 return new_widget_info ("separator", vbox);
229 vbox = gtk_vbox_new (FALSE, 3);
230 hbox = gtk_hbox_new (TRUE, 12);
231 pane = gtk_hpaned_new ();
232 gtk_paned_pack1 (GTK_PANED (pane),
233 g_object_new (GTK_TYPE_FRAME,
234 "shadow", GTK_SHADOW_IN,
237 gtk_paned_pack2 (GTK_PANED (pane),
238 g_object_new (GTK_TYPE_FRAME,
239 "shadow", GTK_SHADOW_IN,
242 gtk_box_pack_start (GTK_BOX (hbox),
245 pane = gtk_vpaned_new ();
246 gtk_paned_pack1 (GTK_PANED (pane),
247 g_object_new (GTK_TYPE_FRAME,
248 "shadow", GTK_SHADOW_IN,
251 gtk_paned_pack2 (GTK_PANED (pane),
252 g_object_new (GTK_TYPE_FRAME,
253 "shadow", GTK_SHADOW_IN,
256 gtk_box_pack_start (GTK_BOX (hbox),
259 gtk_widget_set_size_request (hbox, 200, 150);
260 gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
261 gtk_box_pack_start (GTK_BOX (vbox),
262 gtk_label_new ("Horizontal and Vertical Panes"),
264 return new_widget_info ("panes", vbox);
272 widget = gtk_frame_new ("Frame");
273 gtk_widget_set_size_request (widget, 150, 150);
275 return new_widget_info ("frame", widget);
284 widget = gtk_frame_new (NULL);
285 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_NONE);
286 gtk_widget_set_size_request (widget, 150, 150);
287 info = new_widget_info ("window", widget);
288 info->include_decorations = TRUE;
289 gtk_window_set_title (GTK_WINDOW (info->window), "Window");
295 get_all_widgets (void)
297 GList *retval = NULL;
299 retval = g_list_prepend (retval, create_button ());
300 retval = g_list_prepend (retval, create_toggle_button ());
301 retval = g_list_prepend (retval, create_check_button ());
302 retval = g_list_prepend (retval, create_entry ());
303 retval = g_list_prepend (retval, create_radio ());
304 retval = g_list_prepend (retval, create_label ());
305 retval = g_list_prepend (retval, create_combo_box_entry ());
306 retval = g_list_prepend (retval, create_text_view ());
307 retval = g_list_prepend (retval, create_tree_view ());
308 retval = g_list_prepend (retval, create_color_button ());
309 retval = g_list_prepend (retval, create_font_button ());
310 retval = g_list_prepend (retval, create_separator ());
311 retval = g_list_prepend (retval, create_panes ());
312 retval = g_list_prepend (retval, create_frame ());
313 retval = g_list_prepend (retval, create_window ());