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 101 by achadwick, Sat Feb 28 22:31:10 2009 UTC
# Line 1  Line 1 
1  /*  /*
2     * Copyright (C) 2008 Till Harbaum <till@harbaum.org>.
3     *
4   * This file is part of OSM2Go.   * This file is part of OSM2Go.
5   *   *
6   * OSM2Go is free software: you can redistribute it and/or modify   * OSM2Go is free software: you can redistribute it and/or modify
# Line 56  static void main_ui_enable(appdata_t *ap Line 58  static void main_ui_enable(appdata_t *ap
58    /* disable all menu entries related to map */    /* disable all menu entries related to map */
59    gtk_widget_set_sensitive(appdata->menu_osm, project_valid);    gtk_widget_set_sensitive(appdata->menu_osm, project_valid);
60    gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_upload, osm_valid);
61    gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid);    if(appdata->menu_item_osm_undo)
62        gtk_widget_set_sensitive(appdata->menu_item_osm_undo, osm_valid);
63    gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_save_changes, osm_valid);
64    gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid);    gtk_widget_set_sensitive(appdata->menu_item_osm_undo_changes, osm_valid);
65    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 270  cb_menu_undo_changes(GtkWidget *widget,
270    
271    if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0,    if(!yes_no_f(GTK_WIDGET(appdata->window), NULL, 0, 0,
272                 _("Discard local changes?"),                 _("Discard local changes?"),
273                 _("Throw away all the changes you've not uploaded yet? This can't be undone.")))                 _("Throw away all the changes you've not "
274                     "uploaded yet? This can't be undone.")))
275      return;      return;
276    
277    banner_busy_start(appdata, 1, _("Redrawing..."));    banner_busy_start(appdata, 1, _("Redrawing..."));
# Line 282  cb_menu_undo_changes(GtkWidget *widget, Line 286  cb_menu_undo_changes(GtkWidget *widget,
286  }  }
287    
288  static void  static void
289    cb_menu_osm_relations(GtkWidget *widget, gpointer data) {
290      relation_list((appdata_t*)data);
291    }
292    
293    static void
294  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {  cb_menu_fullscreen(GtkWidget *widget, gpointer data) {
295    appdata_t *appdata = (appdata_t *)data;    appdata_t *appdata = (appdata_t *)data;
296    
# Line 421  menu_append_new_item(appdata_t *appdata, Line 430  menu_append_new_item(appdata_t *appdata,
430                       GtkWidget *menu_shell,                       GtkWidget *menu_shell,
431                       GtkSignalFunc activate_cb,                       GtkSignalFunc activate_cb,
432                       char *label,                       char *label,
433                       const gchar *stock_id, // overridden by label, accels                       const gchar *icon_name, // stock id or name for icon_load
434                                        // overridden by label, accels, icon_name
435                       const gchar *accel_path,                       const gchar *accel_path,
436                       guint accel_key,      // from gdk/gdkkeysyms.h                       guint accel_key,      // from gdk/gdkkeysyms.h
437                       GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK                       GdkModifierType accel_mods, // e.g. GDK_CONTROL_MASK
438                       gboolean is_check, gboolean check_status)                       gboolean is_check, gboolean check_status)
439  {  {
440    GtkWidget *item = NULL;    GtkWidget *item = NULL;
441    GtkStockItem stock_item;    GtkWidget *image = NULL;
442    
443    gboolean stock_item_known = FALSE;    gboolean stock_item_known = FALSE;
444    if (stock_id != NULL) {    GtkStockItem stock_item;
445      stock_item_known = gtk_stock_lookup(stock_id, &stock_item);    if (icon_name != NULL) {
446        stock_item_known = gtk_stock_lookup(icon_name, &stock_item);
447    }    }
448    
449    // Icons    // Icons
# Line 439  menu_append_new_item(appdata_t *appdata, Line 451  menu_append_new_item(appdata_t *appdata,
451    item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)    item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)
452                    : gtk_menu_item_new_with_mnemonic       (label);                    : gtk_menu_item_new_with_mnemonic       (label);
453  #else  #else
454    if (is_check || !stock_item_known) {    if (is_check) {
455      item = is_check ? gtk_check_menu_item_new_with_mnemonic (label)      item = gtk_check_menu_item_new_with_mnemonic (label);
456                      : gtk_menu_item_new_with_mnemonic       (label);    }
457      else if (!stock_item_known) {
458        GdkPixbuf *pbuf = icon_load(&appdata->icon, icon_name);
459        if (pbuf) {
460          image = gtk_image_new_from_pixbuf(pbuf);
461        }
462        if (image) {
463          item = gtk_image_menu_item_new_with_mnemonic(label);
464          gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
465        }
466        else {
467          item = gtk_menu_item_new_with_mnemonic(label);
468        }
469    }    }
470    else {    else {
471      item = gtk_image_menu_item_new_with_mnemonic(label);      item = gtk_image_menu_item_new_with_mnemonic(label);
472      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);
473      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);
474    }    }
475  #endif  #endif
476    
# Line 512  void menu_create(appdata_t *appdata) { Line 536  void menu_create(appdata_t *appdata) {
536    
537    /* --------------- view menu ------------------- */    /* --------------- view menu ------------------- */
538    
539  #ifndef UISPECIFIC_MENU_IS_MENU_BAR  #ifndef UISPECIFIC_MAIN_MENU_IS_MENU_BAR
540    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());
541  #endif  #endif
542    
# Line 550  void menu_create(appdata_t *appdata) { Line 574  void menu_create(appdata_t *appdata) {
574    
575    appdata->menu_item_osm_upload = menu_append_new_item(    appdata->menu_item_osm_upload = menu_append_new_item(
576      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."),      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_upload), _("_Upload..."),
577      NULL, "<OSM2Go-Main>/OSM/Upload",      "upload.16", "<OSM2Go-Main>/OSM/Upload",
578      GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE      GDK_u, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
579    );    );
580    
581    menu_append_new_item(    menu_append_new_item(
582      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."),      appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_download), _("_Download..."),
583      NULL, "<OSM2Go-Main>/OSM/Download",      "download.16", "<OSM2Go-Main>/OSM/Download",
584      GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE      GDK_d, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
585    );    );
586    
# Line 583  void menu_create(appdata_t *appdata) { Line 607  void menu_create(appdata_t *appdata) {
607      0, 0, FALSE, FALSE      0, 0, FALSE, FALSE
608    );    );
609    
610      gtk_menu_shell_append(GTK_MENU_SHELL(submenu), gtk_separator_menu_item_new());
611      appdata->menu_item_osm_relations = menu_append_new_item(
612        appdata, submenu, GTK_SIGNAL_FUNC(cb_menu_osm_relations), _("_Relations..."),
613        NULL, "<OSM2Go-Main>/OSM/Relations",
614        GDK_r, GDK_SHIFT_MASK|GDK_CONTROL_MASK, FALSE, FALSE
615      );
616    
617    /* -------------------- wms submenu -------------------- */    /* -------------------- wms submenu -------------------- */
618    
619    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 839  void cleanup(appdata_t *appdata) {
839    
840    project_free(appdata->project);    project_free(appdata->project);
841    
842    undo_free(appdata->undo_state);    if(appdata->menu_item_osm_undo)
843        undo_free(appdata->undo.state);
844    
845    puts("everything is gone");    puts("everything is gone");
846  }  }

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