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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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 
Note: See TracChangeset for help on using the changeset viewer.