home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 04 / ami035.txt < prev    next >
Text File  |  1997-04-06  |  12KB  |  276 lines

  1. Ulepszanie blatu (cz. 5.)
  2. -------------------------
  3.  
  4. APPMENU I INNE
  5.  
  6. <lead>Menu rozwijane z górnej czëôci ekranu wielu programów
  7. amigowskich sâ z pewnoôciâ czymô, co znacznie uîatwia korzystanie
  8. z zasobów systemu, a takûe dokonywanie wyboru, gdy korzystamy z
  9. jakiegoô programu. Ten sposób wyboru opcji przyjâî sië do tego
  10. stopnia, ûe wykorzystywany jest obecnie przez niemalûe kaûdy
  11. system operacyjny, wyposaûony w ôrodowisko graficzne.
  12.  
  13. <a>Jarosîaw Horodecki
  14.  
  15. <txt> System standardowo oferuje cztery takie menu, z których
  16. trzy przeznaczone sâ tylko i wyîâcznie dla potrzeb Workbencha i
  17. zawierajâ jego opcje, a czwarte, nazwane TOOLS, oddane jest do
  18. dyspozycji innych programów oraz uûytkownika. Obecnie doôê czësto
  19. róûne programy po ich uruchomieniu dodajâ swoje nazwy do tego
  20. menu, aby îatwiej byîo do nich powróciê z poziomu ekranu
  21. Workbencha. Menu to moûe byê jednak zastosowane równieû do
  22. wczytywania róûnych programów, w zaleûnoôci od przypisanej mu
  23. przez uûytkownika funkcji. Aby móc je jednak wykorzystaê,
  24. potrzebne sâ specjalnie napisane do tego celu programy. Proponujë
  25. zapoznaê sië z kilkoma z nich.
  26.  
  27. Najprostsze oferujâ zwykle jedynie dodawanie dodatkowych pozycji
  28. do menu Tools. Do tej grupy naleûâ wîaônie AddTools oraz AppMenu.
  29. Oba oferujâ podobne moûliwoôci, w nieco inny sposób sâ jednak
  30. konfigurowane i nieco inaczej dziaîajâ.
  31.  
  32. Pierwszy, AddTools, jest programikiem, który powinien byê
  33. umieszczony w katalogu WBStartup Workbencha lub teû w sekwencji
  34. startowej, wtedy jednak do jego uruchomienia naleûy posîuûyê sië
  35. komendâ RUN. Do prawidîowego dziaîania potrzebuje on jedynie
  36. pliku konfiguracyjnego o nazwie AddToolsData, zawierajâcego spis
  37. wszystkich programów, jakie majâ byê doîâczone do menu. Plik ten
  38. moûe byê umieszczony zarówno w tym samym katalogu, co AddTools,
  39. jak i w katalogu, któremu przyporzâdkowane jest urzâdzenie
  40. logiczne S: (zwykle jest to katalog S na partycji systemowej).
  41. Jest to plik tekstowy, jego edycji moûna wiëc dokonaê za pomocâ
  42. dowolnych edytorów, nawet tych najprostszych, jak ED czy Emacs.
  43. Oczywiôcie narzucona jest pewna struktura tego pliku.
  44.  
  45. Kolejne linijki definiowanego menu przedstawiane sâ w trzech
  46. liniach tekstowych. Pierwsza z nich to nazwa danej opcji, druga
  47. to komenda AmigaDOS-u, jaka ma byê wywoîana po wskazaniu tejûe
  48. opcji, trzecia natomiast definiuje, czy komenda ta ma dziaîaê
  49. synchronicznie czy asynchronicznie. Oto przykîad prostej
  50. konfiguracji komendy, wywoîujâcej standardowâ komendë list
  51. AmigaDOS-u:
  52.  
  53. <l>Katalog
  54.  
  55. sys:c/list
  56.  
  57. A|CON:1/40/318/100/Katalog/close/auto
  58.  
  59. <txt> Pierwsza i druga linijka tej definicji nie wymaga chyba
  60. specjalnego komentarza. Warto natomiast przyjrzeê sië ostatniej
  61. linijce. Przede wszystkim, co to jest tryb synchroniczny i
  62. asynchroniczny dziaîania programu? Terminy te oznaczajâ
  63. mianowicie odpowiednio: uruchomienie programu tak, ûe AddTools
  64. czeka do zakoïczenia jego dziaîania z podjëciem jakichkolwiek
  65. innych czynnoôci lub uruchomienie wskazanego programu niezaleûnie
  66. od AddTools, które nie zwraca juû uwagi na jego dziaîanie. Oba te
  67. tryby majâ zastosowanie gîównie przy uruchamianiu programów z
  68. wykorzystaniem przekazywania parametrów poprzez ikony. Warto
  69. chyba wspomnieê o tej interesujâcej moûliwoôci.
  70.  
  71. Proponuje wpisaê do pliku konfiguracyjnego nastëpujâce linijki:
  72.  
  73. <l>Edytor
  74.  
  75. sys:utilities/multiview []
  76.  
  77. A
  78.  
  79. <txt> Definicja ta wywoîuje program Multiview, sîuûâcy do
  80. wyôwietlania róûnego rodzaju plików tekstowych i graficznych.
  81. Program ten jest skîadnikiem Workbencha, poczâwszy od wesji 3.0.
  82. Zauwaûmy podany w drugiej linijce parametr []. W nawiasach tych
  83. moûe sië znaleúê dowolny îaïcuch znaków. Gdy podczas wybierania
  84. tejûe pozycji z menu wciôniëta jest jakakolwiek ikona, to zamiast
  85. wpisanego w nawiasie îaïcucha znaków umieszczona zostanie nazwa
  86. wskazanego poprzez ikonë pliku wraz z peînâ ôcieûkâ dostëpu.
  87. Spowoduje to oczywiôcie wczytanie tego pliku przez program
  88. Multiview.
  89.  
  90. Przy wyborze jednej tylko ikony nie moûna jednak zauwaûyê róûnicy
  91. pomiëdzy synchronicznym i asynchronicznym trybem pracy. Proponujë
  92. wiëc korzystajâc z klawisza [Shift] zaznaczyê przynajmniej dwie
  93. ikony, symbolizujâce na przykîad dowolne teksty. Teraz, gdy
  94. korzystamy z trybu synchronicznego, najpierw zostanie uruchomiony
  95. program Multiview z pierwszym wskazanym plikiem, podanym jako
  96. argument. Dopiero po zamkniëciu okienka programu Multiview
  97. wczytany bëdzie drugi i ewentualnie dalsze zaznaczone pliki. W
  98. trybie asynchronicznym natomiast, gdy AddTools nie czeka na
  99. zakoïczenie dziaîania uruchamianego programu, pojawiâ sië
  100. jednoczeônie na ekranie niezaleûne okienka, w których wyôwietlane
  101. bëdâ wszystkie zaznaczane pliki. Jak sâdzë, dziaîanie obu trybów
  102. powinno byê juû dla wszystkich zrozumiaîe.
  103.  
  104. Warto jeszcze wspomnieê o moûliwoôci skorzystania z wiëcej niû
  105. jednego argumentu w definiowanych komendach. W tym celu wystarczy
  106. posîuûyê sië kilkoma nawiasami kwadratowymi, na przykîad wpisujâc
  107. w linijce przeznaczonej dla komendy:
  108.  
  109. <l>sys:c/CED [] []
  110.  
  111. <txt> Spowoduje to przekazanie do wywoîywanego programu o nazwie
  112. CED nazw dwóch pierwszych zaznaczonych plików. Jeûeli zaznaczono
  113. wiëcej niû jeden taki plik, AddTools podawaê je bëdzie kolejno (w
  114. tym wypadku po dwa jednoczeônie) aû do wyczerpania listy.
  115.  
  116. Jak juû wspomniaîem na poczâtku, AddTools moûe byê uruchamiany
  117. zarówno za pomocâ ikony, jak i z poziomu AmigaDOS-u. W kaûdym z tych
  118. wypadków moûna skorzystaê z trzech dodatkowych opcji, odpowiednio
  119. wpisywanych albo jako tooltypes w ikonie, albo jako dodatkowe
  120. argumenty w CLI lub Shellu.
  121.  
  122. BREAK_WARN -- powoduje, ûe AddTools bëdzie zawsze otwieraê requester
  123. ûâdajâcy potwierdzenia, zanim sië wyîâczy; 
  124.  
  125. EXTRA_ITEM -- doîâcza do menu TOOLS pozycjë, po której wybraniu
  126. AddTools zostaje wyîâczone;
  127.  
  128. WINDOW=<opis_okienka> -- umoûliwia zdefiniowanie parametrów
  129. standardowego okienka, jakie otwierane bëdzie przy uruchamianiu
  130. programów za poôrednictwem AddTools; definicja okienka jest taka
  131. sama jak w systemie Amigi, informacji na ten temat moûna wiëc
  132. zaczerpnâê z dokumentacji AmigaDOS-u.
  133.  
  134. To chyba wszystko, co moûna powiedzieê na temat programu
  135. AddTools. Przejdúmy zatem do bardzo do niego podobnego AppMenu.
  136. Programik z pewnoôciâ prostszy w obsîudze, choêby dziëki temu, ûe
  137. wszystkie opcje wywoîywane sâ jedynie poprzez specjalnie do tego
  138. celu przygotowany graficzny interface uûytkownika.
  139.  
  140. Najwiëkszym chyba problemem, zwiâzanym z uruchomieniem programu,
  141. jest koniecznoôê stworzenia podkatalogów o nazwie AppMenu na
  142. urzâdzeniach logicznych ENV: oraz ENVARC:. Najczëôciej sâ to
  143. odpowiednio katalogi ENV na RAM-dysku (RAM:) oraz
  144. sys:prefs/envarc, oczywiôcie na partycji systemowej. Program nie
  145. potrafi ich samodzielnie stworzyê, co mi sië wydaje nieco
  146. niezrozumiaîe. Niemniej jednak po utworzeniu tych plików moûna
  147. juû przystâpiê do uruchomienia programu.
  148.  
  149. Program AppMenu skîada sië z dwóch czëôci. Pierwsza z nich to
  150. procedura odpowiedzialna za obsîugë samego menu, druga natomiast
  151. to program umoûliwiajâcy definiowanie kolejnych pozycji w menu
  152. oraz przypisywanie im pewnych dziaîaï. Oba programy mogâ byê
  153. oczywiôcie uruchamiane zarówno z poziomu Workbencha, jako ikonki,
  154. jak i z poziomu AmigaDOS-u. Program sterujâcy menu, nazwany
  155. AppMenuCX, dziaîa jako zwykîe commodity i daje moûliwoôê podania
  156. jednego parametru: CX_PRIORITY=(n), gdzie n to oczywiôcie
  157. priorytet programiku w systemie. Standardowâ wartoôciâ
  158. przyjmowanâ z góry jest zero.
  159.  
  160. Drugi z programików dziaîa natomiast na zasadzie zwykîych
  161. programów konfiguracyjnych systemu (preferences) i, gdy jest
  162. uruchamiany z poziomu AmigaDOS-u, daje moûliwoôê podania jednego
  163. z czterech parametrów: FROM=(nazwa_pliku), EDIT, USE oraz SAVE.
  164. Ich znaczenie jest identyczne z podanym w instrukcji Workbencha.
  165. W ikonce jako tooltypes moûna z kolei podaê dwie opcje:
  166.  
  167. SCREENFONT=(NO|YES) -- czy AppMenu ma uûywaê kroju liter topaz/8 czy
  168. zdefiniowanego w konfiguracji?
  169.  
  170. SAVEICONS=(NO|YES) -- czy  wraz z plikami konfiguracyjnymi majâ
  171. byê nagrywane takûe odpowiadajâce im ikony?
  172.  
  173. Definicja poszczególnych linijek dopisywanych do menu Tools
  174. przebiega w sposób bardzo prosty i zrozumiaîy. Po wybraniu
  175. gadûetu NEW pojawia sië kursor, oczekujâc na wpisanie w polu
  176. COMMAND komendy, jaka ma zostaê wywoîana po uûyciu definiowanej
  177. opcji. Jej nazwa, która pojawi sië w menu, jest wpisywana do
  178. okienka MENU ITEMS. Zawiera ono spis wszystkich pozycji naszego
  179. menu, które oczywiôcie w kaûdej chwili moûna w dowolny sposób
  180. przedefiniowaê. Kaûdej pozycji menu oprócz komendy, jaka ma
  181. zostaê wywoîana, moûna takûe przyporzâdkowaê jeden argument,
  182. który bëdzie przekazany wywoîywanej komendzie. Sîuûy do tego
  183. gadûet nazwany ARG, który moûna ustawiê w jednej z czterech
  184. pozycji:
  185.  
  186. NONE -- komenda nie otrzymuje ûadnych argumentów;
  187.  
  188. ICONS -- argumentami sâ wciôniëte ikonki;
  189.  
  190. REQUESTER -- pokazuje sië requester, który czeka na wskazanie pliku;
  191.  
  192. ICONS/REQUEST -- jeûeli ûadna ikonka nie jest wybrana, to otwierany
  193. jest requester.
  194.  
  195. Podany argument jest automatycznie wstawiany na koniec podanego
  196. îaïcucha znaków, bëdâcego komendâ AmigaDOS-u. Jeûeli ma on byê
  197. wstawiony w inne miejsce, naleûy skorzystaê ze znaków []. Wtedy
  198. nazwa wskazanego pliku wraz z peînâ ôcieûkâ dostëpu bëdzie
  199. wpisana wîaônie w oznaczone tak miejsce.
  200.  
  201. Warto jeszcze wspomnieê o kilku przydatnych funkcjach edycyjnych,
  202. jak kasowanie wskazanej pozycji z menu, ale moûliwe jest takûe
  203. dokonanie zmiany pozycji poszczególnych opcji, a takûe kopiowanie
  204. ich i powielanie. Niekiedy zastosowanie tych kilku prostych
  205. pomocy moûe w znacznym stopniu uîatwiê i przyôpieszyê tworzenie
  206. wîasnego menu.
  207.  
  208. Na koniec tej czëôci chciaîbym jeszcze wymieniê programik o
  209. podobnym do dwóch poprzednich zastosowaniu, jednak nieco inaczej
  210. rozwiâzujacym problem wyboru poszczególnych opcji. Programik ten
  211. nazywa sië LazyBench. Nie dodaje on dowolnych opcji do menu
  212. TOOLS, dodaje natomiast jednâ opcjë, która otwiera okno
  213. zawierajâce listë wszystkich komend. Nieco inne sâ równieû
  214. zaîoûenia autora. Nie chciaî on mianowicie stworzyê programu
  215. sîuûâcego do wywoîywania dowolnych programów za pomocâ opcji z
  216. menu, ale uîatwiê wczytywanie najpotrzebniejszych programów,
  217. jednak tylko tych zaopatrzonych we wîasne ikonki. LazyBench nie
  218. daje moûliwoôci uruchamiania jakichkolwiek programów, które nie
  219. majâ przypisanej im ikonki. Moûliwe jest za to wczytywanie
  220. plików z danymi, o ile oczywiôcie majâ one wpisany odpowiedni
  221. program jako DEFAULT TOOL w ich ikonce.
  222.  
  223. Obsîuga programu LazyBench jest równieû bardzo prosta. Po jego
  224. wywoîaniu jest wyôwietlane okienko, którego najwiëkszâ czëôê
  225. stanowi lista zdefiniowanych w pliku konfiguracyjnym programów. Z
  226. listy tej moûna od razu wybieraê programy do uruchomienia, za
  227. pomocâ opcji EDIT LIST moûna jâ jednak dowolnie modyfikowaê.
  228. Edycji listy naleûy dokonaê za pomocâ dowolnego edytora tekstu.
  229. Aby program sië na niej znalazî, wystarczy w kolejnej linijce
  230. pliku konfiguracyjnego (który jest zwykîym plikiem tekstowym)
  231. wpisaê peînâ ôcieûkë dostëpu do tego programu. Jeûeli ma on
  232. ikonkë, pojawi sië natychmiast na liôcie.
  233.  
  234. W ikonce programu moûna zastosowaê wiele tooltype'ów, jak:
  235.  
  236. CX_POPUP=(YES|NO) -- otwieranie okienka przy uruchamianiu;
  237.  
  238. CX_POPKEY=(klawisze) -- kombinacja klawiszy, po których uûyciu
  239. otworzy sië okienko programu;
  240.  
  241. CX_PRI=(n) -- priorytet programu w systemie;
  242.  
  243. REMEMBER -- pamiëtanie pozycji okienka programu na ekranie;
  244.  
  245. AUTOHIDE -- automatyczne chowanie okienka po uruchomieniu
  246. programu z listy;
  247.  
  248. EDITOR -- definicja edytora tekstu standardowo uûywanego do
  249. modyfikacji konfiguracji;
  250.  
  251. ITEMS -- liczba pozycji, jaka ma byê wyôwietlana w okienku, nie
  252. moûe byê mniejsza od 10, a gdy bëdzie zbyt duûa, okienko moûe
  253. wyjôê poza ekran;
  254.  
  255. DONOTWAIT -- wyîâczenie oczekiwania Workbencha na zgîoszenie
  256. programu, konieczne, gdy LazyBench uruchamiany jest z katalogu
  257. WBStartup.
  258.  
  259. Jak widaê, metod rozwiâzania problemu, zwiâzanego z
  260. wykorzystaniem moûliwoôci podczepiania nowych funkcji do
  261. rozwijanych menu, moûe byê wiele. Oczywiôcie nie byîbym w stanie
  262. przedstawiê wszystkich dostëpnych dla Amigi programów,
  263. wykorzystujâcych të moûliwoôê. Opisane pozycje z pewnoôciâ jednak
  264. naleûâ do tych ciekawszych. W nastëpnej czëôci naszego cyklu
  265. zajmiemy sië nieco bardziej zaawansowanymi, ale takûe nieco
  266. bardziej wymagajâcymi, programami naleûâcymi wîaôciwie do tej
  267. samej grupy.
  268.  
  269. <przyp>Gdzie to zdobyê?
  270.  
  271. AppMenu v2.2    AminetCD 4
  272.  
  273. AddTools v1.1    FredFish #928
  274.  
  275. LazyBench v1.14    FredFish #969
  276.