* 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-number-editor
- * @short_description: A widget used to enter a number within a pre-defined range
+ * @short_description: A widget used to enter a number within a pre-defined range.
*
* HildonNumberEditor is used to enter a number from a specific range.
* There are two buttons to scroll the value in number field.
* </example>
*/
+#undef HILDON_DISABLE_DEPRECATED
+
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
-#include "hildon-number-editor.h"
-#include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+#include <libintl.h>
+#include <gdk/gdkkeysyms.h>
+
+#include "hildon-number-editor.h"
#include "hildon-marshalers.h"
-#include "hildon-private.h"
-#include "hildon-input-mode-hint.h"
#include "hildon-defines.h"
#include "hildon-enum-types.h"
#include "hildon-banner.h"
-#include <libintl.h>
#include "hildon-number-editor-private.h"
+#include "hildon-private.h"
#define _(String) dgettext("hildon-libs", String)
GtkAllocation *allocation);
static gboolean
+hildon_number_editor_focus (GtkWidget *widget,
+ GtkDirectionType direction);
+
+static gboolean
hildon_number_editor_entry_keypress (GtkWidget *widget,
GdkEventKey *event,
gpointer data);
widget_class->size_request = hildon_number_editor_size_request;
widget_class->size_allocate = hildon_number_editor_size_allocate;
- widget_class->focus = hildon_private_composite_focus;
+ widget_class->focus = hildon_number_editor_focus;
editor_class->range_error = hildon_number_editor_range_error;
G_CALLBACK (hildon_number_editor_button_released),
editor);
+#ifdef MAEMO_GTK
g_object_set (G_OBJECT (priv->num_entry),
- "input-mode", HILDON_INPUT_MODE_HINT_NUMERIC, NULL);
+ "hildon-input-mode", HILDON_GTK_INPUT_MODE_NUMERIC, NULL);
+#endif
gtk_widget_show (priv->num_entry);
gtk_widget_show (priv->minus);
priv = HILDON_NUMBER_EDITOR_GET_PRIVATE (editor);
settings = gtk_settings_get_default ();
- g_object_get (settings, "gtk-timeout-update", &timeout, NULL);
+ g_object_get (settings, "gtk-timeout-repeat", &timeout, NULL);
+ timeout *= 8;
priv->button_event_id = g_timeout_add (timeout,
(GSourceFunc) do_mouse_timeout,
*/
if (value > priv->end && (priv->end >= 0 || (priv->end < 0 && value >= 0)))
{
- error_code = MAXIMUM_VALUE_EXCEED;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_MAXIMUM_VALUE_EXCEED;
fixup_value = priv->end;
}
else if (value < priv->start && (priv->start < 0 || (priv->start >= 0 && value <= 0)))
{
- error_code = MINIMUM_VALUE_EXCEED;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_MINIMUM_VALUE_EXCEED;
fixup_value = priv->start;
}
}
else
{
if (value > priv->end) {
- error_code = MAXIMUM_VALUE_EXCEED;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_MAXIMUM_VALUE_EXCEED;
fixup_value = priv->end;
}
else if (value < priv->start) {
- error_code = MINIMUM_VALUE_EXCEED;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_MINIMUM_VALUE_EXCEED;
fixup_value = priv->start;
}
}
have plain '-', intermediate forms are allowed AND
minimum bound is negative */
else if (! allow_intermediate || strcmp (text, "-") != 0 || priv->start >= 0)
- error_code = ERRONEOUS_VALUE;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_ERRONEOUS_VALUE;
}
else if (! allow_intermediate)
- error_code = ERRONEOUS_VALUE;
+ error_code = HILDON_NUMBER_EDITOR_ERROR_ERRONEOUS_VALUE;
if (error_code != -1)
{
}
static gboolean
+hildon_number_editor_focus (GtkWidget *widget,
+ GtkDirectionType direction)
+{
+ gboolean retval;
+ GtkDirectionType effective_direction;
+
+ g_assert (HILDON_IS_NUMBER_EDITOR (widget));
+
+ retval = hildon_private_composite_focus (widget, direction, &effective_direction);
+
+ if (retval == TRUE)
+ return GTK_WIDGET_CLASS (parent_class)->focus (widget, effective_direction);
+ else
+ return FALSE;
+}
+
+static gboolean
hildon_number_editor_entry_focusout (GtkWidget *widget,
GdkEventFocus *event,
gpointer data)
/* Construct error message */
switch (type)
{
- case MAXIMUM_VALUE_EXCEED:
+ case HILDON_NUMBER_EDITOR_ERROR_MAXIMUM_VALUE_EXCEED:
err_msg = g_strdup_printf (_("ckct_ib_maximum_value"), max, max);
break;
- case MINIMUM_VALUE_EXCEED:
+ case HILDON_NUMBER_EDITOR_ERROR_MINIMUM_VALUE_EXCEED:
err_msg = g_strdup_printf (_("ckct_ib_minimum_value"), min, min);
break;
- case ERRONEOUS_VALUE:
+ case HILDON_NUMBER_EDITOR_ERROR_ERRONEOUS_VALUE:
err_msg =
g_strdup_printf (_("ckct_ib_set_a_value_within_range"), min, max);
break;