Handbuchergnzung zu Interface 2.0


Vorwort

Nachdem  Interface  auf der ATARI-Messe 1991 das Licht  der  Welt  er-
blickte,  haben  mich  eine Menge  Verbesserungswnsche  erreicht.  In 
Interface  2.0  habe  ich  versucht,  davon so  viel  wie  mglich  zu 
verwirklichen.  Deshalb hier nochmals meinen Dank an alle,  die  nicht 
locker  gelassen haben und es geschafft haben,  mich von ihren  nder-
ungswnschen zu berzeugen.

Ich  habe  das  Programm weitestmglich  an  die  neuen  Multitasking-
Betriebssysteme wie Mag!X,  MultiGEM und MultiTOS angepat.  Da Multi-
TOS  zu  diesem  Zeitpunkt  leider noch  nicht  in  einer  endgltigen 
Version vorliegt,  beziehen sich alle nderungen auf die Beta-Version. 
Wenn sich noch gravierende Dinge ndern sollten,  werde ich  Interface 
selbstverstndlich daran anpassen.

Auf  den folgenden Seiten werden alle Unterschiede zwischen  Interface 
1.0  und Interface 2.0 erlutert.  Dabei werde ich mich  mglichst  an 
die Kapitelnumerierung des Handbuchs halten.


1 Einfhrung

  1.7 Zusatzfunktionen in Dialogboxen

Wenn Sie eine Dialogbox mit der Maus verschieben und dabei die SHIFT-, 
CONTROL-  oder ALTERNATE-Taste gedrckt halten,  wird nur  der  Rahmen 
der Dialogbox verschoben.  Dadurch ist es mglich durch Dialogboxen zu 
sehen, ohne sie verlassen zu mssen.

Alle  Abbruch-Buttons in Alertboxen und Dialogboxen lassen  sich  auch 
durch die UNDO-Taste bedienen.

In allen Dialogboxen wird das GEM-Clipboard ber Control-X/C/V  unter-
sttzt.  Alle 3 Befehle beziehen sich immer auf das Textfeld,  auf dem 
der Cursor gerade steht.

Kopieren     (Control-C): Der Text wird auf das Clipboard kopiert.

Ausschneiden (Control-X): Der  Text  wird auf das  Clipboard  kopiert. 
                          Danach wird das Textfeld gelscht.

Einfgen     (Control-V): Der Text des Clipboards wird an der  Cursor-
                          position eingefgt.


  1.8 Vergrern und Verkleinern von Objekten

Objekte  lassen  sich in alle 4 Richtungen vergrern.  Man  kann  das 
Objekt  zwar immer noch nur in der unteren rechten Ecke mit  der  Maus 
zur Grennderung anfassen,  aber man kann die Maus danach nach links 
oder ber das Objekt ziehen.  Interface schaltet dann automatisch  auf 
die jeweils der Maus am nchsten liegende Ecke um.


  1.10 Speicherverwaltung von Interface

Maximale Anzahl der...
Resourcen: 15
Bume einer Resource : 32767
Objekte in einem Baum:  1024
Images einer Resource: 10240
Objektnamen einer Resource: 32767 * 1024

Maximale Anzahl der Strukturen einer Resource:
OBJECT : 5120
TEDINFO: 5120
ICONBLK: 5120
BITBLK : 5120
USERBLK: 5120

Maximale Lnge aller Strings: 160 KB

einer Resourcedatei:  unsigned long,  d.h.  einige Megabytes. Begrenzt 
                      durch  die maximale Anzahl oder Lnge  der  eben 
                      genannten Strukturen.


3 Funktionsbeschreibung

  3.1 Die Menleiste

    3.1.1 Das Men "Datei"

      3.1.1.4 Menpunkt "Sichern"

Headerdateien  werden nur abgespeichert,  wenn Labels  verndert  oder 
gelscht wurden,  die Objekthierarchie gendert wurde,  oder wenn  der 
Resourceinfo-Dialog mit "OK" verlassen wurde.  Das drfte alle  Compi-
lerbenutzer  freuen,  deren Compiler sonst das komplette  Projekt  neu 
compilieren wrde.


      3.1.1.6 Menpunkt "Info..."

        3.1.1.6.1 Info einer geladenen Resource-Datei

Hinzugekommen sind die beiden Buttons

"static": Wenn  die  Resource als C-Source mit  der  RSH-Ausgabe  aus-
          gegeben werden soll und dieser Button selektiert  ist,  wird 
          jeder  Variablen das Wort  "static"  vorangestellt.  Dadurch 
          sind  alle Variablen der Resource modullokal  definiert  und 
          man  kann  mehrere Resourcen im C-Source in  einem  Programm 
          verwalten, ohne da es Namenskonflikte gibt.

"Langes Format":  Wenn dieser Schalter aktiviert wurde,  wird die  Re-
                  source  in einem speziellen Format  ausgegeben,  das 
                  (fast) beliebig lange Resourcen erlaubt. Das Resour-
                  ceformat  bleibt trotzdem weitgehend kompatibel  zum 
                  alten  Format;  Interface ndert nur alle  Variablen 
                  des Resource-Headers von "WORD" in "LONG" um,  damit 
                  mehr als 64 KB verwaltet werden knnen.

                  Auf  der Diskette liegen Routinen im  C-Source,  mit 
                  denen man diese Resourcen laden kann.  Nheres  dazu 
                  unter Punkt 10.


      3.1.1.9 Menpunkt "Letzte Fassung"

Dieser  Menpunkt  verwirft die aktuelle Resource und ldt  ihren  zu-
letzt gespeicherten Stand wieder ein.


      3.1.1.10 Menpunkt "Abbrechen"

Interface wird verlassen,  ohne da die Konfiguration gespeichert wird 
(auch wenn "Autosave" aktiviert ist).


    3.1.2 Das Men "Bearbeiten"

      3.1.2.2 Menpunkt "Objekte..."

Der  Objekttyp  "G_USERDEF"  wird direkt  von  Interface  untersttzt. 
Dabei  legt Interface eine OBJECT-Struktur an,  deren  ob_spec-Pointer 
auf eine USERBLK-Struktur zeigt.  Fr jedes solche Objekt wird in  der 
Resource eine eigene USERBLK-Struktur angelegt.

"ub_parm" kann direkt in Interface eingegeben werden.  "ub_code"  ent-
hlt  einen NULL-Pointer,  d.h.  nach dem Einladen einer  solchen  Re-
source  mu  man als erstes in "ub_code" aller  Userdef-Objekte  einen 
Zeiger  auf  die  eigene Zeichenroutine  eintragen.  Sonst  wrde  der 
Computer beim Zeichnen eines solchen Objekts sofort abstrzen.

Man  kann  eigene Objekte in die Objektebox von  Interface  einbinden. 
Mehr dazu unter Punkt 6.1 "Die Objektebox".

Wenn  die Objektebox in einem Fenster liegt,  kann man unter  MultiTOS 
auch  Objekte herausziehen,  wenn die Box im  Hintergrund  liegt.  Das 
gleichzeitige Drcken der rechten Maustaste ist dann nicht ntig.


      3.1.2.3 Menpunkt "Bume..."

Wenn die Baumbox in einem Fenster liegt,  kann man unter MultiTOS auch 
Bume herausziehen,  wenn die Box im Hintergrund liegt. Das gleichzei-
tige Drcken der rechten Maustaste ist dann nicht ntig.


      3.1.2.5 Menpunkt "Suchen..."

Man  kann nicht nur nach Labeln,  sondern auch nach beliebigen  Texten 
suchen.  Bei  der  Textsuche durchsucht Interface  die  komplette  Re-
source. Gro/Kleinschreibung wird nicht unterschieden.

Im Suchstring sind folgende Wildcards erlaubt:

*    :  Eine beliebige Anzahl beliebiger Zeichen
?    :  Ein beliebiges Zeichen
[a-z]:  Nur bestimmte Zeichen sind an dieser Stelle zugelassen.  [c-e] 
        wrde bedeuten,  da an dieser Stelle nur die Zeichen "c", "d" 
        und "e" zugelassen sind.

Einige Beispiele:
*text*
  sucht alle Textstellen, die die Zeichenfolge "text" enthalten.

text*
  sucht alle Textstellen, die mit "text" beginnen.

te?t
  sucht  alle  Textstellen,  die mit  "te"  beginnen,  ein  beliebiges 
  Zeichen an der dritten Stelle enthalten, und mit "t" enden.

te[w-y]t
  sucht alle Textstellen,  die mit "te" beginnen,  entweder  "w",  "x" 
  oder "y" an der dritten Stelle enthalten, und mit "t" enden.


      3.1.2.6 Menpunkt "Objektbaum testen"

Wenn  ein Dialog getestet werden soll und dieser  ein  EDITABLE-Objekt 
enthlt,  da nicht vom Typ FText oder FBoxText ist, wird eine Warnung 
ausgegeben,   da  das  AES  beim  Bearbeiten  einen  solchen   Objekts 
abstrzt.

Da  es  mglich  ist,  da  so ein  Objekt  von  einer  EXTOBFIX-Datei 
speziell  behandelt wird,  ist der Testvorgang trotzdem noch ber  die 
Alertbox aufrufbar. Also Vorsicht!

Wenn  ein  Menbaum  getestet werden soll  und  der  Menpunkt  "Men-
Tastaturkrzel  anordnen"  eingeschaltet  ist,   gibt  Interface   bei 
doppelt verwendeten Shortcuts eine Warnung aus.


      3.1.2.7 Menpunkt "Resourcevergleich..."

Zwei  Resourcedateien knnen miteinander verglichen werden.  Sinn  der 
Funktion  ist,  da man damit z.B.  fremdsprachige Resourcen  leichter 
pflegen kann und Fehler schneller findet.  Um die Funktion auszulsen, 
mu  man zwei Resourcedateisymbole selektieren und dann  diesen  Men-
punkt  aufrufen.  Der Menpunkt ist auch anwhlbar,  wenn  genau  zwei 
Resourcen  geladen wurden oder die Baumfenster von genau zwei  Resour-
cen offen sind.

