diff options
Diffstat (limited to 'debugger.cpp')
-rw-r--r-- | debugger.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
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<Vram_Debugger>(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<UI::Label>(window->contents, "Hello, I'm the VRAM debugger!"); +} + +void register_debuggers(UI* ui, UI::Toolbar* toolbar) { + auto btnvram = ui->create_element<UI::Button>(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; + }; +} |