AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Storm WIZARD

Pavel Čížek

Nedávno přišla firma HAAGE & PARTNER na trh s novým vývojovým prostředím StormC; tím však její aktivity na poli vývojářských produktů pro Amigu neskončily.

Vytváření uživatelského prostředí (GUI = Graphical User interface) na Amize rozhodně není jednou z nejjednodušších součástí vývoje aplikací. Od systému 2.0 zde sice máme GadTools.library, která alespoň standardizuje uživatelské rozhraní, při jeho tvorbě je však programátor odkázán sám na sebe nebo některý z sharewarových produktů příkladem může být GadToolsBox, Designer či (Edit. Společným rysem těchto programů je to, že si myší „nakreslíte“ uživatelské rozhraní a necháte si vygenerovat zdrojový kód. který by bylo nutné jinak psát ručně. Přitom některé z těchto produktů umožňují vytvořit GUI závislé na velikosti fontu, jiné zase dovolí requestery zvětšovat a zmenšovat. Souhrnně řečeno - není ideální, ale lepší něco než nic.
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 a BGUI – obě knihovny nabízejí podobné možnosti, první však poskytuje za cenu větších paměťových nároků maximální možnosti v oblasti konfigurace ze strany uživatele, druhá jmenovaná knihovna se naopak orientuje na maximální rychlost, kompaktnost a úsporu paměti.
V této situaci se zde objevuje demoverze (v době, kdy čtete tento článek je již k dispozici i plně funkční verze) komerčního produktu pro návrh a tvorbu uživatelského rozhraní - Storm WIZARD. Podívejme se, jak konkurence schopný je tento komerční produkt formy HAAGE & PARTNER a zda se opravdu vyplatí investovat 100 DM do nákupu tohoto produktu. Registrační poplatky sharewarových produktů v této oblasti jsou přibližně poloviční - to už samo o sobě napovídá, že cílem firmy není finančně zruinovat programátory (obzvláště sharewarové), nýbrž učinit produkt cenově dostupný.

Seznámení
Jaká je tedy filozofie práce a vytváření GUI se Storm WIZARDem? Od výše zmíněných produktů se odlišuje především tím, že definice uživatelského rozhraní je stále uložena v externím souboru, z něhož si program využívající dané rozhraní nahraje za běhu potřebná data. Podobně tomu je například ve Windows, ale i na Macích - tam však tento soubor se zdroji či prostředky (podle platformy) může obsahovat i data, které nejsou přímo svázána s GUI, a navíc bývá obvykle přilinkován v závěrečné části kompilace k hlavní části programu. Podstata práce spočívá v tom, že s editorem GUI Storm WIZARDem -je dodávána knihovna Wizard.library, která umožňuje programu pracovat s binárními daty vytvořenými Storm WIZARDem. Pomocí funkcí této knihovny program nahraje potřebná data, zobrazí okno s GUI, získává od ovládacích prvků informace atd.
Jaká je výhoda tohoto pojetí? Výhod je několik. Je zřejmé, že odpadá problém s generováním zdrojového kódu - nejste tedy nuceni používat programovací jazyky podporované daným nástrojem, ale můžete použít jakékoliv vývojářské prostředí. Navíc není nutné po každá změně uživatelského rozhraní nutno provádět generování kódu a následnou rekompilaci celého programu. Jistě není nutné dále rozvádět. jak výhodné je takovéto oddělení vlastního programu a definice uživatelského rozhraní.
Další rysy tohoto produktu vycházejí z toho, že data vlastně zpracovává sdílená knihovna, která byla autory programu vytvořena - podobně jako je tomu u výše zmíněného MUI či BGUI. Pro má Storm WIZARD, přesněji GUI jím vytvářené, mnoho společného právě s MUI. Především není nutné se omezovat na ovládací prvky podporované GadTools.library -jak za chvíli uvidíte, autoři toho využili skutečně vrchovatě. Dalším typickým rysem je automatické přizpůsobování se velikostí fontů a změně 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í velikost objektu) 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“ programuje chcete mít pod sebou seznam, textové pole (string gadget) a pod tím (vedle sebe) čtyři tlačítku.
Lze tedy říci, že Storm WIZARD je založen na principech výrazně usnadňujících návrh a tvorbu uživatelského rozhraní. Otázkou samozřejmě je, zda realizace „nepokulhává“ za vlastní myšlenkou na to se podíváme nyní.

