Diff of /trunk/src/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 15 by harbaum, Tue Dec 16 17:00:20 2008 UTC revision 24 by harbaum, Sun Dec 21 11:49:35 2008 UTC
# Line 19  Line 19 
19  #include <string.h>  #include <string.h>
20    
21  #include <curl/curl.h>  #include <curl/curl.h>
22    #include <gdk/gdkkeysyms.h>
23    
24  #include "appdata.h"  #include "appdata.h"
25    
# Line 75  static struct { Line 76  static struct {
76    char *title;    char *title;
77    GCallback c_handler;    GCallback c_handler;
78  } menu[] = {  } menu[] = {
79    { MENU_SUB, "OSM", NULL },    { MENU_SUB, "_OSM", NULL },
80    
81    { MENU_END,  NULL, NULL },    { MENU_END,  NULL, NULL },
82  };  };
83  #endif  #endif
# Line 237  cb_menu_map_no_icons(GtkWidget *widget, Line 238  cb_menu_map_no_icons(GtkWidget *widget,
238  }  }
239    
240  static void  static void
241    cb_menu_map_no_antialias(GtkWidget *widget, gpointer data) {
242      appdata_t *appdata = (appdata_t*)data;
243    
244      map_clear(appdata, MAP_LAYER_OBJECTS_ONLY);
245      appdata->settings->no_antialias =
246        gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget));
247      map_paint(appdata);
248    }
249    
250    static void
251  cb_menu_save_changes(GtkWidget *widget, gpointer data) {  cb_menu_save_changes(GtkWidget *widget, gpointer data) {
252    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
253    
# Line 265  cb_menu_undo_changes(GtkWidget *widget, Line 276  cb_menu_undo_changes(GtkWidget *widget,
276                             "so far have been reset"), FALSE);                             "so far have been reset"), FALSE);
277  }  }
278    
   
 #ifdef USE_HILDON  
279  static void  static void
280  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {
281    appdata_t *appdata = (appdata_t *)data;    appdata_t *appdata = (appdata_t *)data;
# Line 276  cb_menu_fullscreen(GtkWidget *widget, gp Line 285  cb_menu_fullscreen(GtkWidget *widget, gp
285    else    else
286      gtk_window_unfullscreen(GTK_WINDOW(appdata->window));      gtk_window_unfullscreen(GTK_WINDOW(appdata->window));
287  }  }
 #endif  
288    
289  static void  static void
290  cb_menu_zoomin(GtkWidget *widget, appdata_t *appdata) {  cb_menu_zoomin(GtkWidget *widget, appdata_t *appdata) {
# Line 401  void menu_create(appdata_t *appdata) { Line 409  void menu_create(appdata_t *appdata) {
409    submenu = gtk_menu_new();    submenu = gtk_menu_new();
410    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
411    
412  #ifdef USE_HILDON    appdata->menu_item_view_fullscreen =
   appdata->fullscreen_menu_item =  
413      item = gtk_check_menu_item_new_with_label( _("Fullscreen") );      item = gtk_check_menu_item_new_with_label( _("Fullscreen") );
414    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
415    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_fullscreen),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_fullscreen),
416                     appdata);                     appdata);
 #endif  
417    
418    item = gtk_menu_item_new_with_label( _("Zoom +" ));    item = gtk_menu_item_new_with_label( _("Zoom +" ));
419    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
# Line 498  void menu_create(appdata_t *appdata) { Line 504  void menu_create(appdata_t *appdata) {
504    
505    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
506    
   item = gtk_menu_item_new_with_label( _("Redraw") );  
   gtk_menu_append(GTK_MENU_SHELL(submenu), item);  
   g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_redraw), appdata);  
   
   gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());  
   