Wenn ein bestimmter Baum einer der Resourcen selektiert oder  geffnet 
ist,  kann  der Vergleich wahlweise ab dem Anfang oder ab diesem  Baum 
durchgefhrt werden.


      3.1.2.8 Menpunkte "Ausschneiden", "Kopieren" und "Einfgen" 

ber  diese  Punkte kann man alle selektierten Objekte  aus  Formular- 
und Menbumen auf das Interface-Clipboard kopieren,  bzw von dort aus 
an der Mausposition einfgen lassen. Siehe dazu auch Punkt 3.2.5.


    3.1.3 Das Men "Optionen"

      3.1.3.1 Menpunkt "Einstellungen..."

        3.1.3.1.2 "Im Fenster:"

Auer  wie bisher der Desktop lassen sich jetzt auch folgende  Objekte 
in Fenster legen:

Menzeile:

Der praktische Nutzen ist vielleicht fraglich.  Aber da Interface ber 
diese Mglichkeit verfgt (fr die kleinen Farbauflsungen),  wurde es 
jetzt einschaltbar gemacht.

Dialoge:

Damit  andere Prozesse unter Mutitasking-Betriebssystemen  wie  Mag!X, 
MultiGEM  oder MultiTOS nicht in ihren  Bildschirmausgaben  angehalten 
werden,  wenn  Interface  eine Dialogbox anzeigt,  werden  mit  dieser 
Option  alle Dialoge in Fenster gelegt.  Falls kein Fenster  mehr  zur 
Verfgung steht, werden Dialoge als normale Dialogboxen angezeigt.

Objektboxen:

Damit  man  die Objektboxen nicht immer erneut ber "O" bzw  ber  "B" 
aufrufen mu,  kann man sie in Fenster legen und dann auf dem  Desktop 
liegen  lassen.  Zusammen  mit  der rechten Maustaste  kann  man  dann 
Objekte  auch aus den im Hintergrund liegenden Objektboxen  herauszie-
hen.


        3.1.3.1.6 "Objektdatenanzeige in Zeichen oder Pixel"

Die  Objektdatenanzeige wird auch in  Menbumen  angezeigt.  Auerdem 
werden alle 16 Zeichen des Objektnamens ausgegeben.

Wenn  die Objektdatenanzeige eingeschaltet ist,  gibt es in  Interface 
merkwrdigerweise  Probleme bei der  Doppelklickerkennung,  wenn  zwei 
Events  gleichzeitig eintreffen (MU_BUTTON und MU_M2).  Das  liegt  an 
dem etwas "eigenwilligen" Verhalten von evnt_multi.

Ich  hab  nun versucht etwas dagegen zu  unternehmen,  indem  ich  den 
MU_M2-Event wieder durch einen MU_TIMER-Event ersetzt habe.

Nach  einem Einfachklick warte ich jetzt,  ob direkt darauf  noch  ein 
weiterer Klick folgt.  Wenn das der Fall ist,  fasse ich beide  Klicks 
zu  einem  Doppelklick zusammen.  Doppelklicks  werden  dadurch  jetzt 
wesentlich  besser  erkannt.  Als Nebeneffekt dauert  es  aber  leider 
manchmal  bis  zu einer halben Sekunde,  bis  auf  einen  Einfachklick 
reagiert  wird.  Das  passiert aber nur,  wenn es  ein  "verdchtiger" 
Einfachklick  ist (z.B.  wenn zwei Events gleichzeitig  gemeldet  wur-
den).


        3.1.3.1.9 "Parameter automatisch speichern"

Alle  Einstellungen von Interface sowie die meisten Daten der  aktuel-
len  Desktop-Konfiguration  werden beim Beenden  von  Interface  auto-
matisch  gespeichert,  wenn diese Option  eingeschaltet  ist.  Dadurch 
findet  man  Interface nach einem spteren Start  wieder  im  gleichen 
Zustand vor.

Gespeichert wird:

- Die Position aller Icons

- Die Gre,  Position und Sliderposition aller  Resourcedatei-Fenster     
  (dazu zhlt das Baumfenster, Formularfenster und Menfenster)

- Die Position der Baum- und Objekteboxen

- Die Gre, Position und Sliderposition des Desktopfensters

- Die Pfade aller geladenen Resourcedateien

- Die Position jedes geffneten Baumfensters.  Wenn man eine  Resource     
  ldt,  wird  das Fenster an der alten Position  geffnet.  Interface     
  verhlt sich damit hnlich wie der ATARI-Desktop.

Alle  Koordinaten werden bei einem Auflsungswechsel ntigenfalls  an-
gepat, damit immer noch alle Objekte erreicht werden knnen.


        3.1.3.1.10 "Sizebox"

Alle,  die  die  Vergerungsecke eines Objektes nie  finden  konnten, 
knnen sie jetzt mit dieser Option sichtbar machen.


        3.1.3.1.11 "Label-Prefix"

Wenn dieser Punkt selektiert ist,  stellt Interface jedem neu eingege-
benen  Label  eine  einstellbare Anzahl  von  Zeichen  des  Baumnamens 
voraus.  Ein Trennzeichen kann auch definiert werden.  Die  Buchstaben 
werden  nur dann vor das Label gehngt,  wenn das Objekt  bisher  noch 
keinen Namen besessen hat.

Ein Beispiel:  Ein neues Objekt im Baum "SETTINGS" soll den Namen "OK" 
bekommen.  Label-Prefix  ist auf 3 Zeichen gesetzt,  das  Trennzeichen 
ist  "_".  Nach  der  Eingabe des Objektnames  "OK"  und  Beenden  des 
Dialogs bekommt das Objekt den Namen "SET_OK" zugewiesen.


        3.1.3.1.12 "Objekt-Popup"

Mit dieser Option lt sich das Popup ausschalten,  das ansonsten beim 
Selektieren  eines Objektes erscheint.  Alle darin  enthaltenen  Funk-
tionen  knnen  deshalb  auch ber die  Menleiste  im  Men  "Objekt" 
erreicht  werden.  Dadurch ist das Selektionsverfahren  von  Interface 
"kompatibler"  zu anderen Programmen (ein Klick auf ein Objekt  selek-
tiert es, anstatt das Popup erscheinen zu lassen).


        3.1.3.1.13 "Men-Tastaturkrzel anordnen"

Wenn dieser Punkt selektiert ist,  werden eventuell vorhandene  Tasta-
turkrzel  (z.B.  '^Q') in Meneintrgen automatisch rechtsbndig  an-
geordnet,  so da alle Krzel untereinander stehen. Auerdem berprft 
Interface  beim Aufruf der Testfunktion (F9) fr  eine  Menzeile,  ob 
Tastaturkrzel  doppelt  verwendet wurden und gibt in  dem  Fall  eine 
Warnung aus.


      3.1.3.2 Menpunkt "Raster..."

Das  XY-Raster  fr  Objektpositionen wird  jetzt  fr  jede  Resource 
getrennt  verwaltet.  Wenn man das HRD-Format benutzt,  wird  das  ak-
tuelle Raster mit der Resource abgespeichert.


      3.1.3.5 Menpunkt "Raster benutzen"

Mit diesem Punkt kann man das eingestellte Raster aller Resourcen  auf 
Pixelraster  umschalten.  Bei einer erneuten Anwahl werden  die  alten 
Rastereinstellungen restauriert.  Der Sinn ist eine schnelle  Umschal-
tung zwischen Buchstaben- und Pixelraster.


      3.1.3.6 Menpunkt "Objektnummern fest"

Durch  diesen Menpunkt kann man verhindern,  da  sich  Objektnummern 
durch Editierfunktionen verndern.  Statt dessen ndert Interface  nur 
die  Verkettung  der Objekte,  sowohl in Dialogen als  auch  in  Men-
bumen.  Wenn diese Option selektiert ist, ndert Interface auch nicht 
mehr die Position unsortierter Menbaumeintrge.

Wenn  ein neues Objekt in einen Baum eingefgt wird,  wird es  an  das 
Baumende  angehngt  und verndert daher nicht die  Objektnummern  an-
derer  Objekte  in  diesem Baum.  Das Sortieren  in  Bumen  ist  auch 
mglich.  Dabei wird nur die Objektverkettung umgehngt,  alle Objekte 
bleiben an ihrem Platz.

Wenn  dieser  Schalter gesetzt ist,  sollte es  leicht  mglich  sein, 
Resourcen fremder Programme zu ndern,  ohne da das Programm  dadurch 
Schaden nimmt.  Es kann nur zu Fehlern kommen,  wenn ein Programm  der 
Objektverkettung der eigenen Resource folgt.  Aber das drfte fast nie 
vorkommen.


    3.1.4 Das Men "Objekt"

Alle Eintrge dieses Mens entsprechen dem Objekte-Popup (s.  3.3.2.5) 
und dienen dazu,  dessen Funktionen aufrufen zu knnen, wenn das Popup 
abgeschaltet ist (s.  3.1.3.1.12).  ber den Punkt "Lschen" in diesem 
Men lassen sich auch Bume aus einem Resourcedatei-Fenster lschen.


    3.1.5 Das Men "Fenster"

In  diesem  Men  sind die ersten  10  geladenen  Resourcedateien  an-
whlbar.  Sinn  der  Aktion  ist,  da man  auch  mit  ausgeschaltetem 
Desktop  Fenster fr Resourcedateien ffnen kann.  Man kann es  natr-
lich auch benutzen,  um schnell das Fenster einer bestimmten Datei  zu 
toppen (bzw. zu ffnen).

Die  Resourcedateien 11 bis 15 sind weiterhin nur ber den  Interface- 
Desktop erreichbar.


  3.2 Der Desktop

