+2009-03-12 Alberto Garcia <agarcia@igalia.com>
+
+ * src/hildon-button.c (hildon_button_class_init): Don't make
+ "title" and "value" construction properties, to prevent them from
+ overwriting labels set from derived classes.
+
+ * src/hildon-picker-button.c
+ (hildon_picker_button_set_selector): Allow setting a NULL selector.
+ (hildon_picker_button_class_init): Make touch-selector a
+ construction property.
+
+ * src/hildon-date-button.c (hildon_date_button_class_init)
+ (+hildon_date_button_constructed): Add a default date selector if
+ none is provided.
+
2009-03-12 Claudio Saavedra <csaavedra@igalia.com>
* src/hildon-touch-selector.c: Small documentation fixes.
"Title",
"Text of the title label inside the button",
NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ G_PARAM_READWRITE));
g_object_class_install_property (
gobject_class,
"Value",
"Text of the value label inside the button",
NULL,
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ G_PARAM_READWRITE));
g_object_class_install_property (
gobject_class,
#endif
static void
+hildon_date_button_constructed (GObject *object)
+{
+ HildonPickerButton *button = HILDON_PICKER_BUTTON (object);
+
+ if (G_OBJECT_CLASS (hildon_date_button_parent_class)->constructed)
+ G_OBJECT_CLASS (hildon_date_button_parent_class)->constructed (object);
+
+ if (hildon_picker_button_get_selector (button) == NULL) {
+ GtkWidget *selector = hildon_date_selector_new ();
+ hildon_picker_button_set_selector (button, HILDON_TOUCH_SELECTOR (selector));
+ }
+}
+
+static void
hildon_date_button_class_init (HildonDateButtonClass * klass)
{
-#if 0
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ object_class->constructed = hildon_date_button_constructed;
+#if 0
g_type_class_add_private (klass, sizeof (HildonDateButtonPrivate));
object_class->get_property = hildon_date_button_get_property;
"HildonTouchSelector widget",
"HildonTouchSelector widget to be launched on button clicked",
HILDON_TYPE_TOUCH_SELECTOR,
- G_PARAM_READWRITE));
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
g_object_class_install_property (object_class,
PROP_DONE_BUTTON_TEXT,
g_param_spec_string ("done-button-text",
HildonTouchSelector * selector)
{
HildonPickerButtonPrivate *priv;
- gchar *value;
+ gchar *value = NULL;
g_return_if_fail (HILDON_IS_PICKER_BUTTON (button));
- g_return_if_fail (HILDON_IS_TOUCH_SELECTOR (selector));
+ g_return_if_fail (!selector || HILDON_IS_TOUCH_SELECTOR (selector));
priv = GET_PRIVATE (button);
g_object_unref (priv->selector);
}
- priv->selector = g_object_ref (selector);
+ priv->selector = GTK_WIDGET (selector);
- g_signal_connect (G_OBJECT (selector), "changed",
- G_CALLBACK (hildon_picker_button_selector_selection_changed),
- button);
+ if (selector) {
+ g_object_ref (selector);
- g_signal_connect (G_OBJECT (selector), "columns-changed",
- G_CALLBACK (hildon_picker_button_selector_columns_changed),
- button);
+ g_signal_connect (G_OBJECT (selector), "changed",
+ G_CALLBACK (hildon_picker_button_selector_selection_changed),
+ button);
- value = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (priv->selector));
- if (value) {
- hildon_button_set_value (HILDON_BUTTON (button), value);
- g_free (value);
- hildon_picker_button_value_changed (button);
+ g_signal_connect (G_OBJECT (selector), "columns-changed",
+ G_CALLBACK (hildon_picker_button_selector_columns_changed),
+ button);
+
+ value = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (priv->selector));
}
+
+ if (!value)
+ value = g_strdup ("");
+
+ hildon_button_set_value (HILDON_BUTTON (button), value);
+ hildon_picker_button_value_changed (button);
+
+ g_free (value);
}
/**