Erstellen eigener modaler Dialoge.

Allgemeine Beispiele zur Verwendung der Klasse dialog finden sie hier.

Letzte Änderung :
Plugin Version 4.1.7

Erstellen eigener modaler Dialoge.

Zum Erstellen eines Dialoges wird eine Dialogspezifikation benötigt. Hierbei handelt es sich um einen JSON-String der mit Hilfe der Funktionen dieser Klasse erzeugt und bearbeitet werden kann, so dass dieser nicht manuell bearbeitet werden muss. Jedes Kontrollwidget (Checkbox, Textfield, etc...) kann mehrfach in einer Dialogspezifikation vorkommen, muss aber innerhalb seines eigenen Typs eine eindeutige ID (String) haben. Anschließend wird die Dialogspezifikation an dialog::show übergeben, um den Dialog anzuzeigen. Nachdem der Dialog geschlossen wurde oder ein Dialog-Ereignis in einer Rückruf-Funktion abgefangen wurde, können die Eingabewerte über die r.. Funktionen geholt werden (rcheckbox, rtextfield, ...). Die Ergebnisse können bis zum nächsten Aufruf von dialog::show geholt werden.

Dynamische Dialoge
Durch Registrierung einer Rückruf-Funktion kann auf bestimmte Dialog-Ereignisse reagiert werden. Die Werte (oder Auswahllisten), Sichtbarkeit sowie Status der Dialog-Elemente können in diesen Funktionen gesteuert und so dynamische Dialoge realisiert werden.
Details hierzu in der Dokumentation der Funktion dialog::listen oder in einem der weiteren Beispiele unten.

Element IDs
Die Elemente eines Dialogs werden über ihre ID referenziert.
Als ID sind beliebige Strings erlaubt, einzige Einschränkung: das Prefix %! ist für interne Verwendung reserviert.

Rückruf-Funktionen, die für interne IDs registriert wurden, werden immer nach spezifischen Funktionen ausgeführt, bspw. also eine für %!all registrierte Funktion erst nach einer für kOk registrierten.

Es wird empfohlen, für Bestätigen Buttons die ID kOk zu vergeben, für Abbrechen Buttons die ID kCancel. In diesem Falle kann das Dialog-Ergebnis - neben Abfrage des zuletzt geklickten Buttons - auch einfach über Aufruf von dialog::wasconfirmed oder dialog::wascancelled ermittelt werden (was auch Bestätigen bzw. Abbruch via Enter oder ESC Taste oder Schließen über die Window-Buttons berücksichtigt).

In comet_pdf und InDesign Server können Dialogspezifikationen zwar erzeugt werden, Dialoge werden aber nicht angezeigt.

static int dialog::title(String dialogSpec, char* title)

Setzt den Fenstertitel der oben im Dialog angezeigt wird. Der default Dialogtitel ist ein Leerstring. Ein Mehrfachaufruf der Funktion auf der selben Dialogspezifikation bewirkt ein überschreiben des alten Dialogtitels.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
title String oder char* - Neuer Dialogtitel. Der Titel wird, wenn verfügbar, automatischautomatisch übersetzt.

Automatische Übersetzung seit v4.2 R33010, 24. Mai 2023 4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
comet.CDialog.setTitle
comet.CDialog.getSpecification

static int dialog::size(
  String dialogSpec,
  float width,
  float height)

Setzt die Größe des Dialogs. Standardwerte sind 500x300 Pixel. Ein Mehrfachaufruf der Funktion auf der selben Dialogspezifikation bewirkt ein überschreiben der alten Größe.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
width float - Breite
height float - Höhe

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
comet.CDialog.setSize
comet.CDialog.getSpecification

