ladanyi@6: // -*- C++ -*- // ladanyi@6: ladanyi@6: #ifndef MAIN_WIN_H ladanyi@6: #define MAIN_WIN_H ladanyi@6: ladanyi@53: #include "all_include.h" hegyi@103: #include "algowin.h" ladanyi@53: #include "map_win.h" ladanyi@53: #include "new_map_win.h" hegyi@96: #include "nbtab.h" ladanyi@6: #include ladanyi@6: #include ladanyi@6: hegyi@96: ladanyi@6: ///This class is the main window of GUI. ladanyi@6: ///It has menus, but the main part of it is the canvas. ladanyi@6: class MainWin : public Gtk::Window ladanyi@6: { hegyi@96: ///Container hegyi@96: Gtk::VBox vbox; hegyi@96: hegyi@96: Gtk::Notebook notebook; hegyi@96: hegyi@96: int active_tool; hegyi@96: hegyi@96: int active_tab; hegyi@96: std::vector tabs; hegyi@96: std::vector tabnames; hegyi@96: hegyi@104: std::map strinst; hegyi@104: hegyi@103: std::set< AlgoWin* > aws; hegyi@103: ladanyi@6: public: hegyi@96: hegyi@96: ///Constructor of the \ref NoteBookTab. It creates the menu and the \ref GraphDisplayerCanvas on which the graph will be drawn. ladanyi@6: ///\param title is the title of the window ladanyi@68: MainWin(); ladanyi@53: hegyi@96: void set_tabtitle(std::string); ladanyi@6: ladanyi@6: ///ActionGroup for menu ladanyi@6: Glib::RefPtr ag; ladanyi@6: ladanyi@6: ///UIManager for menu ladanyi@6: Glib::RefPtr uim; ladanyi@6: hegyi@96: void readFile(const std::string &); ladanyi@6: hegyi@50: ///Tooltips hegyi@50: Gtk::Tooltips tooltips; hegyi@50: hegyi@96: //Call-backs of buttons hegyi@96: ladanyi@6: ///Callback for 'FileNew' action. ladanyi@6: virtual void newFile(); ladanyi@6: ///Callback for 'FileOpen' action. ladanyi@6: virtual void openFile(); ladanyi@6: ///Callback for 'FileSave' action. ladanyi@6: virtual void saveFile(); ladanyi@6: ///Callback for 'FileSaveAs' action. ladanyi@6: virtual void saveFileAs(); ladanyi@53: ///Callback for 'Close' action. ladanyi@53: virtual void close(); hegyi@94: hegyi@96: //Toolbar hegyi@96: virtual void zoomIn(); hegyi@96: virtual void zoomOut(); hegyi@96: virtual void zoomFit(); hegyi@96: virtual void zoom100(); hegyi@94: hegyi@96: virtual void createMapWin(); hegyi@94: hegyi@103: virtual void createAlgoWin(int); hegyi@103: virtual void deRegisterAlgoWin(AlgoWin *); hegyi@106: virtual void updateAlgoWinTabs(); hegyi@106: virtual void updateAlgoWinMaps(AlgoWin *, std::string); hegyi@103: hegyi@96: virtual void changeEditorialTool(int); hegyi@94: hegyi@96: virtual void createNewMapWinAfterSignal(NoteBookTab *, bool); hegyi@96: virtual void createNewMapWin(); hegyi@96: hegyi@96: //Notebook handlers hegyi@96: ///Callback for 'FileNewTab' action. hegyi@96: virtual void newTab(); hegyi@97: virtual void closeTab(); hegyi@96: virtual void onChangeTab(GtkNotebookPage*, guint); hegyi@96: virtual void onCloseTab(); hegyi@96: hegyi@96: ladanyi@6: }; ladanyi@6: ladanyi@6: #endif //MAIN_WIN_H