Preliminary layout implemented.
authorwellu <wellu@wellu.org>
Fri, 5 Sep 2008 18:40:07 +0000 (18:40 +0000)
committerwellu <wellu@wellu.org>
Fri, 5 Sep 2008 18:40:07 +0000 (18:40 +0000)
git-svn-id: file:///svnroot/speedometer/trunk@22 df364472-da61-43ef-8a67-511c89aa921b

Makefile
appdata.h
callbacks.c
callbacks.h
main.c

index 8055655..b24d586 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -32,5 +32,7 @@ install: all
        install -D -m 755 speedometer $(DESTDIR)/usr/bin/speedometer
        install -D data/speedometer.desktop $(DESTDIR)/usr/share/applications/hildon/speedometer.desktop
        install -D data/speedometer.service $(DESTDIR)/usr/share/dbus-1/services/speedometer.service
+       install -d $(DESTDIR)/usr/share/speedometer/
+       install data/*.png $(DESTDIR)/usr/share/speedometer/
 
 
index 2b9979a..f1ffb29 100644 (file)
--- a/appdata.h
+++ b/appdata.h
@@ -26,6 +26,10 @@ typedef struct _AppData AppData;
 struct _AppData {
     HildonProgram *program;
     HildonWindow *window;
+
+       GtkImage* image_array[10]; // stores the images
+
+       GtkImage* speed_array[3]; // actual images that are shown
 };
 
 #endif /* APPDATA_H_ */
index 620bfd4..55126e6 100644 (file)
@@ -75,3 +75,11 @@ gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* windo
 
        return FALSE;
 }
+
+gboolean button_press(GtkWidget* widget, GdkEventButton* event, gpointer data) {
+
+       g_print("Hello");
+       exit(0);
+       return TRUE;
+}
+
index 9fc8ede..9bc2d81 100644 (file)
@@ -29,4 +29,7 @@ void location_changed(LocationGPSDevice* device, gpointer userdata);
 // for hardware keys
 gboolean key_press_cb(GtkWidget* widget, GdkEventKey* event, HildonWindow* window);
 
+// for pointer events
+gboolean button_press(GtkWidget* widget, GdkEventButton* event, gpointer data);
+
 #endif /* CALLBACKS_H_ */
diff --git a/main.c b/main.c
index 54c8d75..d15a304 100644 (file)
--- a/main.c
+++ b/main.c
@@ -33,9 +33,9 @@ int main(int argc, char** argv) {
 
        gtk_init(&argc, &argv);
 
-       GtkImage* table[10]; // stores the images
 
-       GtkWidget *box;
+       GtkWidget *hbox;
+       GtkWidget *vbox;
 
        appdata->program = HILDON_PROGRAM(hildon_program_get_instance());
        appdata->window = HILDON_WINDOW(hildon_window_new());
@@ -43,24 +43,23 @@ int main(int argc, char** argv) {
 
        set_app_bg_black(appdata);
 
-       int i = 0;
-       while(i < 10) {
-               char* path = malloc(30);
-               g_sprintf(path, "data/%d.png", i);
-               table[i] = gtk_image_new_from_file(path);
-               g_print(path);
-               g_print("\n");
-               free(path);
-               i++;
-       }
+       populate_image_array(appdata);
 
-       box = gtk_hbox_new(TRUE, 0);
+       load_default_images(appdata);
 
-       gtk_box_pack_start(box, table[6], FALSE, FALSE, 0);
-       gtk_box_pack_start(box, table[5], FALSE, FALSE, 0);
-       gtk_box_pack_start(box, table[8], FALSE, FALSE, 0);
+       vbox = gtk_vbox_new(FALSE, 0);
+       hbox = gtk_hbox_new(TRUE, 0);
 
-       gtk_container_add(GTK_CONTAINER(appdata->window), GTK_WIDGET(box));
+       gtk_box_pack_start_defaults(vbox, gtk_event_box_new());
+       gtk_box_pack_start_defaults(vbox, hbox);
+
+       gtk_box_pack_start(hbox, appdata->speed_array[0], FALSE, FALSE, 0);
+       gtk_box_pack_start(hbox, appdata->speed_array[1], FALSE, FALSE, 0);
+       gtk_box_pack_start(hbox, appdata->speed_array[2], FALSE, FALSE, 0);
+
+       gtk_box_pack_start_defaults(vbox, gtk_button_new_with_label("Bottom"));
+
+       gtk_container_add(GTK_CONTAINER(appdata->window), GTK_WIDGET(vbox));
 
        // set the window fullscreen
        gtk_window_fullscreen(GTK_WINDOW(appdata->window));
@@ -71,6 +70,8 @@ int main(int argc, char** argv) {
 
        g_thread_init(NULL);
 
+       g_idle_add(randomize, appdata);
+
 
 #ifdef __arm__
        // gps device
@@ -80,19 +81,28 @@ int main(int argc, char** argv) {
        // connect some signal handlers
        g_signal_connect (device, "changed", G_CALLBACK (location_changed), NULL);
 
-    g_signal_connect(G_OBJECT(appdata->window),  "key_press_event", G_CALLBACK(key_press_cb), appdata->window);
-
        LocationGPSDControl *control;
 
        control = location_gpsd_control_get_default();
        location_gpsd_control_start(control);
 #endif // __arm__
 
-       /* Connect signal to X in the upper corner */
-       g_signal_connect(G_OBJECT(appdata->window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
+       g_signal_connect(G_OBJECT(appdata->window),
+                       "delete_event",
+                       G_CALLBACK(gtk_main_quit),
+                       NULL);
+
+    g_signal_connect(G_OBJECT(appdata->window),
+               "key_press_event",
+               G_CALLBACK(key_press_cb),
+               appdata->window);
+
+    g_signal_connect(G_OBJECT(appdata->window),
+               "button_press_event",
+               G_CALLBACK(button_press),
+               appdata->window);
 
-       /* Start the main event loop. */
-       gtk_main();
+    gtk_main();
 
        return EXIT_SUCCESS;
 }