Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 12, 2009, 11:32:41 AM (15 years ago)
Author:
scheusso
Message:

ESC handling in ingame menu: if theres already an opened GUI sheet then hide it, if not open the ingame menu
in mainmenu everything should remain the same

Location:
code/branches/menu/src/libraries/core
Files:
4 edited

Legend:

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

    r6036 r6048  
    108108        , resourceProvider_(0)
    109109        , camera_(NULL)
     110        , bShowIngameGUI_(false)
    110111    {
    111112        using namespace CEGUI;
     
    251252        }
    252253    }
     254
     255    void GUIManager::toggleIngameGUI()
     256    {
     257        if ( this->bShowIngameGUI_==false )
     258        {
     259            GUIManager::showGUI("InGameMenu");
     260            this->bShowIngameGUI_ = true;
     261        }
     262        else
     263        {
     264            GUIManager::hideGUI("InGameMenu");
     265            this->bShowIngameGUI_ = false;
     266        }
     267    }
    253268   
    254     void GUIManager::setToggleMode(const bool& mode)
    255     {
    256         this->bToggleMode_ = mode;
    257         this->executeCode("setToggleMode(" + multi_cast<std::string>(mode) + ")");
     269    void GUIManager::keyESC()
     270    {
     271        if( this->showingGUIs_.size() == 0 )
     272            this->showGUI("InGameMenu");
     273        else
     274            this->executeCode("keyESC()");
    258275    }
    259276   
  • code/branches/menu/src/libraries/core/GUIManager.h

    r6032 r6048  
    7171        void showGUIExtra(const std::string& name, const std::string& ptr, bool hidePrevious=false, bool showCursor=true);
    7272        static void hideGUI(const std::string& name);
    73         void setToggleMode(const bool& mode);
     73        void toggleIngameGUI();
     74        void keyESC();
    7475        void setBackground(const std::string& name);
    7576
     
    113114
    114115        static GUIManager*                   singletonPtr_s;    //!< Singleton reference to GUIManager
    115         bool                                 bToggleMode_;
     116        bool                                 bShowIngameGUI_;
    116117
    117118    };
  • code/branches/menu/src/libraries/core/Game.cc

    r6047 r6048  
    5151#include "GameMode.h"
    5252#include "GameState.h"
     53#include "GUIManager.h"
    5354
    5455namespace orxonox
     
    5758        { Game::getInstance().stop(); }
    5859    SetConsoleCommandShortcutExternAlias(stop_game, "exit");
     60    static void key_esc()
     61        { Game::getInstance().keyESC(); }
     62    SetConsoleCommandShortcutExternAlias(key_esc, "keyESC");
    5963    static void printFPS()
    6064        { COUT(0) << Game::getInstance().getAvgFPS() << std::endl; }
     
    354358    }
    355359
     360    void Game::keyESC()
     361    {
     362        if( this->getState("mainMenu") && this->getState("mainMenu")->getActivity().active==true )
     363            this->stop();
     364        else
     365            GUIManager::getInstance().keyESC();
     366    }
     367
    356368    void Game::stop()
    357369    {
  • code/branches/menu/src/libraries/core/Game.h

    r6024 r6048  
    9898        void run();
    9999        void stop();
     100        void keyESC();
    100101
    101102        static Game& getInstance(){ return Singleton<Game>::getInstance(); } // tolua_export
Note: See TracChangeset for help on using the changeset viewer.