3.33 DM_GetToolkitDataEx

Diese Funktion ist eine erweiterte Form von DM_GetToolkitData und erlaubt über die Parameter data und options die Übergabe zusätzlicher Werte bzw. Strukturen.

Verfügbarkeit

ab IDM-Version A.05.02.e

FPTR DML_default DM_EXPORT DM_GetToolkitDataEx
(
  DM_ID objectID,
  DM_Attribute attr,
  FPTR data,
  DM_Options options
)

Parameter

-> DM_ID objectID

Dieser Parameter ist der Identifikator des Objekts, dessen fenstersystemspezifischen Daten erfragt werden sollen.

-> DM_Attribute attr

Dieser Parameter gibt das Attribut an, das abgefragt werden soll.

<-> FPTR data

Pointer auf die ToolkitDaten-Struktur DM_ToolkitDataArgs-Struktur. Diese dient dabei zur Kommunikation mit der DM_GetToolkitDataEx-Funktion. Sie erlaubt die Übergabe und Rückgabe verschiedener Wertetypen.

Für die kompatible Verwendung zu DM_GetToolkitData sollte data = NULL sein.

-> DM_Options options

Zurzeit unbenutzt, sollte mit 0 verwendet werden.

Rückgabewert

Je nach Art des abgefragten Wertes liefert diese Funktion die entsprechenden auf FPTR konvertierten Werte.

Anmerkungen

Die Funktion DM_GetToolkitDataEx existiert nicht für die Serverseite und sollte dort nicht aufgerufen werden!

3.33.1 Motif

Mit Hilfe dieser Funktion können die für X-Windows notwendigen Daten wie window-id, widget und color abgefragt werden. Die Bedeutungen dieser Datentypen werden im entsprechenden X-Windows-Handbuch erklärt.

Folgende Werte sind für die Attribute zugelassen:

Attribut

data Objekt

Bedeutung

AT_CanvasData

(FPTR) 0 canvas

Dieser Wert liefert die benutzerspezifischen Daten einer Canvas. Diese Daten wurden von einer Canvas-Callback-Funktion gesetzt und beinhalten benutzerspezifische Daten (siehe auch Kapitel „Strukturen für Canvas-Funktionen“ im Handbuch „C-Schnittstelle - Grundlagen“).

AT_CellRect DM_ToolkitDataArgs *data tablefield

Ermittelt für ein Tablefield die Koordinaten und Größe einer Zelle in IDM-Pixel (hierzu muss das data->index Feld auf den gewünschten Index gesetzt werden (argmask = DM_TKAM_index)). Diese werden im rectangle-Feld der übergebenen DM_ToolkitDataArgs-Strukur abgelegt. Mit Zelle ist der rechteckige Bereich im Tablefield gemeint, in dem Schatten, Fokus- und Aktivierungsrahmen und Text gezeichnet werden. Nicht zur Zelle gehören die zwischen den Zellen gezeichneten Linien.

Die gelieferten Koordinaten sind relativ zur linken oberen Ecke des Tablefield zu sehen.

Wenn Position und Größe einer Zelle ermittelt werden konnten, liefert DM_GetToolkitDataEx den Zeiger auf die angegebene DM_ToolkitDataArgs-Struktur zurück, in allen anderen Fällen NULL. Position und Größe können nur ermittelt werden, wenn sowohl Tablefield als auch Zeile und Spalte der Zelle sichtbar geschaltet sind und die Zelle ganz oder teilweise im Tablefield sichtbar ist. Eine konkrete, absolute Unsichtbarkeit (z.B. weil das Fenster außerhalb des sichtbaren Bildschirms liegt oder anderweitig verdeckt ist) kann trotz gelieferter Position und Größe nicht ausgeschlossen werden und ist fenstersystemabhängig.

AT_DPI DM_ToolkitDataArgs *data 0