Vlastnosti GUI
V této části bych se rád pozastavil u některých novinek charakteristických obecně pro objekty uživatelského rozhraní vytvářené Storm WIZARDem (jak jsem již poznamenal, nejedná se o objekty GadTools.library, ale o objekty definované ve Wizard.library).
Základní výhodou je samozřejmě klávesové ovládání jednotlivých prvků uživatelského rozhraní, o které se „to postará samo“. Kromě toho lze každému objektu přiřadit nápovědu, která se zobrazí na liště obrazovky, pokud je myš umístěna nad daným objektem. Základní podporu pro sledování pohybu myši nad prvky GUI zavedl až systém 3.0. Storm WIZARD tuto podporu doplňuje i pro systém 2.x a navíc provádí automatické zobrazování nápovědy. Není to samozřejmě tak efektní, jako bublinová nápověda v MUI 3.x, ale svou funkci splňuje více než dobře. Každý objekt má navíc přiřazen konfigurační řetězec, který lze číst i definovat - to umožňuje jednoduchou implementaci uživatelem definovaných menu či tlačítek, jak ji (na Amize) známe z mnoha programů typu DOpus, GoldEd a dalších.
Dalším charakteristickým rysem je určování polohy jednotlivých objektů určuje se rozmístění do vodorovných a svislých skupin. Kromě toho lze určovat minimální rozměry objektů a výšku objektů relativně k výšce použitého fontu. Pokud je umístěno více objektů v jedné skupině, je možné navíc určovat rozmístění jednotlivých objektů pomocí specialitek jakými jsou údaje o procentuálním množství volného místa na okrajích a mezi objekty či priorita objektu při určování místa, které mu bude přiděleno. Pokud vám to nestačí, je možno umísťovat relativní mezery ručně mezi kterékoliv dva objekty.
Jednou z velkých vymožeností jsou vzájemné vazby objektů. Objekty vhodného typu lze mezi sebou svázat funkční vazbou. Například textovému poli přiřadíme text - písmeno podtržené v tomto textu pak bude aktivovat příslušné textové pole; jiným příkladem může být spojení seznamu a šoupátka, které jím bude pohybovat. Tato spojení jsou používána a automaticky vytvářena i v GadTools.library. Kromě toho však máte k dispozici „upozorňovací“ systém - na změnu stavu jistého objektu může kterýkoliv jiný objekt libovolným způsobem zareagovat. Bude-li tedy uživatel posouvat šoupátkem, může se zároveň v textovém poli průběžně zobrazovat příslušná číselná hodnota nebo se může měnit stav jistého cyklovacího gadgetu. A toto vše se děje automaticky, bez nutnosti speciální podpory programátora. Analogie s MUI se opět nabízí.
Na závěr snad ještě drobnost - pro pohodlí uživatele může program využívající Wizard.library aktuální stav GUI při ukončení programu (tj. velikost okna a s ním související rozmístění ovládacích prvků) uložit zpět do souboru.

