diff edmain.h @ 376:40e33ad0d153

Work towards a working editor .. some day.
author Matti Hamalainen <ccr@tnsp.org>
date Wed, 17 Oct 2012 02:27:55 +0300
parents
children feaeec4c6c55
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/edmain.h	Wed Oct 17 02:27:55 2012 +0300
@@ -0,0 +1,98 @@
+#ifndef EDMAIN_H
+#define EDMAIN_H
+
+// Program name etc
+#define PROGRAM_NAME      "DMPE Editor"
+#define PROGRAM_VERSION   "0.1"
+
+// Defaults
+#define DOC_DEF_FILENAME  "Untitled"
+#define DOC_UNDO_MAX	  30
+
+#include "eddemoobj.h"
+
+#include <QDebug>
+#include <QFile>
+#include <QApplication>
+#include <QMainWindow>
+#include <QTableView>
+#include <QAction>
+#include <QActionGroup>
+#include <QSlider>
+#include <QMessageBox>
+#include <QCheckBox>
+
+
+class DemoEditor : public QMainWindow
+{
+    Q_OBJECT
+
+public:
+    DemoEditor();
+    ~DemoEditor();
+
+    void settingsRestore();
+    void settingsSave();
+
+
+private slots:
+    void actionFileNew();
+    void actionFileOpen();
+    void actionFileSave();
+    void actionFileSaveAs();
+
+    void actionAboutBox();
+    
+    //void actionCut();
+    //void actionCopy();
+    //void actionPaste();
+    //void actionDelete();
+    
+    void performUndo();
+    void performRedo();
+
+private:
+    bool changed, initSDL;
+    DemoObject *demo;
+    DMEngineData engine;
+
+
+    QTableView *list;
+    QAction *menuActUndo, *menuActRedo, *menuActOpen, *menuActSave, *menuActSaveAs;
+//    QAction *menuActCut, *menuActCopy, *menuActPaste, *menuActDelete;
+
+    QAction * createToolButton(QActionGroup *group, QString name, QIcon icon, QString statustip, QVariant data);
+    QAction * createMenuAction(QString name, const QKeySequence &shortcut, QString tooltip);
+    QAction * createMenuGroupAction(QMenu *, QActionGroup *, QString name, const QKeySequence &shortcut, QString tooltip, QVariant data);
+    void setActionGroupChecked(QActionGroup *group, QVariant data);
+
+
+    void showFileErrorDialog(QString operation, int code, QFile::FileError err);
+    QMessageBox::StandardButton showDocumentModifiedDialog();
+    void statusMsg(QString message);
+    void closeEvent(QCloseEvent *event);
+    void createMainGUI();
+    void updateMenuStates();
+
+    int reopenResources();
+    int loadResources();
+    bool initializeVideo();
+    
+
+    void rehashFile();
+    void createNewFile();
+    void readFromFile(QString filename);
+    void saveToFile(QString filename);
+
+
+    QList<DemoObject *> undoHistory;
+    int undoHistoryPos, undoHistoryMax;
+
+    void historyReset();
+    void historyPush(QString description);
+    void historyTop();
+    void historyPop();
+};
+
+
+#endif // EDMAIN_H