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