# FikoUi Pencere Göçü Kılavuzu (kompakt/futuristik + merkezîleştirme)

Tüm `uygulama/fikocad/*_penceresi.cpp` pencerelerini merkezî iskelete taşıyoruz.
Amaç: kompakt/futuristik, ekranda daha fazla alan, ilk açılışta yükseklik oturur,
uzun pencereler sekmelere bölünür.

## Yeni merkezî API — `#include "fiko/ui/pencere_cerceve.hpp"`

### 1) Pencere iskeleti (RAII)
ESKİ kalıp:
```cpp
ImGui::SetNextWindowSize({300, 360}, ImGuiCond_FirstUseEver);
ustteTutSinif(ustte);
bool acik = true;
if (!ImGui::Begin(baslik, &acik, ImGuiWindowFlags_NoDocking)) { ImGui::End(); return; }
ustteTutDugmesi(pinId, ustte);
...
ImGui::End();
```
YENİ kalıp:
```cpp
using namespace fiko::ui;
bool acik = true;
{
  Pencere p{baslik, &acik, {.boyut={300, 0}, .pinDurum=&ustte}};
  if (p) {
    ... içerik ...
  }
}  // ← yıkıcı End() çağırır
// acik==false ise kapatma mantığını burada işle
```
- `boyut.y = 0` → içeriğe göre otomatik yükseklik (viewport'a cap'li). Sabit yükseklik
  gerekiyorsa değer ver.
- `pinDurum` verilmezse pin başlığa göre kalıcı iç depoda tutulur.
- Viewport-cap sayesinde "ilk açılışta yükseklik tam olmuyor" sorunu çözülür.

### 2) Uzun pencereleri sekmelere böl
200+ satır / çok bölümlü pencereler ikon sekmelere bölünür:
```cpp
if (sekmeBaslat("##sek")) {
  if (sekme("Genel",  "⚙")) { ...; sekmeBitir(); }
  if (sekme("İleri",  "🔧")) { ...; sekmeBitir(); }
  if (sekme("Sonuç",  "📊")) { ...; sekmeBitir(); }
  sekmeKapat();
}
```
Her sekme KISA olmalı → pencere yüksekliği oturur, dikey scroll kaybolur.

### 3) Kompakt katlanır bölüm (CollapsingHeader yerine)
```cpp
if (bolum("🏭", "Döküm Kurulumu")) { ...içerik... }
```

### 4) Form/alan ergonomisi — `#include "fiko/ui/form.hpp"`
Etiket+widget tekrarını tek satıra indirir (elle Text+SameLine+SetNextItemWidth YAZMA):
```cpp
using namespace fiko::ui;
alan("Çap");      ImGui::DragFloat("##cap", &cap, 0.1f);   // sol etiket + tam-genişlik widget
alan("Malzeme");  ImGui::Combo("##m", ...);
anahtarSatiri("Otomatik kısıt", &oto);                     // etiket + sağa yaslı toggle
istatistikSatiri("Hacim", hacim, "cm³");                   // salt-gösterim anahtar-değer
bilgiSeridi(2, "Profil kapalı değil");                     // 0 bilgi 1 başarı 2 uyarı 3 hata
ikonSeritBasla("##arac"); ikonButon("↺","Geri al"); ImGui::SameLine(); ikonButon("↻","İleri al"); ikonSeritBitir();
```
Formlarda bu helper'ları TERCİH ET → tüm pencereler hizalı, kompakt, tutarlı olur.

## Zengin FikoUi bileşenleri (VARSA KULLAN, yeniden yazma)
- Temel: `buton, ikonButon, hedefButon, kart, anahtar, ilerleme, rozet, durumLed, baslikSeridi, neonAyrac, vektorGirdi3, olcuGirdi` (bilesen.hpp)
- Ek: `toastGoster, onayDiyalogu, sekmeCubugu, segmentli, aramaKutusu, sayiStepper, renkSecici, gaugeHalka, ekmekKirintisi, katlanirBasla, ayracKaydir, spinner, bosDurum` (bilesen_ek.hpp)
- CAD: `aciKadran, yonGulu, aralikSlider, sparkGrafik, koordinatCip, zamanSeridi, takimKarti` (bilesen_cad.hpp)
- CAD/CAM: `toleransGirisi, gdtCipi, csysSecici, malzemeKarti, feedsSpeedsPaneli, birimDonusturucu, ifadeGirisi, snapGridCubugu, kesitDuzlemKontrol, durumCubugu` (bilesen_cadcam.hpp)

## Stil kuralları (KESİN)
- Yeni sihirli sayı GÖMME. Boyut/padding gerekiyorsa `fiko::ui::tema()` token'ları veya
  `AyarSistemi` (ayar_kayitlari.cpp) üzerinden. Eklenen HER ayar merkezî panele kayıtlı olmalı.
- Simge kullan: `fiko::ui::ikonButon`, emoji glif ("⚙","🎯","🔧","📊","🔩","💡"). Metin butonları
  yerine ikon+tooltip tercih et (kompaktlık).
- Merkezî bileşenleri KULLAN, yeniden yazma: `buton`, `ikonButon`, `hedefButon`, `kartBasla/Bitir`,
  `anahtar`, `ilerleme`, `rozet`, `durumLed`, `baslikSeridi`, `neonAyrac`, `vektorGirdi3`, `olcuGirdi`.
- `SetNextWindowSize` çağrılarını KALDIR → `Pencere` iskeleti yönetir.
- Davranışı/iş mantığını DEĞİŞTİRME. Yalnız düzen/stil/sekme yeniden yapılandırması.

## Test
- Her küme bitince derleme: PowerShell `.\insa.bat Release`.
- Davranış aynı kalmalı; yalnız görsel/yerleşim kompaktlaşır.
