                          Freedom V1.15
                          --------------
                ("Hey, das Popup ist mir neu..." ;-))

                             29.10.1995

         (c) 1995 by Christian Krger und Kolja Koischwitz
        ("...die Jger des verlorenen Bedienungskomforts...")

          EnhancedGEM 2.25 (c) 1995 by Christian Grunenberg


                 XIMG-Decoder (c) by Dirk Haun

0. Einleitung
=============

Alle Software rstet sich frs Multitasking. Jeder halbwegs versierte
Programmierer hat inzwischen seine Dialoge ins Fenster verfrachtet,
die Zeit der Fluchecken ist vorbei! brig bleiben letztlich nur noch zwei
Relikte aus der Single-Zeit: Der Fileselector und die Alertbox. Bisher gab
es keine Rettung vor diesen Systemblockierern, doch damit ist jetzt
Schlu: Freedom ist da! ;-)

Die unglaublichen Features:
---------------------------
- mindestens 8 Nonmodale Fileselectoren gleichzeitig!
- komplett nebenlufig!
- Alertboxen optional im Fenster
- Programme, die VA_START untersttzen/eine Menzeile haben,
  mssen zT nicht mal blockiert werden!
- Untersttzung von langen Dateinamen
- Font, Gre und Farben des Fileselectors sind variabel
- Drag&Drop Fontprotokoll wird untersttzt
- Tastaturbelegung ist 99% Selectric-kompatibel
- Mehrfach-Fileselection (natrlich auch Selectric-kompatibel)
- Bis zu 40 voreinstellbare Dateinamen, Pfade und Extensions
- History der letzten 20 ausgewhlten Files
- Maximal intuitive Bedienung, kurze Wege, wenig Klicks
- Popups noch und ncher... (o:
- Linkshnder-Mode (!!!!)
- Unix-Patterns (*,?,[]) sowie Extensionlisten ("*.TOS,*.PRG")
- Dateien/Ordnern knnen Ikonen zugeordnet werden
- Drag&Drop-Untersttzung (Pfade & Files knnen auf den Fileselector
  gezogen werden (AV- bzw MTOS-Drag&Drop) und umgekehrt
- Nachrichten, die nderungen in Verzeichnissen bekanntgeben, werden
  ausgewertet (SH_WDRAW, AV_PATH_UPDATE, SC_CHANGED) und versendet!
- Fuzzy-Namenserkennung! Freedom tut alles, um der aufrufenden
  Applikation (auch unter SingleTOS) einen aussagekrftigen Namen 
  zu geben (Menzeile, Xacc, AV-Protokoll...)
- Dateien lschen, Neue Ordner/Dateien erzeugen und Datei/Ordner-Info
- Dateien nach Maske suchen, selektieren und deselektieren
- Pfad oder selektierte Files knnen ins Clipboard exportiert werden
- Volle Kommunikation mit einem vorhandenen AV-Server (zB Thing)
- Dateien lschen und touchen
- Kopieren, verschieben per Drag&Drop und Klemmbrett, Kobold_2 wird autom.
  benutzt, wenn er sich im Speicher befindet oder die Environment
  Variable KOBOLD_PATH unter Multitasking den Pfad zum Kobold weist.


1. Warum gerade Freedom?
========================

Das Problem ist bekannt: Flydials, Fileselectoren und Alertboxen legen das
Multitasking lahm, indem sie den Bildschirm komplett fr sich reservieren:

  - Terminalprogramme hren auf, anzuwhlen und kriegen
    bertragungs-Fehler beim Up-/Download
  - GEM-Raytracer hren auf zu tracen
  - GEM-Morpher hren auf zu morphen
  - GEM-konforme Packer hren auf zu packen
    (es sei denn, sie sind von Christian Grunenberg...)
  - Die Zeit in Fenster-Uhren bleibt stehen
  - Beim Druck auf F1 kommt nicht mehr der Kobold (o:
  - Das MagiC-Popup ist nicht mehr erreichbar
  - Die Menzeile ist nicht mehr erreichbar
  - Sie knnen beim Kopieren/Verschieben/Lschen und Formatieren nicht
    weiterarbeiten, wenn das Programm dafr einen Dialog ffnet, wie es
    bspw. die Shell Gemini tut
  - usw usw

Sollten ihnen einige der oben genannten Punkte schon mal selbst aufgefallen
sein oder haben Sie sich sogar schon mal darber schwarzgergert, dann
sollten Sie einfach mal einen Blick auf Freedom werfen:


2. Die Installation
===================

- FFSEL.PRG in den AUTO-Ordner
- FREEDOM.APP in FREEDOM.ACC umbenennen und als Accessory installieren
  (unter MagiC/MiNT kann FREEDOM.APP auch spter nachgestartet werden
  bzw unter MagiC auch in den APPS Ordner oder unter MiNT ins GEM.CNF)

Fr die Benutzer mit Speichermangel, die eine ausreichend schnelle Platte
(und einen ausreichend schnellen Rechner) haben, gibt es noch eine weitere
Mglichkeit: Zustzlich zu FFSEL.PRG packt man eine Datei FFSEL.INF in den
AUTO-Ordner, in der Pfad zu FREEDOM.APP (incl.des Filenamens) drinsteht,
etwa so:

C:\FREEDOM\FREEDOM.APP

Befindet sich Freedom dann nicht im Speicher, versucht der residente Teil,
es nachzuladen. Ein so nachgeladenes FREEDOM.APP hat zustzlich die
Mglichkeit, sich nach einer bestimmten Zeit der Nichtbenutzung wieder aus
dem Speicher zu entfernen. Diese Zeit ist (minimal 5 sec) in der
Konfigurationsdatei FREEDOM.CNF (siehe spteres Kapitel) einstellbar.

Das Nachladen unter einem Multitasking-OS ist (fast) unproblematisch,
unter SingleTOS ist es nur mit Hilfe des Accessorys Chameleon (von Karsten
Isakovic) mglich. Wir raten aber dennoch dazu, Freedom besser fest zu
installieren.

Wer trotzdem das Nachladen mit dem Chameleon will, sollte die diesem Paket
beiliegende Version des Chameleons verwenden. Diese wurde so gepatcht, da
1. beim Nachladen eines ACC's nicht mehr automatisch ein AC_OPEN an es
versendet wird, und 2. der nachvollziehbare Absturz beim appl_find("?AGI")
behoben ist.


Da von einigen Freedom-Benutzern der Wunsch geuert wurde, (zwecks
Ausmerzung des strenden freien Speicherplatzes ;-)) Freedom zusammen mit
Selectric zu installieren, besteht diese Mglichkeit nun. Das zu diesem
Zweck in Umlauf gebrachte Programm KILLFSEL, welches nur Selectrics
Eintrag im Cookiejar lscht, ist berflssig geworden. Freedom ist nun
selbst dazu in der Lage: Wenn FFSEL bei seiner Installation einen
FSEL-Cookie mit Versionsnummer <2.00 vorfindet, ersetzt es dessen Wert
durch einen Zeiger auf seine eigene Struktur. Wenn Sie nun noch das Glck
haben, da FFSEL sich nach SLECTRIC ins GEM hngt, passiert genau das
gewnschte: Freedom erscheint bei allen sauberen Programmen, Selectric
bernimmt den Rest sowie die Behandlung des 'Programm starten..' Eintrags
im MagiC-Popup.


Alternativ zu FFSEL.PRG knnen sie auch den FFSELR.PRG in den AUTO-Ordner
packen. Der einzige Unterschied ist, da Fenster von gerade durch einen
Fileselector blockierten Applikationen, fr die eine Redraw-Anforderung
kommt, nicht ausgeblendet, sondern, wie es in frheren Freedom-Versionen
war, mit dem Freedom-Logo gefllt werden. Das ist hlicher und
inkompatibler als das neue Verfahren, spart jedoch auf langsamen Rechnern
uU einige berflssige Redraws ein (Man stelle sich vor, unter dem
ausgeblendeten Fenster liegt zufllig eins von Calamus...). Dafr ist die
Redraw-Version einige kBs grer...


3. Funktionsweise (nur fr Programmierer interessant!)
======================================================

Freedom besteht aus zwei Teilen:

- Einem Fileselector/Alertboxen-'Server' (FREEDOM.APP), der als parallele 
  Applikation bzw. Accessory luft, und darauf wartet, ber eine 
  definierte Schnittstelle (bestehend aus einem Satz AES-Messages) 
  aktiviert zu werden. Er kann (nur vom Speicherplatz und den verfgbaren 
  Fenster-handles begrenzt) beliebig viele Nonmodale Alertboxen und 
  Fileselectoren ffnen. Der Server meldet sich beim Start ber das 
  XAcc-Protokoll an und fhrt im erweiterten XAcc-Namen (hochtrabend) 
  'XFileSelect\0XFontAck'.

- Einem residenten Teil (FFSEL.PRG), der Applikationen, die einen 
  Fileselector bzw. eine Alertbox ausgeben wollen, den Programmpfaden 
  'abnimmt', einen entsprechenden Request an den Server sendet, den er 
  ggf. vorher selbst parallel startet, und in einer Eventloop auf die 
  Antwort- Nachricht des Servers wartet. Innerhalb dieser Eventloop wird 
  gleichzeitig noch die Behandlung einiger anderer Messages 
  (Fenster-Redraw, Moven, Sizen, Toppen, Lowern) fr die Zeit des aktiven 
  Alerts/Fileselectors durchgefhrt, sowie die Menzeile des aufrufenden 
  Programms dis- und wieder enabled. Durch ausgeklgelte Programmierung 
  ist dieser Teil bis zu 8 mal reentrant, dh es knnen bis zu 8 
  verschiedene Applikationen einen Alert bzw. einen Fileselector offen 
  haben, bevor der Traphandler den Aufruf eines Fileselectors ignoriert 
  bzw. einen Alert zum System durchreicht.
  Dieser Teil bernimmt nebenbei ggf. noch das Umsetzen der Server- 
  Antwort in eines der 3 Selectric- Protokolle. Das dabei entstehende 
  Problem, da es nur einen Selectric-Cookie gibt, aber mglicherweise 
  mehrere Applikationen gleichzeitig ber ihn kommunizieren, wurde auf ein 
  Minimum reduziert...

  Da der residente Teil im Namen der Applikation Nachrichten empfngt, 
  werden alle Nachrichten, bei denen es Sinn macht, der Applikation 
  nachgereicht. Explizit 'geschluckt' werden die folgenden:

   (AC_CLOSE)      ; Wegen Problemen mit dem Chameleon )o:
    AC_OPEN

    MN_SELECTED,
    
    WM_CLOSED,WM_FULLED,WM_ARROWED,WM_MOVED,
    WM_HSLID,WM_VSLID,WM_SIZED,WM_UNTOPPED,WM_TOPPED,WM_ONTOP,
    WM_NEWTOP,WM_ICONIFY,WM_UNICONIFY,WM_BOTTOMED

    VA_START,VA_STARTED,VA_DRAGACCWIND

    AV_SENDKEY     ; AV-Server sollten das Freedom-Protokoll
    AV_STARTPROG   ; untersttzen, wenn sie einen Fileselector
    AV_OPENWIND    ; aufrufen
    AV_OPENCONSOLE ;

    AP_DRAGDROP    ; wird mit DD_NAK beantwortet


4. Bedienung
============

Freedom verfgt extra fr die Freunde der Mausbedienung ber eine schier 
unendliche Zahl von Popups. Die Meisten davon sind bei Freedom durch Klick 
auf die Box erreichbar, in der der aktuelle Pfad zu sehen ist.

Wechsel des Laufwerks - per Maus                 - via Tastatur
-------------------------------------------------------------------------
Klick auf Laufwerksbuchstabenbestandteil des     Control-L ffnet 
Pfades ffnet ein Popup mit den vorhandenen      das Popup ebenfalls
Laufwerkskennungen.
                                                 Alternativ:
                                                 Alt-Laufwerksbuchstabe
                                                 schaltet sofort um

Vernderung der Anzeigemaske - per Maus          - via Tastatur
-------------------------------------------------------------------------
Klick auf die Anzeigemaske des Pfades
zeigt bei einem ..
.. Linksklick:  die gerade sinnvollen Masken     Control-Y
.. Rechtsklick: die benutzerdefinierten Masken   Control-X
                                                 (+Shift, wenn Dateien 
                                                 selektiert sind)
.. Doppelklick links: die Maskeneingabe          Control-E
...Doppelklick rechts: Wechsel zwischen '*.*'
          und der vom Programm bergebenen Maske

                                                 Alternativ:
                                                 Control-Tastenblock-1..0
                                                 schaltet zwischen den
                                                 ersten 10 benutzerdefin-
                                                 ierten Masken um;
                                                 Shift-Ctrl-Tastenblock-1..0
                                                 whlt Maske 11..20;
                                                 Control-Tastenblock
                                                 whlt die geklemmte Maske;
                                                 Control-Tastenblock-*
                                                 whlt '*.*' als Maske
                                                 
Verzeichnisebene wechseln - per Maus             - via Tastatur
-------------------------------------------------------------------------
Klick mitten in den Pfad mit der linken
Maustaste auf ..
.. Verzeichnis: Popup mit alternativen Ver-
                zeichnissen ffnet sich
.. Trenner (\): Der Pfad wird an dieser Stelle   Control-1..0 geht 1..10
                'abgeschnitten', was ein Ersatz  Ebenen zurck
                fr das schnelle zurcksetzen
                mittels 'Mac-Path' darstellt
.. letzten \:   Die Verzeichnisse in der
                aktuellen Ebene kommen in einem
                Popup

Klick in den Closer (links neben dem Pfad)       Control-Backspace oder
geht eine Ebene zurck, mit einem Doppel-        Control-Undo
klick geht's ins Wurzelverzeichnis               Shift-Control-Backspace
                                                 o. Shift-Control-Undo

Direkter Einfach- oder Doppelklick (je nach      Ordner mit den Pfeil-
Einstellung) auf einen Ordner im Filefenster     tasten anfahren und auf
wechselt in diesen Ordner                        Return/Enter hauen

Durch Doppel- bzw. Rechtsklick auf das Pfad-     Control-P
Objekt irgendwo vor dem letzten Trenner (\)
erreicht man das Popup mit den benutzerde-       Alternativ:
finierten Pfaden.                                Alternate-1..0
                                                 schaltet zwischen den
                                                 ersten 10 benutzerdefin-
                                                 ierten Pfaden um,
                                                 Alternate-Esc whlt den
                                                 geklemmten Pfad
                                                 Shift-Alternate-1..0
                                                 fr Pfad 11..20


Dateien (de-)selektieren - per Maus              - via Tastatur
-------------------------------------------------------------------------
Eine einzelne Datei kann durch einfachen
Linksklick selektiert werden.
Sollen mehrere Dateien selektiert werden, mu
die Maustaste gedrcktgehalten werden.
Dabei ist zu beachten, da die Aktion nach
einer gewissen Ruhephase zu Beginn als
'Greifen' zwecks Drag&Drop interpretiert wird.
Dieser Zeitraum ist jedoch konfigurierbar.
Das Fenster wird automatisch gescrollt, wenn
der Mauszeiger whrend des Selektierens an den
oberen bzw. unteren Rand stt.
Mchten Sie mehrere Dateien selektieren, die
nicht direkt aufeinander folgen, so klicken Sie
sie einzeln an und halten dabei die Shift-Taste
fest. Sie verhindert, da die schon selektierten
Dateien wieder deselektiert werden.
Alle Dateien knnen durch einfachen Links-       Control-A 
klick auf den 'Alles selektieren'-Knopf rechts
vom Pfad-Objekt (de-)selektiert werden.
Durch einen Rechtsklick auf diesen Knopf wird    Shift-Control-A
die aktuelle Selektion invertiert.

Dateien selelektieren nach Maske.                Control-S
Ein Doppelklick links auf den 'Alles selek-
tieren'-Knopf ffnet einen Dialog, in dem Sie
eine Maske eingeben knnen. Bei Bettigen von
'Ok' werden die auf die Maske passenden Dateien
im aktuellen Fileselector zustzlich selektiert.

Dateien deselektieren nach Maske.                Shift-Control-S
Ein Doppelklick rechts auf denselben Knopf
ffnet den Dialog zum deselektieren.

Das Popup mit den voreingestellten Files lt    Control-M
sich durch Rechtsklick auf das Wort 'Datei:'
vor dem Editfeld erreichen. Mit einem Links-
klick bekommt man das History-Popup, das die
letzten (max. 20) ausgewhlten Files zeigt.      Control-<
Wird beim Auswhlen einer Datei aus einem der
beiden Popups eine Umschalttaste festgehalten,
so wird die Datei nur 'angefahren' und selek-
tiert, nicht jedoch der Fileselector geschlos-
sen.


                                                 Mit den Pfeiltasten kann
                                                 die aktuell selektierte
                                                 Datei wie ein Cursor ver-
                                                 ndert werden.

                                                 Wird dabei Shift festge-
                                                 halten, so geht's seiten-
                                                 weise weiter, mit Control
                                                 und auch mit ClrHome kann
                                                 zum Anfang/Ende der Liste
                                                 gesprungen werden, womit
                                                 auch ein Scrollen per
                                                 Tastatur ermglicht ist
                                                 (s. folgender Abschnitt)


Wenn Sie Freedom so konfiguriert haben, knnen
Sie auch mit einen Rechtsklick ins Filefenster
einem Linksklick mit gedrckter Shift-Taste
simulieren.

Aktuellen Zustand ins Klemmbrett sichern.        Control-C
Zustand aus dem Klemmbrett wiederherstellen.     Shift-Control-V

In den Dateien scrollen - per Maus               - via Tastatur
--------------------------------------------------------------------------
Die einfachste Mglichkeit: Sie nehmen den       (s.o.)
Slider durch einen einfachen Linksklick in die   Control-Up, Control-Down
Hand. Das Dateifenster wird beim Scrollen in
Echtzeit aktualisiert. Alle anderen Bedienele-
mente des Sliders entsprechen denen von GEM-
Fenstern.

Wenn Sie Freedom so konfiguriert haben, knnen
Sie auch durch einen Rechtsklick direkt in das
Filefenster scrollen (hnlich wie beim Desktop
"Thing", allerdings mit dynam. Scrollweite)


Vernderung der Sortierung - per Maus            - via Tastatur
--------------------------------------------------------------------------
Doppelklick auf den Slider ffnet das            Control-J
Sortierungs-Popup (Sehr praktisch, denn wenn
man eine Datei sucht und sich deshalb fr eine   Alternativ:
andere Sortierung entscheidet, hat man meist     Control-H: nach Namen
eh grad den Slider 'in der Hand'.                Control-Z: nach Datum
                                                 Control-G: nach Gre
                                                 Control-T: nach Typ
                                                 Control-K: Keine Sort.
                                                 
                                                 Control-R: Sort. revers

Die Typsortierung kann zZt nur ber das Popup 
an- und ausgeschaltet werden


Drag & Drop - per Maus                           - via Tastatur
--------------------------------------------------------------------------
Wird ber selektierten Dateien die linke Maus-   Alt-Taste festhalten,
taste festgehalten, erscheint nach kurzer Zeit   mit den Pfeiltasten den
ein Geisterrahmen mit den Umrissen der selek-    Mauszeiger ber die Da-
tieren Objekte. Wird die Maustaste losgelassen,  teien manvrieren, und
werden die Dateien an die Position unter dem     mit Alt-Insert 'greifen'.
Mauszeiger 'abgeworfen'. Freedom zeigt whrend   Dann knnen Sie mit den
der Drag&Drop Aktion unten im Infoobjekt an,     Pfeiltasten berall hin-
was fr eine Aktion durch das Drag&Drop ausge-   transportiert werden.
lst wird. Werden die Dateien auf eine fremde    (Zugegeben: Das ist kein
Applikationen gezogen, kann Freedom die Aus-     Feature von Freedom (o:)
wirkungen nicht voraussehen ("tun Sie nichts
unberlegtes" ;-)). Oft wird gar nix passieren,
es sei denn, die Fenster eines AV-Servers (wie
"Thing" oder "Gemini"), oder eines Programms,
das sich beim AV-Server angemeldet hat, sind
das Ziel.

Freedom kann auch mittels Drag&Drop kopieren bzw.
verschieben, wenn Sie Dateien aus oder auf Fenster
des AV-Servers ziehen, oder ein weiterer offener
Freedom-Fileselector das Ziel ist. Ein weiterer
(nicht an eine Applikation gebundener) Freedom-  auch mit Control-Help
Fileselector lt sich mit einem Doppelklick     oder Shift-Help
auf das Freedom-Logo rechts oben ffnen.


Freedoms Funktionen - per Maus                   - via Tastatur
--------------------------------------------------------------------------
Lschen: Selektieren Sie die zu lschenden       Control-D
Objekte und klicken Sie auf den Mlleimer
unten links. Alternativ knnen Sie die Objekte
auch auf den Eimer ziehen.

Neues Objekt: Klicken Sie auf das Ordner-        Control-N
Symbol unten links (der 2.). Ein Dialog
erscheint, ber den Sie einen Ordner oder
eine (leere) Datei in dem aktuellen
Verzeichnis anlegen knnen.

Objekt-Information: Selektieren Sie ein oder     Control-I (Tab)
mehrere Objekte, deren Namen und/oder Attribute
Sie verndern mchten und klicken Sie mit der
linken Maustaste auf das Info-Symbol unten links
(das 3.). Alternativ knnen Sie die Objekte
auch aufs Icon ziehen.

Gesamt-Information ('Dateien-Zhlung'):          Shift-Control-I
Whlen Sie, nachdem Sie eine oder mehrere
Dateien selektiert haben, das Info-Symbol mit
der rechten Maustaste an, so wird eine
(rekursive) Dateien-Zhlung ber alle zur Zeit
selektieren Objekte in Gang gebracht.

Laufwerks-Info ('Dateien-Zhlung'):              Shift-Control-I
Klicken Sie das Info-Icon (mit links oder
rechts), ohne das Dateien selektiert sind, so
werden alle Dateien auf dem Laufwerk gezhlt.

Touch:                                           Control-B
Eine Funktion, die eher fr Programmierer
interessant ist. Sie knnen sie nun auch per
Maus erreichen, indem Sie Dateien auf das 
'Neuer Ordner'-Icon draggen.

Klemmbrett-Export:                               Control-C,Control-X
Der Zustand (Pfad und ggf. selektierte Dateien)
wird ins Klemmbrett exportiert. Dateien selektieren
und auf das Klemmbrett-Icon ziehen. Bei Control-X
wird zustzlich eine Verschiebe-Markierung gesetzt.

Klemmbrett-Import (Kopieren/Verschieben)         Control-V
Klemmbrett mit links anklicken und Dateien ins
Verzeichnisfenster draggen. Bei gedrckter 
Ctrl-Taste wird Verschoben. Wurden die Dateien
mit Control-X geklemmt und nun mit Control-V 
geholt, wird ebenfalls verschoben.

Klemmbrett-Import (Zustand wiederherstellen):    Shift-Control-V
Zustand aus dem Klemmbrett wiederherstellen.
Klemmbrett-Icon mit rechts anklicken. So ist 
auch ein 'Austausch' mit dem Desktop Gemini
mglich: In Gemini kann die aktuelle Selektion
in einem Fenster mit ^C exportiert und dann in
Freedom mit ^V wieder importiert werden. Leider
geht's in die andere Richtung (wg. fehlender
Funktion in Gemini) nicht!

Auerdem kann nun wieder eine Dateiliste         Shift-Control-C
formatiert mit einem Formatstring (#NICEFORMAT)
ins Klemmbrett exportiert werden, etwa, um sie 
in einem anderen Programm einzubinden. Dazu ist
nur das Anwhlen der gewnschten Dateien und 
ein folgender Doppelklick auf das Klemmbrett-
Icon ntig. Die so exportierten Dateien knnen 
nicht wieder mit ^V importiert werden.


Dateien suchen: Lupe unten links anwhlen.       Control-F
Ein Dialog erscheint, in dem Sie eine Such-
Maske eintippen knnen, und angeben drfen,
wo gesucht werden soll. Die Environment-Var
DRIVEMAP wird, wenn gesetzt, bei der Suche
auf allen Laufwerken beachtet. Mit 'Ok' wird
die Suche gestartet. ESC bricht die Suche ab.
Wurde eine Datei gefunden, erscheint ihr Name
in dem breiten Knopf unter der Suchmaske.
In diesem Fall haben Sie 4 Auswahlmglichkeiten:
breiter Knopf: Datei wird im aufrufenden
Fileselector selektiert und an die Applikation
ausgeliefert.
Ok: Datei wird im aufrufenden Selector
selektiert. Bei einem Rechts-/Doppelklick
dieselbe Wirkung wie der 'breite Knopf'.
Weiter: Es wird eine weitere auf die Maske
passende Datei gesucht.
Abbruch: Suchdialog ohne Aktion schlieen.

Freedom stellt normalerweise zwischen einem
Suchdialog und dem aufrufenden Fileselector
eine 'unsichtbare' Verbindung her um dann, wenn
sie im Suchdialog eine Datei auswhlen, diese
im zugehrigen Fileselector zu selektieren. Da
Sie so nur einen Suchdialog pro Fileselector
ffnen knnen, gibt es noch die Mglichkeit,
bel. viele 'ungebundene' Suchdialoge mit         Shift-Control-F
einem Rechtsklick auf die Lupe zu ffnen.
(Wenn sie das ihrer Platte antun wollen.. ;-))

Objekt ffnen: Ist vor allem fr Benutzer von    Datei(en) selektieren
Multitasking-Betriebssystemen wie MagiC oder     und Control-O drcken
MTOS interessant: Ein rechter Doppelklick auf
ein Objekt bewirkt das 'ffnen' des Objektes,    Alternativ:
d.h.: Handelt es sich um ein Programm, so        Control-Return
wird es gestartet, ansonsten wird ggf. einem
konfigurierbaren Viewer eine Nachricht mit der
selektierten Datei gesendet.
Freedom startet den Viewer auch parallel nach,
wenn er ihn nicht im Speicher antrifft. Da 
dies insgesamt nicht sehr flexibel ist,
berlt Freedom das ffnen dem AV-Server,
sofern ein solcher vorhanden ist. Der beachtet
dabei dann die angemeldeten Applikationen usw.
Auerdem lassen sich dann auch Verzeichnisse
'ffnen'.

Der Autolocator - eine Wissenschaft fr sich..
----------------------------------------------
Der Autolocator eines gewissen anderen Fileselectors war noch einfach,
doch mit Freedom wird auch das anders (o: Jetzt endlich kommen auch
eingeschworene Feinde des Autolocators in den Genu seiner
Funktionalitt. Mit Freedom kommt der 'Einmal-Autolocator', wie man ihn
schon von diversen Commandline-Shells als 'Completion' kennt: Ist der
stndige Autolocator abgeschaltet, kann mit Tab ein einmaliger Autolocator
ausgelst werden. Da hier ein offensichtlicher Konflikt mit der
Funktionalitt 'Objekt-Info' (auch Tab) vorhanden ist, und wir es (wie
auch sonst) allen recht machen wollen, ist die Tab-Taste auf eine der
beiden Funktionalitten konfigurierbar. Objekt-Info ist ja zustzlich mit
Control-I erreichbar, der einmalige Autolocator liegt zustzlich (fest)
auf Control-Tab.
Freedoms Autolocator sucht standardmig nach Ordnern und Dateien. Wird
zustzlich die Shift-Taste gedrckthalten, wird nur auf Dateien gematcht.
Eine nochmalige Beschleunigung des Autolocatens bringt das 'Cycle'-Feature
des einmaligen Autolocators. Wird derselbe nmlich mehrfach hintereinander
ausgelst, geht er auch hintereinander alle Dateien durch, auf die das
schon Eingetippte pat.


Das Klemmbrett
--------------
In der Version 1.14 wurde die Klemmbrettfunktion erheblich verbessert und 
verfeinert. Prinzipiell dient das Klemmbrett nun dazu, Dateinamen zur 
spteren Verwendung oder zur Weitergabe an andere Programme 
zwischenzuspeichern (Die Datei SCRAP.TXT im System-Klemmbrett wird dazu
benutzt). Um Dateien auf dem Klemmbrett zwischenzuspeichern, selektieren
Sie sie einfach und ziehen sie dann auf das Klemmbretticon. Eine weitere
Mglichkeit ist, ^C oder ^X zu drcken. Zum Zurckholen der Dateien
klicken Sie mit links auf das Klemmbrett und halten sofort die Dateien 'in 
der Hand'. Nun haben sie die schon von vorherigen Versionen bekannten 
Mglichkeiten, die Dateien wieder abzuwerfen: ber anderen Applikationen, 
ber dem Mlleimer/Info-Icon/Eingabefeld/Pfadfeld und der Datei-Listbox 
(zum Kopieren). Das Kopieren/Verschieben bzw Dateien auswhlen (mit Shift)
knnen sie auch per Tastatur, mittels ^V. Je nachdem, ob sie die Dateien 
mit ^C oder ^X auf das Klemmbrett befrdert haben, werden sie Ihnen bei ^V 
zum Kopieren oder Verschieben angeboten. Halten sie stattdessen zustzlich 
Shift fest, werden die Datei aus dem Klemmbrett wie gehabt selektiert. Das 
ist nebenbei eine gute Mglichkeit, wieder in den Herkunftspfad zu 
gelangen (Das, was man bei Selectric einstellen konnte), nachdem Sie mit 
dem Kopieren fertig sind. Das also, was in der Version 1.13 als 'Zustand 
wiederherstellen' auf ^V lag, ist nun mit +^V zu erreichen. Auerdem 
bietet Freedom ja auch noch das Feature, eine Dateiliste nach einem 
Formatstring (#NICEFORMAT) formatiert ins System-Klemmbrett zu sichern. 
Diese Funktion liegt wie gehabt auf +^C bzw. Doppelklick auf das 
Klemmbrett-Icon. Eine solche Dateiliste lt sich im Normalfall _nicht_ 
nach der oben beschriebenen Methode, etwa mit ^V, 'zurckholen'.

Um es nochmal zu betonen: Es wird bei ^C/^X lediglich eine Liste von 
Dateinamen als SCRAP.TXT gemerkt. Es werden _keine_ Dateiinhalte 
gespeichert. Es ist demnach nicht mglich, Dateien per ^C aufs Klemmbrett 
zu sichern, zu lschen, und dann woanders wieder mit ^V 'einzukleben'. Die 
Herkunftsdateien sind dann einfach nicht mehr vorhanden!! Wer etwas 
verschieben will, sollte das zB ber ^X machen. Die Dateien werden hier 
(im Gegensatz zum 'normalen' Verstndnis der Fkt. 'Cut') erst whrend des 
spter angeworfenen Verschiebe-Vorgangs gelscht. Fr die Interessierten: 
Ob eine Dateiliste mit ^X oder ^V geklemmt wurde, merkt sich Freedom 
(frecherweise (o:) ber das Archiv-Bit der Datei SCRAP.TXT.  Bei ^X wird 
das (normalerweise gesetzte) Bit gelscht.

Ganz nebenbei: Man kann nun auch Dateien draggen, wenn Freedom als modaler 
Dialog erscheint!


Sechs kleine Helferlein
----------------------
- Das File-Popup: Mal ehrlich: Wie oft arbeiten sie tage- oder sogar 
                 wochenlang immer nur mit den gleichen 4 Dateien, und 
                 suchen sie aber tagtglich wieder mit ihrem Fileselector. 
                 Das mu nicht sein! (o: In der Freedom-Konfigurations- 
                 datei knnen Sie bis zu 40 Dateien mit ihrem vollen Pfad 
                 eintragen, die sie dann in Freedom durch einen einfachen 
                 Klick aus einem Popup holen. Ihr Fileselector nimmt ihnen 
                 dann alles ab: Wechsel in das Verzeichnis, Datei 
                 selektieren und 'Ok' drcken. Dieses Popup kann gefiltert 
                 mit der aktuellen Maske und auch ungefiltert geffnet 
                 werden (Doppelklick)!
- Das History-
  Popup:         Nun hat Freedom endlich auch eine History. Diese bleibt
                 (wenn in der Konfig-Datei ein History-File angegeben ist)
                 auch erhalten, wenn Sie den Rechner ausschalten! In 
                 diesem Popup finden Sie immer die letzten (max. 40) Files 
                 mit vollem Pfad, die Sie in ihrem Fileselector ausgewhlt 
                 haben. Dieses Popup kann gefiltert mit der aktuellen Maske 
                 und auch ungefiltert geffnet werden (Doppelklick)!
- Das Masken- &
- das Pfad-Popup: Hatte beides auch schon der Fileselector, den Sie vor 
                 Freedom benutzt haben. Auch mit Freedom knnen Sie 
                 Eintrge in diesen Popups 'ersetzen', indem Sie einen 
                 Doppel- oder Shift-Klick machen. So wird die aktuelle 
                 Auswahlmaske bzw. der komplette aktuelle Pfad in das 
                 jeweilige Popup bernommen. Das hat allerdings nur 
                 temporren Charakter, da es sich (noch) nicht abspeichern 
                 lt. Mchten Sie also einen festen Eintrag in eines der 
                 Popups neu aufnehmen, fhrt zZt kein Weg an der 
                 Konfigurationsdatei vorbei.
- Das 'mgliche
  Masken'-Popup: In diesem Popup sind immer nur die Masken zu sehen, zu 
                 denen im aktuellen Verzeichnis auch passende Dateien 
                 existieren. Der erste Eintrag in diesem Popup ist immer 
                 '*.*'.
- Das Dateityp-
  Popup:         ..erreichen Sie mit einem rechten Doppelklick auf die 
                 Extension. Es zeigt die Namen von allen in der Konfig- 
                 datei definierten Dateitypen. Whlen Sie einen davon aus, 
                 so wird er in spitzen Klammern als Extension bernommen. 
                 Halten sie Shift dabei fest, so wird der ausgewhlte Typ 
                 mit Komma getrennt an die aktuelle Extension angehngt.


Einige letzte Bemerkungen zur Bedienung
---------------------------------------

- Das kleine Symbol unten rechts im Fileselector dient dazu, Freedom in 
  der Gre zu verndern. Dabei wird online die resultierende Gre des 
  Filefensters in Spalten/Zeilen angezeigt. Auf eine Fenster-Sizebox wurde 
  aus Platzgrnden verzichtet.

- An vielen Stellen ist der Fileselector so ausgelegt, da es 
  'zwei-Wege'-bedienbar ist, will sagen: Die einen halten lieber whrend 
  einer Aktion die ganze Zeit die Maustaste fest, die anderen klicken 
  lieber am Anfang und am Ende einmal kurz. Freedom kann beides, und zwar 
  fast berall: Bei allen Popups, beim Slider, bei der Fluchecke (falls 
  Freedom mal modal kommen mu), beim Aufziehen ('Sizen') des 
  Fileselectors und schlielich sogar beim Drag&Drop (Ctrl o. Alt beim 
  'Greifen' festhalten).

- Der 'Weiter'-Knopf im Such-Dialog hat noch einige Besonderheiten: Fr 
  Mausbenutzer ist er so gestaltet, da man die Maustaste auf ihm auch 
  gedrckt halten kann, um so quasi schnell 'vorzuspulen', wenn viele 
  Dateien gefunden werden, die einen eigentlich gar nicht interessieren. 
  Dies lt sich auch per Tastatur (Alt-W) erreichen, wobei dabei der 
  'Nachlauf' von Tastatur-Events unterdrckt wird!

- Wenn angeschaltet, knnen Freedom und seine Alertboxen vollstndig im 
  Hintergrund bedient werden, ohne da die rechte Maustaste dabei 
  gedrcktgehalten werden mu. Wollen Sie trotzdem einmal ein Fenster von 
  Freedom in den Vordergrund holen, brauchen Sie nicht unbedingt auf die 
  Fenstertitelzeile klicken: Ein kurzer Klick auf irgendeine 
  'funktionslose' Stelle im Dialog hat dieselbe Wirkung!


5. Kurzberblick ber alle Tastenkombinationen von Freedom
==========================================================

^ bedeutet 'zusammen mit Control'
+ bedeutet 'zusammen mit Shift'

Alt A-Z: Laufwerk umschalten
^BS,
^Undo:   Eine Directory-Ebene zurck
^A:      Alles Selektieren
+^A:     Selektion Invertieren
^D:      Selektierte Dateien lschen
^N:      Neues Objekt
^I:      Objekt-Information
+^I:     Dateien-Zhlung bzw. Laufwerks-Information
^B:      Touch
Tab:     Objekt-Information ODER Autolocator (Wenn #SHELLTAB gesetzt)
^Tab:    einmaliger Autolocator (zyklisch, Ordner und Files)
+^Tab:   einmaliger Autolocator (zyklisch, nur Files)
^F:      An aktuellen Fileselector gebundenen Suchdialog ffnen (F wie
finde)
+^F:     Ungebundenen Suchdialog ffnen
^C:      Momentanen Status ins Klemmbrett sichern
^X:      Dateien auf dem Klemmbrett sichern (mit Verschiebe-Markierung)
^V:      Dateien aus dem Klemmbrett kopieren/verschieben 
+^V:     Status aus dem Klemmbrett wiederherstellen
+^C:     Dateiliste nach Formatstring #NICEFORMAT ins Klemmbrett
^H,      Sortierung nach Namen  (H wie Selectric ;-))             
^Z,          "       "   Datum  (Z wie Zeit)
^G,          "       "   Gre
^T,          "       "   Endung (T wie Typ) 
^K,      unsortiert             (K wie Keine)
^R:      Sortierrichtung umkehren  (R wie Richtung)
+^S:     Dateien deselektieren nach Maske
^S:      Dateien selektieren nach Maske
^E:      Neue Maske eingeben (E wie Extension)
^Y:      Popup der vorhandenen Ext. ffnen (Y wie schn nah an Control ;-))
^P:      Pfad-Popup ffnen
^J:      Sortierungs-Popup ffnen (J wie keine andere Taste mehr brig)
+^X:      Popup der User-Extensions ffnen (X wie eXtension)
^M:      Datei-Popup (gefiltert) ffnen
+^M:      Datei-Popup (ungefiltert) ffnen
^<:      History-Popup (gefiltert) ffnen
+^<:      History-Popup (ungefiltert) ffnen
^L:      Drive-Popup ffnen (L wie Laufwerk)
^W:      Fenster wechseln
+^W:     Fenster rckwrts wechseln
Alt ^W:  Globaler Fensterwechsel (nur mit AV-Server)
^Return,
^O:      Selektiertes Objekt ffnen
^1-0:    1 bis 10 Verzeichnisebenen zurckgehen
Alt Esc: Den geklemmten Pfad auswhlen
Alt 1-0: Einen der ersten 10 Benutzer-Pfade auswhlen
+Alt 1-0: Benutzer-Pfad 11..20 auswhlen
^TB-.:   Die geklemmte Extension auswhlen
^TB-1-0: Eine der ersten 10 Benutzer-Extensions whlen
+^TB-1-0: Benutzer-Extension 11..20 auswhlen
^TB-*:   *.* als Extension whlen
TB +:    Entspricht: Crs-Dn+Klick auf 'Ok'
TB -:    Entspricht: Crs-Up+Klick auf 'Ok'
+Esc,
^Esc:    Verzeichnis neu einlesen
Esc:     Editfeld lschen
Return,
 Enter:  Bedient 'Ok' (Wenn ein Ordner selektiert ist, wird er geffnet)
+Return,
 +Enter: Bedient 'Ok', deselektiert vorher alle Dateien, so da ggf. der 
         im Editfeld eingegebene Name zum Zuge kommt
^Q,^U,
 Undo:   Bedient 'Abbruch'
Help:    Freedom-Info
+Help,
^Help:   Neuen (nicht applikationsgebundenen) Fileselector aufmachen
Alt-^Space: aktuellen Fileselector/Alert (de-)iconifizieren
^Up,^Dn: Scrollpfeile bedienen
Up,Dn:   Aktuell selektierte Datei wie einen Cursor bewegen
+Up,+Dn: Aktuell selektierte Datei wie einen Cursor seitenweise bewegen
ClrHome: Ersten Eintrag im aktuellen Verzeichnis selektieren
+ClrHome: Letzten Eintrag im aktuellen Verzeichnis selektieren

Die Funktionstasten F1..F10, Shift-F1..F10 (F11..F20) sind nun frei
belegbar.


6. Nebenlufigkeit
==================

Seit der Version 1.13 ist Freedom komplett nebenlufig. Genau wie in einem 
kooperativen Betriebssystem 'dispatcht' (also verteilt) Freedom intern die 
Rechenzeit zwischen verschiedenen, gleichzeitig laufenden Aufgaben, und 
gibt dabei natrlich auch regelmig Rechenzeit an das System ab. Dadurch 
knnen sie nicht nur auch unter normalen (kooperativen) TOS-Versionen 
weiterarbeiten, whrend Freedom Dateien sucht bzw. zhlt oder gerade ein 
sehr langes Verzeichnis einliest, sondern sie knnen sogar _innerhalb_ von 
Freedom weiterarbeiten! Jede Aktion, die sie in Freedom anwerfen (Suchen, 
lschen, Touch, Dateien zhlen, Verzeichnis einlesen, Kopieren und 
Verschieben) wird durch Freedom als extra Aufgabe (Task) verwaltet. Sie 
knnen beliebig viele dieser Aufgaben anwerfen, sie laufen alle parallel 
ab, und sogar im Hintergrund weiter, wenn sie ein Popup geffnet haben 
bzw. gerade ein Fenster oder einen Dialog verschieben! Beim nebenlufigen 
Kopieren und Verschieben kann man leider aufgrund des langsamen GEMDOS nur 
auf schnellen Rechnern mit schneller Platte einigermaen angenehm innerhalb
von Freedom weiterarbeiten, whrend er ackert...

Aus Grnden der bersichtlichkeit knnen Sie pro Fileselector nur einen an 
diesen gebundenen Such-Dialog ffnen. Durch Rechtsklick auf das Such-Icon 
bzw. durch Shift-Control-F lassen sich jedoch weitere ungebundene 
Such-Dialoge ffnen, falls sie weitere Suchvorgnge parallel starten 
wollen (Der Kopf ihrer Platte will beschftigt werden! ;->). Die 
Aktionen Datei-Zhlung, Laufwerks-Information, Lschen, Touch und 
Datei-Info lassen sich beliebig oft anwerfen! (Wenn Sie die bersicht 
behalten! ;-))

Die Dialoge 'Neue Maske eingeben', 'Dateien selektieren' und 'Dateien 
deselektieren' lassen sich (natrlich) nur einmal, gebunden an einen 
Fileselector, ffnen und werden mit dem Schlieen desselben ebenfalls 
geschlossen.


7. Drag n' Drop
===============

Freedom kann nicht nur per Drag&Drop Dateien an andere Applikationen 
weitergeben, sondern auch selbst welche Empfangen (MTOS und AV-D&D).

Allgemein bedeutet dabei:

- Ein Drag mit Shift, da der Ziel-Fileselector sich schlieen und die 
  'abgeworfenen' Dateien der aufrufenden Applikation weitergeben soll
  (Wer die Shift-Taste nicht drcken will, mu die Dateien direkt auf das 
  Eingabefeld ('Datei:') des entsprechenden Fileselectors ziehen.)
  
- Ein Drag ohne Umschalttasten: Kopieren (wenn mglich).

- Ein Drag mit Control-Taste: Verschieben (wenn mglich).

- Eine zustzlich gedrcktes Alternate-Taste beim Kopieren/Verschieben:
  Objekte vorher umbenennen

- Drag auf die Icons: Je nach Icon (o: BTW: Freedoms Icons (Lschen, Info 
  usw.) knnen nun auch von 'auerhalb' benutzt werden (einfach mal was 
  draufdraggen)

Die Vorgehensweise

Ziehen Sie Dateien auf eine andere, nicht blockierte Applikation, so
fragt Freedom zuallererst beim AV-Server nach, ob dem die Applikation 
bekannt ist, und bergibt dann die Dateien ggf. ber den Umweg AV-Server. 
Ist kein AV-Server da oder dem die Appl. unbekannt, wird (als letzter 
Versuch) ein VA_START an den Besitzer des Fensters (wenn nicht 
ermittelbar, an die Appl. 0) versendet. Einige Programme sind fhig, Daten 
auch ber das MTOS-Drag&Drop (ber Pipes) zu empfangen (zB GemView). Sie 
knnen dieses Programm in die Freedom-Konfigurationsdatei eintragen. 
Freedom knnte immer erstmal das MTOS-Drag&Drop probieren, dann mte der 
Benutzer aber bei den meisten Programmen eine Wartezeit von einigen 
Sekunden ertragen.


Neu: Auch das Draggen auf das Pfad-Objekt des Fileselectors ist jetzt mit 
einer Bedeutung belegt: Objekt(e) selektieren. Es entspricht dem Draggen 
von Objekten auf das Eingabefeld, mit dem Unterschied, da der 
Fileselector nicht geschlossen wird.


8. Das Dateityp-Konzept
=======================

Konnte man in alten Freedom-Versionen einem bestimmten Dateityp nur ein 
Bildchen zuordnen, so ist ab der V1.14 noch folgendes weitere 
dateitypabhngig konfigurierbar:

- eine Typbezeichnung
- Eine Sortierprioritt
- Vorder- und Hintergrundfarben im de- und selektierten Zustand

Eine Zeile aus der Konfigurationsdatei (#FILETYPES) als Beispiel:

Program   19    1  0 1 1 0 *.PRG,*.TOS,*.ACC,*.TTP,*.GTP,*.APP
   |      |     |  | | | |    |
   |      |     |  | | | |    +--Maske fr diesen Dateityp
   |      |     |  | | | +-------Textfarbe (selektiert)
   |      |     |  | | +---------Hintergrund (selektiert)
   |      |     |  | +-----------Textfarbe (deselektiert)
   |      |     |  +-------------Hintergrund (deselektiert)
   |      |     +----------------Nummer des zugehrigen Images
   |      +----------------------Sortierprioritt
   +-----------------------------Typname (sinnvoll sind krzere 
                                 Bezeichnungen (siehe Desktop Thing)

Der Typname lt sich per Formatstring (%X) auch in das Verzeichnisfenster 
einblenden und taucht auerdem in einem neuen Popup auf. Im Sortier-Popup 
lt sich nun zustzlich die (natrlich langsamere) Typsortierung 
aktivieren. Ist sie aktiviert, wird der Dateityp von Freedom als primres 
Sortierattribut verwendet. Erst, wenn zwei Dateien denselben Typ haben, 
werden sie nach dem aktuellen sekundren Attribut (Name, Datum, Gre, 
Endung) geordnet. Auch die Reihenfolge, in der die Dateitypen in der 
Konfigurationsdatei stehen, hat (wie bei vorherigen Freedom-Versionen) 
eine Bedeutung: In genau dieser Reihenfolge wird versucht, den passenden 
Typ zu ermitteln. Die allgemeineren Masken sollten also weiter hinten 
stehen. Steht beim ersten Dateityp als Maske gleich eine '*.*', so liegen 
die anderen Dateitypen natrlich brach!!


9. Konfiguration
================

Freedom lt sich in weiten Grenzen konfigurieren.
Beeinflussen knnen Sie neben vielen Unwichtigkeiten folgendes:

- Font, Gre, Farben und Zeilenabstand im Fileselector
- Position des Scrollbars (links/rechts) im Fileselector
- diverse Verzgerungszeiten
- Je einen Formatstring fr 8.3- und lange Dateinamen
- Ob Gro- oder Kleinbuchstaben verwendet werden sollen
- Ob der Autolocator aktiv ist und ob er auch Ordner matcht
- Ob in Alertboxen alle Knpfe gleich breit sein sollen
- Wo der Kobold liegt (Environment-Var wird auch gecheckt)
- Wie der Viewer heit
- Wie Parafin heit ;-)
- Wie die Funktionstasten belegt sind
- Welche Dateien als Programmdateien interpretiert werden
- Ob Ordner erst auf Doppelklick ffnen
- Ob der Rechtsklick ins Filefenster scrollt (wie bei Thing)
  oder (wie berall sonst) einem Doppelklick entspricht
- Ob Hintergrundbedienung von Fensterdialogen aktiv ist
- Ob der Fileselector in Mausnhe geffnet wird 
- Anzahl der Zeilen/Spalten des Fileselectors
- Bis zu 40 voreinstellbare Files
- Bis zu 40 voreinstellbare Pfade
- Bis zu 40 voreinstellbare Extensions
- Der Pfad, wo die Images (FREEDMxx.IMG) gesucht wird
- Gltigkeitsmasken fr die Images
- Applikationen, bei denen Freedom modal kommen soll
- Max. 16 Applikationen, bei denen Freedom gar nicht kommen soll
- Max. 64 Applikationen, bei denen Freedom den VA_START-Trick oder den 
  Menubar-Trick anwenden soll
- Ob Freedom auch Alertboxen in Fenster legt

Diese Parameter knnen (immer noch) nur direkt in der Konfigurations-
datei unter Zuhilfenahme eines Texteditors verndert werden. Diese Datei ist

aber ausfhrlich kommentiert, also keine Panik. In einer nchsten Version 
wird es ein Setup-Programm geben, mit dem diese Datei komfortabel 
modifiziert werden kann. Bestimmte Parameter werden sich auch zur Laufzeit 
von Freedom noch verndern lassen.

Freedom sucht beim Start die Konfigurationsdatei zuerst unter einem Namen, 
den er aus der aktuellen Auflsung zusammensetzt (genau, wie die Shell 
Gemini) bei 640x400 zB "06400400.CNF", bei 1280x960 dann "12800960.CNF". 
Wird eine solche Datei nicht gefunden, wird noch "FREEDOM.CNF" versucht, 
ansonsten werden die Standardeinstellungen verwendet. Freedom sucht die 
Konfigurationsdateien mit shel_find(), was schlicht und einfach bedeutet, 
da es die Suche den AES berlt. Letzteres sucht in dem aktuellen 
Directory und allen Directorys, die in der Environmentvariable $PATH 
stehen.
Mittels des Imagepfades (#IMAGEPATH) in der Konfigurationsdatei kann man 
auch fr jede Auflsung und Farbtiefe unterschiedliche Imagedateien laden 
bzw. mittels der Fonteinstellung via #FONTID etc. verschiedene 
Zeichenstze fr unterschiedliche Auflsungen bestimmen.


Ein Beispiel:
-------------
akt. Ordner in dem sich auch Freedom befindet:

03200200.CNF
            hat Eintrag mit: #IMAGEPATH C:\FREEDOM\FDIMG\SMALL\
06400400.CNF
            hat Eintrag mit: #IMAGEPATH C:\FREEDOM\FDIMG\NORMAL\
            

Dann werden die Icons bei 320x200 Pixel in "C:\FREEDOM\FDIMG\SMALL\" 
gesucht. Abhngig von der aktuellen Farbtiefe wird dann dort bei 16 Farben
die Imagedatei "FREEDM04.IMG" geladen (siehe auch unten). Bei 640x400 
Pixeln in 256 Farben wrde aus "C:\FREEDOM\FDIMG\NORMAL\" die Datei 
"FREEDM08.IMG" als Icon-Satz geladen werden.

WICHTIGE NEUERUNG DER VERSION 1.14 !!!!!
Ein neues Token #IMAGES legt fest, als aus wieviel Einzel-Images 
bestehend die Imagedatei interpretiert werden soll (was fr ein Satz ;-)) 
Wird kein solches Token in der Konfigurationsdatei gefunden, so wird 
gar nicht versucht, einen Imagesatz zu laden, sondern gleich der Standard-
satz (bestehend aus einem Ordner-Image ;-)) benutzt. Wird #IMAGES dagegen 
explizit auf 0 gesetzt, werden gar keine Images vor dem Text dargestellt. 
Erst ein positiver Wert veranlat Freedom zu dem Versuch, eine Imagedatei 
zu laden. Schlgt das dann fehl, werden ebenfalls keine Images dargestellt.

Einige allgemeine Anmerkungen zum Aufbau der Konfigurationsdatei:
Freedom liest die Konfigurationsdatei zeilenweise. Zeilen, die mit einem 
Semikolon (;) beginnen, werden ignoriert. In allen anderen Zeilen wird 
versucht, eines der Schlsselwrter (z.B. #AUTOLOCATE) zu erkennen, die 
alle mit einem Doppelkreuz (#) beginnen. Wird kein Schlsselwort erkannt, 
wird die Zeile als zum letzten eingelesenen Schlsselwort zugehrig 
angenommen. Bei einigen Optionen wird davon auch Gebrauch gemacht, etwa 
bei #PATHS, wo bis zu 40 Zeilen mit weiteren Pfaden folgen knnen. 
Genauere Informationen zu den einzelnen Optionen finden sich in der 
mitgelieferten Beispiel-Konfigurations-Datei, mit der Sie jetzt gleich mal 
ihrem Lieblings-Texteditor fttern sollten (Vorher eine Sicherheitskopie 
machen!)


9.0 Die Imagedateien

Freedom versucht, nachdem es die Konfigurationsdatei eingelesen hat, auf 
dem in der Datei angegeben Pfad eine Datei "FREEDMxx.IMG" wobei fr xx die 
aktuelle Anzahl von Planes des Screens eingesetzt wird, also bei einer 
monochromen Auflsung FREEDM01.IMG, bei 4 Farben 02, bei 16 Farben 04 usw. 
zu laden. Wurde diese Datei gefunden und handelt es sich um ein XIMG mit 
genau der angegebenen Anzahl Planes, wird die Datei eingelesen. 
Anschlieend wird das Image in der Breite durch durch die in der 
Konfigdatei angegebene Imageanzahl (#IMAGES) in lauter einzelne Bildchen 
geteilt. Ist beispielsweise das Images 64 Pixel breit und 16 hoch, und 
#IMAGES 4, so wird es in vier Teile, je 16x16 Pixel gro, aufgeteilt. 
Die Images aus dieser Datei knnen spter einzelnen Datei-Typen (siehe 
Kapitel 'Typkonzept') zugeordnet werden.


9.1 Der Format-String
Freedom erlaubt Ihnen, die Daten in dem Fileselector-Fenster auf fast 
beliebige Weise zu formatieren. Auerdem kann jeweils fr normale 
8.3-Filesysteme und Filesysteme mit langen Dateinamen ein verschiedener 
Formatstring angegeben werden. Es handelt sich dabei einfach nur um 
eine Aneinanderreihung von Zeichen, wobei dem '%' (Prozent) eine 
Spezialbedeutung zukommt. Am einfachsten geht's mit einem Beispiel:

Sie mchten, da die Dateien in einer Zeile wie folgt formatiert werden:

:
EVEREST  PRG  154.510  29.10.94  09:41
EVEREST  INF      840  09.01.95  11:36
:

Also erst der Name, dann die Endung, dann die Gre (mit max. 9 Ziffern), 
dann das Datum und schlielich die Uhrzeit ohne Sekunden. Der Formatstring 
dafr knnte etwa wie folgt aussehen:

#FORMAT %-F %-E%9P  %2D.%2M.%2Y %T%h:%m

Die Stellen, an denen ein '%' steht, weisen Freedom an, eine ganz 
bestimmtes Attribut (Name, Gre, Stunde, Minute usw.) der gerade 
formatierten Datei an genau dieser Stelle einzusetzen. Welches Attribut 
das ist, bestimmt Freedom aus den auf das '%'-Zeichen folgenden Zeichen.

Zur Auswahl stehen:
'F':      Dateiname bis zum letzten Punkt (also ohne Endung)
'E':      Dateiname ab dem letzten Punkt (also die Endung)
'N':      Voller Dateiname (unformatiert)
'D':      Tag (1..31)
'M':      Monat (1..12)
'Y':      Jahreszahl (ohne Jahrhundert, 00..99)
'h':      Stunden
'm':      Minuten
's':      Sekunden
'S':      Gre (in Bytes) der Datei ("1345678"), bei Ordnern nichts
'P':      'Punktierte' Gre der Datei ("1.345.678"), bei Ordnern nichts
'K':      Gre (in Bytes) der Datei ("1345678"), bei Ordnern '<Ordner>'
'T':      Das Uhrensymbol, wenn die Datei tagesaktuell ist, sonst nichts
'A[xx]':  Attribut-Bit des Files, default-Zeichen: [-a]
'W[xx]':  Schreibgeschtzt-Status eines Files, default-Zeichen: [-r]
'H[xx]':  Versteckt-Bit des Files, default-Zeichen: [-h]
'Z[xx]':  System-Bit des Files, default-Zeichen: [-s]
'X':      Typname
'a':      Beliebiges ASCII-Zeichen (zB %13a fr CR oder %10a fr LF)
'%':      Das Prozentzeichen

Tabulatoren (als Pseudo-Attribute):
'L':      linksbndiger Tabulator (zeichenweise)
'C':      zentrierter Tabulator (zeichenweise)
'R':      rechtsbndiger Tabulator (zeichenweise)
'l':      linksbndiger Tabulator (pixelweise)
'c':      zentrierter Tabulator (pixelweise)
'r':      rechtsbndiger Tabulator (pixelweise)

          (Liste ist fr Erweiterungsvorschlge offen)

Das jeweilige Attribut wird von Freedom auf eine Defaultbreite formatiert. 
Mchten Sie das Attribut lieber breiter oder schmaler, knnen Sie die 
gewnschte Breite als Wert zwischen dem '%' und dem Attributbuchstaben 
eintragen. Freedom formatiert Attribute, die schmaler als die angegebene 
Breite sind, rechtsbndig. Mchten Sie ein Attribut lieber linksbndig 
formatiert haben, dann plazieren Sie ein '-' (Minus) direkt hinter das 
'%' Symbol des Attributes (siehe auch die noch folgenden Beispiele).

Auf einem Filesystem mit langen Dateinamen ist die Aufsplittung eines 
Dateinamens in Prefix und Endung nicht mehr so sinnvoll, hier bietet sich 
etwa folgender Formatstring an:

#LONGFORMAT %-20N%9P %2D.%2M.%2Y

der als Ergebnis die folgende Ausgabe liefert:
:
EVEREST.PRG           154.510 29.10.94
EVEREST.INF               840 09.01.95
:

welche etwas mehr Platz auch fr lngere Dateinamen lt.


Proportionale Fonts

Die Verwendung eines proportionalen Zeichensatzes in Freedom macht nur im 
Zusammenspiel mit Freedoms Tabulatoren (%L,%C,%R,%l,%c,%r) Sinn. Eigens 
fr die Tabulatoren merkt sich Freedom beim Parsen des Formatstrings einen 
horizontalen 'Cursor'. Ein Tabulator in einem Formatstring bewirkt dabei 
folgendes: Der Tabulator-Cursor wird um die Breite des Tabulator- 
Attributes nach rechts bewegt und dann der Text und die weiteren 
'normalen' Attribute hinter diese Tabulator entsprechend der Ausrichtung 
dieses Tabulators um diese Cursorposition herum formatiert. %l oder %L 
bewirken eine linksbndige Ausgabe rechts von der Cursorposition, %c und 
%C bewirken eine zentrierte Ausgabe, wobei die Cursorposition in der Mitte 
liegt und schlielich %r bzw. %R bewirken eine rechtsbndige Ausgabe links 
vom Cursor. Ein Tabulator formatiert alle Attribute, die nach ihm kommen, 
bis zum nchsten Tabulator bzw. bis zum Ende des Formatstrings, als einen 
String. Der Offset-Wert jedes weiteren Tabulators wird auf die aktuelle 
Tabulator-Cursor-Position aufaddiert, der Wert ist also immer relativ zum 
vorherigen Tabulator. Negative Tabulatoren sind erlaubt und Text darf auch 
mehrfach bereinander ausgegeben werden, die Ausgabe erfolgt dann 
transparent. Ist kein Tabulator aktiv, haben alle Attribute (wie bisher) 
eine Default-Breite, bis zu der durch Einfgen von Leerzeichen links oder 
rechts des Attributes aufgefllt wird. Dies ist bei proportionalen Fonts 
nicht sinnvoll, weshalb bei aktivem Tabulator die Attribute defaultmig 
alle ohne Leerzeichen ausgegeben werden (Die Formatierung soll ja durch 
den Tabulator erledigt werden). Deshalb sollte gleich das erste 'Attribut'
in einem Formatstring fr proportionale Fonts ein Tabulator sein. Ein 
(hliches) Beispiel:

%12R%N%6C%P%6L%2D.%2M.%2Y %T%h:%m

das Teilstck '%N' des Formatstrings wird auf 12 Zeichenbreiten 
rechtsbndig formatiert. Der Cursor steht danach 12 Zeichenbreiten vom 
linken Rand entfernt. Jetzt kommt ein Zentrier-Tabulator, der den Cursor 
zuerst um weitere 4 Zeichen nach rechts bewegt, um dann das Teilstck '%P' 
zentriert um diesen Cursor auszugeben. Schlielich kommt ein linksbndiger 
Tabulator, der den Cursor um 6 Zeichenbreiten bewegt, um dann rechts davon 
den Rest des Formatstrings ('%2D.%2M.%2Y %T%h:%m') auszugeben.


9.2 Der VA_START Trick
Einige Programme, vor allem solche, die Dateien nur anzeigen, knnen von 
Freedom ausgetrickst werden, und whrend der Fileselection sogar 
weiterlaufen! Die Idee ist sehr einfach: Dem Programm wird beim Aufruf des 
Fileselectors vorgegaukelt, der Benutzer htte sofort 'Abbruch' gedrckt 
(das Programm luft also gleich weiter), in Wirklichkeit ist der 
Fileselector aber noch da, und wenn der Benutzer dann Dateien auswhlt, 
werden diese dem Programm einfach per VA_START 'nachgereicht'. Einige 
Programme, mit denen das klappt, stehen sogar schon in Freedoms 
Konfigurationsdatei. Viele Programme machen allerdings Probleme, wenn sie 
ber VA_START Dateien geliefert bekommen, die nicht existieren, etwa 
solche, die der Benutzer gerade neu erzeugen will. Eine rhmliche 
Ausnahme ist der Texteditor Everest, dem so gut wie alles per VA_START 
senden kann. (o: Ein Nachteil der VA_START-Methode ist, da die 
Applikation den vernderten Verzeichnispfad nicht mitbekommt und deshalb 
beim nchsten ffnen eines Fileselectors wieder den alten Pfad bergibt. 
Wenn eine Applikation aber sowieso VA_START versteht und sie genug Platz 
auf dem Screen haben, so behalten sie doch einfach immer einen 
Freedom-Fileselector offen. Aus ihm knnen Sie dann jederzeit Dateien auf 
Fenster einer VA_START verstehenden Applikation draggen.


Der Aufbau einer #VA_START Zeile aus der Konfigdatei:

PAULA  Load MODfile
 |      |
 |      +--Fileselectortitel, mit dem Freedom vergleichen soll
 +---------AES-Programmname


9.3 Der Menubar Trick
Und schon wieder ein neuer Trick: Applikationen, bei denen ein 
Fileselector-Aufruf direkt mit einem Men-Eintrag verbunden ist, knnen in 
einer neuen Liste in der Konfigdatei (#MENUBAR) fr eine uneingeschrnkt 
nonmodale _Mehrfach_Selektion eingetragen werden. Dieses Verfahren hat 
gegenber dem vorher beschriebenen VA_START-Trick den Vorteil, da die 
Applikation auch das neue Verzeichnis und die neue Extension mitbekommt. 
Die Nummern der Meneintrge knnen mit dem beiliegendem Programm 
MENU_ID.APP ermittelt werden. Wie bei der VA_START Methode kehrt der 
Fileselector beim ersten Aufruf mit Abbruch zurck, und liefert die Files 
nachtrglich aus. Dazu wird der betreffenden Applikation eine MN_SELECTED 
Nachricht gesendet (und damit die Anwahl eine Menpunktes simuliert), auf 
die das Programm dann fsel_[ex]input aufruft. Statt jetzt einen neuen 
Fileselector zu ffnen, wird einfach eins der selektierten Files 
zurckgegeben und ggf. erneut MN_SELECTED verschickt. Fertig ist die 
Mehrfach-Selektion. Auch dieses Verfahren klappt nicht immer, es gibt 
Programme ohne Menzeile und solche, die den Fileselector aus Dialogen 
aufrufen. Wir raten auerdem davon ab, Fileselectoraufrufe der Form 
'Speichern als...' hier einzutragen. Dieses Verfahren beinhaltet (noch?) 
kein Gedchtnis, welches Applikationsfenster zum Zeitpunkt des 
Fsel-Aufrufs das oberste war. Genau das wird aber bei 'Speichern als...'
im Normalfall gesichert!! Sinnvoll sind also in dieser Liste nur 
vollkommen kontextunabhngige Fileselector-Aufrufe!

Der Aufbau einer #MENUBAR Zeile aus der Konfigdatei:

PC  8 76  Select Project...
 |  | |     |
 |  | |     +--Fileselectortitel, mit dem Freedom vergleichen soll
 |  | +--------Objektnummer des zugehrigen Meneintrages (item)
 |  +----------Objektnummer des zugehrigen Mentitels (title)
 +-------------AES-Programmname (hier Pure C)

Die Werte von title und item knnen mit dem (Schweine- ;-))Programm 
MENU_ID.APP (installierbar auch als ACC) einmalig ermittelt werden. Das 
Programm ist nur zum Konfigurieren gedacht, und kann (und sollte) danach 
wieder terminiert/entfernt werden. Da es auf die Menubars anderer 
Programme zugreift, luft es (im Gegensatz zu Freedom selbst) nicht unter 
protected MiNT. Natrlich ist auch die VDI-Ausgabe oben in der Ecke 
unschn, aber wie gesagt, man mu das Programm ja nicht dauerhaft 
installiert haben. Beachten Sie auerdem, da sich bei einer neuen Version 
einer Applikation die Menpunkte verschieben knnten (sich also der Wert 
von 'item' und sogar der von 'title' ndern knnten) und Sie deshalb ihre 
Freedom-Konfiguration uU updaten mssen.

Wir haben den Trick schon mit einer ganzen Menge Programmen ausprobiert. 
Als prinzipieller Schwachpunkt stellte sich heraus, da Freedom sich 
darauf verlassen mu, da die versendete MN_SELECTED Nachricht auch 
wirklich vom Programm ausgewertet und mit einem fsel_[ex]input-Call 
beantwortet wird (nur so kann das nchste File ausgeliefert werden). Nun 
kann es vorkommen, da die Applikation das Auswhlen des betreffenden 
Menpunktes genau zu diesem Zeitpunkt nicht zult, etwa, weil es gerade 
noch das vorherige File einliest, und deshalb das MN_SELECTED leider 
verwirft. Bei dem Programm Everest gengte es, eine Wartezeit von 0,5 sec 
vor dem Versenden des nchsten MN_SELECTED in Freedom zu integrieren, bei 
Pure C funktioniert es (zu unserer Freude ;-)) an sich immer, bei einigen 
anderen Programmen wiederum gar nicht. Freedom wartet nach dem versenden 
des MN_SELECTED 10 sec, bevor es ggf. noch nicht 'abgeholte' Dateien 
freigibt. Sollte die Applikation das MN_SELECTED geschluckt haben, und der 
Benutzer whlt manuell den betreffenden Menpunkt noch innerhalb der 10 sec 
an, erscheint deshalb natrlich kein Fileselector, sondern die weiteren 
Files werden so eins nach dem anderen ausgeliefert (also nicht wundern). 
Nach Ablauf der 10 sec erscheint bei Anwahl des Mentitels dann wieder der 
Fileselector.

In folgenden Fllen lt sich das Verfahren leider gar nicht oder nur 
sehr schlecht anwenden: 

- Applikation hat keine Menzeile

- Die Applikation benutzt fsel_input statt fsel_exinput, mit dem Erfolg, 
  da der Fileselector keinen Titel hat (Defaulttitel 'Datei auswhlen...' 
  kommt) und damit keine Unterscheidungsmglichkeit zu mglichen anderen 
  Fileselectoraufrufen desselben Programmes besteht (Bsp. SCOOTER), es sei 
  denn, das Programm ruft nur an einer einzigen Stelle einen Fileselector 
  auf.

- Die Applikation benutzt fsel_exinput, bergibt aber schwachsinnigerweise 
  bei unterschiedlichen Fileselectoraufrufen denselben Titel. Es gilt 
  dasselbe wie oben (keine Unterscheidungsmglichkeit).

- Die Applikation ffnet bei Anwahl des betreffenden Menpunktes erstmal 
  bzw nach Einlesen der Datei nochmal einen Dialog, um irgendwas vom 
  Benutzer zu erfragen (wenn sie den schnell genug wegklicken, geht's 
  vielleicht..)


Es sind noch einige Verbesserungsmglichkeiten an dem Trick denkbar:

Man knnte die Fileselectoraufrufe statt per Titel ber die 
Rcksprungadresse (relativ zum Beginn des Codesegmentes der Applikation) 
identifizieren. Hier mte aber einiges Betriebssystemabhngig geschehen. 
Das Delay bis zum Versenden der nchsten MN_SELECTED-Nachricht knnte 
Applikationsabhngig einstellbar bzw. teil-automatisiert 
(Fuzzy-Logic?! ;-)) werden.



9.4 Funktionstastenbelegung
Neu seit Freedom 1.11: Die Funktionstasten lassen sich nun vollkommen frei 
belegen! Dazu gibt es in der Konfigurationsdatei eine Option #FKTKEYS. 
Dahinter wird eine Zeichenkette erwartet, in der die Zeichen von links 
nach rechts gelesen die Belegung der Funktionstasten F1 bis F20 (F11 = 
Shift-F1) mit einer Auswahl aus Freedoms Funktionen bestimmen. Beispiel: 
'A-JKDEFGIH' belegt F1 mit der Funktion A (siehe Liste unten), lt F2 
unbelegt, belegt F3 mit Fkt. J usw. Alle unbelegten Funktionstasten werden 
an den AV-Server durchgereicht und knnen dort dann zB Beispiel das 
Starten von Programmen usw auslsen. Speziell fr Gemini 1.a Benutzer gibt 
es (auch neu) eine Option #NOSENDKEY, durch welche Freedom das Weitergeben 
von unbelegten Tastendrcken an den AV-Server generell verboten werden 
kann. Hier nun die mglichen Funktionsbuchstaben:

    A = Laufwerks-Popup
    B = Datei-Popup (gefiltert mit akt. Maske)
    C = Extension-Popup
    D = Sortierungs-Popup
    E = Pfad-Popup
    F = Mgliche Extensions-Popup
    G = Selektieren nach Maske
    H = Deselektieren nach Maske
    I = Neue Maske eingeben
    J = Objekt suchen (an Selector gebunden)
    K = Neues Objekt erzeugen
    L = momentanen Zustand ins Klemmbrett sichern
    M = Datei ffnen (anzeigen oder ausfhren)
    N = Aktuelle Selektion rekursiv zhlen
    O = History-Popup (gefiltert mit akt. Maske)
    P = rekursives Touch auslsen
    Q = Zustand aus dem Klemmbrett wiederherstellen
    R = Einzel-Info aller selek. Dateien
    S = Dateienzhlung auf aktuellem Laufwerk
    T = Nicht an einem Selector gebundener Suchdialog ffnen
    U = Dateiliste nach Formatstring #NICEFORMAT ins Klemmbrett
    V = Datei-Popup (ungefiltert)
    W = History-Popup (ungefiltert)
    X = Dateityp-Popup
    - = Keine Belegung (Weiterleiten an AV-Server)


Zur Konfigurationsdatei noch eine Anmerkung: Alle Pfade und Masken, die 
Freedom einliest, werden sofort (je nach Einstellung durch #LOWERCASE) 
(aus optischen Grnden) in Gro- bzw. Kleinbuchstaben gewandelt. (Ist das 
nicht gewnscht, bspw. weil ein Pfad auf ein case-sensitives Filesystem 
weist), kann dem Pfad oder der Maske ein Ausrufezeichen ('!') vorange- 
stellt werden. Freedoms Expressionmatch-Routine unterscheidet allerdings 
nie zwischen Gro- und Kleinschreibung, auch nicht auf case-sensitiven 
Filesystemen.


10. Sie programmieren selbst?
=============================

Freedom kann direkt untersttzt werden. Genaueres dazu finden Sie in der 
beiliegenden Datei FDMPROTO.H, sowie SLECTRIC.H und BEISPIEL.C.

Wichtig fr Programmierer, die ihre Programme noch weiterentwickeln und 
Konflikten mit Freedom (bzw. seinen Benutzern (o:) aus dem Weg gehen wollen:
Ist der FSEL-Cookie installiert und die Versionsnummer >= 2.00, sollte der 
fsel_[ex]input Aufruf NICHT mit BEG/END_MCTRL geklammert werden, ansonsten 
IMMER! Mit BEG/END_UPDATE sollte sowieso IMMER geklammert werden!


11. Still to come
=================

- Integration eines erweiterten Kontrollfeldes (XCONTROL) in Freedom
- Ein 'Set'-Feature. Bei beiden Tricks (VA_START/Menubar) und beim 
  Freedom-Protokoll selbst ist es durchaus mglich, die Dateien zwar an 
  das betreffende Programm auszuliefern, den Selector aber fr die Auswahl 
  weiterer Dateien offen zu halten (eben ein Set).
- Beim Konflikt-Dialog (Kopieren/Verschieben) ist es auch denkbar, ein 
  Umbenennen der Originaldatei zuzulassen.
- MTOS Path-Drag&Drop (fr NEWDESK)
- verbesserter Menubar-Trick
- Ein Setup-Programm, mit dem die Freedom-Konfigurationsdatei komfortabel 
  editiert werden kann.
- Signal- und AP_TERM-Auswertung im Trapper


12. Bekannte Einschrnkungen
============================

- Kein Aufruf aus TOS-Programmen. Prinzipiell geht das zwar, wenn 
  dieselben im VT52/TOSWIN-Fenster laufen), dazu mte allerdings das 
  TOS-Programm vom residenten Teil kurzzeitig bei den AES (per appl_init) 
  angemeldet werden, damit der Datenaustausch mit dem Fileselector-Server, 
  der ja ber AES-Messages abluft, funktioniert.

- Mit VRAM mssen die Programmflags 'lalt' und 'malt' gelscht werden!

- Das Zusammenwirken mit vielen 'Schweineprogrammen' wurde noch nicht sehr 
  intensiv getestet
  
- Der Server verbraucht ber 160kB Speicherplatz (Ihr wolltet das 
  Kopieren/Verschieben!). Es gibt aus unserer Sicht jedoch keine 
  Alternative zur Benutzung von EnhancedGEM. Der Verlust vieler Features 
  und eine um vieles lngere Entwicklungsdauer wren die Folge.

- Im MagiC-Single-Mode wird der Freedom-Server gefreezed, was zur Folge 
  hat, da der residente Teil ihn nicht erreicht (Systemselector kommt), 
  bzw. einen zweiten nachstartet, wenn ihm ein Pfad in FFSEL.INF gegeben 
  wurde. Ohne vernnftige MagiC-Doku wird sich an diesem Zustand nichts
  ndern...

- Signale unter MiNT werden vom residenten Teil nicht ausgewertet => 
  mit jedem Proze, den Sie mit offenem Fileselector/Alert terminieren, 
  (KILL/TERM) geht ihnen einer der 8 'Slots' im Traphandler verloren.


13. Problemkinder
=================

- Alte Versionen der CD-Tools, die bisher mit Freedom funktioniert haben, 
  strzen nun beim Aufruf von Dxreaddir durch Freedom ab! Abhilfe: Neuere 
  Version besorgen. Das gilt fr alle MetaDOS-Treiber, die mit dem neuen 
  Freedom Probleme machen. Freedom ist nicht das einzige Programm, welches 
  Dxreaddir benutzt, also dulden sie keinen Treiber, der kein Dxreaddir 
  kann!!

- Falcon TOSe haben ein 'erweitertes' Dsetdrv(), das im Zusammenspiel mit 
  MetaDos bis zur Version 2.5 dazu fhren kann, da bei Programmen, die die 
  Konstruktion Dsetdrv(Dgetdrv()) benutzen (wie Freedom oder Gemini), uU 
  Laufwerke pltzlich verschwinden. Metados 2.6 sollte mit diesem Feature 
  umgehen knnen.

- MultiDialog. Gute Idee, drftige Umsetzung. Dieses Programm sollte
  berhaupt nicht verwendet werden!

- STZip (2.6) fhrt keine Redraws aus, wenn sein Fenster im Hintergrund 
  liegt.

- Fr das Menzeilen-Disablen wird das Men kurz ab- und wieder 
  angemeldet, im Zusammenhang mit Let'em Fly's Nicelines gibt mit einigen 
  Programmen das Problem, da sich Meneintrge verschieben (Bse!!). 
  Daran ist Freedom nicht schuld, Let'em Fly eigentlich auch nicht. 
  beltter: PixArt (1.2), "Rastaman". Abhilfe: Nicelines abschalten oder 
  Programme nicht benutzen..

- Let' em Fly: Wenn Sie es unbedingt installieren mssen, dann _nach_ 
  FFSEL.PRG, ansonsten kommt sich offensichtlich die Alertbehandlung 
  beider Programme ins Gehege.


14. Fragen ber Fragen
======================

F: Warum ist Freedom auf einmal 20kB grer?!

A: Wie vorausgesagt, ist der Einbau des Kopierens/Verschiebens mit 
   kompletter Fehler- und Konfliktbehandlung (speichermig) etwas teuer 
   (ca. 10kB) geworden. Auerdem kommen noch der neue Menubar-Trick und 
   das Typkonzept dazu. Trotzdem bedenke man folgendes: Dafr, da Freedom 
   inzwischen schon fast die Funktionalitt eines Desktops hat, ist er 
   mehr als sparsam. Selbst MagXDesk ist ohne Fenster-Dialoge und Kobold-
   Untersttzung nur genauso gro. Von den anderen alternativen Desktops 
   ganz zu schweigen (und jetzt sagt nicht, das wren alles nur die 
   Farbicons! (o:) Auerdem: Mit welchem anderen Programm knnt Ihr 
   weiterarbeiten, wenn es kopiert?


F: Immer nach einer bestimmen Zeit erscheint Freedom bei mir aus allen 
   Programmen nur noch modal, solange, bis ich den ACC-Eintrag anwhle. Es 
   hngt wohl mit Papyrus zusammen.

A: Offensichtlich wird hier von irgendeinem Programm ein form_dial gesetzt 
   und nicht mehr zurckgenommen. Dadurch nimmt der Freedom-Trapper 
   fehlerhafterweise an, es befnde sich noch ein Dialog auf dem Screen. 
   Als (unhandlichen) Workaround haben wir schon vor einiger Zeit 
   eingebaut, da bei Anwahl des ACC-Eintrages von Freedom das interne 
   form_dial Feld gelscht wird. In Freedom 1.14 gibt es zustzlich noch 
   die Mglichkeit, die form_dial Abfrage im Trapper ganz auszuschalten 
   (#NOFORMDIAL), mit dem Risiko, da Freedom bei bestimmten Programmen 
   als Fenster ber einem Dialog erscheint und Bildschirmmll produziert. 
   Zum Glck gibt es nur noch ganz wenige Programme, die ihre Dialoge 
   mittels form_dial/form_do auf den Screen packen und dann aus diesen 
   Dialogen auch noch einen Fileselector aufrufen (Mir fllt gerad' nur noch
   GemView ein). Beim Thema Dialoge sollte man als Programmierer wirklich 
   die Multitaskingfhigkeit hher werten als die lcherliche 
   Platzersparnis, die man durch den Verzicht auf Fensterdialogroutinen 
   erreicht (Zumal es letztere in Massen als Freeware gibt!)
   Zu Papyrus: Sollte Papyrus wirklich der beltter sein, so ist 
   sptestens ab Papyrus 4.0 ja Schlu damit, da die Entwicklung auf 
   eine vernnftige Dialoglib umgestellt wurde... (o:


F: rgs! Freedoms Radiobuttons sind ja jetzt unter monochrom achteckig!

A: Chrisker hat bei dem Versuch, AES-Font-unabhngige runde Radiobuttons 
   einzubauen, mehrere Stunden mit den VDI-Kreisen gekmpft. Man wird den 
   Verdacht nicht los, da die Programmierer des VDI nichts von 
   Algorithmen zum Kreisezeichnen wuten und stattdessen lieber auf die 
   Random() zurckgegriffen haben.. )o: Der eigentliche Erfolg von 
   Chriskers Mhen ist deshalb nur zu bewundern, wenn man Freedom unter 
   >=16 Farben und einem 3D-AES startet. Die Achtecke sind bei kleinerem 
   AES-Font jedoch nicht mehr von Kreisen bzw. Elipsen zu unterscheiden.


F: Warum bei CPXen der Systemfileselector?

A: Das ist erstmal eine Sicherheitsmanahme, theoretisch knnte
   Freedom auch hier funktionieren, mte dafr aber deutlich tiefer
   ins System einsteigen... Bis auf das NVDI3 Font-CPX gibt es ja auch 
   keinen Grund, sich diese Arbeit zu machen, zumal CPXe normalerweise 
   keinen Fileselector aufrufen, sowieso zu klein, unhandlich und 
   multitaskingfeindlich sind, auerdem XControl unsauber programmiert 
   ist, und... (Aber das wrde jetzt zu weit fhren.. ;-))


F: Warum kommt bei bestimmten Programmen ohne ersichtlichen Grund
   der Systemfileselector?

A: 1. Das Programm macht AES-Aufrufe vor dem appl_init bzw. macht gar kein
      appl_init (Fachbegriff: 'Schweineprogramm'..)
   2. Bestimmte Programme machen AES-Aufrufe auf unsaubere Weise. Es wird
      bei einigen Aufrufen nicht dasselbe global-Feld im AES-Parameter-Block
      bergeben, das appl_init initialisiert hat. Oft liegt das daran, da 
      die Programme mit einer GEM-Lib entwickelt sind, die fr einige 
      'neuere' AES-Funktionen (zB fsel_exinput) keine Bindings hat, so da 
      der Programmierer sich eigene Bindings machen mu. In denen 
      benutzt er dann ein anderes global-Feld als die Lib, oft sogar 
      gezwungenermaen, wenn nmlich gar keine Mglichkeit besteht, an 
      den GEMPARBLK der Lib zu kommen, weil die Lib in Pascal, Basic o.. 
      geschrieben ist. Die GEM-Lib von Pure Pascal benutzt sogar von sich 
      aus schon falsche global-Felder. Unter Pure C dagegen ist es sehr 
      einfach, fr eigene Bindings denselben GEMPARBLK wie die Lib zu 
      verwenden. 
      Unter MiNT macht das bergeben eines ungltigen global-Feldes sogar 
      den AES selbst Probleme: In diesem Fall mu nmlich immer erst die 
      MiNT-ID der Applikation in die Appl-ID gewandelt werden.


   Sobald Andreas den Zugriff auf bestimmte AES-interne Informationen von 
   MagiC3 dokumentiert, wird sich dieses Problem dann (zumindest unter 
   MagiC) erledigen.


F: Freedom kommt ohne ersichtlichen Grund als modaler Dialog?!

A: Freedom benutzt die MCTRL-Semaphore der AES zur Erkennung von 
   fliegenden Dialogen, da es in diesem Fall natrlich nicht als Fenster 
   kommen darf .. Einige wenige Programme klammern auch den Fileselector 
   mit MCTRL (zB Gemini), so da Freedom annehmen mu, der Fileselector 
   wurde aus einem fliegenden Dialog aufgerufen. Wenn dies bei einem 
   Programm nie der Fall ist, knnen Sie es in die Ausnahmeliste 
   (#IGNOREMCTRL) in der Konfigurationsdatei eintragen, Kandidaten dafr 
   sind zB GemView, Imploid und Gemini, NICHT jedoch zB CAT und Maxidat, 
   die beide den Fileselector auch aus fliegenden Dialogen aufrufen.
   Fr Programmierer nochmal die folgende Richtlinie:
   Ist der FSEL-Cookie installiert und die Versionsnummer >= 2.00, sollte 
   der fsel_[ex]input Aufruf NICHT mit MCTRL geklammert werden, ansonsten 
   IMMER! Mit UPDATE sollte sowieso IMMER geklammert werden!

F: Wenn ich Freedom verschiebe, verschwinden urpltzlich die Fenster der 
   aufrufenden Applikation, sind aber nach Schlieen von Freedom alle 
   wieder da?

A: Es handelt sich um ein prinzipielles Problem von Freedom. Da die 
   aufrufende Applikation auf den Fileselector wartet, ist niemand da, der 
   ihre Fenster ggf. neuzeichnen kann. Um Bildschirm-Mll zu vermeiden, 
   hat Freedom in allen vorherigen Versionen Fenster, fr die es eine 
   Redraw-Anforderung bekommt, mit dem "Freedom"-Logo gefllt. Das ist 
   vielfach auf Ablehnung gestoen, auerdem ist es wenig sinnvoll, die zu 
   diesem Zeitpunkt funktionslosen Fenster berhaupt auf dem Screen zu 
   behalten. Der Benutzer kam nur in die 'Versuchung', sie zu verschieben, 
   um in darunterliegenden Fenstern etwas zu machen, und viele Programme 
   kamen danach nicht mit den genderten Fensterpositionen klar. Das neue 
   Verfahren umgeht alle diese Probleme. Es mag auf den ersten Blick noch 
   ungewhnlicher sein als das alte, ist jedoch kompatibler und eleganter, 
   und mit deutlich weniger Aufwand seitens Freedom verbunden.

   Fr Programmierer: Das alte Verfahren hatte ein weiteres entscheidendes 
   Problem: Freedom hat zwar nach dem Verschieben von Fenstern der 
   Applikation ein WM_MOVED, gefolgt von einem WM_REDRAW nachgesendet. 
   Aber 1. werten viele Applikationen direkt nach der Fileselection erst 
   mal keine Nachrichten aus, und 2. kam manchmal ein weiteres, von den 
   AES verschicktes WM_REDRAW dazwischen, weshalb das WM_MOVED nicht mehr 
   als erste Nachricht bei der Applikation ankam und damit das Fenster an 
   einer falschen Position neugezeichnet wurde. Auch knnen bei etwas mehr 
   durch Freedom nachgereichte Nachrichten, welche bei Protokollen wie 
   XAcc zwangslufig anfallen, uU Nachrichten verlorengehen, was ab einer 
   bestimmten Obergrenze mit alle bekannten AES-Versionen passiert. Der 
   (mildeste) Effekt ist, da Applikations-Fenster, die sie whrend der 
   Fileselection verschoben haben, keine Redraw/Moved-Nachrichten 
   erhalten, obwohl diese (im SysMon nachvollziehbar!) abgeschickt wurden.
   Unter MagiC wre bei vielen Fenstern uU als Workaround statt dem 
   Versenden der vielen Redraws das Auslsen von SMC_TIDY_UP denkbar...


F: Wenn Kobold oder Parafin, von Freedom aufgerufen, ihr Fenster 
   schlieen, toppt sich unter MagiC scheinbar zuflliges Fenster?

A: Dieses fehlerhafte Toppen geht von MagiC aus! MagiC versucht zu 
   verhindern, da das Topwindow und die aktuelle Menzeile zu 
   unterschiedlichen Programmen gehren. Dazu lt es (zur Freude des 
   Users) beim Schlieen des letzten Fensters einer Applikation den 
   Fensterstapel auer acht. Normalerweise wrde dieser Effekt auch 
   jedesmal auftreten, wenn Freedom sein letztes Fenster schliet (und das 
   tut es sehr oft!) Zum Glck ist uns da ein Trick eingefallen: Wenn 
   MagiC vorhanden ist, lowert Freedom das entsprechende Fenster vor dem 
   Schlieen (Wenn man ganz genau hinguckt, sieht man das auch). Wenn das 
   letzte Fenster nmlich beim Schlieen nicht das oberste ist, verhlt 
   sich MagiC ganz 'normal'. Bleibt nur zu hoffen, da Andreas sich in 
   diesem Punkt doch noch ber den Willen seine Beta-Tester hinwegsetzt... 
   Schlielich kann man doch nicht von allen Programmierern verlangen, 
   diesen Trick einzusetzen...


F: bersteht Freedom eigentlich einen Auflsungswechsel?

A: Eigentlich ja. Wenn sie ganz sicher gehen wollen, schlieen Sie auf 
   jeden Fall alle Fileselectoren/Alerts von Freedom!!!


F: Warum kommt unter MiNT bei 'Load...' der Systemalert + Fileselector?

A: Dieser Alert/Fileselector wird vom AESSYS aufgerufen, und diesem Proze
   sollte man tunlichst NICHT den Faden abnehmen...


F: Warum kommt beim MagiC-Popup 'Programm starten...' der
   Systemfileselector, obwohl Selectric da funktioniert?

A: Fr diesen Fall hat MagiC eine separate Fileselectorschnittstelle, die 
   sich jedoch fr Freedoms Zwecke als nicht brauchbar herausgestellt 
   hat. Deshalb wird an dieser Stelle immer der Systemselector kommen! 
   (bzw Selectric, wenn Sie den vor FFSEL in den AUTO-Ordner packen)


F: Ab und zu strzt Gemini 1.a ab, wenn ich in Freedom Tasten drcke, 
   die Freedom nicht belegt hat!

A: Freedom gibt Tastendrcke an den AV-Server weiter, wenn er sie nicht 
   kennt. In Gemini 1.a scheint sich ein Fehler eingeschlichen zu haben, 
   der es beim Empfang von AV_SENDKEY abstrzen lt. Siehe auch die Option 
   #NOSENDKEY in Freedoms Konfigurationsdatei.


F: Es gab einen Systemdeadlock/Absturz, whrend ich Freedom testete...

A: Wir selbst haben Freedom jetzt schon einige Monate bei uns im Einsatz 
   und keine Schwierigkeiten festgestellt. Allerdings haben wir natrlich 
   nur mit den Programmen testen knnen, die wir selbst besitzen. Wenn Sie 
   also einen 'beltter' ausmachen knnen, der unbedingt noch in die
   Problemkind-Liste oben rein mu: Programmname, Version und Effekte an 
   uns schicken (email-Adressen am Ende dieses Textes).

   
F: Mu es sein, da Freedom unter SingleTOS einen ACC-Slot belegt?

A: Ja. Es gehrt zum Konzept von Freedom, da die eigentliche 
   Funktionalitt des Fileselectors/Alerts in einer parallel laufenden 
   Applikation realisiert ist und unter SingleTOS geht dies eben leider 
   nur ber Accessories. 

F: Kann es sein, da einige Einstellungen in der Konfigdatei von Freedom 
   erst beim 2. Aufruf Wirkung haben (#VASTART, #MENUBAR, #NOALERTS), wenn 
   Freedom im Nachlademodus betrieben wird?

A: Stimmt, das ist ein prinzipielles Problem, das sich nur durch das feste 
   Installieren von Freedom lsen lt.


F: Warum sind die drei Imagestze (FREDOMxx.IMG) so hlich?

A: Weil Chrisker sie entworfen hat.


F: Warum sind die Funktions-Icons unten links in Freedom so hlich?

A: Weil Kolja sie entworfen hat.


14. Fast vergessen
==================

Wir bernehmen keine Haftung oder Verantwortung fr direkte oder indirekte 
Schden jedweder Art, seien sie finanzieller, materieller oder sonstiger 
Art, die aus dem Gebrauch, Nichtgebrauch oder Mibrauch von Freedom ent- 
stehen.

Auerdem darf Freedom nicht ohne schriftliches Einverstndnis unsererseits 
in irgendwelche kommerziellen PD- und Shareware-Sammlungen aufgenommen 
werden.

Jetzt ist aber endgltig Schlu:


15. Hau to register:
====================

1. Mglichkeit:
----------------
DM 30,- (bar, V-Scheck) und ein frankierter und adressierter Rckumschlag 
in einen Brief und ab an:

  Kolja Koischwitz
  Sandhauser Strae 21
  13505 Berlin


2. Mglichkeit:
----------------
30,- berweisen/einzahlen auf das folgende Konto:

Kolja Koischwitz, Konto-Nr. 705 92-100, beim PGiroamt Berlin, BLZ 10010010.

mit einem _eindeutigen_ Vermerk, wer der berweiser ist!!
Parallel sollten Sie mit uns ber Email/Sackpost Kontakt aufnehmen.
Zur Errechnung eines Schlssels brauchen wir _auf jeden Fall_ folgende 
Daten von Ihnen:

Name:    ........................
Strae:  ........................
PLZ/Ort: ........................


In beiden Fllen erhalten Sie schnellstmglich einen Schlssel, mit dem 
Sie das Registrierungsprogramm dazu bringen knnen, ihnen eine 
persnliche, uneingeschrnkte Programmdatei FREEDOM.APP auszupacken!


Falls Sie eine Email-Adresse haben, bevorzugt per Email, ansonsten mu 
ein frankierter Rckumschlag in ihrem Brief beiliegen.

Ganz nebenbei: Wenn sie unbedingt die neueste Version auf Diskette 
zugeschickt haben wollen, dann sollten sie auch eine solche beilegen und 
vor allem Rckumschlag/Rckporto nicht vergessen!! Besonders nett wre, 
wenn sie fr den zustzlichen Aufwand unsererseits vielleicht ihren 
Sharewarebeitrag von sich aus etwas erhhen. (o: Da wir drei nur je einen 
Anteil an den 30,- erhalten, registrieren wir ansonsten nmlich manchmal 
zum Nulltarif oder mssen sogar noch draufzahlen!


Nachfragen knnen per Email gerichtet werden an:

Kolja:     joust@cs.tu-berlin.de

Chrisker:  chrisker@cs.tu-berlin.de


Das wars, Kolja & Chrisker
