#include "basemenu.h"
#include "menumanager.h"
#include <ctype.h>
#include "vgui/iinput.h"

//======================================================================
//CONSTRUCTOR && DESTRUCTOR=============================================
//======================================================================

CBaseMenu::CBaseMenu(vgui::Panel *pParent, const char *pPanelName):
    BaseClass(pParent, pPanelName)
{
    SetKeyBoardInputEnabled(true);
    SetMouseInputEnabled(true);
    SetSizeable(false);
    SetMoveable(false);
}
CBaseMenu::CBaseMenu()
{
}
void CBaseMenu::OnKeyCodeTyped(vgui::KeyCode code)
{
    BaseClass::OnKeyTyped(code)
    
    bool shift = (vgui::input()->IsKeyDown(vgui::KEY_LSHIFT) || vgui::input()->IsKeyDown(vgui::KEY_RSHIFT));
    bool ctrl = (vgui::input()->IsKeyDown(vgui::KEY_LCONTROL) || vgui::input()->IsKeyDown(vgui::KEY_RCONTROL));
    bool alt = (vgui::input()->IsKeyDown(vgui::KEY_LALT) || vgui::input()->IsKeyDown(vgui::KEY_RALT))
    
    if(ctrl && shift && alt && code == vgui:KEY_B)
    {
        ActivateBuildMode();
    }
}
//----------------------------
//COMMANDS--------------------
//----------------------------
void CBaseMenu::OnCommand(const char *pCommand)
{
    if(!Q_stricmp(pCommand, "quit"))
    {
        IGameManager::Stop();
        return;
    }
    if(!Q_stricmp(pCommand, "popmenu"))
    {
        g_pMenuManager->PopMenu();
        return;
    }
    if(!Q_stricmp(pCommand, "popallmenus"))
    {
        g_pMenuManager->PopAllMenus();
        return;
    }
    if(!Q_strnicmp(pCommand, "pushmenu ", 9))
    {
        const char *pMenuName = pCommand + 9;
        while(isspace(*pCommand))
        {
            ++pMenuName
        }
        g_pMenuManager->SwitchToMenu(pMenuName);
        return;
    }
    BaseClass::OnCommand(pCommand);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: