Graphix added.
[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
37         program = HILDON_PROGRAM(hildon_program_get_instance());
38         g_set_application_name("Speedometer");
39
40         /* Create HildonWindow and set it to HildonProgram */
41         window = HILDON_WINDOW(hildon_window_new());
42         hildon_program_add_window(program, window);
43
44
45
46         /* Show all widgets that are contained by the window. */
47         gtk_widget_show_all(GTK_WIDGET(window));
48
49
50
51         g_thread_init(NULL);
52
53         // gps device
54         LocationGPSDevice *device;
55         device = g_object_new (LOCATION_TYPE_GPS_DEVICE, NULL);
56
57
58         // connect some signal handlers
59         g_signal_connect (device, "changed", G_CALLBACK (location_changed), NULL);
60
61         /* Connect signal to X in the upper corner */
62         g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL);
63
64     g_signal_connect(G_OBJECT(window),  "key_press_event", G_CALLBACK(key_press_cb), window);
65
66         LocationGPSDControl *control;
67
68         control = location_gpsd_control_get_default();
69         location_gpsd_control_start(control);
70
71
72
73         /* Start the main event loop. */
74         gtk_main();
75
76
77
78         return EXIT_SUCCESS;
79 }
80