Liefert - mit gesetztem argmask=0 - die DPI-Informationen des Default-Bildschirms (null-ObjektID) oder die DPI-Informationen des Bildschirms auf dem das angegebene Oberflächenobjekt sichtbar gemacht dargestellt wird. Die Funktion setzt die argmask um auf DM_TKAM_dpi | DM_TKAM_scaledpi. Im dpi-Feld der „ToolkitDaten-Struktur DM_ToolkitDataArgs“ befindet sich dann der Default-DPI-Wert. In der Sub-Struktur scale.dpi der DPI-Wert auf vom vom Default-DPI-Wert die Skalierung stattfindet. Das Element scale.factor liefert ausserdem den Skalierungsfaktor in %. Bei einer HiDPI-awaren IDM-Anwendung auf einem Bildschirm mit 200% Skalierung findet man dann typischerweise die Werte dpi=96 ,scale.dpi=192, scale.factor=200 vor. Eine Umrechnung von Pixel-Koordinaten des IDM's in reale Bildschirmpixel kann dann über *scale.factor/100 oder *scale.dpi/dpi erfolgen.

AT_IsNull (FPTR) 0 font

Liefert einen Wert<>0 wenn die Schriftart ein UI_NULL_FONT ist.

AT_ObjectID DM_ToolkitDataArgs *data 0

Ermittelt für ein Widget die entsprechende Objekt-ID. Wenn erfolgreich, wird der data-Pointer zurückgegeben und in der DM_ToolkitDataArgs-Struktur ist die ID in der data-Substruktur gespeichert.

AT_Tile (FPTR) 0 tile Siehe auch AT_XTile

AT_XColor

(FPTR) 0 color

Dieser Wert liefert die X-Windows-spezifische Struktur für die angegebene Farbe zurück. Der Rückgabewert ist dann vom Typ Pixel. Das angegebene Objekt muss eine Farbe sein.

AT_XColormap (FPTR) 0 0 Dieser Wert liefert die Colormap des Default-Screens zurück.

AT_XCursor

(FPTR) 0 cursor

Dieser Wert liefert die X-Windows-spezifische Struktur für den angegebenen Cursor. Der Rückgabewert ist dann vom Typ Cursor. Das angegebene Objekt muss ein Cursor sein.

AT_XDepth (FPTR) 0 0 Dieser Wert liefert die Farbtiefe des Default-Screens als int.

AT_XDisplay

(FPTR) 0 0

Dieser Wert liefert die Anzeige des angegebenen Dialogs. Der Rückgabewert der Funktion ist dann vom Typ Display *.

AT_XFont

(FPTR) 0 font

Dieser Wert liefert die X-Windows-spezifische Struktur für den angegebenen Zeichensatz zurück. Der Rückgabewert der Funktion ist vom Typ XFontStruct *, sofern zur Font-Definition passend. Andernfalls NULL.

AT_XFontSet (FPTR) 0 font Dieser Wert liefert die X-Windows-spezifische Struktur für den angegebenen Zeichensatz zurück. Der Rückgabewert der Funktion ist vom Typ XFontSet, sofern zur Font-Definition passend. Andernfalls NULL.
AT_XmFontList (FPTR) 0 font Dieser Wert liefert die X-Windows-spezifische Struktur für den angegebenen Zeichensatz zurück. Der Rückgabewert der Funktion ist vom Typ XmFontList, sofern zur Font-Definition passend. Andernfalls NULL.
0 oder sichtbare IDM Objekte

Liefert die Default-Schriftart die typischerweise vom IDM bei einem nicht gesetzten font-Attribut verwendet wird.

AT_XScreen

(FPTR) 0 0

Dieser Wert liefert den Bildschirm zu dem angegebenen Dialog. Der Rückgabewert der Funktion ist dann vom Typ Screen.

AT_XShell

(FPTR) 0 0

Dieser Wert liefert das Shell-Widget eines Objekts. Der Rückgabewert der Funktion ist ein Widget.

AT_XtAppContext (FPTR) 0 0 Liefert den Application Context.

Returns the Application Context.

AT_XTile

(FPTR) 0 tile

Dieser Wert liefert die X-Windows-spezifische Struktur eines Musters tile zurück. Der Rückgabewert der Funktion ist dabei davon abhängig, wie das Muster definiert worden ist. Wurde es in einer externen Datei im gif-Format hinterlegt, wird ein XImage* zurückgeliefert; wurde es direkt in der Dialog Manager Datei definiert, wird ein Pixmap zurückgegeben.

DM_ToolkitDataArgs *data tile

