                     ------------------------------------------
                      Kommandos des Scripter-Plugins <listbox> 
                         (C) 1997 by Markus Hoffmann @ DU2
                     ------------------------------------------

---------
 Tasten:
---------

     - CTRL-C      Die aktuelle Liste wird in das Clipboard geschrieben.
     - CTRL-W      Das Listboxfenster nimmt am globalen Fenstercycling teil.

-----------------------------------------------
 createBox(infoline, dragdrop, editline, keys)
-----------------------------------------------

     Bestimmt das Aussehen und die Funktionalitt der Listbox, Parameter ist 
     entweder 0 oder 1.

     - <infoline>  Das Listboxfenster erhlt eine Infozeile, deren Text
                   mit setInfo(text) gesetzt werden kann.

     - <dragdrop>  Mit gedrckter CTRL-Taste wird eine D&D-Aktion auf andere
                   Fenster oder den Desktop ermglicht, dabei wird eine AV-
                   Nachricht sowie eine event()-Meldung abgesetzt. Auf das 
                   Listboxfenster gezogene Daten werden dem Script per event() 
                   gemeldet.

     - <editline>  Eine scrollbare Eingabezeile mit maximal 128 Zeichen         
                   erscheint im oberen Fensterbereich. Der Inhalt kann mit der 
                   Funktion getEditline() ausgelesen werden.

     - <keys>      Tastendrcke werden per event()-Meldung "key" gemeldet.
     
     - Beispiele:  listbox.createBox(1);     // Infozeile wird angemeldet
                   listbox.createBox(0,1);   // D&D wird angemeldet
                   listbox.createBox(1,0,1); // Infozeile und Editfeld werden 
                                             // angemeldet

-----------------
 openBox(string)
-----------------

     ffnet das Listboxfenster und stellt es auf dem Bildschirm dar.

     - <string>    Die berschrift des Listboxfensters. Sie kann
                   spter mit setTitle(text) gendert werden.

     - Beispiel:   openBox(" [BACKUP.SIC] Backup ");

---------
 event()
---------

     Diese Funktion versendet Dialog-Ereignisnachrichten, welche vom Script 
     ausgewertet werden knnen. Damit ist ein komplexeres, aber auch flexible-  
     res Dialoghandling mglich, da der Script direkt auf die Ereignisse 
     reagieren kann, die der Benutzer durchfhrt. Es wird ein Array mit drei
     Eintrgen zurckgeliefert, die den aufgetretenen Event nher bestimmen.
     Die Funktion wartet so lange, bis eines der folgenden Events auftritt:

     - <event>     "selected"  - Ein Listbox-Eintrag wurde einfach angeklickt
                   "key"       - Eine Taste wurde gedrckt (wenn in createBox() 
                                 eingeschaltet)
                   "D&D_in"    - Objekte wurden auf die Dialogbox gezogen
                   "D&D_out"   - Objekte wurden aus der Dialogbox gezogen
                   "button_1"  - Der User-Button #1 wurde angeklickt
                   "button_2"  - Der User-Button #2 wurde angeklickt
                   "button_3"  - Der User-Button #3 wurde angeklickt
                   "popup_1"   - Ein Eintrag in Popup #1 wurde angeklickt
                   "popup_2"   - Ein Eintrag in Popup #2 wurde angeklickt
                   "popup_3"   - Ein Eintrag in Popup #3 wurde angeklickt
                   "cancel"    - Der Abbruch-Button wurde angeklickt
                   "okay"      - Ein Listbox-Eintrag wurde doppelt angeklickt 
                                 oder der OK-Button wurde gewhlt

     - <value1>    String
                     -> "selected"
                     -> "D&D_out"
                   String oder Stringarray
                     -> "D&D_in"
                   String oder Leerstring
                     -> "popup_1", "popup_2", "popup_3"
                     -> "button_1", "button_2", "button_3"
                     -> "okay"
                   Keycode
                     -> "key"
                   Dummywert (0)
                   	-> "cancel"

     - <value2>    Position des angeklicktes Zeichen in der Listbox oder -1 bei
                   Selektion eines Eintrages per Tastatur
                     -> "selected"
                   msg[4] aus AV-Meldung VA_THAT_IZIT (Typ des Objekts)
                     -> "D&D_out"
                   Nummer des angewhlten Popup-Eintrags (Beginn bei 1)
                     -> "popup_1", "popup_2" und "popup_3"
                   Sondertastenstatus
                     -> "key"
                   Dummywert (0)
                   	-> "cancel"
                     -> "button_1", "button_2", "button_3"
                    
