scsh-ncurses/doc/input-fiels-de.txt

172 lines
5.6 KiB
Plaintext

Input-fields
============
1. Erstellen und installieren
-----------------------------
(make-input-field x-dim y-dim) -> <input-field>
erstellt ein Input-field mit x-dim Spalten und y-dim Zeilen.
Make-input-field können weitere optinale Parameter übergeben
werden:
(make-input-field x-dim y-dim
[default-text
[behavior
[insert-active
[x-scroll-enabled
[y-scroll-enabled]]]]])
default-text: ist ein String, der am Anfang und nach einem Reset (s.u.)
der Inhalt des Input-fields ist.
(Default: "")
behavior: ist eine Liste von Paaren. Der car eines solchen Paares
ist die Nummer eines Zeichens oder einer Tastenkombination,
wie sie von wgetch (aus ncurses) zurückgegeben werden.
Der cdr des Paares ist ein Symbol, das eine Nachricht an ein
Input-field darstellt, so würde ein Input-field, das mit dem
Behvior
(list (cons 27
'clear))
erzeugt worden ist beim drücken der ESC-Taste seinen Inhalt
löschen.Es stehen zwei Standardlisten zu Verfügung:
standard-behavior und standard-behavior-pro (s.u.).
(Default: standard-behavior)
insert-active: ist ein Boolean und gibt an ob das sich das Input-field am
Anfang im Insert- oder im Overwrite-Modus befindet.
(Default: #t)
x-scroll-enabled: ist ein Boolean und gibt an ob horizontales Scrollen
erlaubt ist.
(Default #f)
y-scroll-enabled: ist ein Boolean und gibt an, ob vertikales Scrollen erlaubt ist.
(Default #f)
(install-input-field input-field
window
x-loc y-loc)
Ordnet das Input-field input-field dem (ncurses-)Fenter window zu und
platziert es mit der linken oberen Ecke in der Spalte x-loc und der
Zeile y-loc.
Will man das Input-field später nicht direkt verwenden, sondern nur
über cursor-over-input-field? (s.u.) so kann man es auch mittels
make&install-input-field auf einmal erzeugen und installieren:
(make&install-input-field window
x-loc y-loc
x-dim y-dim
[...])
2. Typpredikat und Feldselektoren
----------------------------------
Input-fields exportirt außerdem ein Typpredikat:
input-field?
und die folgenden Selektoren
input-field-default-text: default-text
input-field-text: der aktuelle Inhalt des Input-fields
als String
input-field-x-location: x-loc
input-field-y-location: y-loc
input-field-x-size: x-dim
input-field-y-size: y-dim
input-field-x-scroll: x-scroll-enabled
input-field-y-scroll: y-scroll-enabled
input-field-line: die Zeile, in der der Cursor steht
input-field-column: die Spalte, in der der Cursor steht
input-field-insert: insert-active
3. Bahaviors
----------------------
standard-behavior führt die folgenden Bindungen ein:
Pfeil-Hoch : Cursor um eine Zeile nach oben bewegen.
Pfeil-Runter: Cursor um eine Zeile nach unten bewegen.
Pfeil-links: Cursor nach links bewegen.
Pfeil-Rechts: Cursor nach rechts bewegen.
Home: An den Anfang der Zeile springen.
End: Ans Ende der Zeile springen.
Backspace: Zeichen vor dem Cursor löschen.
Delete: Zeichen unter dem Cursor löschen
standard-behavior-pro erweitert standard-behavior um die
folgenden Bindungen:
C-p: Cursor um eine Zeile nach oben bewegen.
C-n: Cursor um eine Zeile nach unten bewegen.
C-b: Cursor nach links bewegen.
C-f: Cursor nach rechts bewegen.
C-a: An den Anfang der Zeile springen.
C-e: Ans Ende der Zeile springen.
C-d: Zeichen unter dem Cursor löschen.
C-k: alles rechts vom Cursor löschen.
die folgenden (hoffentlich) selbsterklärenden Symbole stehen
zum Erstellen von Behaviors zu verfügung:
'move-prev-line
'move-next-line
'move-left
'move-right
'move-forawrd - wie move-right, springt aber nach Ende der Zeile
auf den Anfang der Nächsten.
'move-backward - equivalent zu 'move-forward
'goto-begin-of-line
'goto-end-of-line
'goto-begin-of-first-line
'goto-begin-of-last-line
'goto-begin-of-word-forward
'goto-begin-of-word-backward
'delete-left
'delete-right
'delete-all-left
'delete-all-right
'delete-line
'restore: Synchronisiert inrterne Daten mit externer Darstellung
und Zeichent das Input-field neu.
(war bisher nicht nötig, aber sobald Sonderzeichen erlaubt
sind.... ;-)
Außerdem zeichnet die Funktion
(input-field-refresh input-field)
das Input-field neu.
4. Cursor-over-inputfield? und send-input-field
-----------------------------------------------
(cursor-over-input-field? window) -> #f | input-field
liefert, wenn der Cursor im Fenster window über einem zuvor installiertem
Input-field steht, dieses Input-field zurück, ansonsten #f.
(send-input-field input-field integer) -> (values boolean boolean)
übergibt dem Input-field input-field die Zahl integer. Das Input-field
schaut zuerst, ob es sich um eine im Behavior gebundene Zahl handelt und
führt, falls dies der Fall ist die entsprechende Aktion aus. Falls integer
nicht im Behavior gebunden ist überprüft das Input-field ob es sich um einen
gültigen zum Einfügen gültigen Ascii-code (32-126) handelt und fügt das
entsprechende Zeichen gegebenenfalls an der aktuellen Cursorposition ein.
5. Position, Größe, Scrolleigenschaften nachträglich verändern
--------------------------------------------------------------
;; TODOOO
hierzu stehen folgende Funktionen zur Verfügung:
(input-field-reset input-field) - stellt den default-text wieder her
(input-field-clear input-field) - löscht den Inhalt
(input-field-move input-field x-loc y-loc) - setzt die linke, obere Ecke auf (x-loc y-loc)
(input-field-resize input-field x-dim y-dim) - setzt ...
(input-field-toggle-x-scroll input-field)
(input-field-toggle-y-scroll input-field)