This is an old version from the tos.hyp. The new is on GitHub!

HomeAESDateiauswahlEditobjekt-Funktionen

8.5 Druckdialoge

Die folgenden Routinen wurden mit MagiC eingeführt, und erlauben die Erstellung und Handhabung von Druckdialogen:

pdlg_add_printers Druckerbeschreibungen hinzufügen.
pdlg_add_sub_dialogs Erstellt Unterdialoge zum Druckdialog.
pdlg_close Schließt das Fenster des Druckdialogs.
pdlg_create Initialisiert den Druckdialog.
pdlg_delete Gibt den Speicher des Dialogs frei.
pdlg_dflt_settings Übernimmt die Default-Initialisierung.
pdlg_do Öffnet einen modalen Druckdialog.
pdlg_evnt Übernimmt die Event-Verwaltung.
pdlg_free_settings Speicher für Druckeinstellung freigeben.
pdlg_get_setsize Ermittelt die Länge der PRN_SETTINGS Struktur.
pdlg_new_settings Fordert Speicher für Druckeinstellungen.
pdlg_open Öffnet ein Fenster mit dem Dialog.
pdlg_remove_printers Druckerbeschreibungen entfernen.
pdlg_remove_sub_dialogs Entfernt Unterdialoge des Druckdialogs.
pdlg_save_default_settings  
pdlg_update Setzt einen neuen Fensternamen.
pdlg_use_settings Anwendung der Druckereinstellungen.
pdlg_validate_settings Überprüft die Druckereinstellungen.

Hinweis: Die Existenz dieser Funktionen kann per appl_getinfo (Opcode 7) festgestellt werden.

Querverweis:
Darstellung im Fenster   Darstellung als mod. Dialog   AES   GEM   WDIALOG   Style-Guidelines

8.5.1 pdlg_add_printers

Name: »Print Dialog - Add Private Printers« - eigene Druckerbeschreibungen hinzufügen.
AES-Nummer: 205 (Unterfunktion 0)
Deklaration: int16_t pdlg_add_printers ( PRN_DIALOG *prn_dialog, DRV_INFO *drv_info );
Beschreibung: Die Funktion erlaubt es, eigene Druckerbeschreibungen zum Druckdialog hinzuzufügen. Es gilt:
Parameter Bedeutung
   
prn_dialog Zeiger auf Verwaltungsstruktur
drv_info Zeiger auf die Liste der verfügbaren Drucker und Rasterverfahren


Hinweis: Die Treibernummer sollte auf 0x7fff gesetzt werden, um den eigenen Treiber von denjenigen des Betriebssystems zu unterscheiden.
Ergebnis: Die Funktion liefert bei korrekter Ausführung den Wert 1 und im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.1.1 Bindings für pdlg_add_printers

C: int16_t pdlg_add_printers ( PRN_DIALOG *prn_dialog, DRV_INFO *drv_info );
Umsetzung:
int16_t pdlg_add_printers ( PRN_DIALOG *prn_dialog,
                            DRV_INFO *drv_info )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = drv_info;
   int_in[0] = 0;

   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] drv_info
int_in int_in[0] 0 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.2 pdlg_add_sub_dialogs

Name: »Print Dialog - Add Private Dialogs« - Unterdialoge zum Druckdialog hinzufügen.
AES-Nummer: 205 (Unterfunktion 3)
Deklaration: int16_t pdlg_add_sub_dialogs ( PRN_DIALOG *prn_dialog, PDLG_SUB *sub_dialog );
Beschreibung: Die Funktion erlaubt das Hinzufügen eigener Unterdialoge zum Druckdialog.

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
sub_dialog Liste von Unterdialogen


Nützlich ist diese Funktion etwa, um eigene Druckoptionen wie Marken oder Hintergrundbilder anzubieten.
Ergebnis: Die Funktion liefert bei korrekter Ausführung den Wert 1 und im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.2.1 Bindings für pdlg_add_sub_dialogs

