tProvide GTK+3-style box/separator classes - vaccinewars - be a doctor and try … | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1f6a577947dc2b283f22d04d6e7f9a59d0d1b9d2 | |
parent fb3eef6a4433c490dd8aaa0805a5bc7aac5cd001 | |
Author: Ben Webb <[email protected]> | |
Date: Thu, 26 Nov 2020 00:38:57 -0800 | |
Provide GTK+3-style box/separator classes | |
Replace hbox/vbox with box(orientation), to | |
match GTK+3, and similarly for separator classes. | |
Diffstat: | |
M src/gtkport/gtkenums.h | 6 ++++++ | |
M src/gtkport/gtkport.c | 63 ++++++++++++++++-------------… | |
M src/gtkport/gtkport.h | 16 ++++++---------- | |
3 files changed, 45 insertions(+), 40 deletions(-) | |
--- | |
diff --git a/src/gtkport/gtkenums.h b/src/gtkport/gtkenums.h | |
t@@ -121,6 +121,12 @@ typedef enum | |
GTK_WIN_POS_CENTER_ON_PARENT | |
} GtkWindowPosition; | |
+typedef enum | |
+{ | |
+ GTK_ORIENTATION_HORIZONTAL, | |
+ GTK_ORIENTATION_VERTICAL | |
+} GtkOrientation; | |
+ | |
enum | |
{ | |
G_TYPE_STRING, | |
diff --git a/src/gtkport/gtkport.c b/src/gtkport/gtkport.c | |
t@@ -1919,26 +1919,24 @@ GtkWidget *gtk_url_new(const gchar *text, const gchar … | |
return GTK_WIDGET(url); | |
} | |
-GtkWidget *gtk_hbox_new(gboolean homogeneous, gint spacing) | |
+GtkWidget *gtk_box_new(GtkOrientation orientation, gint spacing) | |
{ | |
- GtkBox *hbox; | |
+ GtkBox *box; | |
- hbox = GTK_BOX(GtkNewObject(&GtkHBoxClass)); | |
+ if (orientation == GTK_ORIENTATION_HORIZONTAL) { | |
+ box = GTK_BOX(GtkNewObject(&GtkHBoxClass)); | |
+ } else { | |
+ box = GTK_BOX(GtkNewObject(&GtkVBoxClass)); | |
+ } | |
- hbox->spacing = spacing; | |
- hbox->homogeneous = homogeneous; | |
- return GTK_WIDGET(hbox); | |
+ box->spacing = spacing; | |
+ box->homogeneous = FALSE; | |
+ return GTK_WIDGET(box); | |
} | |
-GtkWidget *gtk_vbox_new(gboolean homogeneous, gint spacing) | |
+void gtk_box_set_homogeneous(GtkBox *box, gboolean homogenenous) | |
{ | |
- GtkBox *vbox; | |
- | |
- vbox = GTK_BOX(GtkNewObject(&GtkVBoxClass)); | |
- | |
- vbox->spacing = spacing; | |
- vbox->homogeneous = homogeneous; | |
- return GTK_WIDGET(vbox); | |
+ box->homogeneous = homogeneous; | |
} | |
GtkWidget *gtk_frame_new(const gchar *text) | |
t@@ -4251,14 +4249,13 @@ void gtk_spin_button_update(GtkSpinButton *spin_button) | |
{ | |
} | |
-GtkWidget *gtk_hseparator_new() | |
-{ | |
- return GTK_WIDGET(GtkNewObject(&GtkHSeparatorClass)); | |
-} | |
- | |
-GtkWidget *gtk_vseparator_new() | |
+GtkWidget *gtk_separator_new(GtkOrientation orientation) | |
{ | |
- return GTK_WIDGET(GtkNewObject(&GtkVSeparatorClass)); | |
+ if (orientation == GTK_ORIENTATION_HORIZONTAL) { | |
+ return GTK_WIDGET(GtkNewObject(&GtkHSeparatorClass)); | |
+ } else { | |
+ return GTK_WIDGET(GtkNewObject(&GtkVSeparatorClass)); | |
+ } | |
} | |
void gtk_separator_size_request(GtkWidget *widget, | |
t@@ -5124,21 +5121,27 @@ void gtk_widget_set_style(GtkWidget *widget, GtkStyle … | |
{ | |
} | |
-static gint hbbox_spacing = 0; | |
- | |
-GtkWidget *gtk_hbutton_box_new() | |
+GtkWidget *gtk_button_box_new(GtkOrientation orientation) | |
{ | |
- GtkWidget *hbbox, *spacer; | |
+ GtkWidget *bbox, *spacer; | |
- hbbox = gtk_hbox_new(TRUE, hbbox_spacing); | |
- spacer = gtk_label_new(""); | |
- gtk_box_pack_start(GTK_BOX(hbbox), spacer, TRUE, TRUE, 0); | |
+ if (orientation == GTK_ORIENTATION_HORIZONTAL) { | |
+ bbox = gtk_box_new(orientation, 0); | |
+ } else { | |
+ bbox = gtk_box_new(orientation, 5); | |
+ } | |
+ gtk_box_set_homogeneous(GTK_BOX(bbox), TRUE); | |
+ if (orientation == GTK_ORIENTATION_HORIZONTAL) { | |
+ /* Add a spacer so that all hboxes are right-aligned */ | |
+ spacer = gtk_label_new(""); | |
+ gtk_box_pack_start(GTK_BOX(bbox), spacer, TRUE, TRUE, 0); | |
+ } else { | |
return hbbox; | |
} | |
-void gtk_hbutton_box_set_spacing_default(gint spacing) | |
+void gtk_box_set_spacing(GtkBox *box, gint spacing) | |
{ | |
- hbbox_spacing = spacing; | |
+ box->spacing = spacing; | |
} | |
/* | |
diff --git a/src/gtkport/gtkport.h b/src/gtkport/gtkport.h | |
t@@ -361,8 +361,8 @@ void gtk_container_set_border_width(GtkContainer *containe… | |
guint border_width); | |
GtkWidget *gtk_button_new_with_label(const gchar *label); | |
GtkWidget *gtk_label_new(const gchar *text); | |
-GtkWidget *gtk_hbox_new(gboolean homogeneous, gint spacing); | |
-GtkWidget *gtk_vbox_new(gboolean homogeneous, gint spacing); | |
+GtkWidget *gtk_box_new(GtkOrientation orientation, gint spacing); | |
+void gtk_box_set_homogeneous(GtkBox *box, gboolean homogenenous); | |
GtkWidget *gtk_check_button_new_with_label(const gchar *label); | |
GtkWidget *gtk_radio_button_new_with_label(GSList *group, | |
const gchar *label); | |
t@@ -460,8 +460,7 @@ guint dp_g_io_add_watch(GIOChannel *channel, GIOCondition … | |
guint dp_g_timeout_add(guint interval, GSourceFunc function, gpointer data); | |
gboolean dp_g_source_remove(guint tag); | |
-GtkWidget *gtk_hseparator_new(); | |
-GtkWidget *gtk_vseparator_new(); | |
+GtkWidget *gtk_separator_new(GtkOrientation orientation); | |
void gtk_object_set_data(GtkObject *object, const gchar *key, | |
gpointer data); | |
gpointer gtk_object_get_data(GtkObject *object, const gchar *key); | |
t@@ -493,12 +492,9 @@ void gtk_paned_pack2(GtkPaned *paned, GtkWidget *child, g… | |
void gtk_paned_set_position(GtkPaned *paned, gint position); | |
#define gtk_container_border_width gtk_container_set_border_width | |
-GtkWidget *gtk_hbutton_box_new(); | |
-void gtk_hbutton_box_set_spacing_default(gint spacing); | |
-#define gtk_vbutton_box_new() gtk_vbox_new(TRUE, 5) | |
-#define gtk_hbutton_box_set_layout_default(layout) {} | |
-#define gtk_vbutton_box_set_spacing_default(spacing) {} | |
-#define gtk_vbutton_box_set_layout_default(layout) {} | |
+GtkWidget *gtk_button_box_new(GtkOrientation orientation); | |
+void gtk_box_set_spacing(GtkBox *box, gint spacing); | |
+#define gtk_button_box_set_layout(box, layout) {} | |
GtkWidget *gtk_option_menu_new(void); | |
GtkWidget *gtk_option_menu_get_menu(GtkOptionMenu *option_menu); | |
void gtk_option_menu_set_menu(GtkOptionMenu *option_menu, GtkWidget *menu); |