-------------
 handleBox()
-------------

     Hiermit wird die Listbox abgearbeitet, bis ein Doppelklick auf einen 
     Eintrag erfolgt, OK oder Abbruch angeklickt wurde. Bei OK oder Doppelklick 
     wird der angewhlte String in die angegebene Variable bertragen, bei 
     Abbruch wird Abbruch-Code 2 zurckgegeben. Dies ist die simple Variante zu 
     event(), falls man nur eine einfache Dialogbox verwalten mchte.

     - Beispiel:   resultat=handleBox();

------------
 closeBox()
------------

     Die Listbox wird vom Bildschirm entfernt, kann aber jederzeit wieder 
     dargestellt werden, ohne da der Inhalt verloren geht.

     - Beispiel:   closeBox();

------------------
 setTitle(string)
------------------

     Die Fensterberschrift der Listbox wird gendert. Falls noch kein Fenster 
     dargestellt wird, geschieht nichts.

     - <string>    Die zu setzende Titelzeile.

     - Beispiel:   setTitle(" [FILEFIND.SIC] Filefinder ");

-----------------
 setInfo(string)
-----------------

     Der Inhalt der angemeldeten Infozeile wird gendert. Falls keine Infozeile 
     angemeldet wurde, dann geschieht nichts.

     - <string>    Die zu setzende Infozeile.

     - Beispiel:   setInfo(" 120 Eintrge vorhanden.");

----------------------
 setEditline(string)
----------------------

     Der Text <string> wird in die Eingabezeile bertragen. Falls keine 
     Eingabezeile angemeldet wurde, dann geschieht nichts.

     - <string>    Die zu setzende Eingabezeile.

     - Beispiel:   setEditline("");          // Eingabezeile lschen

----------------
 getEditline()
----------------

     Mit dieser Funktion wird der aktuelle Inhalt der Eingabezeile ermittelt. 
     Falls keine Eingabezeile angemeldet wurde, dann geschieht nichts.

     - Beispiel:   eintrag=getEditline();    // Eingabezeile ermitteln

---------------------------------------------
 installButton(number, string, [entry, ...])
---------------------------------------------

     Es knnen drei selbstdefinierte Buttons oder Popups angemeldet werden. Ein 
     Klick darauf wird durch event() an den Script gemeldet und kann     
     ausgewertet werden.

     - <number>    Nummer des zu installierenden Buttons (1 bis 3).

     - <string>    Ein maximal 10 Zeichen langer String, der im Button 
                   erscheint. Wird kein Text angegeben, dann wird der Button 
                   wieder aus der Listbox entfernt. Durch erneutes Anmelden
                   wird nur der Text gendert.

     - <entry>     Nach <string> knnen noch bis zu zwlf Strings stehen, die 
                   als Eintrge im dann angemeldeten Popup stehen. Die Strings 
                   drfen maximal 10 Zeichen lang sein, lngere werden 
                   abgeschnitten.

     - Beispiele:  installButton(1,"Edit");     // richtet Button 1 ein
                   installButton(2,"Lschen");  // richtet Button 2 ein
                   installButton(2);            // entfernt Button 2
                   installButton(1,"Setzen");   // Setzt den Text neu
                   installButton(3,"Optionen","Einfgen","Lschen");
                                                // Installiert ein Popup

---------------------------------------
 checkPopupEntry(number, entry, value)
