Add RmlUi: SettingsUIMenu. And the other menus that already use RmlUi have been cleaned up.

This commit is contained in:
Zero
2026-06-20 21:04:32 +02:00
parent f7e0465dc3
commit 2a5633b256
19 changed files with 921 additions and 806 deletions

View File

@@ -7,16 +7,12 @@
#undef GetNextSibling
#undef GetFirstChild
#include "UIScene.h"
#include <RmlUi/Core/EventListener.h>
#include <RmlUi/Core/ElementDocument.h>
// NOTE: pop_macro at end of file
#include "UIScene_RmlBase.h"
class LevelGenerationOptions;
class C4JThread;
class UIScene_LoadCreateJoinMenu : public UIScene, public Rml::EventListener
class UIScene_LoadCreateJoinMenu : public UIScene_RmlBase
{
private:
enum EControls
@@ -112,29 +108,22 @@ public:
UIScene_LoadCreateJoinMenu(int iPad, void *initData, UILayer *parentLayer);
virtual ~UIScene_LoadCreateJoinMenu();
virtual void updateTooltips();
virtual void updateComponents();
virtual void updateTooltips() override;
virtual void updateComponents() override;
virtual UIControl* GetMainPanel();
virtual void handleDestroy();
virtual void handleLoseFocus();
virtual void handleGainFocus(bool navBack);
virtual void handleTimerComplete(int id);
// INPUT
virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled);
virtual void handleFocusChange(F64 controlId, F64 childId);
virtual void handleInitFocus(F64 controlId, F64 childId);
virtual void handleDestroy() override;
virtual void handleGainFocus(bool navBack) override;
virtual void handleTimerComplete(int id) override;
virtual void handleInput(int iPad, int key, bool repeat, bool pressed, bool released, bool &handled) override;
virtual void handleFocusChange(F64 controlId, F64 childId) override;
virtual void handleInitFocus(F64 controlId, F64 childId) override;
virtual EUIScene getSceneType() { return eUIScene_LoadCreateJoinMenu; }
virtual EUIScene getSceneType() override { return eUIScene_LoadCreateJoinMenu; }
static void UpdateGamesListCallback(LPVOID pParam);
virtual void tick();
// Override focus/movie lifecycle for RmlUi (no Iggy movie)
virtual void gainFocus() override;
virtual void reloadMovie(bool force) override;
virtual void render(S32 width, S32 height, C4JRender::eViewportType viewport) override;
void tick() override;
// Rml::EventListener
void ProcessEvent(Rml::Event& event) override;
@@ -166,7 +155,7 @@ private:
int GetListItemCount(const char* listId);
protected:
virtual wstring getMoviePath();
virtual wstring getMoviePath() override;
public:
static int LoadSaveDataThumbnailReturned(LPVOID lpParam,PBYTE pbThumbnail,DWORD dwThumbnailBytes);
@@ -184,7 +173,7 @@ protected:
void LoadSaveFromDisk(File *saveFile, ESavePlatform savePlatform = SAVE_FILE_PLATFORM_LOCAL);
public:
virtual void HandleDLCMountingComplete();
virtual void HandleDLCMountingComplete() override;
private:
void CheckAndJoinGame(int gameIndex);
@@ -200,12 +189,8 @@ private:
void AppendServerToFile(const wstring& ip, const wstring& port, const wstring& name);
static int AddServerKeyboardCallback(LPVOID lpParam, bool bRes);
#endif
// RmlUi document
private:
Rml::ElementDocument* m_document;
};
#pragma pop_macro("GetFirstChild")
#pragma pop_macro("GetNextSibling")
#pragma pop_macro("byte")
#pragma pop_macro("byte")