home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Crawly Crypt Collection 1
/
crawlyvol1.bin
/
utility
/
multitsk
/
bkite143
/
boxkite.doc
< prev
next >
Wrap
Text File
|
1994-06-05
|
74KB
|
1,388 lines
BoxKite V 1.43
==============
---- Just another file selector ----
1. Was ist und was soll BoxKite?
--------------------------------
BoxKite ist eine kleine, handliche, saubere, kompatible
Dateiauswahlbox. Er hängt sich ins TOS ein und wartet darauf, daß ein
Anwendungsprogramm die GEM-eigene Dateiauswahlbox anzeigen möchte.
Dann schiebt er sich dazwischen und zeigt stattdessen seine eigene Box
an. Diese bietet einige Möglichkeiten, die weit über die in den ROMs
enthaltene Box himausgehen und hält sich dabei an gewisse Standards,
die sich im Laufe der Zeit herauskristallisiert haben. So ist es etwa
möglich, mehrere Dateien auf einmal zu selektieren; Sie können Dateien
aus BoxKite heraus kopieren oder löschen und Sie können BoxKite (fast)
vollständig mit der Tastatur bedienen. Darüber hinaus können Sie
BoxKite in vielerlei Hinsicht an Ihre Vorlieben anpassen - sogar in
der Größe. BoxKite dürfte der erste Fileselector mit dieser
Eigenschaft sein.
Vor allen Dingen aber ist BoxKite zukunftssicher: Er kann unter
MiNT/MultiTOS mit langen Dateinamen mit gemischter Groß- und
Kleinschreibung umgehen. Das erscheint zwar noch nicht wichtig, ich
bin aber davon überzeugt, daß sich irgendwann vernünftige Dateisysteme
durchsetzen werden.
Ein paar Worte zur Entstehung
-----------------------------
Mein Texteditor SCEdit enthielt eigentlich schon immer einen eigenen
Fileselector. Ich bin also vorbelastet. Für eine neue SCEdit-Version
entstand eine erweiterte Dialogbibliothek (Für Kenner: Es handelt sich
um eine quasi objektorientiertes System unter Pure C. So ist etwa die
Dateiliste in BoxKite EIN Objekt.), die auch eine Dateiauswahl als
vordefinierten Dialog enthalten sollte. Sine qua non war dabei die
MiNT-Anbindung und der korrekte Umgang mit langen Dateinamen. Etwa um
diese Zeit fiel mir Stefan Radermachers Selectric™ in die Hände, der
etliche hervorragende Ideen enthält, aber eben MiNT und die
erweiterten Dateisysteme leider (noch?) nicht unterstützt. Da habe ich
dann gemerkt, daß es noch keinen wirklich komfortablen Fileselector
gibt, der dies leistet. So nahm das Schicksal seinen Lauf...
Meine persönlichen Daten:
Harald Becker
Ferrenbergstraße 41
51465 Bergisch Gladbach
Konto 1311 045 876, Kreissparkasse Köln
(Bankleitzahl 370 502 99)
Email: Harald Becker @ K (Mausnetz)
2. Juristisches
---------------
BoxKite ist SHAREWARE. Sie haben die Möglichkeit, das Programm vier
Wochen lang zu testen. Bei regelmäßiger Benutzung über diesen Zeitraum
hinaus haben Sie eine Sharewaregebühr von 20,-- DM an mich zu
entrichten (Bankverbindung siehe oben oder unter dem Menupunkt "Über
BoxKite"). Geben Sie bei Überweisungen bitte unbedingt den Zweck und
Ihre Adresse mit an, da ich das Geld sonst nicht zuordnen kann. Es ist
auch sinnvoll, wenn Sie mir mitteilen, welche Version von BoxKite
Ihnen da in die Hände gefallen ist.
Nach schlechten Erfahrungen mit vorangegengenen Shareware-Projekten
sah ich mich leider dazu gezwungen, die öffentliche Version von
BoxKite leicht einzuschränken. Die Funktionen "Arbeit sichern" und
"Touch" sind erst in der Vollversion verfügbar. Das bedeutet
insbesondere, daß Sie erst in der Vollversion eine Konfiguration
abspeichern und damit BoxKite dauerhaft Ihrem Geschmack anpassen
können. Nach Zahlung der Shareware-Gebühr erhalten Sie von mir
schnellstmöglich einen Schlüssel, mit dem Sie die öffentliche Version
in eine mit Ihrem Namen personalisierte Vollversion verwandeln können.
Beachten Sie aber bitte, daß Sie eine personalisierte Version nicht
weitergeben dürfen. Andernfalls verstoßen Sie gegen geltendes Recht.
Die öffentliche Version von BoxKite dagegen dürfen (und sollen) Sie
nach Belieben weitergeben. Voraussetzung ist dabei, daß Sie die
Zusammenstellung der Dateien im Ordner nicht verändern. Ferner dürfen
Sie die Programm- und Dokumentationsdateien nicht modifizieren und
vor allen Dingen keinen Copyrightvermerk entfernen oder verändern.
Ausnahme: Sie dürfen das vollständige Paket mit einem Archivprogramm
(ARC, ZIP o. ä.) komprimieren.
Bedenken Sie bitte, daß auch in einem 'kleinen' Programm wie BoxKite
eine Menge an Entwicklungsarbeit steckt. Ich habe allein einige Monate
darauf verwendet, das Programm so 'klein' (d. h. speichersparend) wie
möglich zu gestalten.
Zuletzt muß noch dies gesagt werden:
Ich, Harald Becker, kann keine Haftung für irgendwelche direkten oder
indirekten Schäden - einschliesslich, aber nicht beschränkt auf
materielle oder finanzielle - übernehmen, die durch die Benutzung von
BoxKite oder die Untauglichkeit von BoxKite für einen bestimmten Zweck
entstehen.
Vorgehen zur Registrierung
--------------------------
Vor der Registrierung ziehen Sie am besten eine Sicherheitskopie der
öffentlichen Version von BoxKite, da Sie - wie gesagt - eine
personalisierte Version nicht mehr weitergeben dürfen. Wenn Sie dann
in der öffentlichen Version im Menu "Funktionen" den Eintrag "Über
BoxKite" auswählen, finden Sie dort einen Knopf "Registrieren". Ein
Klick auf diesen Knopf führt Sie weiter in eine Dialogbox mit zwei
Textfeldern, in die Sie dann Ihren Namen und den Schlüssel eingeben
sollten. Wenn Sie BOXKITE.PRG unter diesem Namen im AUTO-Ordner Ihres
Bootlaufwerks installiert haben, geschieht alles weitere automatisch.
Andernfalls fragt BoxKite Sie, wo sich BOXKITE.PRG befindet. Wechseln
Sie dann einfach in BoxKite in das entsprechende Verzeichnis und
selektieren Sie die entsprechende Datei. Dann wird diese Datei in Ihre
persönliche Vollversion von BoxKite verwandelt. Den Schlüssel sollten
Sie sich notieren, da sie damit auch eventuelle Updates von BoxKite
personalisieren können, ohne sich erneut mit mir in Verbindung zu
setzen.
3. Installation
---------------
Zum BoxKite-Paket gehören 3 Programme:
- BOXKITE.PRG: Das eigentliche residente Programm.
- BOXKITE.ACC: Ein kleines Accessory, das es gestattet, BoxKite an-
und abzuschalten oder ihn mal eben auf den Bildschirm zu bringen, um
eine Datei zu kopieren oder zu suchen oder... Sie können dieses
Programm auch in BOXKITE.APP umbenennen und dann einfach durch
Doppelklick vom Desktop aus starten. (Es ist auch möglich, daß sich
diese Datei als schon als BOXKITE.APP in der Distribution befindet.)
- BOXKITE.CPX: Ein Modul fürs neue Kontrollfeld XCONTROL,
funktionsgleich mit BOXKITE.ACC.
- BEISPIEL.C: Ein Beispielprogramm im Quelltext, das den Abruf
mehrerer Dateinamen über 'get_first' und 'get_next' demonstriert. An
MultiTOS und lange Dateinamen angepaßt.
Da die TOS-Landschaft inzwischen etwas komplizierter geworden ist,
gibt es zur Installation verschiedene Möglichkeiten, die je nach
TOS-Version und sonstiger Software-Ausstattung mehr oder weniger
empfehlenswert sind:
1. Einfaches TOS: Hier empfiehlt es sich, BOXKITE.PRG in den
AUTO-Ordner zu kopieren und den Rechner neu zu starten. Dann ist
BoxKite ins Betriebssystem integriert und steht jederzeit zur
Verfügung.
Hinweis: Wenn man bei TT- oder Mega-STE-TOS im Desktop eine neue
.INF-Datei liest, erscheint immer die gewöhnliche TOS-Auswahlbox. Das
ist ein Problem von TOS; es liegt daran, daß bei diesen (wie auch bei
allen älteren) Versionen der Desktop keine GEM-Anwendung, sondern ein
integraler Teil von GEM ist. MultiTOS ist da intelligenter...
2. Einfaches TOS mit MiNT 0.95 oder höher (ältere MiNT-Versionen
sollte sowieso niemand mehr benutzen): Beim Booten wird die
Steuerdatei MINT.CNF abgearbeitet, die auch Befehle zum Starten von
Programmen enthalten kann. Diese Programme kommen nach der
Initialisierung von MiNT zum Zuge, und zwar in der Reihenfolge, in der
sie in MINT.CNF aufgeführt sind. Dabei können sie in ganz beliebigen
Ordnern stehen. In dieser Situation erhält BoxKite die Gelegenheit,
sich auf MiNT einzustellen. Fazit: Unter MiNT sollten Sie in Ihre
MINT.CNF die Zeile
exec C:\BOXKITE.PRG
einfügen und den Rechner neu starten. Wenn BOXKITE.PRG in einem Ordner
steht, sollten Sie natürich den entsprechenden vollständigen Pfad
benutzen.
3. MultiTOS: Da MultiTOS auf MiNT aufgebaut ist, sollten Sie BoxKite
auch hier über die MINT.CNF-Datei installieren. Zusätzlich ist es hier
erforderlich, entweder das Accessory BOXKINST.ACC oder die
Kontrollfelderweiterung BOXKINST.CPX zu mitzubooten. Sie sorgen für
die saubere Installation von BoxKite im Betriebssystem. Dies gilt
zumindest in den MultiTOS-Versionen, die ich bisher kenne. Es ist
immer möglich, daß Atari da plötzlich etwas ändert. Dann werde ich
BoxKite schnellstmöglich anpassen.
4. MagX (oder wie auch immer sich das schreibt): Hier gilt dasselbe
wie unter normalem TOS.
Sie können BOXKITE.PRG auch in jedem Falle vom Desktop aus starten.
Dann wird BoxKite ebenfalls resident installiert. Für einen kleinen
Test ist diese Methode ausreichend, sie hat aber zwei Nachteile: Zum
einen kann sie zu einem ineffizienten Verhalten der Speicherverwaltung
führen (Fragmentierung), und zum anderen wird dann GEM bei einem
Auflösungswechsel gnadenlos abstürzen. Das ist ein Problem von TOS,
für das es wahrscheinlich keine saubere Lösung gibt.
Unverträglichkeiten von BoxKite mit anderen residenten Programmen sind
nicht bekannt. Damit er sich aber nicht mit anderen residenten
Fileselektoren ins Gehege kommt, prüft er beim Start, ob im Cookie-Jar
von TOS bereits ein Cookie namens 'FSEL' existiert. Wenn dies der Fall
ist, installiert sich BoxKite nicht im System.
*** ACHTUNG ***
Wenn Sie von BoxKite 1.2x nach BoxKite 1.40 wechseln, sollten Sie vor
dem ersten Systemstart mit dem neuen BoxKite Ihre bisherige
BOXKITE.INF (im Wurzelverzeichnis Ihres Bootlaufwerkes) löschen oder
umbenennen. Mit "Arbeit sichern" können Sie als registrierter Benutzer
jederzeit eine neue Konfiguration speichern.
4. Bedienung
------------
Gewisse Ähnlichkeiten mit der Standard-GEM-Box oder anderen
Ersatzprodukten kann BoxKite nicht verleugnen: So gibt es auch hier
eine Dateiliste, ein Eingabefeld für den aktuellen Ordner, eines für
den Dateinamen und die Knöpfe "Ok" und "Abbruch", daneben aber auch
einiges mehr.
Zunächst einige allgemeine Bemerkungen:
1. Eine grafische Benutzerschnittstelle läßt sich eigentlich gar nicht
beschreiben; man muß damit herumspielen. Am besten drucken Sie also
diesen Text aus, legen ihn neben Ihren Rechner und bringen BoxKite
irgendwie auf den Bildschirm, im Zweifel mit BOXKINST.ACC oder
BOXKINST.CPX. Wenn Sie dann beim Durchlesen auf eine interessante
Möglichkeit stoßen, probieren Sie es sofort aus. So gewinnen Sie den
besten Überblick über die (nicht gerade wenigen) Möglichkeiten von
BoxKite.
2. Mit BoxKite können Sie mehrere Dateien auf einmal auswählen, sofern
das aufrufende Programm dies zuläßt. Hierzu wird dasselbe Protokoll
wie in Selectric™ 1.02 verwendet. Alle Programme, die Selectric™ in
diesem Sinne unterstützen, unterstützen damit auch BoxKite. Dies
können Sie z. B. mit GemView oder 1stGuide testen. (Ich liebe
BiKapitalisierungen!) Manche Programme verkraften nur eine bestimmte
Anzahl von Dateien und teilen dies BoxKite mit; sollten Sie in einem
solchen Fall mehr Dateien ausgewählt haben, so warnt BoxKite Sie mit
einem Piepton (es sei denn, Sie haben im Kontrollfeld den Lautsprecher
abgewürgt) und übergibt dem Programm nur die obersten Dateien.
3. Wie schon erwähnt ist BoxKite (fast) komplett mit der Tastatur
bedienbar und signalisiert dies (wiederum fast) überall durch die
Bildschirmdarstellung. Wenn etwa ein Knopf in seiner Beschriftung
einen unterstrichenen Buchstaben aufweist, so können Sie ihn (den
Knopf) auch "anklicken", indem Sie die Buchstabentaste zusammen mit
"Alternate" drücken.
Um wirklich restlos alle Dialogobjekte mit der Tastatur bedienbar zu
machen, wird in BoxKite das Konzept des Tastaturfokus angewendet.
Dahinter steckt folgendes: Stellen Sie sich eine ganz normale
GEM-Dialogbox mit mehreren Texteingabefeldern vor. Wenn Sie dann ein
Zeichen eingeben, dann landet dieses Zeichen in dem Eingabefeld, in
dem gerade der Eingabecursor (der dünne Strich) steht. Man kann also
sagen, daß dieses Objekt gerade mit der Tastatur "verdrahtet" ist,
oder, vornehm ausgedrückt: Der Tastaturfokus steht gerade auf diesem
Objekt.
Diese Methode wird in BoxKite etwas verallgemeinert. Da z. B. die
Dateiliste in BoxKite keinen Cursor kennt und da etwa das Pfadfeld in
BoxKite breiter werden kann als der am Bildschirm sichtbare
Ausschnitt, wird dasjenige Objekt, das gerade im obigen Sinne an die
Tastatur angeschlossen ist, mit einem doppelten Rahmen kenntlich
gemacht. Dieser Rahmen stellt den Tastaturfokus dar.
Den Tastaturfokus (d. h. den doppelten Rand) versetzen Sie mit der
"Tab"-Taste zum nächsten, mit "Shift-Tab" zum vorherigen Objekt.
4. Einige Knöpfe in BoxKite enthalten Pop-Up-Menus (PopUps, BeamUps,
JazzUps, SonstWasUps), die eine Reihe von Unterpunkten zur Auswahl
anbieten. Diese Menus können Sie genauso bedienen wie die Drop-Down
Menus in (fast) jedem GEM-Programm, indem Sie mit losgelassener
Maustaste darüberfahren und einen Punkt anklicken. Sie können aber
auch die Maustaste festhalten und darüberfahren; wenn Sie dann die
Maustaste über einem Punkt loslassen, wird dieser angewählt. Ebenso
können Sie die Maus ganz in weglassen und mit den Tasten "Pfeil auf"
und "Pfeil ab" einen Punkt markieren und diesen mit "Return"
auswählen. Mit "Esc" bringen Sie das Menu wieder zum Verschwinden,
ohne etwas auszuwählen, ebenso wie mit einem Klick bzw. dem Loslassen
der Maustaste außerhalb des Menus. Mit dem Druck auf eine Buchstaben-
oder Zifferntaste können Sie den jeweils nächsten Punkt direkt
anspringen, der mit diesem Buchstaben bzw. dieser Ziffer beginnt. Dies
klappt leider nicht mit den Umlauten. Um also den Menupunkt "Über
BoxKite" direkt anzufahren, müssen Sie ein 'b' drücken.
5. BoxKite stellt auch die wichtigsten Dateioperationen wie Kopieren,
Löschen, etc. zur Verfügung. Diese Operationen arbeiten rekursiv, d.
h. wenn ein Ordner betroffen ist, werden auch alle darin enthaltenen
Dateien und weiteren Ordner bearbeitet. Wenn man also etwa einen
Ordner kopiert oder löscht, wird - genau wie im Desktop - sein
vollständiger Inhalt mitkopiert oder -gelöscht. Solche Operationen
können schon mal etwas dauern. Wenn Ihnen das zu langweilig wird (oder
wenn Sie feststellen, daß Sie einen Fehler gemacht haben) können Sie
jede derartige Operation mit den Tasten "Esc" oder "Undo" abbrechen.
6. In BoxKite können Sie, genau wie in der Standardbox, die Anzeige
auf Dateien beschränken, die auf ein bestimmtes Suchmuster passen.
Namen, die Sie momentan nicht interessieren, brauchen Sie also noch
nicht einmal anzusehen. Die Art, wie diese Suchmuster eingegeben
werden, unterscheidet sich allerdings etwas von den bekannten
TOS-Wildcards, die etwa in der Standardbox verwendet werden. Sie
orientiert sich an dem von UNIX her bekannten Standard, auch
'globbing' genannt, der sich auch in der ATARI-Welt so peu a peu
durchsetzt und wesentlich flexibler ist. Es sind folgende Jokerzeichen
möglich:
- '?': Steht für ein beliebiges unbekanntes Zeichen (das ist
noch genau so wie in TOS). Beispiel: 'MEMO?.TXT' paßt auf
'MEMO1.TXT' oder 'MEMO2.TXT', aber nicht auf 'MEMOREX.TXT'.
- '*': Steht für eine beliebige viele (auch 0) Zeichen. Dies
ist etwas allgemeiner als in TOS. Beispiel: '*TEST*.TXT'
paßt auf 'TEST.TXT' (hier sind beide '*' durch je 0 Zeichen
ersetzt), 'BETATEST.TXT', 'TESTER.TXT', oder 'DIETESTS.TXT'.
Dieses Beispiel würde in der Standardbox schon nicht mehr
funktionieren. Achtung: Streng nach dieser Regel wäre '*'
und nicht etwa '*.*' die Maske, die auf alle Dateinamen
paßt. Um aber alte Gewohnheiten nicht übermäßig zu stören,
übersetzt BoxKite die Maske '*.*' (die eigentlich bedeutet:
Alle Namen, die mindestens einen Punkt enthalten) schon bei
der Eingabe in '*'.
- '[...]': Eine Zeichenklasse in eckigen Klammern paßt auf
ein Zeichen aus dieser Klasse. An dieser Stelle muß TOS
passen. Beispiele: 'PROG.[CHO]' paßt auf 'PROG.C', 'PROG.H'
oder 'PROG.O'. 'MEMO[1-9].DOC' paßt auf 'MEMO1.DOC',
'MEMO2.DOC', usw. bis 'MEMO9.DOC'. Wenn das erste Zeichen
hinter '[' ein '^' ist, wird die Bedeutung der Zeichenklasse
umgedreht: 'TEST.[^A-Z]' paßt auf alle Dateien der Form
'TEST.?', wobei an der Stelle des Fragezeichens irgendein
Zeichen steht, das kein Großbuchstabe ist.
Schließlich lassen sich auch mehrere Masken durch ein Komma
',' zusammenfügen. In diesem Falle werden alle Namen
gefunden, die auf irgendeine der Masken passen. Beispiel:
'TEST.C,TEST.H' paßt auf 'TEST.C' oder 'TEST.H'.
Einige konkrete Beispiele:
- '*.APP,*.TOS,*.PRG,*.TTP,*.GTP' paßt auf alle Programme.
- '*.AC?' paßt auf alle aktiven und inaktiven Accessories.
- '*.AC[CX]' beschreibt dasselbe, nur etwas genauer.
- '*READ*ME*' paßt auf alle Namen wie 'README', 'READ.ME' etc.
- '*DESK*.IN[FX]' paßt auf aktive und inaktive 'DESKTOP.INF'-Dateien,
auch für den neuen Desktop.
Nun zu den Bedienungselementen von BoxKite im Einzelnen:
Die Titelzeile
--------------
Sie bietet Platz für einen Infotext, den das aufrufende
Anwendungsprogramm festlegt. Bei Programmen, die noch nichts von den
neueren GEM-Versionen wissen, werden Namen und Versionsnummer von
BoxKite angezeigt. Darüber hinaus kann BoxKite mit Hilfe der
Titelzeile sogar fliegen (was man bei dem Namen auch erwarten sollte):
Wenn Sie in die Kopfzeile klicken und die Maustaste festhalten, wird
BoxKite durchsichtig. Den verbliebenen "Geisterrahmen" können Sie dann
verschieben; wenn Sie die Maustaste wieder loslassen, erscheint
BoxKite an der neuen Position. Voraussetzung für diese Flugfähigkeit
ist, daß BoxKite genug freien Speicher vorfindet, um den kompletten
Bildschirmhintergrund zu retten. Ist dies nicht möglich, so fliegt er
nicht. Auch alle weiteren Dialogboxen, die BoxKite anzeigt, sind
mittels ihrer Kopfzeile flugfähig.
P. S.: BoxKite fliegt nicht "massiv", wie man es etwa von den Dialogen
in "Gemini" kennt. Das ist zwar ein hübsches Feature, kann aber -
gerade bei kleineren Bildschirmen - verdeckte Informationen auch nicht
immer freilegen. Der Nutzen scheint mir also eher zweifelhaft.
Die Dateiliste
--------------
Die Dateiliste sieht (etwa) aus wie ein Fenster im Desktop und nimmt
den größten Teil der Box ein. Sie zeigt einen Teil der Dateien im
aktuellen Ordner, die auf die aktuelle Auswahlmaske passen, an. Der
angezeigte Ausschnitt läßt sich mit Hilfe des Sliders am rechten Rand
verstellen. Die Liste enthält zusätzlich zu den Dateinamen auch die
Größe sowie das Datum und die Uhrzeit der Erstellung, sofern die
Breite der Box ausreicht. Ordner werden mit demselben Zeichen wie in
Desktop-Fenstern markiert. Wenn vor dem Namen eines Objektes ein
Gleichheitszeichen erscheint, dann handelt es sich bei diesem Objekt
um einen symbolischen Link (kommt nur unter MiNT vor). Symbolische
Links, die auf Objekte verweisen, die gar nicht existieren, werden
nicht angezeigt.
Zur Mausbedienung: Die Handhabung des Sliders sollte Ihnen von den
Desktop-Fenstern her vertraut sein. In der Liste sind die gerade
ausgewählten Dateien (das können auch mehrere sein, s. o.) schwarz
hinterlegt. Die Anzahl der gerade selektierten Dateien können Sie
oberhalb der Liste ablesen. Durch einfaches Anklicken selektieren sie
eine Datei, alle anderen werden deselektiert. Ordner werden beim
Anklicken geöffnet, das können Sie aber auch auf einen Doppelklick
umstellen. Halten Sie beim Anklicken die Shift-Taste fest, so wird
nichts deselektiert; Sie selektieren diese Datei zusätzlich zu den
anderen. Halten Sie nach dem Klick die Maustaste fest und bewegen die
Maus, so werden alle überstrichenen Dateien selektiert. Am oberen oder
unteren Rand wird die Liste gescrollt. Wenn sie eine Datei durch
Anklicken selektieren und beim nächsten Klick die 'Control'-Taste
festhalten, werden alle Dateien dazwischen mit selektiert. Zwischen
den Klicks kann die Liste beliebig gescrollt werden. Damit können Sie
mit nur zwei Klicks beliebig große zusammenhängende Bereiche
selektieren. Mit einem Doppelklick auf eine Datei selektieren Sie
diese und verlassen BoxKite sofort ohne den Umweg über "Ok" oder die
"Return"-Taste.
Sie können BoxKite auch so einstellen, daß er anstelle eines
Doppelklicks auch einen einfachen Klick auf die rechte Maustaste
akzeptiert.
Zur Tastaturbedienung: In der Liste ist immer ein Dateiname eingerahmt
(es sei denn, sie ist leer). Dieser Rahmen ist der Auswahlcursor; er
dient dazu, Dateien mit der Tastatur zu selektieren. Wenn die Liste
den Tastaturfokus hat, können Sie den Auswahlcursor mit den Tasten
'Pfeil Auf' und 'Pfeil Ab' um eine Zeile auf und ab bewegen, zusammen
mit 'Shift' um eine Seite, d. h. um soviele Dateien, wie die Liste
gerade anzeigt, und mit 'Home' und 'Shift-Home' können Sie zum
Listenanfang bzw. -Ende springen. Bei diesen Bewegungen wird die Datei
unter dem Cursor automatisch selektiert. Mit 'Control-Auf' und
'Control-Ab' bewegen Sie den Rahmencursor, ohne die aktuelle Selektion
zu beeinflussen. Ein Druck auf die Leertaste selektiert die Datei
unter dem Rahmencursor und deselektiert alle anderen; mit 'Shift-Leer'
wird die Datei selektiert, ohne die anderen zu beeinflussen, und mit
'Control-Leer' können Sie Bereiche selektieren. Bei 'Shift-Leer' wird
zudem der Rahmencursor einen Eintrag weiter nach unten gesetzt, so daß
Sie schnell und bequem einen zusammenhängenden Bereich selektieren
können.
Die Tasten "Help" und "Undo" haben eine Sonderfunktion: Wenn der
Auswahlcursor auf einem Ordnernamen steht, können Sie diesen Ordner
mit "Help" öffnen, ohne daß er selektiert zu sein braucht. (Wenn er
selektiert ist, genügt "Return" - "Help" ist in diesem Falle also eine
Abkürzung für die Sequenz "Leertaste" + "Return".) Wenn der
Auswahlcursor nur auf einer Datei steht, wird diese selektiert. Mit
"Undo" oder einem Klick auf das Schließfeld (direkt über der Liste am
linken Rand, s. u.) schließen Sie den aktuellen Ordner; der Inhalt des
übergeordneten Verzeichnisses wird angezeigt. Für Selectric™-Freunde:
"Control-Backspace" tuts auch. Seit Version 1.12 können Sie BoxKite
auch so konfigurieren, daß "Undo" wie "Abbruch" wirkt.
Der Kopf der Dateiliste
-----------------------
Die Kopfzeile der Dateiliste zeigt ständig die Anzahl der selektierten
Dateien und Ordner an (es kann ja durchaus passieren, daß nicht alle
gleichzeitig sichtbar sind). Links von dieser Information befindet
sich ein Schließfeld, genau wie in einem GEM-Fenster oder in der
Standardbox. Ein Klick darauf schließt den aktuellen Ordner (wie die
Taste "Undo", s. o.). Auf der rechten Seite befinden sich drei
Funktionsknöpfe, die mit je einem Zeichen markiert sind. Die
zugehörigen Funktionen lassen sich auch mit "Alternate" und der
Zifferntaste, die das entsprechende Sonderzeichen trägt, aufrufen.
- '?' (Alternate-ß): Dieser Knopf liefert Informationen, abhängig von
der jeweiligen Selektion. Wenn ein oder mehrere Objekte selektiert
sind, werden die Dateien und Ordner gezählt und der
Gesamtspeicherbedarf berechnet. Dabei werden auch die in den Ordnern
enthaltenen Dateien und weiteren Ordner berücksichtigt. Wenn Ihnen
diese (Volks-)Zählung zu lange dauert, können Sie sie mit "Esc" oder
"Undo" abbrechen. Wenn nichts selektiert ist, werden die Kapazität und
der freie Platz des aktuellen Laufwerks angezeigt. Diese Angaben
erfolgen in KByte, das KByte zu 1024 (nicht 1000!) Bytes gerechnet. Da
das Betriebssystem den Speicherplatz auf Disketten bzw. Festplatten
meist in Häppchen von genau dieser Größe verteilt, erlaubt diese
Angabe eine praktische Abschätzung des freien Platzes.
- '/' (Alternate-7): Mit diesem Knopf selektieren Sie alle Einträge
der aktuellen Liste auf einen Schlag. Wenn bereits alle selektiert
sind, werden sie wieder deselektiert. Wenn Sie dieses Feld mit einem
Doppelklick anwählen oder gleichzeitig eine der "Shift"-Tasten
festhalten, wird immer alles deselektiert.
Das Namensfeld (oberhalb der Dateiliste)
----------------------------------------
In diesem Feld können Sie einen Dateinamen eintragen, etwa um das
aufrufende Programm zu veranlassen, eine neue Datei zu erzeugen. Dabei
gibt es auch einige Spezialitäten: Während Sie in dieses Feld Zeichen
eintippen, wird sein Inhalt ständig mit der Dateiliste verglichen.
Wenn Ihre Eingabe sich mit dem Anfang eines Namens in der Liste deckt,
wird die entsprechende Datei selektiert. (Manche Leute nennen sowas
einen 'Autolocator'.) Wenn Sie auf diese Art die richtige Datei
gefunden haben, können Sie den Namen mit "Return" an die Applikation
übergeben (oder, falls es ein Ordner ist, diesen öffnen). Falls kein
passender Name existiert, wird die Selektion gelöscht. Das ist
praktisch, wenn Sie eine neue Datei erzeugen wollen. Alles dies
funktioniert auch dann, wenn der Tastaturfokus auf der Dateiliste
steht.
Das Pfadfeld (über dem Namensfeld)
----------------------------------
Dieses Feld enthält den vollständigen Namen des aktuellen Ordners (d.
h. die Namen aller Ordner, in denen er liegt) und die aktuelle
Suchmaske. In BoxKite kann eine solche Pfadangabe bis zu 128 Zeichen
umfassen. Wenn sie zu lang für die Darstellung ist, erscheinen am
linken und/oder rechten Rand des Feldes Pfeile, mit denen Sie den
sichtbaren Ausschnitt verschieben können.
Einige Möglichkeiten, den aktuellen Pfad zu ändern, haben Sie schon
kennengelernt: Wenn Sie einen Ordner in der Dateiliste öffnen oder den
aktuellen Ordner schließen, ändert sich die Pfadangabe im Pfadfeld
entsprechend. Sie können auch den Fokus auf dieses Feld setzen und den
Pfad von Hand ändern oder einen neuen eingeben. Das ist aber wohl die
umständlichste Möglichkeit, es sei denn, Sie machen nur kleine
Änderungen.
Hinter dem kleinen Abwärtspfeil am rechten Rand des Pfadfeldes
verbirgt sich eine weitere praktische Möglichkeit: Hier sitzt
sozusagen das Gedächtnis von BoxKite. Wenn Sie diesen Abwärtspfeil
anklicken oder mit dem Fokus auf dem Pfadfeld die Taste 'Pfeil ab'
drücken, öffnet sich ein Pop-Up-Menu, das aus drei Abteilungen
besteht. (Dieses Menu können Sie auch mit "Alternate-X" öffnen, ohne
den Fokus zu versetzen.) Die zweite dieser Abteilungen stellt bis zu 8
vollständige Pfade zur Auswahl, die dritte bis zu 8 Suchmasken. Wenn
Sie in der obersten Abteilung den Eintrag "Pfad" anklicken oder
irgendwo in BoxKite "Alternate-P" drücken, wird der aktuelle Pfad oben
an das Menu angehängt. Wenn das Menu bereits 8 Pfade enthält, wird der
unterste Eintrag gelöscht. Der Menupunkt "Maske" (Alternate-M)
bewirkt, daß die aktuelle Auswahlmaske nach denselben Regeln an die
dritte Abteilung angehängt wird.
Mit Hilfe des Selectric-Protokolls kann ein Anwendungsprogramm BoxKite
eigene Pfad- bzw. Typenlisten unterschieben. Dann werden diese
Menupunkte gesperrt. Das ist leider unvermeidlich, da BoxKite
andernfalls u. U. das Anwendungsprogramm zerstört.
Wenn Sie einen der Pfade auswählen, wird dieser ins Pfadfeld
übernommen, eingelesen und in der Dateiliste dargestellt. Gleichzeitig
wird er im Menu an den Anfang gesetzt, so daß er vom Löschen wieder so
weit wie möglich entfernt ist. So verbleiben die meistgenutzten Pfade
am längsten im Menu. Halten Sie bei der Auswahl die 'Shift'-Taste
gedrückt, dann ersetzt die Suchmaske am Ende dieses Pfades die
aktuelle Auswahlmaske im Pfadfeld.
Wenn Sie eine der Masken auswählen, ersetzt diese die aktuelle
Auswahlmaske und wird an den Anfang des Menus verschoben. Halten Sie
aber dabei die 'Shift'-Taste fest, so wird die ausgewählte Maske, mit
einem Komma getrennt, an die aktuelle Maske angehängt. Sie wissen doch
noch, welche Bedeutung ein Komma in einer Maske hat?
Auch dann, wenn Sie eine oder mehrere Dateien auswählen und die Box
mit "Ok" (s. u.) verlassen, wird der aktuelle Pfad an den Anfang der
zweiten Gruppe des Menus gesetzt. Damit enthält sie eine stets auf den
neuesten Stand gebrachte Liste der 8 meistbenutzten Pfade. Wenn Sie
die aktuelle Konfiguration sichern ("Arbeit sichern", s. o.), wird der
Inhalt dieses Menus mitgesichert, so daß Sie sich einen
Ausgangszustand herstellen können, der von Anfang an ein bequemes
Arbeiten erlaubt.
Der Knopf "Ok"
--------------
Wenn der Tastaturfokus (der doppelte Rand) auf der Dateiliste steht,
können Sie mit "Ok" BoxKite schließen, und dem aufrufenden Programm
Ihre Auswahl mitzuteilen. Wenn in der Dateiliste eine oder mehrere
Dateien selektiert sind, so werden dies ausgewählt. Wenn (mindestens)
ein Ordner selektiert ist, wird dieser (bei mehreren der oberste)
geöffnet und sein Inhalt angezeigt. Wenn in der Dateiliste nichts
selektiert ist, dann übergibt BoxKite dem Anwendungsprogramm den
Inhalt des Namensfeldes. Dieses kann auch einen Namen enthalten, der
in der Liste noch nicht vorkommt. Damit veranlassen Sie das jeweilige
Anwendungsprogramm, eine neue Datei zu erzeugen.
Wenn der Tastaturfokus auf dem Namensfeld steht oder wenn Sie beim
Klick auf "Ok" eine Shift-Taste festhalten, wird immer der Inhalt des
Namensfeldes zurückgegeben, unabhängig von einer Selektion in der
Liste. Diese Variante wird in der folgenden Situation interessant:
Stellen Sie sich vor, Sie möchten eine Datei namens "TEST" anlegen, im
aktuellen Verzeichnis existiert aber schon eine Datei namens
"TESTTEXT.TXT". Wenn Sie nun den Namen "TEST" eingeben, wird vom
Autolocator "TESTTEXT.TXT" selektiert und beim Klick auf "Ok"
zurückgegeben. Wenn Sie aber den Fokus auf das Namensfeld setzen (mit
Mausklick oder "Tab") und dann "Ok" anwählen, erhalten Sie tatsächlich
nur den Namen "TEST" zurück.
Falls Sie versuchen, einer TOS-Anwendung lange Dateinamen zu
übergeben, erscheint eine Fehlerbox mit zwei Wahlmöglichkeiten:
"Weiter" und "Zurück". Mit "Weiter" übergeben Sie die langen Namen an
die Hauptapplikation. Wenn Sie diese Wahl treffen, sollten Sie wissen,
was Sie tun. Wenn Sie dagegen "Zurück" anklicken, bleiben Sie in
BoxKite. Die Darstellung wird dann auf kurze Namen zurückgeschaltet.
Ihre Selektion bleibt dabei erhalten, so daß Sie sie mit einem
weiteren "Ok" übergeben können. Es kann allerdings sein, daß sich bei
alphabetischer Sortierung die Reihenfolge der Einträge ein wenig
ändert. Die Anzeige dieser Warnungen können Sie über den
"Expertenmodus" unterdrücken.
Manche Programme verkraften nur eine bestimmte Anzahl von Dateien und
teilen dies BoxKite mit; sollten Sie in einem solchen Fall mehr
Dateien ausgewählt haben, so warnt BoxKite Sie mit einem Piepton und
übergibt dem Programm nur die obersten Dateien.
Wenn der Tastaturfokus auf dem Pfadfeld steht und Sie dort einen neuen
Pfad oder eine neue Auswahlmaske eingegeben haben, so wird der dort
eingegebene Pfad eingelesen und angezeigt. Anschließend springt der
Fokus auf die Dateiliste, damit Sie dort Ihre Auswahl treffen können.
Der Knopf "Abbruch"
-------------------
Wie Sie sich sicher schon gedacht haben, dient dieser Knopf dazu,
BoxKite zu verlassen, ohne etwas auszuwählen. Wirklich nichts
weiter dabei.
Das Größenfeld (ganz rechts unten)
----------------------------------
Wie schon wiederholt erwähnt, können Sie BoxKite wie ein GEM-Fenster
vergrößern und verkleinern. Die Minimalgröße ist auf eine Listenlänge
von 8 Dateien im normalen Anzeigeformat ausgelegt. Die Maximalgröße
(und damit die Zahl der angezeigten Dateien) ist fast nur von der
Bildschirmauflösung abhängig. "Fast" bedeutet in diesem Zusammenhang
folgendes: Die Maximalzahl der gleichzeitig angezeigten Dateien
beträgt 100. (Den Monitor möchte ich mal sehen.) Die Maximalbreite ist
darauf ausgelegt, Dateinamen von 32 Zeichen länge nebst Größe, Datum
und Uhrzeit anzuzeigen. Ein größere Breite würde zumindest in dieser
Version von BoxKite keinen Gewinn an Information mehr bringen. In
Auflösungsstufen mit nur 320 Pixel Breite (etwa ST-niedrig) kann
BoxKite auch TOS-Dateinamen nur so breit anzeigen, daß die Uhrzeit
unsichtbar bleibt. Hier ist das Größenfeld also nicht sehr nützlich.
Wenn Sie die aktuelle Konfiguration sichern ("Arbeit sichern" unter
"Optionen"), wird die Größe mit abgespeichert, so daß Sie BoxKite nach
dem nächsten Booten in derselben Größe wieder vorfinden.
Der Laufwerksknopf (vor dem Pfadfeld)
-------------------------------------
Er zeigt das aktuelle Laufwerk (also etwa "C:") an. Wenn Sie ihn
anklicken, erscheint ein Pop-Up-Menu, das alle angeschlossenen
Laufwerke zur Auswahl anbietet. Wenn Sie ein Laufwerk auswählen, wird
dessen Wurzelverzeichnis in der Dateiliste angezeigt. Sie können
dieses Menu auch mit "Clr-Home" (Heim säubern?) aufrufen. Noch
einfacher: Sie können jedes Laufwerk mit der Kombination "Control" +
Laufwerksbuchstabe auswählen, ohne das Menu auch nur anzusehen. Tip:
Die schnellste Möglichkeit, ins Wurzelverzeichnis des aktuellen
Laufwerks zu gelangen, besteht demnach darin, das Laufwerk neu
auszuwählen.
Der Sortierknopf (rechts oben)
------------------------------
Hier bestimmen Sie, in welcher Weise die Dateiliste sortiert wird. Die
meisten Sortiermodi sind vom Desktop her bekannt. Der Knopf zeigt
immer den aktuellen Modus an. Die Modi im Einzelnen:
"Nach Namen": Sortiert die Dateien alphabetisch aufsteigend.
Ordner werden unabhängig vom Sortiermodus immer zuoberst
angezeigt. Ausnahme: Unsortiert.
"Nach Typ": Sortiert die Dateien alphabetisch aufsteigend
nach dem Dateityp (auch Extension genannt). Im gewöhnlichen
TOS-Dateisystem sind das die 3 Buchstaben hinter dem Punkt,
bei anderen Systemen (wo evtl. ein Name mehrere Punkte
enthalten darf) alles hinter dem letzten Punkt. Bei gleichem
Typ wird nach den Namen sortiert.
"Nach Größe": Sortiert aufsteigend nach der Größe (die
Kleinen nach vorn). Bei gleicher Größe wird nach den Namen
sortiert.
"Nach Datum": Sortiert absteigend nach Datum und Uhrzeit, d.
h. die jüngsten Einträge stehen oben. Bei gleicher Zeit wird
nach den Namen sortiert.
"Unsortiert": Zeigt alle Dateien und Ordner in der
Reihenfolge an, in der sie tatsächlich auf dem Datenträger
steht. Das kann schon mal wichtig sein; im AUTO-Ordner z. B.
bestimmt diese Reihenfolge die Reihenfolge der Ausführung.
"Numerisch": Dies ist ein Zusatzschalter, der die
alphabetische Sortierung steuert. Wenn er eingeschaltet ist
(erkennbar am Häkchen), werden in die Namen eingebettete
Zahlen erkannt und aufsteigend berücksichtigt. Beispiel: Die
Namen BRIEF1.TXT, BRIEF2.TXT und BRIEF10.TXT erscheinen bei
normaler alphabetischer Sortierung in der Reihenfolge:
BRIEF1.TXT
BRIEF10.TXT
BRIEF2.TXT
Bei numerischer Sortierung sieht es so aus:
BRIEF1.TXT
BRIEF2.TXT
BRIEF10.TXT
"GROSS = klein": Dies ist auch ein Zusatzschalter. Wenn er
aktiv ist, werden beim Sortieren Groß- und Kleinbuchstaben
als gleich angesehen, wie man es von der deutschen Sprache
her gewohnt ist. Andernfalls wird streng nach den
ASCII-Codes der Buchstaben sortiert, was dazu führt, daß die
Großbuchstaben vor den Kleinbuchstaben landen. Dann ähnelt
das Erscheinungsbild eher den Directory-Listen unter UN*X.
Im Zusammenhang mit Dateisystemen, die nur Großbuchstaben
unterstützen, hat dieser Schalter natürlich keine Wirkung.
5. Dateioperationen
-------------------
Wie oben schon erwähnt, stellt BoxKite Ihnen auch die wichtigsten
Dateioperationen zur Verfügung. Sie haben sicher schon vor der
Situation gestanden, einen Text auf eine bestimmte Diskette sichern zu
müssen, auf der vor lauter Datenmüll nicht genug Platz war. Für
BoxKite kein Problem: Hier können Sie einfach den Datenmüll löschen
und anschließend sichern.
Die Dateioperation residieren in einem Pop-Up-Menu hinter dem Knopf
"Funktionen". Sie können auch direkt über bestimmte
Tastenkombinationen ausgelöst werden. Sie können jede laufende
Operation mit den Tasten "Esc" oder "Undo" abbrechen. Die einzelnen
Punkte dieses Menus sind die folgenden:
"Neues Objekt" (Alternate-U, reimt sich auf "New")
--------------------------------------------------
Dieser Punkt gestattet es, im aktuellen Ordner einen neuen Ordner oder
eine leere Datei (auch das ist gelegentlich nötig) anzulegen. Es
öffnet sich eine kleine Dialogbox, in der Sie den neuen Namen eingeben
und festlegen können, ob ein Ordner oder eine Datei erzeugt werden
soll.
"Information" (Alternate-I)
---------------------------
Dieser Befehl liefert detailliertere Informationen über die einzelnen
momentan selektierten Objekte (Ordner und Dateien). Er kann nicht
aufgerufen werden, wenn nichts selektiert ist. Sind mehrere Objekte
selektiert, so wird eins nach dem anderen angezeigt, falls Sie den
Befehl nicht unterbrechen (wie, siehe unten). Es wird eine Dialogbox
angezeigt, die Name, Erstellungsdatum und Uhrzeit des Objektes
enthält. Für Dateien werden auch die Größe und die TOS-Attributbits
angezeigt, für Ordner dagegen Informationen über den Inhalt. Letzteres
kann schon mal etwas dauern, wenn der Ordner viele Unterordner und
Dateien enthält. Den Namen und die Dateiattribute können Sie
verändern. Wenn Sie die Box mit "Ok" verlassen, werden geänderte Namen
und Attribute übernommen und Informationen zum nächsten selektierten
Objekt angezeigt, sofern noch eines vorhanden ist. Wenn Sie "Weiter"
benutzen, geht BoxKite ohne Änderung zum nächsten Objekt über, und mit
"Abbruch" beenden Sie den gesamten Befehl, ebenfalls ohne Änderung.
Tip: Mit Hilfe der Dateiattribute können Sie eine Datei verstecken.
Dazu schalten Sie das Bit "Versteckt" ein und die Bits "Schreibschutz"
und "Archivbit" aus. Warum ausgerechnet diese Kombination nötig ist,
weiß nur Atari...
"Suchen" (Alternate-S)
----------------------
Wenn Sie eine bestimmte Datei öffnen wollen und nicht mehr genau
wissen, wo auf Ihrer Festplatte sie steckt (auch eine Diskette kann
ganz schön unübersichtlich werden), liefert dieser Befehl eine
Hilfestellung. Er durch sucht das aktuelle und alle darin enthaltenen
Verzeichnisse nach Dateien, deren Namen auf ein bestimmtes Muster
passen. In die Dialogbox tragen Sie das Suchmuster ein und starten die
Suche mit "Ok". Wenn eine passende Datei gefunden wurde, erscheint
eine Hinweisbox mit dem Dateinamen. Gleichzeitig wird dahinter in der
Dateiliste das entsprechende Verzeichnis angezeigt. Die Hinweisbox
bietet Ihnen folgende Möglichkeiten: Mit "Ok" beenden Sie die Suche
und bleiben in dem Ordner, in dem die Datei gefunden wurde, mit
"Weiter" setzen Sie die Suche fort und mit "Abbruch" beende Sie die
Suche und kehren ins ursprüngliche Verzeichnis zurück.
"Kopieren" (Alternate-C, Merke: "Copy")
---------------------------------------
Mit diesem Befehl können Sie einzelne Dateien und ganze Ordner nebst
Inhalt kopieren. Er ist nur anwählbar, wenn auch Objekte zum Kopieren
selektiert sind. Als erstes fordert BoxKite Sie mit einem Piepton und
einer Meldung in der Titelzeile auf, einen Zielordner zu bestimmen.
Öffnen Sie dazu einfach den entsprechenden Ordner und quittieren Sie
mit "Ok". Danach erscheint eine Dialogbox, die Sie über die zu
kopierenden Datenmengen informiert. Wenn darin die Option "Datum/Zeit
beibehalten" selektiert (angekreuzt) ist, erhalten die Kopien dieselbe
Zeitmarkierung wie die Ursprungsdateien, ansonsten werden sie auf das
aktuelle Datum und die aktuelle Uhrzeit gesetzt. Starten Sie den
Kopiervorgang mit "Ok".
Wenn ein Namenskonflikt entsteht, d. h. im Zielordner eine Datei
existiert, die denselben Namen wie eine zu kopierende Datei hat,
erscheint eine Hinweisbox, die Ihnen Gelegenheit gibt, für die zu
kopierende Datei einen neuen Namen auszuwählen. Gerade beim Arbeiten
mit verschiedenen Dateisystemen können solche Situationen etwas
unerwartet auftreten. Kopiert man etwa von einem Minix-Dateisystem mit
32 Zeichen langen Namen auf ein TOS-Dateisystem mit "8-Punkt-3"-Namen,
so werden die langen Namen entsprechend zurechtgestutzt. Dabei können
leicht Überschneidungen entstehen.
"Touch" (Alternate-H)
---------------------
Eine Datei zu "Touchen" (sprich: Betatschen) bedeutet, Ihre Datums-
und Zeitmarkierung auf das aktuelle Datum und die aktuelle Uhrzeit zu
setzen. Dies ist hauptsächlich für Programmierer und TeX-Benutzer
interessant, die das Verhalten von Utilities wie 'make' oder
bestimmten Entwicklungsumgebungen beeinflussen wollen. Auch dieser
Befehl arbeitet bei selektierten Ordnern rekursiv, d. h. er bearbeitet
Dateien in den Ordnern, Dateien in den Ordnern in den Ordnern,...
Diese Funktion ist nur in der Vollversion zugänglich.
"Löschen" (Alternate-D, Merke: "Delete")
----------------------------------------
Mit diesem Befehl können Sie Ordner und Dateien löschen, etwa um auf
dem Datenträger Platz zu schaffen. Auch dieser Befehl arbeitet
rekursiv. Seien Sie also vorsichtig.
"Über BoxKite" (Alternate-B)
----------------------------
Dieser Menupunkt zeigt eine Dialogbox mit Copyright-Informationen an.
Mit dem Knopf "Ok" verlassen Sie diese Box. Mit "Info" zeigen Sie eine
weitere Infobox an. In der öffentlichen Version von BoxKite befindet
sich hier auch der Button "Registrieren", mit dem Sie eine Vollversion
erzeugen können, sofern Sie die Sharewaregebühr bezahlt haben und den
Schlüssel besitzen.
6. Optionen
-----------
Über den Knopf "Optionen" erreichen Sie ein Popup-Menu, indem Sie eine
Reihe von Grundeinstellungen für die Arbeitsweise von BoxKite treffen
und abspeichern können.
Versteckte Dateien anzeigen
---------------------------
TOS bietet die Möglichkeit, Dateien im Desktop unsichtbar zu machen,
um sie vor unvorsichtigen Zugriffen zu schützen oder die Anzeige
übersichtlicher zu gestalten. Manchmal muß man aber ausgerechnet so
eine Datei bearbeiten. Mit diesem Menupunkt können Sie sie in BoxKite
sichtbar machen.
Doppelklick öffnet Ordner
-------------------------
Wenn dieser Punkt aktiviert ist wird ein Ordner mit Einfachklick nur
selektiert. Um ihn zu öffnen, benötigen Sie einen Doppelklick - genau
wie in den Fenstern im GEM-Desktop. (Sie erinnern sich: Ein
Rechtsklick tuts auch.)
In Namen alle Zeichen zulassen
----------------------------------
Mit diesem Menupunkt schalten Sie die Beschränkung des in Dateinamen
erlaubten Zeichensatzes ein oder aus. Wenn Sie nur mit dem
TOS-Dateisystem arbeiten, ist es sicherer die Einschränkung
einschalten (näheres in Abschnitt 7). Es gibt allerdings auch
Anwendungsprogramme, die den Fileselector dazu "mißbrauchen", vom
Anwender eine Dateimaske zu erfragen, die Wildcards ('*' und '?')
enthält. Um Wildcards ins Namensfeld von BoxKite einzugeben, müssen
Sie die Einschränkung abschalten.
Box immer mit Maximalhöhe öffnen
----------------------------------
Wenn dieser Menupunkt aktiviert ist, nutzt BoxKite beim Öffnen der Box
immer die gesamte senkrechte Bildschirmauflösung aus, um so viele
Dateien wie möglich anzuzeigen. Danach können Sie ihn
selbstverständlich wieder verkleinern. Auch in dieser Betriebsart
erscheint BoxKite immer in der Breite, die Sie ausgewählt haben.
*.PRG zeigt alle Programme an
-------------------------------
Wenn dieser Punkt aktiv ist, erhält die Suchmaske "*.PRG" am Ende
einer Pfadangabe eine Sonderbedeutung: Sie zeigt alle die Dateien an,
die laut GEM-Konvention ausführbare Programme sind. Das sind die
Dateien mit den Typen PRG, APP, TOS, TTP, GTP. Dieser Modus ist z. B.
im Zusammenhang mit dem Menubefehl "Execute..." der Purbo-C-Shell
interessant.
Undo bricht den Dialog ab
--------------------------
Mit diesem Menupumkt wird die Bedeutung der "Undo"-Taste festgelegt.
Ist er abgehakt, dann wirkt "Undo" wie ein Klick auf "Abbruch" (eigens
für die Selectric-Freunde unter Ihnen). Andernfalls wechseln Sie mit
"Undo" zum höheren Verzeichnis.
Klick rechts = Doppelklick
--------------------------
Wenn diese Option aktiv ist, können Sie an jede Funktion, die einen
Doppelklick erfordert, auch mit einem einfachen Klick auf die rechte
Maustaste auslösen. (Diese Option war in älteren BoxKite-Versionen
immer aktiv. Es hat sich jedoch herausgestellt, daß sie nicht
kompatibel mit bestimmten unsauberen Programmen, etwa GFA-Basic bis
Version 3.x ist. Daher ist sie nunmehr abschaltbar.)
Expertenmodus
-------------
Dieser Punkt kann nur unter MiNT/MultiTOS angewählt werden. Ist eines
dieser System installiert, so schalten Sie hier die Anzeige der langen
Dateinamen ein und gleichzeitig sämtliche Prüfungen der Kompatibilität
mit langen Namen aus. Das vereinfacht u. U. den Umgang mit Programmen,
die 'MiNT-fest' sind, ohne die MiNT-Domain einzuschalten (sowas soll
es geben). Andererseits sind Katastrophen durch inkompatible Programme
nicht ausgeschlossen. Das soll die Warnmeldung, die vor der
Umschaltung erscheint, verdeutlichen. Nähere Erläuterungen zu diesem
Fragenkomplex finden Sie im Abschnitt 7.
Arbeit sichern
--------------
Wenn Sie diesen Punkt anklicken, wird der Zustand von BoxKite, d. h.
die Größe der Box, die obigen Einstellungen, der Sortiermodus, die
gespeicherten Pfade und Suchmasken (s. u.) in eine Datei namens
'BOXKITE.INF' gesichert. Diese Datei wird bei jedem Neustart von
BoxKite gelesen und ausgewertet, so daß Sie wieder Ihre
Lieblingskonfiguration vorfinden. Pfade und Dateitypen, die von der
Hauptapplikation an BoxKite übergeben wurden, werden nicht
gespeichert. Diese Funktion ist nur in der Vollversion zugänglich.
7. Einige theoretische Anmerkungen
----------------------------------
Dieser Abschnitt stellt einige der erweiterten Möglichkeiten von MiNT
und MultiTOS zur Dateibehandlung kurz dar und erläutert, wie BoxKite
Ihnen helfen kann, aus diesen Möglichkeiten den meisten Nutzen zu
ziehen. Dazu enthält BoxKite einige weitere Bedienungselemente, die
nur unter MiNT sichtbar sind. Diesen Abschnitt können Sie eigentlich
überspringen, wenn Sie MiNT oder MultiTOS nicht einsetzen. Aber wer
weiß, vielleicht kommen Sie ja bei der Lektüre auf den Geschmack?
Dateisysteme & Dateinamen
-------------------------
Was sind nun eigentlich Dateisysteme? Warum sind lange Dateinamen
interessant?
Ein Dateisystem ist derjenige Teil des Betriebssystems, der dafür
verantwortlich ist, ob und wie die Daten auf den Disketten oder
Festplatten gespeichert werden. In das Betriebssystem TOS ist ein
Dateisystem eingebaut, das auf Kompatibilität mit MS-DOS (just say
no!) ausgelegt ist. Diese Entscheidung brachte aber neben der
Möglichkeit, (fast) ohne Probleme Disketten mit PCs auszutauschen,
auch einige Unannehmlichkeiten mit sich: Da ist einmal die nicht immer
berauschende Geschwindigkeit, und zum anderen die Beschränkung auf 12
Zeichen lange Dateinamen, die nur Großbuchstaben enthalten können und
im bekannten "8-Punkt-3"-Format vorliegen müssen. Da muß man manchmal
viel Phantasie aufbringen, um vom Namen auf den Inhalt einer Datei
schließen zu können.
Für dieses Problem zeichnet sich aber eine Lösung ab: Die
Betriebssystemerweiterung MiNT, die auch die Grundlage von MultiTOS
bildet, ist so offen ausgelegt, daß man ohne weiteres bessere
Dateisysteme einbinden kann. Ein solches System ist etwa das
Minix-Dateisystem von Steven Henson (in jeder gut sortierten Mailbox
erhältlich), das neben anderen Vorteilen wesentlich längere Dateinamen
mit Groß- und Kleinbuchstaben zuläßt. Hier kann eine Datei etwa
'Kapitel.3.Versuch.2.TXT' anstatt 'KAP3VER2.TXT' heißen. Ferner
besteht immerhin die Hoffnung, daß Atari einen CD-ROM-Treiber für das
ISO-Level-2-Format allgemein zugänglich macht.
BoxKite kann unter MiNT (und damit auch unter MultiTOS) Dateien mit
Namen von bis zu 32 Zeichen mit gemischter Groß- und Kleinschreibung
anzeigen. Die Namen dürfen auch beliebig viele Punkte enthalten. In
anderen Boxen werden längere Namen so verstümmelt, daß sie auf die
"8-Punkt-3"-Regel des TOS-Dateisystems passen. Das Minix-Dateisystem
läßt zwar bei entsprechender Einstellung noch längere Namen zu, doch
leidet meines Wissens dann die Effizienz.
BoxKite versucht, in der Dateiliste Namen, Größe und Erstellungsdatum
der Dateien anzuzeigen. Dies ist von der maximal möglichen Länge der
Namen und von der aktuellen Breite der Box abhängig, d. h. wenn die
Box gerade breit genug für 32 Zeichen lange Namen ist, verschwinden
die Zusatzinformationen. Wenn Sie dann BoxKite mit dem Größenfeld
verbreitern, werden die Zusatzinformationen wieder sichtbar.
Die Länge des Namensfeldes von BoxKite entspricht immer der maximalen
Länge eines Dateinamens im aktuellen Dateisystem. Ebenso gibt das Feld
den Punkt vor, wenn das Dateisystem vom Typ "8-Punkt-3" ist (was
leider noch meistens der Fall ist). Wenn das Dateisystem keinen
Unterschied zwischen Groß- und Kleinbuchstaben macht (ebenfalls leider
noch meistens der Fall), werden alle Eingaben in dieses Feld in
Großbuchstaben gewandelt. Sie können also nichts falsch machen. Wenn
Sie MiNT einsetzen, probieren Sie es mal im Laufwerk U: aus.
Wie so oft erhebt sich auch in diesem Zusammenhang die leidige Frage
nach der Kompatibilität, d. h. der Verträglichkeit bereits
existierender Programme mit diesen neuen Möglichkeiten. Es soll
nämlich Programme geben, die nur Speicherplatz für Dateinamen von 12
Zeichen reservieren. Wenn man diesen längere Namen übergibt, stürzen
sie u. U. ab und nehmen alle erreichbaren Daten mit in den Orkus.
BoxKite versucht nun, auf solche Kompatibilitätsproblem hinzuweisen.
Die Theorie, nach der er dabei vorgeht, ist die Folgende:
Unter MiNT lassen sich Programme in zwei Klassen einteilen:
MiNT-Anwendungen und TOS-Anwendungen. Eine MiNT-Anwendung zeichnet
sich dadurch aus, daß sie mit den erweiterten Möglichkeiten von MiNT,
insbesondere mit langen Dateinamen umgehen kann. Von einer
TOS-Anwendung kann man dies nicht annehmen, und MiNT verfolgt die
Philosophie, einer solchen Anwendung auch nur auf das
"8-Punkt-3"-Format verkürzte Dateinamen zu zeigen.
Diese Philosophie ist auch nicht ganz unproblematisch. Es kann
durchaus vorkommen, daß zwei verschiedene Namen, die sich z. B. erst
im 10. oder 12. Zeichen unterscheiden, in der verkürzten Form gleich
aussehen und dann von Anwendungsprogrammen nicht mehr unterschieden
werden können. Wenn Sie schon gezwungen sind, TOS-Anwendungen zu
benutzen, können Sie diesem Problem dauerhaft nur dadurch ausweichen,
daß Sie schon bei der Neuanlage von Dateien die Namen so auswählen,
daß sie an den ersten 8 Zeichen des Namens und den ersten 3 Zeichen
der Erweiterung eindeutig zu identifizieren sind. Da die Namen z. B.
im Minix-Dateisystem auch mehrere Punkte enthalten dürfen, ist unter
der Erweiterung alles zu verstehen, was hinter dem letzten Punkt
steht.
BoxKite ist nun in der Lage, festzustellen, ob er von einer MiNT- oder
einer TOS-Anwendung aus aufgerufen wurde (Für Insider: Er prüft, ob
der aktuelle Prozeß in der MiNT-Domain läuft und ob evtl. noch ein
Accessory mit im Spiel ist). Im Falle einer TOS-Anwendung zeigt er
zunächst nur verkürzte Dateinamen an. Sie können die Darstellung auf
lange Namen umschalten. Das kann z. B. nützlich sein, wenn Dateien von
BoxKite aus kopiert oder gelöscht werden sollen. Wenn Sie aber
versuchen, lange Namen an die aufrufende Anwendung zurückzugeben, wird
BoxKite eine Warnung anzeigen. Dann können Sie die langen Namen immer
noch zurückgeben; Sie sind aber selbst für die Folgen verantwortlich.
Diese Umschaltung nehmen Sie mit dem Namensknopf vor, der unter MiNT
in der linken unteren Ecke von BoxKite auftaucht. Dieser Knopf zeigt
immer an, ob Sie lange oder verkürzte Namen sehen. Wenn MiNT nicht
installiert ist, erscheint aus optischen Gründen an dieser Stelle der
"Ok"-Knopf.
Eine wirklich vollautomatische Lösung der Kompatibilitätsprobleme
dürfte kaum möglich sein, da BoxKite dazu in der Lage sein müßte,
durch bloße Betrachtung eines Anwendungsprogrammes festzustellen, ob
dieses lange Dateinamen verträgt. Das scheint mir aber äquivalent zu
einer Lösung des Halteproblems zu sein. ;-)
Selbstverständlich bleiben die Autoren von Anwendungsprogrammen
aufgefordert, ihre Werke in saubere MiNT-Anwendungen zu verwandeln.
Dann kann ich vielleicht eines Tages die Notbremse aus BoxKite wieder
ausbauen...
...wozu ich mich in der Version 1.43 halbwegs durchgerungen habe. Da
man mir versichert, daß eine Reihe von Programmen existiert, die mit
langen Namen zurechtkommen, ohne in die MiNT-Domain zu wechseln, habe
ich einen "Expertenmodus" installiert. In diesem Modus zeigt BoxKite
nur lange Namen an, und die beschriebenen Prüfungen finden nicht mehr
statt. Wenn Sie also die Warnmeldungen stören, und Sie kennen Ihre
Pappenheimer (sprich: Programme) genau, dann können Sie diesen Modus
einschalten.
Nochmal Dateinamen
------------------
BoxKite hilft auch noch dabei, ein anderes Kompatibilitätsproblem zu
lösen: Laut offizieller Dokumentation dürfen unter TOS Dateinamen nur
bestimmte Zeichen enthalten, u. a. keine Umlaute. Das
Minix-Dateisystem dagegen kennt solche Einschränkungen nicht. Um die
Lage vollends zu verwirren, wissen zumindest einige TOS-Versionen
nichts davon, daß sie diese Zeichen eigentlich gar nicht beherrschen,
und verarbeiten z. B. die Umlaute klaglos. Auf der anderen Seite
existieren angeblich Anwendungsprogramme, die Dateinamen mit solchen
Zeichen schlecht vertragen.
In BoxKite können Sie die Beachtung von solchen Einschränkungen des
Zeichensatzes ein- und ausschalten. Wenn der Zeichensatz eingeschränkt
ist, können Sie Zeichen, die laut der TOS-Dokumentation nicht erlaubt
sind (nachzulesen im ATARI Profibuch, Sybex, 12. Auflage 1992, S.
160), gar nicht erst eingeben. Existierende Namen, die solche Zeichen
enthalten, werden aus der Dateiliste ausgeblendet. Ist der Zeichensatz
nicht beschränkt, dann dürfen Ihre Dateinamen alle Zeichen außer '\',
'/' und ':' enthalten. Diese Zeichen sind ausgenommen, da sie von TOS
als Trennzeichen für die Namen von verschachtelten Ordnern
interpretiert werden. Ansonsten ist alles erlaubt.
Das heißt aber nicht, daß auch alles ratsam wäre. Wenn Sie z. B. eine
Textshell (wie ksh, sh, bash, mintshel oder Mupfel) einsetzen, und
wenn Zeichen, die für die Shell eine besondere Bedeutung haben (häufig
sind das '|', '>', '$' u. ä.) in Ihren Dateinamen vorkommen, können
können Sie eventuell diese Dateien von der Shell aus nicht ohne
weiteres ansprechen. Dann müssen Sie auf einen Mechanismus in der
Shell zurückgreifen, der diesen Spezialzeichen ihre Bedeutung nimmt
(in den Handbüchern meist als 'Quoting' bezeichnet).
Das TOS-Dateisystem hat die Eigenart (Bug? Feature?), daß bei Namen,
die Leerzeichen enthalten, alles ab dem Leerzeichen abgeschnitten
wird. '*' und '?' haben noch eigenartigere Auswirkungen. Umlaute
dagegen werden meines Wissens von den meisten Versionen sauber
verarbeitet. Dennoch muß hier eine deutliche Warnung ausgesprochen
werden: Es ist nicht garantiert, daß sich das TOS-Dateisystem in allen
Versionen genau so verhält oder daß es sich bis in alle Zukunft
weiterhin so verhalten wird. Es ist durchaus möglich, daß
TOS-Versionen existieren oder in Zukunft erscheinen, in denen nicht
erlaubte Zeichen in Dateinamen zu Abstürzen und/oder Datenverlusten
führen. Wenn Sie also dem TOS-Dateisystem solche Dateinamen vorsetzen,
handeln Sie auf eigene Verantwortung.
Symbolische Links
-----------------
Eine weitere hübsche Eigenschaft von MiNT sind die sogenannten
symbolischen Links. Dabei handelt es sich um eine Möglichkeit, eine
Datei unter zwei verschiedenen Namen in zwei verschiedenen Ordnern
anzusprechen. "Wozu ist denn das gut?" werden Sie sich jetzt
vielleicht fragen.
Stellen Sie sich etwa vor, daß die Programme und Daten, die Sie häufig
benötigen, in Ordnern liegen, die über alle Festplattenpartitionen
verteilt sind, zum Beispiel C:\WORDPLUS\TEXTE\POST\LIEBESBR.IEF und
D:\DATABASE\PRIVAT\ADRESSEN. Dann müssen Sie sich immer von einem
Laufwerk zum anderen durchklicken, um diese Daten zu erreichen. Der
gewiefte Anwender einer modernen Shell (etwa der neue Desktop oder
Gemini) wird nun diese Ordner als Icons auf dem Desktophintergrund
plazieren. Solange man nur mit der Shell arbeitet, ist das auch sehr
hilfreich. Versucht man aber, eine dieser Dateien von einer anderen
Anwendung aus zu öffnen, darf man sich wieder durch alle Laufwerke und
Ordner klicken.
Unter MiNT ist das anders. Hier können Sie mit Hilfe eines
symbolischen Links dafür sorgen, daß jeder dieser Ordner ein
"Doppelleben" im Laufwerk U: führt. Dann liegt alles, was Sie häufig
brauchen, in U: schön nebeneinander, und wird von ALLEN
Anwendungsprogrammen dort gefunden. Die beiden Bandwurmnamen oben
können Sie damit z. B. als U:\LIEBESBR.IEF und U:\ADRESSEN ansprechen.
Um es nochmal deutlich zu sagen: Dabei werden keine Daten kopiert; Sie
sprechen nur je eine Datei unter zwei verschiedenen Namen an. Wenn Sie
also U:\LIEBESBR.IEF verändern, werden Sie die Änderungen in
C:\WORDPLUS\TEXTE\POST\LIEBESBR.IEF wiederfinden.
Wie legt man nun einen solchen Link am sinnvollsten an? Bei jedem
Start von MiNT, also beim Booten des Rechners wird eine Steuerdatei
namens MINT.CNF ausgeführt. Unter anderem kann diese Datei auch
Befehle zum Anlegen von symbolischen Links enthalten. Die Links, die
Sie dort eintragen, werden bei jedem Start des Systems angelegt und
stehen damit ohne weiteren Aufwand immer zur Verfügung. Für das erste
Beispiel lautet der Befehl:
sln C:\WORDPLUS\TEXTE\POST\LIEBESBR.IEF U:\LIEBESBR.IEF
BoxKite markiert symbolische Links in der Anzeige durch einen
vorangestellten Punkt. Ferner steht eine Möglichkeit zur Verfügung,
einen Link aufzulösen, d. h. herauszufinden, wie das fragliche Objekt
wirklich heißt und wo es steht.
Ferner enthält unter MiNT der Kopf der Dateiliste von BoxKite einen
weiteren Knopf, der mit einem Gleichheitszeichen markiert ist und über
die Tastenkombination "Alternate-0" angesprochen werden kann. Wenn in
der Dateiliste ein symbolischer Link selektiert ist, können Sie ihn
mit dieser Funktion auflösen. Dann zeigt BoxKite das Verzeichnis an,
in dem sich das Objekt tatsächlich befindet. Der wahre Name des
Objektes erscheint im Namensfeld. Dieser Knopf ist nicht wählbar (grau
dargestellt), wenn kein symbolischer Link selektiert ist.
Wenn Sie sich unter MiNT die '?'-Funktion im Verzeichnis U:\C\*
aufrufen, erhalten Sie die Information über den freien Platz auf
Laufwerk C: anstelle der wenig ergiebigen Angabe, auf U: seien 0 Bytes
von 0 frei. Das gleiche gilt, wenn Sie z. B. einen Ordner auf C: über
einen symbolischen Link auf U: ansprechen.
Anhang: Technische Interna
--------------------------
Dieser Abschnitt beschäftigt sich mit einigen technischen Interna von
BoxKite. Er ist vermutlich in erster Linie für Programmierer
interessant. Also gleich in die Vollen:
BoxKite verbiegt die Vektoren für Trap #2 (GEM) und Trap #13 (BIOS).
Die XBRA-Kennung ist 'HBFS'.
Sie sollten den Aufruf einer Dateiauswahlbox grundsätzlich in
'wind_update' einschachteln. Andernfalls macht nämlich die
Standard-GEM-Box Probleme...
BoxKite legt zwei Cookies an: Zum einen den Standardcookie 'FSEL', zum
anderen einen eigenen Cookie namens 'HBFS'. Über den 'FSEL'-Cookie
wird eine Teilmenge der Selectric™-Programmierschnittstelle
realisiert. Diese Schnittstelle wurde von Stefan Radermacher
entwickelt, dem ich hiermit für die Genehmigung zur Verwendung dieser
Informationen danke. Der Wert des 'HBFS'-Cookies ist die
Einsprungadresse des Trap-2-Handlers von BoxKite. Wenn einer der
beiden Cookies beim Start von BoxKite schon existiert, wird BoxKite
nicht installiert, da in diesem Fall zu vermuten ist, daß schon ein
anderer residenter Fileselector installiert ist (der Klügere gibt
nach).
Auch auf die Gefahr hin, bereits Bekanntes zu wiederholen, möchte ich
hier die Funktionsweise der Selectric™-Schnittstelle beschreiben,
soweit sie auf BoxKite zutrifft. Der Wert des 'FSEL'-Cookies ist die
Adresse einer Datenstruktur, über die der Datenaustausch zwischen dem
Anwendungsprogramm und dem Fileselector erfolgt. Unter MiNT-Versionen
mit Speicherschutz ist diese Datenstruktur für Anwendungsprogramme nur
im Supervisor-Mode zugänglich. Die Datenstruktur wird in C
folgendermaßen deklariert:
typedef struct
{
unsigned long id; /* ID (`SLCT') */
unsigned int version; /* Version (BCD-Format) */
struct
{
unsigned : 8; /* reserviert */
unsigned pthsav : 1;
unsigned stdest : 1;
unsigned : 1;
unsigned numsrt : 1; /* numerisches Sortieren */
unsigned lower : 1;
unsigned dclick : 1; /* Ordner mit Doppelklick */
unsigned hidden : 1; /* versteckte Dateien */
unsigned onoff : 1; /* Fileselector AN/AUS */
} config;
int sort; /* Sortiermodus */
int num_ext; /* Anzahl Extensions */
char *(*ext)[]; /* Standard-Extensions */
int num_paths; /* Anzahl Pfade */
char *(*paths)[]; /* Standard-Pfade */
int comm; /* communication word */
int in_count; /* input counter */
void *in_ptr; /* input pointer */
int out_count; /* output counter */
void *out_ptr; /* output pointer */
int cdecl (*get_first)(XDTA *dta, int attrib);
int cdecl (*get_next)(XDTA *dta);
int cdecl (*release_dir)(void);
} SLCT_STR;
Die Felder 'in_count' und 'in_ptr' sind weder in Selectric noch in
BoxKite benutzt. Die Felder 'pthsav', 'stdest' und 'lower' haben für
Selectric eine Bedeutung, sind aber unter BoxKite als reserviert
anzusehen. Die Felder im Einzelnen:
- 'id': Dieses Langwort muß den Inhalt 'SLCT' haben.
Andernfalls wurde der 'FSEL'-Cookie von einem Fileselector
installiert, der das Selectric-Protokoll nicht versteht.
Bevor Sie das Selectric-Protokoll verwenden, müssen Sie also
dieses Feld testen.
- 'version': Hier steht die Versionsnummer des
Selectric-Protokolls im BCD-Format, also 0x100 für 1.0.
BoxKite trägt nunmehr die Nummer 1.02 ein.
- 'config': Die einzelenen Bits in diesem Wort schalten
bestimme Features von BoxKite bzw. Selectric ein oder aus.
Die folgenden Bits sind für BoxKite relevant:
onoff steht dieses Bit auf 0, so wird die
GEM-Dateiauswahl anstelle von Selectric bzw.
BoxKite benutzt.
hidden Gibt an, ob versteckte Dateien angezeigt werden
sollen.
dclick Ordner erst auf Doppelklick öffnen.
numsrt Schaltet die numerische Sortierung ein.
- 'sort': Konfiguriert das Sortierkriterium, dabei gelten
folgende Werte:
1 Sortiert nach dem Namen
2 nach Datum
3 nach Größe
4 nach Typ bzw. Extension
5 unsortiert
Negative Werte werden von BoxKite ignoriert.
- 'num_ext', 'ext': Über diese beiden Felder kann die
Anwendung die Liste von Dateitypen verändern. Dazu muß sie
in 'num_ext' die Anzahl der Typstrings eintragen, in 'ext'
die Adresse eines Arrays von Zeigern auf die fraglichen
Strings. Alle Strings, von denen in diesem Abschnitt die
Rede ist, sind selbstredend nullterminiert. Wenn der
Anwender BoxKite verläßt, wird 'ext' wieder auf die
BoxKite-eigene Liste zurückgebogen. Die Applikation muß
diese Felder also vor jedem fsel_input() bzw. fsel_exinput()
einstellen. Wenn 'ext' verstellt wird, sperrt BoxKite die
Funktion 'Typ merken' im Menu unter dem Pfadfeld. Das ist
erforderlich, da BoxKite nicht wissen kann, wieviel Platz
die Applikation für einen Typ reserviert hat.
- 'num_paths', 'paths': Mit diesen Feldern kann die
Applikation BoxKite eine neue Liste von Pfaden
unterschieben. Das Verfahren ist dasselbe wie oben. Auch
diese felder müssen vor jedem Aufruf eingestellt werden.
Wenn 'paths' verstellt wird, sperrt BoxKite die Funktion
'Pfad merken' und das Speichern des Pfades nach jeder
Auswahl.
Bemerkung dazu: Schon die Selectric-Dokumentation weist
darauf hin, daß Sie als Programmierer diese Features nur
dann nutzen sollten, wenn es unbedingt nötig ist und wenn
die Effekte für den Anwender verständlich sind. Bei BoxKite
kommt erschwerend dazu, daß Sie dadurch andere Features im
Fileselector blockieren.
P. S.: Wenn der Anwender "Arbeit sichern" betätigt, werden
die von BoxKite selbst gespeicherten Pfade und Typen
gesichert, NICHT die von der Applikation festgelegten.
- 'comm': Mit diesem Wort beginnt eigentlich der
interessanteste Teil des Selectric-Protokolls, nämlich die
Möglichkeit, mehr als einen Dateinamen auszuwählen. Dazu
werden auch noch die Felder 'out_count' und 'out_ptr'
benutzt. Es wird folgendes Verfahren verwendet: In
'out_count' gibt die Applikation an, wieviele Dateinamen sie
höchstens erwartet. In 'out_ptr' trägt sie eine Adresse ein,
an der sie diese Namen erwartet. In 'comm' gibt die
Applikation dann an, in welcher Art und Weise die Dateinamen
übergeben werden sollen. Wenn der Fileselector dann mit "Ok"
beendet wird, setzt er in 'out_count' die tatsächlich
ausgewählte Anzahl von Dateien ein und schreibt die Namen
nach der durch 'comm' bestimmten Methode nach 'out_ptr'.
Um überhaupt die Rückgabe mehrerer Dateinamen zu
veranlassen, muß die Applikation das Bit 0 in 'comm' auf 1
setzen. Wenn dann Bit 1 auf 0 steht, wird 'out_ptr' als
Adresse eines Arrays von Zeigern interpretiert, von denen
jeder auf den Speicher für einen Dateinamen verweist. Es
müssen mindestens so viele gültige Zeiger vorhanden sein,
wie 'out_count' angibt, und jeder Zeiger muß auf einen
hinreichend großen freien Speicherblock verweisen. ACHTUNG:
13 Bytes (incl. terminierender 0) sind NICHT genug, 33 Bytes
kommen der Sache schon näher. Ist Bit 1 gleich 1, so gilt
'out_ptr' als Adresse eines Strings, in den die Namen durch
Leerzeichen getrennt geschreiben werden. Der String muß groß
genug für 'out_count' Namen incl. Leerzeichen sein. Beachten
Sie auch hier, daß ein Name bis zu 32 Zeichen umfassen kann.
Diese zweite Variante kann aus Kompatibilitätsgründen nicht
anders implementiert werden; sie kann aber zu Problemen
führen, wenn Namen auftreten, die bereits Leerzeichen
enthalten. Das ist z. B. unter dem Minix-Dateisystem
durchaus erlaubt. Sie sollten sich also im Zweifel für die
erste Variante entscheiden.
- 'get_first': Dieses und die beiden folgenden Felder
enthalten die Adressen dreier Unterprogramme, die es
ermöglichen, eine theoretisch unbegrenzte Anzahl von
Dateinamen zurückzuerhalten. Dieses Protokoll ist identisch
mit Selectric™ 1.02 und wird z. B. von 1stView und 1stGuide
unterstützt. Aus Rücksicht auf die längeren Dateinamen habe
ich für BoxKite eine kleine Änderung festgelegt, die aber
die Funktion bestehender Programme nicht beeinflussen
dürfte.
Um dieses Protokoll zu starten, müssen Sie zunächst in
'comm' neben dem Bit 0 auch das Bit 3 auf 1 setzen. Wenn
'fsel_input()' dann signalisiert, daß der User 'Ok' gewählt
hat, rufen Sie zunächst 'get_first' auf. Diese Funktion
erwartet als Parameter (und zwar in C-Manier auf dem Stack)
einen Zeiger auf eine XDTA-Struktur und ein Attributwort.
Eine XDTA-Struktur ist wie folgt zu deklarieren:
typedef struct
{ char d_reserved[21];
unsigned char d_attrib;
unsigned int d_time;
unsigned int d_date;
unsigned long d_length;
char d_fname[34];
} XDTA;
Bis auf die Länge des Namensfeldes ist sie identisch mit der
Standard-TOS-DTA. Das Namensfeld wurde mit Rücksicht auf die
langen Dateinamen erweitert. Wenn Ihr Programm nicht in der
MiNT-Domain läuft, können Sie auch ganz normale DTAs
verwenden. Dann sorgen die Sicherheitsvorkehrungen von
BoxKite dafür, daß der Anwender gewarnt wird.
'get_first' funktioniert wie 'Fsfirst' und füllt die
XDTA-Struktur mit Informationen über die erste selektierte
Datei. Es werden nur solche Dateien zurückgegeben, die die
Attribute haben, die mit dem übergebenen Attributwort
korrespondieren (die Werte werden NICHT so behandelt wie von
GEMDOS bei Fsfirst(), sondern einfach bitweise verodert).
Wenn eine Datei gefunden wurde, gibt 'get_first()' eine 0
zurück. Dann können Sie mit 'get_next()' nacheinander alle
weiteren Dateien anfordern, bis ein Returncode ungleich 0
auftritt. Danach sollten Sie 'release_dir()' aufrufen,
woraufhin BoxKite den von der Dateiliste belegten Speicher
freigibt. Spätestens beim nächsten Aufruf von BoxKite
passiert das auch automatisch, aber so lange sollten Sie
eigentlich nicht warten. Diesen ganzen Ablauf sollten Sie in
'wind_update' einschachteln, damit kein anderer Prozeß auf
die Idee kommt, zwischenzeitlich eine Dateiauswahlbox
aufzurufen. Falls diese Beschreibung etwas zu abstrakt
geraten ist, werfen Sie einen Blick in BEISPIEL.C.