2 * Declarations for Qt4 based control panel
4 #ifndef _CONTROLPANEL_H
5 #define _CONTROLPANEL_H
7 //#define CONTROLPANEL_DISABLED // To turn off the control panel
9 #ifndef CONTROLPANEL_DISABLED
12 #include <QPushButton>
13 #include <QMainWindow>
18 #include <QApplication>
20 #include <QInputDialog>
21 #include <QFileDialog>
31 * Class to manage Qt control panel
32 * Should be a singleton from the point of view of View, Document, Screen
33 * - Just call "Update"
35 class ControlPanel : public QMainWindow
37 Q_OBJECT // Having this causes shit about undefined vtables
38 // Not having it means things break
39 // Apparently you need "qmake" to build qt applications
40 // Or some bullshit -_-
51 static int Run(void * args);
52 static void Update() {if (g_panel != NULL) g_panel->UpdateAll();}
62 void SetGPURendering();
63 void SetCPURendering();
64 void ToggleShowObjectBounds();
65 void ToggleScreenDebugFont();
66 void ToggleEnableShading();
68 void LoadSVGIntoDocument();
69 void SetDocumentFont();
70 void StateInsertText() {ChangeState(INSERT_TEXT);}
71 void StateAbout() {ChangeState(ABOUT);}
72 void StateParseSVG() {ChangeState(PARSE_SVG);}
73 void PressOK() {if (m_on_ok != NULL) (this->*m_on_ok)();}
76 static ControlPanel * g_panel;
77 void paintEvent(QPaintEvent * e);
78 ControlPanel(RunArgs & a, QWidget * p = NULL);
79 virtual ~ControlPanel() {}
81 void ChangeState(State next_state);
92 QMenu * CreateMainMenu();
93 QMenu * CreateViewMenu();
94 QMenu * CreateDocumentMenu();
95 QMenu * CreateScreenMenu();
98 void InsertTextIntoDocument();
99 void InsertSVGIntoDocument();
101 QAction * m_screen_gpu_rendering;
102 QAction * m_screen_cpu_rendering;
103 QAction * m_screen_show_debug;
105 QAction * m_document_set_font;
106 QAction * m_document_insert_text;
107 QAction * m_document_parse_svg;
108 QAction * m_document_load_svg;
109 QAction * m_view_set_bounds;
110 QAction * m_view_show_object_bounds;
111 QAction * m_view_enable_shading;
114 QTextEdit * m_text_edit;
115 QPushButton * m_ok_button;
117 void (ControlPanel::* m_on_ok)();
124 #endif //CONTROLPANEL_DISABLED
126 #endif //_CONTROLPANEL_H