Dieser Wert liefert die X-Windows-spezifische Struktur eines Musters tile zurück (mit gesetztem argmask=0 oder armask=DM_TKAM_scaledpi). Wenn Bildinformationen vorliegen, werden folgende Informationen in der „ToolkitDaten-Struktur DM_ToolkitDataArgs“-Struktur zurück geliefert:

  • DM_TKAM_tile: In der tile-Substruktur den Bildtype (DM_GFX_PIXMAP oder DM_GFX_XIMAGE)in gfxtype. Fuer eine PIXMAP die Bildinformation im pixmap-Member und die Transparenz-Clipmaske im trans_mask-Member, Bei eine XIMAGE wird die vollstaendige Bildinformation im ximage-Member geliefert.

  • DM_TKAM_rectangle: Breite und Hoehe des Bildes in der rectangle Substruktur

  • DM_TKAM_dpi: Die DPI-Informationen analog zum AT_DPI-Aufruf.

  • DM_TKAM_scaledpi: Die DPI-Informationen analog zum AT_DPI-Aufruf.

AT_XVisual (FPTR) 0 0 Dieser Wert liefert eine Visual Struktur für den Default-Screen.

AT_XWidget

(FPTR) 0 IDM Objekte

Dieser Wert liefert das Widget zu dem angegebenen Objekt. Der Rückgabewert der Funktion ist dann vom Typ Widget.

AT_XWindow

(FPTR) 0 IDM Objekte

Dieser Wert ist das zu gehörende Fenster. Der Rückgabewert der Funktion ist dann vom Typ Window.

Zu Beachten bei Multiscreendialogen

Der Aufruf mit AT_ XTile bzw. AT_XColor liefert immer nur das tile bzw. die color des default Screen zurück (siehe auch Kapitel „Multiscreen Support unter Motif“ im Handbuch „Programmiertechniken“).

3.33.2 Microsoft Windows

Mit Hilfe dieser Funktion können die für Microsoft Windows notwendigen Daten erfragt werden, wie window handle, instance handle und color.

Die Bedeutung dieser Datentypen wird im entsprechenden Microsoft Windows Handbuch erklärt.

Folgende Werte sind für die Attribute zugelassen:

Attribut

data

Objekt

Rückgabewert

Bedeutung

AT_CanvasData

(FPTR) 0

canvas

FPTR

Über dieses Attribut können die benutzerspezifischen Daten eines Canvas-Objekts erfragt werden. Diese Daten wurden von DM_SetToolkitData oder einer Canvas-Callback-Funktion gesetzt und beinhalten jegliche benutzerspezifischen Daten (Siehe auch Kapitel „Strukturen für Canvas-Funktionen“).

AT_CellRect DM_ToolkitDataArgs *data tablefield data

Dieses Attribut bestimmt die Koordinaten einer Tablefield Zelle in IDM Pixel. Hierzu muss das data->index Feld auf den gewünschten Index gesetzt werden (Bit DM_TKAM_index in data->argmask nicht vergessen). In data->argmask wird das Bit DM_TKAM_rectangle gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“). Mit Zelle ist der rechteckige Bereich im Tablefield gemeint, in dem Schatten, Fokus- und Aktivierungsrahmen und Text gezeichnet werden. Nicht zur Zelle gehören die zwischen den Zellen gezeichneten Linien. Die gelieferten Koordinaten sind relativ zur linken oberen Ecke des Tablefield zu sehen. Wenn Position und Größe einer Zelle ermittelt werden konnten, liefert DM_GetToolkitDataEx den Zeiger auf die angegebene DM_ToolkitDataArgs-Struktur zurück, in allen anderen Fällen (FPTR) 0. Position und Größe können nur ermittelt werden, wenn sowohl Tablefield als auch Zeile und Spalte der Zelle sichtbar geschaltet sind und die Zelle ganz oder teilweise im Tablefield sichtbar ist. Eine konkrete, absolute Unsichtbarkeit (z.B. weil das Fenster außerhalb des sichtbaren Bildschirms liegt oder anderweitig verdeckt ist) kann trotz gelieferter Position und Größe nicht ausgeschlossen werden und ist Fenstersystem-abhängig.

AT_ClipboardText

(FPTR) 0

setup oder 0

DM_String

Dieses Attribut gibt den Textinhalt des Microsoft Windows Clipboards zurück. Der Rückgabewert wird gepuffert und ist bis zur erneuten Abfrage des Attributes gültig. Auch ein Setzen des Attributes macht den Puffer ungültig. Um den String ohne Änderung des Clipboards freizugeben, dient der Aufruf:

