[gtk+/wip/baedert/drawing: 69/355] spinbutton: Inherit from GtkWidget
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/drawing: 69/355] spinbutton: Inherit from GtkWidget
- Date: Tue, 11 Jul 2017 16:34:07 +0000 (UTC)
commit aba1f838c9bf6f22740b00b2294fecfd9122a02f
Author: Timm Bäder <mail baedert org>
Date: Thu May 4 18:31:41 2017 +0200
spinbutton: Inherit from GtkWidget
Use a box, an entry and the current 2 buttons.
Remaining problems: Entry sizing and activation.
gtk/gtkentry.c | 5 +-
gtk/gtkentryprivate.h | 3 -
gtk/gtkspinbutton.c | 223 +++++++++++++++++--------------------------------
gtk/gtkspinbutton.h | 6 +-
4 files changed, 82 insertions(+), 155 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 493eedc..01d30cd 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -3201,10 +3201,7 @@ gtk_entry_measure (GtkCssGadget *gadget,
if (priv->width_chars < 0)
{
- if (GTK_IS_SPIN_BUTTON (entry))
- min = gtk_spin_button_get_text_width (GTK_SPIN_BUTTON (entry));
- else
- min = MIN_ENTRY_WIDTH;
+ min = MIN_ENTRY_WIDTH;
}
else
{
diff --git a/gtk/gtkentryprivate.h b/gtk/gtkentryprivate.h
index e75bfa7..bb4b0c3 100644
--- a/gtk/gtkentryprivate.h
+++ b/gtk/gtkentryprivate.h
@@ -90,9 +90,6 @@ GtkCssGadget* gtk_entry_get_gadget (GtkEntry *entry);
void _gtk_entry_grab_focus (GtkEntry *entry,
gboolean select_all);
-/* in gtkspinbutton.c (because I'm too lazy to create gtkspinbuttonprivate.h) */
-gint gtk_spin_button_get_text_width (GtkSpinButton *spin_button);
-
G_END_DECLS
#endif /* __GTK_ENTRY_PRIVATE_H__ */
diff --git a/gtk/gtkspinbutton.c b/gtk/gtkspinbutton.c
index bb1883b..4947f4c 100644
--- a/gtk/gtkspinbutton.c
+++ b/gtk/gtkspinbutton.c
@@ -37,9 +37,6 @@
#include "gtkadjustment.h"
#include "gtkbindings.h"
-#include "gtkboxgadgetprivate.h"
-#include "gtkcssgadgetprivate.h"
-#include "gtkcsscustomgadgetprivate.h"
#include "gtkentryprivate.h"
#include "gtkiconhelperprivate.h"
#include "gtkicontheme.h"
@@ -182,7 +179,8 @@ struct _GtkSpinButtonPrivate
{
GtkAdjustment *adjustment;
- GtkCssGadget *gadget;
+ GtkWidget *box;
+ GtkWidget *entry;
GtkWidget *up_button;
GtkGesture *up_click_gesture;
@@ -220,7 +218,9 @@ enum {
PROP_WRAP,
PROP_UPDATE_POLICY,
PROP_VALUE,
- PROP_ORIENTATION
+ PROP_WIDTH_CHARS,
+ PROP_MAX_WIDTH_CHARS,
+ PROP_ORIENTATION,
};
/* Signals */
@@ -255,8 +255,6 @@ static void gtk_spin_button_measure (GtkWidget *widget,
int *natural_baseline);
static void gtk_spin_button_size_allocate (GtkWidget *widget,
GtkAllocation *allocation);
-static void gtk_spin_button_snapshot (GtkWidget *widget,
- GtkSnapshot *snapshot);
static gint gtk_spin_button_focus_out (GtkWidget *widget,
GdkEventFocus *event);
static void gtk_spin_button_grab_notify (GtkWidget *widget,
@@ -274,8 +272,6 @@ static gint gtk_spin_button_motion_notify (GtkWidget *widget,
static gint gtk_spin_button_scroll (GtkWidget *widget,
GdkEventScroll *event);
-static void gtk_spin_button_direction_changed (GtkWidget *widget,
- GtkTextDirection previous_dir);
static void gtk_spin_button_activate (GtkEntry *entry);
static void gtk_spin_button_unset_adjustment (GtkSpinButton *spin_button);
static void gtk_spin_button_set_orientation (GtkSpinButton *spin_button,
@@ -298,7 +294,7 @@ static void gtk_spin_button_default_output (GtkSpinButton *spin_button);
static guint spinbutton_signals[LAST_SIGNAL] = {0};
-G_DEFINE_TYPE_WITH_CODE (GtkSpinButton, gtk_spin_button, GTK_TYPE_ENTRY,
+G_DEFINE_TYPE_WITH_CODE (GtkSpinButton, gtk_spin_button, GTK_TYPE_WIDGET,
G_ADD_PRIVATE (GtkSpinButton)
G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE, NULL)
G_IMPLEMENT_INTERFACE (GTK_TYPE_EDITABLE,
@@ -314,7 +310,6 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
- GtkEntryClass *entry_class = GTK_ENTRY_CLASS (class);
GtkBindingSet *binding_set;
gobject_class->finalize = gtk_spin_button_finalize;
@@ -325,16 +320,12 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
widget_class->realize = gtk_spin_button_realize;
widget_class->measure = gtk_spin_button_measure;
widget_class->size_allocate = gtk_spin_button_size_allocate;
- widget_class->snapshot = gtk_spin_button_snapshot;
widget_class->scroll_event = gtk_spin_button_scroll;
widget_class->motion_notify_event = gtk_spin_button_motion_notify;
widget_class->key_release_event = gtk_spin_button_key_release;
widget_class->focus_out_event = gtk_spin_button_focus_out;
widget_class->grab_notify = gtk_spin_button_grab_notify;
widget_class->state_flags_changed = gtk_spin_button_state_flags_changed;
- widget_class->direction_changed = gtk_spin_button_direction_changed;
-
- entry_class->activate = gtk_spin_button_activate;
class->input = NULL;
class->output = NULL;
@@ -405,6 +396,24 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
-G_MAXDOUBLE, G_MAXDOUBLE, 0.0,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+ g_object_class_install_property (gobject_class,
+ PROP_WIDTH_CHARS,
+ g_param_spec_int ("width-chars",
+ P_("Width in chars"),
+ P_("Number of characters to leave space for in the
entry"),
+ -1, G_MAXINT,
+ -1,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+
+ g_object_class_install_property (gobject_class,
+ PROP_MAX_WIDTH_CHARS,
+ g_param_spec_int ("max-width-chars",
+ P_("Maximum width in characters"),
+ P_("The desired maximum width of the entry, in
characters"),
+ -1, G_MAXINT,
+ -1,
+ GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
+
g_object_class_override_property (gobject_class,
PROP_ORIENTATION,
"orientation");
@@ -600,6 +609,12 @@ gtk_spin_button_set_property (GObject *object,
case PROP_ORIENTATION:
gtk_spin_button_set_orientation (spin_button, g_value_get_enum (value));
break;
+ case PROP_WIDTH_CHARS:
+ gtk_entry_set_width_chars (GTK_ENTRY (priv->entry), g_value_get_int (value));
+ break;
+ case PROP_MAX_WIDTH_CHARS:
+ gtk_entry_set_max_width_chars (GTK_ENTRY (priv->entry), g_value_get_int (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -644,6 +659,12 @@ gtk_spin_button_get_property (GObject *object,
case PROP_ORIENTATION:
g_value_set_enum (value, priv->orientation);
break;
+ case PROP_WIDTH_CHARS:
+ g_value_set_int (value, gtk_entry_get_width_chars (GTK_ENTRY (priv->entry)));
+ break;
+ case PROP_MAX_WIDTH_CHARS:
+ g_value_set_int (value, gtk_entry_get_max_width_chars (GTK_ENTRY (priv->entry)));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -674,34 +695,22 @@ static void
update_node_ordering (GtkSpinButton *spin_button)
{
GtkSpinButtonPrivate *priv = spin_button->priv;
- int down_button_pos, up_button_pos;
+
+ g_assert (priv->orientation != gtk_orientable_get_orientation (GTK_ORIENTABLE (priv->box)));
if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
{
- if (_gtk_widget_get_direction (GTK_WIDGET (spin_button)) == GTK_TEXT_DIR_LTR)
- {
- down_button_pos = 1;
- up_button_pos = -1;
- }
- else
- {
- down_button_pos = 1;
- up_button_pos = 0;
- }
+ /* Current orientation of the box is vertical! */
+ gtk_box_reorder_child (GTK_BOX (priv->box), priv->entry, 0);
+ gtk_box_reorder_child (GTK_BOX (priv->box), priv->down_button, 1);
}
else
{
- up_button_pos = 0;
- down_button_pos = -1;
+ /* Current orientation of the box is horizontal! */
+ gtk_box_reorder_child (GTK_BOX (priv->box), priv->up_button, 0);
}
- gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), priv->orientation);
- gtk_box_gadget_remove_widget (GTK_BOX_GADGET (priv->gadget), priv->up_button);
- gtk_box_gadget_remove_widget (GTK_BOX_GADGET (priv->gadget), priv->down_button);
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
- up_button_pos, priv->up_button);
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
- down_button_pos, priv->down_button);
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (priv->box), priv->orientation);
}
static gboolean
@@ -766,7 +775,7 @@ button_pressed_cb (GtkGestureMultiPress *gesture,
gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
- if (gtk_editable_get_editable (GTK_EDITABLE (spin_button)))
+ if (gtk_editable_get_editable (GTK_EDITABLE (priv->entry)))
{
int button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture));
gtk_spin_button_update (spin_button);
@@ -817,7 +826,8 @@ static void
gtk_spin_button_init (GtkSpinButton *spin_button)
{
GtkSpinButtonPrivate *priv;
- GtkCssNode *widget_node, *entry_node;
+
+ gtk_widget_set_has_window (GTK_WIDGET (spin_button), FALSE);
spin_button->priv = gtk_spin_button_get_instance_private (spin_button);
priv = spin_button->priv;
@@ -840,26 +850,16 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
_gtk_orientable_set_style_classes (GTK_ORIENTABLE (spin_button));
gtk_widget_set_focus_on_click (GTK_WIDGET (spin_button), TRUE);
- widget_node = gtk_widget_get_css_node (GTK_WIDGET (spin_button));
-
- priv->gadget = gtk_box_gadget_new_for_node (widget_node, GTK_WIDGET (spin_button));
-
- entry_node = gtk_css_node_new ();
- gtk_css_node_set_name (entry_node, I_("entry"));
- gtk_css_node_set_parent (entry_node, widget_node);
- gtk_css_node_set_state (entry_node, gtk_css_node_get_state (widget_node));
- gtk_css_gadget_set_node (gtk_entry_get_gadget (GTK_ENTRY (spin_button)), entry_node);
- g_object_unref (entry_node);
- gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget),
- -1, gtk_entry_get_gadget (GTK_ENTRY (spin_button)),
- TRUE, GTK_ALIGN_FILL);
+ priv->box = gtk_box_new (priv->orientation, 0);
+ gtk_widget_set_parent (priv->box, GTK_WIDGET (spin_button));
+ priv->entry = gtk_entry_new ();
+ gtk_container_add (GTK_CONTAINER (priv->box), priv->entry);
priv->down_button = gtk_button_new_from_icon_name ("list-remove-symbolic", GTK_ICON_SIZE_BUTTON);
gtk_widget_set_can_focus (priv->down_button, FALSE);
gtk_style_context_add_class (gtk_widget_get_style_context (priv->down_button), "down");
- gtk_widget_set_parent (priv->down_button, GTK_WIDGET (spin_button));
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
- -1, priv->down_button);
+ gtk_container_add (GTK_CONTAINER (priv->box), priv->down_button);
+
priv->down_click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (priv->down_button));
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->down_click_gesture), 0);
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->down_click_gesture), FALSE);
@@ -871,9 +871,8 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
priv->up_button = gtk_button_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_BUTTON);
gtk_widget_set_can_focus (priv->up_button, FALSE);
gtk_style_context_add_class (gtk_widget_get_style_context (priv->up_button), "up");
- gtk_widget_set_parent (priv->up_button, GTK_WIDGET (spin_button));
- gtk_box_gadget_insert_widget (GTK_BOX_GADGET (priv->gadget),
- -1, priv->up_button);
+ gtk_container_add (GTK_CONTAINER (priv->box), priv->up_button);
+
priv->up_click_gesture = gtk_gesture_multi_press_new (GTK_WIDGET (priv->up_button));
gtk_gesture_single_set_button (GTK_GESTURE_SINGLE (priv->up_click_gesture), 0);
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->up_click_gesture), FALSE);
@@ -884,8 +883,6 @@ gtk_spin_button_init (GtkSpinButton *spin_button)
gtk_spin_button_set_adjustment (spin_button, NULL);
- update_node_ordering (spin_button);
-
priv->swipe_gesture = gtk_gesture_swipe_new (GTK_WIDGET (spin_button));
gtk_gesture_single_set_touch_only (GTK_GESTURE_SINGLE (priv->swipe_gesture), TRUE);
gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER (priv->swipe_gesture),
@@ -903,14 +900,12 @@ gtk_spin_button_finalize (GObject *object)
GtkSpinButtonPrivate *priv = spin_button->priv;
gtk_spin_button_unset_adjustment (spin_button);
- g_clear_object (&priv->gadget);
g_object_unref (priv->swipe_gesture);
g_object_unref (priv->up_click_gesture);
g_object_unref (priv->down_click_gesture);
- gtk_widget_unparent (priv->up_button);
- gtk_widget_unparent (priv->down_button);
+ gtk_widget_unparent (priv->box);
G_OBJECT_CLASS (gtk_spin_button_parent_class)->finalize (object);
}
@@ -927,6 +922,7 @@ static void
gtk_spin_button_realize (GtkWidget *widget)
{
GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
+ GtkSpinButtonPrivate *priv = spin_button->priv;
gboolean return_val;
GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->realize (widget);
@@ -938,7 +934,7 @@ gtk_spin_button_realize (GtkWidget *widget)
* 'output' signal; and if we don't have any explicit 'text' set initially,
* fallback to the default output. */
if (!return_val &&
- (spin_button->priv->numeric || gtk_entry_get_text (GTK_ENTRY (spin_button)) == NULL))
+ (spin_button->priv->numeric || gtk_entry_get_text (GTK_ENTRY (priv->entry)) == NULL))
gtk_spin_button_default_output (spin_button);
gtk_widget_queue_resize (GTK_WIDGET (spin_button));
@@ -979,8 +975,8 @@ static void
gtk_spin_button_set_orientation (GtkSpinButton *spin,
GtkOrientation orientation)
{
- GtkEntry *entry = GTK_ENTRY (spin);
GtkSpinButtonPrivate *priv = spin->priv;
+ GtkEntry *entry = GTK_ENTRY (priv->entry);
if (priv->orientation == orientation)
return;
@@ -1002,18 +998,6 @@ gtk_spin_button_set_orientation (GtkSpinButton *spin,
gtk_widget_queue_resize (GTK_WIDGET (spin));
}
-static gint
-measure_string_width (PangoLayout *layout,
- const gchar *string)
-{
- gint width;
-
- pango_layout_set_text (layout, string, -1);
- pango_layout_get_pixel_size (layout, &width, NULL);
-
- return width;
-}
-
static gchar *
weed_out_neg_zero (gchar *str,
gint digits)
@@ -1038,37 +1022,6 @@ gtk_spin_button_format_for_value (GtkSpinButton *spin_button,
return weed_out_neg_zero (buf, priv->digits);
}
-gint
-gtk_spin_button_get_text_width (GtkSpinButton *spin_button)
-{
- GtkSpinButtonPrivate *priv = spin_button->priv;
- gint width, w;
- PangoLayout *layout;
- gchar *str;
- gdouble value;
-
- layout = pango_layout_copy (gtk_entry_get_layout (GTK_ENTRY (spin_button)));
-
- /* Get max of MIN_SPIN_BUTTON_WIDTH, size of upper, size of lower */
- width = MIN_SPIN_BUTTON_WIDTH;
-
- value = CLAMP (gtk_adjustment_get_upper (priv->adjustment), -1e7, 1e7);
- str = gtk_spin_button_format_for_value (spin_button, value);
- w = measure_string_width (layout, str);
- width = MAX (width, w);
- g_free (str);
-
- value = CLAMP (gtk_adjustment_get_lower (priv->adjustment), -1e7, 1e7);
- str = gtk_spin_button_format_for_value (spin_button, value);
- w = measure_string_width (layout, str);
- width = MAX (width, w);
- g_free (str);
-
- g_object_unref (layout);
-
- return width;
-}
-
static void
gtk_spin_button_measure (GtkWidget *widget,
GtkOrientation orientation,
@@ -1078,44 +1031,35 @@ gtk_spin_button_measure (GtkWidget *widget,
int *minimum_baseline,
int *natural_baseline)
{
- gtk_css_gadget_get_preferred_size (GTK_SPIN_BUTTON (widget)->priv->gadget,
- orientation,
- for_size,
- minimum, natural,
- minimum_baseline, natural_baseline);
+ GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (GTK_SPIN_BUTTON (widget));
+
+ gtk_widget_measure (priv->box, orientation, for_size,
+ minimum, natural,
+ minimum_baseline, natural_baseline);
}
static void
gtk_spin_button_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
{
- GtkSpinButton *spin = GTK_SPIN_BUTTON (widget);
- GtkSpinButtonPrivate *priv = spin->priv;
+ GtkSpinButtonPrivate *priv = gtk_spin_button_get_instance_private (GTK_SPIN_BUTTON (widget));
GtkAllocation clip;
- gtk_widget_set_allocation (widget, allocation);
-
- gtk_css_gadget_allocate (priv->gadget,
- allocation,
- gtk_widget_get_allocated_baseline (widget),
- &clip);
+ gtk_widget_size_allocate_with_baseline (priv->box, allocation,
+ gtk_widget_get_allocated_baseline (widget));
+ gtk_widget_get_clip (priv->box, &clip);
gtk_widget_set_clip (widget, &clip);
}
-static void
-gtk_spin_button_snapshot (GtkWidget *widget,
- GtkSnapshot *snapshot)
-{
- gtk_css_gadget_snapshot (GTK_SPIN_BUTTON(widget)->priv->gadget, snapshot);
-}
-
static gint
gtk_spin_button_focus_out (GtkWidget *widget,
GdkEventFocus *event)
{
- if (gtk_editable_get_editable (GTK_EDITABLE (widget)))
- gtk_spin_button_update (GTK_SPIN_BUTTON (widget));
+ GtkSpinButton *spin_button = GTK_SPIN_BUTTON (widget);
+
+ if (gtk_editable_get_editable (GTK_EDITABLE (spin_button->priv->entry)))
+ gtk_spin_button_update (spin_button);
return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->focus_out_event (widget, event);
}
@@ -1145,8 +1089,6 @@ gtk_spin_button_state_flags_changed (GtkWidget *widget,
gtk_widget_queue_draw (GTK_WIDGET (spin));
}
- gtk_css_gadget_set_state (gtk_entry_get_gadget (GTK_ENTRY (widget)), gtk_widget_get_state_flags (widget));
-
GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->state_flags_changed (widget, previous_state);
}
@@ -1256,7 +1198,7 @@ gtk_spin_button_real_change_value (GtkSpinButton *spin,
GtkSpinButtonPrivate *priv = spin->priv;
gdouble old_value;
- if (!gtk_editable_get_editable (GTK_EDITABLE (spin)))
+ if (!gtk_editable_get_editable (GTK_EDITABLE (priv->entry)))
{
gtk_widget_error_bell (GTK_WIDGET (spin));
return;
@@ -1398,9 +1340,9 @@ gtk_spin_button_insert_text (GtkEditable *editable,
gint new_text_length,
gint *position)
{
- GtkEntry *entry = GTK_ENTRY (editable);
GtkSpinButton *spin = GTK_SPIN_BUTTON (editable);
GtkSpinButtonPrivate *priv = spin->priv;
+ GtkEntry *entry = GTK_ENTRY (priv->entry);
GtkEditableInterface *parent_editable_iface;
parent_editable_iface = g_type_interface_peek (gtk_spin_button_parent_class,
@@ -1559,7 +1501,7 @@ gtk_spin_button_default_input (GtkSpinButton *spin_button,
{
gchar *err = NULL;
- *new_val = g_strtod (gtk_entry_get_text (GTK_ENTRY (spin_button)), &err);
+ *new_val = g_strtod (gtk_entry_get_text (GTK_ENTRY (spin_button->priv->entry)), &err);
if (*err)
return GTK_INPUT_ERROR;
else
@@ -1573,8 +1515,8 @@ gtk_spin_button_default_output (GtkSpinButton *spin_button)
gchar *buf = gtk_spin_button_format_for_value (spin_button,
gtk_adjustment_get_value (priv->adjustment));
- if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (spin_button))))
- gtk_entry_set_text (GTK_ENTRY (spin_button), buf);
+ if (strcmp (buf, gtk_entry_get_text (GTK_ENTRY (priv->entry))))
+ gtk_entry_set_text (GTK_ENTRY (priv->entry), buf);
g_free (buf);
}
@@ -2155,7 +2097,7 @@ gtk_spin_button_set_snap_to_ticks (GtkSpinButton *spin_button,
if (new_val != priv->snap_to_ticks)
{
priv->snap_to_ticks = new_val;
- if (new_val && gtk_editable_get_editable (GTK_EDITABLE (spin_button)))
+ if (new_val && gtk_editable_get_editable (GTK_EDITABLE (priv->entry)))
gtk_spin_button_update (spin_button);
g_object_notify (G_OBJECT (spin_button), "snap-to-ticks");
@@ -2311,12 +2253,3 @@ gtk_spin_button_update (GtkSpinButton *spin_button)
else
gtk_spin_button_set_value (spin_button, val);
}
-
-static void
-gtk_spin_button_direction_changed (GtkWidget *widget,
- GtkTextDirection previous_dir)
-{
- update_node_ordering (GTK_SPIN_BUTTON (widget));
-
- GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->direction_changed (widget, previous_dir);
-}
diff --git a/gtk/gtkspinbutton.h b/gtk/gtkspinbutton.h
index 7ce9965..4abadc8 100644
--- a/gtk/gtkspinbutton.h
+++ b/gtk/gtkspinbutton.h
@@ -33,7 +33,7 @@
#error "Only <gtk/gtk.h> can be included directly."
#endif
-#include <gtk/gtkentry.h>
+#include <gtk/gtkwidget.h>
G_BEGIN_DECLS
@@ -108,7 +108,7 @@ typedef struct _GtkSpinButtonClass GtkSpinButtonClass;
*/
struct _GtkSpinButton
{
- GtkEntry entry;
+ GtkWidget parent_instance;
/*< private >*/
GtkSpinButtonPrivate *priv;
@@ -116,7 +116,7 @@ struct _GtkSpinButton
struct _GtkSpinButtonClass
{
- GtkEntryClass parent_class;
+ GtkWidgetClass parent_class;
gint (*input) (GtkSpinButton *spin_button,
gdouble *new_value);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]