From 55e76bdaafa1e2a94fbd717335c1c7bd8c8fc156 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Mon, 18 Apr 2011 19:35:48 +0200 Subject: Basic tool implementation. --- gui.cpp | 149 +++++++++++++++++++++++----------------------------------------- 1 file changed, 54 insertions(+), 95 deletions(-) (limited to 'gui.cpp') diff --git a/gui.cpp b/gui.cpp index 8824237..72275c8 100644 --- a/gui.cpp +++ b/gui.cpp @@ -2,18 +2,21 @@ #include "video.h" #include +#include using namespace CEGUI; -GUI::GUI() { +CEGUI::Window *GUI::root = NULL; +void GUI::init() { OpenGLRenderer::bootstrapSystem(); + DefaultResourceProvider* rp = static_cast (System::getSingleton().getResourceProvider()); rp->setResourceGroupDirectory("schemes", "GUI/"); rp->setResourceGroupDirectory("imagesets", "GUI/"); rp->setResourceGroupDirectory("fonts", "fonts/"); - rp->setResourceGroupDirectory("layouts", "GUI/"); + rp->setResourceGroupDirectory("layouts", "GUI/layouts/"); rp->setResourceGroupDirectory("looknfeels", "GUI/"); Imageset::setDefaultResourceGroup("imagesets"); @@ -33,112 +36,68 @@ GUI::GUI() { root = wmgr.createWindow("DefaultWindow", "root"); System::getSingleton().setGUISheet(root); +} - wnd = static_cast(wmgr.createWindow("Vanilla/FrameWindow", "foo")); - root->addChildWindow(wnd); - - wnd->setPosition(UVector2(UDim(.25, 0), UDim(.25, 0))); - wnd->setSize(UVector2(UDim(.5, 0), UDim(.5, 0))); - wnd->setText("foobar"); - - btn = static_cast(wmgr.createWindow("Vanilla/Button", "button")); - wnd->addChildWindow(btn); - - btn->setPosition(UVector2(UDim(0, 0), UDim(.9, 0))); - btn->setSize(UVector2(UDim(.3, 0), UDim(.1, 0))); - btn->setText("buttan"); - - /* radius */ - radius_lbl = wmgr.createWindow("Vanilla/StaticText", "radius_lbl"); - wnd->addChildWindow(radius_lbl); - - radius_lbl->setPosition(UVector2(UDim(0, 0), UDim(0, 0))); - radius_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0))); - radius_lbl->setText("Radius"); - - radius_sb = static_cast(wmgr.createWindow("Vanilla/HorizontalScrollbar", "radius_sb")); - wnd->addChildWindow(radius_sb); - - radius_sb->setPosition(UVector2(UDim(.2, 0), UDim(0, 0))); - radius_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0))); - radius_sb->setDocumentSize(50.0); - - radius_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "radius_sb_lbl"); - wnd->addChildWindow(radius_sb_lbl); - - radius_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(0, 0))); - radius_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0))); - - /* focus */ - focus_lbl = wmgr.createWindow("Vanilla/StaticText", "focus_lbl"); - wnd->addChildWindow(focus_lbl); - - focus_lbl->setPosition(UVector2(UDim(0, 0), UDim(.1, 0))); - focus_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0))); - focus_lbl->setText("Focus"); - - focus_sb = static_cast(wmgr.createWindow("Vanilla/HorizontalScrollbar", "focus_sb")); - wnd->addChildWindow(focus_sb); - - focus_sb->setPosition(UVector2(UDim(.2, 0), UDim(.1, 0))); - focus_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0))); - focus_sb->setDocumentSize(2.0); - focus_sb->setStepSize(.1); - - focus_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "focus_sb_lbl"); - wnd->addChildWindow(focus_sb_lbl); - - focus_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(.1, 0))); - focus_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0))); - - /* strength */ - strength_lbl = wmgr.createWindow("Vanilla/StaticText", "strength_lbl"); - wnd->addChildWindow(strength_lbl); +void GUI::render() { + /* Disable depth testing to avoid cursor bugginess. */ + glDisable(GL_DEPTH_TEST); + System::getSingleton().renderGUI(); + glEnable(GL_DEPTH_TEST); +} - strength_lbl->setPosition(UVector2(UDim(0, 0), UDim(.2, 0))); - strength_lbl->setSize(UVector2(UDim(.2, 0), UDim(.1, 0))); - strength_lbl->setText("Strength"); +/* RaiseWindow */ - strength_sb = static_cast(wmgr.createWindow("Vanilla/HorizontalScrollbar", "strength_sb")); - wnd->addChildWindow(strength_sb); +/* default values */ +float RaiseWindow::radius = 5; +float RaiseWindow::focus = .8; +float RaiseWindow::strength = .3; - strength_sb->setPosition(UVector2(UDim(.2, 0), UDim(.2, 0))); - strength_sb->setSize(UVector2(UDim(.65, 0), UDim(.1, 0))); - strength_sb->setDocumentSize(1.0); - strength_sb->setStepSize(.1); +RaiseWindow::RaiseWindow() { + WindowManager& wmgr(WindowManager::getSingleton()); - strength_sb_lbl = wmgr.createWindow("Vanilla/StaticText", "strength_sb_lbl"); - wnd->addChildWindow(strength_sb_lbl); + wnd = static_cast(wmgr.loadWindowLayout("raisewnd.layout")); + root->addChildWindow(wnd); - strength_sb_lbl->setPosition(UVector2(UDim(.85, 0), UDim(.2, 0))); - strength_sb_lbl->setSize(UVector2(UDim(.15, 0), UDim(.1, 0))); + radius_sb = static_cast(wmgr.getWindow("radius_sb")); + radius_sb_lbl = wmgr.getWindow("radius_sb_lbl"); + focus_sb = static_cast(wmgr.getWindow("focus_sb")); + focus_sb_lbl = wmgr.getWindow("focus_sb_lbl"); + strength_sb = static_cast(wmgr.getWindow("strength_sb")); + strength_sb_lbl = wmgr.getWindow("strength_sb_lbl"); + + /* load default/last used values */ + radius_sb->setScrollPosition(radius); + focus_sb->setScrollPosition(focus); + strength_sb->setScrollPosition(strength); } -GUI::~GUI() { - delete root; - delete wnd; - delete btn; - - delete radius_lbl; - delete radius_sb; - delete radius_sb_lbl; - - delete focus_lbl; - delete focus_sb; - delete focus_sb_lbl; +RaiseWindow::~RaiseWindow() { + /* store current values */ + radius = get_radius(); + focus = get_focus(); + strength = get_strength(); - delete strength_lbl; - delete strength_sb; - delete strength_sb_lbl; + WindowManager& wmgr(WindowManager::getSingleton()); + wmgr.destroyWindow(wnd); + wmgr.cleanDeadPool(); } -void GUI::render() { +void RaiseWindow::render() { radius_sb_lbl->setText((boost::format("%.2f") % radius_sb->getScrollPosition()).str().c_str()); focus_sb_lbl->setText((boost::format("%.2f") % focus_sb->getScrollPosition()).str().c_str()); strength_sb_lbl->setText((boost::format("%.2f") % strength_sb->getScrollPosition()).str().c_str()); - /* Disable depth testing to avoid cursor bugginess. */ - glDisable(GL_DEPTH_TEST); - System::getSingleton().renderGUI(); - glEnable(GL_DEPTH_TEST); + GUI::render(); +} + +float RaiseWindow::get_radius() { + return radius_sb->getScrollPosition(); +} + +float RaiseWindow::get_focus() { + return focus_sb->getScrollPosition(); +} + +float RaiseWindow::get_strength() { + return strength_sb->getScrollPosition(); } -- cgit v1.2.3