From 4f15b988e711f368af6d53c169aaf458de7a5626 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 27 Oct 2020 00:24:54 -0400 Subject: [PATCH] docs: Add box, grid and center box to the gallery --- docs/reference/gtk/images/box.png | Bin 0 -> 5202 bytes docs/reference/gtk/images/centerbox.png | Bin 0 -> 3142 bytes docs/reference/gtk/images/grid.png | Bin 0 -> 3110 bytes docs/reference/gtk/meson.build | 3 + docs/reference/gtk/visual_index.xml | 5 + docs/tools/widgets.c | 165 +++++++++++++++++++++++- 6 files changed, 172 insertions(+), 1 deletion(-) create mode 100644 docs/reference/gtk/images/box.png create mode 100644 docs/reference/gtk/images/centerbox.png create mode 100644 docs/reference/gtk/images/grid.png diff --git a/docs/reference/gtk/images/box.png b/docs/reference/gtk/images/box.png new file mode 100644 index 0000000000000000000000000000000000000000..77a04a5948dd7c12f58bd2ae1790fef5f483185c GIT binary patch literal 5202 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 literal 0 HcmV?d00001 diff --git a/docs/reference/gtk/images/centerbox.png b/docs/reference/gtk/images/centerbox.png new file mode 100644 index 0000000000000000000000000000000000000000..0ad57fc938e6da51608acf059bd59c36bee4076e GIT binary patch literal 3142 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 Yp3U(2-dqlb{{AND=@@8N+^~=M2Oqui@c;k- literal 0 HcmV?d00001 diff --git a/docs/reference/gtk/images/grid.png b/docs/reference/gtk/images/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..8f83c4c118316d23658f7cd9d283f9eae2acd6d4 GIT binary patch literal 3110 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 iiWUEg`Ilvrs~Zq?VHq^Bp+I@F$F} Containers + + + + + diff --git a/docs/tools/widgets.c b/docs/tools/widgets.c index 3cb08a3410..6dedd9036a 100644 --- a/docs/tools/widgets.c +++ b/docs/tools/widgets.c @@ -681,6 +681,7 @@ create_editable_label (void) return new_widget_info ("editable-label", vbox, SMALL); } + static WidgetInfo * create_separator (void) { @@ -1924,10 +1925,169 @@ create_drawing_area (void) return info; } +static WidgetInfo * +create_box (void) +{ + GtkWidget *hbox; + GtkWidget *vbox; + GtkWidget *widget; + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3); + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 40); + gtk_widget_set_margin_top (hbox, 20); + gtk_widget_set_margin_bottom (hbox, 20); + gtk_widget_set_halign (hbox, GTK_ALIGN_CENTER); + widget = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4); + for (int i = 0; i < 2; i++) + { + GtkWidget *button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_box_append (GTK_BOX (widget), button); + } + gtk_box_append (GTK_BOX (widget), gtk_label_new ("⋯")); + gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); + gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); + gtk_box_append (GTK_BOX (hbox), widget); + widget = gtk_box_new (GTK_ORIENTATION_VERTICAL, 4); + for (int i = 0; i < 2; i++) + { + GtkWidget *button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_box_append (GTK_BOX (widget), button); + } + gtk_box_append (GTK_BOX (widget), gtk_label_new ("⋮")); + gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); + gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); + gtk_box_append (GTK_BOX (hbox), widget); + gtk_box_append (GTK_BOX (vbox), hbox); + gtk_box_append (GTK_BOX (vbox), g_object_new (GTK_TYPE_LABEL, + "label", "Horizontal and Vertical Boxes", + "justify", GTK_JUSTIFY_CENTER, + NULL)); + add_margin (vbox); + + return new_widget_info ("box", vbox, MEDIUM); +} + +static WidgetInfo * +create_center_box (void) +{ + GtkWidget *vbox; + GtkWidget *widget; + GtkWidget *button; + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3); + widget = gtk_center_box_new (); + gtk_widget_set_margin_top (widget, 10); + gtk_widget_set_margin_bottom (widget, 10); + gtk_widget_set_margin_start (widget, 20); + gtk_widget_set_margin_end (widget, 20); + gtk_widget_set_halign (widget, GTK_ALIGN_FILL); + gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_center_box_set_start_widget (GTK_CENTER_BOX (widget), button); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_center_box_set_center_widget (GTK_CENTER_BOX (widget), button); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_center_box_set_end_widget (GTK_CENTER_BOX (widget), button); + + gtk_box_append (GTK_BOX (vbox), widget); + gtk_box_append (GTK_BOX (vbox), g_object_new (GTK_TYPE_LABEL, + "label", "Center Box", + "justify", GTK_JUSTIFY_CENTER, + NULL)); + add_margin (vbox); + + return new_widget_info ("centerbox", vbox, SMALL); +} + +static WidgetInfo * +create_grid (void) +{ + GtkWidget *vbox; + GtkWidget *widget; + GtkWidget *button; + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 3); + widget = gtk_grid_new (); + gtk_grid_set_row_spacing (GTK_GRID (widget), 4); + gtk_grid_set_column_spacing (GTK_GRID (widget), 4); + gtk_widget_set_margin_top (widget, 20); + gtk_widget_set_margin_bottom (widget, 20); + gtk_widget_set_margin_start (widget, 20); + gtk_widget_set_margin_end (widget, 20); + gtk_widget_set_halign (widget, GTK_ALIGN_CENTER); + gtk_widget_set_valign (widget, GTK_ALIGN_CENTER); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_grid_attach (GTK_GRID (widget), button, 0, 0, 1, 1); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_grid_attach (GTK_GRID (widget), button, 0, 1, 1, 1); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_grid_attach (GTK_GRID (widget), button, 1, 0, 1, 1); + + button = gtk_button_new (); + gtk_widget_add_css_class (button, "small"); + gtk_widget_set_halign (button, GTK_ALIGN_CENTER); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_grid_attach (GTK_GRID (widget), button, 1, 1, 1, 1); + + gtk_grid_attach (GTK_GRID (widget), gtk_label_new ("⋯"), 2, 0, 1, 1); + gtk_grid_attach (GTK_GRID (widget), gtk_label_new ("⋮"), 0, 2, 1, 1); + + gtk_box_append (GTK_BOX (vbox), widget); + gtk_box_append (GTK_BOX (vbox), g_object_new (GTK_TYPE_LABEL, + "label", "Grid", + "justify", GTK_JUSTIFY_CENTER, + NULL)); + add_margin (vbox); + + return new_widget_info ("grid", vbox, MEDIUM); +} + GList * get_all_widgets (void) { GList *retval = NULL; + GtkCssProvider *provider; + + provider = gtk_css_provider_new (); + gtk_css_provider_load_from_data (provider, + "button.small {\n" + " min-width: 16px;\n" + " min-height: 16px;\n" + " padding: 0;\n" + "}", -1); + gtk_style_context_add_provider_for_display (gdk_display_get_default (), + GTK_STYLE_PROVIDER (provider), + 800); retval = g_list_prepend (retval, create_search_bar ()); retval = g_list_prepend (retval, create_action_bar ()); @@ -1997,7 +2157,10 @@ get_all_widgets (void) retval = g_list_prepend (retval, create_popover ()); retval = g_list_prepend (retval, create_menu ()); retval = g_list_prepend (retval, create_shortcuts_window ()); - retval = g_list_prepend (retval, create_drawing_area()); + retval = g_list_prepend (retval, create_drawing_area ()); + retval = g_list_prepend (retval, create_box ()); + retval = g_list_prepend (retval, create_center_box ()); + retval = g_list_prepend (retval, create_grid ()); return retval; }