IOdialog

Top  Previous  Next

Dialogfenster darstellen.

IOdialog stellt ein Dialogfenster auf dem Ausgabegerät dar. Das Aussehen des Fensters und die darin enthaltenen Elemente werden von Benutzer vorgegeben. Ebenso wird der Inhalt der Elemente vorgegeben. Wenn das Ausgabegerät keine Fensterverwaltung beherrscht, z.B. eine normale Gina-Station, werden statt dessen Fließtextausgaben durchgeführt. Im Normalfall wird diese Routine erst aufgerufen, wenn der Dialog mit den unten aufgeführten Routinen zusammengesetzt wurde.

Format

Der String, mit dem das Aussehen der Dialogbox festgelegt wird, muss einer strengen Syntax entsprechen. Leerzeichen sind nicht erlaubt, es sei denn sie tauchen in Texten auf.

format::=         '('<element>')'

elementListe::=   <element><elementListe>

element::=        '('<typ>','<message>','<x>','

                       <y> ',' <breite> ',' <höhe> ','

                       <titel> ',' <id> ',' '('

                       <attribliste> ')' ','

                       '(' <elementListe> ')' ')'

typ::=                  "BUTTON"|

                       "FRAME" |

                       "ENTRYFIELD"

message::= string, der abgeschickt wird, wenn das entsprechende element Daten liefert. Wenn die erste Zeile dieses Strings mit ESC (Binär 27) beginnt, dann wird diese Zeile lokal im Anzeiger abgearbeitet. Es gibt folgende lokale Funktionen:

<ESC>SetCursor <string>

Bei getätigen der linken Taste der Maus wird der folgende Text, gefolgt von den beiden Koordinatenwerten, an Moskito gesendet.

<ESC>CloseMenue <id>

Das Menü mit der ID id wird beschlossen, bevor der restliche Text an Moskito geschickt wird.

<ESC>ToggleMenue <id>

Das Menü mit der ID id wird sichtbar gemacht, wenn es unsichtbar war, und andersherum.

<ESC>SetFocus <id>

Setzt den Inputfokus in das entsprechende Fenster, wobei -1 das Inputfenster, -2 das Planfenster bezeichnet.

x::=           zahl, die die x-Koordinate des Elements relativ zum übergeordneten Element angibt.

y::=           zahl, die die y-Koordinate des Elements        relativ zum übergeordneten Element angibt.

breite::=     zahl, die die Breite des Elements angibt.

hoehe::=    zahl, die die Höhe des Elements angibt.

id::=          Zahl, die eine eindeutige Identifizierung des Elements innerhalb dieses Dialogs darstellt. Mit dieser id kann später der Inhalt des Elements manipuliert werden.

attribliste::=    '(' <attrib> ')' <attribliste>

attrib::= "WS_VISIBLE"| -- element ist sichtbar

            "BS_PUSHBUTTON"| -- Button ist Pushbutton

            "ES_RIGHT" -- rechtsbündige Eingabe

Parameter

pipes (PIOPIPES)                                      [IN]

Das Handle pipes gibt den Ausgabekanal an.

text (const char *)                                        [IN]

Mit diesem String wird das Format der Dialogbox festgelegt. Dieser String sollte mit den unten aufgeführten Prozeduren hergestellt werden, da der Aufbau kritisch ist. Wenn Syntaxfehler entdeckt werden, wird die Dialogbox ohne Fehlermeldung ignoriert.

titel (const char *)                                        [IN]

Dieser String wird als Titelzeile über das Fenster der Dialogbox geschrieben.

helpNameInHelpFile (const char *)            [IN]

Dieser Text erscheint als Inhalt des Helpfensters, wenn in der Dialogbox ein Helpbutton vorgesehen ist.

x (int)                                                            [IN]

x-Koordinate der unteren linken Ecke des Fensters.

y (int)                                                            [IN]

y-Koordinate der unteren linken Ecke des Fensters.

w (int)                                                           [IN]

Breite des Fensters.

h (int)                                                            [IN]

Höhe des Fensters.

dialogId (int)                                                [IN]

Eine für alle aktiven Dialoge eindeutige Kennzeichnung, mit der später der Inhalt des Dialogs angesprochen werden kann.

ownerId (int)                                                [IN]

Die ID des Dialogfensters, das als Owner fungieren soll. Wenn das Ownerfenster verschoben wird, dann soll auch dieses Fenster verschoben werden. Zwei Werte haben eine besondere Bedeutung:

-1 gibt als Owner das Inputfenster an,

-2 gibt als Owner das Planfenster an.

Ergebnis

---

Deklaration

#include "ausgabe.h"

 

void DLLENTRY IOdialog (

     PIOPIPES    pipes,

     const char *   text,

     const char *   titel,

     const char *   helpNameInHelpFile,

     int            x,

     int            y,

     int            w,

     int            h,

     int            dialogId,

     int            ownerId

);