+ if (!adjustment)
+ adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
+ else
+ g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment));
+
+ if (button->priv->adjustment != adjustment)
+ {
+ if (button->priv->adjustment)
+ g_object_unref (button->priv->adjustment);
+ button->priv->adjustment = g_object_ref_sink (adjustment);
+
+ if (button->priv->scale)
+ gtk_range_set_adjustment (GTK_RANGE (button->priv->scale), adjustment);
+
+ g_object_notify (G_OBJECT (button), "adjustment");
+ }
+}
+
+/**
+ * gtk_scale_button_get_plus_button:
+ * @button: a #GtkScaleButton
+ *
+ * Retrieves the plus button of the #GtkScaleButton.
+ *
+ * Returns: (transfer none): the plus button of the #GtkScaleButton
+ *
+ * Since: 2.14
+ */
+GtkWidget *
+gtk_scale_button_get_plus_button (GtkScaleButton *button)
+{
+ g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL);
+
+ return button->priv->plus_button;
+}
+
+/**
+ * gtk_scale_button_get_minus_button:
+ * @button: a #GtkScaleButton
+ *
+ * Retrieves the minus button of the #GtkScaleButton.
+ *
+ * Returns: (transfer none): the minus button of the #GtkScaleButton
+ *
+ * Since: 2.14
+ */
+GtkWidget *
+gtk_scale_button_get_minus_button (GtkScaleButton *button)
+{
+ g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL);
+
+ return button->priv->minus_button;
+}
+
+/**
+ * gtk_scale_button_get_popup:
+ * @button: a #GtkScaleButton
+ *
+ * Retrieves the popup of the #GtkScaleButton.
+ *
+ * Returns: (transfer none): the popup of the #GtkScaleButton
+ *
+ * Since: 2.14
+ */
+GtkWidget *
+gtk_scale_button_get_popup (GtkScaleButton *button)
+{
+ g_return_val_if_fail (GTK_IS_SCALE_BUTTON (button), NULL);
+
+ return button->priv->dock;
+}
+
+static void
+gtk_scale_button_set_orientation_private (GtkScaleButton *button,
+ GtkOrientation orientation)
+{
+ GtkScaleButtonPrivate *priv = button->priv;
+
+ if (orientation != priv->orientation)
+ {
+ priv->orientation = orientation;
+
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (priv->box),
+ orientation);
+ gtk_container_child_set (GTK_CONTAINER (priv->box),
+ priv->plus_button,
+ "pack-type",
+ orientation == GTK_ORIENTATION_VERTICAL ?
+ GTK_PACK_START : GTK_PACK_END,
+ NULL);
+ gtk_container_child_set (GTK_CONTAINER (priv->box),
+ priv->minus_button,
+ "pack-type",
+ orientation == GTK_ORIENTATION_VERTICAL ?
+ GTK_PACK_END : GTK_PACK_START,
+ NULL);
+
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (priv->scale),
+ orientation);
+
+ if (orientation == GTK_ORIENTATION_VERTICAL)
+ {
+ gtk_widget_set_size_request (GTK_WIDGET (priv->scale),
+ -1, SCALE_SIZE);
+ gtk_range_set_inverted (GTK_RANGE (priv->scale), TRUE);
+ }
+ else
+ {
+ gtk_widget_set_size_request (GTK_WIDGET (priv->scale),
+ SCALE_SIZE, -1);
+ gtk_range_set_inverted (GTK_RANGE (priv->scale), FALSE);
+ }