summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--navit/file.h1
-rw-r--r--navit/graphics.h1
-rw-r--r--navit/gui/gtk/gui_gtk_window.c4
-rw-r--r--navit/gui/internal/gui_internal.c55
-rw-r--r--navit/main.c7
-rw-r--r--navit/main.h2
-rw-r--r--navit/navit.c67
-rw-r--r--navit/navit.h3
-rw-r--r--navit/search.h2
-rw-r--r--navit/start.c2
10 files changed, 55 insertions, 89 deletions
diff --git a/navit/file.h b/navit/file.h
index 01c4c3fbd..5842b88a9 100644
--- a/navit/file.h
+++ b/navit/file.h
@@ -72,6 +72,7 @@ char **file_wordexp_get_array(struct file_wordexp *wexp);
void file_wordexp_destroy(struct file_wordexp *wexp);
int file_get_param(struct file *file, struct param_list *param, int count);
int file_version(struct file *file, int byname);
+void file_init(void);
/* end of prototypes */
#endif
diff --git a/navit/graphics.h b/navit/graphics.h
index ea1d2c16c..816212c6d 100644
--- a/navit/graphics.h
+++ b/navit/graphics.h
@@ -147,6 +147,7 @@ void graphics_draw_text(struct graphics *this_, struct graphics_gc *gc1, struct
void graphics_get_text_bbox(struct graphics *this_, struct graphics_font *font, char *text, int dx, int dy, struct point *ret);
void graphics_overlay_disable(struct graphics *this_, int disable);
void graphics_draw_image(struct graphics *this_, struct graphics_gc *gc, struct point *p, struct graphics_image *img);
+int graphics_draw_drag(struct graphics *this_, struct point *p);
void display_add(struct displaylist *displaylist, struct item *item, int count, struct point *pnt, char *label);
int graphics_ready(struct graphics *this_);
void graphics_displaylist_draw(struct graphics *gra, struct displaylist *displaylist, struct transformation *trans, struct layout *l, int callback);
diff --git a/navit/gui/gtk/gui_gtk_window.c b/navit/gui/gtk/gui_gtk_window.c
index 488c11a19..af995f391 100644
--- a/navit/gui/gtk/gui_gtk_window.c
+++ b/navit/gui/gtk/gui_gtk_window.c
@@ -472,7 +472,7 @@ gui_gtk_destinations_update(struct gui_priv *this)
static void
gui_gtk_destinations_init(struct gui_priv *this)
{
- navit_add_callback(this->nav, callback_new_attr_1(gui_gtk_destinations_update, attr_destination, this));
+ navit_add_callback(this->nav, callback_new_attr_1(callback_cast(gui_gtk_destinations_update), attr_destination, this));
gui_gtk_destinations_update(this);
}
@@ -551,7 +551,7 @@ gui_gtk_bookmarks_update(struct gui_priv *this)
static void
gui_gtk_bookmarks_init(struct gui_priv *this)
{
- navit_add_callback(this->nav, callback_new_attr_1(gui_gtk_bookmarks_update, attr_bookmark_map, this));
+ navit_add_callback(this->nav, callback_new_attr_1(callback_cast(gui_gtk_bookmarks_update), attr_bookmark_map, this));
gui_gtk_bookmarks_update(this);
}
diff --git a/navit/gui/internal/gui_internal.c b/navit/gui/internal/gui_internal.c
index b230175fa..8afb06117 100644
--- a/navit/gui/internal/gui_internal.c
+++ b/navit/gui/internal/gui_internal.c
@@ -615,11 +615,11 @@ gui_internal_button_navit_attr_new(struct gui_priv *this, char *text, enum flags
ret->on=*on;
if (off)
ret->off=*off;
- ret->get_attr=navit_get_attr;
- ret->set_attr=navit_set_attr;
- ret->remove_cb=navit_remove_callback;
+ ret->get_attr=(int (*)(void *, enum attr_type, struct attr *, struct attr_iter *))navit_get_attr;
+ ret->set_attr=(int (*)(void *, struct attr *))navit_set_attr;
+ ret->remove_cb=(void (*)(void *, struct callback *))navit_remove_callback;
ret->instance=this->nav;
- ret->cb=callback_new_attr_2(gui_internal_button_attr_callback, on->type, this, ret);
+ ret->cb=callback_new_attr_2(callback_cast(gui_internal_button_attr_callback), on->type, this, ret);
navit_add_callback(this->nav, ret->cb);
gui_internal_button_attr_update(this, ret);
return ret;
@@ -636,12 +636,12 @@ gui_internal_button_map_attr_new(struct gui_priv *this, char *text, enum flags f
if (off)
ret->off=*off;
ret->deflt=deflt;
- ret->get_attr=map_get_attr;
- ret->set_attr=map_set_attr;
- ret->remove_cb=map_remove_callback;
+ ret->get_attr=(int (*)(void *, enum attr_type, struct attr *, struct attr_iter *))map_get_attr;
+ ret->set_attr=(int (*)(void *, struct attr *))map_set_attr;
+ ret->remove_cb=(void (*)(void *, struct callback *))map_remove_callback;
ret->instance=map;
ret->redraw=1;
- ret->cb=callback_new_attr_2(gui_internal_button_attr_callback, on->type, this, ret);
+ ret->cb=callback_new_attr_2(callback_cast(gui_internal_button_attr_callback), on->type, this, ret);
map_add_callback(map, ret->cb);
gui_internal_button_attr_update(this, ret);
return ret;
@@ -1483,8 +1483,6 @@ gui_internal_cmd_pois_selector(struct gui_priv *this, struct pcoord *c)
static struct widget *
gui_internal_cmd_pois_item(struct gui_priv *this, struct coord *center, struct item *item, struct coord *c, int dist)
{
- char coordbuf[64];
- struct param_list param[5];
char distbuf[32];
char dirbuf[32];
char *type;
@@ -1513,8 +1511,8 @@ gui_internal_cmd_pois_item(struct gui_priv *this, struct coord *center, struct i
static gint
gui_internal_cmd_pois_sort_num(gconstpointer a, gconstpointer b, gpointer user_data)
{
- struct widget *wa=a;
- struct widget *wb=b;
+ const struct widget *wa=a;
+ const struct widget *wb=b;
struct widget *wac=wa->children->data;
struct widget *wbc=wb->children->data;
int ia,ib;
@@ -1640,7 +1638,6 @@ gui_internal_cmd_view_attributes(struct gui_priv *this, struct widget *wm)
static void
gui_internal_cmd_view_in_browser(struct gui_priv *this, struct widget *wm)
{
- struct widget *w,*wb;
struct map_rect *mr;
struct item *item;
struct attr attr;
@@ -1682,10 +1679,10 @@ gui_internal_cmd_position(struct gui_priv *this, struct widget *wm)
struct coord_geo g;
struct coord c;
char *coord,*name;
- int display_attributes=(wm->data == 2);
- int display_view_on_map=(wm->data != 1);
- int display_items=(wm->data == 1);
- int display_streets=(wm->data == 3);
+ int display_attributes=(wm->data == (void *)2);
+ int display_view_on_map=(wm->data != (void *)1);
+ int display_items=(wm->data == (void *)1);
+ int display_streets=(wm->data == (void *)3);
#if 0
switch ((int)wm->data) {
@@ -1956,7 +1953,7 @@ gui_internal_search_changed(struct gui_priv *this, struct widget *wm)
{
GList *l;
gui_internal_widget_children_destroy(this, this->list);
- char *text, *name;
+ char *text=NULL, *name=NULL;
dbg(0,"%s now '%s'\n", wm->name, wm->text);
if (wm->text && g_utf8_strlen(wm->text, -1) >= 2) {
struct attr search_attr;
@@ -2540,6 +2537,7 @@ gui_internal_cmd_menu(struct gui_priv *this, struct point *p, int ignore)
struct attr attr,attrp;
this->ignore_button=ignore;
+ this->clickp_valid=this->vehicle_valid=0;
navit_block(this->nav, 1);
graphics_overlay_disable(gra, 1);
@@ -2630,7 +2628,7 @@ static void gui_internal_resize(void *data, int w, int h)
struct gui_priv *this=data;
this->root.w=w;
this->root.h=h;
- dbg(0,"w=%d h=%d children=%p\n", w, h, this->root.children);
+ dbg(1,"w=%d h=%d children=%p\n", w, h, this->root.children);
navit_resize(this->nav, w, h);
if (this->root.children) {
gui_internal_prune_menu(this, NULL);
@@ -2773,6 +2771,9 @@ static void gui_internal_keypress(void *data, char *key)
case NAVIT_KEY_ZOOM_OUT:
navit_zoom_out(this->nav, 2, NULL);
break;
+ case NAVIT_KEY_RETURN:
+ gui_internal_cmd_menu(this, NULL, 0);
+ break;
}
return;
}
@@ -2828,13 +2829,13 @@ static int gui_internal_set_graphics(struct gui_priv *this, struct graphics *gra
this->gra=gra;
this->win=win;
transform_get_size(trans, &this->root.w, &this->root.h);
- this->resize_cb=callback_new_attr_1(gui_internal_resize, attr_resize, this);
+ this->resize_cb=callback_new_attr_1(callback_cast(gui_internal_resize), attr_resize, this);
graphics_add_callback(gra, this->resize_cb);
- this->button_cb=callback_new_attr_1(gui_internal_button, attr_button, this);
+ this->button_cb=callback_new_attr_1(callback_cast(gui_internal_button), attr_button, this);
graphics_add_callback(gra, this->button_cb);
- this->motion_cb=callback_new_attr_1(gui_internal_motion, attr_motion, this);
+ this->motion_cb=callback_new_attr_1(callback_cast(gui_internal_motion), attr_motion, this);
graphics_add_callback(gra, this->motion_cb);
- this->keypress_cb=callback_new_attr_1(gui_internal_keypress, attr_keypress, this);
+ this->keypress_cb=callback_new_attr_1(callback_cast(gui_internal_keypress), attr_keypress, this);
graphics_add_callback(gra, this->keypress_cb);
this->background=graphics_gc_new(gra);
graphics_gc_set_foreground(this->background, &cb);
@@ -2878,8 +2879,8 @@ static struct gui_priv * gui_internal_new(struct navit *nav, struct gui_methods
this->menu_on_map_click=attr->u.num;
else
this->menu_on_map_click=1;
- navit_command_register(nav,"gui_internal_menu",callback_new_3(gui_internal_cmd_menu,this,NULL,1));
- navit_command_register(nav,"gui_internal_fullscreen",callback_new_2(gui_internal_cmd_fullscreen,this,NULL));
+ navit_command_register(nav,"gui_internal_menu",callback_new_3(callback_cast(gui_internal_cmd_menu),this,NULL,(void *)1));
+ navit_command_register(nav,"gui_internal_fullscreen",callback_new_2(callback_cast(gui_internal_cmd_fullscreen),this,NULL));
if( (attr=attr_search(attrs,NULL,attr_font_size)))
{
@@ -3011,7 +3012,7 @@ void gui_internal_widget_table_add_row(struct widget * table, struct widget *
* @param flags Sizing flags for the row
* @returns The new table_row widget.
*/
-struct widget * gui_internal_widget_table_row_new(struct gui_priv * this, enum flags flags)
+static struct widget * gui_internal_widget_table_row_new(struct gui_priv * this, enum flags flags)
{
struct widget * widget = g_new0(struct widget,1);
widget->type=widget_table_row;
@@ -3109,7 +3110,6 @@ static GList * gui_internal_compute_table_dimensions(struct widget * w)
void gui_internal_table_pack(struct gui_priv * this, struct widget * w)
{
- struct widget * row_widget=NULL;
int height=0;
int width=0;
int count=0;
@@ -3180,7 +3180,6 @@ void gui_internal_table_render(struct gui_priv * this, struct widget * w)
GList * cur_row = NULL;
GList * current_desc=NULL;
struct table_data * table_data = (struct table_data*)w->data;
- int idx=0;
int is_skipped=0;
struct table_column_desc * dim=NULL;
diff --git a/navit/main.c b/navit/main.c
index db8805c12..83953b046 100644
--- a/navit/main.c
+++ b/navit/main.c
@@ -57,7 +57,7 @@ static void sigchld(int sig)
}
-gchar *get_home_directory(void)
+static gchar *get_home_directory(void)
{
static gchar *homedir = NULL;
@@ -127,13 +127,8 @@ main_remove_navit(struct navit *nav)
void
main_init(char *program)
{
- GError *error = NULL;
- char *config_file = NULL;
char *s;
int l;
- int opt;
- GList *list = NULL, *li;
-
#ifndef _WIN32
signal(SIGCHLD, sigchld);
diff --git a/navit/main.h b/navit/main.h
index 2cb27edd0..d51979c04 100644
--- a/navit/main.h
+++ b/navit/main.h
@@ -28,6 +28,8 @@ void main_iter_destroy(struct iter *iter);
struct navit * main_get_navit(struct iter *iter);
void main_add_navit(struct navit *nav);
void main_remove_navit(struct navit *nav);
+void main_init(char *program);
+void main_init_nls(void);
int main(int argc, char **argv);
/* end of prototypes */
diff --git a/navit/navit.c b/navit/navit.c
index 74ba7d477..2cbcbf339 100644
--- a/navit/navit.c
+++ b/navit/navit.c
@@ -53,6 +53,8 @@
#include "layout.h"
#include "log.h"
#include "attr.h"
+#include "event.h"
+#include "file.h"
#include "navit_nls.h"
/**
@@ -116,7 +118,7 @@ struct navit {
GHashTable *bookmarks_hash;
struct point pressed, last, current;
int button_pressed,moved,popped;
- struct event_timer *button_timeout, *motion_timeout;
+ struct event_timeout *button_timeout, *motion_timeout;
struct callback *motion_timeout_callback;
int ignore_button;
struct log *textfile_debug_log;
@@ -231,7 +233,7 @@ navit_popup(void *data)
}
-int
+void
navit_ignore_button(struct navit *this_)
{
this_->ignore_button=1;
@@ -242,7 +244,7 @@ navit_handle_button(struct navit *this_, int pressed, int button, struct point *
{
int border=16;
- callback_list_call_attr_4(this_->attr_cbl, attr_button, this_, pressed, button, p);
+ callback_list_call_attr_4(this_->attr_cbl, attr_button, this_, (void *)pressed, (void *)button, p);
if (this_->ignore_button) {
this_->ignore_button=0;
return 0;
@@ -300,7 +302,7 @@ navit_button(void *data, int pressed, int button, struct point *p)
{
struct navit *this=data;
if (! this->popup_callback)
- this->popup_callback=callback_new_1(navit_popup, this);
+ this->popup_callback=callback_new_1(callback_cast(navit_popup), this);
navit_handle_button(this, pressed, button, p, this->popup_callback);
}
@@ -482,8 +484,8 @@ navit_new(struct attr *parent, struct attr **attrs)
transform_setup(this_->trans, &center, zoom, 0);
this_->displaylist=graphics_displaylist_new();
this_->commands=g_hash_table_new(g_str_hash, g_str_equal);
- navit_command_register(this_, "zoom_in", callback_new_3(navit_zoom_in, this_, 2, NULL));
- navit_command_register(this_, "zoom_out", callback_new_3(navit_zoom_out, this_, 2, NULL));
+ navit_command_register(this_, "zoom_in", callback_new_3(callback_cast(navit_zoom_in), this_, (void *)2, NULL));
+ navit_command_register(this_, "zoom_out", callback_new_3(callback_cast(navit_zoom_out), this_, (void *)2, NULL));
return this_;
}
@@ -510,11 +512,11 @@ navit_set_graphics(struct navit *this_, struct graphics *gra)
if (this_->gra)
return 0;
this_->gra=gra;
- this_->resize_callback=callback_new_attr_1(navit_resize, attr_resize, this_);
+ this_->resize_callback=callback_new_attr_1(callback_cast(navit_resize), attr_resize, this_);
graphics_add_callback(gra, this_->resize_callback);
- this_->button_callback=callback_new_attr_1(navit_button, attr_button, this_);
+ this_->button_callback=callback_new_attr_1(callback_cast(navit_button), attr_button, this_);
graphics_add_callback(gra, this_->button_callback);
- this_->motion_callback=callback_new_attr_1(navit_motion, attr_motion, this_);
+ this_->motion_callback=callback_new_attr_1(callback_cast(navit_motion), attr_motion, this_);
graphics_add_callback(gra, this_->motion_callback);
return 1;
}
@@ -542,7 +544,7 @@ navit_projection_set(struct navit *this_, enum projection pro)
* @param limit Limits the number of entries in the "backlog". Set to 0 for "infinite"
*/
static void
-navit_append_coord(struct navit *this_, char *file, struct pcoord *c, char *type, char *description, GHashTable *h, int limit)
+navit_append_coord(struct navit *this_, char *file, struct pcoord *c, const char *type, const char *description, GHashTable *h, int limit)
{
FILE *f;
int offset=0;
@@ -551,7 +553,6 @@ navit_append_coord(struct navit *this_, char *file, struct pcoord *c, char *type
int numc,readc;
int fd;
const char *prostr;
- struct callback *cb;
f=fopen(file, "r");
if (!f)
@@ -623,41 +624,6 @@ new_file:
}
}
-static int
-parse_line(FILE *f, char *buffer, char **name, struct pcoord *c)
-{
- int pos;
- char *s,*i;
- struct coord co;
- char *cp;
- enum projection pro = projection_mg;
- *name=NULL;
- if (! fgets(buffer, 2048, f))
- return -3;
- cp = buffer;
- pos=coord_parse(cp, pro, &co);
- if (!pos)
- return -2;
- if (!cp[pos] || cp[pos] == '\n')
- return -1;
- cp[strlen(cp)-1]='\0';
- s=cp+pos+1;
- if (!strncmp(s,"type=", 5)) {
- i=strchr(s, '"');
- if (i) {
- s=i+1;
- i=strchr(s, '"');
- if (i)
- *i='\0';
- }
- }
- *name=s;
- c->x = co.x;
- c->y = co.y;
- c->pro = pro;
- return pos;
-}
-
/*
* navit_get_user_data_directory
*
@@ -673,8 +639,8 @@ navit_get_user_data_directory(gboolean create) {
if (create && !file_exists(dir)) {
dbg(0,"creating dir %s\n", dir);
if (file_mkdir(dir,0)) {
- perror(dir);
- return;
+ dbg(0,"failed creating dir %s\n", dir);
+ return NULL;
}
}
@@ -861,7 +827,7 @@ navit_former_destinations_active(struct navit *this_)
char buffer[3];
f=fopen(destination_file,"r");
if (f) {
- if(!fseek(f, -2, SEEK_END) && fread(buffer, 2, 1, f) == 1 && buffer[0]!='\n' || buffer[1]!='\n')
+ if(!fseek(f, -2, SEEK_END) && fread(buffer, 2, 1, f) == 1 && (buffer[0]!='\n' || buffer[1]!='\n'))
active=1;
fclose(f);
}
@@ -1833,7 +1799,7 @@ navit_block(struct navit *this_, int block)
{
if (block) {
this_->blocked |= 1;
- return;
+ return 0;
}
if (this_->blocked & 2) {
this_->blocked=0;
@@ -1872,6 +1838,7 @@ navit_command_call(struct navit *this_, char *command)
if (! cb)
return 1;
callback_call_1(cb, command);
+ return 0;
}
void
diff --git a/navit/navit.h b/navit/navit.h
index f99a82e04..a03a64a37 100644
--- a/navit/navit.h
+++ b/navit/navit.h
@@ -54,7 +54,7 @@ void navit_resize(void *data, int w, int h);
int navit_get_width(struct navit *this_);
int navit_check_route(struct navit *this_);
int navit_get_height(struct navit *this_);
-int navit_ignore_button(struct navit *this_);
+void navit_ignore_button(struct navit *this_);
int navit_handle_button(struct navit *this_, int pressed, int button, struct point *p, struct callback *popup_callback);
void navit_handle_motion(struct navit *this_, struct point *p);
void navit_zoom_in(struct navit *this_, int factor, struct point *p);
@@ -63,6 +63,7 @@ struct navit *navit_new(struct attr *parent, struct attr **attrs);
struct graphics *navit_get_graphics(struct navit *this_);
void navit_set_destination(struct navit *this_, struct pcoord *c, char *description);
void navit_add_bookmark(struct navit *this_, struct pcoord *c, const char *description);
+void navit_say(struct navit *this_, char *text);
void navit_speak(struct navit *this_);
void navit_window_roadbook_destroy(struct navit *this_);
void navit_window_roadbook_new(struct navit *this_);
diff --git a/navit/search.h b/navit/search.h
index 5e53cced1..29cf4b394 100644
--- a/navit/search.h
+++ b/navit/search.h
@@ -72,8 +72,10 @@ struct search_list;
struct search_list_result;
struct search_list *search_list_new(struct mapset *ms);
void search_list_search(struct search_list *this_, struct attr *search_attr, int partial);
+int search_list_select(struct search_list *this_, enum attr_type attr_type, int id, int mode);
struct search_list_result *search_list_get_result(struct search_list *this_);
void search_list_destroy(struct search_list *this_);
+void search_init(void);
/* end of prototypes */
#ifdef __cplusplus
}
diff --git a/navit/start.c b/navit/start.c
index 0a46edd09..f56754f7b 100644
--- a/navit/start.c
+++ b/navit/start.c
@@ -70,8 +70,6 @@ int main(int argc, char **argv)
{
GError *error = NULL;
char *config_file = NULL;
- char *s;
- int l;
int opt;
GList *list = NULL, *li;