DM_SetToolkitData(0, AT_ClipboardText, (FPTR) 0, 0);

AT_Color

(FPTR) 0

color

COLORREF

Siehe auch AT_XColor

tile

HPALETTE

Siehe auch AT_XColor

AT_DataType

(FPTR) 0

tile

int

Die Abfrage ist nur noch aus Kompatibilitätsgründen vorhanden. Es sollte mit DM_GetToolkitDataEx das Attribute AT_Tile mit gesetztem "data" Parameter verwendet werden.
Dieses Attribut gibt den Typ des Musters zurück. Die Zuordnung ist bei AT_XTile beschrieben.

AT_DPI

(FPTR) 0

IDM Objekte

int

Siehe auch AT_GetDPI

DM_ToolkitDataArgs *data

setup oder 0

int

Dieses Attribut gibt den System DPI Wert wie bei „AT_GetDPI“ zurück. Wenn „DM_TKAM_handle“ gesetzt ist, wird stattdessen der DPI Wert des Microsoft Windows Control, dessen Window Handle (HWND) in „data->handle“ angegeben ist, ermittelt. Außerdem werden in „data->argmask“ die Bits „DM_TKAM_dpi“ und „DM_TKAM_scaleddpi“ gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“).

Übrige IDM Objekte

int

Dieses Attribut gibt den DPI Wert des Objektes wie bei AT_GetDPI zurück. Außerdem werden in data->argmask die Bits DM_TKAM_dpi und DM_TKAM_scaleddpi gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“).

AT_Font

(FPTR) 0

font

HFONT

Siehe auch AT_XFont

IDM Objekte HFONT Siehe auch AT_XFont
setup HFONT Siehe auch AT_XFont

AT_GetDPI

(FPTR) 0

setup oder 0

int

Dieses Attribut gibt den System DPI Wert zurück. Siehe Hinweis unten.

IDM Objekte

int

Dieses Attribut gibt den DPI Wert des Objektes zurück. Dieser ist abhängig zu welchem Monitor das Objekt zugeordnet ist. Siehe Hinweis unten.

HWND data

setup oder 0

int

Dieses Attribut gibt den DPI Wert des Microsoft Windows Objektes, dessen Handle (HWND) in data übergeben wurde, zurück. Dieser ist abhängig zu welchem Monitor das Objekt zugeordnet ist. Siehe Hinweis unten.

AT_IsNull   font oder color int

Hiermit kann abgefragt werden, ob die Resource auf NULL definiert wurde (UI_NULL_FONT bzw. UI_NULL_COLOR). Die Resource wurde auf NULL definiert, wenn der Rückgabewert nicht 0 ist.

Hereby it can be queried whether the resource was defined to NULL (UI_NULL_FONT or UI_NULL_COLOR). The resource has been defined to NULL if the return value is not 0.

AT_maxsize

(FPTR) 0

setup oder 0

int

Dieses Attribut gibt die Anzahl der noch freier WSI-ID’s zurück.

Achtung: Die Anzahl noch verfügbarer WSI-IDs sagt nichts darüber aus, wie viele Objekte tatsächlich noch sichtbar gemacht werden können! Es ist die maximale Obergrenze.

AT_ObjectID DM_ToolkitDataArgs *data setup oder 0 data

Dieses Attribut gibt die DM_ID eines Microsoft Windows Objektes zurück. Hierzu muss das data->handle Feld auf den Microsoft Windows Fenster Handle (HWND) gesetzt werden (Bit DM_TKAM_handle in data->argmask nicht vergessen). Wenn eine Dialog Manager ID ermittelt werden kann, wird der Rückgabewert auf data gesetzt, das data->argmask Bit DM_TKAM_data gesetzt und das data->data Feld mit der DM_ID gefüllt.

AT_Raster

(FPTR) 0

dialog

editbox

groupbox

layoutbox

module

notebook

notepage

spinbox

splitbox

statusbar

tablefield

toolbar

Window

DWORD

Dieses Attribut gibt die Größe des am Objekt definierten Rasters in IDM Pixel zurück. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

font

DWORD

Dieses Attribut gibt die Größe der Schriftart in IDM Pixel, wie sie für die Rasterberechnung verwendet wird, zurück. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

AT_SrollbarDimension

(FPTR) 0

