1.1 --- a/main_win.cc Wed Nov 23 16:24:59 2005 +0000
1.2 +++ b/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 +}