aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI/UI_Items.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/UI/UI_Items.cpp')
-rw-r--r--core/src/UI/UI_Items.cpp24
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());