44 lines
912 B
C++
44 lines
912 B
C++
#pragma once
|
|
|
|
#include "GuiWidget.h"
|
|
#include "blitz/misc/Time.h"
|
|
#include "client/config/BlitzConfig.h"
|
|
#include "client/input/InputManager.h"
|
|
#include <array>
|
|
#include <string>
|
|
|
|
namespace blitz {
|
|
|
|
namespace client {
|
|
class Client;
|
|
} // namespace client
|
|
|
|
namespace gui {
|
|
|
|
class OptionsMenu : public GuiWidget, public input::InputListener {
|
|
private:
|
|
bool m_ShowFPS;
|
|
bool m_VSync;
|
|
bool m_IsKeyPopupOpen;
|
|
bool m_KeyPopupShouldClose;
|
|
utils::Timer m_Timer{100};
|
|
input::KeyAction m_CurrentAction;
|
|
input::InputManager& m_InputManager;
|
|
|
|
public:
|
|
OptionsMenu(GuiWidget* parent, client::Client* client, input::InputManager& inputManager);
|
|
virtual ~OptionsMenu();
|
|
|
|
virtual void Render() override;
|
|
|
|
virtual void OnKeyDown(int key) override;
|
|
|
|
private:
|
|
std::string GetKeyActionCodeName(input::KeyAction);
|
|
void HotkeyBindingButton();
|
|
void HotkeyBindingPopUp();
|
|
};
|
|
|
|
} // namespace gui
|
|
} // namespace blitz
|