Files
GabsPuNs-Project_Zenith_Main/Minecraft.Client/Common/UI/UIScene_PauseMenu.h
2026-06-12 15:46:22 +02:00

71 lines
1.7 KiB
C++

#pragma once
#pragma push_macro("byte")
#pragma push_macro("GetNextSibling")
#pragma push_macro("GetFirstChild")
#undef byte
#undef GetNextSibling
#undef GetFirstChild
#include "UIScene.h"
#include "IUIScene_PauseMenu.h"
#include <RmlUi/Core/EventListener.h>
#include <RmlUi/Core/ElementDocument.h>
// NOTE: pop_macro at end of file
class UIScene_PauseMenu : public UIScene, public IUIScene_PauseMenu, public Rml::EventListener
{
public:
UIScene_PauseMenu(int iPad, void *initData, UILayer *parentLayer);
virtual ~UIScene_PauseMenu();
virtual EUIScene getSceneType() { return eUIScene_PauseMenu; }
virtual void tick();
virtual void render(S32 width, S32 height, C4JRender::eViewportType viewport);
virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled);
// Override focus/movie lifecycle for RmlUi (no Iggy movie)
virtual void gainFocus() override;
virtual void reloadMovie(bool force) override;
// Rml::EventListener
void ProcessEvent(Rml::Event& event) override;
protected:
virtual wstring getMoviePath() { return L""; }
virtual void handleLoseFocus() override;
void ShowScene(bool show) override;
void SetIgnoreInput(bool ignoreInput) override { m_bIgnoreInput = ignoreInput; }
void navigateBack();
void OnResume();
void OnHelpAndOptions();
void OnAchievements();
void OnSaveGame();
void OnExitGame();
void OnExitSave();
void OnExitNoSave();
void OnExitCancel();
void OnSaveConfirm();
void OnSaveCancel();
void ShowExitDialog(bool show);
void ShowSaveDialog(bool show);
private:
Rml::ElementDocument* m_document;
bool m_bIgnoreInput;
bool m_bExitDialog;
bool m_bSaveDialog;
};
#pragma pop_macro("GetFirstChild")
#pragma pop_macro("GetNextSibling")
#pragma pop_macro("byte")