C: int16_t pdlg_add_sub_dialogs ( PRN_DIALOG *prn_dialog, PDLG_SUB *sub_dialog );
Umsetzung:
int16_t pdlg_add_sub_dialogs ( PRN_DIALOG *prn_dialog,
                               PDLG_SUB *sub_dialog )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = sub_dialog;
   int_in[0] = 3;

   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] sub_dialog
int_in int_in[0] 3 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.3 pdlg_close

Name: »Print Dialog - Close Window« - Druckdialog schließen.
AES-Nummer: 203
Deklaration: int16_t pdlg_close ( PRN_DIALOG *prn_dialog, int16_t *x, int16_t *y );
Beschreibung: Die Funktion schließt das Fenster des Druckdialogs. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
x x-Koordinate des Fensters
y y-Koordinate des Fensters


Hinweis: Bei den Parametern x und y handelt es sich um die letzte Position des Druckdialogs.
Ergebnis: Die Funktion liefert stets den Wert 1 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.3.1 Bindings für pdlg_close

C: int16_t pdlg_close ( PRN_DIALOG *prn_dialog, int16_t *x, int16_t *y );
Umsetzung:
int16_t pdlg_close ( PRN_DIALOG *prn_dialog, int16_t *x,
                     int16_t *y )
{
   int_out[1] = -1;
   int_out[2] = -1;

   addr_in[0] = prn_dialog;
   crys_if (203);

   *x = int_out[1];
   *y = int_out[2];

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 203 # Opcode der Funktion
control+2 control[1] 0 # Einträge in int_in
control+4 control[2] 3 # 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] prn_dialog
int_out int_out[0] Return-Wert
int_out+2 int_out[1] x
int_out+4 int_out[2] y

8.5.4 pdlg_create

Name: »Print Dialog - Create« - Initialisiert den Druckdialog.
AES-Nummer: 200
Deklaration: PRN_DIALOG *pdlg_create ( int16_t dialog_flags );
Beschreibung: Die Funktion initialisiert den Druckdialog. Es gilt:
Parameter Bedeutung
   
dialog_flags Diverse Flags:
PDLG_3D (1) = Auswahl im 3D-Look anzeigen


Hinweis: Beim Aufruf der Funktion werden die vorhandenen Druckertreiber gescannt und Speicher für die Resource angefordert.
Ergebnis: Die Funktion liefert einen Zeiger auf eine PRN_DIALOG Struktur zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.4.1 Bindings für pdlg_create

C: PRN_DIALOG *pdlg_create ( int16_t dialog_flags );
Umsetzung:
PRN_DIALOG *pdlg_create ( int16_t dialog_flags )
{
   int_in[0] = dialog_flags;
   crys_if (200);

   return ( addr_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 200 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 0 # Einträge in int_out
control+6 control[3] 0 # Einträge in addr_in
control+8 control[4] 1 # Einträge in addr_out
int_in int_in[0] dialog_flags
addr_out addr_out[0] Return-Wert

8.5.5 pdlg_delete

Name: »Print Dialog - Delete« - Speicher des Dialogs freigeben.
AES-Nummer: 201
Deklaration: int16_t pdlg_delete ( PRN_DIALOG *prn_dialog );
Beschreibung: Die Funktion gibt den Speicher für einen Druckdialog an das Betriebssystem zurück. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf die PRN_DIALOG-Struktur
Ergebnis: Die Funktion liefert stets den Wert 1 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.5.1 Bindings für pdlg_delete

C: int16_t pdlg_delete ( PRN_DIALOG *prn_dialog );
Umsetzung:
int16_t pdlg_delete ( PRN_DIALOG *prn_dialog )
{
   addr_in[0] = prn_dialog;
   crys_if (201);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 201 # 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] prn_dialog
int_out int_out[0] Return-Wert

8.5.6 pdlg_dflt_settings

Name: »Print Dialog - Default Settings« - Defaultinitialisierung.
AES-Nummer: 205 (Unterfunktion 7)
Deklaration: int16_t pdlg_dflt_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Beschreibung: Die Funktion übernimmt die Initialisierung der Default-Druckereinstellungen.

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf die Druckereinstellungen


Die Länge der PRN_SETTINGS-Struktur kann durch einen Aufruf von pdlg_get_setsize ermittelt werden.
Ergebnis: Die Funktion liefert stets den Wert 1 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.6.1 Bindings für pdlg_dflt_settings

C: int16_t pdlg_dflt_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Umsetzung:
int16_t pdlg_dflt_settings ( PRN_DIALOG *prn_dialog,
                             PRN_SETTINGS *settings )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;

   int_in[0] = 7;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] settings
int_in int_in[0] 7 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.7 pdlg_do

Name: »Print Dialog - Do« - Öffnen einen Druckdialog.
AES-Nummer: 207
Deklaration: int16_t pdlg_do ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, int8_t *document_name, int16_t option_flags );
Beschreibung: Die Funktion öffnet einen modalen Druckdialog.
Parameter Bedeutung
   
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen
document_name Name des Dokumentes
option_flags Diverse Flags
0x0000 = Einstelldialog zeigen
0x0001 = Druckdialog zeigen
0x0010 = Kopien anbieten
0x0020 = Querformat anbieten
0x0040 = Skalierung anbieten
0x0100 = Option für gerade und ungerade Seiten anbieten


Die Funktion kehrt erst dann zum Aufrufer zurück, wenn einer der Exit-Buttons betätigt wurde.
Ergebnis: Die Funktion liefert den ausgewählten Button (1 = Abbruch, 2 = OK) oder im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.7.1 Bindings für pdlg_do

C: int16_t pdlg_do ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, int8_t *document_name, int16_t option_flags );
Umsetzung:
int16_t pdlg_do ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings,
                  int8_t *document_name, int16_t option_flags )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;
   addr_in[2] = document_name;

   int_in[0] = option_flags;
   crys_if (207);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 207 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 3 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] prn_dialog
