home *** CD-ROM | disk | FTP | other *** search
-
- HotHelp-Optionen
- ================
-
- Im Folgenden werden die Optionen erläutert, mit denen das Aussehen und
- Verhalten eines HotHelp-Fensters gesteuert werden kann. Der Name des
- entsprechenden Tags wird durch Voranstellen von 'HHT_' (Abkürzung für
- 'HotHelpTag') gebildet. Außerdem findet sich für die schon aus Version
- 2.0 bekannten Optionen eine gleichnamige Variable in der
- HH_NewWindow-Struktur.
-
- Neben dem Namen der Option wird noch der Datentyp genannt, der bei dem
- entsprechenden TagItem Verwendung findet. Außerdem wird noch angegeben,
- ob die Option erst ab V3 verwendet werden kann und somit keine
- Entsprechung in der HH_NewWindow-Struktur hat. Bei den meisten Optionen
- verwendet HotHelp, wenn die Option nicht angegeben wird, keinen festen
- Default-Wert, sondern den entsprechenden in HotHelpPref voreingestellten
- Wert. Diese Optionen (die also die Voreinstellungen des Users
- überschreiben können) sollten daher auch nur in Ausnahmefällen verwendet
- werden.
-
- Als BOOL deklarierte Optionen müssen beim Aufruf über eine TagListe als
- Data-Wert den Wert TRUE (1) oder FALSE (0) erhalten, um die Option gezielt
- ein- oder auszuschalten. Andere Werte dürfen nicht verwendet werden, da
- HotHelp evtl. gezielte Vergleiche mit diesen Werten (0 bzw. 1)
- durchführt! Insbesondere darf nicht DOSTRUE (-1) verwendet werden!
-
- Bitte beachten Sie bei den Font-Optionen, daß HotHelp nur Zeichensätze
- mit fester Zeichenbreite verarbeiten kann - Proportional-Fonts können
- nicht verwaltet werden! Im Zweifelsfall greift HotHelp daher auf den
- systeminternen Zeichensatz Topaz-8 zurück.
-
- ASyncWindow (BOOL) (V3):
- Normalerweise arbeiten HotHelp-Fenster synchron zum aufrufenden
- Programm - das bedeutet, daß der Aufrufer die Kontrolle an die
- HotHelp-Library übergibt, bis das entsprechende Fenster vom User
- wieder geschlossen wird. Während das HotHelp-Fenster offen ist, ist
- das aufrufende Programm also nicht aktiv.
- Wird nun beim Öffnen des HotHelp-Fensters dieses Tag angegeben, so
- arbeitet das neue Fenster asynchron zum aufrufenden Programm. Das
- heißt, HotHelp startet einen eigenen neuen Prozeß für dieses
- Fenster, der parallel zum aufrufenden Programm arbeiten kann. Der
- Aufrufer erhält die Kontrolle zurück, sobald das Fenster erfolgreich
- geöffnet werden konnte (oder wenn dabei ein Fehler auftrat). Die
- Priorität des neuen Prozesses kann über die 'Priority'-Option
- festgelegt werden.
- Durch diese neue Möglichkeit, ein HotHelp-Fenster parallel zum
- Hauptprogramm zu öffnen, ohne dieses dadurch von anderen Aufgaben
- abzuhalten, ergeben sich natürlich viele interessante neue
- Einsatzmöglichkeiten. Ein Beispiel dazu bieten die
- HotHelp-Tools - wird der Hilfe-Modus aktiviert, öffnen sie ein
- asynchrones HotHelp-Fenster, in dem ein einleitender Hilfstext
- angezeigt wird. Durch Anklicken von Gadgets im Fenster des Tools
- können nun Hilfstexte über diese Gadgets abgerufen werden - das Tool
- übergibt dazu dem asynchronen HotHelp-Fenster den zu dem
- entsprechenden Gadget gehörenden Schlüssel-Begriff. Wird nun HELP
- im Fenster des Tools gedrückt, wird dadurch der Hilfs-Modus beendet,
- ohne daß das Hilfs-Fenster geschlossen würde.
- Die Library bietet ab V3 eine Reihe von Funktionen an, mit deren
- Hilfe von außen Einfluß auf asynchrone Fenster genommen werden kann
- (Aktivieren, Laden neuer Texte, Simulation von User-Eingaben etc.).
- Diese Funktionen sind durch das Prefix 'ASync' (für 'asynchron') im
- Funktionsnamen gekennzeichnet. Außerdem kann über die
- 'Notification'-Option noch festgelegt werden, ob das HotHelp-Fenster
- völlig vom aufrufenden Programm abgekoppelt werden soll. Soll das
- Fenster später von außen noch über die 'HH_ASync... ()'-Funktionen
- ferngesteuert werden, so kann seine ID über die gleichnamige Option
- abgefragt werden.
-
- CheckAll (BOOL) (V3):
- Wird ein HotHelp-Fenster mit Angabe eines Projekt- und
- Schlüssel-Begriffes geöffnet (siehe Optionen 'Project' und 'Key'),
- durchsucht HotHelp normalerweise nur das angegebene Projekt (bzw.
- alle passenden Projekte bei Verwendung eines Patterns) nach dem
- angeforderten Schlüssel. Wird er dort nicht gefunden, wird eine
- Fehlermeldung ausgegeben.
- Ist diese Option gesetzt, so wird zuerst so wie oben beschrieben
- vorgegangen. Wird dabei jedoch kein passender Schlüssel gefunden,
- so durchsucht HotHelp automatisch auch alle übrigen Projekte. Ist
- das Flag also gesetzt, so wird der Projekt-String lediglich als eine
- Art Vorgabe betrachtet: Befindet sich der gesuchte Schlüssel
- innerhalb des Projektes, ist aller klar; andernfalls werden auch die
- übrigen durchsucht.
- HotKeyHelp verwendet diese Option, um bei Aufruf über Shift- oder
- Ctrl-Help zuerst in den in HotHelpPref angegebenen Default-Projekten
- zu suchen. Wird dort der gewünschte Begriff nicht gefunden, werden
- automatisch die restlichen Projekte durchsucht.
-
- CloseCut (BYTE):
- Kann 3 verschiedene Werte annehmen.
- 0: Nach dem Export eines Textes wird das HotHelp-Fenster in jedem
- Fall geschlossen.
- 1: Außer nach dem Drucken wird das Fenster immer geschlossen.
- 2: Nur nach der Auswahl von 'Spezial' wird das Fenster geschlossen.
-
- ColorActiView (BYTE) (V3):
- ColorDark (BYTE):
- ColorLight (BYTE):
- ColorReference (BYTE):
- ColorText (BYTE):
- Hierüber können die Farben für den Text, die hellen und dunklen
- Seiten der Gadgets, die Querverweise sowie die Hintergrundfarbe der
- Titelzeile des aktiven Views festgelegt werden. Angegeben werden
- die Nummern der entsprechenden Farbregister.
- Das Programm fängt keine ungültigen Farbkombinationen (weißer Adler
- auf weißem Grund) ab. Die Einstellungen werden nur beachtet, wenn
- die 'SmartColors'-Option nicht gesetzt ist.
-
- DataStruct (struct HH_Data *) (V3):
- Wird zum Öffnen eines Fensters keine HH_NewWindow-Struktur
- verwendet, sollen beim Schließen des Fensters aber dennoch die
- Angaben über die aktuelle Position und Größe, die zuletzt gesehenen
- Einträge, Suchtexte etc. festgehalten werden, um sie beim nächsten
- Öffnen wieder verwenden zu können, muß über dieses Tag die Adresse
- einer HH_Data-Struktur übergeben werden.
- Die Struktur muß vor dem Aufruf entsprechend initialisiert werden
- und darf bis zum Schließen des HotHelp-Fensters nicht verändert
- werden. Weiteres siehe bei der Beschreibung der Struktur.
-
- DefaultFont (BOOL):
- Falls das HotHelp-Window mit Angabe eines anderen Fensters geöffnet
- wird (siehe 'Parent_Window'), wird dessen Font benutzt - ansonsten
- der Default-Zeichensatz des Systems (GfxBase->DefaultFont).
- Wird das Flag nicht angegeben, wird der durch 'FontName' und
- 'FontSize' angewählte Font geladen. Wurden auch diese Optionen
- nicht verwendet, greift HotHelp auf den in HotHelpPref eingestellten
- Zeichensatz zurück.
- 'FastFont', 'SmartFont' und 'DefaultFont' dürfen nicht gleichzeitig
- angegeben werden.
-
- ExportStruct (struct HH_Export *) (V3):
- Falls das aufrufende Programm Meldungen über den Export von Texten
- erhalten möchte, aber keine HH_NewWindow-Struktur angegeben hat, muß
- über dieses Tag ein Zeiger auf eine entsprechende Struktur übergeben
- werden. Wird das Tag nicht angegeben, ist der Export über das
- 'Spezial'-Gadget gesperrt, da bei dessen Verwendung noch Aktionen
- vom Aufrufer verlangt werden.
- Die Struktur muß vor dem Aufruf entsprechend initialisiert werden
- und darf bis zum Schließen des HotHelp-Fensters nicht verändert
- werden. Weiteres siehe bei der Beschreibung der Struktur.
-
- FastFont (BOOL):
- Falls es sich bei der installierten HotHelp-Library um eine
- FastFont-Version handelt, wird dieser für die Ausgabe benutzt.
- 'FastFont', 'SmartFont' und 'DefaultFont' dürfen nicht gleichzeitig
- angegeben werden.
-
- FontName (BYTE *):
- FontSize (WORD):
- Die beiden Variablen werden nur benutzt, falls keines der anderen
- Font-Flags ('DefaultFont', 'FastFont') gesetzt ist. Wird
- 'SmartFont' angefordert, wird der hier angegebene Font in die
- Entscheidung mit einbezogen.
- 'FontName' ist ein Zeiger auf einen kompletten Font-Namen (also z.B.
- "topaz.font"), 'FontSize' gibt die gewünschte Größe an. Nur wenn
- weder diese Optionen noch eines der Font-Flags gesetzt sind, wird
- der in HotHelpPref bestimmte Zeichensatz verwendet.
-
- Forget (WORD):
- Über dieses Flag kann festgelegt werden, ob die Library sich die
- Daten dieses Fensters (Position und letzter Text) beim Schließen
- merken soll, damit sie von einem anderen Fenster über
- 'PosAbsolutLast' und 'ShowAbsolutLast' wieder angefordert werden
- können.
- HH_FORGET_NONE bedeutet, daß beide Daten festgehalten werden.
- HH_FORGET_POS übergeht die Positions- und Größen-Angaben und
- HH_FORGET_TEXT die Angaben über den zuletzt sichtbaren Text. Die
- beiden Flags können auch zusammengefaßt werden, so daß beide Angaben
- nicht gespeichert werden.
-
- GadgetMask (ULONG):
- Mit Hilfe dieser Variablen können einzelnen Gadgets ausgeblendet
- werden. So kann z.B. durch Ausblenden des Export-Gadgets
- verhindert werden, daß der User Textteile ausschneidet.
- Der User kann nur die Gadgets benutzen, deren Bit in der Maske
- gesetzt ist. Die Definitionen für die einzelnen Gadgets liegen als
- 'HH_GADGET_...'-Defines vor; im Normalfall sorgt ein Wert von -1
- (oder 0xFFFFFFFF) dafür, daß alle Gadgets benutzt werden können.
-
- ID (LONG *) (V3):
- Dieses Tag darf nur bei Anforderung eines asynchronen
- HotHelp-Fensters verwendet werden (siehe 'ASyncWindow'-Option). Es
- erhält als Argument die Adresse einer LONG-Variablen, in der HotHelp
- nach dem Öffnen des Fensters dessen ID ablegt. Nur mit Hilfe dieses
- ID-Wertes kann das Fenster später von außen über die 'HH_ASync...
- ()'-Funktionen manipuliert werden.
- Auf das Tag kann verzichtet werden, wenn keine Notwendigkeit für
- weitere Manipulationen besteht - aber Vorsicht: wenn mit
- Notification (siehe Option 'Notification') gearbeitet wird, darf das
- Programm erst beendet werden, wenn auch alle geöffneten asynchronen
- HotHelp-Fenster wieder geschlossen sind. Möchte der User nun das
- aufrufende Programm beenden, kann dieses über 'HH_ASyncCloseWindow
- ()' alle evtl. noch geöffneten asynchronen HotHelp-Fenster
- schließen - sofern ihm die IDs dieser Fenster bekannt sind! Daher
- sollten (zumindest bei Verwendung von Notification) die Fenster-IDs
- mit Hilfe dieses Tags erfragt und festgehalten werden (bis das
- Schließ-Signal eingetroffen ist).
- Bei der ID eines asynchronen Fensters handelt es sich immer um eine
- ganze Zahl größer als 0 (Ausnahme: Wenn nacheinander 2147483647
- asynchrone HotHelp-Fenster geöffnet werden, werden die folgenden IDs
- negativ sein...). Der Wert 0 tritt nur auf, wenn beim Öffnen des
- Fensters ein Fehler auftrat und kennzeichnet (zusätzlich zum
- Rückgabewert der aufgerufenen Funktion), daß das Fenster nicht
- geöffnet werden konnte.
-
- Key (BYTE *):
- Zeiger auf einen String mit maximal HH_KEY_LEN Zeichen (incl. das
- '\0'-Zeichen am Ende), in denen sich der Name des gewünschten
- Schlüssels befindet. Patterns ('*') sind erlaubt; ein Leer-String
- wird als "*" interpretiert. Der String wird nicht verändert.
- Der String wird nur beachtet, wenn keines der drei Flags 'ShowLast',
- 'ShowAbsolutLast' und 'ShowStart' verwendet wird.
- Wird bei der Verwendung von TagLists kein Schlüssel-Begriff
- angegeben, wird der zuletzt dargestellte Text angezeigt. Wurde vom
- Aufrufer schon vorher ein Fenster geöffnet, so wird der dort
- gezeigte Text geladen (wie bei 'ShowLast') - andernfalls zeigt
- HotHelp den Text an, der im letzten geöffneten HotHelp-Fenster
- sichtbar war, unabhängig davon, wer dieses Fenster geöffnet hatte
- (siehe 'ShowAbsolutLast').
- Falls ein Schlüssel mehrmals in einem Projekt auftaucht, kann über
- die 'KeyGroup'-Option die Nummer der Schlüssel-Liste angegeben
- werden, aus der der darzustellende Schlüssel entnommen werden soll.
-
- KeyGroup (WORD) (V3):
- Über diese Option kann die Schlüssel-Gruppe ausgewählt werden, aus
- der der gesuchte Schlüssel (siehe 'Key'-Option) entnommen werden
- soll. Diese Möglichkeit ist sehr nützlich, wenn ein Schlüssel
- mehrmals in einem Projekt, aber jeweils in unterschiedlichen Gruppen
- auftaucht, um gezielt einen bestimmten dieser Schlüssel ansprechen
- zu können.
- Werte kleiner 1 oder größer 255 werden ignoriert.
-
- KeyLayout (BYTE):
- Kann 4 verschiedene Werte annehmen.
- 0: Schlüssel-Listen werden spaltenweise ausgegeben; Spaltenabstand
- siehe 'KeyTab'.
- 1: Schlüssel-Listen werden in einer einzigen Spalte ausgegeben.
- 2: Alle Schlüssel einer Liste werden - nur durch Blanks getrennt -
- direkt hintereinander gesetzt.
- 3: Alle Schlüssel einer Liste werden hintereinander geschrieben;
- getrennt werden sie durch ', '; vor dem letzten Schlüssel
- stattdessen ' und ' und hinter dem letzten Schlüssel ein '.'.
-
- KeyTab (WORD);
- Dies ist die Position, auf die bei Schlüssel-Listen jede Spalte
- tabuliert wird. Wird nur benutzt, falls 'KeyLayout' == 0 ist.
-
- MaxHeight (WORD):
- MaxWidth (WORD):
- Über dieser beiden Werte kann die maximale Höhe und Breite des
- Fensters festgelegt werden. Werden die Optionen nicht angegeben,
- kann das Fenster so groß wie der zugrundeliegende Bildschirm werden.
-
- MenuPort (struct MsgPort *) (V3):
- MenuText (struct NewMenu *) (V3):
- Mit Hilfe dieser beiden Tags kann ein asynchrones HotHelp-Fenster
- mit Notification (siehe Optionen 'ASyncWindow' und 'Notification')
- um ein zusätzliches, durch den Aufrufer frei definierbares Menu
- erweitert werden. Dieses erscheint dann rechts von den
- Standard-Menus ('Views', 'Suchen', 'Textmarken'), die innerhalb
- jedes HotHelp-Fensters auftauchen.
- Der Aufbau des Menus wird durch das Tag 'MenuText' festgelegt.
- Übergeben werden muß hier die Adresse eines Feldes von
- NewMenu-Strukturen. Diese Struktur wird ab OS 2.0 von der
- GadTools-Library verwendet, um einfach neue Menus erzeugen zu
- können. HotHelp bearbeitet die Strukturen (fast) genauso wie
- GadTools, mit dem schönen Unterschied, daß die Umwandlung in echte
- Menu-Strukturen auch unter OS 1.3 funktioniert - ist die
- GadTools-Library vorhanden, wird sie verwendet; ansonsten werden die
- Menu-Strukturen von Hand erzeugt. Ab OS 3.0 werden die Menus im
- neuen NEWLOOK-Design erzeugt.
- Bei der Erstellung des Menus sollte darauf geachtet werden, daß nur
- ein einzelnes Menu ohne Untermenus definiert wird.
- CHECKIT-Menupunkte sollten ebenfalls nicht verwendet werden. Auch
- unter OS 3.0 sollten keine mehrbuchstabigen Shortcuts angegeben
- werden. Es dürfen auch nur Text-Menuitems angelegt werden; die
- Verwendung von Images wird nicht unterstützt. Die Verwendung von
- NM_BARLABEL ist ausdrücklich erlaubt; unter OS 1.3 wird an ihrer
- Stelle ein halbhoher Leereintrag eingefügt. Normale Shortcuts sind
- ebenfalls erlaubt und können auf zwei Wegen angegeben werden: wie
- üblich über 'nm_CommKey' oder integriert in 'nm_Label'. Im
- letzteren Fall muß das Shortcut-Zeichen, umgeben von zwei
- Underscores, am Anfang des Strings eingefügt werden. Ein Beispiel
- dafür wäre z.B. der Sichern-Menupunkt: "_s_Sichern". HotHelp
- erzeugt ein Item mit dem Text "Sichern" und dem Shortcut "s". Diese
- Möglichkeit ist sehr nützlich, wenn die Menus an mehrere Sprachen
- angepaßt werden sollen, da der Shortcut in die Beschriftung
- integriert werden kann. Bitte beachten Sie bei der Vergabe von
- Tastatur-Kürzeln jedoch, daß diese sich nicht mit den normalen
- Menu-Kürzeln überschneiden sollten.
- Wählt der User nun einen Punkt aus diesem Menu aus, so sendet
- HotHelp eine Nachricht an den über 'MenuPort' angegebenen
- Message-Port. Bei dieser Nachricht handelt es sich um eine
- 'HH_MenuMsg'-Struktur. Hat das aufrufende Programm diese Nachricht
- bearbeitet, so darf sie nicht (wie sonst üblich) über 'ReplyMsg ()'
- zurückgeschickt werden; statt dessen muß sie über 'FreeMem ()'
- wieder freigegeben werden.
- HotHelp legt keine Kopien der verwendeten Texte an, sondern arbeitet
- mit den Originalen. Aus diesem Grund dürfen die Texte (solange das
- Fenster geöffnet ist) auch nicht verändert werden. Natürlich darf
- auch der Port erst wieder geschlossen werden, wenn auch das Fenster
- geschlossen wurde. Voraussetzung für die Einrichtung eines eigenen
- Menus ist die Verwendung eines asynchronen Fensters mit
- Notification, so daß alle dort genannten Einschränkungen auch hier
- beachtet werden müssen. Beide Tags müssen zusammen angegeben
- werden.
- Bitte achten Sie darauf, daß das angegebene Menu nicht die Grenzen
- des verwendeten Screens sprengen sollte. HotHelp greift in
- Problemfällen zwar auf den Standard-Zeichensatz Topaz-8 zurück; ist
- jedoch auch dieser noch zu groß (50 Zeichen breiter Text auf einem
- 320-Pixel-LoRes-Screen...), kann das Menu nicht mehr korrekt
- aufgebaut werden.
-
- NoActivation (BOOL) (V3):
- Normalerweise wird ein HotHelp-Fenster beim Öffnen automatisch
- aktiviert - dies kann jedoch mit Hilfe dieses Tags verhindert
- werden. Wird es gesetzt, bleibt das vorher aktive Fenster aktiv.
- Der User muß das HotHelp-Fenster dann explizit anklicken, um es zu
- aktivieren.
-
- Notification (LONG) (V3):
- Diese Option darf nur für asynchrone HotHelp-Fenster (siehe
- 'ASyncWindow'-Option) angegeben werden. Mit ihr wird die Nummer
- eines Signal-Bits (also keine Signal-Maske) übergeben, das der
- aufrufende Task vorher über 'AllocSignal ()' angefordert haben muß.
- Wird das HotHelp-Fenster nun vom Benutzer geschlossen, so sendet
- HotHelp dem aufrufenden Programm dieses Signal.
- Wird Notification gewünscht, so sind einige wichtige Dinge zu
- beachten: Die beim Öffnen des HotHelp-Fensters verwendeten
- Strukturen (also ggf. HH_NewWindow, HH_Data und HH_Export) dürfen
- erst wieder verwendet werden, wenn das Notify-Signal eintrifft (und
- das Fenster somit also geschlossen ist). Da HotHelp die aktuellen
- Werte beim Schließen des Fensters in den genannten Strukturen
- (sofern sie überhaupt angegeben wurden) ablegt, müssen diese bis
- dahin unverändert erhalten bleiben.
- Das bedeutet im einzelnen: Falls die Strukturen lokal (auf dem
- Stapel) oder dynamisch (über 'AllocMem ()' und Konsorten) angelegt
- wurden, dürfen sie erst nach dem Schließen des Fensters freigegeben
- werden.
- Der Inhalt der Strukturen darf - solange das Fenster noch offen ist
- - weder ausgelesen noch verändert werden. Insbesondere ist es
- untersagt, ein weiteres HotHelp-Fenster unter Verwendung derselben
- Strukturen zu öffnen, solange das erste Fenster noch nicht
- geschlossen wurde (ansonsten würden beide HotHelp-Fenster mit
- denselben Strukturen arbeiten, was zu keinem guten Ende führen
- kann...). Sollen also mehrere asynchrone HotHelp-Fenster mit
- Notification gleichzeitig geöffnet sein, so muß für jedes Fenster
- ein eigener Satz der evtl. benötigten Strukturen angelegt werden.
- Das aufrufende Programm darf erst beendet werden, wenn kein
- HotHelp-Fenster mit Notification mehr geöffnet ist - andernfalls
- würde HotHelp das Ende-Signal an einen nicht mehr existierenden Task
- senden...
- Wird ein asynchrones HotHelp-Fenster ohne Notification geöffnet, so
- wird jede Verbindung zwischen dem aufrufenden Programm und dem neuen
- Fenster entfernt - die verwendeten Strukturen dürfen geändert oder
- freigegeben werden und das Programm darf jederzeit beendet werden,
- unabhängig davon, ab das HotHelp-Fenster noch geöffnet oder wieder
- geschlossen ist.
- Diese Unabhängigkeit hat aber auch einen Nachteil: Wie bei der
- Beschreibung der HH_NewWindow-, HH_Data- und HH_Export-Struktur
- erklärt wird, werden die aktuellen Daten eines Fensters beim
- Schließen in den entsprechenden Variablen festgehalten. Wird ein
- weiteres Fenster mit denselben Strukturen geöffnet, kann es die
- Daten des vorhergehenden Windows übernehmen - der User kann in dem
- neuen Fenster die Arbeit an dem Punkt fortsetzen, an dem er sie im
- vorhergehenden unterbrochen hat. Da aber asynchrone Fenster ohne
- Notification nicht mehr mit dem aufrufenden Programm verbunden sind,
- können auch die aktuellen Daten nicht mehr in den Strukturen des
- Aufrufers abgelegt werden und stehen daher beim nächsten Öffnen
- eines Fensters auch nicht mehr zur Verfügung! Weiterhin ist es in
- diesem Fall auch nicht möglich, Informationen über ausgeschnittene
- Textblöcke zu erhalten, weshalb zumindest der Export über das
- Spezial-Gadget gesperrt wird.
- Um in diesem Fall dennoch eine gewisse Kontinuität zu gewährleisten,
- können die 'ShowAbsolutLast'- und 'PosAbsolutLast'-Optionen
- verwendet werden, die die Daten des zuletzt geöffneten Fensters
- nochmals anfordern (siehe dort).
- ACHTUNG: Tritt beim Öffnen des HotHelp-Fensters bereits ein Fehler
- auf (Rückgabewert der Funktion), wird das Notify-Signal NICHT
- gesendet - der Aufrufer sollte in diesem Fall also auch nicht 'Wait
- ()' darauf ansetzen (sonst wartet er nämlich bis zum jüngsten
- Reset...).
-
- Parent_Screen (struct Screen *):
- Zeiger auf den Screen, auf dem sich das HotHelp-Fenster öffnen soll
- bzw. NULL, wenn der Workbench-Screen verwendet werden soll.
- 'Parent_Window' und 'Parent_Screen' dürfen nicht zusammen angegeben
- werden.
-
- Parent_Window (struct Window *):
- Zeiger auf ein Fenster, auf dessen Screen sich das neue HotHelp-
- Fenster öffnen soll.
- 'Parent_Window' und 'Parent_Screen' dürfen nicht zusammen angegeben
- werden.
-
- PosAbsolutLast (BOOL):
- Ist das Flag gelöscht, nimmt das Fenster die durch die HH_NewWindow-
- oder HH_Data-Struktur beschriebene Position und Größe ein.
- Wird das Flag jedoch gesetzt, so wird die Position eingenommen, die
- das zuletzt geöffnete HotHelp-Fenster hatte - unabhängig davon, von
- welchem Programm es geöffnet wurde.
- Für dieses Flag merkt sich die Library beim Schließen jedes Fensters
- die Fenster-Position und -Ausmaße - sofern dies nicht über die
- 'Forget'-Option unterbunden wird.
-
- PrintTitle (BYTE):
- Kann 3 verschiedene Werte annehmen.
- 0: Der Titel eines Textes (String in der Titelzeile) wird beim
- Ausdruck eines Textes nie mit ausgegeben.
- 1: Nur beim Ausdruck des gesamten Textes wird der Titel mit
- ausgegeben.
- 2: Der Titel wird immer mit ausgedruckt.
-
- Priority (BYTE) (V3):
- Dieser Wert zwischen -128 und +127 gibt für ein asynchrones
- HotHelp-Fenster die Priorität des Prozesses an, der das Fenster
- verwaltet. 0 ist der normale Wert; Werte < -10 oder > 10 sollten
- vermieden werden.
-
- Project (BYTE *):
- Zeiger auf einen String mit maximal HH_PROJECT_LEN Zeichen (incl.
- das '\0'-Zeichen am Ende), in denen sich der Name des gewünschten
- Projektes befindet. Patterns ('*') sind erlaubt; ein Leer-String
- wird als "*" interpretiert. Der String wird nicht verändert.
- Der String wird nur beachtet, wenn keines der drei Flags 'ShowLast',
- 'ShowAbsolutLast' und 'ShowStart' verwendet wird.
- Wird bei der Verwendung von TagLists kein Projekt-Name angegeben,
- wird der zuletzt dargestellte Text angezeigt. Wurde vom Aufrufer
- schon vorher ein Fenster geöffnet, so wird der dort gezeigte Text
- geladen (wie bei 'ShowLast') - andernfalls zeigt HotHelp den Text
- an, der im letzten geöffneten HotHelp-Fenster sichtbar war,
- unabhängig davon, wer dieses Fenster geöffnet hatte (siehe
- 'ShowAbsolutLast').
-
- PubScreen (BYTE *) (V3):
- Über dieses Tag kann ein Zeiger auf einen String übergeben werden,
- der den Namen eines Public-Screens beinhaltet. Das HotHelp-Fenster
- wird dann auf diesem Screen geöffnet. Wird eine NULL angegeben,
- öffnet das Fenster sich auf dem Default-PublicScreen. Falls kein
- Public-Screen dieses Namens existiert, kann auch das Fenster nicht
- geöffnet werden.
- Diese Option wird unter KickStart 1.3 ignoriert, da Public Screens
- dort nicht unterstützt werden.
-
- Quiet (BOOL):
- Ist das Fenster das erste geöffnete HotHelp-Fenster, so wirkt dieses
- Flag wie der 'quiet'-Parameter der 'HH_OpenAll ()'- Funktion (siehe
- dort). War bereits ein Fenster offen, sind auch die entsprechenden
- Ressourcen bereits offen und das Flag wird ignoriert.
-
- RamIcon (BYTE *) (V3):
- Werden beim Export in eine Datei (siehe 'UseRamIcon') Icons erzeugt,
- so wird dazu normalerweise die Datei 'HOTHELP:Icons/FileExport'
- verwendet. Bei einem Export in eine Datei wird dieses File als
- '.info'-Datei verwendet. Über dieses Tag kann nun der vollständige
- Pfadname einer anderen Datei angegeben werden, die HotHelp als Icon
- für in Dateien exportierte Texte verwenden soll. Bei der Datei muß
- es sich um ein normales Projekt-Icon handeln, wie es z.B. mit dem
- IconEdit erstellt werden kann. Der Name der Datei darf nicht länger
- als HH_ICON_LEN Bytes sein (incl. '\0'-Byte am Ende). Da die
- Endung '.info' automatisch angehängt wird, darf sie nicht mit
- angegeben werden!
-
- ScreenToFront (BOOL) (V3):
- Wird dieses Flag auf TRUE gesetzt, wird unmittelbar nach dem Öffnen
- des Fensters der zugrunde liegende Bildschirm in den Vordergrund
- gebracht. HotKeyHelp verwendet dieses Flag, wenn die 'Nur Public
- Screens'-Option in den HotHelp-Prefs angewählt wurde, der aktuelle
- Screen aber nicht public ist, um den Default-Public-Screen nach
- vorne zu holen.
- Ist das Flag gelöscht, wird die Reihenfolge der Screens nicht
- geändert.
-
- ScrollDelay (BYTE):
- ScrollSpeed (BYTE):
- Die erste Variable bestimmt die Verzögerungszeit vor Eintreten der
- Scroll-Wiederholung, die zweite die Wartezeit zwischen den einzelnen
- Scroll-Vorgängen (jeweils in 50-tel Sekunden).
- Die Werte gelten nur für das Scrolling über die beiden
- Scroll-Gadgets oder über die Maus; beim Tastatur-Scrolling wird
- automatisch die systeminterne Tasten-Verzögerung benutzt.
-
- SearchAll (BOOL) (V3):
- SearchBack (BOOL) (V3):
- SearchIgnore (BOOL) (V3):
- Die drei Optionen belegen die drei im Such-Fenster einstellbaren
- Optionen (Alles durchsuchen, Rückwärts suchen, Groß/Klein
- ignorieren) vor.
-
- SearchArea (BYTE):
- Kann 3 verschiedene Werte annehmen.
- 0: Querverweise werden nur im aktuellen Projekt gesucht; wird dort
- kein passender Schlüssel gefunden, wird eine Fehlermeldung
- ausgegeben.
- 1: Querverweise werden zuerst nur im aktuellen Projekt gesucht; wird
- kein passender Schlüssel gefunden, werden auch alle übrigen
- Projekte untersucht.
- 2: Querverweise werden immer in allen Projekten gesucht.
-
- ShowAbsolutLast (BOOL):
- Ist dieses Flag gelöscht, wird der durch 'Project' und 'Key'
- angegebene Text geladen.
- Ist es gesetzt, so wird der Text dargestellt, der in dem zuletzt
- geöffneten HotHelp-Fenster sichtbar war - unabhängig davon, welches
- Programm dieses letzte Fenster geöffnet hatte! War noch kein
- Fenster geöffnet, wird die Standard-Startseite angezeigt. Für
- dieses Flag merkt sich die Library beim Schließen jedes Fensters den
- dort dargestellten Text - sofern dies nicht über die 'Forget'-Option
- unterbunden wird.
- 'ShowLast', 'ShowAbsolutLast' und 'ShowStart' dürfen nicht gemeinsam
- angegeben werden.
-
- ShowLast (BOOL):
- Ist dieses Flag gelöscht, wird der durch 'Project' und 'Key'
- angegebene Text geladen.
- Ist das Flag hingegen gesetzt und hat das aufrufende Programm vorher
- bereits mindestens ein HotHelp-Fenster geöffnet, wird der dort
- zuletzt dargestellte Text wieder dargestellt. War noch kein Fenster
- geöffnet, wird die Standard-Startseite angezeigt.
- 'ShowLast', 'ShowAbsolutLast' und 'ShowStart' dürfen nicht gemeinsam
- angegeben werden.
-
- ShowStart (BOOL):
- Ist dieses Flag gelöscht, wird der durch 'Project' und 'Key'
- angegebene Text geladen.
- Ist es jedoch gesetzt, wird die in HotHelpPref eingestellte
- Startseite geladen und dargestellt (normalerweise 'HotHelp
- Startseite').
- 'ShowLast', 'ShowAbsolutLast' und 'ShowStart' dürfen nicht gemeinsam
- angegeben werden.
-
- SmartColors (BOOL) (V3):
- Wird dieses Flag gesetzt, untersucht HotHelp beim Öffnen eines
- Fensters die Palette des entsprechenden Screens und versucht (!),
- die am besten geeigneten Farben auszuwählen (was zumindest bei den
- 1.3- und 2.0-Standardfarben auch sehr gut funktioniert). Findet
- HotHelp genügend kontrastreiche Farben, werden die Voreinstellungen
- über die 'Color...'-Tags ignoriert.
-
- SmartFont (BOOL) (V3):
- Beim Öffnen eines Fensters kann HotHelp zwischen einer Reihe von
- Zeichensätzen entscheiden, die benutzt werden können: der über
- 'FontName' und 'FontSize' angeforderte Zeichensatz bzw. (wenn hier
- keiner angegeben wird) der in HotHelpPref ausgewählte
- Default-Zeichensatz, der Zeichensatz des Windows, das evtl. über
- 'Parent_Window' angegeben wurde, der Zeichensatz des Screens, auf
- dem das Fenster sich öffnet und der Default-Zeichensatz des Systems,
- der über die System-Prefs festgelegt wird.
- Wird nun diese Option angegeben, untersucht HotHelp als erstes die
- Auflösung des Screens, auf dem das Fenster geöffnet werden soll.
- Handelt es sich um einen Interlace-Screen, sollte ein Font mit einer
- Höhe um 16 verwendet werden, sonst einer mit einer Höhe um 8.
- Anschließend wählt HotHelp aus den bis zu vier zur Verfügung
- stehenden Fonts dann denjenigen aus, der dieser Größe am nächsten
- kommt. Falls mehrere Fonts gleich hoch sind, wird in der folgenden
- Reihenfolge ausgewählt: Angeforderter bzw. Pref-Font, Screen-Font,
- Window-Font, Default-Font.
- 'FastFont', 'SmartFont' und 'DefaultFont' dürfen nicht gleichzeitig
- angegeben werden.
-
- SpecialText (BYTE *) (V3):
- Wie das Programm HotKeyHelp zeigt, kann sich die Bedeutung des
- Spezial-Icons im Export-Modus von Mal zu Mal ändern: bei Aufruf
- über Shift-Help wird der über dieses Gadget exportierte Text über
- die ARexx-Schnittstelle an den entsprechenden Editor geschickt;
- wurde ein Fenster über die drei anderen HotKeys geöffnet, wird der
- Text über einen InputHandler an das System weitergegeben.
- Da das Spezial-Gadget den exportierten Text lediglich an das
- aufrufende Programm weiterreicht, hängt seine konkrete Wirkung also
- nur von diesem Programm ab.
- Um dem Anwender hier eine bessere Übersicht zu geben, kann über
- dieses Tag ein Text angegeben werden, der dann von HotHelp als
- Beschriftung des Gadgets verwendet wird. HotKeyHelp gibt hier z.B.
- entweder "Editor" oder "Einfügen" an, je nachdem, welcher HotKey
- verwendet wurde. Dadurch wird dem User schneller klar, welche
- Aktion er mit diesem Gadget eigentlich auslösen kann. Als
- Defaulttext wird wie bisher "Spezial" verwendet.
- Normalerweise verwendet HotHelp das erste Zeichen einer
- Gadget-Beschriftung als Tastatur-Shortcut, der zusammen mit einer
- der Amiga-Tasten benutzt werden kann. Soll ein anderer als der
- erste Buchstabe verwendet werden, so muß diesem Zeichen im String
- das '_'-Zeichen vorangestellt werden. Das Zeichen wird aus der
- Gadget-Beschriftung entfernt und der folgende Buchstabe wird als
- Shortcut verwendet.
- Es dürfen lediglich brauchbare Werte übergeben werden - Fehler wie
- zu lange Texte werden nicht abgefangen und können beliebig
- unangenehme Folgen haben... Auch sollte darauf geachtet werden, daß
- ein ShortCut nicht mit den übrigen Gadget-Shortcuts im Export-Modus
- kollidieren darf.
-
- StackSize (LONG):
- Hat nichts mit dem Stack zu tun, sondern gibt lediglich an, wieviele
- Schritte sich HotHelp merken kann, damit der User sie ggf. wieder
- zurücknehmen kann. Je größer dieser Wert, desto mehr Speicherplatz
- wird auch verbraucht.
-
- StdNumPad (WORD) (V3):
- Dieses Flag beeinflußt die Wirkungsweise der Tasten '4' und '6' auf
- dem numerischen Tastenfeld. Unter Version 2.00 wurden sie als
- Shortcuts zu den beiden Pfeil-Gadgets verwendet, deren Belegung sich
- inzwischen geändert hat. Außerdem bietet HotHelp 3 nun auch die
- Möglichkeit des Links- und Rechts-Scrollings, so daß es
- wünschenswert wäre, dazu ebenfalls diese beiden Tasten (entsprechend
- ihrer frontalen Beschriftung) zu verwenden.
- Dazu kann nun über diese Option festgelegt werden, ob die beiden
- Tasten wie bei HotHelp 2 zum Blättern durch mehrere zu einem
- Schlüsselbegriff gehörenden Hilfstexte dienen (0), ob sie als
- Tastaturkürzel für die Pfeil-Aktionssymbole verwendet werden können
- (1) oder ob sie als Tastaturkürzel für die horizontalen Rollsymbole
- verwendet werden sollen.
-
- UseRamIcon (BOOL) (V3):
- Über diese Option kann bestimmt werden, ob beim Export in eine Datei
- ein Icon erzeugt werden soll (TRUE) oder nicht (FALSE). Der Name
- der Datei, die als Icon verwendet wird, kann noch über 'RamIcon'
- bestimmt werden.
-