[studio] Make NewMenu default Name field to focus when it appears
All checks were successful
Build / build (push) Successful in 3m30s
All checks were successful
Build / build (push) Successful in 3m30s
This commit is contained in:
parent
0d8b82ba49
commit
ff666eda9b
@ -53,6 +53,7 @@ void NewMenu::draw(StudioContext &sctx) noexcept {
|
|||||||
case Stage::NewItemType:
|
case Stage::NewItemType:
|
||||||
drawNewItemType(sctx);
|
drawNewItemType(sctx);
|
||||||
break;
|
break;
|
||||||
|
case Stage::NewItemTransitioningToPath:
|
||||||
case Stage::NewItemPath:
|
case Stage::NewItemPath:
|
||||||
drawNewItemPath(sctx);
|
drawNewItemPath(sctx);
|
||||||
break;
|
break;
|
||||||
@ -90,8 +91,8 @@ void NewMenu::drawNewItemType(StudioContext const&sctx) noexcept {
|
|||||||
}, m_types.size(), m_selectedType, {200, 100});
|
}, m_types.size(), m_selectedType, {200, 100});
|
||||||
auto const&im = *m_types[m_selectedType];
|
auto const&im = *m_types[m_selectedType];
|
||||||
drawFirstPageButtons(im.itemTemplates().size() == 1 ?
|
drawFirstPageButtons(im.itemTemplates().size() == 1 ?
|
||||||
Stage::NewItemPath : Stage::NewItemTemplate);
|
Stage::NewItemTransitioningToPath : Stage::NewItemTemplate);
|
||||||
if (m_stage == Stage::NewItemPath || m_stage == Stage::NewItemTemplate) {
|
if (m_stage == Stage::NewItemTransitioningToPath || m_stage == Stage::NewItemTemplate) {
|
||||||
if (m_path.len() == 0) {
|
if (m_path.len() == 0) {
|
||||||
m_path = im.defaultPath();
|
m_path = im.defaultPath();
|
||||||
}
|
}
|
||||||
@ -108,16 +109,18 @@ void NewMenu::drawNewItemTemplate(StudioContext const&sctx) noexcept {
|
|||||||
ig::ListBox("Template", [&](size_t const i) -> ox::CStringView {
|
ig::ListBox("Template", [&](size_t const i) -> ox::CStringView {
|
||||||
return templates[i]->name();
|
return templates[i]->name();
|
||||||
}, templates.size(), m_selectedTemplate, {200, 100});
|
}, templates.size(), m_selectedTemplate, {200, 100});
|
||||||
drawButtons(Stage::NewItemPath);
|
drawButtons(Stage::NewItemTransitioningToPath);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void NewMenu::drawNewItemPath(StudioContext &sctx) noexcept {
|
void NewMenu::drawNewItemPath(StudioContext &sctx) noexcept {
|
||||||
setSize({380, 340});
|
setSize({380, 340});
|
||||||
drawWindow(sctx.tctx, m_open, [this, &sctx] {
|
drawWindow(sctx.tctx, m_open, [this, &sctx] {
|
||||||
if (m_selectedType < m_types.size()) {
|
if (m_stage == Stage::NewItemTransitioningToPath) [[unlikely]] {
|
||||||
ig::InputText("Name", m_itemName);
|
ImGui::SetKeyboardFocusHere();
|
||||||
|
m_stage = Stage::NewItemPath;
|
||||||
}
|
}
|
||||||
|
ig::InputText("Name", m_itemName);
|
||||||
ImGui::NewLine();
|
ImGui::NewLine();
|
||||||
ImGui::Text("Path");
|
ImGui::Text("Path");
|
||||||
auto const vp = ImGui::GetContentRegionAvail();
|
auto const vp = ImGui::GetContentRegionAvail();
|
||||||
|
@ -20,6 +20,7 @@ class NewMenu final: public Popup {
|
|||||||
Closed,
|
Closed,
|
||||||
Opening,
|
Opening,
|
||||||
NewItemType,
|
NewItemType,
|
||||||
|
NewItemTransitioningToPath,
|
||||||
NewItemPath,
|
NewItemPath,
|
||||||
NewItemTemplate,
|
NewItemTemplate,
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user