AMIGA REVIEW online
  Uvodná stránka     Software     Hry     Obaly     Download     Amiga na PC     Amiga Forever  

Storm WIZARD 2.0

Pavel Číž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


© ATLANTIDA Publishing Všechna práva vyhrazena.
Žádna část nesmí být reprodukována nebo jinak šířena bez písemného svolení vydavatele.



Amiga na Vašem PC rychle, snadno a zdarma!


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 )