diff options
Diffstat (limited to 'core/src/UI/UI_Items.cpp')
-rw-r--r-- | core/src/UI/UI_Items.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/core/src/UI/UI_Items.cpp b/core/src/UI/UI_Items.cpp index 970d0df..a094f76 100644 --- a/core/src/UI/UI_Items.cpp +++ b/core/src/UI/UI_Items.cpp @@ -91,6 +91,8 @@ template <class T> void ItemListEntries(ItemList<T>& list, int& selectedIdx) { constexpr bool kHasDescription = requires(T t) { t.GetDescription(); }; constexpr bool kHasEmail = requires(T t) { t.GetEmail(); }; + constexpr bool kHasStock = requires(T t) { t.GetPrice(); }; + constexpr bool kHasPrice = requires(T t) { t.GetPrice(); }; constexpr int kColumns = 1 /* Name column */ + kHasDescription + kHasEmail; auto ls = LocaleStrings::Instance.get(); @@ -101,6 +103,8 @@ void ItemListEntries(ItemList<T>& list, int& selectedIdx) { ImGui::TableSetupColumn(ls->ItemNameColumn.Get()); if constexpr (kHasDescription) ImGui::TableSetupColumn(ls->ItemDescriptionColumn.Get()); if constexpr (kHasEmail) ImGui::TableSetupColumn(ls->ItemEmailColumn.Get()); + if constexpr (kHasStock) ImGui::TableSetupColumn(ls->ItemStockColumn.Get()); + if constexpr (kHasPrice) ImGui::TableSetupColumn(ls->ItemPriceColumn.Get()); ImGui::TableHeadersRow(); size_t idx = 0; @@ -111,24 +115,32 @@ void ItemListEntries(ItemList<T>& list, int& selectedIdx) { ImGui::TableNextRow(); - // Field: name ImGui::TableNextColumn(); if (ImGui::Selectable(entry.GetName().c_str(), selectedIdx == idx, ImGuiSelectableFlags_SpanAllColumns)) { selectedIdx = idx; } - // Field: description if constexpr (kHasDescription) { ImGui::TableNextColumn(); ImGui::Text("%s", entry.GetDescription().c_str()); } - // Field: email if constexpr (kHasEmail) { ImGui::TableNextColumn(); ImGui::Text("%s", entry.GetEmail().c_str()); } + if constexpr (kHasStock) { + ImGui::TableNextColumn(); + ImGui::Text("%d", entry.GetStock()); + } + + if constexpr (kHasPrice) { + ImGui::TableNextColumn(); + // TODO format in dollars + ImGui::Text("%d", entry.GetPrice()); + } + idx++; } ImGui::EndTable(); @@ -143,7 +155,7 @@ void ItemListEditor(ItemList<T>& list) { static int selectedIdx = -1; static T* editingItem = nullptr; - if (ImGui::Button(ls->AddItem.Get())) { + if (ImGui::Button(ls->Add.Get())) { ImGui::SetNextWindowCentered(); ImGui::OpenPopup(ls->AddItemDialogTitle.Get()); @@ -165,7 +177,7 @@ void ItemListEditor(ItemList<T>& list) { } ImGui::SameLine(); - if (ImGui::Button(ls->EditItem.Get(), selectedIdx == -1)) { + if (ImGui::Button(ls->Edit.Get(), selectedIdx == -1)) { ImGui::SetNextWindowCentered(); ImGui::OpenPopup(ls->EditItemDialogTitle.Get()); @@ -179,7 +191,7 @@ void ItemListEditor(ItemList<T>& list) { } ImGui::SameLine(); - if (ImGui::Button(ls->DeleteItem.Get(), selectedIdx == -1)) { + if (ImGui::Button(ls->Delete.Get(), selectedIdx == -1)) { ImGui::SetNextWindowCentered(); ImGui::OpenPopup(ls->DeleteItemDialogTitle.Get()); |