Ein Tip fr alle,  die den Interface-Desktop abschalten wollen:  Desk-
top ins Fenster legen,  Parameter speichern,  Interface erneut  laden, 
Desktop  schlieen,  Parameter erneut speichern.  Bei  allen  weiteren 
Starts erscheint dann kein Desktop mehr.  Man kann den Desktop  wieder 
ffnen,  indem  man  die Copyright-Meldung anzeigen  lt  (etwas  ex-
travagant,  aber was soll man machen...),  oder indem man den  Desktop 
nicht mehr ins Fenster legt.

Empfehlenswerter  ist  es  aber,  den Desktop als  Fenster  soweit  zu 
verkleinern,  da nur noch der Papierkorb,  das Clipboard und ein  bis 
zwei Resourcedateien sichtbar sind.  Wenn der Desktop in einem Fenster 
liegt,  kann man unter MultiTOS auch Objekte anwhlen und verschieben, 
wenn der Desktop im Hintergrund liegt.  Das gleichzeitige Drcken  der 
rechten Maustaste ist dann nicht ntig.


    3.2.1 Die Funktionstasten F1 bis F10

F8: Umschalten  vom  eingestellten Raster auf das  Pixelraster  (1*1). 
    Entspricht Menpunkt "Raster benutzen" (Punkt 3.1.3.5).


    3.2.5 Das Clipboard

Das Interface-Clipboard wird fr Objekte aus Formular- und  Menbumen 
benutzt.  Objekte zieht man einfach auf das Clipboard,  bzw. zieht sie 
wieder  aus dem Clipboard auf ein Dialog- oder Menfenster.  Wenn  das 
Clipboard-Icon  verschoben werden soll,  mu man es  erst  selektieren 
(Mausklick  oder Rubberbox) und kann es dann verschieben.  Solange  es 
nicht selektiert ist, kann man den Inhalt "herausziehen".

Man  darf  selbstverstndlich auch mehrere Objekte  gleichzeitig  aufs 
Clipboard  kopieren.  Wenn  man  die Shift-Taste  beim  Loslassen  der 
Maustaste  gedrckt  hlt,  werden die Objekte auf das  Clipboard  ko-
piert. Im anderen Fall werden sie ins Clipboard verschoben.

Das hier beschriebene Clipboard ist nur Interface-Intern,  d.h. es hat 
nichts  mit einem eventuell vorhandenen Clipboard-Ordner zu  tun.  Da-
gegen  funktionieren  die weiter  oben  beschriebenen  Clipboard-Funk-
tionen  in  den  Textfeldern von  Dialogboxen  mit  dem  Standard-GEM-
Clipboard.  Alle  Funktionen des Clipboards lassen sich auch ber  die 
Menleiste mit "Ausschneiden", "Kopieren" und "Einfgen" ausfhren.


  3.3 Editieren einzelner Bume

Formularfenster  und  Menfenster werden relativ zum  Baumfenster  ge-
ffnet.  Das  soll  die bersicht etwas erhhen und drfte  vor  allem 
Grobildschirmbesitzer freuen.


    3.3.1 Editieren von Menbumen

Die  Shortcuts in Menbumen werden bei entsprechender Einstellung  im 
Optionen-Men automatisch rechtsbndig angeordnet.  Dabei beachtet In-
terface folgende Regeln zur Erkennung:

- Der Shortcut startet hinter dem ersten Leerzeichen,  das von  rechts 
  gefunden wird.

- Vor  der Tastenangabe mu mindestens ein Kontrollzeichen fr  Shift, 
  Control oder Alternate stehen,  oder es folgt sofort die Tastenanga-
  be; dann sind aber nur Sondertasten wie HELP, INSERT usw erlaubt.

- Nach dem oder den Kontrollzeichen mu eine 1 Zeichen lange Tastenan-
  gabe folgen, oder eine Angabe einer Sondertaste.

Wenn diese Bedingungen erfllt sind, werden die Shortcuts nach folgen-
den Regeln angeordnet:

- Vor jedem Shortcut mssen mindestens 2 Spaces stehen.

- Steht am Textende ein "..." (z.B.  in "ffnen..."),  dann reicht  in 
  dieser Zeile 1 Space vor dem Shortcut aus.

Die  erlaubten Zeichen fr die Kontrolltasten stehen in der  Interface 
Resource im Free String "SHORTCUT".  Die erlaubten Sondertasten stehen 
im  Free  String "SH_KEYWORDS".  Vor und hinter jeder  Sondertaste  in 
diesem Free String mu ein "/" stehen.

Dadurch  sind fast alle denkbaren Shortcuts von  Interface  erkennbar. 
Einzige Ausnahme ist ein einzelner Buchstabe,  vor dem kein  Kontroll-
tastenzeichen  steht.  Ich  habe diese  Mglichkeit  absichtlich  aus-
geklammert,  damit Interface nicht versehentlich ein Zeichen aus einem 
Meneintrag ohne Shortcut falsch anordnet (z.B. "Bild 1").

Meneintrge  werden  immer vollstndig  mit  Leerzeichen  aufgefllt, 
damit man unter MultiTOS Submens verwenden kann.

Man  kann  jetzt  auch in  Menbumen  einzelne  Objekte  selektieren. 
Dadurch  kann man sie ber die Menleiste lschen und ist  nicht  mehr 
auf den Papierkorb des Desktops angewiesen.  Es gibt jetzt  eigentlich 
keinen  Grund mehr,  den Interface-Desktop unter  einem  Multitasking- 
Betriebsystem einzuschalten.  Die einzige Einschrnkung in  Menbumen 
ist, da man immer nur ein Objekt zur Zeit selektieren kann.

Wenn man einen Mentitel ausschneidet,  wird das dazugehrige Pulldown 
nicht  mit  ins  Clipboard kopiert,  da es zu  einer  anderen  Objekt-
hierarchie gehrt.

Wenn  man  in einem Pulldown-Meneintrag ein "-" (Minus)  eingibt  und 
das  Flag DISABLED setzt,  expandiert Interface das Zeichen  ber  die 
komplette  Breite des Pulldown-Mens und erzeugt dadurch einen  Trenn-
strich.
Man kann auch Teilberschriften in einem Pulldown unterbringen. Norma-
lerweise  sollte man aber immer auf diese Mglichkeit  verzichten,  da 
Teilberschriften sehr hlich aussehen und dem normalen Erscheinungs-
bild eines GEM-Programms widersprechen.  Es ist aber denkbar,  da man 
unter  besonderen Umstnden (z.B.  aus Platzmangel) nicht darauf  ver-
zichten kann.
Um  eine Teilberschrift zu erhalten,  mu man als erstes und  letztes 
Zeichen ein "-" eingeben.  Wenn dieser Eintrag dann auch noch DISABLED 
ist,  fgt  Interface davor und dahinter keine Leerzeichen  mehr  ein. 
Man  kann dadurch also z.B.  einen Eintrag "--- Laden  ---"  erzeugen, 
der am linken Rand des Pulldown-Mens beginnt und nicht von  Interface 
automatisch 2 Zeichen nach rechts geschoben wird.


    3.3.2 Editieren von Formularbumen

      3.3.2.2 Objekte ndern

Alle  erweiterten Flags lassen sich editieren.  Dazu gibt es in  allen 
Edit-Dialogboxen den Button "Extended Flags".

In  jeder  Dialogbox kann man durch den Button "Nchstes"  direkt  von 
einem Objekt zum nchsten gelangen.  Dabei werden erst alle Daten  der 
Dialogbox  bernommen,  bevor  darin die Daten  des  nchsten  Objekts 
angezeigt werden.

Der  Button "HELP" zeigt eine Hilfeseite an,  in der alle  erweiterten 
Objekttypen  der geladenen EXTOBFIX-Datei erlutert  werden.  Im  Box-
Text-Dialog  wird auerdem noch eine Hilfeseite ber  alle  te_pvalid- 
Platzhalter der TEDINFO-Struktur angezeigt.


        3.3.2.2.9 Maske

Im  Boxtext-Dialog sind fr te_pvalid die Zeichen "A"-"Z" und  "a"-"z" 
zugelassen,  damit  man  fr eigene  benutzerdefinierte  Objekte  neue 
Eingabetypen verwenden kann.  Der "HELP"-Button zeigt eine  Hilfeseite 
ber alle te_pvalid-Platzhalter an.


      3.3.2.3 Objekte kopieren/verschieben

Beim  Verschieben eines Objekts kann man das Objekt jetzt "unter"  ein 
anderes  Objekt  schieben.  Es wird dem Zielobjekt  nicht  mehr  auto-
matisch  als  Child zugeordnet,  wenn man auf die Alertbox  "Soll  die 
Objektstruktur  gendert  werden?  Abbruch/Nein/Ja"  mit  "Nein"  ant-
wortet.  Diese Alertbox erscheint nur, wenn das verschobene Objekt und 
das Zielobjekt ein gemeinsames Parent besitzen.  Dadurch soll  verhin-
dert werden, da ein Objekt auerhalb des Parents liegen kann.

Wenn man mehrerer Objekte innerhalb eines Fensters  verschiebt,  blei-
ben die Objekte auch nach der Verschiebeaktion selektiert,  damit  man 
sie  ggf.  noch  weiter  verschieben kann und nicht  wieder  alle  neu 
selektieren  mu.  Auerdem verndert Interface dabei nicht  mehr  die 
Objektreihenfolge, nur die Verkettung wird u.U. gendert.

Die  lstige  Alertbox  "Soll  das Objekt  wirklich  auf  sich  selbst 
kopiert werden?" gibt es nicht mehr.  Die Kopieraktion wird nicht mehr 
durchgefhrt, wenn das Objekt um keinen Pixel verschoben wurde.


      3.3.2.5 Zustzliche Funktionen im Popup

        3.3.2.5.2 Sortieren

