]> err.no Git - mapper/commitdiff
Add setting and jumping to a destination.
authorKaj-Michael Lang <milang@onion.tal.org>
Thu, 9 Aug 2007 10:07:58 +0000 (13:07 +0300)
committerKaj-Michael Lang <milang@onion.tal.org>
Thu, 9 Aug 2007 10:07:58 +0000 (13:07 +0300)
Not used for anyhting nice just yet.

src/cb.c
src/cb.h
src/mapper-types.h
src/ui-common.c
src/ui-common.h

index d43a3c189ce69b6a52ae101523a52c2bb0b61224..ab40f3258843407824a2213743d05a43e3c83896 100644 (file)
--- a/src/cb.c
+++ b/src/cb.c
@@ -450,6 +450,20 @@ gboolean menu_cb_goto_home(GtkAction * action)
        return TRUE;
 }
 
+gboolean menu_cb_goto_destination(GtkAction *action)
+{
+guint unitx, unity;
+
+if (_dest.valid==FALSE) {
+       MACRO_BANNER_SHOW_INFO(_window, _("Destination not set."));
+       return TRUE;
+}
+latlon2unit(_dest.lat, _dest.lon, unitx, unity);
+map_center_unit(unitx, unity);
+map_set_autozoom(FALSE);
+return TRUE;
+}
+
 gboolean menu_cb_goto_gps(GtkAction * action)
 {
        printf("%s()\n", __PRETTY_FUNCTION__);
@@ -1241,11 +1255,21 @@ gboolean cmenu_cb_loc_set_home(GtkAction * action)
 _pos.unitx = x2unit(_cmenu_position_x);
 _pos.unity = y2unit(_cmenu_position_y);
 unit2latlon(_pos.unitx, _pos.unity, _home.lat, _home.lon);
+_home.valid=TRUE;
 
 config_save_home();
 return TRUE;
 }
 
+gboolean cmenu_cb_loc_set_destination(GtkAction *action)
+{
+_pos.unitx = x2unit(_cmenu_position_x);
+_pos.unity = y2unit(_cmenu_position_y);
+unit2latlon(_pos.unitx, _pos.unity, _dest.lat, _dest.lon);
+_dest.valid=TRUE;
+return TRUE;
+}
+
 gboolean cmenu_cb_loc_set_gps(GtkAction * action)
 {
 _pos.unitx = x2unit(_cmenu_position_x);
index 9ec84cf35f5f89d56f61c5d987c2b8b023f44505..db088b020aa3bf338e389ccfe57210ab40db5946 100644 (file)
--- a/src/cb.h
+++ b/src/cb.h
@@ -73,6 +73,7 @@ gboolean menu_cb_ac_none(GtkAction * action);
 gboolean menu_cb_goto_latlon(GtkAction * action);
 gboolean menu_cb_goto_gps(GtkAction * action);
 gboolean menu_cb_goto_home(GtkAction * action);
+gboolean menu_cb_goto_destination(GtkAction *action);
 gboolean menu_cb_goto_nextway(GtkAction * action);
 gboolean menu_cb_goto_nearpoi(GtkAction * action);
 
@@ -97,6 +98,7 @@ gboolean cmenu_cb_loc_add_way(GtkAction * action);
 gboolean cmenu_cb_loc_add_poi(GtkAction * action);
 gboolean cmenu_cb_loc_set_gps(GtkAction * action);
 gboolean cmenu_cb_loc_set_home(GtkAction * action);
+gboolean cmenu_cb_loc_set_destination(GtkAction *action);
 
 gboolean cb_add_poi(GtkAction * action);
 
index 434aaccd7730be731cd359467648154ab3f3d28e..ba2ec775f0d80e0f631de4ae0398d2f855b95096 100644 (file)
@@ -185,6 +185,7 @@ struct _Position {
        gdouble lat;
        gdouble lon;
        gfloat altitude;
+       gdouble valid;
 };
 
 /** A general definition of a point in the Mapper unit system. */
@@ -276,6 +277,8 @@ struct _BrowseInfo {
 };
 
 Point _point_null;
+
 Position _home;
+Position _dest;
 
 #endif
index 2e8afaa219086ad48950ac26c870e28b6806aec3..8c0808f0b49d2be3ee064c9defa45955582d836f 100644 (file)
@@ -372,6 +372,8 @@ static void menu_init()
 #endif
        gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu = gtk_menu_new());
        gtk_menu_append(submenu, _menu_goto_home = gtk_menu_item_new_with_label(_("Home")));
