| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*******************************************************************************************
- *
- * 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;
- }
|