This commit is contained in:
parent
1cc1d561e2
commit
9511cb5719
@ -91,7 +91,7 @@ void NewMenu::drawNewItemType(StudioContext const&sctx) noexcept {
|
||||
auto const&im = *m_types[m_selectedType];
|
||||
drawFirstPageButtons(im.itemTemplates().size() == 1 ?
|
||||
Stage::NewItemPath : Stage::NewItemTemplate);
|
||||
if (m_stage == Stage::NewItemPath) {
|
||||
if (m_stage == Stage::NewItemPath || m_stage == Stage::NewItemTemplate) {
|
||||
if (m_path.len() == 0) {
|
||||
m_path = im.defaultPath();
|
||||
}
|
||||
@ -108,7 +108,7 @@ void NewMenu::drawNewItemTemplate(StudioContext const&sctx) noexcept {
|
||||
ig::ListBox("Template", [&](size_t const i) -> ox::CStringView {
|
||||
return templates[i]->name();
|
||||
}, templates.size(), m_selectedTemplate, {200, 100});
|
||||
drawButtons(Stage::NewItemType, Stage::NewItemPath);
|
||||
drawButtons(Stage::NewItemPath);
|
||||
});
|
||||
}
|
||||
|
||||
@ -126,15 +126,19 @@ void NewMenu::drawNewItemPath(StudioContext &sctx) noexcept {
|
||||
});
|
||||
}
|
||||
|
||||
void NewMenu::drawButtons(Stage const prev, Stage const next) noexcept {
|
||||
void NewMenu::drawButtons(Stage const next) noexcept {
|
||||
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetContentRegionAvail().x - 198);
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetContentRegionAvail().y - 20);
|
||||
constexpr ImVec2 btnSz{60, 20};
|
||||
if (ImGui::Button("Back", btnSz)) {
|
||||
m_stage = prev;
|
||||
if (auto const p = m_prev.back(); p.ok()) {
|
||||
m_stage = *p.value;
|
||||
}
|
||||
m_prev.pop_back();
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Next", btnSz)) {
|
||||
m_prev.emplace_back(m_stage);
|
||||
m_stage = next;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
@ -149,6 +153,7 @@ void NewMenu::drawFirstPageButtons(Stage const next) noexcept {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetContentRegionAvail().y - 20);
|
||||
constexpr ImVec2 btnSz{60, 20};
|
||||
if (ImGui::Button("Next", btnSz)) {
|
||||
m_prev.emplace_back(m_stage);
|
||||
m_stage = next;
|
||||
}
|
||||
ImGui::SameLine();
|
||||
@ -163,7 +168,10 @@ void NewMenu::drawLastPageButtons(StudioContext &sctx) noexcept {
|
||||
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + ImGui::GetContentRegionAvail().y - 20);
|
||||
constexpr ImVec2 btnSz{60, 20};
|
||||
if (ImGui::Button("Back", btnSz)) {
|
||||
m_stage = Stage::NewItemType;
|
||||
if (auto const p = m_prev.back(); p.ok()) {
|
||||
m_stage = *p.value;
|
||||
}
|
||||
m_prev.pop_back();
|
||||
}
|
||||
ImGui::SameLine();
|
||||
if (ImGui::Button("Finish", btnSz)) {
|
||||
|
@ -29,6 +29,7 @@ class NewMenu final: public Popup {
|
||||
|
||||
private:
|
||||
Stage m_stage = Stage::Closed;
|
||||
ox::Vector<Stage, 2> m_prev;
|
||||
keel::Context &m_kctx;
|
||||
ox::String m_typeName;
|
||||
ox::IString<255> m_itemName;
|
||||
@ -79,7 +80,7 @@ class NewMenu final: public Popup {
|
||||
|
||||
void drawNewItemTemplate(StudioContext const &sctx) noexcept;
|
||||
|
||||
void drawButtons(Stage prev, Stage next) noexcept;
|
||||
void drawButtons(Stage next) noexcept;
|
||||
|
||||
void drawFirstPageButtons(Stage next) noexcept;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user