00001
00009 #ifndef MAINWINDOW_H
00010 #define MAINWINDOW_H
00011
00012 #include <QMainWindow>
00013 #include "highlighter.h"
00014
00015 class QAction;
00016 class QActionGroup;
00017 class QMenu;
00018 class QTextEdit;
00019 class QTabWidget;
00020 class QStatusBar;
00021 class QDialog;
00022 class QLabel;
00023 class QPushButton;
00024 class QLineEdit;
00025 class QVBoxLayout;
00026 class QHBoxLayout;
00027 class QDialogButtonBox;
00028
00029 struct ParsedProjectString
00030 {
00031 QString name;
00032 QString value;
00033 };
00034
00035 class MainWindow : public QMainWindow
00036 {
00037 Q_OBJECT
00038
00039 public:
00040 MainWindow();
00041
00042 protected:
00043 void contextMenuEvent(QContextMenuEvent *event);
00044
00045 private slots:
00046 void newProject();
00047 void openProject(const QString &path = QString());
00048 void saveProject();
00049
00050 void undo();
00051 void redo();
00052 void cut();
00053 void copy();
00054 void paste();
00055
00056
00057
00058
00059
00060
00061
00062
00063 void about();
00064 void aboutQt();
00065 void getDirectory();
00066
00067 private:
00068 void createActions();
00069 void createMenus();
00070 void setupEditor();
00071 void setupLayout();
00072 ParsedProjectString parseProjectString(QString line);
00073
00074
00075 QMenu *fileMenu;
00076 QMenu *editMenu;
00077
00078
00079 QMenu *viewMenu;
00080 QMenu *helpMenu;
00081
00082 QAction *newAct;
00083 QAction *openAct;
00084 QAction *saveAct;
00085
00086 QAction *exitAct;
00087 QAction *undoAct;
00088 QAction *redoAct;
00089 QAction *cutAct;
00090 QAction *copyAct;
00091 QAction *pasteAct;
00092
00093
00094
00095
00096
00097
00098
00099
00100 QAction *aboutAct;
00101 QAction *aboutQtAct;
00102 QTextEdit *sceneEditor;
00103 QTextEdit *actionEditor;
00104 QTextEdit *messageEditor;
00105 QTextEdit *behaviorEditor;
00106 QTextEdit *entityEditor;
00107 QTextEdit *output;
00108 QTabWidget *tab;
00109 Highlighter *highlighter;
00110 QString fileName;
00111 QString filePath;
00112 QString title;
00113 QStatusBar *statusBar;
00114 QDialog *newProjectDialog;
00115 QLabel *directoryLabel;
00116 QLabel *nameLabel;
00117 QPushButton *directoryButton;
00118 QLineEdit *nameInput;
00119 QVBoxLayout *newProjectLayout;
00120 QHBoxLayout *layout1;
00121 QHBoxLayout *layout2;
00122 QDialogButtonBox *buttonBox;
00123 };
00124
00125 #endif