Storm WIZARD 2.0Pavel Čížek
Nedávno přišla firma HAAGE & PARTNER na trh s novou verzí jejího produktu pro
rychlý a snadný vývoj uživatelského rozhraní - tímto programem je Storm WIZARD
2.0. V loňském roce se uživatelé Amigy mohli seznámit s první verzí tohoto
produktu, který si kladl za cíl usnadnění tvorby uživatelského prostředí na
Amize a také zpřístupnění moderních ovládacích prvků, které nejsou systémem
Amigy přímo podporovány. Možnosti jsou totiž od systému 2.0 dány
„GadTools.library“, která sice standardizuje uživatelské rozhraní, ale
nepodporuje přímo ovládání z klávesnice, nepřizpůsobuje se automaticky velikostí
použitých fontů ani okna a samozřejmě v ní neexistují moderní ovládací prvky.
Situaci se snažili řešit někteří autoři pomocí sharewarových knihoven, které by
usnadnili proces tvorby GUI a zároveň doplnili systém o ovládací prvky používané
v moderních operačních systémech. Mezi nejznámější patří MUI, objektově
orientovaný systém, který přes vyšší nároky na hardware patří na Amize mezi
standardy a který nastavuje onu pomyslnou laťku pro srovnání podobných systémů
pro tvorbu a vývoj uživatelského rozhraní.
Nová verze Storm WIZARDu 3.0. která byla kompletně přepracována, přichází s
řešením, které už nenabízí pouze snadný a mocný nástroj pro GUI, ale také jisté
vyhlídky do budoucnosti. Jak jistě víte, společnost ProDAD pracuje na novém
operačním systému p-OS (vývojářské beta verze jsou již k dispozici), který by
mohl nahradit stávající AmigaOS (alespoň na PowerPC počítačích). Ačkoli přenos
programů používajících standardní systémové knihovny by měl být poměrně
jednoduchý, programy spoléhající se na různé sharewarové knihovny budou mít
situaci podstatně komplikovanější (pokud daná knihovna nebude přenesena na p-OS
či jiný v budoucnosti používaný systém). A to by se programátorům používajícím
Storm WIZARD stati nemělo, neboť verze tohoto produktu pro p-OS je již na světě.
Podívejme se nyní, jak konkurence schopný tento komerční produkt formy HAAGE &
PARTNER je a zda se opravdu vyplatí investovat 150 DM do nákupu tohoto produktu
(cena je o 50% vyšší než u předchozí verze). Seznámení
Pro ty, kteří nečetli recenzi předchozí verze v krátkostí připomenu, jaká je
filozofie práce a vytváření GUI se Storm WIZARDem? Uživatelské rozhraní se
vytváří v editoru (= Storm WIZARDu) a je uloženo v samostatném souboru (je to
IFF WZRD soubor). Program, který chce daný návrh použít, si pomocí dodávané
knihovny „wizard.library“ (která je však i volně dostupná na Aminetu) nahraje za
běhu potřebná data a použije je (opět prostřednictvím funkcí WIZARD.library).
Výhodou tohoto pojetí je, že odpadá problém s generováním zdrojového kódu; lze
tedy měnit uživatelské rozhraní nezávisle na vašem programu a navíc nejste tedy
nuceni používat programovací jazyky podporované daným nástrojem. Ve verzi 2.0
jsou k dispozici soubory potřebné pro použití WIZARD.library pro Assembler,
BlitzBasic, Céčko, Éčko a Pascal, takže si na své přijdou téměř všichni
příznivci programování.
Další rysy tohoto produktu vycházejí z toho, že data vlastně zpracovává sdílená
knihovna (podobně jako je tornu u výše zmíněného MUI). Především není nutné se
omezovat na ovládací prvky podporované GadTools.library a jejich možnosti. Dále
je samozřejmostí automatické přizpůsobování se velikostem fontů a změnám
velikostí oken. S tím samozřejmě souvisí způsob návrhu GUI - neurčují se nějakým
způsobem relativizované souřadnice (jak je tomu například v GadToolsBoxu či ve
Windows), ale popíše se rozmístění objektů do skupin vertikálních a
horizontálních (popř. minimální a maximální velikost objektu, jeho „důležitost“
atd.) a Wizard.library tlačítka a jiné objekty uživatelského rozhraní vhodně v
okně rozmístí. Pokud by tedy bylo třeba navrhnout jednoduché okno pro výběr
souboru. „sdělíte“ programu je chcete mít pod sebou seznam, textové pole (string
gadget) a pod tím (vedle sebe) čtyři tlačítka. Definice vzhledu (= rozmístění
ovládacích prvků) je tedy založena na stejném principu jako v případě MUI, ale
na rozdíl od MUI nedefinujete toto uspořádání v zdrojovém kódu programu, nýbrž
pomocí GUI ve Storm WIZARDu. Novinky
Zastavme se nejprve u novinek v oblasti nabízených objektů. Zde nedošlo k
příliš velkým změnám; došlo k rozšíření možností horizontálních a vertikálních
skupin, prvků typu „popup“ (tj. tlačítka, která vyvolají nějakou širší nabídku v
podobě textového či grafického menu), dále se zvětšily možnosti seznamů
(listview) a stromových seznamů (mohou nyní obsahovat i obrázky). Jediným zcela
novým objektem (ale velice užitečným) je víceřádkové textové pole; tedy něco, co
vypadá jako běžné pole pro vstup textu, ale může obsahovat libovolný počet
řádek, tabelátory, tučný a zvýrazněný text, lze v něm pracovat s bloky spod.
Kromě toho však byla doplněna přímá podpora pro použití externích BOOPSI
objektů.
Rozsáhlým přepracováním však prošel vlastní Storm WIZARD. Jeho rozhraní bylo
podle autora změněno tak, aby „bylo vzorem v něm vytvářeným produktům“. Můj
dojem je, že vše se stalo podstatně průhlednější. Hlavní okno nyní obsahuje
skupiny pro okno, gadgety, menu, tlačítka, requestery, fonty, knihovny a
obrázky, sloupec, který obsahuje příkazy podle aktivní skupiny a tlačítka pro
otvírání oken. Okna (kromě hlavního) jsou v nové verzi pouze čtyři - okno s
atributy aktuálního objektu, okno se vzájemnými vazbami mezi objekty, informační
okno pro knihovny, fonty a obrázky, a okno zobrazující nápovědu ke gadgetu
vašeho okna, nad který je umístěna myš, pokud existuje. Tím, že se obsah oken
přizpůsobuje automaticky aktuálně modifikovanému objektu a že například volby
pro gadgety jsou shrnuty do jednoho okna, přičemž jsou dostupné pouze ty, které
se daného typu týkají, se stalo vše mnohem přehlednějším a na obrazovce již
nepanuje „nepořádek“ (rozuměj, změt oken). Nejlépe si vše prohlédnete na
obrázcích tady kolem.
Součástí systému je také WIZARD.library. Milým překvapením je u nové verze mnoho
připravených (i zkompilovaných) příkladů v Céčku, Éčku a Pascalu, které ukazují
jak v daném jazyce použít v různých situacích WIZARD.library. Můj subjektivní
pocit je, že se WIZARD.library od předchozí verze zrychlila (přesněji řečeno
vytváření oken na základě souboru obsahujícího popis GUI). Jedinou „vadou“ na
kráse je, že se také zvětšila na téměř 280 KB. Použití
Vzhledem k tomu, že většina možností Storm WIZARDu byla popsána již v
recenzi předchozí verze, není třeba se jimi příliš zabývat. Rád bych ovšem
přiblížil způsob použití GUI vytvářeného Storm WIZARDem v konkrétní aplikaci,
neboť právě snadnost použití bude rozhodujícím faktorem (kromě nabízených
možností).
Důležitým bodem je spolupráce vašeho programu a dat o GUI Storm WIZARD si
samozřejmě přiřadí každému objektu (oknu, gadgetu, fontu) nějaký identifikátor =
číslo. Vy naopak můžete každý objekt pojmenovat, zadat textový identifikátor.
Spojení „člověčího“ textového popisu a interního počítačového čísla je dosaženo
tak, že Storm WIZARD generuje kromě souboru s popisem GUI i hlavičkový soubor,
který obsahuje příslušné definice, např. pro Céčko „#define SYMBOL 0x01“.
Protože toto je jediná jazykově závislá část, existuje možnost zadat formát
definice těchto symbolů pomocí tool typů HEADER_FORMAT a HEADER_SUFFIX v ikoně
Storm WIZARDu. Takže pro Céčko musíte zadat například: HEADER_FORMAT=#define %s 0x%1x
HEADER_SUFFIX=.h
zatímco třeba pro BlitzBasic
HEADER_FORMAT=%s %ld
HEADER_SUFFIX=.bbh Hlavičkový soubor ovšem není to jediné, co vám Storm Wizard vygeneruje;
vytvoří pro vás i zdrojové texty pro lokalizační katalogy (vlastní překlad pak
samozřejmě musíte udělat sami stejně jako vytvoření katalogu pomocí catcomp nebo
něčeho podobného).
Pokud máte již vytvořeno GUI ve Storm Wizardu a chcete jej použít v konkrétním
programu, musíte samozřejmě otevřít WIZARD.library a dále s její pomocí (funkcí
WZ_OpenSurface) nahrát soubor s popisem GUI do paměti. Chcete-li využít
lokalizace, stačí napřed otevřít katalog a předat jej funkci WZ_OpenSurface, o
nic víc se starat nemusíte. Nu a pak, po alokaci handleru, již můžete otevírat
okna. Rozdíl pro běžnému postupu je, že nejprve zavoláte funkci
WZ_CreateWindowObj, které sdělíte obrazovku a identifikátor okna, a která vám
připraví všechny potřebné objekty (tj. alokuje pro ně paměť pospojuje je do
seznamů a dosadí potřebné hodnoty tak, jak je dáno v souboru s popisem GUI). Pak
máte možnost provést vaši vlastní dodatečnou inicializaci (je-li třeba), a
následně pomocí WZ_OpenWindow okno zobrazíte = otevřete včetně všech gadgetů,
menu, tak jak jste je definovali v editoru Storm WIZARDu. Tento postup (tj.
nejprve alokace okna + připojení všech objektů definovaných v nějakém souboru,
pak teprve zobrazení okna se vším všudy) je určitě známo těm z vás, kteří někdy
programovali například pod Windows. No, a pokud okno již nepotřebujete, zase jej
zavřete.
A jak se pak odehrává komunikace mezi programem, uživatelským rozhraním
vytvořeným pomocí WIZARD.library a uživatelem. Prostě běžným způsobem přijímáte
zprávy od Intuition, ty, které chcete zpracovat, použijete a ostatní pošlete
knihovně WIZARD.library. Pokud například váš program bude mít nějaké speciální
funkce na funkčních klávesách, zprávy o stisku klávesy si v případě Fl až F10
nějak zpracujete a ostatní pošlete pomocí WZ_GadgetKey knihovně WIZARD.library,
která již. nějak rozliší, který gadget má zareagovat. A pokud naopak dostanete
signál, že uživatel chce zobrazit nápovědu k nějakému tlačítku, zeptáte se
pomocí WZ_GadgetHelp, jaká nápověda je přiřazena v GUI danému tlačítku (přitom
všechny texty jsou automaticky lokalizovány!). Na všem je co zlepšovat...
Doposud zaznívala samá pozitiva. Nicméně, nic není dokonalé, a pokud se zdá,
že je, tak někdo stejně něco najde. Asi první věcí, kterou si musí každý
rozmyslet, je paměťová náročnost programu používajícího WIZARD.library stejně
jako v případě MUI, jen vlastní knihovna pozře za provozu 300 KB a v podstatě
nelze počítat s tím, že by výsledný program mohl někdy pracovat na 1 MB RAM. Na
MC 68000 / 7 MHz také nelze čekat závratnou rychlost, ale to platí všeobecně pro
jakýkoliv podobný systém.
Dalším (asi zbytečným) omezením je to, že ačkoliv WIZARD.library existuje i ve
verzi pro OS 2.0 a vyšší, samotný Storm WIZARD pracuje pouze pod systémem 3.x
(nemusím snad dodávat, že harddisk je nezbytný). Na druhou stranu lze
předpokládat, že téměř všichni programátoři mají k dispozici vybavenější počítač
s novým operačním systémem.
Co se týče vlastní funkčnosti programu, okno „Notify“ neaktualizuje automaticky
seznam akcí podle právě aktivního objektu tak, jak se to děje v jiných oknech
programu (patrně se jedná o drobné opominutí, které bude brzy odstraněno).
Nabídka objektů je velmi široká, nudná by však neškodilo doplnit lokální menu
jaká podporuje MUI nebo popupmenu.library. Závěr
Storm WIZARD je v této oblasti na Amize v podstatě bezkonkurenční produkt,
který nabízí tvůrcům komerčních aplikaci silný nástroj s jistou budoucností;
pokud by se někdy objevila nová verze Amiga OS či bude třeba přejít na jiný
operační systém vycházející z AmigaOSu, postačí vyměnit Wizard.library (která by
v tom případě patrně byla výrazně menší) a bude možné používat již vytvořené
rozhraní. Hlavní překážkou při jeho použití jsou či mohou být samotní uživatelé.
Vytvářené aplikace téměř jistě (s výjimkou drobných utilitek) nebudou v mnoha
případech spustitelné s 1 MB RAM a rychlost na A500 / A600 také nebude příliš
slavná. Pokud lze předpokládat, že cílová skupina bude mít dostatečné hardwarové
vybavení, nic použití Storm W1ZARDu nebrání (a uživatelé budou jistě také
spokojeni).
Storm WIZARD 2.0 |
Hodnocení: 9,0 z 10 |
Autor: Haage &
Partner |
Cena: DM 148,- |
Typ: komerční |
+ |
celková koncepce, mnoho
nových ovládacích prvků, jednoduché programování |
- |
nároky Wizard.library |
Vytlačiť článok
Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.
Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing
none
|