Modules/Widgets/examples/SimpleGUI.cpp
2024-06-26 08:42:29 +03:00

62 lines
1.5 KiB
C++

#include "SimpleGUI.hpp"
#include "GraphicApplication.hpp"
using namespace tp;
class SimpleGUI : public Application {
public:
SimpleGUI() {
// debug
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[1], DockSpaceWidget::RIGHT);
mGui.removeSideWidget(DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::TOP);
mGui.addSideWidget(&mButtons[2], DockSpaceWidget::LEFT);
mGui.removeSideWidget(DockSpaceWidget::TOP);
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[3], DockSpaceWidget::TOP);
mGui.setCenterWidget(&mButtons[4]);
mButtons[4].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::BOTTOM); };
mButtons[0].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::TOP); };
mButtons[2].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::RIGHT); };
mButtons[3].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::LEFT); };
}
void processFrame(EventHandler* eventHandler) override {
const auto rec = RectF({ 0, 0 }, mWindow->getSize());
mGui.setArea(rec);
mGui.updateConfigWrapper(mWidgetManager);
mGui.procWrapper(*eventHandler, rec);
}
void drawFrame(Canvas* canvas) override {
canvas->rect(mGui.mArea, { 0.1f, 0.1f, 0.1f, 1.f });
mGui.drawWrapper(*canvas);
}
private:
WidgetManager mWidgetManager;
DockSpaceWidget mGui;
ButtonWidget mButtons[5];
};
int main() {
{
SimpleGUI gui;
gui.run();
}
}