Some cleanups.
[speedometer] / main.c
1 /****
2         Speedometer, shows your current speed using GPS
3         Copyright (C) 2008 Wellu Mäkinen <wellu@wellu.org>
4
5         This program is free software: you can redistribute it and/or modify
6         it under the terms of the GNU General Public License as published by
7         the Free Software Foundation, either version 3 of the License, or
8         (at your option) any later version.
9
10         This program is distributed in the hope that it will be useful,
11         but WITHOUT ANY WARRANTY; without even the implied warranty of
12         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13         GNU General Public License for more details.
14
15         You should have received a copy of the GNU General Public License
16         along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  ****/
18
19 #include <hildon/hildon-program.h>
20 #include <hildon/hildon-window.h>
21 #include <stdlib.h>
22 #include <gtk/gtk.h>
23 #include <location/location-gps-device.h>
24 #include <location/location-gpsd-control.h>
25
26 #include "callbacks.h"
27 #include "appdata.h"
28 #include "ui.h"
29
30 int main(int argc, char** argv) {
31
32         AppData *appdata = g_new0(AppData, 1);
33
34         gtk_init(&argc, &argv);
35
36         GtkImage* table[10]; // stores the images
37
38         GtkWidget *box;
39
40         appdata->program = HILDON_PROGRAM(hildon_program_get_instance());
41         appdata->window = HILDON_WINDOW(hildon_window_new());
42         hildon_program_add_window(appdata->program, appdata->window);
43
44         set_app_bg_black(appdata);
45
46         int i = 0;
47         while(i < 10) {
48                 char* path = malloc(30);
49                 g_sprintf(path, "data/%d.png", i);
50                 table[i] = gtk_image_new_from_file(path);
51                 g_print(path);
52                 g_print("\n");
53                 free(path);
54                 i++;
55         }
56
57         box = gtk_hbox_new(TRUE, 0);
58
59         gtk_box_pack_start(box, table[6], FALSE, FALSE, 0);
60         gtk_box_pack_start(box, table[5], FALSE, FALSE, 0);
61         gtk_box_pack_start(box, table[8], FALSE, FALSE, 0);
62
63         gtk_container_add(GTK_CONTAINER(appdata->window), GTK_WIDGET(box));
64
65         // set the window fullscreen
66         gtk_window_fullscreen(GTK_WINDOW(appdata->window));
67
68         gtk_widget_show_all(GTK_WIDGET(appdata->window));
69
70
71
72         g_thread_init(NULL);
73
74
75 #ifdef __arm__
76         // gps device
77         LocationGPSDevice *device;
78         device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
79
80         // connect some signal handlers
81         g_signal_connect (device, "changed", G_CALLBACK (location_changed), NULL);
82
83     g_signal_connect(G_OBJECT(appdata->window),  "key_press_event", G_CALLBACK(key_press_cb), appdata->window);
84
85         LocationGPSDControl *control;
86
87         control = location_gpsd_control_get_default();
88         location_gpsd_control_start(control);
89 #endif // __arm__
90
91         /* Connect signal to X in the upper corner */
92         g_signal_connect(G_OBJECT(appdata->window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
93
94         /* Start the main event loop. */
95         gtk_main();
96
97         return EXIT_SUCCESS;
98 }
99