#include "fiko/cekirdek/workbench.hpp" #include "fiko/cekirdek/cekirdek.hpp" namespace fiko { void WorkbenchKaydi::ekle(WorkbenchOge o) { // İlk eklenen workbench varsayılan aktif olur (aktif_ boşsa). if (aktif_.empty()) aktif_ = o.kimlik; ogeler_.push_back(std::move(o)); } const WorkbenchOge* WorkbenchKaydi::bul(const std::string& kimlik) const { for (const auto& o : ogeler_) if (o.kimlik == kimlik) return &o; return nullptr; } void WorkbenchKaydi::aktifAyarla(Cekirdek& c, const std::string& kimlik) { if (aktif_ == kimlik) return; const WorkbenchOge* yeni = bul(kimlik); if (!yeni) return; // bilinmeyen kimlik: no-op if (const WorkbenchOge* eski = bul(aktif_)) if (eski->cikis) eski->cikis(c); aktif_ = kimlik; if (yeni->giris) yeni->giris(c); c.olaylar().yayinla(WorkbenchDegisti{}, yeni->ad.c_str()); } } // namespace fiko