main_win.cc
branchgui
changeset 102 25a4698cbe0c
parent 100 ad84ee331106
child 103 3a263e57e1d9
     1.1 --- a/main_win.cc	Mon Dec 19 16:59:05 2005 +0000
     1.2 +++ b/main_win.cc	Tue Jan 03 14:56:45 2006 +0000
     1.3 @@ -72,20 +72,18 @@
     1.4    ag=Gtk::ActionGroup::create();
     1.5  
     1.6    ag->add( Gtk::Action::create("FileMenu", "_File") );
     1.7 -  ag->add( Gtk::Action::create("FileNewTab", "New _Tab"),
     1.8 +  ag->add( Gtk::Action::create("FileNew", Gtk::Stock::NEW),
     1.9        sigc::mem_fun(*this, &MainWin::newTab));
    1.10 -  ag->add( Gtk::Action::create("FileCloseTab", "_Close Tab"),
    1.11 -      sigc::mem_fun(*this, &MainWin::closeTab));
    1.12 -  ag->add( Gtk::Action::create("FileNew", Gtk::Stock::NEW),
    1.13 -      sigc::mem_fun(*this, &MainWin::newFile));
    1.14    ag->add( Gtk::Action::create("FileOpen", Gtk::Stock::OPEN),
    1.15        sigc::mem_fun(*this, &MainWin::openFile));
    1.16 +  ag->add( Gtk::Action::create("FileClearTab", "Clear Tab"),
    1.17 +      sigc::mem_fun(*this, &MainWin::newFile));
    1.18    ag->add( Gtk::Action::create("FileSave", Gtk::Stock::SAVE),
    1.19        sigc::mem_fun(*this, &MainWin::saveFile));
    1.20    ag->add( Gtk::Action::create("FileSaveAs", Gtk::Stock::SAVE_AS),
    1.21        sigc::mem_fun(*this, &MainWin::saveFileAs));
    1.22    ag->add( Gtk::Action::create("Close", Gtk::Stock::CLOSE),
    1.23 -      sigc::mem_fun(*this, &MainWin::close));
    1.24 +      sigc::mem_fun(*this, &MainWin::closeTab));
    1.25    ag->add( Gtk::Action::create("Quit", Gtk::Stock::QUIT),
    1.26        sigc::mem_fun(*this, &MainWin::hide));
    1.27  
    1.28 @@ -132,10 +130,9 @@
    1.29        "<ui>"
    1.30        "  <menubar name='MenuBar'>"
    1.31        "    <menu action='FileMenu'>"
    1.32 -      "      <menuitem action='FileNewTab'/>"
    1.33 -      "      <menuitem action='FileCloseTab'/>"
    1.34        "      <menuitem action='FileNew'/>"
    1.35        "      <menuitem action='FileOpen'/>"
    1.36 +      "      <menuitem action='FileClearTab'/>"
    1.37        "      <menuitem action='FileSave'/>"
    1.38        "      <menuitem action='FileSaveAs'/>"
    1.39        "      <menuitem action='Close'/>"
    1.40 @@ -237,6 +234,24 @@
    1.41  {
    1.42    if(active_tab!=-1)
    1.43      {
    1.44 +      if (tabs[active_tab]->mapstorage.modified)
    1.45 +	{
    1.46 +	  Gtk::MessageDialog mdialog("<b>Save changes before closing?</b>", true, 
    1.47 +				     Gtk::MESSAGE_WARNING, Gtk::BUTTONS_NONE);
    1.48 +	  mdialog.add_button("Close file _without Saving", Gtk::RESPONSE_REJECT);
    1.49 +	  mdialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
    1.50 +	  mdialog.add_button(Gtk::Stock::SAVE, Gtk::RESPONSE_ACCEPT);
    1.51 +	  switch (mdialog.run())
    1.52 +	    {
    1.53 +	    case Gtk::RESPONSE_CANCEL:
    1.54 +	      return;
    1.55 +	    case Gtk::RESPONSE_REJECT:
    1.56 +	      break;
    1.57 +	    case Gtk::RESPONSE_ACCEPT:
    1.58 +	      tabs[active_tab]->saveFile();
    1.59 +	      break;
    1.60 +	    }
    1.61 +	}
    1.62        //tabs vector will be decreased with the deleted value
    1.63        int size=tabs.size();
    1.64        if(size>1)