1 /*! 2 * A top-level window, which contains a single TikzDocument. 3 */ 4 5 #ifndef MAINWINDOW_H 6 #define MAINWINDOW_H 7 8 #include "tikzscene.h" 9 #include "tikzview.h" 10 #include "graph.h" 11 #include "tikzdocument.h" 12 #include "mainmenu.h" 13 #include "toolpalette.h" 14 #include "stylepalette.h" 15 16 #include <QMainWindow> 17 #include <QGraphicsView> 18 #include <QSplitter> 19 20 namespace Ui { 21 class MainWindow; 22 } 23 24 class MainWindow : public QMainWindow 25 { 26 Q_OBJECT 27 28 public: 29 explicit MainWindow(QWidget *parent = 0); 30 ~MainWindow(); 31 32 void restorePosition(); 33 void open(QString fileName); 34 int windowId() const; 35 TikzView *tikzView() const; 36 TikzScene *tikzScene() const; 37 TikzDocument *tikzDocument() const; 38 ToolPalette *toolPalette() const; 39 StylePalette *stylePalette() const; 40 QSplitter *splitter() const; 41 QString tikzSource(); 42 void setSourceLine(int line); 43 44 MainMenu *menu() const; 45 46 public slots: 47 void on_tikzSource_textChanged(); 48 void updateFileName(); 49 void refreshTikz(); 50 protected: 51 void closeEvent(QCloseEvent *event) override; 52 void changeEvent(QEvent *event) override; 53 54 private: 55 TikzScene *_tikzScene; 56 TikzDocument *_tikzDocument; 57 MainMenu *_menu; 58 ToolPalette *_toolPalette; 59 StylePalette *_stylePalette; 60 Ui::MainWindow *ui; 61 int _windowId; 62 static int _numWindows; 63 }; 64 65 #endif // MAINWINDOW_H 66