addr_in+4 addr_in[1] settings
addr_in+8 addr_in[2] document_name
int_in int_in[0] option_flags
int_out int_out[0] Return-Wert

8.5.8 pdlg_evnt

Name: »Print Dialog - Handle Event« - Ereignisverwaltung des Druckdialoges.
AES-Nummer: 206
Deklaration: int16_t pdlg_evnt ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, EVNT *events, int16_t *button );
Beschreibung: Die Funktion übernimmt die Ereignisverwaltung für einen Druckdialog.

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen
events Zeiger auf EVNT-Struktur
button ausgewählter Button (oder 0)
  PDLG_CANCEL (1) = Abbruch
  PDLG_OK (2)     = OK


Die Funktion wertet die übergebene EVNT-Struktur aus und ruft intern wdlg_evnt auf. Falls der Dialog bestätigt wurde, wird im Parameter settings die neue Druckeinstellung zurückgeliefert.
Ergebnis: Die Funktion liefert den Wert 0 zurück, falls einer der EXIT-Buttons angeklickt wurde, und anderenfalls den Wert 1.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.8.1 Bindings für pdlg_evnt

C: int16_t pdlg_evnt ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, EVNT *events, int16_t *button );
Umsetzung:
int16_t pdlg_evnt ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings,
                    EVNT *events, int16_t *button )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;
   addr_in[2] = events;

   crys_if (206);

   *button = int_out[1];
   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 206 # Opcode der Funktion
control+2 control[1] 0 # Einträge in int_in
control+4 control[2] 2 # Einträge in int_out
control+6 control[3] 3 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] prn_dialog
addr_in+4 addr_in[1] settings
addr_in+8 addr_in[2] events
int_out int_out[0] Return-Wert
int_out+2 int_out[1] button

8.5.9 pdlg_free_settings

Name: »Print Dialog - Free Settings« - Speicher zurückgeben.
AES-Nummer: 205 (Unterfunktion 6)
Deklaration: int16_t pdlg_free_settings ( PRN_SETTINGS *settings );
Beschreibung: Die Funktion gibt den Speicherplatz frei, der durch einen Aufruf von pdlg_new_settings angefordert wurde. Es gilt:

