#include "durum_cubugu.hpp" #include "fiko/cekirdek/dunya.hpp" // AdBilesen (aktif body adı) #include "fiko/sahne/sahne.hpp" #include "imgui.h" #include "lisans_yukle.hpp" // görüntüleyici kipi rozeti namespace fiko { void durumCubuguCiz(Sahne& sahne, f32 zaman, f32 durumMesajBitis, const std::string& durumMesaj) { const SecimKip kip = sahne.kip(); const char* kipAd[] = {"Gövde", "Yüz", "Kenar", "Nokta"}; // ÜST-SAĞA dayalı (alt araç şeridiyle çakışmasın). Ana viewport'a sabit. const ImGuiViewport* durumVp = ImGui::GetMainViewport(); ImGui::SetNextWindowViewport(durumVp->ID); ImGui::SetNextWindowPos( {durumVp->WorkPos.x + durumVp->WorkSize.x - 12.0f, durumVp->WorkPos.y + 8.0f}, ImGuiCond_Always, {1.0f, 0.0f}); // sağ-üst köşe pivotu → sağa dayalı ImGui::SetNextWindowBgAlpha(0.45f); if (ImGui::Begin("##durum", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove)) { // Salt-okunur (lisanssız görüntüleyici) rozeti — kullanıcı düzenleyemediğinde // nedenini SÜREKLİ görsün; toast kaybolur, bu kalır. if (lisansSistemi().saltOkunur()) { ImGui::TextColored({1.0f, 0.55f, 0.25f, 1.0f}, "🔒 Görüntüleyici"); if (ImGui::IsItemHovered()) ImGui::SetTooltip( "Lisans yok/geçersiz — düzenleme kapalı.\n%s\n" "Araçlar → Komut Denetim'den lisans yükleyebilirsin.", lisansOzet().c_str()); ImGui::SameLine(); } ImGui::TextColored({0.4f, 0.8f, 1.0f, 1.0f}, "[%s]", kipAd[(int)kip]); ImGui::SameLine(); // In Work Object (TEK: body VEYA geometrical set) — kullanıcı nerede çalıştığını hep görür. if (const Varlik ab = sahne.inWorkSetMi() ? sahne.aktifGeometrikSet() : sahne.aktifBody(); ab != VARLIK_YOK) if (const AdBilesen* a = sahne.dunya().bul(ab)) { ImGui::TextColored({0.55f, 0.9f, 0.6f, 1.0f}, "⊙ %s", a->ad.c_str()); ImGui::SameLine(); } if (const Dugum* v = sahne.bul(sahne.vurgu.govde)) { ImGui::Text("%s", v->ad.c_str()); if (sahne.vurgu.alt) { ImGui::SameLine(); ImGui::TextDisabled("#%u", sahne.vurgu.alt); } ImGui::SameLine(); } if (zaman < durumMesajBitis) ImGui::TextColored({1.0f, 0.75f, 0.3f, 1.0f}, "%s", durumMesaj.c_str()); } ImGui::End(); } } // namespace fiko