#pragma once // ── Araç kipi uygulama katmanı ────────────────────────────────────────────── // Çekirdek AracSistemi UI'siz ve araçları bilmez; bu dosya somut araçları kaydeder // (kafa panelleri), lisans kapısını app-global LisansSistemi'ne bağlar ve çok yönlü // girişleri (komut satırı / ortam değişkeni / lisans) tek yerde çözer. #include namespace fiko { class AracSistemi; // wWinMain'den ham komut satırını sakla (calistir içinde tüketilir). void aracKomutSatiriAyarla(const std::string& args); const std::string& aracKomutSatiri(); // İlk bayrak-olmayan argüman = açılacak dosya (.stp/.step/.fikocad/.FikoApt/…). Boş = yok. std::string komutSatirindanDosya(); // Araçları kaydet + lisans kapısını bağla. Lisans YÜKLENDİKTEN sonra çağrılmalı // (kapı LisansSistemi::komutIzinli'ye bakar). Birden çok çağrı zararsız. void aracKayitlariKur(); // Komut satırı → FIKO_ARAC ortam değişkeni → tek-lisanslı araç sırasıyla dener. // Araç kipi açıldıysa true. Lisans reddinde kip AÇILMAZ; sebep günlüğe yazılır. bool aracOtomatikBaslat(); // ---- Araç kipi pencere/yerleşim ayarları (AyarSistemi "Lisans" kategorisi) ---- // Araç YARDIMCI bir alettir; tam CAD'in 1600×900'ü ona göre devasa kalıyor. // Açılışta OS penceresi bu boyuta getirilip ekranda ortalanır. int aracPencereGenislik(); void aracPencereGenislikAyarla(int px); int aracPencereYukseklik(); void aracPencereYukseklikAyarla(int px); // 3B gösterici yüksekliği = pencere genişliği × bu oran (sabit px DEĞİL) → pencere // daraldıkça gösterici de küçülür, en-boy oranı korunur. float aracGostericiOran(); void aracGostericiOranAyarla(float o); // ---- Araç BAŞINA pencere geometrisi (konum + boyut) ---- // Her araç kendi ölçüsünü/konumunu hatırlar (Diagonal ile Ozmo birbirininkini bozmaz). // Kalıcı anahtar: "ayar.arac.pencere." → "x y genislik yukseklik". // Okurken KONUM DOĞRULANIR: kayıtlı yer artık ekranda değilse (monitör çıkarıldı, // çözünürlük düştü) konum yok sayılır → pencere varsayılan yerde açılır, kaybolmaz. struct AracPencereGeo { int x = 0, y = 0, genislik = 0, yukseklik = 0; bool konumGecerli = false; // false → çağıran CW_USEDEFAULT kullanmalı bool boyutGecerli = false; }; AracPencereGeo aracPencereGeoOku(const std::string& kimlik); void aracPencereGeoYaz(const std::string& kimlik, int x, int y, int g, int y2); // "arac.lisanstan_otomatik" ayarı (ayar_kayitlari.cpp kaydeder): lisans YALNIZ tek // aracı kapsıyorsa program o araç kipinde açılsın mı (varsayılan AÇIK). bool aracLisanstanOtomatik(); void aracLisanstanOtomatikAyarla(bool a); } // namespace fiko