Files

53 lines
1.4 KiB
C++
Raw Permalink Normal View History

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