X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fcontrolpanel.h;h=67eff640dbac64ada8e2812f44ae93f647f71004;hp=3e8eb9a0ee1656ff33cd19730d54099eceba2151;hb=888817a67a9d840be66b52811b01eb77f10ff3e6;hpb=6dd539966821debd18e0b86ed126742cd81d7fc9 diff --git a/src/controlpanel.h b/src/controlpanel.h index 3e8eb9a..67eff64 100644 --- a/src/controlpanel.h +++ b/src/controlpanel.h @@ -16,7 +16,9 @@ #include #include #include - +#include +#include +#include namespace IPDF @@ -32,7 +34,7 @@ namespace IPDF */ class ControlPanel : public QMainWindow { - //Q_OBJECT // Having this causes shit about undefined vtables + Q_OBJECT // Having this causes shit about undefined vtables // Not having it means things break // Apparently you need "qmake" to build qt applications // Or some bullshit -_- @@ -47,34 +49,80 @@ namespace IPDF }; static int Run(void * args); - static void Update() {if (g_panel != NULL) g_panel->UpdateAll();}; - - ControlPanel(RunArgs & a, QWidget * p = NULL); - virtual ~ControlPanel() {} + static void Update() {if (g_panel != NULL) g_panel->UpdateAll();} + + private: + typedef enum { + ABOUT, + INSERT_TEXT, + PARSE_SVG + } State; private slots: void SetGPURendering(); void SetCPURendering(); - + void ToggleShowBezierBounds(); + void ToggleShowBezierType(); + void ToggleShowFillBounds(); + void ToggleShowFillPoints(); + void ToggleScreenDebugFont(); + void ToggleEnableShading(); + void SetViewBounds(); + void LoadSVGIntoDocument(); + void SetDocumentFont(); + void StateInsertText() {ChangeState(INSERT_TEXT);} + void StateAbout() {ChangeState(ABOUT);} + void StateParseSVG() {ChangeState(PARSE_SVG);} + void PressOK() {if (m_on_ok != NULL) (this->*m_on_ok)();} private: static ControlPanel * g_panel; - - + void paintEvent(QPaintEvent * e); + ControlPanel(RunArgs & a, QWidget * p = NULL); + virtual ~ControlPanel() {} void UpdateAll(); - + void ChangeState(State next_state); View & m_view; Document & m_doc; Screen & m_screen; + int m_width; + int m_height; + + + State m_state; + QMenu * CreateMainMenu(); QMenu * CreateViewMenu(); QMenu * CreateDocumentMenu(); QMenu * CreateScreenMenu(); + void CreateLayout(); + + void InsertTextIntoDocument(); + void InsertSVGIntoDocument(); QAction * m_screen_gpu_rendering; QAction * m_screen_cpu_rendering; + QAction * m_screen_show_debug; + QAction * m_document_set_font; + QAction * m_document_insert_text; + QAction * m_document_parse_svg; + QAction * m_document_load_svg; + QAction * m_view_set_bounds; + QAction * m_view_show_bezier_bounds; + QAction * m_view_show_bezier_type; + QAction * m_view_show_fill_bounds; + QAction * m_view_show_fill_points; + QAction * m_view_enable_shading; + + + + QTextEdit * m_text_edit; + QPushButton * m_ok_button; + + void (ControlPanel::* m_on_ok)(); + };