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 ToggleLazyRendering();
65 void ToggleShowBezierBounds();
66 void ToggleShowBezierType();
67 void ToggleShowFillBounds();
68 void ToggleShowFillPoints();
69 void ToggleScreenDebugFont();
70 void ToggleEnableShading();
72 void LoadSVGIntoDocument();
73 void SetDocumentFont();
74 void StateInsertText() {ChangeState(INSERT_TEXT);}
75 void StateAbout() {ChangeState(ABOUT);}
76 void StateParseSVG() {ChangeState(PARSE_SVG);}
77 void PressOK() {if (m_on_ok != NULL) (this->*m_on_ok)();}
80 static ControlPanel * g_panel;
81 void paintEvent(QPaintEvent * e);
82 ControlPanel(RunArgs & a, QWidget * p = NULL);
83 virtual ~ControlPanel() {}
85 void ChangeState(State next_state);
96 QMenu * CreateMainMenu();
97 QMenu * CreateViewMenu();
98 QMenu * CreateDocumentMenu();
99 QMenu * CreateScreenMenu();
102 void InsertTextIntoDocument();
103 void InsertSVGIntoDocument();
105 QAction * m_screen_gpu_rendering;
106 QAction * m_screen_cpu_rendering;
107 QAction * m_screen_show_debug;
108 QAction * m_screen_lazy_rendering;
110 QAction * m_document_set_font;
111 QAction * m_document_insert_text;
112 QAction * m_document_parse_svg;
113 QAction * m_document_load_svg;
114 QAction * m_view_set_bounds;
115 QAction * m_view_show_bezier_bounds;
116 QAction * m_view_show_bezier_type;
117 QAction * m_view_show_fill_bounds;
118 QAction * m_view_show_fill_points;
119 QAction * m_view_enable_shading;
122 QTextEdit * m_text_edit;
123 QPushButton * m_ok_button;
125 void (ControlPanel::* m_on_ok)();
132 #endif //CONTROLPANEL_DISABLED
134 #endif //_CONTROLPANEL_H