/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set et sw=2 ts=2: */ /*************************************************************************** * mainwindow.h * * Sat Aug 4 13:37:17 CEST 2012 * Copyright 2012 Bent Bisballe Nyeng * deva@aasimon.org ****************************************************************************/ /* * This file is part of Kaiman. * * Kaiman is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Kaiman is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Kaiman; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ #pragma once #include #include #include "codeeditor.h" #include "outputwindow.h" #include "luascript.h" #include "highlighter.h" class QSplitter; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QString program); protected: void closeEvent(QCloseEvent*); private slots: // Menubar void newFile(); void loadFile(); void loadFile(QString filename); void saveFile(); void saveFileAs(); // Toolbar void stop(); void start(); void reset(); void image(); void programChanged(); private: void loadSettings(); void saveSettings(); bool checkDirty(); void setWindowEnabled(bool enabled); void updateWindowTitle(); bool dirty{false}; QAction* act_save; CodeEditor *editor; QSplitter *splitter; QFileSystemWatcher watcher; Highlighter* highlighter; QString program; OutputWindow *out; LUAScript *l; };