Parameter Bedeutung
settings Zeiger auf Druckereinstellungen
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.9.1 Bindings für pdlg_free_settings

C: int16_t pdlg_free_settings ( PRN_SETTINGS *settings );
Umsetzung:
int16_t pdlg_free_settings ( PRN_SETTINGS *settings )
{
   addr_in[0] = settings;
   int_in[0] = 6;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] settings
int_in int_in[0] 6 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.10 pdlg_get_setsize

Name: »Print Dialog - Get Setting Structure Size« - Länge der PRN_SETTINGS Struktur ermitteln.
AES-Nummer: 204 (Unterfunktion 0)
Deklaration: int32_t pdlg_get_setsize ( void );
Beschreibung: Die Funktion ermittelt die Länge der PRN_SETTINGS-Struktur.
Ergebnis: Die Funktion liefert die Länge der Struktur in Bytes zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.10.1 Bindings für pdlg_get_setsize

C: int32_t pdlg_get_setsize ( void );
Umsetzung:
int32_t pdlg_get_setsize ( void )
{
   int_in[0] = 0;
   crys_if (204);

   return ( int_out[0..1] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 204 # Opcode der Funktion
control+2 control[1] 1 # 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 # Sub-Opcode
int_out int_out[0..1] Return-Wert

8.5.11 pdlg_new_settings

Name: »Print Dialog - New Default Settings« - Default Druckereinstellungen setzen.
AES-Nummer: 205 (Unterfunktion 5)
Deklaration: PRN_SETTINGS *pdlg_new_settings ( PRN_DIALOG *prn_dialog );
Beschreibung: Die Funktion setzt die Default-Druckereinstellungen. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
Ergebnis: Die Funktion liefert einen Zeiger auf eine PRN_SETTINGS Struktur zurück, in der die aktuellen Druckereinstellungen vermerkt sind.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.11.1 Bindings für pdlg_new_settings

C: PRN_SETTINGS *pdlg_new_settings ( PRN_DIALOG *prn_dialog );
Umsetzung:
PRN_SETTINGS *pdlg_new_settings ( PRN_DIALOG *prn_dialog )
{
   addr_in[0] = prn_dialog;
   int_in[0] = 5;
   crys_if (205);

   return ( addr_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 0 # Einträge in int_out
control+6 control[3] 1 # Einträge in addr_in
control+8 control[4] 1 # Einträge in addr_out
addr_in addr_in[0] prn_dialog
int_in int_in[0] 5 # Sub-Opcode
addr_out addr_out[0] Return-Wert

8.5.12 pdlg_open

Name: »Print Dialog - Open Window« - Druckdialog im Fenster öffnen.
AES-Nummer: 202
Deklaration: int16_t pdlg_open ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, int8_t *document_name, int16_t option_flags, int16_t x, int16_t y );
Beschreibung: Die Funktion öffnet ein Fenster mit dem Druckdialog. Es gilt:
Parameter Bedeutung
   
prn_dialog Zeiger auf die Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen
document_name Name des Dokumentes
option_flags Diverse Flags
0x0000 = Einstelldialog zeigen
0x0001 = Druckdialog zeigen
0x0010 = Kopien anbieten
0x0020 = Querformat anbieten
0x0040 = Skalierung anbieten
0x0100 = Option für gerade und ungerade Seiten
x x-Koordinate des Fensters oder -1
y y-Koordinate des Fensters oder -1


Hinweis: Die Struktur settings enthält die Druckeinstellung die mit jedem Dokument gespeichert werden sollte. Wenn zu einem Dokument noch keine Einstellung existiert, kann sie entweder mit pdlg_new_settings erzeugt werden oder die Applikation kann Malloc und anschließend pdlg_dflt_settings aufrufen, um den Speicher zu initialisieren.

Im Parameter option_flags wird u.a. mitgeteilt, ob der Dialog als Einstell- oder Druckdialog angezeigt werden soll. Mit weiteren Flags kann außerdem festgelegt werden, daß Skalierung, Kopieroption und Querdruck auch dann angeboten werden, wenn ein Treiber sie nicht unterstützt, so daß die Applikation z.B. die Seite gedreht ausgeben muss.
Ergebnis: Die Funktion liefert die Kennung des erzeugten Fensters oder im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.12.1 Bindings für pdlg_open

C: int16_t pdlg_open ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings, int8_t *document_name, int16_t option_flags, int16_t x, int16_t y );
Umsetzung:
int16_t pdlg_open ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings,
                    int8_t *document_name, int16_t option_flags,
                    int16_t x, int16_t y)
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;
   addr_in[2] = document_name;

   int_in[0] = option_flags;
   int_in[1] = x;
   int_in[2] = y;
   crys_if (202);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 202 # Opcode der Funktion
control+2 control[1] 3 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 3 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] prn_dialog
addr_in+4 addr_in[1] settings
addr_in+8 addr_in[2] document_name
int_in int_in[0] option_flags
int_in+2 int_in[1] x
int_in+4 int_in[2] y
int_out int_out[0] Return-Wert