+       gtk_menu_append(submenu, _menu_goto_destination = gtk_menu_item_new_with_label(_("Destination")));
+       gtk_menu_append(submenu, _menu_goto_address = gtk_menu_item_new_with_label(_("Address...")));
        gtk_menu_append(submenu, _menu_goto_latlon = gtk_menu_item_new_with_label(_("Lat/Lon...")));
        gtk_menu_append(submenu, _menu_goto_gps = gtk_menu_item_new_with_label(_("GPS Location")));
        gtk_menu_append(submenu, _menu_goto_nextway     = gtk_menu_item_new_with_label(_("Next Waypoint")));
@@ -473,6 +475,8 @@ static void menu_init()
        /* Connect the "Go to" signals. */
        g_signal_connect(G_OBJECT(_menu_goto_home), "activate",
                         G_CALLBACK(menu_cb_goto_home), NULL);
+       g_signal_connect(G_OBJECT(_menu_goto_destination), "activate",
+                        G_CALLBACK(menu_cb_goto_destination), NULL);
        g_signal_connect(G_OBJECT(_menu_goto_latlon), "activate",
                         G_CALLBACK(menu_cb_goto_latlon), NULL);
        g_signal_connect(G_OBJECT(_menu_goto_gps), "activate",
@@ -520,6 +524,8 @@ static void menu_init()
        gtk_menu_append(submenu, _cmenu_loc_clip_latlon_item
                        = gtk_menu_item_new_with_label(_("Copy Lat/Lon")));
        gtk_menu_append(submenu, gtk_separator_menu_item_new());
+       gtk_menu_append(submenu, _cmenu_loc_set_destination
+                       = gtk_menu_item_new_with_label(_("Set destination")));
        gtk_menu_append(submenu, _cmenu_loc_distance_to_item
                        = gtk_menu_item_new_with_label(_("Show Distance to")));
        gtk_menu_append(submenu, _cmenu_loc_route_to_item
@@ -605,6 +611,8 @@ static void menu_init()
                         G_CALLBACK(cmenu_cb_loc_set_gps), NULL);
        g_signal_connect(G_OBJECT(_cmenu_loc_set_home), "activate",
                         G_CALLBACK(cmenu_cb_loc_set_home), NULL);
+       g_signal_connect(G_OBJECT(_cmenu_loc_set_destination), "activate",
+                        G_CALLBACK(cmenu_cb_loc_set_destination), NULL);
 
        g_signal_connect(G_OBJECT(_cmenu_way_show_latlon_item), "activate",
                         G_CALLBACK(cmenu_cb_way_show_latlon), NULL);
index 728ba0045703181aa244b4dbbc6a5b85f116e980..208f36f0c0545d593072763ef4a7b5af354b97e1 100644 (file)
@@ -140,6 +140,8 @@ GtkWidget *_menu_ac_none_item;
 
 /* Menu items for the "Go to" submenu. */
 GtkWidget *_menu_goto_home;
+GtkWidget *_menu_goto_destination;
+GtkWidget *_menu_goto_address;
 GtkWidget *_menu_goto_latlon;
 GtkWidget *_menu_goto_gps;
 GtkWidget *_menu_goto_nextway;
@@ -166,6 +168,7 @@ GtkWidget *_cmenu_loc_add_route;
 GtkWidget *_cmenu_loc_add_way;
 GtkWidget *_cmenu_loc_add_poi;
 GtkWidget *_cmenu_loc_set_gps;
+GtkWidget *_cmenu_loc_set_destination;
 GtkWidget *_cmenu_loc_set_home;
 
 /* Menu items for the "Waypoint" context menu. */