00001 #ifndef MAINWINDOW_H_42312624626347 00002 #define MAINWINDOW_H_42312624626347 00003 00004 #include "editor.h" 00005 00006 #include <QMainWindow> 00007 #include <QDialog> 00008 00009 class QAction; 00010 class QToolBar; 00011 class QMenu; 00012 00013 class IAlgorithmHolder; 00014 class IGraphViz; 00015 00016 class MainWindow : public QMainWindow 00017 { 00018 Q_OBJECT 00019 private: 00020 Editor* editor; 00021 00022 void createActions(); 00023 void createMenus(); 00024 void createToolBars(); 00025 void createStatusBar(); 00026 00027 QMenu *fileMenu; 00028 QMenu *editMenu; 00029 QMenu *itemsMenu; 00030 QMenu *toolsMenu; 00031 QMenu *showMenu; 00032 QMenu *extraMenu; 00033 QMenu *helpMenu; 00034 00035 QToolBar *fileToolBar; 00036 QToolBar *editToolBar; 00037 QToolBar *zoomToolBar; 00038 QToolBar *itemsToolBar; 00039 QToolBar *toolsToolBar; 00040 QToolBar *showToolBar; 00041 QToolBar *extraToolBar; 00042 00043 QAction *fileNew; 00044 QAction *fileOpen; 00045 QAction *fileSave; 00046 QAction *fileSaveAs; 00047 QAction *fileExport; 00048 QAction *fileQuit; 00049 00050 QAction *editUndo; 00051 QAction *editRedo; 00052 QAction *editShowUndoStack; 00053 QAction *editCopy; 00054 QAction *editPaste; 00055 QAction *editCut; 00056 QAction *editRemove; 00057 QAction *zoomIn; 00058 QAction *zoomOut; 00059 QAction *resetZoom; 00060 QAction *editGridRect; 00061 QAction *editStateParams; 00062 QAction *editTransitionParams; 00063 00064 QAction *itemsSelection; 00065 QAction *itemsState; 00066 QAction *itemsTransition; 00067 00068 QAction *toolsSnapToGrid; 00069 QAction *toolsAlignStatesToGrid; 00070 QAction *toolsExpandGrid; 00071 00072 QAction *showGrid; 00073 QAction *showFrame; 00074 QAction *showAntialias; 00075 00076 QAction *helpAbout; 00077 QAction *helpAboutQt; 00078 00079 QAction *extraLaTeXTable; 00080 QAction *extraGeneration; 00081 QAction *extraSimulation; 00082 QMenu *algorithmMenu; 00083 00084 00085 public: 00086 MainWindow(const QString &fileName = ""); 00087 ~MainWindow() {} 00088 void setStatusBar(const QString& s); 00089 void setStatusBar(const QString& s, int ms); 00090 00091 protected: 00092 void closeEvent(QCloseEvent *event); // on close maybe save file 00093 00094 // for saving 00095 void addSuffix(QString &fn, Editor::Format f); 00096 00097 void loadPlugins(); 00098 void processAlgorithmsPlugin(IAlgorithmHolder *algHolder); 00099 void processGraphVizPlugin(IGraphViz *graphVizWrapper); 00100 00101 private slots: 00102 // file 00103 void newFile(); 00104 void openFile(); 00105 bool save(); 00106 bool saveAs(); 00107 void exportTo(); 00108 00109 // edit 00110 void undoViewClosed(); 00111 void updateEditMenu(); 00112 void enableEditMenu(); 00113 void copy(); 00114 void paste(); 00115 void cut(); 00116 void remove(); 00117 00118 // actions 00119 void setSelection(); 00120 void setState(); 00121 void setTransition(); 00122 00123 // tools 00124 void snapToGrid(); 00125 void alignToGrid(); 00126 00127 //help 00128 void about(); 00129 void aboutQt(); 00130 00131 void actualizeChecking(bool,bool); 00132 void actionChanged(int); 00133 00134 void setItemsAvailable(bool available); 00135 void setToolsAvailable(bool available); 00136 void setUtilsAvailable(bool available); 00137 }; 00138 00139 #endif //MAINWINDOW_H_42312624626347