static int dialog::label(
  String dialogSpec,
  char* id,
  char* label,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Fügt eine einfache Textbeschriftung hinzu.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
label String oder char* - Text. Die Beschriftung wird automatisch übersetzt.

x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
comet.CDialog.addLabel
comet.CDialog.getSpecification

static int dialog::checkbox(
  String dialogSpec,
  char* id,
  char* label,
  int checked,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge eine Checkbox mit optionaler Beschriftung hinzu.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
label String oder char* - Text. Die Beschriftung wird automatisch übersetzt.

checked int - Ist die Box angehakt?
0 = Nein, sonst = Ja
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rcheckbox
comet.CDialog.addCheckBox
comet.CDialog.getSpecification

static int dialog::textfield(
  String dialogSpec,
  char* id,
  char* text,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge ein einzeiliges Textfeld hinzu.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
text String oder char* - Initialer Text
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rtextfield
comet.CDialog.addTextField
comet.CDialog.getSpecification

static int dialog::multilinetextfield(
  String dialogSpec,
  char* id,
  char* text,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge ein mehrzeiliges Textfeld hinzu.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
text String oder char* - Initialer Text
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rmultilinetextfield
comet.CDialog.addMultilineTextField
comet.CDialog.getSpecification

static int dialog::multilinetextinfo(
  String dialogSpec,
  char* id,
  char* text,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge ein mehrzeiliges (Nur-Lesen) Textfeld hinzu.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
text String oder char* - Initialer Text. Der Text wird automatisch übersetzt.

x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R26615
priint:comet InDesign® Plug-Ins, Illustrator
dialog::multilinetextfield
comet.CDialog.addMultilineTextInfo
comet.CDialog.getSpecification

static int dialog::floatfield(
  String dialogSpec,
  char* id,
  float value,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1,
  int type = 0)

Füge ein Eingabefeld hinzu, welches nur float-Zahlen akzeptiert.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
value float - Initialer Wert
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?
type int 0 Typ des Feldes

0 : Ohne Typ
4 : Maßeinheit (X-Richtung)
8 : Maßeinheit (Y-Richtung)

Beachten Sie bitte, dass Maßangaben unabhängig von der aktuellen Maßeinheit immer in Punkten erwartet werden.

Parameter type seit v4.2 R33010, 24. Mai 2023 4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rfloatfield
comet.CDialog.addFloatField
comet.CDialog.getSpecification

static int dialog::intfield(
  String dialogSpec,
  char* id,
  int value,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge ein Eingabefeld hinzu, welches nur int-Zahlen akzeptiert.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
value int - Initialer Wert
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rintfield
comet.CDialog.addIntField
comet.CDialog.getSpecification

static int dialog::dropdown(
  String dialogSpec,
  char* id,
  StringList entries,
  int index,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Füge ein Dropdown hinzu um Einträge aus einer Liste auszuwählen

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes. IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden.
StringList entries - Mögliche Auswahlwerte. Die Einzelwerte werden automatisch übersetzt.
index int - Initial ausgewählter index der entries Liste
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

Übersetzung der Einträge seit v4.2 R33010, 25. Mai 2023 4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rdropdown
comet.CDialog.addDropDown
comet.CDialog.getSpecification

static int dialog::confirmbutton(
  String dialogSpec,
  char* id,
  char* label,
  float x,
  float y,
  float width,
  float height,
  int enabled = 1,
  int visible = 1)

Button einfügen.

Zum Einfügen der system-spezifischen Buttons zum Schließen des Dialoges (Okay und Abbrechen) empfehlen wir die Funktion dialog::dialogbuttons.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
id String oder char* - ID des Elementes

"kOk" : Okay-Button zum Schließen des Dialoges
"kCancel" : Button zum Abbrechen des Dialoges
"kCANCEL" : Abbrechen-Button als Default-Button
sonst : beliebiger dialogweit eindeutiger String

IDs mit dem Prefix %! sind für interne Verwendung reserviert und dürfen in cscript nicht für eigene Elemente verwendet werden!

label String oder char* - Beschriftung. Die Beschriftung wird automatisch übersetzt.

Ist die Angabe leer ("" oder 0) bekommen die Buttons zum Schließen des Dialoges ("kOk", "kCancel" und "kCANCEL") automatisch die system-typische Beschriftung.
x float - X-Position des Elementes
y float - Y-Position des Elementes
width float - Breite des Elementes
height float - Höhe des Elementes
enabled int 1 Ist das Element aktiv (1) oder nicht (0)?
visible int 1 Ist das Element sichtbar (1) oder nicht (0)?

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rconfirmbutton
comet.CDialog.addDefaultButtons
comet.CDialog.getSpecification

static int dialog::dialogbuttons(
  String dialogSpec,
  int cancelEnabled = 1,
  int cancelVisible = 1,
  int okEnabled = 1,
  int okVisible = 1,
  char* cancelLabel = 0,
  char* okLabel = 0,
  int defaultButton = 0)

Füge die beiden Standard-Buttons "Abbrechen" und "Okay" ein. Die Buttons werden automatisch nach den jeweiligen UI Richtlinien des Systems positioniert. Die IDs der Buttons sind dabei wie folgt festgelegt:

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation
cancelEnabled int 1 Aktivierung des Abbrechen-Buttons

0 : Button deaktivieren
1 : Button aktivieren
cancelVisible int 1 Sichtbarkeit des Abbrechen-Buttons

0 : Button unsichtbar
1 : Button sichtbar
okEnabled int 1 Aktivierung des Okay-Buttons

0 : Button deaktivieren
1 : Button aktivieren
okVisible int 1 Sichtbarkeit des Okay-Buttons

0 : Button unsichtbar
1 : Button sichtbar
cancelLabel String oder char* 0 Beschriftung des Abbrechen-Buttons. Die Beschriftung wird automatisch übersetzt.

0 oder "" : "Abbrechen"
okLabel String oder char* 0 Beschriftung des Okay-Buttons. Die Beschriftung wird automatisch übersetzt.

0 oder "" : "Okay"
defaultButton int 0 Welches Button bekommt den Default (Enter-Taste)?

0 : Okay-Button ist Default. rconfirmbutton liefert folgende Werte:
  • "kOk" : Okay-Button, Enter-Taste, Return-Taste
  • "kCancel" : Abbrechen-Button, ESC-Taste, Command-Punkt (nur Mac)
1 : Abbrechen-Button ist Default. rconfirmbutton liefert folgende Werte:
  • "kOk" : Okay-Button, ESC-Taste, Command-Punkt (nur Mac)
  • "kCancel" : Abbrechen-Button, Return-Taste, Enter-Taste

cancelLabel, okLabel und defaultButton seit v4.1.8 R27794 4.1.7 R26615
priint:comet InDesign® Plug-Ins, Illustrator
dialog::rconfirmbutton dialog::confirmbutton
comet.CDialog.addDefaultButtons
comet.CDialog.getSpecification

static int dialog::show(String dialogSpec)

Zeige einen modalen Dialog der mit einer Dialogspezifikation definiert wird. Nachdem der Dialog geschlossen wurde oder innerhalb registrierter Rückruf-Funktionen (siehe dialog::listen) können die Benutzereingaben über die r...Funktionen abgefragt werden (rcheckbox, rtextfield, ...).

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
dialogSpec String - Dialogspezifikation

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
comet.CDialog.show
comet.CDialog.getSpecification

static int dialog::rcheckbox(char* id)

Ermittle ob eine Checkbox des Dialogs, der zuletzt ein Ereignis gesendet hat (bspw. Schließen oder Änderung eines Wertes), angehakt war.

Name Typ Default Beschreibung
Return int   0 = Nicht angehakt oder Fehler, 1 = angehakt
id String oder char* - ID des Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::checkbox
comet.CDialog.getCheckBoxValue

static String dialog::rtextfield(char* id)

Ermittle den Text eines einzeiligen Textfeldes des Dialogs, der zuletzt ein Ereignis gesendet hat (bspw. Schließen oder Änderung eines Wertes)

Name Typ Default Beschreibung
Return String   Wert des Textfeldes. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::textfield
comet.CDialog.getTextFieldValue

static int dialog::rlabel(char* id)

Ermittle den Text einer Beschriftung des Dialogs, der zuletzt ein Ereignis gesendet hat (bspw. Schließen oder Änderung eines Wertes)

Name Typ Default Beschreibung
Return String   Wert des Beschriftung. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::label

static int dialog::rmultilinetextfield(char* id)

Ermittle den Text eines mehrzeiligen Textfeldes des Dialogs, der zuletzt eine Ereignis gesendet hat (bspw. Schließen oder Änderung eines Wertes)

Name Typ Default Beschreibung
Return String   Wert des Textfeldes. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::multilinetextfield
comet.CDialog.getMultiLineTextFieldValue

static int dialog::rmultilinetextinfo(char* id)

Ermittle den Text eines mehrzeiligen Textinfofeldes des Dialogs, der zuletzt eine Ereignis gesendet hat (bspw. Schließen oder Änderung eines Wertes)

Name Typ Default Beschreibung
Return String   Wert des Textfeldes. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::multilinetextinfo

static float dialog::rfloatfield(char* id)

Ermittle den Wert eines float-Feldes des Dialogs, der zuletzt ein Ereignis gesendet hat (bspw Schließen oder Änderung eines Wertes)

Name Typ Default Beschreibung
Return float   Wert des float-Feldes

Beachten Sie bitte, dass Maßangaben unabhängig von der aktuellen Maßeinheit immer in Punkten gegeben werden.
id String oder char* - ID des Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::floatfield
comet.CDialog.getFloatFieldValue

static int dialog::rintfield(char* id)

Ermittle den Wert eines int-Feldes beim schließen des Dialoges.

Name Typ Default Beschreibung
Return int   Wert des int-Feldes
id String oder char* - ID des Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::intfield
comet.CDialog.getIntFieldValue

static String dialog::rdropdown(char* id, int* oIndex = 0)

Ermittle den ausgewählten Wert eines Dropdowns beim schließen des Dialoges.

Name Typ Default Beschreibung
Return String   Wert des Dropdowns. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes
oIndex int * 0 Index des ausgewählten Elementes

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::dropdown
comet.CDialog.getDropDownValue

static String dialog::rconfirmbutton()

Hole die ID des schließenden Buttons. Ermittle die ID des Buttons der verwendet wurde, um den Dialog zu schließen.

Name Typ Default Beschreibung
Return String   ID des Buttons der zum schließen gedrückt wurde. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden

"kOk" : Okay-Button oder Return-Taste
"kCancel" : Cancel-Button oder Command-Punkt (nur Mac)

4.1.7 R24143
priint:comet InDesign® Plug-Ins, Illustrator
dialog::confirmbutton
dialog::wascancelled
dialog::wasconfirmed
comet.CDialog.getConfirmingButton

static String dialog::rbutton(char* id)

Ermittle die Wert eines Buttons des Dialogs, der zuletzt ein Ereignis gesendet hat (bspw. Schließen oder Ändern eines Wertes)

Name Typ Default Beschreibung
Return String   Wert des Buttons. Das Ergebnis ist nur direkt nach dem Aufruf gültig. Wenn es weiter verwendet werden soll, muss es in einen anderen String kopiert werden
id String oder char* - ID des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::confirmbutton

static int dialog::wcheckbox(char* id, int checked)

Setze den Status (angehakt oder nicht) einer Checkbox. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
checked int - 0: nicht angehakt, 1: angehakt

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::checkbox
dialog::rcheckbox

static int dialog::wtextfield(char* id, char* value)

Setze den Wert eines einzeiligen Textfeldes. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value String oder char* - Neuer Wert des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::textfield
dialog::rtextfield

static int dialog::wlabel(char* id, char* value)

Setze den Wert einer Beschriftung. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value String oder char* - Neuer Wert des Elementes. Die Beschriftung wird automatisch übersetzt.

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::label
dialog::rlabel

static int dialog::wmultilinetextfield(char* id, char* value)

Setze den Wert eines mehrzeiligen Textfeldes. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value String oder char* - Neuer Wert des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::multilinetextfield
dialog::rmultilinetextfield

static int dialog::wmultilinetextinfo(char* id, char* value)

Setze den Wert eines mehrzeiligen Textinfofeldes. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value String oder char* - Neuer Wert des Elementes. Die Beschriftung wird automatisch übersetzt.

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::multilinetextinfo
dialog::rmultilinetextinfo

static int dialog::wfloatfield(char* id, float value)

Setze den Wert eines Floatfeldes. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value float - Neuer Wert des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::floatfield
dialog::rfloatfield

static int dialog::wintfield(char* id, int value)

Setze den Wert eines Intfeldes. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value int - Neuer Wert des Elementes

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::intfield
dialog::rintfield

static int dialog::wbutton(char* id, char* value)

Setze den Wert (die Beschriftung) eines Buttons. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
value String oder char* - Neuer Wert des Elementes. Die Beschriftung wird automatisch übersetzt.

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::confirmbutton
dialog::rbutton
dialog::dialogbuttons
dialog::confirmbutton

static int dialog::wdropdown(
  char* id,
  StringList entries,
  int selectedIndex = -1)

Setze die Auswahlwerte und den gewählten Eintrag eines Dropdowns. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde, nicht dem erwarteten Typ entspricht oder kein Dialog aktiv ist.
id String oder char* - ID des Elementes
entries StringList - Mögliche Auswahlwerte
selectedIndex int -1 Vorausgewählter Eintrag

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::dropdown
dialog::rdropdown

static int dialog::setenabled(char* id, int enabled)

Aktiviere oder deaktiviere ein Element. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde oder kein Dialog aktiv ist.
enabled int - 0: deaktiviere das Element, 1: aktiviere das Element

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::setvisible

static int dialog::setvisible(char* id, int enabled)

Zeige oder verstecke ein Element. Diese Funktion kann in mit dialog::listen registrierten Rückruffunktionen verwendet werden und bezieht sich immer auf den aktiven Dialog. Sind mehrere Dialoge geöffnet, ist dies der Dialog, der zuletzt geöffnet wurde.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode, wenn ein Element mit der angegebenen ID nicht gefunden wurde oder kein Dialog aktiv ist.
visible int - 0: verstecke das Element, 1: zeige das Element

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::setenabled

static int dialog::wascancelled()

Ermittle, ob der zuletzt geschlossene Dialog abgebrochen wurde. Abgebrochen wurde ein Dialog dann, wenn er

beendet wurde.

Name Typ Default Beschreibung
Return int   1: Dialog wurde abgebrochen, 0: Dialog wurde nicht abgebrochen

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::wasconfirmed
dialog::rconfirmbutton

static int dialog::wasconfirmed()

Ermittle, ob der zuletzt geschlossene Dialog bestätigt wurde. Bestätigt wurde ein Dialog dann, wenn er

beendet wurde.

Name Typ Default Beschreibung
Return int   1: Dialog wurde bestätigt, 0: Dialog wurde nicht bestätigt

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator
dialog::wascancelled
dialog::rconfirmbutton

static int dialog::listen(char* id, int fptr)

Registriere eine Funktion zur Behandlung von Dialog-Ereignissen.
Rückruf-Funktionen erlauben das Reagieren auf Dialog-Ereignisse wie Ändern von Werten, einer Auswahl oder Click auf einen Button.
Rückruf-Funktionen müssen folgende Signatur aufweisen:

int myCallback(char * id);
Wobei Folgende Regeln gelten darüber hinaus: Details zur Verwendung siehe die Beispiele für die dialog-Klasse.

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
id String or char* - ID des zu beobachtenden Elementes
fptr int - Zeiger auf die Rückruffunktion

Einfaches Anwendungsbeispiel:

int handleOkButton(char * id) 
{
    if (/* certainConditions ... */ ) 
    {
        // stop processing this event
        return 0;
    }
// continue processing this event
return 1; }
int main() { String dialogSpec = string::alloc();
// ... dialog::dialogbuttons(dialogSpec); dialog::listen("kOk", handleOkButton);
dialog::show(dialogSpec);
return 0; }

4.1.7 R26700
priint:comet InDesign® Plug-Ins, Illustrator

static int dialog::suppress_listeners(int state)

(De)aktiviere alle Listener-Funktionen. Die Funktion wird benötigt, wenn Sie eine Listener-Funktion verwenden, die den Wert des aufrufenden Feldes ebenfalls ändert.

Vergessen Sie nicht, die deaktivierten Listener am Ende der Funktion wieder zu aktivieren!

Name Typ Default Beschreibung
Return int   0 oder Fehlercode
state int - 1 : Alle Listener abschalten
0 : Alle Listener aktivieren

v4.2 R33020, 25. Mai 2023
priint:comet InDesign® Plug-Ins
listen

Erzeuge einen Dialog mit allen zur Verfügung stehenden Kontrollen. Am Ende werden die Eingaben des Benutzers abgeholt und im Script verwendet.

int main()
{
    String 		dialogSpec 		= string::alloc();
    StringList 	dropDownEntries	= stringlist::alloc();
stringlist::append(dropDownEntries, "Entry one"); stringlist::append(dropDownEntries, "Entry two"); stringlist::append(dropDownEntries, "-"); //separator stringlist::append(dropDownEntries, "Entry three"); stringlist::append(dropDownEntries, "Entry four");
dialog::title(dialogSpec, "Dialog Demo"); dialog::size(dialogSpec, 360.0, 400.0);
dialog::label(dialogSpec, "label1", "This is a basic dialog framework demo", 40.0, 20.0, 250.0, 30.0); dialog::checkbox(dialogSpec, "cb1", "This is a checkbox", 1, 40.0, 60.0, 200.0, 20.0); dialog::textfield(dialogSpec, "tf1", "This is a textfield", 40.0, 90.0, 200.0, 20.0); dialog::label(dialogSpec, "label2", "This is a floatfield:", 40.0, 120.0, 130.0, 20.0); dialog::floatfield(dialogSpec, "ff1", 10.5, 160.0, 120.0, 75.0, 20.0); dialog::label(dialogSpec, "label3", "This is an intfield:", 40.0, 150.0, 130.0, 20.0); dialog::intfield(dialogSpec, "if1", 333, 160.0, 150.0, 75.0, 20.0); dialog::label(dialogSpec, "label4", "This is a dropdown:", 40.0, 190.0, 130.0, 20.0); dialog::dropdown(dialogSpec, "dd1", dropDownEntries, 0, 160.0, 190.0, 125.0, 20.0); dialog::multilinetextfield(dialogSpec, "mtf1", "This is a \nmulti-\nline-\ntextfield", 40.0, 230.0, 200.0, 75.0);
dialog::dialogbuttons(dialogSpec);
dialog::show(dialogSpec);
//Fetch all control results and display them in a messagebox showmessage("Dialog results:\nClosed by confirm button: %s\nCheckbox %s: %d\nTextfield %s: %s\nMultiline Textfield %s: %s\nFloatfield %s: %f\nIntfield %s: %d\nDropdown %s: %s", dialog::rconfirmbutton(),   "cb1", dialog::rcheckbox("cb1"),   "tf1", dialog::rtextfield("tf1"),   "mtf1", dialog::rmultilinetextfield("mtf1"),   "ff1", dialog::rfloatfield("ff1"),   "if1", dialog::rintfield("if1"),   "dd1", dialog::rdropdown("dd1"));
return 0; }

Bedingtes "Akzeptieren" eines Dialogs

int reallySure(char * id) 
{
    char 	buffer[4096];
if (strcmp(id, "okButton") == 0) { strcpy (buffer, dialog::rmultilinetextinfo("info")); if (strlen(buffer) < 100) { strreplace(buffer, "sure", "really sure"); dialog::wmultilinetextinfo("info", buffer); return 0; }
return 1; }
return 1; }
int main() { String dialogSpec = string::alloc();
dialog::title(dialogSpec, "Do you really want to...?"); dialog::size(dialogSpec, 300.0, 200.0);
dialog::multilinetextinfo(dialogSpec, "info", "Are you sure you want to click Ok?", 20.0, 20.0, 260.0, 160.0);
dialog::confirmbutton(dialogSpec, "cancelButton", "Cancel", 120.0, 170.0, 70.0, 20.0);
dialog::confirmbutton(dialogSpec, "okButton", "Ok", 200.0, 170.0, 70.0, 20.0); dialog::listen("okButton", reallySure);
dialog::show(dialogSpec);
return 0; }

Dynamisches Dropwdown

int calculateSequence(char * id) 
{
    StringList 	sequence 	= stringlist::alloc();
    char 		tmp			[4096];
    int 		offset 		= -1;
    int 		c 			= 1;
strcpy(tmp, dialog::rdropdown("range")); if (strcmp(tmp, "odd") == 0) { offset = 1; } else if (strcmp(tmp, "even") == 0) { offset = 0; }
if (offset >= 0) { for (;c < 11; ++c) { sprintf(tmp, "%d", (c * 2) - offset); stringlist::append(sequence, tmp); } }
dialog::wdropdown("sequence", sequence, 0); dialog::setenabled("sequence", offset >= 0); dialog::setenabled("kOk", offset >= 0);
stringlist::release(sequence);
return 1; }
int main() { String dialogSpec = string::alloc(); StringList range = stringlist::alloc(); StringList sequence = stringlist::alloc();
stringlist::append(range, "Select range..."); stringlist::append(range, "odd"); stringlist::append(range, "even");
stringlist::append(sequence, "Please select range first");
dialog::title(dialogSpec, "Dynamic dropdown"); dialog::size(dialogSpec, 300.0, 200.0);
dialog::dropdown(dialogSpec, "range", range, 0, 20.0, 20.0, 180.0, 20.0); dialog::dropdown(dialogSpec, "sequence", sequence, 0, 20.0, 50.0, 180.0, 20.0, 0);
dialog::dialogbuttons(dialogSpec, 1, 1, 0, 1);
dialog::listen("range", calculateSequence);
dialog::show(dialogSpec);
stringlist::release(range); stringlist::release(sequence); string::release(dialogSpec);
return 0; }

Verschachtelte Dialoge

int fibonacci(char * id) 
{
    String 		dialogSpec 	= string::alloc();
    char t		mp			[4096];
int c = string::get_token_count (id, ","); int p1 = string::to_int (string::get_token (id, ",", c - 2)); int p2 = string::to_int (string::get_token (id, ",", c - 1));
sprintf(tmp, "%s,%d", id, (p1 + p2)); wlog("", "Enter dialog, v=%s\n", tmp);
dialog::title(dialogSpec, "Fibonacci"); dialog::size(dialogSpec, 400.0, 200.0);
dialog::multilinetextinfo(dialogSpec, "fibonacci", tmp, 20.0, 20.0, 360.0, 160.0);
dialog::confirmbutton(dialogSpec, "kCancel", "Close", 120.0, 170.0, 80.0, 20.0); dialog::confirmbutton(dialogSpec, tmp, "Next", 220.0, 170.0, 80.0, 20.0);
dialog::listen(tmp, fibonacci);
dialog::show(dialogSpec);
strcpy(tmp, dialog::rmultilinetextinfo("fibonacci")); wlog("", "Leave dialog, v=%s\n", tmp);
string::release(dialogSpec);
return 0; }
int main() { fibonacci("0,1"); return 0; }

Taschenrechner

////////////////////////////////////////////////////////////////////
//
// helpers
//
int lpad(char * str) 
{
    // pad with blanks
    int 	c = 36 - 2 *	strlen(str) - 1;
for (;c > 0; --c) { sprintf(str, "%s%s", " ", str); }
return 0; }
int printfloat(float floatValue, char * buffer) { int intValue;
sprintf(buffer, "%F", floatValue); intValue = val(buffer);
if ((float)intValue == floatValue) { sprintf(buffer, "%d", intValue); } else { sprintf(buffer, "%.10F", floatValue); }
return 0; }
float calculate(int * err) { char op [16]; char lvalue [4096]; char rvalue [4096]; float result = 0.0; float lf, rf;
strcpy(lvalue, dialog::rlabel("lvalue")); strcpy(rvalue, dialog::rtextfield("rvalue")); strcpy(op, dialog::rlabel("operator"));
lf = fval(lvalue); rf = fval(rvalue);
err = 0;
if (strcmp(op, "+") == 0) { result = lf + rf; } else if (strcmp(op, "-") == 0) { result = lf - rf; } else if (strcmp(op, "*") == 0) { result = lf * rf; } else if (strcmp(op, "/") == 0) { if (rf > 0.0 || rf < 0.0) { result = lf / rf; } else { err = 1; result = -0.0; } } else { result = rf; }
return result; }
char * gInitialValue = " 0";

//////////////////////////////////////////////////////////////////// // // callbacks // int numberClicked(char * id) { char tmp[4096];
strcpy(tmp, dialog::rtextfield("rvalue")); strtrim(tmp);
// don't allow more than 18 digits: if (strlen(tmp) >= 18) return 0;
// remove leading 0 or 'NaN' if (strcmp(tmp, "0") == 0 || strcmp(tmp, "NaN") == 0) tmp[0] = 0;
// append last number clicked strcat(tmp, id); lpad(tmp);
dialog::wtextfield("rvalue", tmp);
return 0; }
int dotClicked(char * id) { char tmp[4096];
strcpy(tmp, dialog::rtextfield("rvalue")); strtrim(tmp);
if (strlen(tmp) >= 18) return 0;
// already contains a 'dot' if (strstr(tmp, ".")) return 0; strcat(tmp, "."); lpad(tmp);
dialog::wtextfield("rvalue", tmp);
return 0; }
int negateClicked(char * id) { char tmp[4096];
strcpy(tmp, dialog::rtextfield("rvalue")); strtrim(tmp); if (strlen(tmp) >= 18) return 0;
if (strstr(tmp, "-") == tmp) { sprintf(tmp, "%s", tmp + 1); } else { sprintf(tmp, "-%s", tmp); } lpad(tmp);
dialog::wtextfield("rvalue", tmp);
return 0; }
int invertClicked(char * id) { char tmp[4096]; float f;
strcpy(tmp, dialog::rtextfield("rvalue")); strtrim(tmp); f = fval(tmp); if (f > 0.0 || f < 0.0) { printfloat((1.0/f), tmp); } else { sprintf(tmp, "NaN"); } lpad(tmp);
dialog::wtextfield("rvalue", tmp);
return 0; }
int operatorClicked(char * id) { float v; char tmp[4096]; int err;
if (strcmp(id, "C") == 0) { dialog::wlabel("operator", ""); dialog::wlabel("lvalue", ""); dialog::wtextfield("rvalue", gInitialValue); } else { v = calculate(&err);
printfloat(v, tmp); lpad(tmp); if (strcmp(id, "=") == 0) { dialog::wlabel("operator", ""); dialog::wlabel("lvalue", ""); dialog::wtextfield("rvalue", tmp); } else { dialog::wlabel("operator", id); dialog::wlabel("lvalue", tmp); dialog::wtextfield("rvalue", gInitialValue); } if (err) { dialog::wlabel("operator", "E"); } }
return 0; }
//////////////////////////////////////////////////////////////////// // // main // int main() { String dialogSpec = string::alloc(); int c = 0; char tmp [4096];
dialog::title(dialogSpec, "Calculator"); dialog::size(dialogSpec, 190.0, 300.0);
dialog::label(dialogSpec, "lvalue", " ", 10.0, 10.0, 160.0, 30.0); dialog::label(dialogSpec, "operator", " ", 170.0, 10.0, 20.0, 30.0); dialog::textfield(dialogSpec, "rvalue", gInitialValue, 10.0, 50.0, 170.0, 30.0);
dialog::confirmbutton(dialogSpec, "1", "1", 20.0, 90.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "2", "2", 60.0, 90.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "3", "3", 100.0, 90.0, 30.0, 30.0);
dialog::confirmbutton(dialogSpec, "4", "4", 20.0, 130.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "5", "5", 60.0, 130.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "6", "6", 100.0, 130.0, 30.0, 30.0);
dialog::confirmbutton(dialogSpec, "7", "7", 20.0, 170.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "8", "8", 60.0, 170.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "9", "9", 100.0, 170.0, 30.0, 30.0);
dialog::confirmbutton(dialogSpec, ".", ".", 20.0, 210.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "0", "0", 60.0, 210.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "C", "C", 100.0, 210.0, 30.0, 30.0);
dialog::confirmbutton(dialogSpec, "+/-", "+/-", 20.0, 250.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "1/x", "1/x", 60.0, 250.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "=", "=", 100.0, 250.0, 70.0, 30.0);
dialog::confirmbutton(dialogSpec, "/", "/", 140.0, 90.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "*", "*", 140.0, 130.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "-", "-", 140.0, 170.0, 30.0, 30.0); dialog::confirmbutton(dialogSpec, "+", "+", 140.0, 210.0, 30.0, 30.0);
// add listener for numbers... for (; c < 10; ++c) { sprintf(tmp, "%d", c); dialog::listen(tmp, numberClicked); }
// ... dot ... dialog::listen(".", dotClicked);
// ... +/- ... dialog::listen("+/-", negateClicked); dialog::listen("1/x", invertClicked); dialog::listen("+", operatorClicked); dialog::listen("-", operatorClicked); dialog::listen("*", operatorClicked); dialog::listen("/", operatorClicked); dialog::listen("=", operatorClicked); dialog::listen("C", operatorClicked);
dialog::show(dialogSpec);
return 0; }

Seit
30.07.2025, 07:35 Uhr
Letzte Änderung
Plugin Version 4.1.7
Autor
Leo Quensel

Alphabetic index HTML hierarchy of classes or Java