groupbox

notepage

window

DWORD

Dieses Attribut gibt die Breite der senkrechten und die Höhe der waagrechten Scrollbar in IDM Pixel zurück. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

AT_Size

(FPTR) 0

dialog

module

DWORD

Dieses Attribut gibt die Größe des Arbeitsbereichs des primären Monitors in IDM Pixel zurück. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

font

DWORD

Dieses Attribut gibt die Größe der Schriftart in IDM Pixel zurück. Die Breite wird anhand des Referenzstrings berechnet, falls einer angegeben ist. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

Übrige IDM Objekteaußer menubox, menuitem und menuseparator

DWORD

Dieses Attribut gibt die Größe des Objektes in IDM Pixel zurück. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

AT_Tile

(FPTR) 0

color

HBRUSH

Siehe auch AT_XTile

tile

HANDLE

Die Abfrage ist nur noch aus Kompatibilitätsgründen vorhanden. Es sollte DM_GetToolkitDataEx mit gesetztem "data" Parameter verwendet werden.

Siehe auch AT_XTile

AT_toolhelp

(FPTR) 0

setup oder 0

HWND

Dieses Attribut gibt den Microsoft Windows Handle des tooltip Controls zurück, welches vom Dialog Manager zur Darstellung des .toolhelp Attributs verwendet wird.

Siehe auch „DM_GetToolkitDataEx“ weiter unten.

AT_value

(FPTR) 0

RTF edittext

DM_String

Dieses Attribut gibt den vollständigen Inhalt, also mit allen Formatierungsanweisungen usw., eines RTF-Eingabefeldes zurück.

AT_VSize

(FPTR) 0

IDM Objekte außer menubox, menuitem und menuseparator

DWORD

Dieses Attribut gibt die virtuelle Größe des Objektes in IDM Pixel zurück. Gibt es keine virtuelle Größe, dann wird die reale Größe in IDM Pixel zurückgegeben. Die Breite und Höhe ist in ein DWORD gepackt, siehe Hinweis unten.

AT_Widget

(FPTR) 0

USW

HWND

Siehe auch AT_XWidget

AT_WinHandle

(FPTR) 0

dialog

module

setup oder 0

HINSTANCE

Dieses Attribut gibt den Microsoft Windows Handle der Anwendungsinstanz zurück.

menubox

HMENU

Dieses Attribut gibt den Microsoft Windows Menu Handle zurück.

menuitem

menuseparator

HMENU

Dieses Attribut gibt den Microsoft Windows Menu Handle des umgebenden menubox Objekts zurück.

Übrige IDM Objekte

HWND

Dieses Attribut gibt den Microsoft Windows Handle des Objekts zurück. Die Gruppierungsobjekte (groupbox, notepage, window, …) sind meist aus mehreren Microsoft Windows Objekten aufgebaut, bei diesen wird das Handle des Client-Fensters (das Fenster in dem die Kindobjekte angelegt werden) zurückgegeben.

AT_wsidata

(FPTR) 0

cursor

HCURSOR

Siehe auch AT_XCursor

font

HFONT

Siehe auch AT_XFont

tile

HANDLE

Die Abfrage ist nur noch aus Kompatibilitätsgründen vorhanden. Es sollte DM_GetToolkitDataEx mit gesetztem "data" Parameter verwendet werden.

Siehe auch AT_XTile

Übrige IDM Objekte

HWND

Dieses Attribut gibt den Microsoft Windows Handle des äußeren Microsoft Windows Objektes zurück, das innere kann mit AT_WinHandle erfragt werden.

AT_XColor

(FPTR) 0

color

COLORREF

Dieses Attribut gibt die Microsoft Windows-spezifische Struktur für die angegebene Farbe zurück. Der Zugriff auf die Farbwerte erfolgt mit den entsprechenden Makros von Microsoft Windows:

COLORREF u1RGB = (COLORREF) (size_t) DM_GetToolkitDataEx(colorID, AT_XColor, (FPTR) 0, 0);

BYTE ucRed = GetRValue(u1RGB);

BYTE ucGreen = GetGValue(u1RGB);

BYTE ucBlue = GetBValue(u1RGB);

tile

HPALETTE

Dieses Attribut gibt die Microsoft Windows Farbpalette, die von dem Muster verwendet wird, zurück.

AT_XCursor

