r2663 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src
njp at sita.openmoko.org
njp at sita.openmoko.org
Wed Aug 8 13:49:29 CEST 2007
Author: njp
Date: 2007-08-08 13:49:27 +0200 (Wed, 08 Aug 2007)
New Revision: 2663
Modified:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-keypad.c
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-notify.c
Log:
2007-08-08 Neil J. Patel <njp at o-hand.com>
* src/moko-dialer-panel.c: (moko_dialer_panel_init),
(moko_dialer_panel_pressed):
Implement tap-and-hold events for the keys, so you can enter w, + and p.
* src/moko-keypad.c: (on_delete_event), (moko_keypad_init):
Implement tap-and-hold for the delete button, so the holf event will cause
the texview to 'empty'.
* src/moko-notify.c:
Some spacing fixes.
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog 2007-08-07 20:14:48 UTC (rev 2662)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog 2007-08-08 11:49:27 UTC (rev 2663)
@@ -1,3 +1,16 @@
+2007-08-08 Neil J. Patel <njp at o-hand.com>
+
+ * src/moko-dialer-panel.c: (moko_dialer_panel_init),
+ (moko_dialer_panel_pressed):
+ Implement tap-and-hold events for the keys, so you can enter w, + and p.
+
+ * src/moko-keypad.c: (on_delete_event), (moko_keypad_init):
+ Implement tap-and-hold for the delete button, so the holf event will cause
+ the texview to 'empty'.
+
+ * src/moko-notify.c:
+ Some spacing fixes.
+
2007-08-07 Neil J. Patel <njp at o-hand.com>
* src/moko-dialer.c: (on_keypad_dial_clicked):
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c 2007-08-07 20:14:48 UTC (rev 2662)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c 2007-08-08 11:49:27 UTC (rev 2663)
@@ -30,7 +30,7 @@
//forward definition
static gboolean moko_dialer_panel_pressed (MokoDigitButton * button,
GdkEventButton * event,
- gpointer data);
+ MokoDialerPanel *panel);
static gint moko_dialer_panel_signals[LAST_SIGNAL] = { 0 };
@@ -134,6 +134,10 @@
i, i + 1);
g_signal_connect ((gpointer) moko_dialer_panel->buttons[i][j],
+ "button_press_event",
+ G_CALLBACK (moko_dialer_panel_pressed),
+ moko_dialer_panel);
+ g_signal_connect ((gpointer) moko_dialer_panel->buttons[i][j],
"button_release_event",
G_CALLBACK (moko_dialer_panel_pressed),
moko_dialer_panel);
@@ -143,8 +147,49 @@
}
+static gboolean
+moko_dialer_panel_pressed (MokoDigitButton *button,
+ GdkEventButton *event,
+ MokoDialerPanel *panel)
+{
+#define TAP_HOLD_TIME 800
+ static guint32 last_event = 0;
+ gchar value = -1;
+ if (event->type == GDK_BUTTON_PRESS)
+ {
+ last_event = event->time;
+ }
+ else if (event->type == GDK_BUTTON_RELEASE)
+ {
+ guint32 diff = event->time - last_event;
+ if (diff < TAP_HOLD_TIME)
+ {
+ /* Normal 'clicked' event */
+ value = moko_digit_button_get_left (button);
+ g_signal_emit (panel,
+ moko_dialer_panel_signals[CLICKED_SIGNAL], 0, value);
+ }
+ else
+ {
+ /* Tap-and-hold event */
+ value = moko_digit_button_get_right (button);
+
+ if (value == -1)
+ value = moko_digit_button_get_left (button);
+
+ g_signal_emit (panel,
+ moko_dialer_panel_signals[CLICKED_SIGNAL], 0, value);
+ }
+ }
+ return FALSE;
+}
+
+/*
+ * Leave this for when tap-and-hold is implemented at the Gtk-level
+ */
+#if 0
static gboolean
moko_dialer_panel_pressed (MokoDigitButton * button, GdkEventButton * event,
gpointer data)
@@ -190,10 +235,10 @@
/* allow the signal to propagate the event further */
return FALSE;
}
+#endif
-
GtkWidget *
moko_dialer_panel_new ()
{
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-keypad.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-keypad.c 2007-08-07 20:14:48 UTC (rev 2662)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-keypad.c 2007-08-08 11:49:27 UTC (rev 2663)
@@ -83,17 +83,38 @@
}
static void
-on_delete_clicked (GtkWidget *button, MokoKeypad *keypad)
+on_delete_event (GtkWidget *button, GdkEventButton *event, MokoKeypad *keypad)
{
+#define TAP_HOLD_TIME 800
MokoKeypadPrivate *priv;
MokoDialerTextview *textview;
-
+ static guint32 last_event = 0;
+
g_return_if_fail (MOKO_IS_KEYPAD (keypad));
priv = keypad->priv;
textview = MOKO_DIALER_TEXTVIEW (priv->textview);
- moko_dialer_textview_delete (textview);
+ if (event->type == GDK_BUTTON_PRESS)
+ {
+ last_event = event->time;
+ }
+ else if (event->type == GDK_BUTTON_RELEASE)
+ {
+ guint32 diff = event->time - last_event;
+
+ if (diff < TAP_HOLD_TIME)
+ {
+ /* Normal 'clicked' event */
+ moko_dialer_textview_delete (textview);
+ }
+ else
+ {
+ /* Tap-and-hold event */
+ moko_dialer_textview_empty (textview);
+ }
+ }
+ return FALSE;
}
static void
@@ -198,8 +219,11 @@
/* Delete button */
priv->delete = gtk_button_new ();
- g_signal_connect (G_OBJECT (priv->delete), "clicked",
- G_CALLBACK (on_delete_clicked), (gpointer)keypad);
+ g_signal_connect (priv->delete, "button-press-event",
+ G_CALLBACK (on_delete_event), (gpointer)keypad);
+ g_signal_connect (priv->delete, "button-release-event",
+ G_CALLBACK (on_delete_event), (gpointer)keypad);
+
bvbox = gtk_vbox_new (FALSE, 0);
icon = gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON);
Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-notify.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-notify.c 2007-08-07 20:14:48 UTC (rev 2662)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-notify.c 2007-08-08 11:49:27 UTC (rev 2663)
@@ -57,6 +57,10 @@
static guint notify_signals[LAST_SIGNAL] = {0, };
*/
+
+/*
+ * Check the current screen brightness, raise it if necessary
+ */
static void
moko_notify_check_brightness (void)
{
More information about the commitlog
mailing list