aboutsummaryrefslogtreecommitdiff
path: root/vendor/rlImGui-main/examples/asset_browser/item_views.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rlImGui-main/examples/asset_browser/item_views.cpp')
-rw-r--r--vendor/rlImGui-main/examples/asset_browser/item_views.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/rlImGui-main/examples/asset_browser/item_views.cpp b/vendor/rlImGui-main/examples/asset_browser/item_views.cpp
new file mode 100644
index 0000000..0c66a57
--- /dev/null
+++ b/vendor/rlImGui-main/examples/asset_browser/item_views.cpp
@@ -0,0 +1,53 @@
+/*******************************************************************************************
+*
+* raylib-extras [ImGui] example - asset browser
+*
+* This is a more complex ImGui Integration
+* It shows how to build windows on top of 2d and 3d views using a render texture
+*
+* Copyright (c) 2024 Jeffery Myers
+*
+********************************************************************************************/
+
+#include "item_view.h"
+
+#include "imgui.h"
+#include "imgui_utils.h"
+#include "rlImGuiColors.h"
+#include "raylib.h"
+
+extern ImFont* IconFont;
+
+ViewableItem* ListItemView::Show(ViewableItemContainer& container)
+{
+ ViewableItem* item = container.Reset();
+
+ ViewableItem* selected = nullptr;
+ while (item)
+ {
+ float x = ImGui::GetCursorPosX();
+
+ const char* name = TextFormat("###%s", item->Name.c_str());
+ if (item->Tint.a > 0)
+ ImGui::TextColored(rlImGuiColors::Convert(item->Tint), " %s", item->Icon.c_str());
+ else
+ ImGui::Text(" %s", item->Icon.c_str());
+
+ ImGui::SameLine(0, 0);
+ ImGui::Text(" %s", item->Name.c_str());
+ ImGui::SameLine(0, 0);
+
+ ImGui::SetCursorPosX(x);
+ //ImGui::SetItemAllowOverlap();
+
+ ImGui::Selectable(name);
+ if (ImGui::IsItemHovered() && ImGui::IsMouseDoubleClicked(0))
+ {
+ selected = item;
+ }
+
+ item = container.Next();
+ }
+
+ return selected;
+} \ No newline at end of file