1 #include <main_win.h> |
1 #include <main_win.h> |
2 |
2 |
3 MainWin::MainWin(const std::string& title, Graph & graph, CoordinatesMap & cm, MapStorage & ms):mapwin("Map Setup", ms, gd_canvas),gd_canvas(graph, cm, ms) |
3 MainWin::MainWin(const std::string& title, Graph & graph, CoordinatesMap & cm, |
|
4 MapStorage & ms):mapwin("Map Setup", ms, gd_canvas),gd_canvas(graph, cm, ms) |
4 { |
5 { |
5 set_title (title); |
6 set_title (title); |
6 set_default_size(WIN_WIDTH,WIN_HEIGHT); |
7 set_default_size(WIN_WIDTH,WIN_HEIGHT); |
7 add(vbox); |
8 add(vbox); |
8 |
9 |
9 ag=Gtk::ActionGroup::create(); |
10 ag=Gtk::ActionGroup::create(); |
|
11 |
|
12 ag->add( Gtk::Action::create("FileMenu", "_File") ); |
|
13 ag->add( Gtk::Action::create("FileNew", Gtk::Stock::NEW), |
|
14 sigc::mem_fun(*this, &MainWin::newFile)); |
|
15 ag->add( Gtk::Action::create("FileOpen", Gtk::Stock::OPEN), |
|
16 sigc::mem_fun(*this, &MainWin::openFile)); |
|
17 ag->add( Gtk::Action::create("FileSave", Gtk::Stock::SAVE), |
|
18 sigc::mem_fun(*this, &MainWin::saveFile)); |
|
19 ag->add( Gtk::Action::create("FileSaveAs", Gtk::Stock::SAVE_AS), |
|
20 sigc::mem_fun(*this, &MainWin::saveFileAs)); |
|
21 ag->add( Gtk::Action::create("FileQuit", Gtk::Stock::QUIT), |
|
22 sigc::mem_fun(*this, &MainWin::quit)); |
|
23 |
|
24 ag->add( Gtk::Action::create("ViewMenu", "_View") ); |
|
25 ag->add( Gtk::Action::create("ViewZoomIn", Gtk::Stock::ZOOM_IN), |
|
26 sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomIn)); |
|
27 ag->add( Gtk::Action::create("ViewZoomOut", Gtk::Stock::ZOOM_OUT), |
|
28 sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomOut)); |
|
29 ag->add( Gtk::Action::create("ViewZoomFit", Gtk::Stock::ZOOM_FIT), |
|
30 sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoomFit)); |
|
31 ag->add( Gtk::Action::create("ViewZoom100", Gtk::Stock::ZOOM_100), |
|
32 sigc::mem_fun(this->gd_canvas, &GraphDisplayerCanvas::zoom100)); |
|
33 |
10 ag->add( Gtk::Action::create("ShowMenu", "_Show") ); |
34 ag->add( Gtk::Action::create("ShowMenu", "_Show") ); |
11 ag->add( Gtk::Action::create("ShowMaps", "_Maps"), sigc::mem_fun(*this, &MainWin::showMaps)); |
35 ag->add( Gtk::Action::create("ShowMaps", "_Maps"), |
12 ag->add( Gtk::Action::create("FileMenu", "_File") ); |
36 sigc::mem_fun(*this, &MainWin::showMaps)); |
13 ag->add( Gtk::Action::create("FileQuit", "_Quit"), sigc::mem_fun(*this, &MainWin::quit)); |
|
14 ag->add( Gtk::Action::create("ZoomMenu", "_Zoom") ); |
|
15 ag->add( Gtk::Action::create("ZoomRezoom", "_Rezoom"), sigc::mem_fun(*this, &MainWin::rezoom)); //!!!!!! |
|
16 |
37 |
17 uim=Gtk::UIManager::create(); |
38 uim=Gtk::UIManager::create(); |
18 uim->insert_action_group(ag); |
39 uim->insert_action_group(ag); |
19 add_accel_group(uim->get_accel_group()); |
40 add_accel_group(uim->get_accel_group()); |
20 |
41 |
23 |
44 |
24 Glib::ustring ui_info = |
45 Glib::ustring ui_info = |
25 "<ui>" |
46 "<ui>" |
26 " <menubar name='MenuBar'>" |
47 " <menubar name='MenuBar'>" |
27 " <menu action='FileMenu'>" |
48 " <menu action='FileMenu'>" |
|
49 " <menuitem action='FileNew'/>" |
|
50 " <menuitem action='FileOpen'/>" |
|
51 " <menuitem action='FileSave'/>" |
|
52 " <menuitem action='FileSaveAs'/>" |
28 " <menuitem action='FileQuit'/>" |
53 " <menuitem action='FileQuit'/>" |
|
54 " </menu>" |
|
55 " <menu action='ViewMenu'>" |
|
56 " <menuitem action='ViewZoomIn' />" |
|
57 " <menuitem action='ViewZoomOut' />" |
|
58 " <menuitem action='ViewZoomFit' />" |
|
59 " <menuitem action='ViewZoom100' />" |
29 " </menu>" |
60 " </menu>" |
30 " <menu action='ShowMenu'>" |
61 " <menu action='ShowMenu'>" |
31 " <menuitem action='ShowMaps'/>" |
62 " <menuitem action='ShowMaps'/>" |
32 " </menu>" |
63 " </menu>" |
33 " <menu action='ZoomMenu'>" |
|
34 " <menuitem action='ZoomRezoom'/>" |
|
35 " </menu>" |
|
36 " </menubar>" |
64 " </menubar>" |
|
65 " <toolbar name='ToolBar'>" |
|
66 " <toolitem action='FileNew' />" |
|
67 " <toolitem action='FileOpen' />" |
|
68 " <toolitem action='FileSave' />" |
|
69 " <separator />" |
|
70 " <toolitem action='ViewZoomIn' />" |
|
71 " <toolitem action='ViewZoomOut' />" |
|
72 " <toolitem action='ViewZoomFit' />" |
|
73 " <toolitem action='ViewZoom100' />" |
|
74 " </toolbar>" |
37 "</ui>"; |
75 "</ui>"; |
38 |
76 |
39 uim->add_ui_from_string(ui_info); |
77 uim->add_ui_from_string(ui_info); |
40 |
78 |
41 } |
79 } |
43 { |
81 { |
44 std::cerr << "building menus failed: " << ex.what(); |
82 std::cerr << "building menus failed: " << ex.what(); |
45 } |
83 } |
46 |
84 |
47 Gtk::Widget* menubar = uim->get_widget("/MenuBar"); |
85 Gtk::Widget* menubar = uim->get_widget("/MenuBar"); |
48 if(menubar)vbox.pack_start(*menubar, Gtk::PACK_SHRINK); |
86 if (menubar){ |
|
87 vbox.pack_start(*menubar, Gtk::PACK_SHRINK); |
|
88 } |
49 |
89 |
50 vbox.pack_start(gd_canvas); |
90 Gtk::Widget* toolbar = uim->get_widget("/ToolBar"); |
|
91 if (toolbar) |
|
92 { |
|
93 static_cast<Gtk::Toolbar*>(toolbar)->set_toolbar_style(Gtk::TOOLBAR_ICONS); |
|
94 vbox.pack_start(*toolbar, Gtk::PACK_SHRINK); |
|
95 } |
|
96 |
|
97 Gtk::ScrolledWindow* pScrolledWindow = manage(new Gtk::ScrolledWindow()); |
|
98 pScrolledWindow->add(gd_canvas); |
|
99 vbox.pack_start(*pScrolledWindow); |
|
100 //vbox.pack_start(gd_canvas); |
51 |
101 |
52 show_all_children(); |
102 show_all_children(); |
53 } |
103 } |
54 |
104 |
55 void MainWin::showMaps() |
105 void MainWin::showMaps() |