AES
Fensterverwaltung
Formularfunktionen
Die folgenden Funktionen wurden mit MagiC 4 eingeführt, und
ermöglichen die Verwaltung der Dateiauswahl (Fileselektor):
Hinweis: Die Existenz dieser Funktionen kann per appl_getinfo
(Opcode 7) festgestellt werden.
Der Hauptvorteil bei der Verwendung dieser Routinen ist darin zu
sehen, daß die hier angegebenen Funktionen auch mit alternativen
Dateisystemen (Stichwort: lange Dateinamen) zurechtkommen.
Querverweis:
Fileselektor als Dialog Fileselektor im Fenster Bedienung der Dateiauswahl
Name: |
»File SelectionX Close« - Auswahl schließen und Speicher
freigeben.
|
AES-Nummer: |
191
|
Deklaration: |
int16_t fslx_close ( void *fsd );
|
Beschreibung: |
Die Funktion schließt die Dateiauswahl, und gibt den angegebenen
Deskriptor wieder frei. Es gilt:
Parameter |
Bedeutung
|
|
|
fsd |
Deskriptor, der beim erfolgreichen Öffnen eines
Dateiauswahlfensters übergeben wurde
|
|
Ergebnis: |
Die Funktion liefert bei fehlerfreier Ausführung den Wert 1
zurück, anderenfalls den Wert 0.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding fslx_open
|
C: |
int16_t fslx_close ( void *fsd );
|
Umsetzung: |
int16_t fslx_close ( void *fsd )
{
addr_in[0] = fsd;
crys_if (191);
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
191 # Opcode der Funktion |
control+2 |
control[1] |
0 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
1 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
addr_in |
addr_in[0] |
fsd |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»File SelectionX Do« - schneller Aufruf des Fileselektors.
|
AES-Nummer: |
194
|
Deklaration: |
void *fslx_do ( int8_t *title, int8_t *path, int16_t pathlen,
int8_t *fname, int16_t fnamelen, int8_t *patterns, XFSL_FILTER
*filter, int8_t *paths, int16_t *sort_mode, int16_t flags, int16_t
*button, int16_t *nfiles, int8_t **pattern );
|
Beschreibung: |
Die Funktion stellt eine Dateiauswahlbox auf dem Bildschirm
dar, und übernimmt deren Bearbeitung. Es gilt:
Parameter |
Bedeutung
|
|
|
title |
Titel der Auswahl oder NULL
|
path |
vollständiger Pfad, welcher mit dem Laufwerk beginnt, und mit
'\' endet.
|
pathlen |
Länge des aufnehmenden Pfad-Puffers.
|
fname |
Puffer für den Dateinamen.
|
fnamelen |
Länge des aufnehmenden Dateinamen-Puffers.
|
patterns |
Dateinamensmuster wie "*.TXT", "*.PRG" oder
"*.IMG". Diese alternativ anwählbaren Muster sind durch EOS
getrennt und durch EOS, EOS abgeschlossen.
|
filter |
Filterfunktion, die vor dem Mustervergleich aufgerufen
wird (oder NULL). Gibt diese den Wert 0 zurück, so ist die Datei
ungültig; bei einem Wert von 1 wird der Dateiname angezeigt.
|
paths |
Pfad-History. Die alternativ anwählbaren Pfade sind durch EOS
getrennt, und durch EOS, EOS abgeschlossen.
|
sort_mode |
Sortiermodus für die Anzeige
0 |
= |
nach Namen |
1 |
= |
nach Datum |
2 |
= |
nach Größe |
3 |
= |
nach Typ |
4 |
= |
unsortiert (physik. Reihenfolge) |
|
flags |
verschiedene Einstellungen
1 = |
DOSMODE. Dies ist der Kompatibilitätsmodus, der auch von
fsel_(ex)input verwendet wird, und Dateinamen grundsätzlich im Format
8+3 liefert. Dazu werden alle Unterverzeichnisse per Dopendir (name,
1) aufgerufen.
|
2 = |
symbolische Links nicht verfolgen. In diesem Fall
gehören also Datum, Uhrzeit sowie die XATTR-Struktur, die filter
übergeben wird, zum Link selbst.
|
8 = |
Mehrfachauswahl. In diesem Fall können mehrere Dateien auf
einmal ausgewählt und übergeben werden.
|
|
button |
Nummer des ausgewählten Buttons
0 |
= |
Abbruch-Button |
1 |
= |
Ok-Button |
|
nfiles |
Anzahl der ausgewählten Dateien
|
pattern |
ausgewähltes Dateinamensmuster wie "*.TXT"
|
Hinweis: Die Funktion ist eine Kombination aus fslx_open
und fslx_evnt, benutzt aber eine Dialogbox ohne Fenster.
|
Ergebnis: |
Die Funktion liefert einen Zeiger auf einen Deskriptor zurück,
der bei den anderen Routinen anzugeben ist.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding fslx_open fslx_evnt
|
C: |
void *fslx_do ( int8_t *title, int8_t *path, int16_t pathlen,
int8_t *fname, int16_t fnamelen, int8_t *patterns, XFSL_FILTER
*filter, int8_t *paths, int16_t *sort_mode, int16_t flags, int16_t
*button, int16_t *nfiles, int8_t **pattern );
|
Umsetzung: |
void *fslx_do ( int8_t *title, int8_t *path, int16_t pathlen,
int8_t *fname, int16_t fnamelen,
int8_t *patterns,
XFSL_FILTER *filter, int8_t *paths,
int16_t *sort_mode, int16_t flags,
int16_t *button,
int16_t *nfiles, int8_t **pattern )
{
addr_in[0] = title;
addr_in[1] = path;
addr_in[2] = fname;
addr_in[3] = patterns;
addr_in[4] = filter;
addr_in[5] = paths;
int_in[0] = pathlen;
int_in[1] = fnamelen;
int_in[2] = *sort_mode;
int_in[3] = flags;
crys_if (194);
*button = int_out[1];
*nfiles = int_out[2];
*sort_mode = int_out[3];
*pattern = addr_out[1];
return ( (void *) addr_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
194 # Opcode der Funktion |
control+2 |
control[1] |
4 # Einträge in int_in |
control+4 |
control[2] |
4 # Einträge in int_out |
control+6 |
control[3] |
6 # Einträge in addr_in |
control+8 |
control[4] |
2 # Einträge in addr_out |
addr_in |
addr_in[0] |
title |
addr_in+4 |
addr_in[1] |
path |
addr_in+8 |
addr_in[2] |
fname |
addr_in+12 |
addr_in[3] |
patterns |
addr_in+16 |
addr_in[4] |
filter |
addr_in+20 |
addr_in[5] |
paths |
int_in |
int_in[0] |
pathlen |
int_in+2 |
int_in[1] |
fnamelen |
int_in+4 |
int_in[2] |
sort_mode |
int_in+6 |
int_in[3] |
flags |
addr_out |
addr_out[0] |
Return-Wert |
addr_out+4 |
addr_out[1] |
pattern |
int_out |
int_out[0] |
1 |
int_out+2 |
int_out[1] |
button |
int_out+4 |
int_out[2] |
nfiles |
int_out+6 |
int_out[3] |
sort_mode |
|
Name: |
»File SelectionX Event« - übernimmt die Bearbeitung der
Dateiauswahl.
|
AES-Nummer: |
193
|
Deklaration: |
int16_t fslx_evnt ( void *fsd, EVNT *events, int8_t *path,
int8_t *fname, int16_t *button, int16_t *nfiles, int16_t *sort_mode,
int8_t **pattern );
|
Beschreibung: |
Die Funktion übernimmt die Bearbeitung einer auf dem
Bildschirm dargestellten Dateiauswahl. Es gilt:
Parameter |
Bedeutung
|
|
|
fsd |
Deskriptor, der beim Öffnen der Auswahl zurückgeliefert
wurde.
|
events |
EVNT-Struktur. Die Ereignisse werden von der Auswahl
bearbeitet, wenn sie für das entsprechende Fenster bestimmt sind.
|
path |
Zeiger auf den ausgewählten Pfad.
|
fname |
Zeiger auf den ausgewählten Dateipfad.
|
button |
Nummer des ausgewählten Buttons
0 |
= |
Abbruch-Button |
1 |
= |
Ok-Button |
|
nfiles |
Anzahl der ausgewählten Dateien.
|
sort_mode |
ausgewählter Sortiermodus.
|
pattern |
ausgewähltes Dateinamensmuster wie "*.TXT"
|
Hinweis: Ereignisse werden zunächst an die Dateiauswahl
übermittelt, und von dieser dann ggfs. verarbeitet. Sobald ein
Ereignis bearbeitet wurde, wird das entsprechende Bit in der
EVNT-Struktur gelöscht.
|
Ergebnis: |
Die Funktion liefert den Wert 0, wenn der Dialog beendet werden
soll und anderenfalls den Wert 1.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding
|
C: |
int16_t fslx_evnt ( void *fsd, EVNT *events, int8_t *path,
int8_t *fname, int16_t *button, int16_t *nfiles, int16_t *sort_mode,
int8_t **pattern );
|
Umsetzung: |
int16_t fslx_evnt ( void *fsd, EVNT *events, int8_t *path,
int8_t *fname, int16_t *button,
int16_t *nfiles,
int16_t *sort_mode, int8_t **pattern )
{
addr_in[0] = fsd;
addr_in[1] = events;
addr_in[2] = path;
addr_in[3] = fname;
crys_if (193);
*button = int_out[1];
*nfiles = int_out[2];
*sort_mode = int_out[3];
*pattern = addr_out[0];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
193 # Opcode der Funktion |
control+2 |
control[1] |
0 # Einträge in int_in |
control+4 |
control[2] |
4 # Einträge in int_out |
control+6 |
control[3] |
4 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
addr_in |
addr_in[0] |
fsd |
addr_in+4 |
addr_in[1] |
events |
addr_in+8 |
addr_in[2] |
path |
addr_in+12 |
addr_in[3] |
fname |
addr_out |
addr_out[0] |
pattern |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
button |
int_out+4 |
int_out[2] |
nfiles |
int_out+6 |
int_out[3] |
sort_mode |
|
Name: |
»File SelectionX GetNextFile« - ermittelt alle weiteren
selektierten Einträge der Dateiauswahl.
|
AES-Nummer: |
192
|
Deklaration: |
int16_t fslx_getnxtfile ( void *fsd, int8_t *fname );
|
Beschreibung: |
Die Funktion ermittelt alle weiteren, selektierten Einträge
der Dateiauswahl. Es gilt:
Parameter |
Bedeutung
|
|
|
fsd |
Deskriptor, der beim Öffnen der Auswahl zurückgeliefert wurde
|
fname |
Name des ermittelten Eintrags
|
Hinweis: Wurde das Flag GETMULTI bei fslx_do oder
fslx_open übergeben, wird durch fslx_do bzw. fslx_evnt im Parameter
nfiles die Anzahl der Dateien zurückgegeben, die zusätzlich
zu dem in fname zurückgegebenen noch selektiert sind. Man
kann die weiteren Dateien mit fslx_getnxtfile abrufen. Erst danach
darf man fslx_close aufrufen.
|
Ergebnis: |
Die Funktion liefert den Wert 0, wenn keine weitere Datei
ausgewählt ist, bzw. den Wert 1, falls noch ein Dateiname kopiert
wurde.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding fslx_open fslx_close
|
C: |
int16_t fslx_getnxtfile ( void *fsd, int8_t *fname );
|
Umsetzung: |
int16_t fslx_getnxtfile ( void *fsd, int8_t *fname )
{
addr_in[0] = fsd;
addr_in[1] = fname;
crys_if (192);
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
192 # Opcode der Funktion |
control+2 |
control[1] |
0 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
2 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
addr_in |
addr_in[0] |
fsd |
addr_in+4 |
addr_in[1] |
fname |
int_out |
int_out[0] |
Return-Wert |
|
Name: |
»File SelectionX Open« - initialisiert und öffnet die
Dateiauswahl.
|
AES-Nummer: |
190
|
Deklaration: |
void *fslx_open ( int8_t *title, int16_t x, int16_t y, int16_t
*whdl, int8_t *path, int16_t pathlen, int8_t *fname, int16_t fnamelen,
int8_t *patterns, XFSL_FILTER *filter, int8_t *paths, int16_t
sort_mode, int16_t flags );
|
Beschreibung: |
Die Funktion initialisiert und öffnet die Dateiauswahlbox. Es
gilt:
Parameter |
Bedeutung
|
|
|
title |
Fenstertitel der Auswahl oder NULL
|
x |
x-Koordinate
|
y |
y-Koordinate der linken oberen Ecke des Fensters. Falls diese
den Wert -1 besitzen, so wird das Fenster zentriert dargestellt.
|
whdl |
Fensterkennung nach erfolgreichem Öffnen.
|
path |
vollständiger Pfad, welcher mit dem Laufwerk beginnt, und mit
'\' endet.
Seit MagiC 6.10 darf der Pfad, wie bei fsel_xxx(), unvollständig
initialisiert werden, z.B. als Leer-String. MagiC komplettiert dann
den Pfad sinnvoll.
|
pathlen |
Länge des aufnehmenden Pfad-Puffers.
|
fname |
Puffer für den Dateinamen.
|
fnamelen |
Länge des aufnehmenden Dateinamen-Puffers.
|
patterns |
Dateinamensmuster wie "*.TXT", "*.PRG" oder
"*.IMG". Diese alternativ anwählbaren Muster sind durch EOS
getrennt und durch EOS,EOS abgeschlossen.
Seit MagiC 6.10 darf hier ein Nullzeiger übergeben werden, MagiC
verwendet dann "*\0".
|
filter |
Filterfunktion, die vor dem Mustervergleich aufgerufen
wird (oder NULL). Gibt diese den Wert 0 zurück, so ist die Datei
ungültig; bei einem Wert von 1 wird der Dateiname angezeigt.
|
paths |
Pfad-History. Die alternativ anwählbaren Pfade sind durch EOS
getrennt, und durch EOS,EOS abgeschlossen.
|
sort_mode |
Sortiermodus für die Anzeige
SORTBYNAME (0) |
= |
nach Namen |
SORTBYDATE (1) |
= |
nach Datum |
SORTBYSIZE (2) |
= |
nach Größe |
SORTBYTYPE (3) |
= |
nach Typ |
SORTBYNONE (4) |
= |
unsortiert (physik. Reihenfolge) |
SORTDEFAULT (-1) |
= |
default |
SORTDEFAULT existiert seit MagiC 6.10 und bedeutet, daß der im
System gespeicherte Sortiermodus verwendet wird.
|
flags |
verschiedene Einstellungen
1 = |
(DOSMODE) Dies ist der Kompatibilitätsmodus, der auch von
fsel_(ex)input verwendet wird, und Dateinamen grundsätzlich im Format
8+3 liefert. Dazu werden alle Unterverzeichnisse per Dopendir
(DOPEN_COMPAT) aufgerufen.
|
2 = |
(NFOLLOWSLKS) symbolische Links nicht verfolgen. In
diesem Fall gehören also Datum, Uhrzeit sowie die XATTR-Struktur, die
filter übergeben wird, zum Link selbst.
|
8 = |
Ist GETMULTI gesetzt, können mehrere Dateien auf einmal
ausgewählt und übergeben werden. Dazu wird fslx_getnxtfile
verwendet, wenn fslx_evnt bzw. fslx_do im Parameter nfiles
signalisieren, daß noch weitere Dateien selektiert sind.
|
|
|
Ergebnis: |
Die Funktion liefert einen Deskriptor für die weiteren
Aktionen, bzw. den Wert NULL, wenn ein Fehler aufgetreten ist.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding fslx_close
|
C: |
void *fslx_open ( int8_t *title, int16_t x, int16_t y, int16_t
*whdl, int8_t *path, int16_t pathlen, int8_t *fname, int16_t fnamelen,
int8_t *patterns, XFSL_FILTER *filter, int8_t *paths, int16_t
sort_mode, int16_t flags );
|
Umsetzung: |
void *fslx_open ( int8_t *title, int16_t x, int16_t y,
int16_t *whdl, int8_t *path,
int16_t pathlen, int8_t *fname,
int16_t fnamelen, int8_t *patterns,
XFSL_FILTER *filter, int8_t *paths,
int16_t sort_mode, int16_t flags )
{
addr_in[0] = title;
addr_in[1] = path;
addr_in[2] = fname;
addr_in[3] = patterns;
addr_in[4] = filter;
addr_in[5] = paths;
int_in[0] = x;
int_in[1] = y;
int_in[2] = pathlen;
int_in[3] = fnamelen;
int_in[4] = sort_mode;
int_in[5] = flags;
crys_if (190);
*whdl = int_out[0];
return ( (void *) addr_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
190 # Opcode der Funktion |
control+2 |
control[1] |
6 # Einträge in int_in |
control+4 |
control[2] |
1 # Einträge in int_out |
control+6 |
control[3] |
6 # Einträge in addr_in |
control+8 |
control[4] |
1 # Einträge in addr_out |
addr_in |
addr_in[0] |
title |
addr_in+4 |
addr_in[1] |
path |
addr_in+8 |
addr_in[2] |
fname |
addr_in+12 |
addr_in[3] |
patterns |
addr_in+16 |
addr_in[4] |
filter |
addr_in+20 |
addr_in[5] |
paths |
int_in |
int_in[0] |
x |
int_in+2 |
int_in[1] |
y |
int_in+4 |
int_in[2] |
pathlen |
int_in+6 |
int_in[3] |
fnamelen |
int_in+8 |
int_in[4] |
sort_mode |
int_in+10 |
int_in[5] |
flags |
addr_out |
addr_out[0] |
Return-Wert |
int_out |
int_out[0] |
whdl |
|
Name: |
»File SelectionX SetFlags« - setzt bestimmte Flags der
Dateiauswahl für das ganze System.
|
AES-Nummer: |
195
|
Deklaration: |
int16_t fslx_set_flags ( int16_t flags, int16_t *oldval );
|
Beschreibung: |
Die Funktion setzt bestimmte Flags der Dateiauswahlbox für das
ganze System. Es gilt:
Parameter |
Bedeutung
|
|
|
flags |
verschiedene Flags
1 = |
Format 8+3: Dies gilt nur für die Darstellung von
Verzeichnissen auf DOS-Laufwerken. Entspricht dem Schalter
"TOS-Dateien als 8+3" in MagXDesk.
|
|
oldval |
vorheriger Wert
|
|
Ergebnis: |
Die Funktion liefert im Fehlerfall den Wert 0, und den Wert 1
bei fehlerfreier Ausführung.
|
Verfügbar: |
Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7)
festgestellt werden.
|
Gruppe: |
Fileselektoren
|
Querverweis: |
Binding fslx_open fslx_close
|
C: |
int16_t fslx_set_flags ( int16_t flags, int16_t *oldval );
|
Umsetzung: |
int16_t fslx_set_flags ( int16_t flags, int16_t *oldval )
{
int_in[0] = 0;
int_in[1] = flags;
crys_if (195);
*oldval = int_out[1];
return ( int_out[0] );
}
|
GEM-Arrays: |
Adresse |
Feldelement |
Belegung |
control |
control[0] |
195 # Opcode der Funktion |
control+2 |
control[1] |
2 # Einträge in int_in |
control+4 |
control[2] |
2 # Einträge in int_out |
control+6 |
control[3] |
0 # Einträge in addr_in |
control+8 |
control[4] |
0 # Einträge in addr_out |
int_in |
int_in[0] |
0 |
int_in+2 |
int_in[1] |
flags |
int_out |
int_out[0] |
Return-Wert |
int_out+2 |
int_out[1] |
oldval |
|
MagiC stellt ab Version 4.0 eine eigene Dateiauswahlbox zur
Verfügung, die neben der Unterstützung von langen Dateinamen auch
einiges an Bedienungskomfort bietet, welcher sonst nur von
alternativen Selektoren bekannt war. Die folgende Tabelle gibt eine
Übersicht über die wichtigsten Shortcuts:
Tasten-Kombination |
Funktion
|
|
|
Return |
Keine Datei ausgewählt: Gibt den Text im Editfeld an
das Programm zurück.
Datei ausgewählt: Gibt ausgewählte Datei zurück.
Ordner ausgewählt: Öffnet den Ordner.
|
Alt-A..Z |
Öffnet das jeweilige Laufwerk im aktuellen Verzeichnis.
|
Ctrl-Esc |
Verzeichnis neu einlesen
|
Ctrl-Backspace |
oder
|
Ctrl-H |
Geht eine Verzeichnisebene zurück.
|
Ctrl-D |
Deselektiert alle Einträge. Damit kann man erzwingen, daß der
eingegebene Dateiname statt der selektierten Datei zurückgegeben
wird.
|
Cursor up,down |
Auswahl verschieben
|
Ctrl-Cursor up,down |
scrollen
|
Sh-Cursor up,down |
Auswahl seitenweise verschieben
|
Sh-Ctrl-Cursor up,down |
seitenweise scrollen
|
Home |
selektiert oberstes Element
|
Sh-Home |
selektiert unterstes Element
|
Auch bei der Bedienung der Buttons gibt es einiges zu
beachten: Ein Doppelklick auf das 'parent'-Feld geht zurück aufs
Wurzelverzeichnis. Ein Klick auf eine Zeile selektiert das
entsprechende Objekt. Für den Fall, daß mehrere Dateien auswählbar
sind (dies ist durch den Systemaufruf beeinflußbar), werden diese
durch Shift-Klick ausgewählt. In jedem Fall kann man eine Datei mit
Shift-Klick deselektieren.
Zu beachten ist ferner:
Lange Dateinamen werden nur dann zurückgegeben, wenn der
Aufrufer zuvor mit Pdomain(1) angekündigt hat, daß er damit auch
etwas anfangen kann.
Bei Auswahl eines Ordners durch [Return] wird das Eingabefeld
gelöscht. Wenn nichts selektiert ist, selektiert "Cursor
runter" die erste Zeile, "Cursor hoch" die letzte.
Bei den alten Aufrufen fsel_(ex)input() wird der eingestellte
Sortiermodus beim Booten auf "nach Namen" gesetzt und
später in einer globalen Variablen gemerkt, d.h. der letzte
eingestellte Sortiermodus wird bis zum nächsten Bootvorgang
gespeichert.
Bei den alten Funktionen fsel_(ex)input() wird ggf. das Muster
"*.*" statt "*" zurückgegeben.
Querverweis: Tastaturbelegung
fsel = fslx_do(..., &button, &nfiles, ...);
if (fsel) /* war der Selektor offen? */
{
if (button)
{
while (--nfiles) /* mehrere Files? */
fslx_getnxtfile(...); /* alle abholen */
}
fslx_close(fsel); /* alles wieder freigeben */
}
fsel = fslx_open(...);
if (fsel)
{
do {
evnt.mwhich = evnt_multi(...);
rv = fslx_evnt(fsel, &evnt, ..., &nfiles, ...);
/* Bits für eigene Fenster/Menüs auswerten */
} while (rv);
while (--nfiles) fslx_getnxtfile(...);
fslx_close(fsel);
}
AES
Fensterverwaltung
Formularfunktionen