(FPTR) 0

cursor

HCURSOR

Dieses Attribut gibt den Microsoft Windows Cursor Handle zurück.

AT_XFont

(FPTR) 0

font

HFONT

Dieses Attribut gibt den Microsoft Windows Font Handle zurück.

IDM Objekte HFONT

Dieses Attribut gibt den Microsoft Windows Font Handle der an diesem Objekt verwendeten Schriftart zurück.

setup HFONT

Es wird der Font-Handle der verwendeten Standardschriftart zurück geliefert.

AT_XTile

(FPTR) 0

color

HBRUSH

Dieses Attribut gibt eine Microsoft Windows Brush der Farbe zurück. Diese Brush kann zum Füllen des Hintergrunds verwendet werden.

(FPTR) 0

tile

HANDLE

Die Abfrage von AT_wsidata, AT_Tile und AT_XTile ohne Angabe des "data" Parameters ist nur noch aus Kompatibilitätsgründen vorhanden. Es sollte der "data" Parameter verwendet werden. Dieses Attribut gibt die Microsoft Windows spezifische Struktur für das Muster (tile) wie in Version A.06.03.a und früher zurück. Hierzu müssen GDI Objekte zusätzlich angelegt werden. Um die neuen Microsoft Direct2D Daten, die der IDM intern verwendet, zu erhalten, muss der "data" Parameter gesetzt werden.
Der Typ des Microsoft Windows Handle ist abhängig von AT_DataType, wobei AT_DataType erst nach der Abfrage von AT_wsidata, AT_Tile oder AT_XTile abgefragt werden darf:

  • DMF_TlkDataIsIcon: HICON

  • DMF_TlkDataIsWMF: HMETAFILE

  • DMF_TlkDataIsEMF: HENHMETAFILE

  • Sonst: HBITMAP

WICHTIG: Die zurückgelieferten Daten sollten nicht gespeichert werden, da diese automatisch freigegeben werden, wenn die tile Resource von keinem sichtbaren IDM Objekt mehr verwendet wird.
Hinweis: Wenn mittels DM_SetToolkitData Daten gesetzt wurden, dann werden die gesetzten und nur die gesetzten Daten zurückgeliefert.

DM_ToolkitDataArgs *data

tile

HANDLE / LPUNKNOWN

Dieses Attribut gibt die Microsoft Windows spezifische Struktur für das Muster (tile) wie in Version A.06.03.a und früher zurück. Hierzu müssen GDI Objekte zusätzlich angelegt werden. Um die neuen Microsoft Direct 2D Daten, die der IDM intern verwendet, zu erhalten, muss in "data->argmask" das "DM_TKAM_tile_req" Bit gesetzt werden. Die gewünschten Datentypen werden in "data->tile_req" angegeben, folgende Werte sind möglich:

- DM_GFX_BMP: GDI Bitmap Handle (HBITMAP)
- DM_GFX_WMF: GDI Metafile Handle (HMETAFILE)
- DM_GFX_EMF: GDI Enhanced Metafile Handle (HENHMETAFILE)
- DM_GFX_ICO: GDI Icon Handle (HICON)
- DM_GFX_D2D1BMP: Direct2D Bitmap (ID2D1Bitmap *)
- DM_GFX_D2D1SVG: Direct2D SVG Documnet (ID2D1SvgDocument *)
- DM_GFX_D2D1EMF: Direct2D Metafile (ID2D1GdiMetafile *)

Diese Werte können mit "bitwise or" verknüpft angegeben werden. Es wird dann einer davon ausgewählt, der Datentyp DM_GFX_BMP wird immer als Fallback verwendet (auch wenn dieser nicht explizit angegeben wurde). Falls notwendig und möglich wird auf einen der gewünschten Datentypen gewandelt, hierdurch werden gegebenenfalls zusätzliche Ressourcen verbraucht.

Das Muster wird für einen angeforderten DPI Wert bestimmt. Dieser wird in der angegebenen Reihenfolge aus den folgenden Angaben ermittelt:

  • Ist in data->argmask das DM_TKAM_handle Bit gesetzt, dann wird der DPI Wert des Microsoft Windows Control ermittelt dessen Windows Handle (HWND) im data->handle Feld steht.

  • Andernfalls, wenn in data->argmask das DM_TKAM_scaledpi Bit gesetzt ist, dann wird der System DPI Wert ermittelt (entspricht dem Vergrößerungsfaktor des primären Monitors).

  • Wenn keiner der vorherigen Bedingungen erfüllt war, dann wird die originale Bildgröße, also der DPI Wert für den die Bilder entworfen wurden verwendet.

