Changeset 2663


Ignore:
Timestamp:
08/08/07 13:49:27 (6 years ago)
Author:
njp
Message:

2007-08-08 Neil J. Patel <njp@…>

  • 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.
Location:
trunk/src/target/OM-2007.2/applications/openmoko-dialer2
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog

    r2661 r2663  
     12007-08-08  Neil J. Patel  <njp@o-hand.com> 
     2 
     3        * src/moko-dialer-panel.c: (moko_dialer_panel_init), 
     4        (moko_dialer_panel_pressed): 
     5        Implement tap-and-hold events for the keys, so you can enter w, + and p. 
     6 
     7        * src/moko-keypad.c: (on_delete_event), (moko_keypad_init): 
     8        Implement tap-and-hold for the delete button, so the holf event will cause 
     9        the texview to 'empty'. 
     10 
     11        * src/moko-notify.c: 
     12        Some spacing fixes. 
     13 
    1142007-08-07  Neil J. Patel  <njp@o-hand.com> 
    215 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c

    r2453 r2663  
    3131     static gboolean moko_dialer_panel_pressed (MokoDigitButton * button, 
    3232                                                GdkEventButton * event, 
    33                                                 gpointer data); 
     33                                                MokoDialerPanel *panel); 
    3434 
    3535     static gint moko_dialer_panel_signals[LAST_SIGNAL] = { 0 }; 
     
    135135 
    136136      g_signal_connect ((gpointer) moko_dialer_panel->buttons[i][j], 
     137                        "button_press_event",  
     138                        G_CALLBACK (moko_dialer_panel_pressed), 
     139                        moko_dialer_panel); 
     140      g_signal_connect ((gpointer) moko_dialer_panel->buttons[i][j], 
    137141                        "button_release_event", 
    138142                        G_CALLBACK (moko_dialer_panel_pressed), 
     
    144148} 
    145149 
    146  
    147  
     150static gboolean 
     151moko_dialer_panel_pressed (MokoDigitButton *button,  
     152                           GdkEventButton *event, 
     153                           MokoDialerPanel *panel) 
     154{ 
     155#define TAP_HOLD_TIME 800 
     156  static guint32 last_event = 0; 
     157  gchar value = -1; 
     158 
     159  if (event->type == GDK_BUTTON_PRESS) 
     160  { 
     161    last_event = event->time; 
     162  } 
     163  else if (event->type == GDK_BUTTON_RELEASE) 
     164  { 
     165    guint32 diff = event->time - last_event; 
     166 
     167    if (diff < TAP_HOLD_TIME) 
     168    { 
     169      /* Normal 'clicked' event */ 
     170      value = moko_digit_button_get_left (button); 
     171      g_signal_emit (panel, 
     172                     moko_dialer_panel_signals[CLICKED_SIGNAL], 0, value); 
     173    } 
     174    else 
     175    { 
     176      /* Tap-and-hold event */ 
     177      value = moko_digit_button_get_right (button); 
     178       
     179      if (value == -1) 
     180        value = moko_digit_button_get_left (button); 
     181       
     182      g_signal_emit (panel, 
     183                     moko_dialer_panel_signals[CLICKED_SIGNAL], 0, value); 
     184    } 
     185  } 
     186  return FALSE; 
     187} 
     188 
     189/*  
     190 * Leave this for when tap-and-hold is implemented at the Gtk-level  
     191 */ 
     192#if 0 
    148193static gboolean 
    149194moko_dialer_panel_pressed (MokoDigitButton * button, GdkEventButton * event, 
     
    191236  return FALSE; 
    192237} 
    193  
     238#endif 
    194239 
    195240 
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-keypad.c

    r2566 r2663  
    8484 
    8585static void 
    86 on_delete_clicked (GtkWidget *button, MokoKeypad *keypad) 
    87 { 
     86on_delete_event (GtkWidget *button, GdkEventButton *event, MokoKeypad *keypad) 
     87{ 
     88#define TAP_HOLD_TIME 800 
    8889  MokoKeypadPrivate *priv; 
    8990  MokoDialerTextview *textview; 
    90  
     91  static guint32 last_event = 0; 
     92   
    9193  g_return_if_fail (MOKO_IS_KEYPAD (keypad)); 
    9294  priv = keypad->priv; 
     
    9496  textview = MOKO_DIALER_TEXTVIEW (priv->textview); 
    9597 
    96   moko_dialer_textview_delete (textview); 
     98  if (event->type == GDK_BUTTON_PRESS) 
     99  { 
     100    last_event = event->time; 
     101  } 
     102  else if (event->type == GDK_BUTTON_RELEASE) 
     103  { 
     104    guint32 diff = event->time - last_event; 
     105 
     106    if (diff < TAP_HOLD_TIME) 
     107    { 
     108      /* Normal 'clicked' event */ 
     109      moko_dialer_textview_delete (textview); 
     110    } 
     111    else 
     112    { 
     113      /* Tap-and-hold event */ 
     114      moko_dialer_textview_empty (textview); 
     115   } 
     116  } 
     117  return FALSE; 
    97118} 
    98119 
     
    199220  /* Delete button */ 
    200221  priv->delete = gtk_button_new (); 
    201   g_signal_connect (G_OBJECT (priv->delete), "clicked", 
    202                     G_CALLBACK (on_delete_clicked), (gpointer)keypad);  
     222  g_signal_connect (priv->delete, "button-press-event", 
     223                    G_CALLBACK (on_delete_event), (gpointer)keypad); 
     224  g_signal_connect (priv->delete, "button-release-event", 
     225                    G_CALLBACK (on_delete_event), (gpointer)keypad);   
     226   
    203227  bvbox = gtk_vbox_new (FALSE, 0); 
    204228   
  • trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-notify.c

    r2661 r2663  
    5858*/ 
    5959 
     60 
     61/* 
     62 * Check the current screen brightness, raise it if necessary  
     63 */ 
    6064static void 
    6165moko_notify_check_brightness (void) 
Note: See TracChangeset for help on using the changeset viewer.