Simplified event handling so that the whole screen responds to gestures.
authorwellu <wellu@wellu.org>
Wed, 29 Oct 2008 18:38:46 +0000 (18:38 +0000)
committerwellu <wellu@wellu.org>
Wed, 29 Oct 2008 18:38:46 +0000 (18:38 +0000)
git-svn-id: file:///svnroot/speedometer/trunk@57 df364472-da61-43ef-8a67-511c89aa921b

callbacks.c
callbacks.h
ui.c

index ce5a5a8..e23bb81 100644 (file)
@@ -82,9 +82,7 @@ gboolean long_tap(GtkWidget* widget, gpointer data) {
        return TRUE;
 }
 
        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;
 }
        change_unit();
        return TRUE;
 }
index 8b0e93f..bc4d03d 100644 (file)
@@ -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 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_ */
 
 #endif /* CALLBACKS_H_ */
diff --git a/ui.c b/ui.c
index 9878980..dc7e2c9 100644 (file)
--- a/ui.c
+++ b/ui.c
@@ -138,26 +138,25 @@ static void repaint_all_digits() {
 void create_ui(AppData* appdata) {
        g_assert(appdata);
 
 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);
        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);
                        "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",
                        "button_press_event",
-                       G_CALLBACK(middle_event_box_button_press),
+                       G_CALLBACK(short_tap),
                        appdata);
 
        g_signal_connect(G_OBJECT(appdata->window),
                        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
                        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
 
        // 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
 
        // 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 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));
 
        gtk_window_fullscreen(GTK_WINDOW(appdata->window));
        gtk_widget_show_all(GTK_WIDGET(appdata->window));