home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dream 51
/
Amiga_Dream_51.iso
/
Atari
/
Desktops
/
nodsk302.lzh
/
DOKU
/
NOLOOK.TXT
< prev
next >
Wrap
Text File
|
1995-01-27
|
23KB
|
462 lines
,--------------------------------------------------------------------.
| 20.1.1995 |
| NOLOOK.TXT |
| |
| Beschreibung des Aufbaus der no|Look-Definitionsdateien |
| |
| Copyright ╜1995 by no|Software GmbH |
| |
| Autoren: |
| Andreas Fahrig |
| Christian Stamm |
| |
`--------------------------------------------------------------------'
Inhalt
======
1 ........................................................ Allgemeines
2 ..................................................... Die no|Dialoge
3 .................................................... Der Dateiaufbau
3.1 .................................................... Die Infozeile
3.2 .................. Die Definitionsblöcke für bestimmte Auflösungen
3.2.1 ....................................... die Identifikationszeile
3.2.2 .............................................. Farb-Umbelegungen
3.2.3 .............................................. Definitionszeilen
3.2.3.1 ................. Defintionszeilen für GLOBAL gültige Elemente
3.2.3.2 .................. Defintionszeilen für ORTSABHÄNGIGE Elemente
3.2.3.3 .............................. Defintionszeilen für Alertboxen
3.2.3.4 ......................... Defintionszeilen für Fensterelemente
4 .................................................. Spezielle Effekte
1 Allgemeines
==============
Diese Dokumentation befa₧t sich mit dem Aufbau von no|Look-Definitions-
dateien, über die das Aussehen aller no|Soft-Applikationen gesteuert
wird. Diese Dateien liegen im ASCII-Format vor und sind somit von
jedem, der einen Text-Editor besitzt leicht änderbar. Jedoch ist es
unbedingt nötig, die Struktur dieser Datei und der einzelnen
Definitionen verstanden zu haben, bevor man mit irgendwelchen Änderungen
beginnen will (unbedingt immer eine Sicherungskopie der entsprechenden
Datei anfertigen).
Die Definitionsdateien haben alle den Namen NOLOOK.*
2 Die no|Dialoge
=================
Im Vorfeld ist es wichtig, zu wissen, wie eine Dialogbox von uns
semantisch aufgeteilt ist und welche Besonderheiten für die Bedienung
gelten:
,----------------------------------.
| ,------------------------. |
| ,-| First-Bereich-Header |-. |
| | '________________________` | |
| | ,----------------------. | -+------- Root-Bereich
| | | | | |
| | | | -+--+------- First-Bereich
| | | | | |
| | | -+--+--+------- Option-Bereich(e)
| | | | | |
| | | | | |
| | '----------------------` | |
| '----------------------------` |
| ,-----. ,-------. ,-------. |
| |HILFE| | OK | |Abbruch| |
| '-----` '-------` '-------` |
'----------------------------------`
Der 'First-Bereich-Header' enthält im 'Normalfall' einen Text, der
beschreibt, wozu dieser Dialog dienen soll. Er hat au₧erdem eine
besondere Funktion, wenn ein Dialog NICHT in einem Fenster abläuft:
Durch Drücken der LINKEN Maustaste, wenn sich der Mauszeiger auf
diesem Objekt befindet, kann die Dialogbox verschoben werden.
Durch Drücken der RECHTEN Maustaste wird die Dialogbox
'durchsichtig' und es kann der in diesem Zustand vorhandene Rahmen
bewegt werden - wird die rechte Maustaste wieder losgelassen, so
wird die Dialogbox an der neuen Position wieder sichtbar.
Option-Bereiche enthalten die eigentlichen 'Bedienelemente' des Dialoges
und besitzen oft einen eigenen 'Header' (wie der Header des
First-Bereiches), dessen Text die Bedeutung der Einstellmöglichkeiten
dieses Bereichs beschreibt.
In allen drei Bereichsebenen (Root, First und Option) können die
verschiedensten Dialogelemente existieren (z.B. Buttons, Listen-
bzw. Sliderboxen, Check- und Radiobuttons, Texte, Editierfelder, usw.).
Die meisten Elemente treten fast immer nur in den Option-Bereichen auf.
Die Buttons, mit denen man einen Dialog verlassen kann (im Normalfall 'OK'
und 'Abbruch') können gesondert zu den sonstigen Button-Definitionen
eingestellt werden, damit sofort ersichtlich wird, auf welche Weise der
Dialog zu verlassen ist. Der 'OK'-Button ist immer mit [Return] und der
'Abbruch'-Button mit [Undo] zu betätigen.
Einige Dialoge besitzen einen 'Hilfe'-Button im Root-Bereich (mir der
Taste [Help] zu aktivieren), welcher ebenfalls ein eigenes Aussehen
besitzt.
Falls ein Buchstabe des Textes von Bedienelementen mit einem
Unterstrich versehen ist, so kann dieses Bedienelement auch über die
Tastatur aktiviert werden, und zwar indem man den entsprechenden
Buchstaben in Verbindung mit [Control] oder [Alternate] drückt.
3 Der Dateiaufbau
==================
3.1 Die Infozeile:
------------------
Die erste Zeile einer no|Look-Datei enthält einen Titel, über den man
mittels des Konfigurationsprogramms NOCONFIG.PRG die gewünschte
no|Look-Datei NOLOOK.* auswählen kann. Hieraus folgert natürlich, da₧
man keine anderen Dateien als no|Look-Dateien mit dem Namen NOLOOK.*
in seinem NOSYS-Ordner haben sollte. Vor dem Titel müssen zwei '%'
stehen, und vom darauf folgenden String werden nur die ersten 30
Zeichen verwertet!
Beispiel:
%%MyDial-Emulation in 3D
3.2 Die Definitionsblöcke für bestimmte Auflösungen:
----------------------------------------------------
Es folgen nach einer Leerzeile die Definitionsblöcke für die
verschiedenen Farbauflösungen. Für jede Farbauflösung gibt es einen Block.
Jeder dieser Blöcke hat folgenden Aufbau:
- Identifikationszeile
- Farb-Umbelegungen (1-n Zeilen)
- Definitionszeilen für globale Elemente (6 Zeilen)
- Definitionszeilen für Elemente in ROOT-Bereichen (6 Zeilen)
- Definitionszeilen für Elemente in FIRST-Bereichen (6 Zeilen)
- Definitionszeilen für Elemente in OPTION-Bereichen (6 Zeilen)
- Definitionszeilen für Alertboxen (pro Alertbox-Typ 3 Zeilen)
- Definitionszeilen für Randelemente von Vordergrundfenstern (4 Zeilen)
- Definitionszeilen für Randelemente von Hintergrundfenstern (4 Zeilen)
ACHTUNG:
ALLE WERTE IN DEN FOLGENDEN DEFINITIONEN SIND IN HEXADEZIMAL ANZUGEBEN!
3.2.1 die Identifikationszeile:
--------------------------------
#<Farbanzahl>[,<Attribute>]
<Farbanzahl> Anzahl der verschiedenen VDI-Farben der
Bildschirmauflösung, für die der folgende
Definitionsblock gelten soll.
Ein Wert 'FFFF' gilt für Farbauflösungen
>= 256 Farben.
<Attribute> ist optional und hat folgende Bedeutung:
Bit 0: Schatten für Option-Bereiche
1: Schatten für First-Bereiche
2: wenn Bit 3 gesetzt ist, dann sagt
dieses Bit, ob Fensterelemente mit (gesetzt)
oder ohne (nicht gesetzt) Rahmen gezeichnet
werden
3: Fensterelemente in 3D zeichnen
4-7: RESERVIERT! immer 0
8: Header-Texte werden linksbündig zur
zugehörigen Bereichs-Box gezeichnet
9-15: RESERVIERT! immer 0
Beispiel:
#10,3 Definiton für Auflösungen mit 16 Farben
First- und Option-Bereiche erhalten einen
Schatten
3.2.2 Farb-Umbelegungen:
-------------------------
Zwischen der ersten Zeile und den nachfolgenden Definitionen der
Dialogboxelemente kann ein Block mit speziellen Farb-Umbelegungen
folgen.
Hierdurch ist es möglich, einer Farbe in Verbindung mit einem speziellen
Muster (z.B. ROT mit 50% Muster), wie sie in den folgenden Definitionen
der Dialogboxelemente verwendet wird, eine neue Farbe zuzuweisen.
Dabei können au₧erdem die korrespondierenden Farbwerte für die
3D-Effekte angegeben werden.
Diese Möglichkeit findet zum Beispiel Verwendung, um bei 16 und 256
Farben die gleichen Definitionen der einzelnen Dialogboxelemente verwenden
zu können, jedoch werden im Block für 256 Farben einige der Farben
umgesetzt damit man schönere 3D-Effekte für einige Elemente unter
Ausnutzung der zusätzlichen Farben erzielt.
Die Zeile einer neuen Farbdefinition ist folgenderma₧en aufgebaut:
<Muster><Farbe>,<Vg>,<Hg>,<3DhOl>,<3DhUr>,<3DrOl>,<3DrUr>
<Muster><Farbe>: Die zu ersetzende Farbe und das Füllmuster mit der die
Farbe Verwendung findet.
<Muster> kann Werte zwischen 0 und 7 besitzen, wobei 7
und 0 ein vollständiges Füllen bedeuten und
Werte zwischen 1 und 6 ein füllen mit
zunehmender Intensität bedeuten. Da Texte und
Linien kein eigenes Füllmuster besitzen, wird
bei ihnen mit dem Füllmuster 7 ersetzt.
<Farbe> kann Werte zwischen 0 und F besitzen (die 16
Farben des AES)
<Vg> Die Vordergrundfarbe, die anstelle von <Farbe> verwendet
wird.
<Hg> Die zu verwendende Hintergrundfarbe; d.h. wird für
<Muster> ein Wert von 1-6 angegeben, so wird <Vg> mit
diesem <Muster> als Intensität auf <Hg> 'aufgebracht'.
Hierdurch ist es z.B. möglich, 2 Farbtöne mit unter-
schiedlicher Intensität zu mischen, um einen Zwischen-
farbton zu erzeugen.
<3DhOl> Die 'Schattierungsfarbe' der oberen linken Ecke eines
3D-Objektes, welches den Effekt 'nach oben' hat.
<3DhUr> Die 'Schattierungsfarbe' der unteren rechten Ecke eines
3D-Objektes, welches den Effekt 'nach oben' hat.
<3DrOl> Die 'Schattierungsfarbe' der oberen linken Ecke eines
3D-Objektes, welches den Effekt 'nach unten' hat.
<3DrUr> Die 'Schattierungsfarbe' der unteren rechten Ecke eines
3D-Objektes, welches den Effekt 'nach unten' hat.
Beispiel (bei 256 möglichen Farben):
C 49,16,16,13,1,1,13
-> Hierbei wird für die Farbe 9 (dunkles grau), welche mit dem Füllmuster
4 (50%) Verwendung findet, das Grau unter dem Farbindex 16 (dezimal 22)
eingesetzt. Die 3D-Objekte, welche die Kombination Muster/Farbe 49
haben, erhalten in der 3D-nach-oben-Darstellung oben links ein etwas
helleres Grau (Index 13) als Schattierung und unten rechts das Scharz
(Index 1) als Schattierung - in der 3D-nach-unten-Darstellung (soll
aussehen wie ein reingedrückter Knopf) ist die Schattierung
logischerweise genau umgekehrt.
3.2.3 Definitionszeilen:
-------------------------
Dies sind die Definitionen der einzelnen Dialogboxelemente.
Jede Zeile beginnt immer mit zwei Buchstaben, die die Dialoggruppe
identifizieren und danach folgen, durch Kommata getrennt, die
einzelnen Werte.
Ein Wert besteht aus drei Teilwerten, welche duch '/' voneinander
getrennt werden.
Die Semantik dieser Teilwerte ist folgende:
1.Teilwert: Farbwert des Objekt im 'Normalzustand'
2. " : Farbwert, wenn selektiert
3. " : Farbwert, wenn inaktiv (DISABLED)
Ein Teilwert ist ein 4- bzw. 5-stelliger HEX-String und
folgenderma₧en aufgebaut (Für Entwickler: entspricht genau dem
te_color Bitfield in der TEDINFO-Struktur aus der OBJECT-Struktur):
1.Zeichen: Farbe des Rahmens
2.Zeichen: Farbe des Textes
3.Zeichen: Bit 3 : Text transparent(0) oder deckend(1)
Bit 0...2:
0: ganz gefüllt
1: geringste Füllung
2: .
3: .
4: .
5: .
6: starkste Füllung
7: ganz gefüllt
4.Zeichen: Farbe der Fläche
Besteht der Teilwert aus 5 Ziffern, so gibt die erste Ziffer den
3D-Modus an:
1 = 3D nach oben, mit Rahmen
2 = 3D nach unten, mit Rahmen
5 = 3D nach oben,
6 = 3D nach unten.
7 = 3D nach unten/oben (zwischen den angrenzenden Boxen wird
eine dünner 'Graben' gezeichnet)
Dann entsprechen die Ziffern 2-5 den oben angegebenen Zeichen 1-4.
Wird ein Dialogboxelement oder einzelne Werte, bzw. Teilwerte in
dieser Datei nicht angegeben, so werden unsere Default-Werte benutzt.
Gleiches gilt natürlich für den Fall, da₧ die Datei gar nicht gefunden
wird!
Einen einzelnen Wert kann man dadurch weglassen, indem man einfach nur
das trennende Komma bzw. '/' schreibt (also den Wert einfach weglä₧t!).
3.2.3.1 Defintionszeilen für GLOBAL gültige Elemente:
------------------------------------------------------
GD <Desktophintergrund>,<Text unter Icons>
GH <Hilfebutton>,<OK-Button>,<Abbruch-Button>
GY <Busybalken-Text>,<Busybalken-Vordergrund>,<Busybalken-Hintergrund>
GS <Sliderpfeil-hoch>,<Sliderpfeil-runter>,<Slider-Vordergrund>,<Slider-Hintergrund>
GP <PopUpPfeile>,<PopUp-Seperator>,<PopUp-Vordergrund>,<PopUp-Hintergrund>
GL <das no|-Logo>
Erklärung der Kürzel:
<Desktophintergrund> klar?!!
<Text unter Icons> klar?!!
<Hilfebutton> Button, bei dessen Betätigung man einen
Hilfetext zum Dialog erhält (auch über
[Help] aktivierbar)
<OK-Button> Button, mit dem man die Dialogbox 'positiv'
verlä₧t, d.h. Änderungen werden übernommen
bzw. gesichert (auch über [Return] bzw.
[Enter] aktivierbar)
<Abbruch-Button> Button, mit dem man die Dialogbox 'negativ'
verlä₧t, d.h. Änderungen werden nicht
übernommen (auch über [Undo] aktivierbar)
<PopUpPfeile> die Pfeile am oberen und unteren Rand
eines PopUp-Menüs, mit denen man den
Menüinhalt scrollen (bewegen) kann
<PopUp-Seperator> Trennlinie, um verschieden Bereiche im
Menü zu separieren
<PopUp-Vordergrund> die Einträge im PopUp-Menü - der aktuelle
Eintrag (sozusagen die Cursorposition)
wird selektiert gezeichnet
<PopUp-Hintergrund> Hintergrundbox der Menüeinträge
<das no|-Logo> sieht im Prinzip so aus: no|
momentan werden nur Rahmen- und Textfarbe
verwertet (Rahmenfarbe für 'no' und den
unteren Teil des Balkens - Textfarbe für
den oberen Teil des Balken)
Busyboxen:
... sind besondere Boxen, die automatisch nur solange erscheinen, wie
der Fortlauf einer Operation angezeigt wird (z.B. das Formatieren einer
Diskette). Diese besteht aus drei Elementen:
<Busybalken-Text> Text im Busybalken (z.B. "Abbruch durch ^C")
<Busybalken-Vordergrund> Balken, der mit Fortlauf der Operation
immer grö₧er wird
<Busybalken-Hintergrund> Bereich, der mit Fortlauf der Operation
durch <Busybalken-Vordergrund> 'ausgefrä₧t'
wird
Sliderboxen:
... sind Boxen, die eine Auswahlliste beinhalten (z.B. eine Fontliste).
Hier im globalen Bereich können die Randelemente einer solchen Box, die
im Wesentlichen denen eines Fensters entsprechen, bestimmt werden. Die
Inhalte dieser Boxen werden in den ortsabhängigen Definitionen (s.u.)
definiert.
<Sliderpfeil-hoch> Button zum Bewegen der Liste nach unten
<Sliderpfeil-runter> Button zum Bewegen der Liste nach oben
<Slider-Vordergrund> Schiebebalken zum Bewegen der Liste
<Slider-Hintergrund> Bereich, in dem der Schiebebalken zum
Bewegen der Liste liegt
3.2.3.2 Defintionszeilen für ORTSABHÄNGIGE Elemente (ROOT,FIRST,OPTION):
-------------------------------------------------------------------------
?D <Hintergrund (Boxfarbe)>,<Header der Box>
?E <Editfeld>,<Edit-Cursor>
?T <Text>
?B <'normaler'-Button>,<X-Button>,<PopUp-Button>
?N <SliderEntry-Header>,<SliderEntry-Vordergrund>,<SliderEntry-Hintergrund>
?C <ZählboxPfeil-links>,<ZählboxWert>,<ZählboxPfeil-rechts>
das ? kann sein:
R ROOT-Bereich
F FIRST-Bereich
O OPTION-Bereich
Erklärung der Kürzel:
<Hintergrund (Boxfarbe)> die Bereichsbox selbst
(Root, First oder Option)
<Header der Box> Infotextbox über der Bereichsbox
(Achtung: der Header des Firstbereichs kann
auch selektiert werden - s.o.)
<Editfeld> Texteingabefelder
<Edit-Cursor> der Cursor in einem Texteingabefeld
<Text> normaler 'Infotext' in einer Box
<'normaler'-Button> ein 'Knopf', bei dessen Betätigung eine
weitere Operation ausgeführt wird (z.B. das
Öffnen eines weiteren Dialoges, etc.)
<X-Button> Es gibt zwei Arten von X-Buttons:
- Checkbuttons: kleine Quadrate, die bei
Selektion mit einem Kreuz
gefüllt werden
- Radiobuttons: kleine Kreise, die bei
Selektion mit einem Punkt
gefüllt werden
Die Rahmenfarbe gibt die Farbe des Kreises
bzw. Quadrates an.
<PopUp-Button> Buttons, bei deren Betätigung ein
PopUp-Menü aufgeht (PopUp-Menü s.o.)
<SliderEntry-Header> Kopfzeile einer Sliderbox (s.o.)
<SliderEntry-Vordergrund> die Einträge einer Sliderbox - der aktuelle
Eintrag (sozusagen die Cursorposition)
wird selektiert gezeichnet
<SliderEntry-Hintergrund> Hintergrundbox der Listeneinträge
Zählboxen:
...sind Boxen zum Verändern eines Wertes innerhalb eines definierten
Wertebereichs. Sie bestehen aus drei Elementen:
<ZählboxPfeil-links> Button zum Verringern des Wertes
<ZählboxWert> Anzeige des aktuellen Wertes
<ZählboxPfeil-rechts> Button zum Vergrö₧ern des Wertes
3.2.3.3 Defintionszeilen für Alertboxen:
-----------------------------------------
A? <Root-Hintergrund>,<Texte>,<Icon>,<normale Buttons>
B? <First-Hintergrund>,<First-Header>,<Texthintergrundbox>
C? <OK-Button>,<Abbruch-Button>
das ? kann sein:
N: kein Icon
W: Warnung
A: Frage
S: Stop
I: Info
5-7: noch nicht unterstützt!
3.2.3.4 Defintionszeilen für Fensterelemente:
----------------------------------------------
?D <Kopf-Zeile>,<Info-Zeile>,<Function-Buttons>,<Head-Buttons>
?G <Closer>,<Fuller>,<Sizer>
?H <Pfeil-Links>,<Pfeil-Rechts>,<Hor.-Slid.-V.grund>,<Hor.-Slid.-H.grund>
?V <Pfeil-Hoch>,<Pfeil-Runter>,<Ver.-Slid.-V.grund>,<Ver.-Slid.-H.grund>
das ? kann sein:
T Definitionen für Fenster im Vordergrund (Topped window)
W Definitionen für Fenster im Hintergrund (untopped Window)
Erklärung der Kürzel:
<Kopf-Zeile> der Balken eines Fensters, mit dem es sich
verschieben lä₧t
<Info-Zeile> Bereich zwischen <Kopf-Zeile> und dem
eigentlichen Fensterinhalt (enhält meistens
Informationen über den Fensterinhalt)
<Function-Buttons> Buttons in der Randbereichen eines Fensters
<Head-Buttons> Buttons in der <Kopf-Zeile> eines Fensters
<Closer> Button, bei dessen Betätigung das Fenster
geschlossen wird
<Fuller> Button mit dem das Fenster auf seine
maximale Grö₧e verändert wird
<Sizer> Button mit dem man die Grö₧e eines
Fensters verändern kann
<Pfeil-Links> Button, mit dem der Fensterinhalt nach
rechts verschoben werden kann
<Pfeil-Rechts> Button, mit dem der Fensterinhalt nach
links verschoben werden kann
<Hor.-Slid.-V.grund> Balken zum Bewegen des Fensterinhaltes in
horizontaler Richtung
<Hor.-Slid.-H.grund> Hintergrundbox, in der der Balken zum
Bewegen des Fensterinhaltes in horizontaler
Richtung liegt
<Pfeil-Hoch> Button, mit dem der Fensterinhalt nach
unten verschoben werden kann
<Pfeil-Runter> Button, mit dem der Fensterinhalt nach
oben verschoben werden kann
<Ver.-Slid.-V.grund> Balken zum Bewegen des Fensterinhaltes in
vertikaler Richtung
<Ver.-Slid.-H.grund> Hintergrundbox, in der der Balken zum
Bewegen des Fensterinhaltes in vertikaler
Richtung liegt
4 Spezielle Effekte
====================
4.1 Outlined Texte
------------------
Manchmal bietet es sich, einen Text auf einem bestimmten Hintergrund, z.B
in einer SW-Auflösung Text auf einem 50% Muster, als Outlined-Text
darzustellen (Text mit Umrahmung). Dies geschieht implizit, wenn eine
bestimmte Kombination von Textfarbe, Füllfarbe und Füllmuster gewählt wird:
Wenn die Textfarbe gleich der Vordergrundfarbe ist und ein Füllmuster
zwischen 3 und 7 gewählt ist ODER die Textfarbe gleich der Hintergrund-
farbe ist und ein Füllmuster kleiner 6 gewählt ist, dann wird der
Text als Outlined-Text gezeichnet.
In der Realität bedeutet dies z.B., da₧ ein schwarzer Text auf einem
50 % Raster (Muster 4) als Outlined-Text gezeichnet wird und da₧ ein wei₧er
Text auf einem leicht gepunkteten Hintergrund (z.B. Muster 1) als
Oulined-Text gezeichnet wird, da man ansonsten den Text in seiner 'normalen'
Darstellung kaum sehen könnte.