* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation; version 2.1 of
- * the License.
+ * the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
/**
* SECTION:hildon-date-editor
* @short_description: A widget which queries a date from user or opens
- * a HildonCalendarPopup
+ * a HildonCalendarPopup.
* @see_also: #HildonCalendarPopup, #HildonTimeEditor
*
* HildonDateEditor is a widget with three entry fields (day, month,
* year) and an icon (button): clicking on the icon opens up a
* HildonCalendarPopup.
+ *
+ * <example>
+ * <programlisting>
+ * gint y, m, d;
+ * <!-- -->
+ * date_editor = hildon_date_editor_new ();
+ * <!-- -->
+ * hildon_date_editor_get_date(date_editor, &y, &m, &d);
+ * <!-- -->
+ * </programlisting>
+ * </example>
+ *
*/
#ifdef HAVE_CONFIG_H
#include "hildon-date-editor.h"
#include <glib.h>
#include <gtk/gtk.h>
+#include <gtk/gtkenums.h>
#include <gdk/gdkkeysyms.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include "hildon-calendar-popup.h"
#include "hildon-defines.h"
-#include "hildon-input-mode-hint.h"
#include "hildon-private.h"
#include "hildon-marshalers.h"
#include "hildon-enum-types.h"
#include <libintl.h>
#include "hildon-date-editor-private.h"
-#define _(string) dgettext(PACKAGE, string)
+#define _(string) dgettext("hildon-libs", string)
+
+#define c_(string) dgettext("hildon-common-strings", string)
#define ENTRY_BORDERS 11
static gboolean
hildon_date_editor_date_error (HildonDateEditor *editor,
- HildonDateTimeError type);
+ HildonDateTimeError type);
static gboolean
hildon_date_editor_entry_focus_in (GtkWidget *widget,
static guint date_editor_signals[LAST_SIGNAL] = { 0 };
+/**
+ * hildon_date_editor_get_type:
+ *
+ * Initializes and returns the type of a hildon date editor.
+ *
+ * @Returns: GType of #HildonDateEditor
+ */
GType G_GNUC_CONST
hildon_date_editor_get_type (void)
{
g_param_spec_uint ("year",
"Current year",
"Current year",
- 1, 2100,
- 2005,
+ 1, 10000,
+ 2007,
G_PARAM_READABLE | G_PARAM_WRITABLE));
/**
g_param_spec_uint ("min-year",
"Minimum valid year",
"Minimum valid year",
- 1, 2100,
+ 1, 10000,
DEFAULT_MIN_YEAR,
G_PARAM_READWRITE));
g_param_spec_uint ("max-year",
"Maximum valid year",
"Maximum valid year",
- 1, 2100,
+ 1, 10000,
DEFAULT_MAX_YEAR,
G_PARAM_READWRITE));
}
g_assert (priv);
gtk_image_set_from_icon_name (GTK_IMAGE (priv->calendar_icon),
- pressed ? "qgn_widg_datedit_pr" : "qgn_widg_datedit", HILDON_ICON_SIZE_WIDG);
+ pressed ? "qgn_widg_datedit_pr" : "qgn_widg_datedit", HILDON_ICON_SIZE_SMALL);
priv->calendar_icon_pressed = pressed;
}
priv->m_entry = gtk_entry_new ();
priv->y_entry = gtk_entry_new ();
- g_object_set (G_OBJECT(priv->d_entry), "input-mode",
- HILDON_INPUT_MODE_HINT_NUMERIC, NULL);
- g_object_set (G_OBJECT(priv->m_entry), "input-mode",
- HILDON_INPUT_MODE_HINT_NUMERIC, NULL);
- g_object_set (G_OBJECT(priv->y_entry), "input-mode",
- HILDON_INPUT_MODE_HINT_NUMERIC, NULL);
+#ifdef MAEMO_GTK
+ g_object_set (G_OBJECT(priv->d_entry), "hildon-input-mode",
+ HILDON_GTK_INPUT_MODE_NUMERIC, NULL);
+ g_object_set (G_OBJECT(priv->m_entry), "hildon-input-mode",
+ HILDON_GTK_INPUT_MODE_NUMERIC, NULL);
+ g_object_set (G_OBJECT(priv->y_entry), "hildon-input-mode",
+ HILDON_GTK_INPUT_MODE_NUMERIC, NULL);
+#endif
/* set entry look */
gtk_entry_set_width_chars (GTK_ENTRY (priv->d_entry), DAY_ENTRY_WIDTH);
case PROP_MIN_YEAR:
val = g_value_get_uint (value);
- g_return_if_fail (val > priv->max_year);
- priv->min_year = val;
/* Clamp current year */
if (hildon_date_editor_get_year (editor) < priv->min_year)
hildon_date_editor_set_year (editor, priv->min_year);
case PROP_MAX_YEAR:
val = g_value_get_uint (value);
- g_return_if_fail (val < priv->min_year);
priv->max_year = val;
/* Clamp current year */
if (hildon_date_editor_get_year (editor) > priv->max_year)
}
}
-static void hildon_child_forall (GtkContainer *container,
+static void
+hildon_child_forall (GtkContainer *container,
gboolean include_internals,
GtkCallback callback,
gpointer callback_data)
* @month: month
* @day: day
*
- * Returns: the year, month, and day currently on the
- * date editor. You can pass NULL to any of the pointers if
+ * Gets the date represented by the date editor.
+ * You can pass NULL to any of the pointers if
* you're not interested in obtaining it.
+ *
*/
void
hildon_date_editor_get_date (HildonDateEditor *date,
return error_code;
}
+/* Idle callback */
+static gboolean
+hildon_date_editor_entry_select_all (GtkWidget *widget)
+{
+ GDK_THREADS_ENTER ();
+
+ gtk_editable_select_region (GTK_EDITABLE (widget), 0, -1);
+
+ GDK_THREADS_LEAVE ();
+
+ return FALSE;
+}
+
/* When entry becomes full, we move the focus to the next field.
If we are on the last field, the whole contents are validated. */
static void
break;
case HILDON_DATE_TIME_ERROR_INVALID_CHAR:
- hildon_banner_show_information (GTK_WIDGET (editor), NULL, _("ckct_ib_illegal_character"));
+ hildon_banner_show_information (GTK_WIDGET (editor), NULL, c_("ckct_ib_illegal_character"));
break;
case HILDON_DATE_TIME_ERROR_INVALID_DATE:
*
* Sets the year shown in the editor.
*
- * Returns: TRUE if the year is valid
+ * Returns: TRUE if the year is valid and has been set.
*/
gboolean
hildon_date_editor_set_year (HildonDateEditor *editor,
*
* Sets the month shown in the editor.
*
- * Returns: TRUE if the month is valid
+ * Returns: TRUE if the month is valid and has been set.
*/
gboolean
hildon_date_editor_set_month (HildonDateEditor *editor,
*
* Sets the day shown in the editor.
*
- * Returns: TRUE if the day is valid
+ * Returns: TRUE if the day is valid and has been set.
*/
gboolean
hildon_date_editor_set_day (HildonDateEditor *editor,
return (guint) atoi (gtk_entry_get_text (GTK_ENTRY (priv->d_entry)));
}
-/* Idle callback */
-static gboolean
-hildon_date_editor_entry_select_all (GtkWidget *widget)
-{
- GDK_THREADS_ENTER ();
-
- gtk_editable_select_region (GTK_EDITABLE (widget), 0, -1);
-
- GDK_THREADS_LEAVE ();
-
- return FALSE;
-}