Lade...
 

Link (Widget)

Link

Link(name~aliasName, flags, x, y, w, h, text)

198487

 

Parameter

Parameter   Beschreibung
name   Identifikator / Zugriffsausdruck (FillWindow)
aliasName   ein zusätzlicher Identifikator
flags   Flags
x * Position X (in Minicells)
y * Position Y (in Minicells)
w   Breite (in Minicells)
h   Höhe (in Minicells)
text   Text als String oder (mehrsprachig) als Multiple-String-Konstante

* - Pflichtparameter

Beschreibung

Ein Link-Widget ähnelt stark dem Prompt. Das Link-Widget kann genauso wieder Prompt beliebigen Text darstellen, der vom Nutzer nicht editierbar ist und kann genauso wie der Prompt per FillWindow mit STRINGs oder MLSTRINGs aus Objektzugriffspfaden befüllt werden. Da Link-Widgets nicht editierbar sind, reagieren sie aber nicht auf DrainWindow.

Die Widget-Breite ist ähnlich wie beim Prompt optional. Ist keine Breite angegeben, dann errechnet das Widget die notwendige Mindestbreite, um den Text anzuzeigen. Da das Widget auch mehrzeilige Texte (Zeilenumbruch: \n) darstellen kann, kann die Höhe ebenfalls festgelegt oder automatisch anhand der Schrifthöhe und Anzahl an Zeilen errechnet werden.

Im Gegensatz zum Prompt interpretiert das Link-Widget den Inhalt des Strings als vereinfachtes HTML-Markup, was einem ermöglicht (mehrere) Textpassagen als Link zu markieren. Das einzig erlaubte Markup-Element ist das Anchor-Element für das die folgenden Attribute gültig sind:

Link Attributes

Da das Markup innerhalb eines Strings angegeben werden muss, erlaubt das Link-Widget die Attributwerte alternativ zu den escapten Anführungszeichen (\") auch in einfache Hochkommata einzuschließen (') oder falls der Attributwert keine Leerzeichen enthält auch gänzlich ohne umschließende Zeichen anzugeben.

Attribut Bedeutung
href

Die Link-url. Wird das Link-Element angeklickt, dann öffnet sich die angegebene Seite im Browser. Läuft ClassiX auf einer nativen Windows-Umgebung, dann können hier auch Ordner- & Dateipfade angegeben werden, die einem Klick auf das Link-Element im Explorer geöffnet werden.

Wenn das Link-Element ein href-Attribut hat, dann wird kein SELECT an das Widget gesendet, egal, ob id gesetzt ist, oder nicht. Die id wird in dem Fall ignoriert.

id

Ein Identifikator für das Link-Element. Dieser Identifikator muss ein gültiger InstantView-Identifier sein (Beginnt mit Buchstabe oder _ und enthält keine Sonderzeichen/Leerzeichen), ansonsten liefert das Link-Widget eine Fehlermeldung. Dieses Attribut wird ignoriert, falls das gleiche Link-Element bereits ein href-Attribut gesetzt hat. 

Ist kein href-Attribut gesetzt, dann erhält das Link-Widget bei einem Klick auf das Link-Element ein SELECT@id-Event (in Analogie zu Zellen-Widgets), wobei id durch die im Attribut angegebene id ersetzt wird. Hierdurch kann bei mehreren Link-Elementen innerhalb eines Link-Widgets eine Unterscheidung getroffen werden, welches Link-Element angeklickt wurde. Es ist erlaubt eine id mehrfach zu verwenden.

Enthält das Link-Element weder href noch id, dann wird bei einem Klick auf das Link-Element nur SELECTausgelöst.

alt Dieses Attribut enthält einen Tooltip-Text, der eingeblendet wird, sobald der Nutzer mit der Maus über das Link-Element hovert. Im Gegensatz zu anderen Widgets reagiert Link nicht auf das TOOLTIP-Flag und schickt auch keine TOOLTIP-Message, damit jedes Link-Element einen eigenen Tooltip definieren kann.

Der Link-Text selbst darf kein weiteres Markup enthalten. Zeilenumbrüche (\n) innerhalb des Link-Texts sind aber erlaubt. Grundlage für die native Darstellung des Widgets ist das SysLink-Control.

Die Link-Elemente reagieren nur auf einen regulären Mausklick (oder ein Enter/Space wenn sie selektiert sind). Entsprechend erhält das Link-Widget nur SELECT- oder SELECT@id-Events. Andere Events unterstützt das Widget aktuell nicht.

Ist das Link-Widget selektiert, dann kann der Nutzer per STRG+TAB die einzelnen Link-Elemente durchschalten.

MorphIT-Formatierung

4.3.0

Wird ein Link-Widget per MorphIT im Browser dargestellt, kann die Darstellung über CSS-Angaben angepasst werden.

Hierfür ist der Slot morphIt.format vorgesehen. In diesem kann ein String abgelegt werden, der der Syntax eines JSON-Objekts entspricht und für einzelne Selektoren die zu setzenden CSS-Eigenschaften definiert. Alle CSS-Angaben werden nur lokal innerhalb des Widgets ausgewertet. Der leere Selektor "" bezieht sich auf das gesamte Link-Widget.

{ "<selector>": { "<property>": "<value>" } }
Beispiel:
{ "": { "height": "auto !important", "font-size": "large" }, "a": { "color" : "black" }, "a:hover": { "color" : "black", "text-decoration" : "none" } }

Achtung: Verändert man bspw. per font-size die effektive Höhe des Inhalts des Widgets, ohne dass sich der Text ändert, so stimmt die berechnete Höhe des Widgets nicht mehr damit überein. Dadurch können Texte dann automatisch abgeschnitten werden.
In diesen Fällen kann entweder die Höhe des Widgets in InstantView festgelegt werden oder aber dem Widget wird – wie im obigen Beispiel – die CSS-Property height: auto !important mitgegeben.

Flags

Flag Beschreibung
HIDDEN Der Link bleibt solange unsichtbar, bis Anweisung Show ihn auf dem Bildschirm erscheinen lässt.
FONT(k) k = 0, 1, ..., 9 wählt einen Eintrag in der Font-Tabelle. Der dort eingetragene Font wird benutzt. Fonts werden mit PMFonts in die Tabelle
eingetragen. Für 0, 1 und 2 existieren vordefinierte Fonts. Der Font-Index kann später mit SetFont verändert werden.
JUSTIFY_RIGHT Richtet den Text innerhalb des Links rechtsbündig aus.
JUSTIFY_CENTER Zentriert den Text innerhalb des Links. Dies funktioniert aufgrund der Einschränkungen des verwendeten SysLink-Widgets nativ nicht. Unter MorphIT wird der Link-Text korrekt zentriert.

 

Beispiel:

Der folgende Code:

Link Widget

Wird wie folgt dargestellt:

Link Widget Rendered