8.5.13 pdlg_remove_printers

Name: »Print Dialog - Remove Private Printers« - eigene Drucker aus der Liste entfernen.
AES-Nummer: 205 (Unterfunktion 1)
Deklaration: int16_t pdlg_remove_printers ( PRN_DIALOG *prn_dialog );
Beschreibung: Die Funktion entfernt die mit pdlg_add_printers angemeldeten Drucker. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur


Hinweis: Die Funktion muss vor pdlg_delete aufgerufen werden.
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.13.1 Bindings für pdlg_remove_printers

C: int16_t pdlg_remove_printers ( PRN_DIALOG *prn_dialog );
Umsetzung:
int16_t pdlg_remove_printers ( PRN_DIALOG *prn_dialog )
{
   addr_in[0] = prn_dialog_dialog;
   int_in[0] = 1;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
int_in int_in[0] 1 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.14 pdlg_remove_sub_dialogs

Name: »Print Dialog - Remove Private Dialogs« - Unterdialoge aus dem Druckdialog entfernen.
AES-Nummer: 205 (Unterfunktion 4)
Deklaration: int16_t pdlg_remove_sub_dialogs ( PRN_DIALOG *prn_dialog );
Beschreibung: Die Funktion entfernt die applikationseigenen Unterdialoge aus dem Druckdialog. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.14.1 Bindings für pdlg_remove_sub_dialogs

C: int16_t pdlg_remove_sub_dialogs ( PRN_DIALOG *prn_dialog );
Umsetzung:
int16_t pdlg_remove_sub_dialogs ( PRN_DIALOG *prn_dialog )
{
   addr_in[0] = prn_dialog;
   int_in[0] = 4;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
int_in int_in[0] 4 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.15 pdlg_save_default_settings

Name: »Print dialog - Save default settings«
AES-Nummer: 205 (Unterfunktion 10)
Deklaration: int16_t pdlg_save_default_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Beschreibung:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen
Ergebnis: Der Rückgabewert der Funktion ist z.Zt. nicht bekannt.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.15.1 Bindings für pdlg_save_default_settings

C: int16_t pdlg_save_default_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Umsetzung:
int16_t pdlg_save_default_settings ( PRN_DIALOG *prn_dialog,
                                     PRN_SETTINGS *settings )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;

   int_in[0] = 10;

   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] settings
int_in int_in[0] 10 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.16 pdlg_update

Name: »Print Dialog - Update Window« - neuen Fensternamen setzen.
AES-Nummer: 205 (Unterfunktion 2)
Deklaration: int16_t pdlg_update ( PRN_DIALOG *prn_dialog, int8_t *document_name );
Beschreibung: Die Funktion setzt einen neuen Fensternamen. Es gilt:

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
document_name neuer Name des Dokumentes


Hinweis: Die Funktion sollte aufgerufen werden, wenn der Fensterdialog im Hintergrund liegt und der Anwender ein neues Dokumentenfenster nach vorne bringt.
Ergebnis: Die Funktion liefert bei korrekter Ausführung den Wert 1 und im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.16.1 Bindings für pdlg_update

C: int16_t pdlg_update ( PRN_DIALOG *prn_dialog, int8_t *document_name );
Umsetzung:
int16_t pdlg_update ( PRN_DIALOG *prn_dialog, int8_t *document_name )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = 0;              /* reserviert (muß 0 sein!) */
   addr_in[2] = document_name;

   int_in[0] = 2;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # Einträge in int_in
control+4 control[2] 1 # Einträge in int_out
control+6 control[3] 3 # Einträge in addr_in
control+8 control[4] 0 # Einträge in addr_out
addr_in addr_in[0] prn_dialog
addr_in+4 addr_in[1] 0
addr_in+8 addr_in[2] document_name
int_in int_in[0] 2 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.17 pdlg_use_settings

Name: »Print Dialog - Use Settings« - Einstellungen anwenden.
AES-Nummer: 205 (Unterfunktion 9)
Deklaration: int16_t pdlg_use_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Beschreibung: Die Funktion sorgt für eine Überprüfung der angegebenen Druckereinstellungen.

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen


Die Funktion sollte aufgerufen werden, wenn ein Programm gleich ausdrucken möchte und es nicht möglich ist pdlg_do oder pdlg_open und pdlg_evnt aufzurufen (etwa bei Calamus-Druckdialogen der Fall). Die übergebenen Druckereinstellungen werden überprüft, und bei alten Treibern gesichert.
Ergebnis: Die Funktion liefert bei korrekter Ausführung den Wert 1, und im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.17.1 Bindings für pdlg_use_settings

C: int16_t pdlg_use_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Umsetzung:
int16_t pdlg_use_settings ( PRN_DIALOG *prn_dialog,
                            PRN_SETTINGS *settings )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;

   int_in[0] = 9;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] settings