Uživatelské rozhraní
Pozastavme se nyní u objektů, které můžete při tvorbě uživatelského rozhraní využívat. Většinu z nich můžete vidět na obrázcích (a většinu z nich používá i samotný Storm WIZARD). Samozřejmostí je možnost určit kromě velikosti objektů i použitý font (je-li třeba použít jiný než standardní font obrazovky), popř. vzhled rámečků, textů a mnoho dalšího.
Mezi základní objekty patří vertikální a horizontální skupiny. Ty jednak sdružují objekty, které mají být umístěny pod sebou či vedle sebe. Navíc je možno danou skupinu libovolně orámovat a přiřadit jí popisný text. Skupině lze přiřadit i více popisných textů - pak vzniká několik skupin s totožnou polohou, které se překrývají. Přepínat mezi nimi lze pomocí záložek; v případě horizontální skupiny to jsou v podstatě „kartotéční lístky“ známé z Windows 95 či Final Writeru 4.0, v případě vertikálních skupin se výsledný vzhled podobá sešitům z OS/2 Warp. Kromě oddělování skupin lze použít i oddělování linkou či mezerou.
Klasická tlačítka již nemusí obsahovat pouze text, ale také libovolný obrázek ve formátu IFF nebo také vektorový obrazec. Standardně jsou k dispozici „vektorové“ podoby tlačítka pro výběr souboru, adresáře či fontu. Není ovšem problém definovat přímo v programu vlastní vektorový obrazec. S dalších objektů, které nejsou běžně dostupné v systému Amigy lze jmenovat „popup“ gadgety -jedná se o tlačítka, při jejichž stlačení se objeví seznam textů či sada obrázků, z nichž si (podobně jako při volbě položky menu) vyberete požadovanou položku. I klasické cyklovací gadgety jsou ve Storm WIZARDu tohoto typu - vzniklý efekt je pak podobný jako při používání utilitky CycleToMenu. Mnozí také ocení rozšíření možností klasického „ListView“ gadgetu - můžete definovat seznamy obsahující více sloupců nebo libovolnou stromovou strukturu. Z mnoha dalších drobností bych jmenoval například „kalendářní“ tlačítko či informační pole definované libovolným formátovacím řetězcem jazyka C.

Další poznámky
Mezi další drobnosti zpříjemňující život programátora na Amize patří například editor requesterů - stačí nadefinovat text requesteru, příslušná tlačítka a zavolat příslušnou funkci Wizard.library. Jaká že je to výhoda? Requestery vypadají stejně jako klasické systémová, ale máte k dispozici klávesové ovládání.
Zatím jsme se nezmínili o tvorbě menu. Zde nezbývá než konstatovat, že jsou podporovány všechny možnosti systému OS 3.x. Kromě toho je opět doplněno automatické zpracování a zobrazení nápovědy (stačí zadat její text) a i pro menu je k dispozici konfigurační řetězec a s ním související možnosti.

Závěr
Doposud zněla samá pozitiva. Jak již patrně z popisu a vlastní zkušenosti vás uživatelů vyplynulo, platí „je to sice moc pěkné, ale každá sranda něco stojí“. Stejně jako v případě již zmiňovaného MUI, nelze používání komplikovanějších requesterů doporučit na holé A500 & spol. Pokud se jedná o jednodušší okna, která nevyužívají dnes tak moderních záložek a tím vlastně umísťují do okna vícenásobný requester, je rychlost dostačující. Pokud bych měl provést srovnání s MUI, mohu říci, že při rozmisťování objektů v okně je mírně rychlejší, vykreslení okna je však výrazně rychlejší v porovnání se Wizard.library. MUI má však větší nároky a především komerční programátor by neměl používat něco, co si musí uživatel navíc sám zaregistrovat (a zaplatit), aby dosáhl plné funkčnosti. Jako obvykle dospíváme k tomu, že MUI je obecně těžko hodnotitelný fenomén.
Vraťme se ale k Storm WIZARDu. Myslím si, že vlastní produkt mohu (i na základě demoverze) vřele doporučit - obzvláště po odchytání některých dětských nemocí, které se určitě v první verzi objeví. Navíc, pokud by se někdy objevila nová verze Amiga OS, postačit 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 v tomto případě jsou samotní uživatelé. Vytvářené aplikace budou v mnoha případech patrně spustitelné s 1 MB RAM na A500, ale ... Rychlost nebude příliš slavná a u větších aplikací pro vážnou práci stejně nezbude příliš velký prostor (to stejně platí již dnes).

Storm Wizard

Hodnocení: 8,0 z 10
Autor: Haage&Partner
Cena: DM 98,-
Typ: komerční

+

celková koncepce, mnoho nových ovládacích prvků, jednoduché programování

-

relativně pomalá 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

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )