gui/main_win.cc
changeset 1837 8dd6160ff699
parent 1823 cb082cdf3667
child 1838 b61682f0ee96
     1.1 --- a/gui/main_win.cc	Tue Nov 29 08:43:50 2005 +0000
     1.2 +++ b/gui/main_win.cc	Tue Nov 29 19:31:58 2005 +0000
     1.3 @@ -1,14 +1,17 @@
     1.4  #include "main_win.h"
     1.5  #include "icons/guipixbufs.h"
     1.6  
     1.7 -MainWin::MainWin() :
     1.8 -  mapwin("Map Setup", mapstorage, gd_canvas),
     1.9 -  gd_canvas(mapstorage, mapwin, (Gtk::Window *)this)
    1.10 +MainWin::MainWin()
    1.11  {
    1.12 +  mapwin=new MapWin("Map Setup", mapstorage.getEdgeMapList(), mapstorage.getNodeMapList(), *this);
    1.13 +  gd_canvas=new GraphDisplayerCanvas(*this);
    1.14 +
    1.15    set_title ("unsaved file - " + prog_name);
    1.16    set_default_size(WIN_WIDTH,WIN_HEIGHT);
    1.17    add(vbox);
    1.18  
    1.19 +  //connecting signals - controller character
    1.20 +  mapstorage.signal_prop_ch().connect(sigc::mem_fun(*gd_canvas, &GraphDisplayerCanvas::propertyChange));
    1.21  
    1.22    // custom icons for the toolbar
    1.23  
    1.24 @@ -92,35 +95,35 @@
    1.25  
    1.26    ag->add( Gtk::Action::create("ViewMenu", "_View") );
    1.27    ag->add( Gtk::Action::create("ViewZoomIn", Gtk::Stock::ZOOM_IN),
    1.28 -      sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomIn));
    1.29 +      sigc::mem_fun(*(this->gd_canvas), &GraphDisplayerCanvas::zoomIn));
    1.30    ag->add( Gtk::Action::create("ViewZoomOut", Gtk::Stock::ZOOM_OUT),
    1.31 -      sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomOut));
    1.32 +      sigc::mem_fun(*(this->gd_canvas), &GraphDisplayerCanvas::zoomOut));
    1.33    ag->add( Gtk::Action::create("ViewZoomFit", Gtk::Stock::ZOOM_FIT),
    1.34 -      sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomFit));
    1.35 +      sigc::mem_fun(*(this->gd_canvas), &GraphDisplayerCanvas::zoomFit));
    1.36    ag->add( Gtk::Action::create("ViewZoom100", Gtk::Stock::ZOOM_100),
    1.37 -      sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoom100));
    1.38 +      sigc::mem_fun(*(this->gd_canvas), &GraphDisplayerCanvas::zoom100));
    1.39    
    1.40    ag->add( Gtk::Action::create("ShowMenu", "_Show") );
    1.41    ag->add( Gtk::Action::create("ShowMaps", "_Maps"),
    1.42 -      sigc::mem_fun(this->mapwin, &MapWin::show));
    1.43 +      sigc::mem_fun(*(this->mapwin), &MapWin::show));
    1.44  
    1.45    Gtk::RadioAction::Group tool_group;
    1.46    ag->add( Gtk::RadioAction::create(tool_group, "MoveItem", Gtk::StockID("gd-move"), "Move"),
    1.47 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 0) );
    1.48 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 0) );
    1.49    ag->add( Gtk::RadioAction::create(tool_group, "CreateNode", Gtk::StockID("gd-addnode"), "Create node"),
    1.50 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 1) );
    1.51 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 1) );
    1.52    ag->add( Gtk::RadioAction::create(tool_group, "CreateEdge", Gtk::StockID("gd-addlink"), "Create edge"),
    1.53 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 2) );
    1.54 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 2) );
    1.55    ag->add( Gtk::RadioAction::create(tool_group, "EraseItem", Gtk::StockID("gd-delete"), "Delete"),
    1.56 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 3) );
    1.57 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 3) );
    1.58  
    1.59    ag->add( Gtk::RadioAction::create(tool_group, "EditEdgeMap", Gtk::StockID("gd-editlink"), "Edit edge map"),
    1.60 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 4) );
    1.61 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 4) );
    1.62    ag->add( Gtk::RadioAction::create(tool_group, "EditNodeMap", Gtk::StockID("gd-editnode"), "Edit node map"),
    1.63 -      sigc::bind( sigc::mem_fun ( this->gd_canvas, &GraphDisplayerCanvas::changeEditorialTool ), 5) );
    1.64 +      sigc::bind( sigc::mem_fun ( *(this->gd_canvas), &GraphDisplayerCanvas::changeEditorialTool ), 5) );
    1.65  
    1.66    ag->add( Gtk::Action::create("AddMap", Gtk::StockID("gd-newmap")),
    1.67 -      sigc::mem_fun (new NewMapWin("NewMapWin", gd_canvas), &NewMapWin::show ) );
    1.68 +      sigc::mem_fun (new NewMapWin("NewMapWin", *this), &NewMapWin::show ) );
    1.69  
    1.70    uim=Gtk::UIManager::create();
    1.71    uim->insert_action_group(ag);
    1.72 @@ -194,7 +197,7 @@
    1.73  
    1.74    Gtk::ScrolledWindow* pScrolledWindow = manage(new Gtk::ScrolledWindow());
    1.75    pScrolledWindow->set_shadow_type(Gtk::SHADOW_IN);
    1.76 -  pScrolledWindow->add(gd_canvas);
    1.77 +  pScrolledWindow->add(*gd_canvas);
    1.78    vbox.pack_start(*pScrolledWindow);
    1.79  
    1.80    tooltips.set_tip(*(uim->get_widget("/ToolBar/CreateNode")),"Create Node");
    1.81 @@ -208,8 +211,8 @@
    1.82    mapstorage.readFromFile(file);
    1.83    mapstorage.file_name = file;
    1.84    mapstorage.modified = false;
    1.85 -  gd_canvas.drawGraph();
    1.86 -  mapwin.update();
    1.87 +  gd_canvas->drawGraph();
    1.88 +  mapwin->update(mapstorage.getEdgeMapList(), mapstorage.getNodeMapList());
    1.89    set_title(Glib::filename_display_basename(file) + " - " + prog_name);
    1.90  }
    1.91  
    1.92 @@ -233,9 +236,9 @@
    1.93          break;
    1.94      }
    1.95    }
    1.96 -  gd_canvas.clear();
    1.97 +  gd_canvas->clear();
    1.98    mapstorage.clear();
    1.99 -  mapwin.update();
   1.100 +  mapwin->update(mapstorage.getEdgeMapList(), mapstorage.getNodeMapList());
   1.101    set_title("unsaved file - " + prog_name);
   1.102  }
   1.103  
   1.104 @@ -264,15 +267,15 @@
   1.105    fcdialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_ACCEPT);
   1.106    if (fcdialog.run() == Gtk::RESPONSE_ACCEPT)
   1.107    {
   1.108 -    gd_canvas.clear();
   1.109 +    gd_canvas->clear();
   1.110      mapstorage.clear();
   1.111      Glib::ustring filename = fcdialog.get_filename();
   1.112      if (!mapstorage.readFromFile(filename))
   1.113      {
   1.114        mapstorage.file_name = filename;
   1.115        mapstorage.modified = false;
   1.116 -      gd_canvas.drawGraph();
   1.117 -      mapwin.update();
   1.118 +      gd_canvas->drawGraph();
   1.119 +      mapwin->update(mapstorage.getEdgeMapList(), mapstorage.getNodeMapList());
   1.120        set_title(Glib::filename_display_basename(filename) + " - " + prog_name);
   1.121      }
   1.122    }
   1.123 @@ -327,8 +330,39 @@
   1.124          break;
   1.125      }
   1.126    }
   1.127 -  gd_canvas.clear();
   1.128 +  gd_canvas->clear();
   1.129    mapstorage.clear();
   1.130 -  mapwin.update();
   1.131 +  mapwin->update(mapstorage.getEdgeMapList(), mapstorage.getNodeMapList());
   1.132    set_title("unsaved file - " + prog_name);
   1.133  }
   1.134 +
   1.135 +void MainWin::propertyChange(bool itisedge, int prop, std::string mapname)
   1.136 +{
   1.137 +  mapstorage.changeActiveMap(itisedge, prop, mapname);
   1.138 +}
   1.139 +
   1.140 +void MainWin::popupNewMapWin(bool itisedge, int prop)
   1.141 +{
   1.142 +  prop=prop;
   1.143 +  (new NewMapWin("NewMapWin", *this, itisedge, false))->run();
   1.144 +}
   1.145 +
   1.146 +std::string MainWin::getActiveEdgeMap(int prop)
   1.147 +{
   1.148 +  return mapstorage.getActiveEdgeMap(prop);
   1.149 +}
   1.150 +
   1.151 +std::string MainWin::getActiveNodeMap(int prop)
   1.152 +{
   1.153 +  return mapstorage.getActiveNodeMap(prop);
   1.154 +}
   1.155 +
   1.156 +void MainWin::registerNewEdgeMap(std::string mapname)
   1.157 +{
   1.158 +  mapwin->registerNewEdgeMap(mapname);
   1.159 +}
   1.160 +
   1.161 +void MainWin::registerNewNodeMap(std::string mapname)
   1.162 +{
   1.163 +  mapwin->registerNewNodeMap(mapname);
   1.164 +}