Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Apr 16, 2010, 12:22:12 PM (15 years ago)
Author:
rgrieder
Message:

Background image of the GUI is now managed by GUIManager and kept in a very simple manner: Tell it about the image set and the image name and the it will display it in the root node.
Also split SheetManager.lua from InitialiseGUI.lua to have a separate initialisation, required by GUIManager now.
And modified GUISheet.cc/h accordingly.

Location:
code/branches/gamestates2/src/libraries/core
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/gamestates2/src/libraries/core/GUIManager.cc

    r6736 r6737  
    4242#include <CEGUISystem.h>
    4343#include <CEGUIWindow.h>
     44#include <CEGUIWindowManager.h>
    4445#include <ogreceguirenderer/OgreCEGUIRenderer.h>
    4546
     
    147148        guiSystem_->injectMousePosition((float)mousePosition.first, (float)mousePosition.second);
    148149
    149         // Hide the mouse cursor unless playing in full screen mode
    150         if (!GraphicsManager::getInstance().isFullScreen())
    151             CEGUI::MouseCursor::getSingleton().hide();
    152 
    153         // Initialise the basic Lua code
     150        // Initialise the Lua framework and load the schemes
    154151        this->luaState_->doFile("InitialiseGUI.lua");
     152
     153        // Create the root nodes
     154        this->rootWindow_ = CEGUI::WindowManager::getSingleton().createWindow("MenuWidgets/StaticImage", "AbsoluteRootWindow");
     155        this->rootWindow_->setProperty("FrameEnabled", "False");
     156        this->hudRootWindow_ = CEGUI::WindowManager::getSingleton().createWindow("DefaultWindow", "HUDRootWindow");
     157        this->menuRootWindow_ = CEGUI::WindowManager::getSingleton().createWindow("DefaultWindow", "MenuRootWindow");
     158        // And connect them
     159        CEGUI::System::getSingleton().setGUISheet(this->rootWindow_);
     160        this->rootWindow_->addChildWindow(this->hudRootWindow_);
     161        this->rootWindow_->addChildWindow(this->menuRootWindow_);
     162
     163        // Set up the sheet manager in the Lua framework
     164        this->luaState_->doFile("SheetManager.lua");
    155165    }
    156166
     
    203213    @param str
    204214        reference to string object holding the Lua code which is to be executed
    205 
    206         This function gives total access to the GUI. You can execute ANY Lua code here.
    207215    */
    208216    void GUIManager::executeCode(const std::string& str)
     
    217225    void GUIManager::loadGUI(const std::string& name)
    218226    {
    219         this->executeCode("loadGUI(\"" + name + "\")");
     227        this->executeCode("loadSheet(\"" + name + "\")");
    220228    }
    221229
     
    292300    }
    293301
    294     void GUIManager::setBackground(const std::string& name)
    295     {
    296         this->executeCode("setBackground(\"" + name + "\")");
     302    void GUIManager::setBackgroundImage(const std::string& imageSet, const std::string imageName)
     303    {
     304        if (imageSet.empty() || imageName.empty())
     305            this->setBackgroundImage("set: " + imageSet + " image: " + imageName);
     306        else
     307            this->setBackgroundImage("");
     308    }
     309
     310    void GUIManager::setBackgroundImage(const std::string& image)
     311    {
     312        if (image.empty())
     313            this->rootWindow_->setProperty("Alpha", "0.0");
     314        else
     315            this->rootWindow_->setProperty("Alpha", "1.0");
     316        this->rootWindow_->setProperty("Image", image);
    297317    }
    298318
  • code/branches/gamestates2/src/libraries/core/GUIManager.h

    r6736 r6737  
    7979        static void hideGUI(const std::string& name);
    8080        void keyESC();
    81         void setBackground(const std::string& name);
     81        void setBackgroundImage(const std::string& imageSet, const std::string imageName); // tolua_export
     82        void setBackgroundImage(const std::string& image);
    8283
     84        //! Creates a new InputState to be used with a GUI Sheet
    8385        const std::string& createInputState(const std::string& name, TriBool::Value showCursor = TriBool::True, TriBool::Value useKeyboard = TriBool::True, bool bBlockJoyStick = false); // tolua_export
     86
     87        //! Returns the root window for all menu sheets
     88        CEGUI::Window* getMenuRootWindow() { return this->menuRootWindow_; } // tolua_export
     89        //! Returns the root window for all HUD sheets
     90        CEGUI::Window* getHUDRootWindow() { return this->hudRootWindow_; } // tolua_export
    8491
    8592        void setCamera(Ogre::Camera* camera);
     
    120127        CEGUI::ResourceProvider*             resourceProvider_; //!< CEGUI's resource provider
    121128        CEGUI::Logger*                       ceguiLogger_;      //!< CEGUI's logger to be able to log CEGUI errors in our log
     129        CEGUI::Window*                       rootWindow_;       //!< Root node for all windows
     130        CEGUI::Window*                       hudRootWindow_;    //!< Root node for the HUD sheets
     131        CEGUI::Window*                       menuRootWindow_;   //!< Root node for the menu sheets (used by Lua)
    122132        std::map<std::string, PlayerInfo*>   players_;          //!< Stores the player (owner) for each GUI
    123133        Ogre::Camera*                        camera_;           //!< Camera used to render the scene with the GUI
Note: See TracChangeset for help on using the changeset viewer.