Außerdem werden in data->argmask die Bits DM_TKAM_tile, DM_TKAM_rectangle, DM_TKAM_dpi und DM_TKAM_scaleddpi gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“), wobei die DPI Werte auf den angeforderten DPI Wert gesetzt werden und das Rectangle wird auf die Größe gesetzt, die zu diesem angeforderten DPI Wert passt. Achtung: Dies bedeutet nicht, dass die Bilddaten die entsprechende Größe haben, diese müssen eventuell skaliert werden.

Der Rückgabewert entspricht entweder data->tile.data oder data->tile.iunk, siehe DM_ToolkitDataArgs.

Hinweis: Den Datentyp des Rückgabewertes steht entweder im Eintrag data->tile.gfxtype oder data->tile.datatype. Die Abfrage von AT_DataType ist obsolet und darf bei Verwendung des "data" Parameters nicht mehr verwendet werden.

WICHTIG: Die zurückgelieferten Daten sollten nicht gespeichert werden, da diese automatisch freigegeben werden, wenn die tile-Ressource von keinem sichtbaren IDM-Objekt mehr verwendet wird.

Hinweis: Wenn mittels DM_SetToolkitData Daten gesetzt wurden, dann werden die gesetzten und nur die gesetzten Daten zurückgeliefert.

AT_XWidget

(FPTR) 0

USW

HWND

Dieses Attribut gibt den Microsoft Windows Handle des USW Objektes zurück.

Hinweis zum Objekt und Attribut

Das beim Aufruf angegebene Objekt muss im Allgemeinen sichtbar und damit im WSI angelegt sein, damit die zurückgegebenen Daten Sinn machen. Ressourcen werden in der Regel beim Aufruf angelegt. Wird ein Objekttyp angegeben, der beim betreffenden Attribut nicht erwähnt ist, wird in der Regel eine Fehlermeldung in die Logdatei geschrieben und (FPTR) 0 zurückgegeben.

Hinweis zum Zugriff auf den Rückgabewert

Der Rückgabewert der Funktion ist ein FPTR bzw. void *, dieser muss auf den dokumentierten Rückgabewert gecastet werden, um beim Kompilieren keine Warnungen zu erhalten.

Da ein void * Zeiger auf jeden beliebigen anderen Zeiger gecastet werden kann, reicht bei allen Zeiger-Datentypen ein einfacher Castoperator. Zu den Zeiger-Datentypen zählen zum Beispiel sämtliche Microsoft Windows Handle, wie zum Beispiel HWND, HFONT, ... :

HWND hwnd = (HWND) DM_GetToolkitDataEx(idObj, AT_wsidata, (FPTR) 0, 0);

Bei Zahlenwerten muss meist ein Zwischencast eingefügt werden, da die Größe des Datenwerts beim Cast von einem Zeiger zu einer Zahl erhalten bleiben muss, um Warnungen zu vermeiden. Hierzu kann der Datentyp size_t verwendet werden, da dieser per Definition dieselbe Größe wie ein Zeiger besitzt. Anschließend kann dann auf einen kleineren Zahlentyp gecastet werden:

DM_UInt2 val = (DM_UInt2) (size_t) DM_GetToolkitDataEx(idObj, AT_wsidata, (FPTR) 0, 0);

Hinweis Breite und Höhe in DWORD gepackt

Unter Microsoft Windows werden häufig Breite und Höhe in eine DWORD gepackt. Dies wird vom IDM zum Teil auch so gehandhabt. Die einzelnen Werte können dann mit den Microsoft Windows Makros LOWORD und HIWORD extrahiert werden:

DWORD size = (DWORD) (size_t) DM_GetToolkitDataEx(id, AT_Size, (FPTR) 0, 0);

WORD width = LOWORD(size);

WORD height = HIWORD(size);

Hinweis IDM Pixel

