Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Software
Quartz Composer pro programátory
6. září 2005, 00.00 | Dnes se zaměříme na programátory, využívající objektový vývojový systém Cocoa, a ukážeme si, jak lze tyto komposice přímo využívat pro grafické prvky programů.
Minule jsme si v našem volném seriálku, věnovaném systému Quartz Composer, ukázali, že – a jak – lze komposice z této aplikace přímo používat jako spořiče obrazovky nebo videoklipy ve formátu QuickTime. Dnes se zaměříme na programátory, využívající objektový vývojový systém Cocoa, a ukážeme si, jak lze tyto komposice přímo využívat pro grafické prvky programů.
Jak uvidíme, je to velmi, skutečně velmi pohodlné a takřka bez zvláštní práce – můžeme tak snadno využívat komposice i na "vedlejší" úlohy, dejme tomu pro oživení panelu "o aplikaci"...
Komposice
Nejprve si připravíme samotnou komposici – tím jsme se zabývali v minulých dílech našeho seriálku. Komposice může mít "publikované" vstupní a výstupní porty; jak za chvíli uvidíme, tyto porty lze snadno později v prostředí Cocoa spojit s proměnnými či s metodami naší aplikace.
My pro jednoduchost použijeme základní vzorovou komposici; jen zobrazovaný text publikujeme jako vstupní port, pojmenovaný "text":
Chceme-li, můžeme samozřejmě komposici jakkoli upravit, nebo přidat další publikované vstupní či výstupní porty.
Projekt
Komposice můžeme používat kdekoli v jakékoli aplikaci Cocoa, jež využívá standardní objekty grafického uživatelského rozhraní. V našem jednoduchém příkladu sestavíme triviální aplikaci, jež kromě výše připravené komposice nebude obsahovat téměř nic jiného (jen ještě textové pole pro nastavení hodnoty vstupního portu "text") – spustíme tedy vývojové prostředí Xcode a vyžádáme si vytvoření nového projektu "Cocoa Application", a otevřeme soubor "MainMenu.nib" (prostředí Xcode nám jej připravilo automaticky na základě projektového vzoru) – ten se otevře v aplikace InterfaceBuilder:
První malinký "podraz" spočívá v tom, že InterfaceBuilder z jakéhosi podivného důvodu standardně nenabízí paletu, jež obsahuje objekt "view", odpovídající komposicím Quartz Composeru (ohledně toho, co to znamená "view objekt", můžete nahlédnout do seriálu, věnovaného programování v Cocoa). Musíme tedy tuto paletu nejprve otevřít (stačí to udělat jednou, InterfaceBuilder již si ji pak bude pamatovat): použijeme příkaz "Tools / Palettes / Palette Preferences", v okně palet klepneme na tlačítko "Add...", a zvolíme paletu "QuartzComposer.palette" ve složce "/Developer/Extras/Palettes".
V nové paletě jsou dva objekty: QCView a QCPatchController. První z nich umístíme v InterfaceBuilderu do okna; druhý přímo do NIBu. Pro druhý z nich (Patch Controller) v Inspektoru v režimu "Attributes" klepneme na tlačítko "Load from composition file...", a vybereme soubor s komposicí, který jsme vytvořili v prvém odstavci. U objektu "view" přepneme inspektor do režimu "bindings" a navážeme jeho atribut "patch" na Patch Controller, key "patch":
Již nyní můžeme aplikaci vyzkoušet – základní komposice se bude v okně korektně zobrazovat. My ovšem chceme ještě přidat možnost nastavení zobrazovaného textu; k tomu je třeba ještě přidat pár objektů:
- do okna přidáme textové pole;
- navážeme je v inspektoru v režimu "Bindings" na "patch" s hodnotu "text.value" pro "Model Key Path". Nezapomeneme označit přepínač "Continuously Updates Value".
Nic víc není zapotřebí – není nutné dokonce ani aplikaci buildovat (protože jsme nepsali žádný kód v Objective C a využili jsme pouze standardní objekty z knihoven, a protože InterfaceBuilder sestavuje síť ze skutečných objektů, můžeme vše spustit přímo v něm): jakýkoli text, který zapíšeme do textového pole, se okamžitě zobrazí v komposici (na obrázku vidíme zároveň nastavení v InterfaceBuilderu a v pozadí i běžící, zbuildovanou aplikaci – zde je druhý malinký podraz; podobně, jako jsme přidali paletu v InterfaceBuilderu, musíme v Xcode do projektu přidat framework "Quartz.framework" ze standardní složky "/System/Library/Frameworks"):
Obsah seriálu (více o seriálu):
- Mac OS X Tiger - Vývojářské aplikace nejen pro vývojáře!
- Quartz Composer: základy
- Quartz Composer: co je to "patch"
- Quartz Composer: typy patchů
- Makra Quartz Composeru
- Speciální služby Quartz Composeru
- Quartz Composer pro programátory
Tématické zařazení:
» Rubriky » Multimedia