diff options
Diffstat (limited to 'src/port/ui/PortMenu.h')
| -rw-r--r-- | src/port/ui/PortMenu.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/src/port/ui/PortMenu.h b/src/port/ui/PortMenu.h new file mode 100644 index 000000000..209166a9e --- /dev/null +++ b/src/port/ui/PortMenu.h @@ -0,0 +1,64 @@ +#ifndef PORTMENU_H +#define PORTMENU_H + +#include <libultraship/libultraship.h> +#include "UIWidgets.h" +#include "Menu.h" +#include "graphic/Fast3D/gfx_rendering_api.h" + +namespace GameUI { + +static const std::unordered_map<int32_t, const char*> menuThemeOptions = { + { UIWidgets::Colors::Red, "Red" }, + { UIWidgets::Colors::DarkRed, "Dark Red" }, + { UIWidgets::Colors::Orange, "Orange" }, + { UIWidgets::Colors::Green, "Green" }, + { UIWidgets::Colors::DarkGreen, "Dark Green" }, + { UIWidgets::Colors::LightBlue, "Light Blue" }, + { UIWidgets::Colors::Blue, "Blue" }, + { UIWidgets::Colors::DarkBlue, "Dark Blue" }, + { UIWidgets::Colors::Indigo, "Indigo" }, + { UIWidgets::Colors::Violet, "Violet" }, + { UIWidgets::Colors::Purple, "Purple" }, + { UIWidgets::Colors::Brown, "Brown" }, + { UIWidgets::Colors::Gray, "Gray" }, + { UIWidgets::Colors::DarkGray, "Dark Gray" }, +}; + +static const std::unordered_map<int32_t, const char*> textureFilteringMap = { + { FILTER_THREE_POINT, "Three-Point" }, + { FILTER_LINEAR, "Linear" }, + { FILTER_NONE, "None" }, +}; + +static const std::unordered_map<int32_t, const char*> motionBlurOptions = { + { MOTION_BLUR_DYNAMIC, "Dynamic (default)" }, + { MOTION_BLUR_ALWAYS_OFF, "Always Off" }, + { MOTION_BLUR_ALWAYS_ON, "Always On" }, +}; + +static const std::unordered_map<int32_t, const char*> logLevels = { + { DEBUG_LOG_TRACE, "Trace" }, { DEBUG_LOG_DEBUG, "Debug" }, { DEBUG_LOG_INFO, "Info" }, + { DEBUG_LOG_WARN, "Warn" }, { DEBUG_LOG_ERROR, "Error" }, { DEBUG_LOG_CRITICAL, "Critical" }, + { DEBUG_LOG_OFF, "Off" }, +}; + +class PortMenu : public Ship::Menu { + public: + PortMenu(const std::string& consoleVariable, const std::string& name); + ~PortMenu() {} + + void InitElement() override; + void DrawElement() override; + void UpdateElement() override; + void Draw() override; + + void AddSidebarEntry(std::string sectionName, std::string sidbarName, uint32_t columnCount); + WidgetInfo& AddWidget(WidgetPath& pathInfo, std::string widgetName, WidgetType widgetType); + void AddSettings(); + void AddEnhancements(); + void AddDevTools(); +}; +} // namespace BenGui + +#endif // PORTMENU_H |
