Diff of /trunk/src/main.c

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

revision 65 by achadwick, Mon Feb 9 13:42:19 2009 UTC revision 79 by achadwick, Sun Feb 15 22:15:06 2009 UTC
# Line 56  static void main_ui_enable(appdata_t *ap Line 56  static void main_ui_enable(appdata_t *ap
56    /* disable all menu entries related to map */    /* disable all menu entries related to map */
57    gtk_widget_set_sensitive(appdata->menu_osm, project_valid);    gtk_widget_set_sensitive(appdata->menu_osm, project_valid);
58    gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid);
59    gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid);    if(appdata->menu_item_osm_undo)
60        gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid);
61    gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid);
62    gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid);
63    gtk_widget_set_sensitive(appdata->track.menu_track, osm_valid);    gtk_widget_set_sensitive(appdata->track.menu_track, osm_valid);
# Line 267  cb_menu_undo_changes(GtkWidget *widget, Line 268  cb_menu_undo_changes(GtkWidget *widget,
268    
269    if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0,    if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0,
270                 _("Discard local changes?"),                 _("Discard local changes?"),
271                 _("Throw away all the changes you've not uploaded yet? This can't be undone.")))                 _("Throw away all the changes you've not "
272                     "uploaded yet? This can't be undone.")))
273      return;      return;
274    
275    banner_busy_start(appdata, 1, _("Redrawing..."));    banner_busy_start(appdata, 1, _("Redrawing..."));
# Line 282  cb_menu_undo_changes(GtkWidget *widget, Line 284  cb_menu_undo_changes(GtkWidget *widget,
284  }  }
285    
286  static void  static void
287    cb_menu_osm_relations(GtkWidget *widget, gpointer data) {
288      relation_list((appdata_t*)data);
289    }
290    
291    static void
292  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {
293    appdata_t *appdata = (appdata_t *)data;    appdata_t *appdata = (appdata_t *)data;
294    
# Line 421  menu_append_new_item(appdata_t *appdata, Line 428  menu_append_new_item(appdata_t *appdata,
428                       GtkWidget *menu_shell,                       GtkWidget *menu_shell,
429                       GtkSignalFunc activate_cb,                       GtkSignalFunc activate_cb,
430                       char *label,                       char *label,
431                       const gchar *stock_id, // overridden by label, accels                       const gchar *icon_name, // stock id or name for icon_load
432                                        // overridden by label, accels, icon_name
433                       const gchar *accel_path,                       const gchar *accel_path,
434                       guint accel_key,      // from gdk/gdkkeysyms.h                       guint accel_key,      // from gdk/gdkkeysyms.h
435                       GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK                       GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK
436                       gboolean is_check, gboolean check_status)                       gboolean is_check, gboolean check_status)
437  {  {
438    GtkWidget *item = NULL;    GtkWidget *item = NULL;
439    GtkStockItem stock_item;    GtkWidget *image = NULL;
440    
441    gboolean stock_item_known = FALSE;    gboolean stock_item_known = FALSE;
442    if (stock_id != NULL) {    GtkStockItem stock_item;
443      stock_item_known = gtk_stock_lookup(stock_id, &stock_item);    if (icon_name != NULL) {
444        stock_item_known = gtk_stock_lookup(icon_name, &stock_item);
445    }    }
446    
447    // Icons    // Icons
# Line 439  menu_append_new_item(appdata_t *appdata, Line 449  menu_append_new_item(appdata_t *appdata,
449    item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)    item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)
450                    : gtk_menu_item_new_with_mnemonic       (label);                    : gtk_menu_item_new_with_mnemonic       (label);
451  #else  #else
452    if (is_check || !stock_item_known) {    if (is_check) {
453      item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)      item = gtk_check_menu_item_new_with_mnemonic (label);
454                      : gtk_menu_item_new_with_mnemonic       (label);    }
455      else if (!stock_item_known) {
456        GdkPixbuf *pbuf = icon_load(&appdata->icon, icon_name);
457        if (pbuf) {
458          image = gtk_image_new_from_pixbuf(pbuf);
459        }
460        if (image) {
461          item = gtk_image_menu_item_new_with_mnemonic(label);
462          gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
463        }
464        else {
465          item = gtk_menu_item_new_with_mnemonic(label);
466        }
467    }    }
468    else {    else {
469      item = gtk_image_menu_item_new_with_mnemonic(label);      item = gtk_image_menu_item_new_with_mnemonic(label);
470      GtkWidget *stock_image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU);      image = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_MENU);
471      gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), stock_image);      gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
472    }    }
473  #endif  #endif
474    
# Line 512  void menu_create(appdata_t *appdata) { Line 534  void menu_create(appdata_t *appdata) {
534    
535    /* --------------- view menu ------------------- */    /* --------------- view menu ------------------- */
536    
537  #ifndef UISPECIFIC_MENU_IS_MENU_BAR  #ifndef UISPECIFIC_MAIN_MENU_IS_MENU_BAR
538    gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());    gtk_menu_shell_append(GTK_MENU_SHELL(menu), gtk_separator_menu_item_new());
539  #endif  #endif
540    
# Line 550  void menu_create(appdata_t *appdata) { Line 572  void menu_create(appdata_t *appdata) {
572    
573    appdata->menu_item_osm_upload = menu_append_new_item(    appdata->menu_item_osm_upload = menu_append_new_item(
574      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."),      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."),
575      NULL, "<OSM2Go-Main>/OSM/Upload",      "upload.16", "<OSM2Go-Main>/OSM/Upload",
576      GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE      GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
577    );    );
578    
579    menu_append_new_item(    menu_append_new_item(
580      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."),      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."),
581      NULL, "<OSM2Go-Main>/OSM/Download",      "download.16", "<OSM2Go-Main>/OSM/Download",
582      GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE      GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
583    );    );
584    
# Line 583  void menu_create(appdata_t *appdata) { Line 605  void menu_create(appdata_t *appdata) {
605      0, 0, FALSE, FALSE      0, 0, FALSE, FALSE
606    );    );
607    
608      gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
609      appdata->menu_item_osm_relations = menu_append_new_item(
610        appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_osm_relations), _("_Relations..."),
611        NULL, "<OSM2Go-Main>/OSM/Relations",
612        GDK_r, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
613      );
614    
615    /* -------------------- wms submenu -------------------- */    /* -------------------- wms submenu -------------------- */
616    
617    appdata->menu_wms = item = gtk_menu_item_new_with_mnemonic( _("_WMS") );    appdata->menu_wms = item = gtk_menu_item_new_with_mnemonic( _("_WMS") );
# Line 808  void cleanup(appdata_t *appdata) { Line 837  void cleanup(appdata_t *appdata) {
837    
838    project_free(appdata->project);    project_free(appdata->project);
839    
840    undo_free(appdata->undo_state);    if(appdata->menu_item_osm_undo)
841        undo_free(appdata->undo.state);
842    
843    puts("everything is gone");    puts("everything is gone");
844  }  }

Legend:
Removed from v.65  
changed lines
  Added in v.79