Carbon API
Mimari

Carbon, Araç Kutusundan iner ve bu nedenle “Yöneticiler” den oluşur. Her Yönetici, veri yapıları kümelerini ve bunları işlemek için kullanılan işlevleri tanımlayan, işlevsel olarak ilgili bir API'dir. Yöneticiler genellikle birbirine bağımlı veya katmanlıdır. Carbon, dosyaları, belleği, verileri, kullanıcı arayüzünü ve diğer sistem servislerini yönetmek için geniş bir işlevler setinden oluşur.
Mac'e özgü işlevselliğe erişen tüm C dili API prosedürlerini kapsayan bir şemsiye terim olan Carbon, ayrı bir sistem olarak tasarlanmamıştır. Aksine, neredeyse eşdeğer Cocoa API'sı için gereken Objective-C dilini bilmeyen geliştiricilere macOS'un neredeyse tüm işlevselliğini açar.
Carbon, PowerPC Mac OS için mevcut tüm çalıştırılabilir formatlarla uyumludur. Mac OS X ve önceki sürümleri arasındaki ikili uyumluluk, Apple'ın Xcode IDE'lerinde hiç desteklemediği Tercih Edilen Yürütülebilir Format dosyasının kullanılmasını gerektirir.
Carbon'un daha yeni kısımları, çoğu Core Foundation'a dayanan anlayışlarında çok daha fazla nesne yönelimli olma eğilimindedir. HIView Manager (Kontrol Yöneticisinin bir süperseti) gibi bazı Yöneticiler C ++ 'ta uygulanmaktadır ancak Carbon bir C API olmaya devam etmektedir.
Carbon Yöneticilerinin bazı örnekleri:
Dosya Yöneticisi - dosya sistemine erişimi, açılmasını, kapanmasını, okunmasını ve yazmasını yönetir.
Kaynak Yöneticisi - bir programın gerektirebileceği önceden tanımlanmış veri parçaları olan kaynaklara erişimi yönetir. Disk dosyalarından kaynakları okumak ve yazmak için Dosya Yöneticisi'ni çağırır. Kaynaklara örnek olarak simgeler, sesler, resimler, aletler için şablonlar vb aittir.
Font Yöneticisi - yazı tiplerini yönetir. Mac OS X v10.4'ten beri Apple Type Services (ATS) lehine itiraz edildi (QuickDraw'ın bir parçası olarak).
QuickDraw - 2D grafik ilkeleri. Mac OS X v10.4'ten beri Quartz 2D'nin lehine itiraz edildi.
Carbon Event Manager - kullanıcı ve sistem etkinliğini, kodun tanıyabileceği ve yanıt verebileceği olaylara dönüştürür.
HIObject - Carbon'a GUI oluşturmak için bir OO modeli getiren tamamen yeni bir nesne yönelimli API-dir. Mac OS Classic ve Copland'daki HIToolbox, terkedilmiş IBM Sistem Nesne Modeline dayanıyordu, bu yüzden Carbon, eski kodun taşınmasını sağlamak için hızlı ve kirli değiştirme sağlamak zorundaydı. Bu Mac OS X 10.2 veya sonrasında mevcuttur ve Carbon programcılarına Cocoa geliştiricilerinin uzun zamandır tanıdığı araçlardan bazılarını verir. Mac OS X v10.2 ile başlayarak, HIObject, Carbon'daki tüm GUI öğeleri için temel sınıftır. HIView, Apple'ın geliştirici araçlarının bir parçası olan Interface Builder tarafından desteklenmektedir. Geleneksel olarak bu tür GUI mimarileri sağlamak için üçüncü taraf uygulama çerçevelerine bırakılmıştır. Mac OS X v10.4'ten başlayarak, HIObjects, NSObjects'tir ve veri aktarımı veya diske kaydedilmesi için veri akışlarına seri hale getirilebilme özelliğine sahiptir.
HITheme - grafik kullanıcı arayüzü (GUI) elemanlarını ekrana getirmek için QuickDraw ve Quartz kullanıyor. HITheme, Mac OS X Panther'de tanıtıldı ve Görünüm Yöneticisi bu sürümden beri HITheme'nin üstündeki bir uyumluluk katmanıdır.
HIView Manager - kontrollerin oluşturulması, çizilmesi, isabet testi ve manipülasyonunu yönetir. Mac OS X v10.2'den bu yana, tüm kontroller HIViews'tir. Mac OS X v10.4'te, Kontrol Yöneticisi HIView Manager olarak yeniden adlandırıldı.
Pencere Yöneticisi - pencerelerin oluşturulmasını, konumlandırılmasını, güncellenmesini ve değiştirilmesini yönetir. Mac OS X v10.2'den beri, pencerelerin kök HIView'i var.
Menü Yöneticisi - Menülerin oluşturulmasını, seçilmesini ve değiştirilmesini yönetir. Mac OS X v10.2'den beri, menüler HIObjects'tir. Mac OS X v10.3'ten beri, menü içeriği HIViews kullanılarak çizilebilir ve tüm standart menüler çizmek için HIViews kullanır.