diff options
Diffstat (limited to 'vendor/rlImGui-main/examples/asset_browser/item_views.cpp')
| -rw-r--r-- | vendor/rlImGui-main/examples/asset_browser/item_views.cpp | 53 |
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 |
