X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fcontrolpanel.h;h=90394f8fea5447017ce0c65bbb8bbab889f84fd2;hp=f79937518a5a0399a4ed2ad81bdfa284b7b9e28f;hb=d9c0c3792133f87cd224dc22be428be8ddc016d8;hpb=e35bf651e7ebfe4932e877780bb00397c41a7ec2 diff --git a/src/controlpanel.h b/src/controlpanel.h index f799375..90394f8 100644 --- a/src/controlpanel.h +++ b/src/controlpanel.h @@ -16,7 +16,9 @@ #include #include #include - +#include +#include +#include namespace IPDF @@ -47,34 +49,69 @@ 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 ToggleScreenDebugFont(); + 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; + + QTextEdit * m_text_edit; + QPushButton * m_ok_button; + + void (ControlPanel::* m_on_ok)(); + };