Der IDM für Windows 11 unterstützt hohe Auflösungen. Um Auswirkungen auf bestehende Dialogskripte so gering wie möglich zu halten, werden vom ISA Dialog Manager virtuelle Pixelkoordinaten verwendet. Diese basieren auf der Größe einer Anwendung, die hohe Auflösungen nicht unterstützt, wie zum Beispiel IDM für Windows 10.

Hinweis zu DPI-Werten

Achtung, alle DPI Werte sind dynamisch und können durch den Anwender geändert werden. Zum Beispiel können IDM Objekten auf einen anderen Monitor verschoben werden oder der Anwender stellt über die Systemsteuerung andere Vergrößerungsfaktoren ein.

Ist die Anwendung nicht DPI Aware (zum Beispiel IDM für Windows 10) dann wird immer der Standard DPI Wert von 96 verwendet.

Hinweis zu NULL-Werten bei Resourcen

Die Funktion DM_GetToolkitDataEx liefert unter Microsoft Windows bei den font- und color Resourcen einen NULL Wert zurück, wenn die Resource auf UI_NULL_FONT bzw. UI_NULL_COLOR definiert wurde. Dies betrifft folgende Attribute:

Hinweis IDM Pixel

3.33.3 Qt

Folgende Werte sind für die Attribute zugelassen:

Attribut

data

Objekt

Rückgabewert

Bedeutung

AT_Application

(FPTR) 0

0

FPTR auf QApplication

Über dieses Attribut kann die der Anwendung zu Grunde liegende QApplication erfragt werden.

AT_CanvasData (FPTR) 0 cancas FPTR Über dieses Attribut können die benutzerspezifischen Daten eines Canvas-Objekts erfragt werden. Diese Daten wurden von DM_SetToolkitData oder einer Canvas-Callback-Funktion gesetzt und beinhalten jegliche benutzerspezifischen Daten (Siehe auch Kapitel „Strukturen für Canvas-Funktionen“).

AT_Color

(FPTR) 0

color

QColor / QBrush

Über dieses Attribut kann die von der Color-Ressource verwendete Farbe oder Farbverlauf (als QBrush) erfragt werden. Achtung: Es sollte als erstes immer auf eine zulässige Farbe (QColor) geprüft werden, da sich ein QBrush automatisch in eine QColor casten lässt, welche dann jedoch eine uninitialisierte aber zulässige Farbe darstellt.

AT_DPI

(DM_ToolkitDataArgs *data

0

int

Dieses Attribut gibt den System DPI Wert zurück.

Außerdem werden in data->argmask die Bits DM_TKAM_dpi und DM_TKAM_scaleddpi gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“).

AT_Font

(FPTR) 0

font

QFont

Über dieses Attribut kann die von der Font-Ressource verwendete QFont erfragt werden.

AT_FontName

(FPTR) 0

font

char*

Über dieses Attribut kann der Name der von der Font-Ressource verwendeten QFont erfragt werden.

AT_ObjectID

DM_ToolkitDataArgs *data

0

data

Dieses Attribut gibt die DM_ID eines Qt Widgets zurück. Hierzu muss beim Zeiger auf DM_ToolkitDataArgs-Struktur das data->widget Feld auf das QWidget und argmask = DM_TKAM_widget gesetzt sein. Wenn eine Dialog Manager ID ermittelt werden kann, wird der Rückgabewert auf data gesetzt, das data->argmask Bit DM_TKAM_data gesetzt und das data->data Feld mit der DM_ID gefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“).

AT_Tile

(FPTR) 0

tile

QPixmap

Über dieses Attribut kann das QPixmap von einem Muster (tile) erfragt werden.

AT_XTile

(FPTR) 0

tile

QPixmap

Siehe AT_Tile

DM_ToolkitDataArgs *data

tile

QPixmap

Dieses Attribut gibt die Qt spezifische Struktur für das Muster (tile) zurück.
Außerdem werden in data->argmask die Bits DM_TKAM_tile, DM_TKAM_rectangle, DM_TKAM_dpi und DM_TKAM_scaleddpi gesetzt und die entsprechenden Felder ausgefüllt (siehe Beschreibung „ToolkitDaten-Struktur DM_ToolkitDataArgs“).
Der Rückgabewert entspricht data->tile.pixmap.

AT_XWidget

(FPTR) 0

IDM Objekte

QWidget

Dieses Attribut ermittelt das zu einer DM_ID gehörende QWidget.

Siehe auch

Funktion DM_GetToolkitDataEx