ImageFX ------- INNE "OBLICZE" Byê moûe po n-tym uruchomieniu ImageFX-a i napatrzeniu sië na firmowy panel zauwaûyliôcie pewnâ prawidîowoôê. Jednych opcji uûywacie bardzo czësto, innych rzadko lub w ogóle. Dodatkowa pokusa usprawnienia sobie pracy przez wywoîywanie najczëôciej wykonywanych operacji przy uûyciu klawiszy, bez potrzeby "przedzierania sië" przez poszczególne panele, subpanele itp., sprawia, ûe przychodzi Wam zapewne do gîowy myôl: "Coô by sië tu przydaîo zmieniê". Tadeusz Talar Temat tego artykuîu nie jest bezpoôrednio zwiâzany z prezentacjâ graficznych moûliwoôci ImageFX-a. Chciaîbym bowiem przedstawiê moûliwoôci modyfikacji konfiguracji tego programu, a zwîaszcza tych elementów, które sâ zwiâzane z interfejsem uûytkownika. Programiôci z firmy Nova Design wîoûyli duûo serca w to, by nabywca ich produktu miaî duûy wpîyw na przebieg pracy z programem, dlatego teû ImageFX, od pojawienia sië na rynku, stanowiî bardzo "giëtkie" w uûyciu narzëdzie. Oprócz klasycznych preferencji programu i parametrów startowych (parametry w pliku ikony -- ang. tooltypes), majâcych bezpoôredni wpîyw na pracë, wbudowano mechanizmy, pozwalajâce na zdefiniowanie: -- operacji uruchamianych automatycznie po starcie programu; -- obîoûenia klawiatury; -- zawartoôci panela sekcji TOOLBOX. Przy umiejëtnym ich zastosowaniu moûemy w radykalny sposób odmieniê "oblicze" dobrze znanego, wydawaîoby sië, programu. Na starcie ImageFX, po uruchomieniu, standardowo zgîasza sië panelem opcji i... tyle. Jeûeli chcemy obrabiaê jakiô plik, to wiadomo, klikamy na gadûecie LOAD itd., ale jeôli chcemy tworzyê nowy obrazek, to juû gorzej. Trzeba zdefiniowaê bufor, tzn. najpierw kliknâê na BUFFER, potem na CREATE BUFFER i dopiero wtedy moûna przystâpiê do okreôlenia rozmiarów obrazka. "Z punktu widzenia myszy" to dwa klikniëcia. Z mojego, o jedno za duûo. Postanowiîem wiëc skorzystaê z moûliwoôci deklaracji tego, co program ma wykonaê bezpoôrednio po starcie, i sprawiê, by na poczâtku witaîo mnie pytanie: "co chcë robiê", czy obrabiaê plik z dysku, czy tworzyê nowy obrazek. Jak sië okazaîo, moûna to zrobiê na dwa, zbliûone do siebie, sposoby. Pierwszy sposób, jak sië póúniej okazaîo o mniejszych moûliwoôciach, to utworzenie w katalogu, w którym znajduje sië program, specjalnego pliku o nazwie "Startup.script". ImageFX podczas uruchomienia sprawdza obecnoôê tego pliku i jeûeli on istnieje, wykonuje go linijka po linijce. Pomimo iû na pierwszy rzut oka zawartoôê "Startup.script" przypomina nieco wyglâd makrodefinicji w jëzyku ARexx, to tak naprawdë niâ NIE JEST. Dlatego teû w pliku tym mogâ byê wpisane TYLKO komendy udostëpniane przez program ImageFX oraz linie puste i linie komentarza, tzn. te, które rozpoczynajâ sië znakiem ";". Komendy, o których piszë, pomyôlane sâ gîównie z przeznaczeniem do wykorzystania ich w makrodefinicjach ARexxa, pisanych dla ImageFX-a. Ich skîadnië i opis moûna znaleúê w instrukcji obsîugi lub w Helpie ImageFX-a 2.0. W wypadku jakiegokolwiek bîëdu wykonywanie instrukcji, zawartych w "Startup.script", jest przerywane. Przykîad mojego "Startup.script" przedstawia LISTING 1. ; LISTING 1 ; Przykîadowy skrypt startowy ImageFX - Startup.script ; ; Po starcie utwórz bufor PAL:LoRes ; CreateBuffer 320 256 FORCE ; ; nastëpnie "wyczyôê" go do biaîego koloru ; (w standardowej palecie kolorów ImageFX jest to kolor z rejestru 1) ; UWAGA! Linia ta dodana ze wzglëdu na moûliwoôê zastosowania tego skryptu ; w kaûdej wersji programu ImageFX (w wersji 2.0 moûna kolor bufora ; deklarowaê bezpoôrednio w komendzie CreateBuffer) ClearBuffer FORCE 255 255 255 ; ; Koniec No dobrze, powiecie, ale miaî byê wybór: "plik z dysku albo nowy obrazek", a tu tylko tworzenie nowego bufora. Fakt ten ma miejsce dlatego, ûe, jak juû napisaîem, w "Startup.script" mogâ byê tylko komendy ImageFX-a, bez domieszki klasycznych rozkazów ARexxa. Brak moûliwoôci zastosowania jakiejkolwiek formy instrukcji warunkowej wyklucza wiëc realizacjë tego "albo". Wyjôciem z tej kîopotliwej sytuacji jest zastosowanie drugiej metody okreôlania operacji uruchamianych po starcie ImageFX-a, tzn. skorzystanie z moûliwoôci utworzenia pliku "Startup.ifx", zawierajâcego makrodefinicjë w jëzyku ARexx. W tym wypadku moûemy sobie pozwoliê na wszystkie szaleïstwa, udostëpniane przez ten jëzyk w poîâczeniu z komendami ImageFX-a. Plik ten powinien byê umieszczony w domyôlnej ôcieûce dostëpu do makrodefinicji ARexxowych, zdefiniowanych w preferencji ImageFX-a. Odpowiedniâ makrodefinicjë przedstawia LISTING 2., natomiast efekt dziaîania rys. 1. * LISTING 2 * * $VER: Startup.ifx v0.09 (10.08.95) * * Makroinstrukcja w jëzyku ARexx dla programu ImageFX. * Autor: Tadeusz Talar * * Instrukcje znajdujâce sië w pliku o tej nazwie sâ automatycznie * wykonywane podczas uruchomienia programu ImageFX. * Bezpoôrednio po starcie mamy moûliwoôê wyboru, czy chcemy * edytowaê plik z dysku, czy tworzyê nowy obrazek. */ OPTIONS RESULTS /* Definicja struktury panela sîuûâcego do wyboru odpowiedniej opcji */ StartUp.0 = 3 StartUp.1 = "JAKI OBRAZEK ?" StartUp.2 = "Z pliku" Startup.3 = "Nowy" ListRequest StartUp.0 StartUp rezultat = result SELECT WHEN rezultat = 2 THEN /* Wybór pliku przy uûyciu requestera */ LoadBuffer WHEN rezultat = 3 THEN DO /* Wybór parametrów tworzonego bufora przy uûyciu panela oraz "wyczyszczenie" go "do biaîego" */ CreateBuffer FORCE ClearBuffer FORCE 255 255 255 END OTHERWISE NOP END Redraw EXIT /************************************************************************/ Na koniec tej czëôci artykuîu dwie uwagi. Po pierwsze jeûeli jednoczeônie istniejâ obydwa opisywane pliki, tzn. "Startup.script" i "Startup.ifx", to najpierw realizowane sâ komendy umieszczone w "Startup.script", a nastëpnie te w "Startup.ifx". Pod palcami Nie jest zbyt odkrywcze stwierdzenie, ûe posîugiwanie sië klawiszami (lub kombinacjami klawiszy) pozwala na znaczne przyspieszenie pracy z kaûdym programem komputerowym. Po pierwszych zachîyôniëciach sië moûliwoôciami zastosowania myszy jako urzâdzenia wejôciowego w interfejsach uûytkownika róûnej maôci wiëkszoôê profesjonalistów (sîowo to w slangu ludzi spod znaku niebieskich i nadgryzionych maszyn liczâcych oznacza po prostu ich samych, co nie ma nic wspólnego z moim rozumieniem tego pojëcia, tzn. ludzi traktujâcych na serio pracë z komputerem) przychylniej patrzy na programy, w których operacje (nie wszystkie, ale te, które moûna) wywoîuje sië poprzez wciôniëcie odpowiedniej kombinacji klawiszy (ang. shortcuts). ImageFX standardowo pozwala na dostëp do wiëkszoôci opcji przy uûyciu klawiszy (charakterystyczna podkreôlona litera w wiëkszoôci nazw gadûetów i opcji oznacza dostëp poprzez wciôniëcie klawiszy [Prawa Amiga]+litera). Wystarczy zerknâê do znajdujâcego sië w katalogu programu pliku "Standard.keys", by przekonaê sië o tym, jak standardowo obîoûone sâ poszczególne klawisze. Istnienie tego pliku nie jest bezpodstawne, moûna bowiem, bazujâc na jego strukturze, utworzyê inny plik -- "Default.keys", zawierajâcy nasze wîasne definicje obîoûeï klawiszy. Plik ten bëdzie nastëpnie automatycznie wczytywany podczas uruchamiania programu. Przykîad i opis struktury pliku "Default.keys" pokazuje LISTING 3. Plik ten jest tylko przykîadem, wiëc za duûo sië w nim "nie dzieje". Po prostu ma tam miejsce obîoûenie klawisza funkcyjnego [F10], tak ûe po jego wciôniëciu moûemy zmierzyê odlegîoôê na obrazku poprzez uruchomienie komendâ ImageFX-a HOOK moduîu typu hook, o nazwie Measure. Jak widaê, jest to obîoûenie globalne. ; LISTING 3 ; Key definitions for ImageFX ; ; Przykîad pliku "Default.keys" - definicji obîoûeï klawiszy ; w programie ImageFX. ; ; Nazwa moûe byê inna, w tym wypadku naleûy wczytaê go przy uûyciu ; gadûetu LOAD KEYS... w panelu PREFERENCES programu ImageFX. ; ; Opis skîadni: ; ; ; linia komentarza ; ; TYTUÎ: nazwa sekcji, do której odnosi sië ; przypisanie, tzn. MAIN (GLOBALNIE) ; oraz TBOX do sekcji (TOOLBOX) ; ; KOMBINACJA_KLAWISZY "KOMENDA(;KOMENDA;...)" ; ;-------------------------------------------------------------------------- MAIN: F10 "HOOK ImageFX:Hooks/Measure" TBOX: ;------------------------------------------------------------------------- Oczywiôcie moûemy sobie zdefiniowaê kilka obîoûeï klawiszy (na róûne okazje) w postaci kilku plików o strukturze "Default.keys", ale o innych nazwach. By z nich skorzystaê, wystarczy w panelu PREFERENCES ImageFX-a kliknâê na LOAD KEYS... (patrz rys. 2.) i wskazaê odpowiedni na danâ okazjë plik, zawierajâcy aktualnie wymaganâ deklaracjë obîoûenia klawiszy. Najciekawsza moûliwoôê przypisania klawiszowi odpowiednich funkcji istnieje w samym programie. W trakcie pracy moûe nam przyjôê bowiem ochota na przypisanie klawiszowi funkcji. Wystarczy wtedy wcisnâê kombinacjë klawiszy [Shift]+[Help], nastëpnie definiowany klawisz lub kombinacjë klawiszy, w pojawiajâcym sië panelu wpisaê komendë ImageFX-a (lub komendy rozdzielone znakiem ";"), z kolei nowy klawisz i nowa definicja itd., a na koïcu znowu [Shift]+[Help]. Po dokonaniu niezbëdnych zmian moûna tak zmodyfikowane obîoûenia klawiszy zapisaê do pliku przy uûyciu SAVE KEYS... w panelu PREFERENCES (rys. 2.). Przykîadowâ sesjë definicji obîoûenia klawisza [F10], tak by realizowaî on funkcjë z LISTINGU 3., pokazuje rys. 3. Toolbox -- kameleon Najwiëksze moûliwoôci ingerencji w wyglâd i zachowanie programu daje zmiana zawartoôci panela TOOLBOX. Potencjalne zmiany mogâ siëgaê tak daleko, ûe po ich dokonaniu nowy TOOLBOX bëdzie nie lada zaskoczeniem dla osoby, która do tej pory pracowaîa z ImageFX-em o standardowym wyglâdzie tego panela. Zastosowaï zaô jest doprawdy bez liku, od "nagiëcia" programu w kierunku jakichô specjalizowanych zastosowaï (np. efekty, operacje na kolorach, transformacje itp.), koïczâc na moûliwoôci spolszczenia nazw opcji tego panela. W tym celu najlepiej najpierw zajrzeê do pliku "Standard.toolbox", w którym znajduje sië standardowa definicja TOOLBOX, i na jego podstawie utworzyê w katalogu programu ImageFX plik "Default.toolbox", który, jak sië zapewne domyôlacie, wczytywany przez ImageFX przy starcie programu bëdzie okreôlaî zawartoôê panela TOOLBOX. Przykîad i strukturë tego pliku objaônia LISTING 4., w którym pokusiîem sië o spolszczenie opcji SIZE i doîoûenie kilku nowych opcji skalowania. ^- ; LISTING 4 ; ; Przykîad pliku "Default.toolbox" okreôlajâcego zawartoôê ; panela Toolbox w programie ImageFX. ; Nazwa moûe byê inna, w tym wypadku naleûy w ikonie uruchamiajâcej ; program ustawiê parametr (tooltype) TOOLCONFIG tak, by zawieraî të ; nazwë, tzn. ; "TOOLCONFIG=Ôcieûka_dostëpu/NazwaPliku" ; ; Opis skîadni: ; ; ; linia komentarza ; ; #: gadûet bez zmiany ; ; TYTUÎ_GADÛETU: ; "TYTUÎ_KOMENDY" KOMENDA(;KOMENDA;...) ; ; lub ; ; TYTUÎ_GADÛETU: ; "TYTUÎ_PANELA" ; "TYTUÎ_1_POZYCJI" KOMENDA(;KOMENDA;...) ; "TYTUÎ_2_POZYCJI" KOMENDA(;KOMENDA;...) ; _S litera wyróûniona w tytule ; "" odstëp pomiëdzy pozycjami ; ; P R Z Y K Î A D ; Pierwszy Rzâd Gadûetów #: #: #: Ro_zmiar: "Rozmiar - Operacje" "_Skaluj..." "Scale" "25 %" "Scale 25 25 PERCENT" "50 %" "Scale 50 50 PERCENT" "75 %" "Scale 75 75 PERCENT" "150 %" "Scale 150 150 PERCENT" "200 %" "Scale 200 200 PERCENT" "" "_Obetnij..." "Crop" "Obetnij Au_tomatycznie" "Crop Auto" "" "Ustaw _Aspekt..." "SetAspect" ; Drugi Rzâd Gadûetów #: #: #: #: #: ; Trzeci Rzâd Gadûetów #: #: #: #: #: ;------------------------------------------------------------------------- ^+ Jedna uwaga: liczba opisanych w pliku nowych TYTUÎÓW GADÛETÓW (lub odpowiadajâcych znaków "#:", co oznacza, ûe nie zmieniamy standardowego przypisania opcji do tego gadûetu) musi wynosiê dokîadnie 14. Gadûety sâ rozmieszczone tak, jak to pokazuje rys. 4 A, tzn. w kolejnoôci od lewego górnego rogu TOOLBOX do prawego dolnego. KOMENDY to opisywane juû w tym artykule komendy ImageFX-a. Jeûeli w komendzie wystëpuje koniecznoôê uûycia " (cudzysîowu), wtedy caîoôê definicji danej opcji (tzn. wszystkie komendy separowane znakiem ";") ujmujemy w znaki ' (apostrof). Efekt moich zmian przedstawia rys. 4 B. Zamiast pliku "Default.toolbox", który za kaûdym razem bëdzie wprowadzaî zmiany w panelu TOOLBOX, lepszym rozwiâzaniem jest utworzenie potrzebnych nam wariantów panelu TOOLBOX, zapisanych w plikach o róûnych nazwach (np. My.toolbox, Efekty.toolbox itp.), i nastëpnie skorzystanie z moûliwoôci okreôlania w pliku ikony, za pomocâ której uruchamiamy program (odpowiedni parametr, ang. tooltype), jaki plik ma byê uûyty po starcie programu. Po dokonaniu tego bëdziemy mieli róûnâ postaê panela TOOLBOX, w zaleûnoôci od ikony uruchamiajâcej program. W tym celu najlepiej skopiowaê plik "ImageFX_WB.info", zmieniê jego nazwë na np. "My_ImageFX.info", nastëpnie z poziomu Workbencha wskazaê të ikonë, wyôwietliê informacje o niej (rys. 5.) i zmodyfikowaê parametr: TOOLCONFIG=ImageFX:My.toolbox Od tej pory kaûdorazowe uruchomienie programu ImageFX przy uûyciu ikony "My_ImageFX" (a nie ikony standardowej "ImageFX") sprawi, ûe zawartoôê panela TOOLBOX bëdzie taka, jakâ zadeklarowaliômy w pliku "My.toolbox". Plik "Default.toolbox" bëdzie przy starcie pominiëty. Myôlë, ûe wyposaûeni w opisane w tym artykule "narzëdzia" z îatwoôciâ dokonacie nawet bardzo drastycznych "operacji plastycznych" na programie ImageFX, kreujâc jego nowe, bardziej funkcjonalne, oblicze.