Universal Overlay v1.2 ---------------------- Armin Diedering letzte Žnderung: 29.1.2000 Tabulatorweite: 3 1. Was ist UniLay ? =================== UniLay ist ein Overlay fr ResourceMaster ab Version 3.0. Mit Overlays ist es m”glich, schon im Editor userdefinierte Objekte darzustellen. UniLay verwendet dabei die ResourceMaster-eigenen Userdef-Objekte, die der ResourceMaster verwendet, wenn keine MagiC-Sonder-Typen verfgbar sind. Das hat den Vortei, daž das Overlay mit seinen 2-3 kByte sehr klein ausf„llt. Nachteilig ist es, daž die Objekte im Editor nicht ganz so dargestellt werden, wie sie sp„ter im Programm aussehen werden. Immerhin ist aber schon ein grober Eindruck m”glich. 2. Installation =============== RSM 3.0: -------- Einfach die Dateien "unilay.ovl" und "unilay.cnf" in den RSM-"modules"-Ordner kopieren und in "rsm.ovl" und "rsm.cnf" umbenennen. RSM 3.2: -------- Einfach die Dateien "unilay.ovl" und "unilay.cnf" in den RSM-"modules"-Ordner kopieren. Da RSM 3.2 mehrere Overlays untersttzt, k”nnen die Dateien umbenannt werden und UniLay mehrfach in den "modules"-Ordner kopiert werden. Der Dateiname fr die "*.ovl" und die "*.cnf" mssen dabei gleich sein (z.B. "flydials.ovl" und "flydials.cnf"). Ab RSM 3.2 kann ein Overlay eigene Toolboxen anbieten. UniLay sucht im "modules"-Ordner nach einer Tools-Resource ("Overlay-Name.rsc"). Diese Resource muž ganau so aufgebaut sein, wie eine RSM-Tool-Resource -> rsm.hyp. 3. Welch Objekte werden untersttzt ? ===================================== UniLay bzw. der ResourceMaster untersttzt derzeit 7 Sonder-Objekte - RSM_MOVEBUTTON Das bekannte Eselsohr um mit Dialoge zu fliegen. - RSM_BUTTON Ein Button mit einem unterstrichenen Buchstaben. - RSM_CHECKBUTTON Ein Ankreuzbutten mit/ohne unterstrichenen Buchstabe. - RSM_RADIOBUTTON Ein Radiobutten mit/ohne unterstrichenen Buchstabe. - RSM_UNDERLINED Ein unterstrichener String. - RSM_GROUPBOX Ein Gruppenrahmen. - RSM_NICELINE Eine Niceline fr Mens. Abgesehen von RSM_MOVEBUTTON kommen die Sonder-Objekte nur zum Einsatz, wenn es sich um G_STRING-, G_BUTTON- oder G_TITLE-Objekte handelt. Bei RSM_BUTTON, RSM_CHECKBUTTON und RSM_RADIOBUTTON wird der unterstrichenen Buchstabe durch eine eckige Klammer im Buttontext gekennzeichnet. Oder aber auch MagiC-like durch das Setzen von Whitebak. Die Position wird dann durch die Bits 8-11 von ob_states bestimmt. Die MagiC-Methode hat Vorrang. 4. Wie Konfiguriere ich UniLay ? ================================ UniLay l„d bei der Initialisierung die Datei "unilay.cnf". In dieser CNF-Datei wird festgelegt, fr welche Objekte das Overlay aktiv werden soll. Die Datei muž mit folgender Zeile eingeleitet werden! ------------Schnipp----------- #[xxxx] ------------Schnapp----------- Damit wird die ID des Overlays festgelegt ("xxxx" steht dabei fr 4 beliebige Zeichen). Wer verschiedene CNF-Dateien verwenden will (oder muž), sollte fr jede CNF eine ID vergeben. Da die ID des Overlays auch in der *.rsm-Datei gespeichert wird, aktiviert RSM das Overlay nur dann, wenn die IDs bereinstimmen. Um Konflikte mit ”ffentlichen Overlays zu vermeiden, sollten private IDs mit einem '_' beginnen z.B. so "#[_AO1]" (Armins Overlay Nr.1). Dann kommen die Objekt-Zeilen. Jede gltige Objekt-Zeile hat folgenden Aufbau: ------------Schnipp----------- #00 0000 0000 0000 0000 0000 0000 Kommentar ------------Schnapp----------- Also sie wird immer mit einem Doppelkreuz (am Anfang der Zeile) eingeleitet. Dem Doppelkreuz folgen 7 hexadezimal codierte und durch Leerzeichen getrennte Zahlen. Dabei ist die Erste immer zweistellig und der Rest vierstellig. Ein optionaler Kommentar muž durch Leerzeichen oder TABs von der letzten Zahl getrennt sein. Die Erste Zahl bestimmt die Sonder-Objekt-Nummer. Dabei gilt: 0 -> NICHTS_ZEICHNEN 2 -> RSM_MOVEBUTTON 3 -> RSM_BUTTON 4 -> RSM_CHECKBUTTON 5 -> RSM_RADIOBUTTON 6 -> RSM_UNDERLINED 7 -> RSM_GROUPBOX 8 -> RSM_NICELINE Die folgenden 6 Zahlen sind in 3 Paare aufgeteilt. Jedes Zahlenpaar enth„lt eine Maske und einen Vergleichswert. Diese Zahlenpaare gelten jeweils fr die OBJECT-Komponenten Typ, Flags und States. Beispiel: --------- 1. Das Overlay soll die Darstellung eins RSM_CHECKBUTTON bernehmen wenn: - der Erweiterte Typ = 22 (hex 16) - der Objekttyp = G_STRING (28 bzw. hex 1c) #03 ffff 161c 0000 0000 0000 0000 --- ---- ---- ------------------- | | | | | | | Flags und States spielen keine Rolle | | Erw.Typ=22 und Typ=G_STRING? | alle bits von ob_type beachten RSM_CHECKBUTTON 2. Da nur ein Checkbutton gezeichnet werden soll, wenn das EXIT-Flag nicht gesetzt ist, brauchen wir noch eine Zweite Zeile. #00 ffff 161c 0004 0004 0000 0000 --- ---- ---- | | | | | ist EXIT gesetzt? | nur das EXIT-Flag auswerten NICHTS_ZEICHNEN Diese Zeile muž unbedingt vor der RSM_CHECKBUTTON-Zeile stehen. 3. Ein RSM_RADIOBUTTON soll bei den gleichen Bedingungen wie oben gezeichnet werden, wenn das RADIO-Flag gesetzt ist. #04 ffff 161c 0010 0010 0000 0000 --- ---- ---- | | | | | ist RADIO gesetzt? | nur das RADIO-Flag auswerten RSM_RADIOBUTTON Auch Diese Zeile muž vor der RSM_CHECKBUTTON-Zeile aber nach der NICHTS_ZEICHNEN-Zeile stehen. 4. Um es zusammen zu fassen: - der Erweiterte Typ = 22 (hex 16) - der Objekttyp = G_STRING (28 bzw. hex 1c) - wenn EXIT-Flag soll nix gezeichnet werden - wenn RADIO-Flag dann RSM_RADIOBUTTON sonst RSM_CHECKBUTTON ------------Schnipp----------- #00 ffff 161c 0004 0004 0000 0000 Wenn Exit nix Zeichnen #04 ffff 161c 0010 0010 0000 0000 Wenn RADIO -> RSM_RADIOBUTTON #03 ffff 161c 0000 0000 0000 0000 Wenn kein EXIT und auch kein RADIO dann RSM_CHECKBUTTON ------------Schnapp-----------