NewProjectWindow::NewProjectWindow(const char* typeName, bool initRenderer) :
ChildWindow(typeName, false)
{
if (initRenderer)
{
m_renderer = aurora::makeCopied<NewProjectWindowRenderer>();
setRenderer(Theme::getDefault()->getRendererNoThrow(m_type));
}
setTitleButtons(ChildWindow::TitleButton::None);
setTextSize(getGlobalTextSize());
setClientSize({ 450, 350 });
init();
}

I'll give it a go.auto gui = world.get_mut<Tag::GuiRoot>();
auto hudRoot = tgui::HorizontalLayout::create();
auto leftPanel = tgui::VerticalLayout::create();
auto topLeft = tgui::Panel::create();
topLeft->getRenderer()->setBackgroundColor(sf::Color::Green);
leftPanel->add(topLeft);
// auto canvas = GameCanvas::create(world);
// leftPanel->add(canvas, "GameCanvas");
// world.set( Tag::GameCanvas{canvas} );
// leftPanel->setRatio(canvas, 15.0f);
auto bottomLeft = tgui::Panel::create();
bottomLeft->getRenderer()->setBackgroundColor(sf::Color::Blue);
leftPanel->add(bottomLeft);
leftPanel->insertSpace(1, 80.0f);
hudRoot->add(leftPanel, "LeftPanel");
auto rightPanel = tgui::VerticalLayout::create();
auto topRight = tgui::Panel::create();
topRight->getRenderer()->setBackgroundColor(sf::Color::Green);
rightPanel->add(topRight);
auto button = tgui::Button::create("Steal Focus");
button->onMousePress(
[button](){
button->setFocused(true);
}
);
topRight->add(button);
button = tgui::Button::create("Quit");
button->onMousePress(
[world](){
world.add<Tag::ActiveScene, Tag::MenuScene>();
}
);
topRight->add(button);
auto txtArea = tgui::EditBox::create();
txtArea->setPosition(0, 50);
topRight->add(txtArea);
auto bottomRight = tgui::Panel::create();
bottomRight->getRenderer()->setBackgroundColor(sf::Color::Blue);
rightPanel->add(bottomRight);
hudRoot->add(rightPanel, "RightPanel");
hudRoot->setRatio(rightPanel, 0.3f);
hudRoot->setVisible(false);
gui->gui->add(hudRoot, "HudRoot");
sf::Event event;
while(window.window->pollEvent(event)){
if(event.type == sf::Event::Closed){
e.world().set( Tag::Status{ Tag::Status::QUIT });
}
if(gui.gui->handleEvent(event)){
continue;
}
ctrl.ctrl->checkInput(event);
}
bool GameCanvas::canGainFocus() const override
{
return true;
}