Diff of /trunk/src/main.c

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

revision 36 by achadwick, Wed Dec 31 18:07:27 2008 UTC revision 37 by achadwick, Wed Dec 31 19:40:10 2008 UTC
# Line 384  cb_menu_track_clear(GtkWidget *window, g Line 384  cb_menu_track_clear(GtkWidget *window, g
384    track_do(appdata, TRACK_NONE, NULL);    track_do(appdata, TRACK_NONE, NULL);
385  }  }
386    
387    #ifndef USE_HILDON
388    #ifdef PORTRAIT
389    #define MAIN_MENU_NEW gtk_menu_new
390    #else
391    #define MAIN_MENU_NEW gtk_menu_bar_new
392    #define MAIN_MENU_IS_MENU_BAR
393    #endif //PORTRAIT
394    #else //USE_HILDON
395    #define MAIN_MENU_NEW gtk_menu_new
396    #endif
397    
398  void menu_create(appdata_t *appdata) {  void menu_create(appdata_t *appdata) {
399    GtkWidget *menu, *item, *submenu;    GtkWidget *menu, *item, *submenu;
400    menu = gtk_menu_new();    GtkWidget *about_quit_items_menu;
401      menu = MAIN_MENU_NEW();
402      about_quit_items_menu = menu;
403    
404    /* -------------------- Project submenu -------------------- */    /* -------------------- Project submenu -------------------- */
405    
406    item = gtk_menu_item_new_with_label( _("Project") );    item = gtk_menu_item_new_with_label( _("Project") );
407    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
408    submenu = gtk_menu_new();    submenu = gtk_menu_new();
409    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
410    #ifdef MAIN_MENU_IS_MENU_BAR
411      about_quit_items_menu = submenu;
412    #endif
413    
414    item = gtk_menu_item_new_with_label( _("Open...") );    item = gtk_menu_item_new_with_label( _("Open...") );
415    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
416    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_project_open),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_project_open),
417                     appdata);                     appdata);
418    
419    appdata->menu_item_project_close = item =    appdata->menu_item_project_close = item =
420      gtk_menu_item_new_with_label( _("Close") );      gtk_menu_item_new_with_label( _("Close") );
421    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
422    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_project_close),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_project_close),
423                     appdata);                     appdata);
424    
425    /* --------------- view menu ------------------- */    /* --------------- view menu ------------------- */
426    
427    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());  #ifndef MAIN_MENU_IS_MENU_BAR
428      gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());
429    #endif
430    
431    appdata->menu_view = item =    appdata->menu_view = item =
432      gtk_menu_item_new_with_label( _("View") );      gtk_menu_item_new_with_label( _("View") );
433    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
434    submenu = gtk_menu_new();    submenu = gtk_menu_new();
435    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
436    
437    appdata->menu_item_view_fullscreen =    appdata->menu_item_view_fullscreen =
438      item = gtk_check_menu_item_new_with_label( _("Fullscreen") );      item = gtk_check_menu_item_new_with_label( _("Fullscreen") );
439    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
440    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_fullscreen),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_fullscreen),
441                     appdata);                     appdata);
442    
443    item = gtk_menu_item_new_with_label( _("Zoom +" ));    item = gtk_menu_item_new_with_label( _("Zoom +" ));
444    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
445    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_zoomin), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_zoomin), appdata);
446    
447    item = gtk_menu_item_new_with_label( _("Zoom -") );    item = gtk_menu_item_new_with_label( _("Zoom -") );
448    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
449    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
450                     GTK_SIGNAL_FUNC(cb_menu_zoomout), appdata);                     GTK_SIGNAL_FUNC(cb_menu_zoomout), appdata);
451    
452    /* -------------------- OSM submenu -------------------- */    /* -------------------- OSM submenu -------------------- */
453    
454    appdata->menu_osm = item = gtk_menu_item_new_with_label( _("OSM") );    appdata->menu_osm = item = gtk_menu_item_new_with_label( _("OSM") );
455    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
456    submenu = gtk_menu_new();    submenu = gtk_menu_new();
457    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
458    
459    appdata->menu_item_osm_upload = item =    appdata->menu_item_osm_upload = item =
460      gtk_menu_item_new_with_label( _("Upload...") );      gtk_menu_item_new_with_label( _("Upload...") );
461    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
462    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_upload), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_upload), appdata);
463    
464    item = gtk_menu_item_new_with_label( _("Download...") );    item = gtk_menu_item_new_with_label( _("Download...") );
465    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
466    g_signal_connect(item, "activate",    g_signal_connect(item, "activate",
467                     GTK_SIGNAL_FUNC(cb_menu_download), appdata);                     GTK_SIGNAL_FUNC(cb_menu_download), appdata);
468    
469    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
470    
471    appdata->menu_item_osm_diff = item =    appdata->menu_item_osm_diff = item =
472      gtk_menu_item_new_with_label( _("Save local changes") );      gtk_menu_item_new_with_label( _("Save local changes") );
473    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
474    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_save_changes),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_save_changes),
475                     appdata);                     appdata);
476    
477    appdata->menu_item_osm_undo_changes = item =    appdata->menu_item_osm_undo_changes = item =
478      gtk_menu_item_new_with_label( _("Discard local changes...") );      gtk_menu_item_new_with_label( _("Discard local changes...") );
479    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
480    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_undo_changes),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_undo_changes),
481                     appdata);                     appdata);
482    
483    /* -------------------- wms submenu -------------------- */    /* -------------------- wms submenu -------------------- */
484    
485    appdata->menu_wms = item = gtk_menu_item_new_with_label( _("WMS") );    appdata->menu_wms = item = gtk_menu_item_new_with_label( _("WMS") );
486    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
487    submenu = gtk_menu_new();    submenu = gtk_menu_new();
488    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
489    
490    item = gtk_menu_item_new_with_label( _("Import...") );    item = gtk_menu_item_new_with_label( _("Import...") );
491    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
492    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_import),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_import),
493                     appdata);                     appdata);
494    
495    appdata->menu_item_wms_clear = item =    appdata->menu_item_wms_clear = item =
496      gtk_menu_item_new_with_label( _("Clear") );      gtk_menu_item_new_with_label( _("Clear") );
497    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
498    gtk_widget_set_sensitive(item, FALSE);    gtk_widget_set_sensitive(item, FALSE);
499    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_clear),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_clear),
500                     appdata);                     appdata);
501    
502    appdata->menu_item_wms_adjust = item =    appdata->menu_item_wms_adjust = item =
503      gtk_menu_item_new_with_label( _("Adjust") );      gtk_menu_item_new_with_label( _("Adjust") );
504    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
505    gtk_widget_set_sensitive(item, FALSE);    gtk_widget_set_sensitive(item, FALSE);
506    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_adjust),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_wms_adjust),
507                     appdata);                     appdata);
# Line 492  void menu_create(appdata_t *appdata) { Line 509  void menu_create(appdata_t *appdata) {
509    /* -------------------- map submenu -------------------- */    /* -------------------- map submenu -------------------- */
510    
511    appdata->menu_map = item = gtk_menu_item_new_with_label( _("Map") );    appdata->menu_map = item = gtk_menu_item_new_with_label( _("Map") );
512    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
513    submenu = gtk_menu_new();    submenu = gtk_menu_new();
514    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
515    
516    appdata->menu_item_map_hide_sel = item =    appdata->menu_item_map_hide_sel = item =
517      gtk_menu_item_new_with_label( _("Hide selected") );      gtk_menu_item_new_with_label( _("Hide selected") );
518    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
519    gtk_widget_set_sensitive(item, FALSE);    gtk_widget_set_sensitive(item, FALSE);
520    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_hide_sel),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_hide_sel),
521                     appdata);                     appdata);
522    
523    appdata->menu_item_map_show_all = item =    appdata->menu_item_map_show_all = item =
524      gtk_menu_item_new_with_label( _("Show all") );      gtk_menu_item_new_with_label( _("Show all") );
525    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
526    gtk_widget_set_sensitive(item, FALSE);    gtk_widget_set_sensitive(item, FALSE);
527    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_show_all),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_show_all),
528                     appdata);                     appdata);
529    
530    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
531    
532    item = gtk_menu_item_new_with_label( _("Style...") );    item = gtk_menu_item_new_with_label( _("Style...") );
533    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
534    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_style), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_style), appdata);
535    
536    gtk_menu_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
537    
538    /* switches mainly intended for testing/debugging */    /* switches mainly intended for testing/debugging */
539    item = gtk_menu_item_new_with_label( _("Redraw") );    item = gtk_menu_item_new_with_label( _("Redraw") );
540    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
541    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_redraw), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_redraw), appdata);
542    
543    appdata->menu_item_map_no_icons =    appdata->menu_item_map_no_icons =
544      item = gtk_check_menu_item_new_with_label( _("No Icons") );      item = gtk_check_menu_item_new_with_label( _("No Icons") );
545    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
546                                   appdata->settings->no_icons);                                   appdata->settings->no_icons);
547    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
548    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),
549                     appdata);                     appdata);
550    
# Line 535  void menu_create(appdata_t *appdata) { Line 552  void menu_create(appdata_t *appdata) {
552      item = gtk_check_menu_item_new_with_label( _("No Antialias") );      item = gtk_check_menu_item_new_with_label( _("No Antialias") );
553    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item),
554                                   appdata->settings->no_antialias);                                   appdata->settings->no_antialias);
555    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
556    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_no_antialias),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_map_no_antialias),
557                     appdata);                     appdata);
558    
559    /* -------------------- track submenu -------------------- */    /* -------------------- track submenu -------------------- */
560    
561    appdata->track.menu_track = item = gtk_menu_item_new_with_label(_("Track"));    appdata->track.menu_track = item = gtk_menu_item_new_with_label(_("Track"));
562    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
563    submenu = gtk_menu_new();    submenu = gtk_menu_new();
564    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), submenu);
565    
566    appdata->track.menu_item_import =    appdata->track.menu_item_import =
567      item = gtk_menu_item_new_with_label( _("Import...") );      item = gtk_menu_item_new_with_label( _("Import...") );
568    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
569    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_import),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_import),
570                     appdata);                     appdata);
571    
572    appdata->track.menu_item_export =    appdata->track.menu_item_export =
573      item = gtk_menu_item_new_with_label( _("Export...") );      item = gtk_menu_item_new_with_label( _("Export...") );
574    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
575    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_export),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_export),
576                     appdata);                     appdata);
577    
578    appdata->track.menu_item_clear =    appdata->track.menu_item_clear =
579      item = gtk_menu_item_new_with_label( _("Clear") );      item = gtk_menu_item_new_with_label( _("Clear") );
580    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
581    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_clear),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_clear),
582                     appdata);                     appdata);
583    
584    appdata->track.menu_item_gps =    appdata->track.menu_item_gps =
585      item = gtk_check_menu_item_new_with_label( _("GPS") );      item = gtk_check_menu_item_new_with_label( _("GPS") );
586    gtk_menu_append(GTK_MENU_SHELL(submenu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(submenu), item);
587    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_gps),    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_track_gps),
588                     appdata);                     appdata);
589    
590    /* ------------------------------------------------------- */    /* ------------------------------------------------------- */
591    
592    gtk_menu_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());    gtk_menu_shell_append(GTK_MENU_SHELL(about_quit_items_menu),
593                            gtk_separator_menu_item_new());
594    
595    item = gtk_menu_item_new_with_label( _("About...") );    item = gtk_menu_item_new_with_label( _("About...") );
596    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(about_quit_items_menu), item);
597    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_about), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_about), appdata);
598    
   
