GEMINI-Tips
Tip 1: Unter GEMINI 1.99 kann man Accessories als Anwendung auf einen bestimmten Dateityp anmelden. Es bietet sich an. einen universellen Dateiviewer wie z.B. 1st Guide auf den Dateityp . anzumelden. Voraussetzung ist, daà das Accessory das VA-Protokoll versteht. Bei 1st Guide ist das der Fall. Wenn Sie nicht wissen, ob Ihre Lieblings-Accessories das VA-Protokoll verstehen, können Sie das ausprobieren.
Starten Sie GEMINI und ziehen Sie eine Datei auf das Icon Ihres Accessorys. Wenn es startet und die Datei lĂ€dt oder den Fileselector mit korrektem Pfad anwirft, versteht es das VA-Protokoll. Sie sollten diesen Test allerdings nicht unter MultiTOS durchfĂŒhren, da GEMINI auch das Drag & Drop Protokoll beherrscht, und Sie wollen ja was ĂŒber das VA-Protokoll wissen. Eine Bemerkung vorweg: Unter GEMINI können selbstverstĂ€ndlich mehrere Anwendungen angemeldet werden. Wenn man eine Anwendung auf die Dateimaske . anmeldet muĂ man darauf achten, daĂ diese Maske keine anderen angemeldeten Dateien in der Liste ausblendet. GEMINI sucht die Anwendungsliste von oben nach unten ab, der Typ . muĂ also in der Liste ganz unten stehen.
Das Anmelden eines Accessorys geht furchtbar hakelig: Zuerst muĂ das Accessory in *.PRG oder *.APP umbenannt werden weil GEMINI sonst meint.es wĂ€re keine Datei angewĂ€hlt. Dann muĂ das Icon des Programm-Accessorys selektiert werden. Jetzt kann der Dialog âExtras-Anwendungen...â geöffnet werden, in dem Formular steht jetzt z.B.: â1STGUIDE.APP ist zustĂ€ndig fĂŒr die Dateien:â Hier muĂ . eingetippt werden.
Den Checkbutton âVersteht VA-Meldungâ selektieren. Nach âOKâ wird ein weiterer Dialog mit allen angemeldeten Dateitypen geöffnet. Sie mĂŒssen jetzt noch mit Hilfe von Cut & Paste den Dateityp . ganz nach unten bringen. Mit einem zweiten âOKâ ist die Sache fast erledigt:
Das Accessory muĂ in *.ACC umbenannt werden. Wenn Sie den Dialog âExtras-Anwendungen...â nochmal öffnen, sehen Sie, daĂ GEMINI die Ănderung mitbekommen hat.
Dem Dateiviewing steht nichts mehr im Wege. Ein Doppelklick und 1st Guide spielt Ihre Soundsamples ab. Ein Shift-Doppelklick auf eine angemeldete Datei sorgt ĂŒbrigens dafĂŒr, daĂ GEMINI das normale âWas soll ich machen? [Drucken] [Anzeigen] [Explodieren]â -Formular öffnet.
Tip 2: GEMINI Ă€ndert die Environment-Variable âPATHâ. Falls Sie GEMINI. APP nicht auf der Bootpartition oder in einem Unterverzeichnis haben und als Auto-Applikation starten, kann das einen unschönen Nebeneffekt haben: Accessories finden eventuell ihre Resource- oder andere wichtige Dateien nicht mehr. Lösung: Laden Sie die Datei âGEMINI2\USER\PROFILE.MUPâ mit einem Texteditor. In der dritten Zeile finden Sie den Eintrag: export PATH= â$GEMINIHOME...â. Ăndern Sie die Zeile wie folgt: export PATH=âc:;$GEMINIHOME...â
Tip 3: Ganz kurz, fĂŒr die PureC-Experten: PureC inspiziert undokumentierterweise eine Environment-Variable names âPCâ. Unter GEMINI sollte folgende Zeile in âPRO-FILE.MUPâ Ihre Nerven schonen: export PC =âx:(Pure-C-Hauptverzeichnis)â
Tip 4: Einige der vielen 1st Guide-Fans sollten mal 20,- DM lockermachen. Der Programmierer hat sich bitter beschwert, weil so lÀcherlich wenig Registrierungen eingegangen sind.
Holger Nassenstein
Wenn Sie modale Fensterdialoge programmieren, haben Sie sicher schonmal vor dem Problem gestanden, daĂ die MenĂŒzeile gesperrt werden muĂ. Schön wĂ€re ja, wenn der Benutzer sehen könnte, daĂ das MenĂŒ nicht anwĂ€hlbar ist. AuĂerdem sollte das Desk-MenĂŒ ganz links anwĂ€hlbar bleiben. Mein Tip beruht auf einem nicht dokumentierten Feature des AES. Die MenĂŒtitel können einfach mit âmenu_ienable (menu, title | 0x8000, enable_it);â grau gezeichnet werden.
Wer die C-Bibliothek nicht kennt: menu_ienable ist die AES-Funktion, mit der MenĂŒeintrĂ€ge auf DISABLED gesetzt werden, âtitle | 0x8000â ĂŒbergibt den Index eines MenĂŒtitels mit gesetztem höchstwertigem Bit. Die Vorgehensweise scheint sich durchzusetzen, sie wird von SYSMON 1.09 abgefragt. Bleibt zu hoffen, daĂ ATARI dieses Feature demnĂ€chst dokumentieren wird. Kleiner Scherz: In der Dokumentation zum AES des Falcon hat ATARI festgelegt, daĂ der Eintrag âQuitâ im MenĂŒ âDateiâ als letzter Eintrag zu finden ist ... Na gut, das war unfair: AuĂerdem wurde Cut, Copy & Paste definiert und drei oder vier Shortcuts. Ich habe das Routinchen unter TOS 2.06, Winx, MTOS und MagiX! getestet. Es funktioniert prima, d.h. auch wenn eine untenliegende(!) MenĂŒzeile mit set_menu() bearbeitet wird kommt die MenĂŒzeile nicht(!) als Nebeneffekt nach oben. Die Funktion greift auf zwei globale Variablen zu:
OBJECT *menu, (Darf NULL sein, falls die Resource keine MenĂŒzeile enthĂ€lt.) BOOLEAN desk_menu; (Ist FALSE, wenn das Programm nur FenstermenĂŒs benutzt.) Ach so, nicht zu vergessen: Es reicht nicht aus, die MenĂŒtitel auf DISABLED zu setzen. Die Breite der Box unter den Titeln muĂ auĂerdem auf die Breite des linken Titels gesetzt werden, sonst klappen die MenĂŒs unter grau gezeichneten Titeln runter. AuĂerdem sollte der Status SELECTED abgeschaltet sein, selektierte und graue Titel sehen merkwĂŒrdig aus.
Holger Nassenstein
/* (c)1994 by MAXON-Computer */
/* Autor: Holger Nassenstein */
#define THEBAR 1 /* I-Box fĂŒr den MenĂŒbalken */
#define THEACTIVE 2 /* Box, die alle MenĂŒtitel umfaĂt */
#define THEFIRST 3 /* Titel 'Desk' */
#define is_state(tree, obj, state) (((tree)[(obj)].ob_state & (state)) != 0)
GLOBAL VOID set_menu (BOOLEAN enable)
{
WORD title;
WINDOWP window;
WORD width;
if (menu != NULL)
{
titla = menu [THEFIRST].ob_next;
/* Erster Titel blaibt anwÀhlbar */
if (desk_menu && (enable == is_state(menu, title, DISABLED)))
/* Ist die MenĂŒzeile schon DISABLED ? */
{
width = menu [THEFIRST].ob_width;
do
{
width += menu[title].ob_width;
menu_tnormal(menu, title, TRUE);
menu_ienable(menu, title | 0x8000, enable);
title = menu [title]. ob_next;
} while (title != THEACTIVE);
if (enable)
menu[THEACTIVE].ob_width = width;
else
menu[THEACTIVE].ob_width = menu[THEFIRST].ob_width;
/* MuĂ leider sein, sonst klappen */
/* die MenĂŒs doch herunter */
} /* if */
/* Jetzt FenstermenĂŒs sperren... */
} /* if */
} /* set_menu */