summaryrefslogtreecommitdiff
path: root/src/port/ui/PortMenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/port/ui/PortMenu.h')
-rw-r--r--src/port/ui/PortMenu.h64
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