Die Sortierrichtung lt sich invertieren.  Dadurch bauen sich Dialoge 
von  unten  nach oben bzw von rechts nach links auf.  Man  sollte  von 
dieser Mglichkeit aber so selten wie mglich Gebrauch machen,  da  es 
nicht  besonders  schn  aussieht,  wenn ein Dialog  auf  diese  Weise 
gezeichnet wird.

Manuelles Sortieren: Die zu sortierenden Objekte mssen in der Reihen-
folge angeklickt werden,  in der sie spter gezeichnet werden  sollen. 
Wenn alle Objekte "weggeklickt" wurden,  wird ein "Pling"  ausgegeben. 
Der Vorgang lt sich mit der rechten Maustaste abbrechen.

Whrend  man manuell sortiert,  sind alle anderen Operationen  in  In-
terface  gesperrt.  Auch ein Scrollen des Fensters ist nicht  mglich, 
man mu es also u.U. vorher auf die gewnschte Gre bringen.

Damit  man  leichter  erkennen kann,  welche  Objekte  noch  angewhlt 
werden  mssen,  wird nur fr die noch nicht selektierten Objekte  die 
Objektdatenanzeige angezeigt.


4 Der Iconeditor

In der Dialogbox,  die den Iconeditor aufruft, knnen Icons und Images 
durch  den  Button  "Minimale Gre" soweit  wie  mglich  verkleinert 
werden,  ohne  da Daten verloren gehen.  Dabei wird das Image  soweit 
nach links oben geschoben,  bis dort kein weier Rand mehr  existiert. 
Dann werden der rechte und untere weie Rand abgeschnitten.  Zu  guter 
Letzt wird das Image wieder zentriert.


  4.1 Die Menleiste

    4.1.1 Das Men "Datei"

      4.1.1.1 Menpunkt "Grafik ausschneiden"

Der  Menpunkt wurde zum besseren Verstndnis in die Menpunkte  "Gra-
fik  laden" und "Grafik ausschneiden" unterteilt.  Mit "Grafik  laden" 
kann  man  ein neues Bild laden.  An "Grafik  ausschneiden"  hat  sich 
nichts gendert.

"Grafik  laden" ldt auch Farbbilder im XIMG-Format.  Das Format  wird 
z.B.  vom Malprogramm "Papillon" untersttzt. Die geladenen Farbbilder 
werden  in der aktuell eingestellten Palette bzw.  unter TrueColor  in 
der  Palette  der Resource angezeigt (also nicht in der  des  Bildes), 
damit  man  sieht,  mit welchen Farben der ausgeschnittene  Block  vom 
Iconeditor bernommen wird.

Interface  fhrt keine Farbumwandlung der XIMG-Grafik an  die  Palette 
des Iconeditors durch.  Man mu also u.U.  solche Grafiken vorher  mit 
einem Zeichenprogramm auf die Palette der Resource umrechnen lassen.

Wenn man einen Block aus einer 256-farbigen Grafik in ein Icon mit  16 
Farben  einfgen  will,  werden nur die ersten 4  Planes  (16  Farben) 
ausgeschnitten und in den Iconeditor bernommen.  Dadurch werden  alle 
Farben  ber  der Farbe 15 falsch bernommen.  Man  hat  dadurch  aber 
immerhin den Vorteil,  da alle Umrisse der gewnschten Grafik bereits 
erkennbar sind und man sie nur etwas nachbearbeiten mu.


      4.1.1.3 Menpunkt "Als Image sichern"

Der  Iconeditor  speichert  farbige Icons unter  diesem  Menpunkt  im 
XIMG-Format ab.  Das XIMG-Format ist kompatibel zum  IMG-Format,  ent-
hlt aber zustzlich noch eine RGB-Tabelle.  Interface verwendet dafr 
die  RGB-Palette  der Resource.  Eine genaue  Beschreibung  des  XIMG-
Formats  befindet sich z.B.  im Buch "Vom Anfnger zum GEM-Profi"  von 
Dieter und Jrgen Gei.


      4.1.1.4 Menpunkt "Quellcode sichern"

Man  kann jetzt auch Farbicons im Quellcode abspeichern.  Dabei  blieb 
das ICN-Format aus Kompatibilittsgrnden unverndert,  es werden  nur 
mehr Grafikdaten abgespeichert.  An die Anzahl der verwendeten  Planes 
gelangt man durch:

planes = DATASIZE / ((ICON_W / 16) * ICON_H);

Die  Grafikdaten  werden im gerteunabhngigen  Format  abgespeichert. 
Bevor  man das Icon anzeigen kann,  mu man es mit "vr_trnfm"  in  das 
gerteabhngige Format wandeln.  Die Maske enthlt natrlich weiterhin 
nur eine Plane.


      4.1.1.6 Menpunkt "Windows-Icon laden"

Wenn  man  ein Farbicon editiert,  kann man mit diesem  Menpunkt  ein 
WINDOWS- oder OS/2-Icon laden.  Interface untersttzt dabei nur  Icons 
mit  32 * 32 Pixeln und 16 Farben.  Das ist kein groer  Nachteil,  da 
das  fr  95% der WINDOWS- und  OS/2-Icons  zutrifft.  OS/2  2.0-Icons 
knnen  noch  nicht  geladen werden,  da das  Format  scheinbar  nicht 
kompatibel zu lteren OS/2 Versionen ist.

WINDOWS-und  OS/2-Icons liegen in vielen Mailboxen und knnen  sicher-
lich  auch von Public Domain-Versendern bezogen werden.  Dadurch  kann 
man bereits eine Vielzahl von Farbicons auf dem Atari nutzen.

Da  WINDOWS- und OS/2-Icons keine monochrome Version des Icons in  der 
Datei speichern,  mu man diese Auflsung leider selber  zeichnen.  Es 
gibt  aber  einen  kleinen Trick,  der diese  Arbeit  zumindest  etwas 
erleichtert. Genaueres erfahren sie dazu in Kapitel 13.2.


      4.1.2 Das Men "Bearbeiten"

      4.1.2.4 Menpunkte "Ausschneiden", "Kopieren" und "Einfgen"

Der  Iconeditor untersttzt das GEM-Clipboard.  Alle Icons und  Images 
werden  im  XIMG-  und  im ICO-  (IconEdi)  Format  abgespeichert  und 
geladen.

Kopieren     (Control-C): Das  Icon/Image wird auf das  Clipboard  ko-
                          piert.

Block kopieren          : Ein Teil des Icons/Images wird auf das Clip-
(Shift-Control-C)         board kopiert.  Sobald man einen Rahmen auf-
                          gezogen  hat,  wird der Inhalt  der  Rahmens 
                          kopiert.  Die Aktion lt sich mit der rech-
                          ten Maustaste abbrechen.

                          Um   den  Block-Kopiermodus  zu   verlassen, 
                          whlt  man  mit  den Icons  auf  der  linken 
                          Seite einen beliebigen Zeichenmodus aus.

Ausschneiden (Control-X): Das  Icon/Image wird auf das  Clipboard  ko-
                          piert und danach gelscht. 

Einfgen     (Control-V): Das  Icon/Image des Clipboards wird  in  den 
                          Iconeditor bernommen.

                          Wenn  das einzufgende Bild kleiner als  das 
                          Icon  ist,  kann man es vorher noch mit  der 
                          Maus  genau plazieren.  In diesem Fall  wird 
                          die  neue Grafik transparent ber  die  alte 
                          Grafik gezeichnet, d.h. weie Teile der ein-
                          gefgten  Grafik  lschen keine  Punkte  des 
                          Icons.  Dadurch kann man leicht verschiedene 
                          Bilder miteinander kombinieren.

                          Wenn  das einzufgende Bild grer oder  ge-
                          nauso gro wie das Icon ist,  ersetzt es die 
                          alte Grafik komplett.  Grere Bilder werden 
                          natrlich nur bis zur Gre des Icons einge-
                          fgt.


      4.1.2.5 Menpunkt "Iconvorschau"

Mit  diesem  Punkt kann man den oberen Bereich,  in dem  das  Icon  in 
Originalgre angezeigt wird,  ausschalten.  Dadurch hat man auch  bei 
greren Icons eine gengend groe Arbeitsflche.  Die Einstellung von 
"Iconvorschau" wird mit "Parameter sichern" gespeichert.


    4.1.4 Das Men "Maske"

Die  Maskenpunkte werden jetzt zur besseren Unterscheidung von  grauen 
Farbtnen als Kreuze angezeigt.


    4.1.5 Das Men "Farbe"

Die  meisten  Menpunkte des Mens "Farbe" lassen sich  nur  anwhlen, 
wenn ein Farbicon im Iconeditor editiert wird.

Ein Farbicon ist in Wirklichkeit kein einzelnes Icon,  sondern besteht 
aus  mehreren Icons fr die unterschiedlichsten Farbanzahlen  und  die 
jeweiligen Selektionszustnde.  Wenn man eine Farbicon-Resource  ldt, 
sucht sich das Betriebssystem (sofern es Farbicons  untersttzt,  z.Z. 
erst ab Version 4.00) bei jedem Farbicon das Icon aus,  das gerade  am 
besten zur momentan aktiven Auflsung pat.  Dabei kann das  Betriebs-
system  alle Icons verwenden,  die genau so viele oder weniger  Planes 
verwenden.  Unter  diesen mglichen Icons wird natrlich das Icon  mit 
den  meisten  Planes  benutzt.  Die Anzahl  der  Planes  bestimmt  die 
maximale Farbanzahl des Icons:

  Farben = 2 ^ Planes

es ist wahrscheinlich am sinnvollsten,  fr ein Farbicon mglichst nur 
ein monochromes und ein 16-farbiges Bild anzulegen.  Ein  256-farbiges 
Bild  verbraucht sehr viel Speicherplatz,  und auerdem sind  bei  den 
meisten  Programmen  bzw.  Anwendern nur die ersten 16  Farben  gleich 
definiert  (zumindest sollten sie es sein).  4-farbige  Icons  dagegen 
sehen  aufgrund der beschrnkten Farbanzahl meistens sogar  schlechter 
aus als monochrome.

