Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 22, 2010, 2:47:10 PM (14 years ago)
Author:
rgrieder
Message:

Merged remaining revisions from gamestate to gamestates2.

Location:
code/branches/gamestates2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/branches/gamestates2

  • code/branches/gamestates2/src/libraries/core/GUIManager.cc

    r6502 r6595  
    5757#include "ConsoleCommand.h"
    5858#include "Core.h"
     59#include "GraphicsManager.h"
    5960#include "LuaState.h"
    6061#include "PathConfig.h"
    6162#include "Resource.h"
     63#include "input/InputManager.h"
     64#include "input/InputState.h"
     65#include "input/KeyBinderManager.h"
    6266
    6367namespace orxonox
     
    108112    @return true if success, otherwise false
    109113    */
    110     GUIManager::GUIManager(Ogre::RenderWindow* renderWindow, const std::pair<int, int>& mousePosition, bool bFullScreen)
    111         : renderWindow_(renderWindow)
    112         , resourceProvider_(0)
     114    GUIManager::GUIManager(const std::pair<int, int>& mousePosition)
     115        : resourceProvider_(NULL)
    113116        , camera_(NULL)
    114         , bShowIngameGUI_(false)
    115117    {
    116118        using namespace CEGUI;
     
    119121
    120122        // Note: No SceneManager specified yet
    121         guiRenderer_.reset(new OgreCEGUIRenderer(renderWindow_, Ogre::RENDER_QUEUE_OVERLAY, false, 3000));
     123        guiRenderer_.reset(new OgreCEGUIRenderer(GraphicsManager::getInstance().getRenderWindow(), Ogre::RENDER_QUEUE_OVERLAY, false, 3000));
    122124        resourceProvider_ = guiRenderer_->createResourceProvider();
    123125        resourceProvider_->setDefaultResourceGroup("GUI");
     
    141143        guiSystem_.reset(new System(guiRenderer_.get(), resourceProvider_, 0, scriptModule_.get()));
    142144
     145        // Align CEGUI mouse with OIS mouse
     146        guiSystem_->injectMousePosition((float)mousePosition.first, (float)mousePosition.second);
     147
     148        // Hide the mouse cursor unless playing in full screen mode
     149        if (!GraphicsManager::getInstance().isFullScreen())
     150            CEGUI::MouseCursor::getSingleton().hide();
     151
    143152        // Initialise the basic Lua code
    144153        this->luaState_->doFile("InitialiseGUI.lua");
    145 
    146         // Align CEGUI mouse with OIS mouse
    147         guiSystem_->injectMousePosition((float)mousePosition.first, (float)mousePosition.second);
    148 
    149         // Hide the mouse cursor unless playing in full screen mode
    150         if (!bFullScreen)
    151             CEGUI::MouseCursor::getSingleton().hide();
    152154    }
    153155
     
    208210    }
    209211
     212    /** Loads a GUI sheet by Lua script
     213    @param name
     214        The name of the GUI (like the script name, but without the extension)
     215    */
     216    void GUIManager::loadGUI(const std::string& name)
     217    {
     218        this->executeCode("loadGUI(\"" + name + "\")");
     219    }
     220
    210221    /**
    211222    @brief
     
    240251    {
    241252        GUIManager::getInstance().executeCode("hideGUI(\"" + name + "\")");
     253    }
     254
     255    const std::string& GUIManager::createInputState(const std::string& name, TriBool::Value showMouse, TriBool::Value useKeyboard, bool bBlockJoyStick)
     256    {
     257        InputState* state = InputManager::getInstance().createInputState(name);
     258
     259        if (GraphicsManager::getInstance().isFullScreen() && showMouse == TriBool::True ||
     260           !GraphicsManager::getInstance().isFullScreen() && showMouse == TriBool::False)
     261            state->setMouseExclusive(TriBool::True);
     262        else
     263            state->setMouseExclusive(TriBool::Dontcare);
     264
     265        if (showMouse == TriBool::True)
     266            state->setMouseHandler(this);
     267        else if (showMouse == TriBool::False)
     268            state->setMouseHandler(&InputHandler::EMPTY);
     269
     270        if (useKeyboard == TriBool::True)
     271            state->setKeyHandler(this);
     272        else if (useKeyboard == TriBool::False)
     273            state->setKeyHandler(&InputHandler::EMPTY);
     274
     275        if (bBlockJoyStick)
     276            state->setJoyStickHandler(&InputHandler::EMPTY);
     277
     278        return state->getName();
    242279    }
    243280
Note: See TracChangeset for help on using the changeset viewer.