From: wellu Date: Wed, 29 Oct 2008 18:38:46 +0000 (+0000) Subject: Simplified event handling so that the whole screen responds to gestures. X-Git-Tag: 0.99~16 X-Git-Url: http://git.maemo.org/git/?p=speedometer;a=commitdiff_plain;h=fb98eb608fcb82c2abc89c53c12d516fcdfc5981 Simplified event handling so that the whole screen responds to gestures. git-svn-id: file:///svnroot/speedometer/trunk@57 df364472-da61-43ef-8a67-511c89aa921b --- diff --git a/callbacks.c b/callbacks.c index ce5a5a8..e23bb81 100644 --- a/callbacks.c +++ b/callbacks.c @@ -82,9 +82,7 @@ gboolean long_tap(GtkWidget* widget, gpointer data) { return TRUE; } -gboolean middle_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) { - g_print("Middle event box pressed\n"); - g_print("Changing conversion unit\n"); +gboolean short_tap(GtkWidget* widget, GdkEventButton* event, gpointer data) { change_unit(); return TRUE; } diff --git a/callbacks.h b/callbacks.h index 8b0e93f..bc4d03d 100644 --- a/callbacks.h +++ b/callbacks.h @@ -33,6 +33,6 @@ gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* windo gboolean long_tap(GtkWidget* widget, gpointer data); // middle event box -gboolean middle_event_box_button_press(GtkWidget* widget, GdkEventButton* event, gpointer data); +gboolean short_tap(GtkWidget* widget, GdkEventButton* event, gpointer data); #endif /* CALLBACKS_H_ */ diff --git a/ui.c b/ui.c index 9878980..dc7e2c9 100644 --- a/ui.c +++ b/ui.c @@ -138,26 +138,25 @@ static void repaint_all_digits() { void create_ui(AppData* appdata) { g_assert(appdata); - GtkWidget *hbox; - GtkWidget *bhbox; + GtkWidget *top_hbox; + GtkWidget *bottom_hbox; GtkWidget *vbox; vbox = gtk_vbox_new(FALSE, 0); - hbox = gtk_hbox_new(TRUE, 0); - bhbox = gtk_hbox_new(TRUE, 0); + top_hbox = gtk_hbox_new(TRUE, 0); + bottom_hbox = gtk_hbox_new(TRUE, 0); - GtkWidget* middle_e = gtk_event_box_new(); - GtkWidget* bottom_e = gtk_event_box_new(); + GtkWidget* event_box = gtk_event_box_new(); - g_signal_connect(G_OBJECT(middle_e), + g_signal_connect(G_OBJECT(event_box), "tap_and_hold", G_CALLBACK(long_tap), appdata); - gtk_widget_tap_and_hold_setup(middle_e, NULL, NULL, 0); + gtk_widget_tap_and_hold_setup(event_box, NULL, NULL, 0); - g_signal_connect(G_OBJECT(middle_e), + g_signal_connect(G_OBJECT(event_box), "button_press_event", - G_CALLBACK(middle_event_box_button_press), + G_CALLBACK(short_tap), appdata); g_signal_connect(G_OBJECT(appdata->window), @@ -171,32 +170,30 @@ void create_ui(AppData* appdata) { appdata->window); // add three big digits to the hbox - gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(digits[0]), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(digits[1]), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(hbox), GTK_WIDGET(digits[2]), FALSE, FALSE, 0); + // creates the top row where big digits are placed + gtk_box_pack_start(GTK_BOX(top_hbox), GTK_WIDGET(digits[0]), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(top_hbox), GTK_WIDGET(digits[1]), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(top_hbox), GTK_WIDGET(digits[2]), FALSE, FALSE, 0); // add small digits to another hbox - gtk_box_pack_start(GTK_BOX(bhbox), GTK_WIDGET(unit_graphic), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(bhbox), GTK_WIDGET(digits[3]), FALSE, FALSE, 0); - gtk_box_pack_start(GTK_BOX(bhbox), GTK_WIDGET(digits[4]), FALSE, FALSE, 0); - - // add hboxes to the event boxes - gtk_container_add(GTK_CONTAINER(middle_e), hbox); - gtk_container_add(GTK_CONTAINER(bottom_e), bhbox); + // creates the bottom row with decimals and unit graphic + gtk_box_pack_start(GTK_BOX(bottom_hbox), GTK_WIDGET(unit_graphic), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(bottom_hbox), GTK_WIDGET(digits[3]), FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(bottom_hbox), GTK_WIDGET(digits[4]), FALSE, FALSE, 0); // add event boxes to the vbox - //gtk_box_pack_start_defaults(GTK_BOX(vbox), top_e); - gtk_box_pack_start_defaults(GTK_BOX(vbox), middle_e); - gtk_box_pack_start_defaults(GTK_BOX(vbox), bottom_e); + gtk_box_pack_start_defaults(GTK_BOX(vbox), top_hbox); + gtk_box_pack_start_defaults(GTK_BOX(vbox), bottom_hbox); + + // add vertival box to the event box + gtk_container_add(GTK_CONTAINER(event_box), GTK_WIDGET(vbox)); - // finally add the vertical box with all the children to the window - gtk_container_add(GTK_CONTAINER(appdata->window), GTK_WIDGET(vbox)); + // finally add the event box with all the children to the window + gtk_container_add(GTK_CONTAINER(appdata->window), GTK_WIDGET(event_box)); // set backgrounds black set_widget_bg_black(GTK_WIDGET(appdata->window)); - set_widget_bg_black(bottom_e); - //set_widget_bg_black(top_e); - set_widget_bg_black(middle_e); + set_widget_bg_black(event_box); gtk_window_fullscreen(GTK_WINDOW(appdata->window)); gtk_widget_show_all(GTK_WIDGET(appdata->window));