Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 15, 2011, 9:09:58 PM (14 years ago)
Author:
dafrick
Message:

Reverting changes made in revision 8035, that based the menu navigation on console commands, due to implemential difficulties of the hacks to make menu navigation work fully.
So, at the moment, we'll have to make due with the old version of the menu navigation implementation.

Location:
code/branches/usability
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • code/branches/usability/data/defaultConfig/keybindings.ini

    r8035 r8078  
    1919KeyDelete="scale 1 rotateRoll"
    2020KeyDivide=
    21 KeyDown="scale -1 moveFrontBack | navigateGUI down"
     21KeyDown="scale -1 moveFrontBack"
    2222KeyE="scale -1 rotateRoll"
    2323KeyEnd=boost
     
    5252KeyKanji=
    5353KeyL=
    54 KeyLeft="scale -1 moveRightLeft | navigateGUI left"
     54KeyLeft="scale -1 moveRightLeft"
    5555KeyLeftAlt=
    5656KeyLeftBracket=
     
    9393KeyNumpadAdd=
    9494KeyNumpadComma=
    95 KeyNumpadEnter="navigateGUI enter"
     95KeyNumpadEnter=
    9696KeyNumpadEquals=
    9797KeyNumpadPeriod=
     
    108108KeyQ="scale 1 rotateRoll"
    109109KeyR="scale 1 moveUpDown"
    110 KeyReturn="navigateGUI enter"
    111 KeyRight="scale 1 moveRightLeft | navigateGUI right"
     110KeyReturn=
     111KeyRight="scale 1 moveRightLeft"
    112112KeyRightAlt=
    113113KeyRightBracket=
     
    126126KeyTab="NewHumanController changeMode"
    127127KeyU=""
    128 KeyUP="scale 1 moveFrontBack | navigateGUI up"
     128KeyUP="scale 1 moveFrontBack"
    129129KeyUnassigned="InGameConsole openConsole"
    130130KeyUnderline=
  • code/branches/usability/data/gui/scripts/GUISheet.lua

    r8035 r8078  
    2929
    3030-- Override this function if you want to react on keystrokes
    31 function P:onKeyPressed(mode)
     31function P:onKeyPressed()
    3232end
    3333
     
    8585
    8686-- Handles key pressed while the gui sheed is displayed
    87 function P:keyPressed(mode)
     87function P:keyPressed()
    8888    if self.buttons then
    89         if mode == "down" then     -- key down
     89        if code == "208" then     -- key down
    9090            self:moveSelectionRow(1)
    91         elseif mode == "up" then -- key up
     91        elseif code == "200" then -- key up
    9292            self:moveSelectionRow(-1)
    93         elseif mode == "right" then -- key right
     93        elseif code == "205" then -- key right
    9494            self:moveSelectionColumn(1)
    95         elseif mode == "left" then -- key left
     95        elseif code == "203" then -- key left
    9696            self:moveSelectionColumn(-1)
    97         elseif mode == "enter" then -- key enter or key numpad enter
     97        elseif code == "28" or code == "156" then -- key enter or key numpad enter
    9898            self:pressSelectedButton()
    9999        end
    100100    end
    101101
    102     self:onKeyPressed(mode)
     102    self:onKeyPressed()
    103103end
    104104
  • code/branches/usability/data/gui/scripts/GraphicsMenu.lua

    r8035 r8078  
    11-- GraphicsMenu.lua
    22
    3 local P = createMenuSheet("GraphicsMenu", true, TriBool.True, TriBool.True)
     3local P = createMenuSheet("GraphicsMenu")
    44
    55P.resolutionList = {"custom", "640 x 480", "720 x 480", "720 x 576", "800 x 600", "1024 x 600", "1024 x 768", "1152 x 864", "1280 x 720", "1280 x 800", "1280 x 960", "1280 x 1024", "1360 x 768", "1440 x 900", "1600 x 900", "1600 x 1200", "1680 x 1050"}
  • code/branches/usability/data/gui/scripts/MenuSheet.lua

    r8035 r8078  
    1616    newSheet.bHidePrevious  = handleDefArg(_bHidePrevious,  true)
    1717    newSheet.tShowCursor    = handleDefArg(_tShowCusor,     TriBool.True)
    18     newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.Dontcare)
     18    newSheet.tUseKeyboard   = handleDefArg(_tUseKeyboard,   TriBool.True)
    1919    newSheet.bBlockJoyStick = handleDefArg(_bBlockJoyStick, false)
    2020
  • code/branches/usability/data/gui/scripts/SheetManager.lua

    r8035 r8078  
    55local activeMenuSheets = {size = 0, topSheetTuple = nil}
    66local menuSheetsRoot = guiMgr:getMenuRootWindow()
     7local bInGameConsoleClosed = false
    78local mainMenuLoaded = false
    8 --orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "KeyDown", "keyPressed")
     9orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "KeyDown", "keyPressed")
    910orxonox.GUIManager:subscribeEventHelper(menuSheetsRoot, "Sized", "windowResized")
    1011
     
    131132    if previous and previous.pressedEnter and menuSheet:hasSelection() == false then
    132133        menuSheet:setSelectionNear(1, 1)
    133     end
    134 
    135     if activeMenuSheets.size > 0 then
    136         guiMgr:guisActiveChanged(true)
    137134    end
    138135
     
    207204    end
    208205
    209     if activeMenuSheets.size == 0 then
    210         guiMgr:guisActiveChanged(false)
    211     end
    212 
    213206    sheetTuple.sheet:quit()
    214207end
     
    224217    -- HUGE, very HUGE hacks!
    225218
    226     -- Count the number of sheets that don't need input until the first that does.
     219    -- If the InGameConsole is active, ignore the ESC command.
     220    if bInGameConsoleClosed == true then
     221        bInGameConsoleClosed = false
     222        return
     223    end
     224
     225    -- Count the number of sheets that don't need input till the first that does.
    227226    local counter = noInputSheetIndex()
    228227
     
    238237end
    239238
    240 -- Function to navigate the GUI, is called by the GUIManager, whenever a relevant key is pressed.
    241 -- The mode specifies the action to be taken.
    242 function navigateGUI(mode)
     239function keyPressed(e)
     240    local we = tolua.cast(e, "CEGUI::KeyEventArgs")
    243241    local sheet = activeMenuSheets[activeMenuSheets.size]
    244     sheet.sheet:keyPressed(mode)
     242    code = tostring(we.scancode)
     243    -- Some preprocessing
     244    if not mainMenuLoaded and not sheet.bNoInput then
     245        if code == "1" then
     246            keyESC()
     247        elseif code == "0"then
     248            orxonox.CommandExecutor:execute("InGameConsole openConsole")
     249        end
     250    end
     251    sheet.sheet:keyPressed()
    245252end
    246253
     
    286293    end
    287294    return counter
     295end
     296
     297function inGameConsoleClosed()
     298    bInGameConsoleClosed = not bInGameConsoleClosed;
    288299end
    289300
  • code/branches/usability/src/libraries/core/GUIManager.cc

    r8035 r8078  
    103103    /*static*/ const std::string GUIManager::defaultScheme_ = "TaharezGreen";
    104104
    105     static const std::string __CC_navigateGUI_name = "navigateGUI";
    106 
    107105    SetConsoleCommand("showGUI", &GUIManager::showGUI).defaultValue(1, false).defaultValue(2, false);
    108106    SetConsoleCommand("hideGUI", &GUIManager::hideGUI);
    109107    SetConsoleCommand("toggleGUI", &GUIManager::toggleGUI).defaultValue(1, false).defaultValue(2, false);
    110     SetConsoleCommand(__CC_navigateGUI_name, &GUIManager::navigateGUI).deactivate();
    111 
    112     //! Strings that specify modes for the GUI navigation.
    113     /*static*/ const std::string GUIManager::NAVIGATE_UP = "up";
    114     /*static*/ const std::string GUIManager::NAVIGATE_DOWN = "down";
    115     /*static*/ const std::string GUIManager::NAVIGATE_LEFT = "left";
    116     /*static*/ const std::string GUIManager::NAVIGATE_RIGHT = "right";
    117     /*static*/ const std::string GUIManager::NAVIGATE_ENTER = "enter";
    118108
    119109    /**
     
    374364            this->rootWindow_->setProperty("Alpha", "1.0");
    375365        this->rootWindow_->setProperty("Image", image);
    376     }
    377 
    378     /**
    379     @brief
    380         Method to navigate the GUI, by specifying the mode of navigation.
    381     @param mode
    382         The mode of navigation, at this point can be either 'up', 'down', 'left', 'right' or 'enter'.
    383     */
    384     /*static*/ void GUIManager::navigateGUI(const std::string& mode)
    385     {
    386         if(mode == NAVIGATE_UP)
    387             GUIManager::getInstance().executeCode("navigateGUI(\"" + NAVIGATE_UP + "\")");
    388         else if(mode == NAVIGATE_DOWN)
    389             GUIManager::getInstance().executeCode("navigateGUI(\"" + NAVIGATE_DOWN + "\")");
    390         else if(mode == NAVIGATE_LEFT)
    391             GUIManager::getInstance().executeCode("navigateGUI(\"" + NAVIGATE_LEFT + "\")");
    392         else if(mode == NAVIGATE_RIGHT)
    393             GUIManager::getInstance().executeCode("navigateGUI(\"" + NAVIGATE_RIGHT + "\")");
    394         else if(mode == NAVIGATE_ENTER)
    395             GUIManager::getInstance().executeCode("navigateGUI(\"" + NAVIGATE_ENTER + "\")");
    396     }
    397 
    398     /**
    399     @brief
    400         Is called by lua to change whether there are any GUIs active at the moment.
    401     @param active
    402         Whether GUIs are active.
    403     */
    404     void GUIManager::guisActiveChanged(bool active)
    405     {
    406         if(this->GUIsActive_ == active)
    407             return;
    408         this->GUIsActive_ = active;
    409         if(this->GUIsActive_)
    410             ModifyConsoleCommand(__CC_navigateGUI_name).activate();
    411         else
    412             ModifyConsoleCommand(__CC_navigateGUI_name).deactivate();
    413366    }
    414367
  • code/branches/usability/src/libraries/core/GUIManager.h

    r8040 r8078  
    9595        void setBackgroundImage(const std::string& image);
    9696
    97         static void navigateGUI(const std::string& mode);
    98         void guisActiveChanged(bool active); // tolua_export
    99 
    10097        /**
    10198        @brief Helper method to get the developer's mode without having to export Core.h.
     
    134131        template <typename FunctionType>
    135132        bool protectedCall(FunctionType function);
    136 
    137         static const std::string NAVIGATE_UP;
    138         static const std::string NAVIGATE_DOWN;
    139         static const std::string NAVIGATE_LEFT;
    140         static const std::string NAVIGATE_RIGHT;
    141         static const std::string NAVIGATE_ENTER;
    142 
    143         bool GUIsActive_; //!< Whether there are any GUIs active at a given moment.
    144133
    145134        // keyHandler functions
  • code/branches/usability/src/orxonox/gamestates/GSMainMenu.cc

    r8035 r8078  
    6868        RegisterRootObject(GSMainMenu);
    6969
    70         InputManager::getInstance().createInputState("MainMenuHackery")->setKeyHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
     70        InputManager::getInstance().createInputState("MainMenuHackery", true, true)->setKeyHandler(KeyBinderManager::getInstance().getDefaultAsHandler());
    7171
    7272        // create an empty Scene
  • code/branches/usability/src/orxonox/overlays/InGameConsole.cc

    r8035 r8078  
    4949#include "core/ConfigValueIncludes.h"
    5050#include "core/command/ConsoleCommand.h"
     51#include "core/GUIManager.h"
    5152#include "core/input/InputManager.h"
    5253#include "core/input/InputState.h"
     
    533534        {
    534535            this->bActive_ = false;
     536            GUIManager::getInstance().getLuaState()->doString("inGameConsoleClosed()"); // Notify the SheetManager in lua, that the console has been closed.
    535537            InputManager::getInstance().leaveState("console");
    536538            this->shell_->unregisterListener(this);
     
    609611    /*static*/ void InGameConsole::closeConsole()
    610612    {
     613        GUIManager::getInstance().getLuaState()->doString("inGameConsoleClosed()");  // Notify the SheetManager in lua, that the console has been closed, but not by ESC.
    611614        InGameConsole::getInstance().deactivate();
    612615    }
Note: See TracChangeset for help on using the changeset viewer.