Start/Stop functionality added
authorDr. Johann Pfefferl <pfefferl@nghape.jpnet>
Sat, 8 May 2010 19:05:09 +0000 (21:05 +0200)
committerDr. Johann Pfefferl <pfefferl@nghape.jpnet>
Sat, 8 May 2010 19:05:09 +0000 (21:05 +0200)
Makefile
gps-tracker.c

index dbf5b9c..e7a58d4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -16,7 +16,7 @@ ADD_CFLAGS := -Wall -g
 CFLAGS  := $(PKG_CFLAGS) $(ADD_CFLAGS) $(CFLAGS)
 LDFLAGS := $(PKG_LDFLAGS) $(LDFLAGS)
 
-targets = gps-tracker example_file_chooser
+targets = gps-tracker
 
 .PHONY: all
 all: $(targets)
index 044fa13..3f3b580 100644 (file)
@@ -13,7 +13,8 @@ typedef struct {
     
     GtkWidget * main_vbox, *btn_hbox;
     GtkWidget *status_label;
-    GtkButton *start_button, *stop_button;
+    GtkButton *start_stop_button, *save_button;
+    gboolean tracking_is_on;
 } AppData;
 
 static gchar * interface_file_chooser (AppData * appdata, GtkFileChooserAction action)
@@ -32,6 +33,17 @@ static gchar * interface_file_chooser (AppData * appdata, GtkFileChooserAction a
     return filename;
 }
 
+static void cb_start_stop (GtkWidget * w, AppData * data)
+{
+  data->tracking_is_on = !data->tracking_is_on;
+  if(data->tracking_is_on) {
+    hildon_banner_show_information(GTK_WIDGET(data->window), NULL, "Tracking started");
+  }
+  else {
+    hildon_banner_show_information(GTK_WIDGET(data->window), NULL, "Tracking stopped");
+  }
+}
+
 static void cb_file_save (GtkWidget * w, AppData * data)
 {
     gchar *filename = NULL;
@@ -170,12 +182,12 @@ int main (int argc, char **argv)
        /* Set a title to the button*/
        hildon_button_set_title (HILDON_BUTTON (picker_button), "Pick a date");
 
-  data->start_button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_HALFSCREEN_WIDTH));
-  data->stop_button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_HALFSCREEN_WIDTH));
-  gtk_button_set_label (data->start_button, "Start");
-  gtk_button_set_label (data->stop_button, "Stop");
-  gtk_box_pack_start(GTK_BOX(data->btn_hbox), GTK_WIDGET(data->start_button), FALSE, FALSE, 8);
-  gtk_box_pack_start(GTK_BOX(data->btn_hbox), GTK_WIDGET(data->stop_button), FALSE, FALSE, 8);
+  data->start_stop_button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_HALFSCREEN_WIDTH));
+  data->save_button = GTK_BUTTON (hildon_gtk_button_new (HILDON_SIZE_THUMB_HEIGHT | HILDON_SIZE_HALFSCREEN_WIDTH));
+  gtk_button_set_label (data->start_stop_button, "Start");
+  gtk_button_set_label (data->save_button, "Save");
+  gtk_box_pack_start(GTK_BOX(data->btn_hbox), GTK_WIDGET(data->start_stop_button), FALSE, FALSE, 8);
+  gtk_box_pack_start(GTK_BOX(data->btn_hbox), GTK_WIDGET(data->save_button), FALSE, FALSE, 8);
   gtk_box_pack_start(GTK_BOX(data->main_vbox), GTK_WIDGET(data->btn_hbox), FALSE, FALSE, 0);
   gtk_box_pack_start(GTK_BOX(data->main_vbox), GTK_WIDGET(picker_button), FALSE, FALSE, 0);
   data->status_label = gtk_label_new("Hier kommt der Status hin\nUnd hier ist die 2. Zeile");
@@ -183,6 +195,8 @@ int main (int argc, char **argv)
        /* Add vbox to main window */
        gtk_container_add (GTK_CONTAINER (data->window), GTK_WIDGET(data->main_vbox));
 
+  g_signal_connect (G_OBJECT (data->save_button), "clicked", G_CALLBACK (cb_file_save), data);
+  g_signal_connect (G_OBJECT (data->start_stop_button), "clicked", G_CALLBACK (cb_start_stop), data);
        g_signal_connect (G_OBJECT (data->window), "destroy",
                        G_CALLBACK (gtk_main_quit), NULL);