Minor fixes.
[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
28 int main(int argc, char** argv) {
29
30
31         HildonProgram *program;
32         HildonWindow *window;
33
34         gtk_init(&argc, &argv);
35
36         GtkImage* table[10]; // stores the images
37
38         GtkWidget *box;
39
40         program = HILDON_PROGRAM(hildon_program_get_instance());
41         g_set_application_name("Speedometer");
42
43         window = HILDON_WINDOW(hildon_window_new());
44         hildon_program_add_window(program, window);
45
46
47         int i = 0;
48         while(i < 10) {
49                 char* path = malloc(30);
50                 g_sprintf(path, "data/%d.png", i);
51                 table[i] = gtk_image_new_from_file(path);
52                 g_print(path);
53                 g_print("\n");
54                 free(path);
55                 i++;
56         }
57
58         box = gtk_hbox_new(TRUE, 0);
59
60         gtk_box_pack_start(box, table[6], FALSE, FALSE, 0);
61         gtk_box_pack_start(box, table[5], FALSE, FALSE, 0);
62         gtk_box_pack_start(box, table[8], FALSE, FALSE, 0);
63
64         gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(box));
65
66         // set the background color to black
67         GdkColor black;
68         black.red = 0x0000;
69         black.blue = 0x0000;
70         black.green = 0x0000;
71         gtk_widget_modify_bg(window, GTK_STATE_NORMAL, &black);
72
73         // set the window fullscreen
74         gtk_window_fullscreen(GTK_WINDOW(window));
75
76         gtk_widget_show_all(GTK_WIDGET(window));
77
78
79
80         g_thread_init(NULL);
81
82
83 #ifdef __arm__
84         // gps device
85         LocationGPSDevice *device;
86         device = g_object_new(LOCATION_TYPE_GPS_DEVICE, NULL);
87
88         // connect some signal handlers
89         g_signal_connect (device, "changed", G_CALLBACK (location_changed), NULL);
90
91     g_signal_connect(G_OBJECT(window),  "key_press_event", G_CALLBACK(key_press_cb), window);
92
93         LocationGPSDControl *control;
94
95         control = location_gpsd_control_get_default();
96         location_gpsd_control_start(control);
97 #endif // __arm__
98
99         /* Connect signal to X in the upper corner */
100         g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
101
102         /* Start the main event loop. */
103         gtk_main();
104
105         return EXIT_SUCCESS;
106 }
107