- Timestamp:
- 08/08/07 13:49:27 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/moko-dialer-panel.c
r2453 r2663 31 31 static gboolean moko_dialer_panel_pressed (MokoDigitButton * button, 32 32 GdkEventButton * event, 33 gpointer data);33 MokoDialerPanel *panel); 34 34 35 35 static gint moko_dialer_panel_signals[LAST_SIGNAL] = { 0 }; … … 135 135 136 136 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], 137 141 "button_release_event", 138 142 G_CALLBACK (moko_dialer_panel_pressed), … … 144 148 } 145 149 146 147 150 static gboolean 151 moko_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 148 193 static gboolean 149 194 moko_dialer_panel_pressed (MokoDigitButton * button, GdkEventButton * event, … … 191 236 return FALSE; 192 237 } 193 238 #endif 194 239 195 240
Note: See TracChangeset
for help on using the changeset viewer.