507    item = gtk_menu_item_new_with_label( _("Style...") );    item = gtk_menu_item_new_with_label( _("Style...") );
508    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_append(GTK_MENU_SHELL(submenu), item);
509    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_style), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_style), appdata);
510    
511    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
512    
513      /* switches mainly intended for testing/debugging */
514      item = gtk_menu_item_new_with_label( _("Redraw") );
515      gtk_menu_append(GTK_MENU_SHELL(submenu), item);
516      g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_redraw), appdata);
517    
518    appdata->menu_item_map_no_icons =    appdata->menu_item_map_no_icons =
519      item = gtk_check_menu_item_new_with_label( _("No Icons") );      item = gtk_check_menu_item_new_with_label( _("No Icons") );
520    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
# Line 518  void menu_create(appdata_t *appdata) { Line 523  void menu_create(appdata_t *appdata) {
523    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_no_icons),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_no_icons),
524                     appdata);                     appdata);
525    
526      appdata->menu_item_map_no_antialias =
527        item = gtk_check_menu_item_new_with_label( _("No Antialias") );
528      gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
529                                     appdata->settings->no_antialias);
530      gtk_menu_append(GTK_MENU_SHELL(submenu), item);
531      g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_no_antialias),
532                       appdata);
533    
534    /* -------------------- track submenu -------------------- */    /* -------------------- track submenu -------------------- */
535    
536    appdata->track.menu_track = item = gtk_menu_item_new_with_label(_("Track"));    appdata->track.menu_track = item = gtk_menu_item_new_with_label(_("Track"));
# Line 642  gboolean on_window_key_press(GtkWidget * Line 655  gboolean on_window_key_press(GtkWidget *
655    appdata_t *appdata = (appdata_t*)data;    appdata_t *appdata = (appdata_t*)data;
656    int handled = FALSE;    int handled = FALSE;
657    
   //  printf("key event %d\n", event->keyval);  
   
658    // the map handles some keys on its own ...    // the map handles some keys on its own ...
659    switch(event->keyval) {    switch(event->keyval) {
 #ifdef USE_HILDON  
660    
661  #if 0  #ifdef USE_HILDON
662    case HILDON_HARDKEY_SELECT:      /* this is in fact a mapping to GDK_F6 */
     handled = TRUE;  
     break;  
 #endif  
   
663    case HILDON_HARDKEY_FULLSCREEN:    case HILDON_HARDKEY_FULLSCREEN:
664      {  #else
665        gboolean fullscreen = !gtk_check_menu_item_get_active(    case GDK_F11:
666                 GTK_CHECK_MENU_ITEM(appdata->fullscreen_menu_item));  #endif
667        if(!gtk_check_menu_item_get_active(
668                 GTK_CHECK_MENU_ITEM(appdata->menu_item_view_fullscreen))) {
669          gtk_window_fullscreen(GTK_WINDOW(appdata->window));
670        gtk_check_menu_item_set_active(        gtk_check_menu_item_set_active(
671                 GTK_CHECK_MENU_ITEM(appdata->fullscreen_menu_item), fullscreen);               GTK_CHECK_MENU_ITEM(appdata->menu_item_view_fullscreen), TRUE);
672          } else {
       if(fullscreen)  
         gtk_window_fullscreen(GTK_WINDOW(appdata->window));  
       else  
673          gtk_window_unfullscreen(GTK_WINDOW(appdata->window));          gtk_window_unfullscreen(GTK_WINDOW(appdata->window));
674            gtk_check_menu_item_set_active(
675        handled = TRUE;               GTK_CHECK_MENU_ITEM(appdata->menu_item_view_fullscreen), FALSE);
676      }        }
677    
678        handled = TRUE;
679      break;      break;
 #endif  
680    }    }
681    
682    /* forward unprocessed key presses to map */    /* forward unprocessed key presses to map */
# Line 750  int main(int argc, char *argv[]) { Line 757  int main(int argc, char *argv[]) {
757  #ifdef PORTRAIT  #ifdef PORTRAIT
758    gtk_box_pack_start(GTK_BOX(vbox), iconbar_new(&appdata), FALSE, FALSE, 0);    gtk_box_pack_start(GTK_BOX(vbox), iconbar_new(&appdata), FALSE, FALSE, 0);
759  #endif  #endif
760    gtk_box_pack_start(GTK_BOX(vbox), map_new(&appdata), TRUE, TRUE, 0);  
761      /* generate main map view */
762      GtkWidget *map = map_new(&appdata);
763      if(!map) {
764        cleanup(&appdata);
765        return -1;
766      }
767    
768      gtk_box_pack_start(GTK_BOX(vbox), map, TRUE, TRUE, 0);
769    gtk_box_pack_start(GTK_BOX(vbox), statusbar_new(&appdata), FALSE, FALSE, 0);    gtk_box_pack_start(GTK_BOX(vbox), statusbar_new(&appdata), FALSE, FALSE, 0);
770    
771  #ifndef PORTRAIT  #ifndef PORTRAIT

Legend:
Removed from v.15  
changed lines
  Added in v.24