]> err.no Git - mapper/commitdiff
Fix column function missing NULL parameter.
authorKaj-Michael Lang <milang@onion.tal.org>
Tue, 5 Jun 2007 13:36:06 +0000 (16:36 +0300)
committerKaj-Michael Lang <milang@onion.tal.org>
Tue, 5 Jun 2007 13:36:06 +0000 (16:36 +0300)
First try at a simple autozoomer.

src/bt-bluez.c
src/cb.c
src/cb.h
src/map.c
src/poi.c
src/ui-common.c

index 36db67e6d0e8495f25e3ae9f9c61d2358d8bc97a..843816ef336da44f0e195030e388b5193c0c54c6 100644 (file)
@@ -313,15 +313,11 @@ gboolean scan_bluetooth(GtkWidget * widget, ScanInfo * scan_info)
        gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(lst_devices), TRUE);
 
        renderer = gtk_cell_renderer_text_new();
-       column =
-           gtk_tree_view_column_new_with_attributes(_("MAC"), renderer, "text",
-                                                    0);
+       column = gtk_tree_view_column_new_with_attributes(_("MAC"), renderer, "text", 0, NULL);
        gtk_tree_view_append_column(GTK_TREE_VIEW(lst_devices), column);
 
        renderer = gtk_cell_renderer_text_new();
-       column =
-           gtk_tree_view_column_new_with_attributes(_("Description"), renderer,
-                                                    "text", 1);
+       column = gtk_tree_view_column_new_with_attributes(_("Description"), renderer, "text", 1, NULL);
        gtk_tree_view_append_column(GTK_TREE_VIEW(lst_devices), column);
 
        gtk_widget_show_all(dialog);
index 84c201cee23d613e539c2797c4610d815af5af37..5fd3ea3fe3b31b5695a238d2a590bcaf5b6e5742 100644 (file)
--- a/src/cb.c
+++ b/src/cb.c
@@ -551,11 +551,22 @@ gboolean menu_cb_maps_select(GtkAction * action, gpointer new_repo)
        return TRUE;
 }
 
