summaryrefslogtreecommitdiffstats
path: root/src/widgets/button.cpp
diff options
context:
space:
mode:
authorAlex Valavanis <valavanisalex@gmail.com>2012-07-23 16:19:50 +0000
committerAlex Valavanis <valavanisalex@gmail.com>2012-07-23 16:19:50 +0000
commit1c78495f3dd05febf84085cb665fc83d338ec2c3 (patch)
tree5a776301cbcfc87435c8d26ffee557847400e47d /src/widgets/button.cpp
parentAbort configuration if GTK+ 3 dependencies are unfulfilled (diff)
downloadinkscape-1c78495f3dd05febf84085cb665fc83d338ec2c3.tar.gz
inkscape-1c78495f3dd05febf84085cb665fc83d338ec2c3.zip
Drop use of size-request in button and sp-widget (GTK3)
(bzr r11564)
Diffstat (limited to 'src/widgets/button.cpp')
-rw-r--r--src/widgets/button.cpp61
1 files changed, 40 insertions, 21 deletions
diff --git a/src/widgets/button.cpp b/src/widgets/button.cpp
index 4b152f914..45356601b 100644
--- a/src/widgets/button.cpp
+++ b/src/widgets/button.cpp
@@ -29,8 +29,6 @@ static void sp_button_class_init (SPButtonClass *klass);
static void sp_button_init (SPButton *button);
static void sp_button_dispose(GObject *object);
-static void sp_button_size_request (GtkWidget *widget, GtkRequisition *requisition);
-
#if GTK_CHECK_VERSION(3,0,0)
static void sp_button_get_preferred_width(GtkWidget *widget,
gint *minimal_width,
@@ -39,6 +37,8 @@ static void sp_button_get_preferred_width(GtkWidget *widget,
static void sp_button_get_preferred_height(GtkWidget *widget,
gint *minimal_height,
gint *natural_height);
+#else
+static void sp_button_size_request (GtkWidget *widget, GtkRequisition *requisition);
#endif
static void sp_button_clicked (GtkButton *button);
@@ -126,13 +126,47 @@ static void sp_button_dispose(GObject *object)
((GObjectClass *) (parent_class))->dispose(object);
}
-static void
-sp_button_size_request (GtkWidget *widget, GtkRequisition *requisition)
+
+
+#if GTK_CHECK_VERSION(3,0,0)
+static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
{
- GtkWidget *child;
+ GtkWidget *child = gtk_bin_get_child(GTK_BIN (widget));
+ GtkStyle *style = gtk_widget_get_style(widget);
+
+ if (child) {
+ gtk_widget_get_preferred_width(GTK_WIDGET(child), minimal_width, natural_width);
+ } else {
+ *minimal_width = 0;
+ *natural_width = 0;
+ }
+
+ *minimal_width += 2 + 2 * MAX(2, style->xthickness);
+ *natural_width += 2 + 2 * MAX(2, style->xthickness);
+}
+
+static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
+{
+ GtkWidget *child = gtk_bin_get_child(GTK_BIN (widget));
+ GtkStyle *style = gtk_widget_get_style(widget);
+
+ if (child) {
+ gtk_widget_get_preferred_height(GTK_WIDGET(child), minimal_height, natural_height);
+ } else {
+ *minimal_height = 0;
+ *natural_height = 0;
+ }
+
+ *minimal_height += 2 + 2 * MAX(2, style->ythickness);
+ *natural_height += 2 + 2 * MAX(2, style->ythickness);
+
+}
+#else
+static void sp_button_size_request(GtkWidget *widget, GtkRequisition *requisition)
+{
+ GtkWidget *child = gtk_bin_get_child (GTK_BIN (widget));
GtkStyle *style = gtk_widget_get_style (widget);
- child = gtk_bin_get_child (GTK_BIN (widget));
if (child) {
gtk_widget_size_request (GTK_WIDGET (child), requisition);
} else {
@@ -143,21 +177,6 @@ sp_button_size_request (GtkWidget *widget, GtkRequisition *requisition)
requisition->width += 2 + 2 * MAX (2, style->xthickness);
requisition->height += 2 + 2 * MAX (2, style->ythickness);
}
-
-#if GTK_CHECK_VERSION(3,0,0)
-static void sp_button_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
-{
- GtkRequisition requisition;
- sp_button_size_request(widget, &requisition);
- *minimal_width = *natural_width = requisition.width;
-}
-
-static void sp_button_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
-{
- GtkRequisition requisition;
- sp_button_size_request(widget, &requisition);
- *minimal_height = *natural_height = requisition.height;
-}
#endif
static void