Icons  mit  256 (oder mehr) Farben lassen sich sinnvoll  fr  Spezial-
flle in eigenen Anwendungen einsetzen,  z.B.  um Verkleinerungen  von 
geladenen Grafikdateien anzuzeigen o..


      4.1.5.1 Menpunkt "Auflsung whlen"

Hier  kann  man  jede gewnschte Auflsung des  Farbicons  direkt  an-
whlen.  Wenn  die Auflsung noch nicht existiert,  kann man  sie  neu 
anlegen lassen.


      4.1.5.2 Menpunkt "Auflsung entfernen"

Dieser  Menpunkt  lscht die gerade angezeigte  Auflsung  des  Farb-
icons.  Wenn fr die Auflsung auch ein Selektionsbild existiert, wird 
dieses auch gelscht.


      4.1.5.3 Menpunkt "Selektiertes Icon"

Hiermit  kann  man zwischen dem normalen Bild und  dem  Selektionsbild 
der  gerade angewhlten Auflsung umschalten.  Wenn noch  kein  Selek-
tionsbild existiert, kann man es neu anlegen lassen.


      4.1.5.4 Menpunkt "Selektion entfernen"

Das Selektionsbild der gerade angewhlten Auflsung wird gelscht.


      4.1.5.5 Menpunkt "Palette bernehmen"

Die aktuelle Farbpalette wird in die Resource bernommen.

Bei  Farbicons gibt es das Problem,  da man nicht  garantieren  kann, 
da  jeder die gleiche Farbpalette auf seinem Rechner  verwendet.  Die 
Farbwerte  fr die ersten 16 Farben sind zwar mehr oder weniger  genau 
definiert,  aber alle darberliegenden Farben knnen sich von  Rechner 
zu  Rechner  unterscheiden.  Man kann natrlich auch  niemanden  daran 
hindern, die ersten 16 Farben umzudefinieren.

Damit  ein  Programm die Farbicons in den  korrekten  Farben  zeichnen 
kann,  mu  es natrlich wissen,  mit welcher Farbpalette diese  Icons 
erstellt wurden.

Die mitgelieferten Routinen sorgen dafr,  da die gezeichneten  Icons 
in  allen  Auflsungen korrekt gezeichnet werden,  in denen  im  Pixel 
direkt  der RGB-Wert enthalten ist.  Das sind alle Auflsungen mit  15 
und mehr Planes (>=32768 Farben). Das kann aber natrlich nur funktio-
nieren,  wenn  die Resource eine RGB-Palette enthlt,  damit aus  z.B. 
einem  16-farbigen Icon die entsprechenden Pixelwerte  erzeugt  werden 
knnen.

Die  RGB-Palette ist eine Erweiterung des Resourceformats  von  Inter-
face.  Atari  hat selber noch keine RGB-Palette  vorgesehen.  Das  Re-
sourceformat  bleibt  trotzdem kompatibel zum  Atari-Format  und  kann 
weiterhin  problemlos  vom Farbicon-AES eingelesen  werden.  Die  RGB-
Tabelle wird dabei einfach ignoriert.

Wenn  die Resource mindestens ein Farbicon enthlt,  speichert  Inter-
face  immer  eine  RGB-Palette mit ab.  Wenn  noch  keine  Palette  im 
Iconeditor in die Resource bernommen wurde,  verwendet Interface  die 
aktuelle Systempalette.

Rein  theoretisch knnten die mitgelieferten Farbicon-Routinen  natr-
lich  in  allen  Auflsungen die RGB-Palette fr  die  Farbicons  ein-
stellen,  aber  darauf wurde verzichtet,  da sich in  Auflsungen,  in 
denen  die  Farben  ber die Farbpalette eingestellt  werden  (<=  256 
Farben),  dann  alle Farben gendert wrden.  Daher sollte in  solchen 
Auflsungen  das Programm ntigenfalls die Farbpalette selber aus  der 
Resource auslesen und einstellen.

Auerdem  wre  es  unter  Multitasking-Betriebssystemen  recht  unan-
genehm,  wenn  Programme  beim  Aktivieren  dauernd  die  eingestellte 
Farbpalette umschalten wrde.

