home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
04
/
ami035.txt
< prev
next >
Wrap
Text File
|
1997-04-06
|
12KB
|
276 lines
Ulepszanie blatu (cz. 5.)
-------------------------
APPMENU I INNE
<lead>Menu rozwijane z górnej czëôci ekranu wielu programów
amigowskich sâ z pewnoôciâ czymô, co znacznie uîatwia korzystanie
z zasobów systemu, a takûe dokonywanie wyboru, gdy korzystamy z
jakiegoô programu. Ten sposób wyboru opcji przyjâî sië do tego
stopnia, ûe wykorzystywany jest obecnie przez niemalûe kaûdy
system operacyjny, wyposaûony w ôrodowisko graficzne.
<a>Jarosîaw Horodecki
<txt> System standardowo oferuje cztery takie menu, z których
trzy przeznaczone sâ tylko i wyîâcznie dla potrzeb Workbencha i
zawierajâ jego opcje, a czwarte, nazwane TOOLS, oddane jest do
dyspozycji innych programów oraz uûytkownika. Obecnie doôê czësto
róûne programy po ich uruchomieniu dodajâ swoje nazwy do tego
menu, aby îatwiej byîo do nich powróciê z poziomu ekranu
Workbencha. Menu to moûe byê jednak zastosowane równieû do
wczytywania róûnych programów, w zaleûnoôci od przypisanej mu
przez uûytkownika funkcji. Aby móc je jednak wykorzystaê,
potrzebne sâ specjalnie napisane do tego celu programy. Proponujë
zapoznaê sië z kilkoma z nich.
Najprostsze oferujâ zwykle jedynie dodawanie dodatkowych pozycji
do menu Tools. Do tej grupy naleûâ wîaônie AddTools oraz AppMenu.
Oba oferujâ podobne moûliwoôci, w nieco inny sposób sâ jednak
konfigurowane i nieco inaczej dziaîajâ.
Pierwszy, AddTools, jest programikiem, który powinien byê
umieszczony w katalogu WBStartup Workbencha lub teû w sekwencji
startowej, wtedy jednak do jego uruchomienia naleûy posîuûyê sië
komendâ RUN. Do prawidîowego dziaîania potrzebuje on jedynie
pliku konfiguracyjnego o nazwie AddToolsData, zawierajâcego spis
wszystkich programów, jakie majâ byê doîâczone do menu. Plik ten
moûe byê umieszczony zarówno w tym samym katalogu, co AddTools,
jak i w katalogu, któremu przyporzâdkowane jest urzâdzenie
logiczne S: (zwykle jest to katalog S na partycji systemowej).
Jest to plik tekstowy, jego edycji moûna wiëc dokonaê za pomocâ
dowolnych edytorów, nawet tych najprostszych, jak ED czy Emacs.
Oczywiôcie narzucona jest pewna struktura tego pliku.
Kolejne linijki definiowanego menu przedstawiane sâ w trzech
liniach tekstowych. Pierwsza z nich to nazwa danej opcji, druga
to komenda AmigaDOS-u, jaka ma byê wywoîana po wskazaniu tejûe
opcji, trzecia natomiast definiuje, czy komenda ta ma dziaîaê
synchronicznie czy asynchronicznie. Oto przykîad prostej
konfiguracji komendy, wywoîujâcej standardowâ komendë list
AmigaDOS-u:
<l>Katalog
sys:c/list
A|CON:1/40/318/100/Katalog/close/auto
<txt> Pierwsza i druga linijka tej definicji nie wymaga chyba
specjalnego komentarza. Warto natomiast przyjrzeê sië ostatniej
linijce. Przede wszystkim, co to jest tryb synchroniczny i
asynchroniczny dziaîania programu? Terminy te oznaczajâ
mianowicie odpowiednio: uruchomienie programu tak, ûe AddTools
czeka do zakoïczenia jego dziaîania z podjëciem jakichkolwiek
innych czynnoôci lub uruchomienie wskazanego programu niezaleûnie
od AddTools, które nie zwraca juû uwagi na jego dziaîanie. Oba te
tryby majâ zastosowanie gîównie przy uruchamianiu programów z
wykorzystaniem przekazywania parametrów poprzez ikony. Warto
chyba wspomnieê o tej interesujâcej moûliwoôci.
Proponuje wpisaê do pliku konfiguracyjnego nastëpujâce linijki:
<l>Edytor
sys:utilities/multiview []
A
<txt> Definicja ta wywoîuje program Multiview, sîuûâcy do
wyôwietlania róûnego rodzaju plików tekstowych i graficznych.
Program ten jest skîadnikiem Workbencha, poczâwszy od wesji 3.0.
Zauwaûmy podany w drugiej linijce parametr []. W nawiasach tych
moûe sië znaleúê dowolny îaïcuch znaków. Gdy podczas wybierania
tejûe pozycji z menu wciôniëta jest jakakolwiek ikona, to zamiast
wpisanego w nawiasie îaïcucha znaków umieszczona zostanie nazwa
wskazanego poprzez ikonë pliku wraz z peînâ ôcieûkâ dostëpu.
Spowoduje to oczywiôcie wczytanie tego pliku przez program
Multiview.
Przy wyborze jednej tylko ikony nie moûna jednak zauwaûyê róûnicy
pomiëdzy synchronicznym i asynchronicznym trybem pracy. Proponujë
wiëc korzystajâc z klawisza [Shift] zaznaczyê przynajmniej dwie
ikony, symbolizujâce na przykîad dowolne teksty. Teraz, gdy
korzystamy z trybu synchronicznego, najpierw zostanie uruchomiony
program Multiview z pierwszym wskazanym plikiem, podanym jako
argument. Dopiero po zamkniëciu okienka programu Multiview
wczytany bëdzie drugi i ewentualnie dalsze zaznaczone pliki. W
trybie asynchronicznym natomiast, gdy AddTools nie czeka na
zakoïczenie dziaîania uruchamianego programu, pojawiâ sië
jednoczeônie na ekranie niezaleûne okienka, w których wyôwietlane
bëdâ wszystkie zaznaczane pliki. Jak sâdzë, dziaîanie obu trybów
powinno byê juû dla wszystkich zrozumiaîe.
Warto jeszcze wspomnieê o moûliwoôci skorzystania z wiëcej niû
jednego argumentu w definiowanych komendach. W tym celu wystarczy
posîuûyê sië kilkoma nawiasami kwadratowymi, na przykîad wpisujâc
w linijce przeznaczonej dla komendy:
<l>sys:c/CED [] []
<txt> Spowoduje to przekazanie do wywoîywanego programu o nazwie
CED nazw dwóch pierwszych zaznaczonych plików. Jeûeli zaznaczono
wiëcej niû jeden taki plik, AddTools podawaê je bëdzie kolejno (w
tym wypadku po dwa jednoczeônie) aû do wyczerpania listy.
Jak juû wspomniaîem na poczâtku, AddTools moûe byê uruchamiany
zarówno za pomocâ ikony, jak i z poziomu AmigaDOS-u. W kaûdym z tych
wypadków moûna skorzystaê z trzech dodatkowych opcji, odpowiednio
wpisywanych albo jako tooltypes w ikonie, albo jako dodatkowe
argumenty w CLI lub Shellu.
BREAK_WARN -- powoduje, ûe AddTools bëdzie zawsze otwieraê requester
ûâdajâcy potwierdzenia, zanim sië wyîâczy;
EXTRA_ITEM -- doîâcza do menu TOOLS pozycjë, po której wybraniu
AddTools zostaje wyîâczone;
WINDOW=<opis_okienka> -- umoûliwia zdefiniowanie parametrów
standardowego okienka, jakie otwierane bëdzie przy uruchamianiu
programów za poôrednictwem AddTools; definicja okienka jest taka
sama jak w systemie Amigi, informacji na ten temat moûna wiëc
zaczerpnâê z dokumentacji AmigaDOS-u.
To chyba wszystko, co moûna powiedzieê na temat programu
AddTools. Przejdúmy zatem do bardzo do niego podobnego AppMenu.
Programik z pewnoôciâ prostszy w obsîudze, choêby dziëki temu, ûe
wszystkie opcje wywoîywane sâ jedynie poprzez specjalnie do tego
celu przygotowany graficzny interface uûytkownika.
Najwiëkszym chyba problemem, zwiâzanym z uruchomieniem programu,
jest koniecznoôê stworzenia podkatalogów o nazwie AppMenu na
urzâdzeniach logicznych ENV: oraz ENVARC:. Najczëôciej sâ to
odpowiednio katalogi ENV na RAM-dysku (RAM:) oraz
sys:prefs/envarc, oczywiôcie na partycji systemowej. Program nie
potrafi ich samodzielnie stworzyê, co mi sië wydaje nieco
niezrozumiaîe. Niemniej jednak po utworzeniu tych plików moûna
juû przystâpiê do uruchomienia programu.
Program AppMenu skîada sië z dwóch czëôci. Pierwsza z nich to
procedura odpowiedzialna za obsîugë samego menu, druga natomiast
to program umoûliwiajâcy definiowanie kolejnych pozycji w menu
oraz przypisywanie im pewnych dziaîaï. Oba programy mogâ byê
oczywiôcie uruchamiane zarówno z poziomu Workbencha, jako ikonki,
jak i z poziomu AmigaDOS-u. Program sterujâcy menu, nazwany
AppMenuCX, dziaîa jako zwykîe commodity i daje moûliwoôê podania
jednego parametru: CX_PRIORITY=(n), gdzie n to oczywiôcie
priorytet programiku w systemie. Standardowâ wartoôciâ
przyjmowanâ z góry jest zero.
Drugi z programików dziaîa natomiast na zasadzie zwykîych
programów konfiguracyjnych systemu (preferences) i, gdy jest
uruchamiany z poziomu AmigaDOS-u, daje moûliwoôê podania jednego
z czterech parametrów: FROM=(nazwa_pliku), EDIT, USE oraz SAVE.
Ich znaczenie jest identyczne z podanym w instrukcji Workbencha.
W ikonce jako tooltypes moûna z kolei podaê dwie opcje:
SCREENFONT=(NO|YES) -- czy AppMenu ma uûywaê kroju liter topaz/8 czy
zdefiniowanego w konfiguracji?
SAVEICONS=(NO|YES) -- czy wraz z plikami konfiguracyjnymi majâ
byê nagrywane takûe odpowiadajâce im ikony?
Definicja poszczególnych linijek dopisywanych do menu Tools
przebiega w sposób bardzo prosty i zrozumiaîy. Po wybraniu
gadûetu NEW pojawia sië kursor, oczekujâc na wpisanie w polu
COMMAND komendy, jaka ma zostaê wywoîana po uûyciu definiowanej
opcji. Jej nazwa, która pojawi sië w menu, jest wpisywana do
okienka MENU ITEMS. Zawiera ono spis wszystkich pozycji naszego
menu, które oczywiôcie w kaûdej chwili moûna w dowolny sposób
przedefiniowaê. Kaûdej pozycji menu oprócz komendy, jaka ma
zostaê wywoîana, moûna takûe przyporzâdkowaê jeden argument,
który bëdzie przekazany wywoîywanej komendzie. Sîuûy do tego
gadûet nazwany ARG, który moûna ustawiê w jednej z czterech
pozycji:
NONE -- komenda nie otrzymuje ûadnych argumentów;
ICONS -- argumentami sâ wciôniëte ikonki;
REQUESTER -- pokazuje sië requester, który czeka na wskazanie pliku;
ICONS/REQUEST -- jeûeli ûadna ikonka nie jest wybrana, to otwierany
jest requester.
Podany argument jest automatycznie wstawiany na koniec podanego
îaïcucha znaków, bëdâcego komendâ AmigaDOS-u. Jeûeli ma on byê
wstawiony w inne miejsce, naleûy skorzystaê ze znaków []. Wtedy
nazwa wskazanego pliku wraz z peînâ ôcieûkâ dostëpu bëdzie
wpisana wîaônie w oznaczone tak miejsce.
Warto jeszcze wspomnieê o kilku przydatnych funkcjach edycyjnych,
jak kasowanie wskazanej pozycji z menu, ale moûliwe jest takûe
dokonanie zmiany pozycji poszczególnych opcji, a takûe kopiowanie
ich i powielanie. Niekiedy zastosowanie tych kilku prostych
pomocy moûe w znacznym stopniu uîatwiê i przyôpieszyê tworzenie
wîasnego menu.
Na koniec tej czëôci chciaîbym jeszcze wymieniê programik o
podobnym do dwóch poprzednich zastosowaniu, jednak nieco inaczej
rozwiâzujacym problem wyboru poszczególnych opcji. Programik ten
nazywa sië LazyBench. Nie dodaje on dowolnych opcji do menu
TOOLS, dodaje natomiast jednâ opcjë, która otwiera okno
zawierajâce listë wszystkich komend. Nieco inne sâ równieû
zaîoûenia autora. Nie chciaî on mianowicie stworzyê programu
sîuûâcego do wywoîywania dowolnych programów za pomocâ opcji z
menu, ale uîatwiê wczytywanie najpotrzebniejszych programów,
jednak tylko tych zaopatrzonych we wîasne ikonki. LazyBench nie
daje moûliwoôci uruchamiania jakichkolwiek programów, które nie
majâ przypisanej im ikonki. Moûliwe jest za to wczytywanie
plików z danymi, o ile oczywiôcie majâ one wpisany odpowiedni
program jako DEFAULT TOOL w ich ikonce.
Obsîuga programu LazyBench jest równieû bardzo prosta. Po jego
wywoîaniu jest wyôwietlane okienko, którego najwiëkszâ czëôê
stanowi lista zdefiniowanych w pliku konfiguracyjnym programów. Z
listy tej moûna od razu wybieraê programy do uruchomienia, za
pomocâ opcji EDIT LIST moûna jâ jednak dowolnie modyfikowaê.
Edycji listy naleûy dokonaê za pomocâ dowolnego edytora tekstu.
Aby program sië na niej znalazî, wystarczy w kolejnej linijce
pliku konfiguracyjnego (który jest zwykîym plikiem tekstowym)
wpisaê peînâ ôcieûkë dostëpu do tego programu. Jeûeli ma on
ikonkë, pojawi sië natychmiast na liôcie.
W ikonce programu moûna zastosowaê wiele tooltype'ów, jak:
CX_POPUP=(YES|NO) -- otwieranie okienka przy uruchamianiu;
CX_POPKEY=(klawisze) -- kombinacja klawiszy, po których uûyciu
otworzy sië okienko programu;
CX_PRI=(n) -- priorytet programu w systemie;
REMEMBER -- pamiëtanie pozycji okienka programu na ekranie;
AUTOHIDE -- automatyczne chowanie okienka po uruchomieniu
programu z listy;
EDITOR -- definicja edytora tekstu standardowo uûywanego do
modyfikacji konfiguracji;
ITEMS -- liczba pozycji, jaka ma byê wyôwietlana w okienku, nie
moûe byê mniejsza od 10, a gdy bëdzie zbyt duûa, okienko moûe
wyjôê poza ekran;
DONOTWAIT -- wyîâczenie oczekiwania Workbencha na zgîoszenie
programu, konieczne, gdy LazyBench uruchamiany jest z katalogu
WBStartup.
Jak widaê, metod rozwiâzania problemu, zwiâzanego z
wykorzystaniem moûliwoôci podczepiania nowych funkcji do
rozwijanych menu, moûe byê wiele. Oczywiôcie nie byîbym w stanie
przedstawiê wszystkich dostëpnych dla Amigi programów,
wykorzystujâcych të moûliwoôê. Opisane pozycje z pewnoôciâ jednak
naleûâ do tych ciekawszych. W nastëpnej czëôci naszego cyklu
zajmiemy sië nieco bardziej zaawansowanymi, ale takûe nieco
bardziej wymagajâcymi, programami naleûâcymi wîaôciwie do tej
samej grupy.
<przyp>Gdzie to zdobyê?
AppMenu v2.2 AminetCD 4
AddTools v1.1 FredFish #928
LazyBench v1.14 FredFish #969