1 #include <gdk/gdkkeysyms.h>
6 new_widget_info (const char *name,
11 info = g_new0 (WidgetInfo, 1);
12 info->name = g_strdup (name);
13 info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
14 info->no_focus = TRUE;
15 info->include_decorations = FALSE;
17 gtk_widget_set_app_paintable (info->window, TRUE);
18 g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
19 gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
20 gtk_widget_show_all (widget);
21 gtk_container_add (GTK_CONTAINER (info->window), widget);
31 widget = gtk_button_new_with_mnemonic ("_Button");
33 return new_widget_info ("button", widget);
37 create_toggle_button (void)
41 widget = gtk_toggle_button_new_with_mnemonic ("_Toggle Button");
42 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), FALSE);
44 return new_widget_info ("toggle-button", widget);
48 create_check_button (void)
52 widget = gtk_check_button_new_with_mnemonic ("_Check Button");
53 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
55 return new_widget_info ("check-button", widget);
63 widget = gtk_entry_new ();
64 gtk_entry_set_text (GTK_ENTRY (widget), "Entry");
65 gtk_editable_set_position (GTK_EDITABLE (widget), -1);
67 return new_widget_info ("entry", widget);
76 widget = gtk_vbox_new (FALSE, 3);
77 radio = gtk_radio_button_new_with_mnemonic (NULL, "Radio Button Item _One");
78 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
79 radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (radio), "Radio Button Item _Two");
80 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
81 radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (radio), "Radio Button Item T_hree");
82 gtk_box_pack_start (GTK_BOX (widget), radio, FALSE, FALSE, 0);
84 return new_widget_info ("radio-group", widget);
92 widget = gtk_label_new ("Label");
94 return new_widget_info ("label", widget);
98 create_accel_label (void)
101 GtkWidget *widget, *button, *box;
102 GtkAccelGroup *accel_group;
104 widget = gtk_accel_label_new ("Accel Label");
106 button = gtk_button_new_with_label ("Quit");
107 gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (widget), button);
108 gtk_widget_set_no_show_all (button, TRUE);
110 box = gtk_vbox_new (FALSE, 0);
111 gtk_container_add (GTK_CONTAINER (box), widget);
112 gtk_container_add (GTK_CONTAINER (box), button);
114 gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (widget), button);
115 accel_group = gtk_accel_group_new();
117 info = g_new0 (WidgetInfo, 1);
118 info->name = g_strdup ("accel-label");
119 info->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
120 gtk_widget_set_size_request (info->window, 200, -1);
121 gtk_widget_show_all (box);
122 gtk_container_add (GTK_CONTAINER (info->window), box);
124 info->no_focus = TRUE;
125 info->include_decorations = FALSE;
127 gtk_widget_set_app_paintable (info->window, TRUE);
128 g_signal_connect (info->window, "focus", G_CALLBACK (gtk_true), NULL);
129 gtk_container_set_border_width (GTK_CONTAINER (info->window), 12);
130 gtk_widget_add_accelerator (button, "activate", accel_group, GDK_Q, GDK_CONTROL_MASK,
131 GTK_ACCEL_VISIBLE | GTK_ACCEL_LOCKED);
137 create_combo_box_entry (void)
141 widget = gtk_combo_box_entry_new_text ();
142 gtk_entry_set_text (GTK_ENTRY (GTK_BIN (widget)->child), "Combo Box Entry");
145 return new_widget_info ("combo-box-entry", widget);
149 create_text_view (void)
152 GtkWidget *text_view;
154 widget = gtk_frame_new (NULL);
155 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
156 text_view = gtk_text_view_new ();
157 gtk_container_add (GTK_CONTAINER (widget), text_view);
158 /* Bad hack to add some size to the widget */
159 gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view)),
160 "Multiline \nText\n\n", -1);
161 gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (text_view), FALSE);
163 return new_widget_info ("multiline-text", widget);
167 create_tree_view (void)
170 GtkWidget *tree_view;
171 GtkListStore *list_store;
175 widget = gtk_frame_new (NULL);
176 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
177 list_store = gtk_list_store_new (1, G_TYPE_STRING);
178 gtk_list_store_append (list_store, &iter);
179 gtk_list_store_set (list_store, &iter, 0, "Line One", -1);
180 gtk_list_store_append (list_store, &iter);
181 gtk_list_store_set (list_store, &iter, 0, "Line Two", -1);
182 gtk_list_store_append (list_store, &iter);
183 gtk_list_store_set (list_store, &iter, 0, "Line Three", -1);
185 tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
186 gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
188 gtk_cell_renderer_text_new (),
190 gtk_container_add (GTK_CONTAINER (widget), tree_view);
192 info = new_widget_info ("list-and-tree", widget);
193 info->no_focus = FALSE;
199 create_icon_view (void)
204 GtkWidget *icon_view;
205 GtkListStore *list_store;
210 widget = gtk_frame_new (NULL);
211 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_IN);
212 list_store = gtk_list_store_new (2, G_TYPE_STRING, GDK_TYPE_PIXBUF);
213 gtk_list_store_append (list_store, &iter);
214 pixbuf = gdk_pixbuf_new_from_file_at_size ("gnome-gmush.png", 20, 20, NULL);
215 gtk_list_store_set (list_store, &iter, 0, "One", 1, pixbuf, -1);
216 gtk_list_store_append (list_store, &iter);
217 pixbuf = gdk_pixbuf_new_from_file_at_size ("gnome-foot.png", 20, 20, NULL);
218 gtk_list_store_set (list_store, &iter, 0, "Two", 1, pixbuf, -1);
220 icon_view = gtk_icon_view_new();
222 gtk_icon_view_set_model (GTK_ICON_VIEW (icon_view), GTK_TREE_MODEL (list_store));
223 gtk_icon_view_set_text_column (GTK_ICON_VIEW (icon_view), 0);
224 gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), 1);
225 gtk_widget_set_size_request (icon_view, 220, 60);
227 gtk_container_add (GTK_CONTAINER (widget), icon_view);
229 vbox = gtk_vbox_new (FALSE, 3);
230 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
231 gtk_container_add (GTK_CONTAINER (align), widget);
232 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
233 gtk_box_pack_start (GTK_BOX (vbox),
234 gtk_label_new ("Icon View"),
237 info = new_widget_info ("icon-view", vbox);
238 info->no_focus = FALSE;
244 create_color_button (void)
251 vbox = gtk_vbox_new (FALSE, 3);
252 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
253 color.red = 0x1e<<8; /* Go Gagne! */
254 color.green = 0x90<<8;
255 color.blue = 0xff<<8;
256 picker = gtk_color_button_new_with_color (&color);
257 gtk_container_add (GTK_CONTAINER (align), picker);
258 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
259 gtk_box_pack_start (GTK_BOX (vbox),
260 gtk_label_new ("Color Button"),
263 return new_widget_info ("color-button", vbox);
267 create_font_button (void)
273 vbox = gtk_vbox_new (FALSE, 3);
274 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
275 picker = gtk_font_button_new_with_font ("Sans Serif 10");
276 gtk_container_add (GTK_CONTAINER (align), picker);
277 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
278 gtk_box_pack_start (GTK_BOX (vbox),
279 gtk_label_new ("Font Button"),
282 return new_widget_info ("font-button", vbox);
286 create_file_button (void)
292 vbox = gtk_vbox_new (FALSE, 3);
293 align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
294 picker = gtk_file_chooser_button_new ("File Button");
295 gtk_widget_set_size_request (picker, 150, -1);
296 gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (picker), "/etc/yum.conf");
297 gtk_container_add (GTK_CONTAINER (align), picker);
298 gtk_box_pack_start (GTK_BOX (vbox), align, FALSE, FALSE, 0);
299 gtk_box_pack_start (GTK_BOX (vbox),
300 gtk_label_new ("File Button"),
303 return new_widget_info ("file-button", vbox);
307 create_separator (void)
312 vbox = gtk_vbox_new (FALSE, 3);
313 hbox = gtk_hbox_new (TRUE, 0);
314 gtk_box_pack_start (GTK_BOX (hbox),
315 gtk_hseparator_new (),
317 gtk_box_pack_start (GTK_BOX (hbox),
318 gtk_vseparator_new (),
320 gtk_widget_set_size_request (hbox, 200, 150);
321 gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
322 gtk_box_pack_start (GTK_BOX (vbox),
323 gtk_label_new ("Horizontal and Vertical Separators"),
325 return new_widget_info ("separator", vbox);
335 vbox = gtk_vbox_new (FALSE, 3);
336 hbox = gtk_hbox_new (TRUE, 12);
337 pane = gtk_hpaned_new ();
338 gtk_paned_pack1 (GTK_PANED (pane),
339 g_object_new (GTK_TYPE_FRAME,
340 "shadow", GTK_SHADOW_IN,
343 gtk_paned_pack2 (GTK_PANED (pane),
344 g_object_new (GTK_TYPE_FRAME,
345 "shadow", GTK_SHADOW_IN,
348 gtk_box_pack_start (GTK_BOX (hbox),
351 pane = gtk_vpaned_new ();
352 gtk_paned_pack1 (GTK_PANED (pane),
353 g_object_new (GTK_TYPE_FRAME,
354 "shadow", GTK_SHADOW_IN,
357 gtk_paned_pack2 (GTK_PANED (pane),
358 g_object_new (GTK_TYPE_FRAME,
359 "shadow", GTK_SHADOW_IN,
362 gtk_box_pack_start (GTK_BOX (hbox),
365 gtk_widget_set_size_request (hbox, 200, 150);
366 gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
367 gtk_box_pack_start (GTK_BOX (vbox),
368 gtk_label_new ("Horizontal and Vertical Panes"),
370 return new_widget_info ("panes", vbox);
378 widget = gtk_frame_new ("Frame");
379 gtk_widget_set_size_request (widget, 150, 150);
381 return new_widget_info ("frame", widget);
390 widget = gtk_frame_new (NULL);
391 gtk_frame_set_shadow_type (GTK_FRAME (widget), GTK_SHADOW_NONE);
392 gtk_widget_set_size_request (widget, 150, 150);
393 info = new_widget_info ("window", widget);
394 info->include_decorations = TRUE;
395 gtk_window_set_title (GTK_WINDOW (info->window), "Window");
401 get_all_widgets (void)
403 GList *retval = NULL;
405 retval = g_list_prepend (retval, create_button ());
406 retval = g_list_prepend (retval, create_toggle_button ());
407 retval = g_list_prepend (retval, create_check_button ());
408 retval = g_list_prepend (retval, create_entry ());
409 retval = g_list_prepend (retval, create_radio ());
410 retval = g_list_prepend (retval, create_label ());
411 retval = g_list_prepend (retval, create_combo_box_entry ());
412 retval = g_list_prepend (retval, create_text_view ());
413 retval = g_list_prepend (retval, create_tree_view ());
414 retval = g_list_prepend (retval, create_color_button ());
415 retval = g_list_prepend (retval, create_font_button ());
416 retval = g_list_prepend (retval, create_separator ());
417 retval = g_list_prepend (retval, create_panes ());
418 retval = g_list_prepend (retval, create_frame ());
419 retval = g_list_prepend (retval, create_window ());
420 retval = g_list_prepend (retval, create_accel_label ());
421 retval = g_list_prepend (retval, create_file_button ());
422 retval = g_list_prepend (retval, create_icon_view ());