---------------------------------------

     Hiermit knnen die Eintrge in den Popups mit einem Hkchen versehen 
     werden.

     - <number>    Nummer des Popups (1 bis 3).

     - <entry>     Nummer des Eintrags im Popup (1-12).

     - <value>     0 oder 1, je nachdem, ob das Hkchen gesetzt oder entfernt 
                   werden soll.

     - Beispiele:  checkPopupEntry(1,1,1);  // Hakt den Eintrag 1 in Popup #1 ab
                   checkPopupEntry(1,1,0);  // Entfernt das Hkchen wieder

--------------------------------
 insertItem(mode, string1, ...)
--------------------------------

     Fgt einen Eintrag in die Liste der Listbox ein. Falls die Listbox 
     dargestellt wird, dann wird automatisch das Fenster aktualisiert.
     Hinweis: Falls es auf Geschwindigkeit ankommt, dann sollte die Listbox
     vorher nicht angezeigt werden, da jeder Redraw der Liste Zeit kostet.

     - <mode>      Ein Parameter, der angibt, wie der Eintrag eingefgt werden 
                   soll:

                   "-t" - der Eintrag wird an den Anfang der Liste eingefgt
                   "-b" - der Eintrag wird an das Ende der Liste eingefgt
                   "-s" - der Eintrag wird sortiert in die Liste eingefgt

     - <string>    Der einzufgende Eintrag als Einzelstring, Stringliste oder 
                   Array.

     - Beispiele:  insertItem("-b","1. Eintrag","2. Eintrag","3. Eintrag");
                   insertItem("-t","3. Eintrag","2. Eintrag","1. Eintrag");
                   insertItem("-s","2. Eintrag","1. Eintrag","3. Eintrag");
                   insertItem("-s",array);

--------------------------
 deleteItem(string1, ...)
--------------------------

     Entfernt einen Eintrag aus der Liste der Listbox. Falls die Listbox 
     dargestellt wird, dann wird automatisch das Fenster aktualisiert.

     - <string>    Der zu entfernende Eintrag als Einzelstring, Stringliste 
                   oder Array. Falls er nicht in der Liste gefunden wird, dann 
                   geschieht nichts.

     - Beispiele:  deleteItem("3. Eintrag");
                   deleteItem("1. Eintrag","3. Eintrag");
                   deleteItem(array);

-------------
 freeItems()
-------------

     Entfernt die gesamte Liste der Listbox und gibt den Speicher frei. Falls 
     die Listbox dargestellt wird, wird automatisch das Fenster aktualisiert.  

     - Beispiel:   freeItems();

--------------
 countItems()
--------------

     Gibt die Anzahl der Eintrge in der Listbox zurck.

     - Beispiel:   entries=countItems();

--------------------
 getFirstItem(mode)
--------------------

     Gibt den ersten Eintrag der Listbox gem <mode> zurck. Wenn kein String 
     vorhanden ist, dann wird der Fehlercode 2 zurckgegeben.

     - <mode>      Ein Parameter, der angibt, welcher Eintrag zurckgegeben 
                   werden soll:

                   "-s" - der erste selektierte Eintrag
                   "-d" - der erste nicht selektierte Eintrag
                   "-a" - der erste Eintrag, egal ob selektiert oder nicht

     - Beispiel:   entry=getFirstItem("-a");

-------------------
 getNextItem(mode)
-------------------

     Gibt den nchsten Eintrag der Listbox gem <mode> zurck. Wenn kein 
     String mehr vorhanden ist oder noch kein getFirstItem() aufgerufen wurde, 
     dann wird der Fehlercode 2 zurckgegeben.

     - <mode>      Ein Parameter, der angibt, welcher Eintrag zurckgegeben 
                   werden soll:

                   "-s" - der nchste selektierte Eintrag
                   "-d" - der nchste nicht selektierte Eintrag
                   "-a" - der nchste Eintrag, egal ob selektiert oder nicht

     - Beispiel:   /* Lscht alle nicht selektierten Eintrge */
                   entry=getFirstItem("-s");

                   while(!errno)
                   {
                      deleteItem(entry);
                      entry=getNextItem("-d");
                   }
