summaryrefslogtreecommitdiffstats
path: root/src/widgets/ruler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/ruler.cpp')
-rw-r--r--src/widgets/ruler.cpp77
1 files changed, 70 insertions, 7 deletions
diff --git a/src/widgets/ruler.cpp b/src/widgets/ruler.cpp
index a76bf3081..b4fbb13c5 100644
--- a/src/widgets/ruler.cpp
+++ b/src/widgets/ruler.cpp
@@ -61,6 +61,17 @@ static void gtk_deprecated_ruler_realize (GtkWidget *widget);
static void gtk_deprecated_ruler_unrealize (GtkWidget *widget);
static void gtk_deprecated_ruler_size_request (GtkWidget *widget,
GtkRequisition *requisition);
+
+#if GTK_CHECK_VERSION(3,0,0)
+static void gtk_deprecated_ruler_get_preferred_width(GtkWidget *widget,
+ gint *minimal_width,
+ gint *natural_width);
+
+static void gtk_deprecated_ruler_get_preferred_height(GtkWidget *widget,
+ gint *minimal_height,
+ gint *natural_height);
+#endif
+
static void gtk_deprecated_ruler_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
static gboolean gtk_deprecated_ruler_motion_notify (GtkWidget *widget,
@@ -96,7 +107,12 @@ gtk_deprecated_ruler_class_init (GtkDeprecatedRulerClass *klass)
widget_class->realize = gtk_deprecated_ruler_realize;
widget_class->unrealize = gtk_deprecated_ruler_unrealize;
+#if GTK_CHECK_VERSION(3,0,0)
+ widget_class->get_preferred_width = gtk_deprecated_ruler_get_preferred_width;
+ widget_class->get_preferred_height = gtk_deprecated_ruler_get_preferred_height;
+#else
widget_class->size_request = gtk_deprecated_ruler_size_request;
+#endif
widget_class->size_allocate = gtk_deprecated_ruler_size_allocate;
widget_class->motion_notify_event = gtk_deprecated_ruler_motion_notify;
widget_class->expose_event = gtk_deprecated_ruler_expose;
@@ -359,16 +375,15 @@ gtk_deprecated_ruler_set_metric (GtkDeprecatedRuler *ruler,
*
* Return value: the units currently used for @ruler
**/
-GtkMetricType
-gtk_deprecated_ruler_get_metric (GtkDeprecatedRuler *ruler)
+GtkMetricType gtk_deprecated_ruler_get_metric (GtkDeprecatedRuler *ruler)
{
- gint i;
+ g_return_val_if_fail(GTK_DEPRECATED_IS_RULER(ruler), static_cast<GtkMetricType>(0));
- g_return_val_if_fail (GTK_DEPRECATED_IS_RULER (ruler), static_cast<GtkMetricType>(0));
-
- for (i = 0; i < G_N_ELEMENTS (ruler_metrics); i++)
- if (ruler->metric == &ruler_metrics[i])
+ for (size_t i = 0; i < G_N_ELEMENTS(ruler_metrics); i++) {
+ if (ruler->metric == &ruler_metrics[i]) {
return static_cast<GtkMetricType>(i);
+ }
+ }
g_assert_not_reached ();
@@ -470,6 +485,22 @@ gtk_deprecated_ruler_size_request (GtkWidget *widget,
}
}
+#if GTK_CHECK_VERSION(3,0,0)
+static void gtk_deprecated_ruler_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
+{
+ GtkRequisition requisition;
+ gtk_deprecated_ruler_size_request(widget, &requisition);
+ *minimal_width = *natural_width = requisition.width;
+}
+
+static void gtk_deprecated_ruler_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
+{
+ GtkRequisition requisition;
+ gtk_deprecated_ruler_size_request(widget, &requisition);
+ *minimal_height = *natural_height = requisition.height;
+}
+#endif
+
static void
gtk_deprecated_ruler_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
@@ -995,6 +1026,16 @@ static gint sp_vruler_motion_notify (GtkWidget *widget,
GdkEventMotion *event);
static void sp_vruler_size_request (GtkWidget *widget, GtkRequisition *requisition);
+#if GTK_CHECK_VERSION(3,0,0)
+static void sp_vruler_get_preferred_width(GtkWidget *widget,
+ gint *minimal_width,
+ gint *natural_width);
+
+static void sp_vruler_get_preferred_height(GtkWidget *widget,
+ gint *minimal_height,
+ gint *natural_height);
+#endif
+
static GtkWidgetClass *vruler_parent_class;
GType
@@ -1033,7 +1074,13 @@ sp_vruler_class_init (SPVRulerClass *klass)
ruler_class = (GtkDeprecatedRulerClass*) klass;
widget_class->motion_notify_event = sp_vruler_motion_notify;
+
+#if GTK_CHECK_VERSION(3,0,0)
+ widget_class->get_preferred_width = sp_vruler_get_preferred_width;
+ widget_class->get_preferred_height = sp_vruler_get_preferred_height;
+#else
widget_class->size_request = sp_vruler_size_request;
+#endif
ruler_class->draw_ticks = sp_ruler_common_draw_ticks;
}
@@ -1091,6 +1138,22 @@ sp_vruler_size_request (GtkWidget *widget, GtkRequisition *requisition)
requisition->width = style->xthickness * 2 + RULER_WIDTH;
}
+#if GTK_CHECK_VERSION(3,0,0)
+static void sp_vruler_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width)
+{
+ GtkRequisition requisition;
+ sp_vruler_size_request(widget, &requisition);
+ *minimal_width = *natural_width = requisition.width;
+}
+
+static void sp_vruler_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height)
+{
+ GtkRequisition requisition;
+ sp_vruler_size_request(widget, &requisition);
+ *minimal_height = *natural_height = requisition.height;
+}
+#endif
+
static void
sp_ruler_common_draw_ticks(GtkDeprecatedRuler *ruler)
{