From a9a0d1ee84397621b6172693330b48e9474b0a91 Mon Sep 17 00:00:00 2001 From: quou Date: Tue, 31 Dec 2024 13:44:32 +1100 Subject: UI modal windows --- debugger.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 debugger.cpp (limited to 'debugger.cpp') diff --git a/debugger.cpp b/debugger.cpp new file mode 100644 index 0000000..6a71e15 --- /dev/null +++ b/debugger.cpp @@ -0,0 +1,40 @@ +#include "debugger.hpp" +extern "C" { +#include "plat.h" +} + +struct Vram_Debugger : UI::Modal { + UI::Element* enable_btn; + + Vram_Debugger(UI* ui, UI::Element* parent): + UI::Modal(ui, parent, "VRAM debugger") { + } +}; + +void create_vram_debugger( + UI* ui, + UI::Element* parent, + UI::Element* button +) { + auto window = ui->create_element(parent); + window->enable_btn = button; + window->handler = [](UI::Element* e, const UI::Message& m) { + if (m.type == UI::Message::Type::destroy) { + auto window = (Vram_Debugger*)e; + window->enable_btn->enable(); + } + return 0; + }; + ui->create_element(window->contents, "Hello, I'm the VRAM debugger!"); +} + +void register_debuggers(UI* ui, UI::Toolbar* toolbar) { + auto btnvram = ui->create_element(toolbar, "VRAM Debugger"); + btnvram->handler = [](UI::Element* e, const UI::Message& m) { + if (m.type == UI::Message::Type::click) { + e->disable(); + create_vram_debugger(e->ui, e->ui->root, e); + } + return 0; + }; +} -- cgit v1.2.3-54-g00ecf