#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") { } }; struct Device_Debugger : UI::Modal { UI::Element* enable_btn; Device_Debugger(UI* ui, UI::Element* parent): UI::Modal(ui, parent, "Device 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 create_device_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 = (Device_Debugger*)e; window->enable_btn->enable(); } return 0; }; ui->create_element(window->contents, "Hello, I'm the device 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; }; auto btndevice = ui->create_element(toolbar, "Device Debugger"); btndevice->handler = [](UI::Element* e, const UI::Message& m) { if (m.type == UI::Message::Type::click) { e->disable(); create_device_debugger(e->ui, e->ui->root, e); } return 0; }; }