int_in int_in[0] 9 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.18 pdlg_validate_settings

Name: »Print Dialog - Validate Settings« - Überprüfung der Druckereinstellungen.
AES-Nummer: 205 (Unterfunktion 8)
Deklaration: int16_t pdlg_validate_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Beschreibung: Die Funktion überprüft die angegebenen Druckereinstellungen.

Parameter Bedeutung
prn_dialog Zeiger auf Verwaltungsstruktur
settings Zeiger auf Druckereinstellungen


Hinweis: Fehlerhafte Strukturinhalte werden von der Funktion ggfs. korrigiert.
Ergebnis: Die Funktion liefert bei korrekter Ausführung den Wert 1, und im Fehlerfall den Wert 0 zurück.
Verfügbar: Das Vorhandensein dieser Funktion kann per appl_getinfo (Opcode 7) festgestellt werden.
Gruppe: Druckdialoge
Querverweis: Binding   WDIALOG

8.5.18.1 Bindings für pdlg_validate_settings

C: int16_t pdlg_validate_settings ( PRN_DIALOG *prn_dialog, PRN_SETTINGS *settings );
Umsetzung:
int16_t pdlg_validate_settings ( PRN_DIALOG *prn_dialog,
                                 PRN_SETTINGS *settings )
{
   addr_in[0] = prn_dialog;
   addr_in[1] = settings;

   int_in[0] = 8;
   crys_if (205);

   return ( int_out[0] );
}
GEM-Arrays:

Adresse Feldelement Belegung
control control[0] 205 # Opcode der Funktion
control+2 control[1] 1 # 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] prn_dialog
addr_in+4 addr_in[1] settings
int_in int_in[0] 8 # Sub-Opcode
int_out int_out[0] Return-Wert

8.5.19 Druckauswahl im Fenster

Programmstart:  
. pdlg_create()
.  
Aufruf des Druckdialogs: pdlg_open()
.  
Event-Loop: pdlg_evnt()
.  
Schließen des Druckdialogs: pdlg_close()
.  
. pdlg_delete()
Programmende:  

8.5.20 Druckauswahl als Dialog

Programmstart:  
. pdlg_create()
.  
Aufruf des Druckdialogs: pdlg_do()
.  
. pdlg_delete()
Programmende:  

HomeAESDateiauswahlEditobjekt-Funktionen