-gboolean cb_zoom_fit(GtkAction * action)
+gboolean cb_zoom_autozoom(GtkAction * action)
 {
        printf("%s()\n", __PRETTY_FUNCTION__);
 
-       map_zoom(10);
+       map_set_autozoom(TRUE);
+
+       vprintf("%s(): return TRUE\n", __PRETTY_FUNCTION__);
+       return TRUE;
+}
+
+gboolean cb_zoom_base(GtkAction * action)
+{
+       printf("%s()\n", __PRETTY_FUNCTION__);
+
+       map_set_autozoom(FALSE);
+       map_set_zoom(4);
 
        vprintf("%s(): return TRUE\n", __PRETTY_FUNCTION__);
        return TRUE;
@@ -565,6 +576,7 @@ gboolean cb_zoomin(GtkAction * action)
 {
        printf("%s()\n", __PRETTY_FUNCTION__);
 
+       map_set_autozoom(FALSE);
        map_zoom(-1);
 
        vprintf("%s(): return TRUE\n", __PRETTY_FUNCTION__);
@@ -575,6 +587,7 @@ gboolean cb_zoomout(GtkAction * action)
 {
        printf("%s()\n", __PRETTY_FUNCTION__);
 
+       map_set_autozoom(FALSE);
        map_zoom(1);
 
        vprintf("%s(): return TRUE\n", __PRETTY_FUNCTION__);
index 1c26d69b01e22e979cb7965f88586a0b8a2bf224..7c22e7fed8e0b742fe8168ecdb0c155ea509048f 100644 (file)
--- a/src/cb.h
+++ b/src/cb.h
@@ -50,6 +50,8 @@ gboolean menu_cb_maps_repoman(GtkAction * action);
 gboolean menu_cb_auto_download(GtkAction * action);
 
 /* Callbacks for the "View" submenu. */
+gboolean cb_zoom_autozoom(GtkAction * action);
+gboolean cb_zoom_base(GtkAction * action);
 gboolean cb_zoomin(GtkAction * action);
 gboolean cb_zoomout(GtkAction * action);
 gboolean cb_fullscreen(GtkAction * action);
index b097f386271c49840422764b32f5ce69b6f5c17d..a7c309227552e57f430c7cfb4838f1a77bc65edf 100644 (file)
--- a/src/map.c
+++ b/src/map.c
@@ -47,6 +47,8 @@ static guint release[2] = { 0, 0 };
 static guint before[2] = { 0, 0 };
 static guint _id = 0;
 
+static _zoom_timeout=0;
+
 void map_render_paths();
 void map_force_redraw();
 gboolean curl_download_timeout();
@@ -1301,6 +1303,36 @@ int map_zoom(gint zdir)
        return nzoom;
 }
 
+static gboolean
+map_autozoomer()
+{
+static gfloat z=6.0;
+
+if (_zoom_timeout==0)
+       return FALSE;
+
+z=(z+_gps.speed+1)/2;
+if (z>7) z=7.0; else if (z<1) z=1.0;
+map_set_zoom(round(z));
+
+return TRUE;
+}
+
+void
+map_set_autozoom(gboolean az)
+{
+if ((az==TRUE) && (_zoom_timeout!=0)) {
+       _zoom_timeout=g_timeout_add(5000, (GSourceFunc) map_autozoomer, NULL);
+       return;
+}
+
+if ((az==FALSE) && (_zoom_timeout!=0)) {
+       _zoom_timeout=0;
+       return;
+}
+
+}
+
 static void map_draw_track(gint x, gint y)
 {
        _pos.unitx = x2unit((gint) (x + 0.5));
index adc235685ae3b3d92d22ec049b1bd57e8fe9a3f5..94517c2fd37264429c1e70e0b08b1e3484230a7d 100644 (file)
--- a/src/poi.c
+++ b/src/poi.c
@@ -60,10 +60,20 @@ poi_db_create(sqlite3 *db)
 
                create_sql =
                    sqlite3_mprintf
-                   ("create table poi (poi_id integer PRIMARY KEY, lat real, "
-                    "lon real, label text, desc text, cat_id integer);"
+                   ("create table poi (poi_id integer PRIMARY KEY, "
+                       "lat real, "
+                       "lon real, "
+                       "elev real, "
+                       "label text, "
+                       "desc text, "
+                       "public integer, "
+                       "cat_id integer);"
                     "create table category (cat_id integer PRIMARY KEY,"
-                    "label text, desc text, enabled integer);"
+                       "label text, "
+                       "desc text, "
+                       "icon text, "
+                       "color char(7), "
+                       "enabled integer);"
                     /* Add some default categories... */
                     "insert into category (label, desc, enabled) "
                     "values ('%q', '%q', 1); "
@@ -123,6 +133,7 @@ poi_db_create(sqlite3 *db)
        } else
                sqlite3_free_table(pszResult);
 
+       return TRUE;
 }
 
 gboolean
@@ -131,7 +142,7 @@ poi_db_prepare(sqlite3 *db)
        /* select from poi */
        sqlite3_prepare(db,
                        "select p.lat, p.lon, p.poi_id, p.label, p.desc,"
-                       " p.cat_id, c.label, c.desc"
+                       " p.cat_id, c.label, c.desc, c.icon, c.color"
                        " from poi p, category c "
                        " where p.lat between ? and ? "
                        " and p.lon between ? and ? "
@@ -142,15 +153,17 @@ poi_db_prepare(sqlite3 *db)
        sqlite3_prepare(db,
                        "select p.lat, p.lon, p.label, c.label"
                        " from poi p, category c "
-                       " where c.enabled = 1 and p.cat_id = c.cat_id"
+                       " where c.enabled = 1 and p.cat_id = c.cat_id "
+                       " and p.lat between $LAT-0.15 and $LAT+0.15 "
+                       " and p.lon between $LON-0.15 and $LAT+0.15 "
                        " order by (($LAT - p.lat) * ($LAT - p.lat) "
                        "+ ($LON - p.lon) * ($LON - p.lon)) limit 1",
                        -1, &_stmt_select_nearest_poi, NULL);
 
        /* insert poi */
        sqlite3_prepare(db,
-                       "insert into poi (lat, lon, label, desc, cat_id)"
-                       " values (?, ?, ?, ?, ?)", -1, &_stmt_insert_poi, NULL);
+                       "insert into poi (lat, lon, label, desc, cat_id, public)"
+                       " values (?, ?, ?, ?, ?, 1)", -1, &_stmt_insert_poi, NULL);
        /* update poi */
        sqlite3_prepare(db,
                        "update poi set label = ?, desc = ?, "
@@ -218,7 +231,7 @@ gboolean
 poi_category_update(gint cat_id, gchar * cat_label, gchar * cat_desc,
                    gint cat_enabled)
 {
-gboolean results;
+gboolean results=TRUE;
 
 if (cat_id > 0) {
 /* edit category */
@@ -255,29 +268,26 @@ return results;
 gboolean 
 poi_category_delete(DeletePOI * dpoi)
 {
-/* delete dpoi->poi_id */
-       if (SQLITE_OK != sqlite3_bind_int(_stmt_delete_poi_by_catid, 1,
-                                         dpoi->id)
+if (SQLITE_OK != sqlite3_bind_int(_stmt_delete_poi_by_catid, 1, dpoi->id)
            || SQLITE_DONE != sqlite3_step(_stmt_delete_poi_by_catid)) {
                sqlite3_reset(_stmt_delete_poi_by_catid);
                return FALSE;
-       }
-       sqlite3_reset(_stmt_delete_poi_by_catid);
+}
+sqlite3_reset(_stmt_delete_poi_by_catid);
 
-       if (SQLITE_OK != sqlite3_bind_int(_stmt_delete_cat, 1, dpoi->id) ||
-           SQLITE_DONE != sqlite3_step(_stmt_delete_cat)) {
-               sqlite3_reset(_stmt_delete_cat);
-               return FALSE;
-       }
+if (SQLITE_OK != sqlite3_bind_int(_stmt_delete_cat, 1, dpoi->id) ||
+    SQLITE_DONE != sqlite3_step(_stmt_delete_cat)) {
        sqlite3_reset(_stmt_delete_cat);
+       return FALSE;
+}
+sqlite3_reset(_stmt_delete_cat);
+return TRUE;
 }
 
 
 gboolean 
 poi_delete(DeletePOI * dpoi)
 {
-guint i;
-
 if (SQLITE_OK != sqlite3_bind_int(_stmt_delete_poi, 1, dpoi->id) ||
     SQLITE_DONE != sqlite3_step(_stmt_delete_poi)) {
        sqlite3_reset(_stmt_delete_poi);
index 86339991d6d060805f4e02981e11acb7e0e5819b..b2287c083018e386eefdb8d284a74b98c8f24d9c 100644 (file)
@@ -731,11 +731,13 @@ item = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_OUT);
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
 g_signal_connect (item, "clicked", G_CALLBACK (cb_zoomout), NULL);
 
-#if 0
-item = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_FIT);
+item = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_100);
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
 g_signal_connect (item, "clicked", G_CALLBACK (cb_zoom_base), NULL);
-#endif
+
+item = gtk_tool_button_new_from_stock (GTK_STOCK_ZOOM_FIT);
+gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
+g_signal_connect (item, "clicked", G_CALLBACK (cb_zoom_autozoom), NULL);
 
 item = gtk_separator_tool_item_new();
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
@@ -746,6 +748,10 @@ g_signal_connect (item, "clicked", G_CALLBACK (cb_fullscreen), NULL);
 
 item = gtk_separator_tool_item_new();
 gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
+
+#ifndef WITH_HILDON
+
+#endif
 }
 
 /**
@@ -754,6 +760,7 @@ gtk_toolbar_insert (GTK_TOOLBAR (_toolbar), item, -1);
 void mapper_init(gint argc, gchar ** argv)
 {
        GtkWidget *hbox, *label, *vbox, *vbox_main;
+       GtkWidget *notebook;
        GdkColor color;
        printf("%s()\n", __PRETTY_FUNCTION__);
 
@@ -892,10 +899,15 @@ void mapper_init(gint argc, gchar ** argv)
        _toolbar = gtk_toolbar_new();
        toolbar_init();
 
+       notebook = gtk_notebook_new();
+       gtk_notebook_set_show_tabs(notebook, TRUE);
+       label = gtk_label_new("Map");
+
 #ifdef WITH_HILDON
        /* Create and add widgets and supporting data. */
        hbox = gtk_hbox_new(FALSE, 0);
-       gtk_container_add(GTK_CONTAINER(_window), hbox);
+       gtk_notebook_append_page(notebook, hbox, label);
+       gtk_container_add(GTK_CONTAINER(_window), notebook);
        hildon_program_set_common_toolbar(_program, _toolbar);
 #else
        vbox_main = gtk_vbox_new(FALSE, 0);
@@ -903,11 +915,11 @@ void mapper_init(gint argc, gchar ** argv)
 
        _menu_bar = gtk_menu_bar_new();
        gtk_box_pack_start(GTK_BOX(vbox_main), _menu_bar, FALSE, FALSE, 0);
-
        gtk_box_pack_start(GTK_BOX(vbox_main), _toolbar, FALSE, FALSE, 0);
 
        hbox = gtk_hbox_new(FALSE, 0);
-       gtk_box_pack_start(GTK_BOX(vbox_main), hbox, TRUE, TRUE, 0);
+       gtk_notebook_append_page(notebook, hbox, label);
+       gtk_box_pack_start(GTK_BOX(vbox_main), notebook, TRUE, TRUE, 0);
 
        _status_bar = gtk_statusbar_new();
        gtk_box_pack_start(GTK_BOX(vbox_main), _status_bar, FALSE, FALSE, 0);