Die  ersten  16  Farben sollten wie  folgt  definiert  sein,  um  eine 
einheitliche Darstellung von Farbicons und anderen farbigen  Elementen 
auf   verschiedenen  Rechnern zu ermglichen.  (siehe  dazu  auch  das 
"ATARI  Profibuch",  10.Auflage auf Seite 284 oder "Vom  Anfnger  zum 
GEM-Profi", 1. und 2. Auflage auf Seite 76-77):

Nr | Farbe         |   R    G    B  Werte (Wertebereich von 0-1000)
 0 | wei          | 1000 1000 1000
 1 | schwarz       |    0    0    0
 2 | rot           | 1000    0    0
 3 | grn          |    0 1000    0
 4 | blau          |    0    0 1000
 5 | cyan          |    0 1000 1000
 6 | gelb          | 1000 1000    0
 7 | magenta       | 1000    0 1000
 8 | hellgrau      |  752  752  752
 9 | dunkelgrau    |  501  501  501
10 | dunkelrot     |  713    0    0
11 | dunkelgrn    |    0  713    0
12 | dunkelblau    |    0    0  713
13 | dunkelcyan    |    0  713  713
14 | dunkelgelb    |  713  713    0
15 | dunkelmagenta |  713    0  713

Diese  Farben  entsprechen auch weitestgehend den  unter  WINDOWS  und 
OS/2   verwendeten   Iconfarben.   Nur  wenn  diese   Farben   korrekt 
eingestellt  sind,  kann Interface die Icons der genannten Systeme  in 
den richtigen Farben darstellen.

Sie  knnen diese Farben im Kontrollfeld einstellen.  Auf  der  Inter-
face-Diskette  befindet  sich auch ein neues CPX-Modul  fr  XControl, 
das  auf jedem TOS und auf jeder Grafikkarte funktioniert und mit  dem 
die Farben auch korrekt eingestellt werden knnen.

Wenn  Sie  nicht einen der oben angegebenen Werte  einstellen  knnen, 
weil  Ihr  momentan eingestellter Grafikmodus nicht  so  viele  unter-
schiedliche Farben untersttzt,  dann sollten Sie den  nchstmglichen 
Wert   einstellen.   Im  mitgelieferten  CPX-Modul  stellt   man   den 
Wertebereich  von  0-1000 ein,  indem man  unter  "Option"  "Promille" 
anwhlt.


      4.1.5.6 Menpunkt "Palette anzeigen"

Die  aktuelle  Palette wird durch die Palette  der  Resource  ersetzt. 
Dadurch  kann  man  sich ansehen,  welche Palette  in  einer  Resource 
verwendet  wurde.  Unter TrueColor-Auflsungen ist dieser Punkt  nicht 
anwhlbar,  da Interface dort immer die Palette der Resource  anzeigen 
kann.


      4.1.5.7 Menpunkt "Standard-Palette"

Mit diesem Punkt kann man wieder auf die Farbpalette  umschalten,  die 
Interface beim Programmstart vorgefunden hatte.


  4.2 Die Funktionsleiste

    4.2.1 Die Zeichenart-Symbole

      4.2.1.3 Die Zeichenfarbe

Das  Feld rechts vom Papierkorb zeigt die momentan  eingestellte  Zei-
chenfarbe an, die mit dem Zeichenstift verwendet wird.


    4.2.2 Die Positionierungs-Symbole

    4.2.3 Die Grafikfunktions-Symbole

    4.2.4 Die Farbpalette

Die Farbpalette zeigt alle Farben an, die fr die momentan eingestell-
te  Auflsung  des  Icons verwendet  werden  knnen.  Die  angezeigten 
Farben  entsprechen  nicht unbedingt der in der  Resource  enthaltenen 
RGB-Palette,  sondern  entsprechen der momentan eingestellten  Palette 
des  Rechners.  Die  Palette der Resource kann man sich  mit  "Palette 
anzeigen" anzeigen lassen (siehe dazu Punkt 4.1.5.7).


    4.2.5 Der Auflsungs-Slider

Mit  diesem  Slider  kann man  zwischen  allen  bereits  existierenden 
Auflsungen  des Farbicons umschalten.  Wenn man eine  neue  Auflsung 
anlegen mchte,  kann man entweder den Punkt "Auflsung whlen" in der 
Menzeile  des Iconeditors anwhlen,  oder einen Doppelklick  auf  den 
Balken  des  Sliders durchfhren.  Die Zahl im Slider  entspricht  der 
Anzahl der Planes der gerade angezeigten Auflsung.


    4.2.6 Der Selektionsbild-Button

Unter  dem Auflsungsslider befindet sich ein Button mit dem  Buchsta-
ben  "S" (fr "Selektionsbild") in der Mitte.  Mit diesem Button  kann 
man  zwischen  dem  normalen Bild und  dem  Selektionsbild  des  Icons 
umschalten.  Wenn noch kein Selektionsbild existiert,  ist der  Button 
nicht anwhlbar.  Ein neues Selektionsbild kann man mit dem  Menpunkt 
"Selektiertes Icon" in der Menzeile des Iconeditors erzeugen.


5 Speicherformate

    5.2.4 Das ICO-Format

Interface  verwendet das ICO-Format,  wenn man im Iconeditor ein  Icon 
auf das GEM-Clipboard kopiert.  Das ICO-Format wurde von Stefan  Mnch 
in  seinem Programm "IconEdi" eingefhrt und hat nicht  das  geringste 
mit dem WINDOWS oder OS/2 ICO-Format gemein. Ich zitiere jetzt die Er-
luterung des Formats aus der IconEdi-Anleitung:

<Zitat Anfang>
IconEdi  speichert Icons und Images in einem Format ab,  das  auf  den 
blichen  GEM-Strukturen beruht,  trotzdem aber sehr leicht  zu  hand-
haben und zu implementieren ist.

Dateien  dieses  Formats  haben einen  Kopf,  der  mit  einer  Kennung 
beginnt (einer 'magischen Zahl'),  ber Version und Kopflnge Auskunft 
gibt und auf einen Objektblock zeigt.  Ab dort ist dann  weiterverzei-
gert.  Die  Verzeigerung bezieht sich immer auf den  Dateianfang,  und 
die Adressen liegen im Motorola-Format vor.  Als Dateiextension sollte 
'ICO' gewhlt werden.

Der  Kopf  sieht  so aus (die Notation ist an die  im  Profibuch  ver-
wendete angelehnt):

Offset | Struktur                 |
       |                          |
       | typedef struct           |
       | {                        |
 0     |   char icon_magic[4];    | /* enthlt 'ICON'; $49434F4E    */
 4     |   int icon_version;      | /* Versionsnummer, wie beim TOS;*/
       |                          | /* Start bei $0000 (so wie hier */
       |                          | /* vorgestellt)                 */  
 6     |   int icon_headerlength; | /* Lnge des Headers in Words,  */
       |                          | /* Standard : 5                 */
 8     |   int *objectblock;      | /* Zeiger auf den Objektblock   */
       | } ICONHEADER;            |

Die Entscheidung,  was fr ein Objekt die Datei enthlt,  wird  anhand 
ob_type  getroffen und ob_spec zeigt auf eine entsprechende  Struktur. 
IconEdi untersttzt nur Icons und Images;  prinzipiell kann in  diesem 
Format aber jedes Objekt gespeichert werden.
<Zitat Ende>


6 Interface-Anpassung

  6.1 Die Objektebox

Man  kann  jetzt  eigene  (USERDEF-) Objekte  in  die  Objektebox  von 
Interface einbinden (FlyDial-Ecke,  OK-Button,  etc.).  Dazu ldt  man 
die  Interface-Resource  und  kopiert das  gewnschte  Objekt  in  den 
"OBJEKTE"-Baum.  Die Sortierreihenfolge ist egal,  es kommt nur darauf 
an,  da das neue Objekt in der inneren Box landet,  in der sich  auch 
die anderen Objekte befinden.  Das neue Objekt mu ein direktes  Child 
der inneren Box werden und darf selbst keine Childs enthalten.

Das  neue  Objekt  wird  beim  Start  von  Interface  nicht  als   ein 
G_USERDEF-Objekt  behandelt,  damit  nicht versehentlich von  der  An-
passungsroutine  Daten verndert werden.  Das hat natrlich  auch  zur 
Folge,  da  das  Objekt in der Objektebox  nicht  so  erscheint,  wie 
spter im Programm oder in der Testfunktion.


  6.2 Lattice C und die RSH-Sourcecodeausgabe...

Fr  alle Lattice C-Fans befindet sich in der  Interface-Resource  der 
Free String 'OBSPEC_CAST' mit dem Inhalt "(LONG)" fr die  Sourcecode-
ausgabe.  Da  Lattice  C mit (LONG) nicht  zurechtkommt,  sondern  vor 
ob_spec  zwingend  auf  (VOID *) besteht,  kann  man  es  jetzt  durch 
nderung der Interface-Resource umdefinieren.


  6.3 Modula 2-Ausgabe

Fast  alle  Strings der Modula-Headerausgabe liegen jetzt in  der  In-
terface-Resource und sind dadurch frei definierbar.

Interface  gibt immer auch eine EXPORT-Liste mit  aus,  die  standard-
mig  auskommentiert  ist.  Wenn man immer  eine  EXPORT-Liste  haben 
mchte,  kann man die Kommentarzeichen "(*" und "*)" in der  Interface 
Resource  in  den  Free  Strings  "DEF_MOD_START"  und   "DEF_MOD_END" 
lschen.

  6.4 Alertboxen

Die  Default-Buttons und Abbruch-Buttons der Alertboxen sind  konfigu-
rierbar. Dazu ein Beispiel:

Beim  Verlassen des Programms fragt Interface,  ob die  genderte  Re-
source-Datei  gespeichert  werden soll.  In dieser  Alertbox  ist  der 
"Verlassen"-Button  immer auf Default gesetzt,  d.h.  wenn Sie  Return 
drcken wrden,  wird die Datei nicht gespeichert,  sondern  Interface 
wird sofort beendet.

Wenn Ihnen das zu gefhrlich sein sollte,  dann laden Sie einfach  die 
Interface  Resource  ein  und fgen  vor  dem  "Speichern"-Button  der 
entsprechenden  Alertbox einen Punkt als erstes Zeichen  ein.  Dadurch 
ignoriert  Interface die Grundeinstellung und nimmt diesen Button  als 
Default-Button.

Wenn  Sie  in der Alertbox den "Verlassen"-Button mit  der  UNDO-Taste 
bedienen  wollen,  dann  fgen Sie bitte als erstes  Zeichen  vor  dem 
"Verlassen"-Text einen Doppelpunkt ein.  Diese  Konfigurationsmglich-
keiten gelten fr alle Alertboxen.

Nochmals kurz:
    "." Default-Button (wird mit Return selektiert)
    ":" Abbruch-Button (wird mit UNDO selektiert)


7 Programmierung eines EXTOBFIX-Programms

Interface  2.0  untersttzt eine Hilfeseite in  jeder  Extobfix-Datei. 
Diese  Hilfeseite kann in Interface in jedem  Objekt-Dialog  angezeigt 
werden.  Der Zeiger auf den Baum der Hilfeseite mu im  Funktionsarray 
an  letzter  Stelle definiert werden (siehe  neue  MyDial-Extobfix-Da-
tei).  Extobfix-Dateien  mit Hilfeseite erhalten den Magic  "06101965" 
statt "06101964".

Der  Baum  wird von Interface an  die  erweiterten  MyDial-Objekttypen 
angepat.  Die  ersten beiden Objekte (FlyDial-Ecke  und  berschrift) 
mssen  immer  die  Objektnummern 1  und  2  besitzen.  Alle  weiteren 
Objekte  sind frei definierbar,  die Anzahl der Objekte und die  Gre 
des Dialoges ist ebenfalls nicht vorgegeben.

Wenn  eine  Extobfix-Datei  mit Hilfeseite  geladen  wurde,  wird  von 
Interface  immer diese Seite angezeigt.  Ansonsten wird eine  Default- 
MyDial-Hilfeseite angezeigt.


9 Die Accessory-Pipeline

Da  sich  an der internen Verwaltung von  Interface  einiges  gendert 
hat,  ist  die  Beschreibung der ACC-Pipeline im Handbuch  auch  nicht 
mehr  in allen Punkten richtig.  Da aber meines Wissens nach noch  nie 
jemand  die  ACC-Pipeline  benutzt hat,  spare  ich  mir  eine  genaue 
Erluterung  der  nderungen.  Falls doch jemand  dafr  ein  Programm 
schreiben  mchte,  sollte er sich direkt an mich  wenden.  Ich  helfe 
dann gerne weiter.


10 Lange Resourcen benutzen

Auf  der Diskette finden sie die beiden Dateien XRSRC.C  und  XRSRC.H. 
Wenn  Sie diese Dateien in Ihr Programm aufnehmen,  knnen  Sie  damit 
(fast) beliebig lange Resourcen laden.

Sie  mssen dazu keine groen nderungen an Ihrem Programm  vornehmen, 
sondern nur eine Initialisierungsfunktion aufrufen,  vor einigen  AES-
Kommandos  ein "x" einfgen und einen weiteren Parameter mit  angeben. 
Folgende Kommandos mssen umbenannt werden:

rsrc_load  in xrsrc_load
rsrc_free  in xrsrc_free
rsrc_gaddr in xrsrc_gaddr
rsrc_saddr in xrsrc_saddr
rsrc_obfix in xrsrc_obfix

Bis auf xrsrc_obfix mssen Sie jedem Befehl noch einen Zeiger auf  ein 
15  Integer  groes  Array bergeben.  Darin merken  sich  die  XRSRC-
Routinen  alle  wichtigen Daten der Resource.  Wenn Sie  2  oder  mehr 
Resourcen  laden wollen,  brauchen Sie nur fr jede  weitere  Resource 
ein anderes Array zu verwenden.

Bevor Sie xrsrc_load aufrufen,  mssen Sie die XRSRC-Routinen mit  dem 
Befehl  init_xrsrc  initialisieren.  init_xrsrc mssen  die  folgenden 
Parameter bergeben werden:

vdi_handle =  Handle der VDI-Workstation,  die die XRSRC-Routinen  be-
              nutzen sollen
desk       =  Zeiger  auf  eine x,y,w,h-Struktur  mit  X-Position,  Y-
              Position, Breite und Hhe des Desktops
gl_wbox    =  Breite eines Zeichens
gl_hbox    =  Hhe eines Zeichens

Wenn man keine Farbicons verwendet,  kann man fr vdi_handle 0 berge-
ben, da die XRSRC-Routinen diese Variable dann nicht bentigen.

An gl_wbox und gl_hbox kommt man mit folgendem Aufruf:
graf_handle (&gl_wbox, &gl_hbox, &gl_wattr, &gl_hattr);

desk erhlt man mit:
wind_get (DESK, WF_WXYWH, &desk.g_x, &desk.g_y, &desk.g_w, &desk.g_h);

desk  ist eine Struktur aus 4 Integern,  die z.B.  in AES.H als  GRECT 
deklariert ist.

Die vernderte RSHDR-Struktur ist in XRSRC.H definiert.

Leider  behersche ich nur die Sprache C,  daher liegen meine  Routinen 
auch  nur  im  C-Source bei.  Inzwischen habe ich aber  fr  GFA-  und 
Omikron-Basic  Routinen bekommen,  mit denen man meine  XRSRC-Routinen 
in  diesen  Sprachen verwenden kann.  Die  GFA-  und  Omikron-Routinen 
wurden nicht von mir programmiert,  bei Problemen mit diesen  Routinen 
werde  ich  die Anfragen an die entsprechenden  Autoren  weiterleiten. 
Die  Omikron-Version der Routinen enthlt noch  keine  Farbicon-Unter-
sttzung.

Wenn  irgend  jemand die Routinen in eine  andere  Sprache  bersetzen 
mcht,  helfe ich ihm gerne dabei.  Falls jemand die Routinen in einer 
anderen Sprache brauchen sollte und sie nicht selbst bersetzen  kann, 
sollte er bei der Firma Shift oder bei mir anfragen,  ob es inzwischen 
fr die gewnschte Sprache eine Version gibt.

Die  folgenden  Erluterungen  beziehen sich  auf  die  C-Version  der 
XRSRC-Routinen.


  10.1 Farbicon-Untersttzung

Seit  Interface 2.2 untersttzen die XRSRC-Routinen auch  die  Falcon-
Farbicons fr alle TOS-Versionen.  Die Farbicon-Untersttzung kann man 
mit dem Compilerschalter COLOR_ICONS ein- bzw.  ausschalten.  Wenn man 
COLOR_ICONS auf FALSE setzt,  werden die Farbicon-Routinen nicht  mit-
compiliert und verbrauchen dadurch keinen Speicher.

Mit  dem  Schalter SAVE_MEMORY kann man bestimmen,  ob  die  Farbicon-
Routinen mglichst speichersparend vorgehen sollen.  Wenn  SAVE_MEMORY 
auf TRUE gesetzt wird,  versuchen die Routinen die Farbicons nach  der 
Wandlung  in das gerteabhngige Format die  gerteunabhngigen  Daten 
durch  die gerteabhngigen Daten zu ersetzen.  Nur wenn  die  gerte-
abhngigen  Daten  lnger als die alten Daten sein  sollten  (z.B.  in 
Auflsungen   mit   mehr  als  256  Farben),   wird   dafr   Speicher 
angefordert.

SAVE_MEMORY  sollte  man nur dann auf FALSE setzen,  wenn  das  eigene 
Programm  auch spter noch auf die gerteunabhngigen Daten  zugreifen 
mu.  Das  ist  z.B.  fr  ein Resource Construction  Kit  oder  einen 
Iconeditor notwendig.

Wenn  nicht  genug Speicher fr die Wandlung  vorhanden  sein  sollte, 
werden die Farbicons in normale monochrome Icons gewandelt,  damit sie 
trotzdem noch angezeigt werden knnen.


    10.1.1 Anzeige der Farbicons

Der  xrsrc_load-Befehl wandelt beim Einladen der Resource  automatisch 
alle  darin befindlichen Farbicons in Userdefs und trgt  auch  gleich 
eine  eigene Zeichenroutine dafr ein.  Dadurch knnen Sie  die  Farb-
icons  wie  ganz  normale Objekte mit objc_draw  zeichnen  lassen  und 
brauchen  sie  nicht anders als "normale" Icons in Ihrem  Programm  zu 
behandeln.


    10.1.2 Besonderheiten des Farbicon-Formats

      10.1.2.1 Der "ob_spec"-Zeiger

Da  die  XRSRC-Routinen  die Farbicons in  Userdefs  gewandelt  haben, 
kommt  man  nicht mehr direkt ber den ob_spec-Wert  an  die  ICONBLK-
Struktur.  ob_spec zeigt jetzt auf eine Userblk-Struktur,  in der  der 
alte ob_spec-Wert im ub_parm-Feld gesichert wurde.

Wenn  man  die  MyDials verwendet,  hat man  es  leicht:  Man  benutzt 
einfach  den  "get_obspec"  Aufruf und erhlt  immer  den  gewnschten 
Wert.  Diese Funktion berprft erst, ob es sich um ein Userdef-Objekt 
handelt  und  liefert  in  dem  Fall  den  ob_spec-Parameter  aus  der 
Userblk-Struktur.

Ohne  die  MyDials  mu  man diese Funktion  in  das  eigene  Programm 
einbinden. Damit das nicht zu schwer fllt, folgt jetzt der Source:

LONG get_obspec (OBJECT *tree, WORD obj)
{
  if ((tree[obj].ob_type & 0xff) == G_USERDEF)
    return (((USERBLK *)tree[obj].ob_spec)->ub_parm);
  else
    return (tree[obj].ob_spec);
}

Wenn man ein Icon mit einem anderen Text versehen will,  schreibt  man 
in C folgendes:

strcpy (((ICONBLK *)get_obspec (tree, obj))->ib_ptext, "Neuer Text");


      10.1.2.2 Aufbau einer Farbicon-Struktur

Die neuen Farbicons sind von Atari wie folgt dokumentiert worden:

#define G_CICON         33      /* Farbicon-Objekttyp */

typedef struct cicon_data
{
  WORD num_planes;     /* number of planes in the following data          */
  WORD FAR *col_data;  /* pointer to color bitmap in standard form        */
  WORD FAR *col_mask;  /* pointer to single plane mask of col_data        */
  WORD FAR *sel_data;  /* pointer to color bitmap of selected icon        */
  WORD FAR *sel_mask;  /* pointer to single plane mask of selected icon   */
  struct cicon_data *next_res; /* pointer to next icon for a different resolution */
} CICON;

typedef struct cicon_blk
{
  ICONBLK monoblk;     /* default monochrome icon                         */
  CICON *mainlist;     /* list of color icons for different resolutions   */
} CICONBLK;

Am  besten ist es,  wenn Sie diese Definitionen direkt in Ihre  AES.H-
Headerdatei bernehmen.

Ein Farbicon sieht jetzt so aus,  da der ob_spec-Pointer der  OBJECT-
Struktur  auf eine CICONBLK-Struktur zeigt.  Da der erste Eintrag  der 
CICONBLK-Struktur eine ICONBLK-Struktur beinhaltet,  kann man auf die-
sen   Teil  der  Farbicons  genauso  wie  auf  ein  monochromes   Icon 
zugreifen.

Ein  Farbicon besteht in Wirklichkeit aus einer beliebigen Anzahl  von 
einzelnen Bildern fr beliebige Auflsungen.  Das Betriebsystem  sucht 
sich im rsrc_load-Befehl aus dieser Iconliste immer das Icon aus,  das 
am  besten  zur  aktuellen Auflsung pat.  Dabei  knnen  alle  Icons 
verwendet werden, die genausoviel oder weniger Planes besitzen.

Der  Zeiger  "mainlist" der CICONBLK-Struktur zeigt  auf  eine  CICON-
Struktur,  in  der  die Bilddaten fr ein  Icon  enthalten  sind,  das 
"num_planes" Planes benutzt.

Der "next_res"-Zeiger dieser CICON-Struktur kann dann wieder auf  eine 
weitere  CICON-Struktur  fr eine andere Auflsung  zeigen.  Das  geht 
solange, bis "next_res" NULL enthlt.

Eine  CICON-Struktur enthlt 4 Zeiger.  Die ersten beiden  werden  fr 
das  normale Bild und die Maske verwendet,  die Zeiger 3 und 4  zeigen 
auf  das Selektionsbild und die  Selektionsmaske.  Das  Selektionsbild 
wird  angezeigt,  wenn  das Icon den Status "SELECTED"  besitzt  (also 
angeklickt wurde).

Es ist auch mglich,  da ein Icon kein Selektionsbild  besitzt.  Dann 
enthalten  der  dritte und vierte Zeiger jeweils  einen  NULL-Pointer. 
Wenn  ein  Farbicon kein Selektionsbild besitzen sollte,  wird  es  im 
selektierten Zustand verdunkelt gezeichnet, indem ein schwarzes Punkt-
raster ber das Icon gelegt wird.


      10.1.2.3 Redraw-Probleme

Wenn  sich die Grafikdaten des normalen Bilds und des  Selektionsbilds 
eines Farbicons nicht genau decken,  kann es zu Redraw-Fehlern kommen, 
da die Zeichenroutinen immer nur den Teil des Icons neu  zeichnen,  in 
dem   wirklich  Bilddaten  stehen  (Icons  werden  immer   transparent 
gezeichnet).
Man  umgeht das Problem,  indem man nicht nur das Icon  neu  zeichnet, 
sondern auch den Hintergrund. Statt

objc_draw (tree, ICON, MAX_DEPTH, desk.x, desk.y, desk.w, desk.h);

sollte man den Hintergrund mit dem Clipping des Icons zeichnen:

objc_offset (tree, ICON, &x, &y);
w = tree[ICON].ob_width;
h = tree[ICON].ob_height;
objc_draw (tree, ROOT, MAX_DEPTH, x, y, w, h);

ROOT  steht  fr  das ROOT-Objekt  eines  Baums  (also  0),  MAX_DEPTH 
entspricht der maximalen Zeichentiefe des AES (8).


      10.1.2.4 Gerteabhngiges Icon

Manchmal  mu  man wissen,  welche der vielen  Auflsungsstufen  eines 
Icons  eigentlich von den Zeichenroutinen verwendet wird.  Die  XRSRC-
Routinen  sorgen dafr,  da das gerteabhngige Icon immer als  erste 
CICON-Struktur direkt nach der CICONBLK-Struktur folgt.  Das bedeutet, 
da  der  "mainlist"-Parameter  der CICONBLK-Struktur  immer  auf  das 
gerteabhngige  Icon  zeigt,  das von den  Zeichenroutinen  verwendet 
wird.  Der  "next_res"-Parameter der  gerteabhngigen  CICON-Struktur 
zeigt dann auf die erste gerteunabhngige CICON-Struktur.

Diese Information ist fr alle interessant,  die einen eigenen Desktop 
programmiert  haben und darin dummy-OBJECT-Strukturen angelegt  haben, 
die  spter auf ein Icon in der Resource zeigen sollen.  Wenn es  sich 
bei  diesen  dummy-Objekten bereits um Farbicons mit  minimaler  Gre 
handelt,  mu  man nur die Grenwerte der  ICONBLK-Struktur  anpassen 
und   den  "mainlist"-Parameter  auf  den   "mainlist"-Parameter   des 
gewnschten Icons umbiegen.


    10.1.3 Kompatibilitt der Farbicons

Da  sich  das Farbicon-TOS des Falcon noch im  Beta-Stadium  befindet, 
kann  ich  nur  garantieren,  da Interface  momentan  alle  Farbicon-
Resourcen  untersttzt,  die  sich  an das  Farbicon-Format  V2.1  vom 
8.September  1992 halten.  Das gilt nicht fr alle Falcons,  die  noch 
mit  einer TOS-Version vor diesem Datum ausgeliefert  wurden,  da  das 
Farbicon-Format nach der Atari-Messe noch geringfgig gendert wurde.

Wenn sich das Format nochmals ndern sollte (hoffentlich!),  werde ich 
Interface selbstverstndlich daran anpassen.  Die im Kapitel  10.1.2.2 
beschriebenen Strukturen werden sich aller Voraussicht nach nicht mehr 
ndern.  Die von mir erhofften nderungen betreffen nur das Format der 
Resource-Datei,  die  auf  eine ziemlich umstndliche  Weise  fr  die 
Farbicons erweitert wurde.


11 C-Source Resourcen

  11.1 Initialisierung der Resource

Da  die  Resource bereits weitestgehend  von  Interface  initialisiert 
wurde,  entfllt  die ganze komplizierte Anpassung aller  Zeiger.  Man 
mu  die  Resource  nur noch mit folgender  Routine  an  die  aktuelle 
Auflsung anpassen:

for (i = 0; i < NUM_OBS; i++)
   rsrc_obfix (&rs_object[i], 0);

NUM_OBS ist in der *.RH Datei definiert,  die zustzlich zu der  *.RSH 
Datei abgespeichert wird.


  11.2 Resourcen in CPX-Modulen

Da die Interface C-Sourcecodeausgabe bereits optimiert  wurde,  stimmt 
sie nicht mehr mit der Ausgabe des alten Atari RCS berein.  Besondere 
Probleme gibt es bei der CPX-Programmierung,  da die CPX Routinen  nur 
das  alte Format akzeptieren.  Die Lsung besteht darin,  da man  den 
CPX-Aufruf  zur Initialisierung der CPX-Resource nicht  benutzt,  son-
dern statt dessen folgende Routine ausfhrt:

if (!xcpb->SkipRshFix)
{
   for (i = 0; i < NUM_OBS; i++)
      (*xcpb->rsh_obfix) (&rs_object[i], 0);
}

Die  Variablennamen  halten  sich an  die  Schreibweise  des  CPX-Ent-
wicklungspakets von Atari. In dieser Routine werden nur alle Objektpo-
sitionen der Resource angepat.  Alle weiteren Anpassungen  entfallen, 
da  die entsprechenden Variablen bereits von  Interface  initialisiert 
wurden.


  11.3 Farbicons in C-Source Resourcen

Natrlich  mu man auch in C-Source Resourcen die Farbicons  in  User-
defs  wandeln,  damit man sie auf jeder TOS-Version  darstellen  kann. 
Auf  der Interface-Diskette befinden sich Routinen,  die diese  Arbeit 
bernehmen.

Wenn Sie eine Resource mit Farbicons anpassen wollen,  sollten Sie  am 
Programmstart nach dem ffnen Ihrer Workstation folgende Funktion  aus 
dem Modul XRSRCFIX.C aufrufen:

#ifdef rgb_palette
  init_xrsrc (vdi_handle, rs_object, NUM_OBS, NUM_CIB, rgb_palette);
#else
  init_xrsrc (vdi_handle, rs_object, NUM_OBS, NUM_CIB, NULL);
#endif

vdi_handle mu das Workstation-Handle enthalten,  das die XRSRC-Routi-
nen benutzen sollen.

Am Programmende mu noch die Funktion

term_xrsrc (NUM_CIB);

aufgerufen werden,  damit der fr die Farbicons angeforderte  Speicher 
wieder  freigegeben wird.  NUM_OBS und NUM_CIB sind in der  *.RH-Datei 
definiert,  die zustzlich zu der *.RSH-Datei abgespeichert  wird.  Im 
Ordner  CRSHTEST befindet sich ein Programm,  in dem diese  Funktionen 
demonstriert werden.

Die init_xrsrc-Routine pat auch die Objektkoordinaten an,  damit  man 
nicht mehr rsrc_obfix fr jedes Objekt der Resource aufrufen mu.


12 Das AV-Protokoll

Das AV-Protokoll ist ein Standard fr Nachrichten zwischen  Accessorys 
und einer Shell.  Gedacht war es fr die Kommunikation zwischen Gemini 
und Accessorys.

Interface  untersttzte  schon immer Teile des AV-Protokolls  von  Ge-
mini.  Leider  ist  das bei der letzten Anleitung  nicht  dokumentiert 
worden  (ich habs vergessen...).  Deshalb folgt jetzt eine kurze  Auf-
listung der von Interface untersttzten AV-Kommandos:

AV_PROTOKOLL    : Interface meldet, da es das Protokoll versteht.

AV_SENDKEY      : Accessorys  knnen nicht ausgewertete Tasten an  In-
                  terface weitermelden.

AV_OPENWIND     : Ein Accessory kann Interface bitten,  ein bestimmtes 
                  Laufwerksfenster zu ffnen (z.B. Treeview).

AV_ACCWINDOPEN  :
AV_ACCWINDCLOSE : Accessorys  melden Interface,  da sie  ein  Fenster 
                  geffnet  haben.  Dadurch kann Interface diese  Fen-
                  ster  in  der eigenen Liste verwalten und  bei  Con-
                  trol-W auf das richtige Fenster umschalten.

AV_STARTPROG    : Ein  Accessory  bergibt Interface  einen  Pfad  mit 
                  einem  Filenamen (z.B.  FSearch).  Wenn dieser  Name 
                  die  Endung  "RSC"  besitzt,  ldt  Interface  auto-
                  matisch diese Resourcedatei ein.

VA_START        : Wie  AV_STARTPROG.  Da VA_START eigentlich  nur  fr 
                  Accessorys  gedacht  ist  und  Interface  nicht  als 
                  Accessory arbeitet,  kann VA_START nur unter  Multi-
                  tasking-Betriebssystemen genutzt werden.

                  VA_START wird z.B.  von Mag!X untersttzt.  Wenn man 
                  im Mag!X-Desktop eine Resourcedatei  ffnet,  sendet 
                  Mag!X  an  Interface  eine  VA_START  Nachricht  und 
                  bittet Interface darin,  die Resourcedatei zu laden. 
                  Voraussetzung  dafr ist natrlich,  da man  Inter-
                  face  als Anwendung fr Resourcedateien  (*.RSC)  im 
                  Mag!X-Desktop angemeldet hat.

Wenn  man ein Recourcedatei-Icon von Interface auf das  Fenster  eines 
Accessorys  schiebt,  sendet Interface diesem Accessory die  Nachricht 
VA_DRAGACCWIND  mit dem Pfad des Icons,  und bittet damit  das  Acces-
sory, ein Fenster mit diesem Pfad zu ffnen (z.B. Treeview).


13 Tips und Tricks

  13.1 Objektlibrary durch Default-Resource

Da  sich  Interface  jetzt alle geladenen  Resourcedateien  merkt  und 
diese  auch  beim nchsten Start wieder an den  alten  Positionen  er-
scheinen,  knnte  man in eine Resourcedatei alle  hufig  gebrauchten 
Elemente wie z.B.  Slider kopieren und diese Datei immer mit  einladen 
lassen.  Dadurch  kann  man  sich leicht eine  Objektlibrary  fr  die 
persnlichen Bedrfnisse erstellen.


  13.2 Monochrome Auflsung fr ein Farbicon erzeugen

Wenn man im Iconeditor ein WINDOWS- oder OS/2-Icon ldt,  gibt es  das 
Problem, da das Icon nur in 16 Farben vorliegt. Es gibt einen kleinen 
Trick,  um  zumindest die Umrisse ohne viel Aufwand in die  monochrome 
Auflsung zu bernehmen:

Zuerst  kopiert  man  das  16-farbige  Icon  mit  Control-C  auf   das 
Clipboard.  Danach  ruft man den Fileselektor auf und sucht darin  den 
Clipboard-Ordner.  In  dem  Ordner  sollte es  jetzt  2  SCRAP-Dateien 
geben:  SCRAP.ICO und SCRAP.IMG. Wenn man SCRAP.ICO mit dem Fileselek-
tor  lscht  und  in der  monochromen  Auflsungsstufe  des  Farbicons 
Control-V  drckt (Clipboard-Inhalt einfgen),  wird die  erste  Plane 
der  Image-Datei  eingefgt.  Die Umrie des Farbicons  sollten  jetzt 
sichtbar sein und dienen als Vorlage fr die monochrome Auflsung.

Das  ganze  funktioniert,  weil Interface ein Image nur  dann  in  den 
Iconeditor einfgt,  wenn keine ICO-Datei im Clipboard vorhanden  ist. 
Eine  ICO-Datei  enthlt  nmlich auch die  monochrome  Auflsung  des 
Icons,  die aber beim WINDOWS- oder OS/2-Icon noch leer ist.  Dadurch, 
da  man die ICO-Datei lscht,  zwingt man Interface  dazu,  zumindest 
die erste Plane der IMG-Datei einzufgen.