599    item = gtk_menu_item_new_with_label( _("Quit") );    item = gtk_menu_item_new_with_label( _("Quit") );
600    gtk_menu_append(GTK_MENU_SHELL(menu), item);    gtk_menu_shell_append(GTK_MENU_SHELL(about_quit_items_menu), item);
601    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_quit), appdata);    g_signal_connect(item, "activate", GTK_SIGNAL_FUNC(cb_menu_quit), appdata);
602    
603  #ifdef USE_HILDON  #ifdef USE_HILDON
604    hildon_window_set_menu(appdata->window, GTK_MENU(menu));    hildon_window_set_menu(appdata->window, GTK_MENU(menu));
605  #else  #else
606    /* attach ordinary gtk menu */    GtkWidget *menu_bar = menu;
607    GtkWidget *menu_bar = gtk_menu_bar_new();  
608    #ifndef MAIN_MENU_IS_MENU_BAR
609      // we need to make one first
610      menu_bar = gtk_menu_bar_new();
611    
612    GtkWidget *root_menu = gtk_menu_item_new_with_label (_("Menu"));    GtkWidget *root_menu = gtk_menu_item_new_with_label (_("Menu"));
613    gtk_widget_show(root_menu);    gtk_widget_show(root_menu);
# Line 597  void menu_create(appdata_t *appdata) { Line 616  void menu_create(appdata_t *appdata) {
616    gtk_menu_item_set_submenu(GTK_MENU_ITEM (root_menu), menu);    gtk_menu_item_set_submenu(GTK_MENU_ITEM (root_menu), menu);
617    
618    gtk_widget_show(menu_bar);    gtk_widget_show(menu_bar);
619    #endif //MAIN_MENU_IS_MENU_BAR
620    
621    gtk_box_pack_start(GTK_BOX(appdata->vbox), menu_bar, 0, 0, 0);    gtk_box_pack_start(GTK_BOX(appdata->vbox), menu_bar, 0, 0, 0);
622  #endif  
623    #endif //USE_HILDON
624  }  }
625    
626  /********************* end of menu **********************/  /********************* end of menu **********************/

Legend:
Removed from v.36  
changed lines
  Added in v.37