Erweiterte Anpassung des BedienfeldesBedienfeldAnpassungDer Benutzer kann das Bedienfeld über dessen Menüs und das
Bedienelement 'Symbol installieren' in den Bedientafeln anpassen.In diesem Kapitel wird die Anpassung des Bedienfeldes durch das Erstellen
und Bearbeiten von Konfigurationsdateien behandelt.Weiterführende InformationenReferenzinformationen zu Bedienelementen
im Bedienfeld und der Konfiguration des Bedienfeldes können der Hilfeseite dtfpfile(4X) entnommen werden.Referenzinformationen zum Arbeitsbereichsmanager können
der Hilfeseite dtwm(1) und dtwmrc(4)
entnommen werden.BedienfeldkonfigurationsdateienKonfigurationsdateienBedienfeldBedienfeldKonfigurationsdateienDas Bedienfeld wird in einer Datenbank mit Konfigurationsdateien definiert.
Über diese Konfigurationsdateien kann das Bedienfeld angepaßt
werden. Bestimmte Änderungen können nur durch Bearbeitung der Konfigurationsdatei
durchgeführt werden. Dazu gehörendas Hinzufügen eines neuen Bedienelements im Hauptbedienfeld.
das Hinzufügen spezieller Bedienelemente, wie zum Beispiel
Client-Fenster.das Ändern bestimmter Standardverhaltensweisen, zum Beispiel,
ob die Bedienelemente im Bedienfeld durch einfaches Klicken oder durch Doppelklicken
aktiviert werden.Um dem Benutzer einen möglichst großen Spielraum bei der
Konfiguration des Bedienfelds zu lassen, können die Konfigurationsdateien
für einen einzelnen Benutzer definiert (persönlich), für das
System definiert (systemweit) oder auf anderen Systemen gespeichert sein.
Das Bedienfeld wird durch den Arbeitsbereichsmanager erstellt und verwaltet.
Standardkonfigurationsdatei des BedienfeldesDas Standardbedienfeld wird in der Bedienfeldkonfigurationsdatei /usr/dt/appconfig/types/sprache/dtwm.fpdtwm.fp Datei definiert.
Diese Datei sollte nicht geändert werden.Suchpfad für BedienfeldkonfigurationsdateienSuchpfadeBedienfelddefinitionenBedienfeldSuchpfadDie Bedienfelddefinition kann auf beliebig viele Dateien im lokalen
oder in anderen Systemen verteilt sein.BedienfeldNamenskonvention
für DateienDateien, die das Bedienfeld definieren,
müssen folgenden Anforderungen entsprechen:Der Dateiname muß die Erweiterung .fp
tragen, z. B., mail.fp.Die Datei muß sich im Datenbanksuchpfad für Aktionen
befinden.Der Standarddatenbanksuchpfad für Aktionen enthält folgende
Verzeichnisse, die in der hier aufgeführten Reihenfolge durchsucht werden:
Standardverzeichnis/.dt/typesPersönliche Anpassungen/etc/dt/appconfig/types/spracheSystemweite Anpassungen/usr/dt/appconfig/types/spracheIntegriertes Bedienfeld und Bedienelemente
Um persönliche Anpassungen, die über die Benutzerschnittstelle
durchgeführt wurden, zu speichern,wird ein zusätzliches Verzeichnis, Standardverzeichnis/.dt/types/fp_dynamicfp_dynamic
VerzeichnisBedienfelddynamische Anpassungen angelegt. Dieses
Verzeichnis nicht für manuelle Anpassungen verwenden.Der Datenbanksuchpfad für Aktionen enthält möglicherweise
zusätzliche Verzeichnisse, die das System für das Netzwerk konfigurieren.
Insbesondere werden zusätzliche Positionen auf anderen Systemen hinzugefügt,
wenn das System für den Zugriff auf einen Anwendungs-Server konfiguriert
wird. Weitere Informationen können dem Abschnitt entnommen werden.Wie das Bedienfeld assembliert wird: VorrangregelnBedienfeldVorrangregeln beim AssemblierenVorrangregelnBedienfeld
assemblierenDas Bedienfeld wird aus allen Konfigurationsdateien im Datenbanksuchpfad
für Aktionen assembliert.Kommt es zu einem Konflikt zwischen Komponenten der Definition, bestimmen
Vorrangregeln, welche Definition verwendet wird. Zwei Komponenten geraten
in Konflikt miteinander, wennsie denselben Bedienelementnamen, CONTAINER_NAME und CONTAINER_TYPE habenoder für sie dieselbe Position definiert ist (zwar unterschiedliche
Namen, aber derselbe CONTAINER_NAME, CONTAINER_TYPE und POSITION_HINTS).Für das Bedienfeld gelten folgende Vorrangregeln:Haben Komponenten denselben Bedienelementnamen, Container-Namen
und -typ, wird die Komponente verwendet, die zuerst gelesen wird.Enthalten beispielsweise sowohl ein systemweites als auch ein integriertes
Bedienelement die folgenden Felder, sind aber ansonsten unterschiedlich,
CONTROL TextEditor
{
CONTAINER_TYPE BOX
CONTAINER_NAME Top
…
}hat das systemweite Bedienelement Vorrang.Konkurrieren zwei Komponenten für dieselbe Position,
werden sie in der Reihenfolge gesetzt, in der sie gelesen werden.Erstellt ein Benutzer beispielsweise ein neues persönliches Bedienelement
für das Hauptbedienfeld (CONTAINER_TYPE BOX und CONTAINER_NAME Top) und ordnet ihm POSITION_HINTS
5 zu, schiebt das persönliche Bedienelement das integrierte Bedienelement
und alle anderen Bedienelemente mit höheren Positionsnummern um eine
Position nach rechts.Wird ein Bedienelement geändert, indem eine neue systemweite oder
persönliche Version davon erstellt wird, muß in der neuen Bedienelementdefinition
derselbe Bedienelementname, CONTAINER_NAME, und CONTAINER_TYPE angegeben werden. Sonst wird das neue Bedienelement
dem existierenden Bedienelement hinzugefügt.Dynamisch erstellte BedienfelddateienBedienfelddynamische AnpassungenPaßt der Benutzer das Bedienfeld über das Bedienelement 'Symbol
installieren' und Menüs an, werden Dateien in das Verzeichnis Standardverzeichnis/.dt/types/fp_dynamic geschrieben.Das Bedienfeld erstellt eine zusätzliche Datei, Standardverzeichnis/.dt/sessions/dtwmfp.session,dtwmfp.session Datei in der der Status des
angepaßten Bedienfeldes für jede Session gesichert und wiederhergestellt
wird.Benutzerschnittstellenanpassungen verwaltenÜber die Menüs der Bedienelemente und die Bedienelemente 'Symbol
installieren' kann der Benutzer das Bedienfeld weitreichend anpassen.Im folgenden Abschnitt wird beschrieben, wiebestimmte persönliche Anpassungen ausgeschlossen werden.
Beispielsweise kann ausgeschlossen werden, daß ein Benutzer ein Bedienelement
löscht.persönliche Anpassungen widerrufen werden. Beispielsweise
kann ein Benutzer die Wiederherstellung eines versehentlich gelöschten
Bedienelements anfordern.Persönliche Anpassungen ausschließenBedienfeldpersönliche AnpassungenBedienfeldBedienelementHandelt es sich bei dem Bedienelement um ein integriertes
Bedienelement, die Definition aus /usr/dt/appconfig/types/sprache/dtwm.fp in /etc/dt/appconfig/types/sprache/name.fp kopieren.Die folgende Zeile zur Bedienelementdefinition hinzufügen:
LOCKED TrueGelöschte Bedienelemente oder gelöschte Bedientafeln wiederherstellenBedientafelgelöschte Bedientafel wiederherstellenBedienelementwiederherstellenDie Aktion 'Bedienfeld wiederherstellen'Bedienfeld
wiederherstellen, Aktion in der Gruppe von Anwendungen
'Desktop-Werkzeuge'Bedienelementpersönliche Anpassungen ausschließenLOCKED Feld entfernt alle Bedienfeldanpassungen,
die über die Benutzerschnittstelle durchgeführt wurden. Benutzer
können mit dieser Aktion alle persönlichen Anpassungen, die sie
über die Menüs des Bedienfeldes erstellt haben, entfernen.Auf folgende Art und Weise ein einzelnes Bedienelement wiederherstellen:
Im Verzeichnis Standardverzeichnis/.dt/types/fp_dynamic die Datei entfernen, die
erstellt wurde, als das Bedienelement vom Benutzer gelöscht wurde. Das
Bedienelement trägt denselben Namen wie das ursprünglich gelöschte.
Wurde beispielsweise das Bedienelement Symboleditor gelöscht, enthält
eine Datei im Verzeichnis fp_dynamic folgenden Eintrag:
CONTROL IconEditor
{
…
DELETE True
}DELETE, FeldWird eine Bedientafel gelöscht, wird eine separate dynamische Datei
für die Bedientafel und für jedes Bedienelement in der Bedientafel
erstellt.Für weitere Informationen zu diesem Thema, sieheOrganisation der BedienfelddefinitionBedienfeldOrganisation der DefinitionDas Bedienfeld wird durch Assemblierung der Definitionen seiner Komponenten
aufgebaut. Für jede dieser Komponenten ist eine bestimmte Syntax erforderlich,
die definiert, wo im Bedienfeld die Komponente steht, wie sie aussieht und
wie sie sich verhält.BedienfeldkomponentenBedienfeldKomponentenBedienfeldkomponentenDas Bedienfeld ist folgendermaßen aufgebaut:Das Bedienfeld (PANEL definitionPANEL) ist der Container der obersten Ebene,
das übergeordnete Verzeichnis, des gesamten Bedienfeldes.Das PANEL ist ein Container für ein
oder mehrere Felder (BOXen).Eine BOX DefinitionBOX ist ein Container für ein oder mehrere Bedienelemente
(CONTROLs).Es gibt zwei spezielle Typen von Containern:Eine Bedientafel (SUBPANEL DefinitionSUBPANEL) ist einem bestimmten Bedienelement
zugeordnet (das Bedienelement ist der Container für die Bedientafel).
Bedientafeln öffnen sich von dem Bedienelement, dem sie zugeordnet sind,
nach oben.Der ArbeitsbereichsumschalterArbeitsbereichsumschalterDefinition (SWITCH) enthält die Tasten zum Wechseln der Arbeitsbereiche sowie
zusätzliche Bedienelemente.Allgemeine Syntax der BedienfelddefinitionBedienfeldSyntaxJede Komponente im Bedienfeld wird einzeln definiert. Dabei wird folgende
Syntax verwendet:COMPONENT name
{
KEYWORD wert
KEYWORD wert
…
}Einige Schlüsselwörter sind erforderlich, andere sind wahlfrei.
Weitere Informationen können der Hilfeseite dtfpfile(4X) entnommen werden.Bedienfelddefinition (PANEL)PANEL DefinitionSyntaxPANEL ist die Komponente der obersten Ebene. Die
Definition enthältden BedienfeldnamenFelder, die das allgemeine Erscheinungsbild und das Verhalten
des gesamten Bedienfeldes beschreiben.PANEL bedienfeld_name
{
KEYWORD wert
KEYWORD wert
…
}Der Parameter bedienfeld_name ist ein eindeutiger Name
für das Bedienfeld. Der Standardname ist “FrontPanel.”Felddefinitionen (BOX)BOX DefinitionSyntaxEine Definition für BOX beschreibtden Namen der BOXin welchem Bedienfeld (PANEL) sich das
Feld befindet (CONTAINER_NAME FeldCONTAINER_NAME)die Position des Feldes im Bedienfeld (POSITION_HINTS )Felder, die das allgemeine Erscheinungsbild und das Verhalten
des gesamten Feldes beschreibenBOX feld_name
{
CONTAINER_NAME bedienfeld_name
POSITION_HINTS position
KEYWORD wert
KEYWORD wert
…
}Bedienelementdefinitionen (CONTROL)CONTROL Definition,
SyntaxEine Definition für CONTROL beschreibtden Namen des Bedienelements (CONTROL)ob es sich bei dem Bedienelement um ein Feld, eine Bedientafel
oder den Arbeitsbereichsumschalter handelt (CONTAINER_TYPE FeldCONTAINER_TYPE)in welchem/r Feld, Bedientafel oder Arbeitsbereichsumschalter
sich das Bedienelement befindet (CONTAINER_NAME
FeldCONTAINER_NAME)die Position des Bedienelements im Feld (POSITION_HINTS ).Felder, die das allgemeine Erscheinungsbild und das Verhalten
des Bedienelements beschreibenCONTROL bedienelement_name
{
CONTAINER_TYPE BOX oder SUBPANEL oder SWITCH
CONTAINER_NAME feld_name oder bedientafel_name oder schalter_name
TYPE bedienelement_typ
POSITION_HINTS position
KEYWORD wert
KEYWORD wert
…
}BedientafelDefinitionBedientafelSyntaxBedientafeldefinitionen (SUBPANEL)BedientafelSyntaxEine Definition für SUBPANEL beschreibtden Namen der Bedientafel (SUBPANEL)den Namen des Bedienelements, dem die Bedientafel zugeordnet
istBedientafelContainer (CONTAINER_NAME fieldCONTAINER_NAME)Felder, die das spezifische Erscheinungsbild und Verhalten
der Bedientafel beschreibenSUBPANEL bedientafel_name
{
CONTAINER_NAME bedienelement_name
KEYWORD wert
KEYWORD wert
…
}Arbeitsbereichsumschalterdefinition (SWITCH)SWITCH
DefinitionArbeitsbereichsumschalterSyntax der DefinitionDie Definition für SWITCH beschreibtden Namen des Arbeitsbereichsumschaltersin welchem Feld sich der Arbeitsbereichsumschalter befindet
(CONTAINER_NAME, FeldCONTAINER_NAME )die Position des Arbeitsbereichsumschalters innerhalb des
Feldes (POSITION_HINTS)Felder, die das Erscheinungsbild und Verhalten des Arbeitsbereichsumschalters
beschreibenSWITCH schalter_name
{
CONTAINER_NAME feld_name
POSITION_HINTS position
KEYWORD wert
KEYWORD wert
…
}Hauptanzeige ändernBedienfeldändernBei der Hauptanzeige handelt es sich um das Bedienfeldfenster ohne die
Bedientafeln.Container der HauptanzeigeFolgende Änderungen können vorgenommen werden:Hinzufügen oder Entfernen von BedienelementenAustauschen der Positionen von BedienelementenBedienelemente der Hauptanzeige hinzufügenBedienelementder Hauptanzeige hinzufügenEine Bedienfeldkonfigurationsdatei erstellen:systemweit: /etc/dt/appconfig/types/sprache/*.fppersönlich: Standardverzeichnis/.dt/types/*.fpDas Bedienelement in der Datei definieren.Mit den Feldern CONTAINER_NAME und CONTAINER_TYPE den Container für das Bedienelement spezifizieren:CONTAINER_NAME Top
CONTAINER_TYPE BOXMit POSITION_HINTS die Position von links nach
rechts für das Bedienelement angeben. Da Anpassungen Vorrang vor integrierten
Bedienelementen haben, schiebt das neue Bedienelement das bereits vorhandene
Bedienelement um eine Position nach rechts.Die Konfigurationsdatei sichern.Ein Symbol für das Bedienelement im Bedienfeld erstellen.
Nähere Informationen hierzu können dem Abschnitt entnommen werden.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Beispielsweise stellt die folgende Bedienelementdefinition in der Datei
/etc/dt/appconfig/types/sprache/audio.fp ein Bedienelement für eine Audio-Anwendung zwischen die Bedienelemente
für Uhr und Kalender.CONTROL AudioApplication
{
TYPE icon
CONTAINER_NAME Top
CONTAINER_TYPE BOX
ICON AudioApp
POSITION_HINTS 2
PUSH_ACTION StartAudioApplication
PUSH_RECALL true
}Bedienelemente entfernenBedienelementvon Bedienfeld entfernenEine Bedienfeldkonfigurationsdatei erstellen:systemweit: /etc/dt/appconfig/types/sprache/name.fppersönlich: Standardverzeichnis/.dt/types/name.fpDie Definition des Bedienelements, das gelöscht werden
soll, in die neue Datei kopieren.Handelt es sich um ein integriertes Bedienelement, befindet sich die
Definition in /usr/dt/appconfig/types/sprache/dtwm.fp.Es ist nicht notwendig, die gesamte Definition zu kopieren. Die Felder
CONTAINER_NAME und CONTAINER_TYPEmüssen
jedoch auf jeden Fall kopiert werden.Das Feld DELETE der Definition hinzufügen:
DELETE TrueDie Konfigurationsdatei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Beispielsweise entfernt die folgende Bedienelementdefinition in der
Datei /etc/dt/appconfig/types/sprache/TrashCan.fp das Bedienelement 'Papierkorb'
aus dem Bedienfeld.CONTROL Trash
{
CONTAINER_NAME Top
CONTAINER_TYPE BOX
DELETE True
}Bedienelemente ändernBedienelementändernZum Ändern einer Bedienelementdefinition, zum Beispiel eines Symbolbildes,
die folgende Prozedur verwenden.Die gesamte Bedienelementdefinition aus /usr/dt/appconfig/types/sprache/dtwm.fp
in folgende Dateien kopieren:systemweit: /etc/dt/appconfig/types/sprache/name.fppersönlich: Standardverzeichnis/.dt/types/name.fp.Das Feld, das geändert werden soll, bearbeiten. Es können
auch zusätzliche Felder hinzugefügt werden.Die Datei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Positionen von Bedienelementen austauschenBedienelementPositionen von Bedienelementen austauschenDie Bedienelementdefinitionen der Bedienelemente, deren Positionen
geändert werden sollen, von /usr/dt/appconfig/types/sprache/dtwm.fp in folgende
Dateien kopieren:systemweit:/etc/dt/appconfig/types/sprache/name.fppersönlich: Standardverzeichnis/.dt/types/name.fp.Die gesamte Bedienelementdefinition für jedes Bedienelement, das
verschoben werden soll, kopieren.Die Werte der Felder POSITION_HINTS
FeldPOSITION_HINTS der Bedienelementdefinitionen
austauschen.Die Datei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Beispielsweise tauschen die folgenden Definitionen in einer Datei /etc/dt/appconfig/types/C/MailHelp.fp die Positionen der Bedienelemente
für Post und Hilfemanager aus und sperren diese gegen persönliche
Änderungen einzelner Benutzer.CONTROL Mail
{
POSITION_HINTS 12
LOCKED True
…der rest der definition des bedienelements
}
CONTROL Help
{
POSITION_HINTS 5
LOCKED True
…der rest der definition des bedienelements
}Ein Bedienelement im Bedienfeld ersetzenBedienelementersetzenEine weitere Bedienelementdefinition mit denselben Parametern
erstellen:bedienelement_nameCONTAINER_NAME, FeldCONTAINER_NAME WertBeispielsweise sind die beiden folgenden Bedienelemente in zwei verschiedenen
Konfigurationsdateien definiert. Die Bedienelemente haben denselben Bedienelementnamen
und Container-Namen und werden daher als dasselbe Bedienelement betrachtet.
Definition in /etc/dt/appconfig/types/C/SysControls.fp:Control ImportantApplication
{
CONTAINER_NAME Top
CONTAINER_TYPE BOX
POSITION_HINTS 2
…Definition in Standardverzeichnis/.dt/types/MyControls.fp:Control ImportantApplication
{
CONTAINER_NAME Top
CONTAINER_TYPE BOX
POSITION_HINTS 6
…Das persönliche Bedienelement hat Vorrang, so daß das Bedienelement
an die Position 6 gestellt wird.Symbol angeben, das von einem Bedienelement verwendet
werden sollBedienelementErscheinungsbildBedienelementSymbolSymboleBedienfeldDas Feld ICON Feldim BedienfeldICON der Bedienelementdefinition
definiert, welches Symbolbild für das Bedienelement verwendet wird.Der Wert für das Feld ICON kann auf die folgenden
Weisen angegeben werden:durch den Dateinamen ohne PfadDer Dateiname ohne Pfad ist der Name der Datei, die das Symbolbild enthält,
ohne die Dateinamenerweiterungen für Größe (m
und t) und Abbildtyp (bm und pm). Beispielsweise lautet bei den Dateien mit den Namen MyGame.l.pm und MyGame.m.pm der Dateiname
ohne Pfad MyGame.Wird der Dateiname ohne Pfad verwendet, müssen sich die Symboldateien
in einem Verzeichnis im Symbolsuchpfad befinden:persönliche Symbole: Standardverzeichnis/.dt/iconssystemweite Symbole: /etc/dt/appconfig/icons/sprachedurch einen absoluten Pfad zu der Symboldatei, einschließlich
des vollständigen DateinamensDer absolute Pfad sollte nur verwendet werden, wenn sich die Symboldatei
nicht im Symbolsuchpfad befindet.Die Größe des Symbols richtet sich nach der Position des
Bedienelements:PositionGrößeHauptanzeige48 x 48 Pixel (name.l.pm oder name.l.bm)Bedientafel32 x 32 Pixel (name.m.pm oder name.m.bm)Die Symboldatei in eine der folgenden Positionen stellen:persönliche Symbole: Standardverzeichnis/.dt/iconssystemweite Symbole: /etc/dt/appconfig/icons/spracheBedientafeln erstellen und ändernBedientafelerstellenBedientafeländernDer Benutzer kann Bedientafeln über die Menüs des Bedienfeldes
erstellen und ändern.Im folgenden Abschnitt wird erläutert, wie durch Änderung
der Bedienfeldkonfigurationsdateien eine systemweite Anpassung erreicht wird.
Eine Bedientafel ist einem Bedienelement in der Hauptanzeige zugeordnet.
Der Container einer Bedientafel ist das Bedienelement, dem sie zugeordnet
ist.BedientafelZuordnung mit HauptanzeigeDie Zuordnung erfolgt über die Bedientafeldefinition.
Im Feld CONTAINER_NAME wird angegeben, welchem Bedienelement
die Bedientafel zugeordnet ist.CONTROL bedienelement_name
{
…
}
SUBPANEL bedientafel_name
{
CONTAINER_NAME bedienelement_name
…
}Neue systemweite Bedientafeln erstellenBedientafelsystemweite AnpassungBedientafelneu erstellenDen bedienelement_name des
Bedienelements in der Hauptanzeige feststellen, dem die Bedientafel zugeordnet
werden soll.Handelt es sich bei dem Bedienelement um eines der integrierten Bedienelemente,
befindet sich die Definition in /usr/dt/appconfig/types/sprache/dtwm.fp.Eine neue Datei /etc/dt/appconfig/types/sprache/*.fp erstellen.Die Bedientafel definieren:SUBPANEL bedientafel_name
{
CONTAINER_NAME bedienelement_name
TITLE wert
KEYWORD wert
…
}Die neue Konfigurationsdatei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Integrierte Bedientafeln anpassenBedientafelintegrierte Bedientafeln anpassenEs können allgemeine Merkmale (wie zum Beispiel der Titel) sowie
der Inhalt der integrierten Bedientafeln geändert werden.Allgemeine Merkmale einer integrierten Bedientafel ändernEine neue Bedienfeldkonfigurationsdatei erstellen:systemweit: /etc/dt/appconfig/types/sprache/name.fppersönlich: Standardverzeichnis/.dt/types/name.fp.Die gesamte Standardbedientafeldefinition (SUBPANEL) aus der Datei /usr/dt/appconfig/types/sprache/dtwm.fp in die neue
Datei kopieren:SUBPANEL bedientafel_name
{
…
}Die Bedientafeldefinition ändern.Die neue Konfigurationsdatei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Wird beispielsweise die folgende Definition in die Datei/users/janice/.dt/types/PerApps.fp gestellt, wird dadurch der Name der Bedientafel Persönliche
Anwendungen geändert:SUBPANEL PersAppsSubpanel
{
CONTAINER_NAME TextEditor
TITLE anwendungen von Janice
}Systemweite Bedienelemente einer integrierten Bedientafel hinzufügenEine Bedienfeldkonfigurationsdatei /etc/dt/appconfig/types/sprache/name.fp erstellen.Das systemweite Bedienelement in der Datei definieren.Mit den Feldern CONTAINER_NAME und CONTAINER_TYPE den Container für das Bedienelement angeben:CONTROL bedienelement_name
{
CONTAINER_NAME bedientafel_name
CONTAINER_TYPE SUBPANEL
…
}Weitere Informationen hierzu können dem Abschnitt entnommen werden.Die Konfigurationsdatei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Beispielsweise fügt das folgende Bedienelement, das in einer neuen
Datei /etc/dt/appconfig/types/sprache/DigitalClock.fp definiert ist, die Anwendung Digitaluhr (in der Gruppe von Anwendungen
'Desktop- Werkzeuge') der Bedientafel 'Persönliche Anwendungen' für
alle Benutzer hinzu.CONTROL DigitalClockControl
{
TYPE icon
CONTAINER_NAME PerAppsSubpanel
CONTAINER_TYPE SUBPANEL
ICON Dtdgclk
PUSH_ACTION DigitalClock
PUSH_RECALL True
}Bedienelemente aus einer integrierten Bedientafel entfernenDieselbe Prozedur wie zum Entfernen eines Bedienelements aus
der Hauptanzeige verwenden. Weitere Infomationen hierzu können dem Abschnitt entnommen werden.Bedienelement 'Symbol installieren' entfernenDas folgende Feld der Bedientafeldefinition hinzufügen:
CONTROL_INSTALL FalseAutomatisches Schließen von Bedientafeln ändernBedientafelautomatisches Schließen ändernStandardmäßig werden Bedientafeln geschlossen, wenn der Benutzer
ein Bedienelement auswählt, es sei denn, der Benutzer hat die Bedientafel
aus ihrer ursprünglichen Position verschoben.Das Bedienfeld kann so konfiguriert werden, daß Bedientafeln geöffnet
bleiben, bis der Benutzer sie explizit schließt.Eine neue Bedienfeldkonfigurationsdatei erstellen:systemweit: /etc/dt/appconfig/types/sprache/*.fppersönlich: Standardverzeichnis/.dt/types/*.fpDie Standarddefinition für PANEL aus
der Datei /usr/dt/appconfig/types/sprache/dtwm.fp in die neue Datei kopieren:
PANEL FrontPanel
{
…
}Das folgende Feld zu der Definition für PANEL hinzufügen:SUBPANEL_UNPOST FalseDie neue Konfigurationsdatei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Bedienelemente im Bedienfeld definierenBedienelementdefinierenDer Benutzer kann persönliche Bedienelemente erstellen, indem er
Symbole an die Bedienelemente 'Symbol installieren' übergibt.Dadurch wird die Anpassung zwar wesentlich vereinfacht, aber ein Teil
der Funktionalität der Bedienelemente im Bedienfeld geht verloren. Beispielsweise
kann ein Bedienelement, das mit dem Bedienelement 'Symbol installieren' erstellt
wurdekeine Animation zur Verfügung stellenkein Client-Fenster anzeigennicht bei Auftreten eines Ereignisses das Erscheinungsbild
ändern (beispielsweise beim Empfangen von Post)Im folgenden Abschnitt wird beschrieben, wie Bedienelemente im Bedienfeld
manuell erstellt werden.Referenzinformationen zur Syntax von Bedienelementen im Bedienfeld können
der Hilfeseite dtfpfile(4X) entnommen
werden.Definitionen für ein Bedienelement im BedienfeldEine Definition eines Bedienelements im Bedienfeld hat folgende Struktur:
CONTROL bedienelement_name
{
TYPE control_type
CONTAINER_NAME wert
CONTAINER_TYPE wert
andere felder zur definition von erscheinungsbild und verhalten
}BedienelementtypenBedienelementTypenDas Feld TYPE FeldTYPE in der Bedienelementdefinition gibt das grundlegende Verhalten
des Bedienelements an.BedienelementtypBedienelementverhaltenicon Bedienelementicon(Standard). Das Bedienelement führt
eine angegebene Aktion aus, wenn der Benutzer das Bedienelement doppelklickt
oder dem Bedienelement eine Datei übergibt.Abstand
zwischen Bedienelementen regelnblankPlatzhalter, mit dem der Abstand zwischen
Bedienelementen geregelt werden kann.BetriebsanzeigebusyBetriebsanzeige. Das Bedienelement
blinkt (schaltet zwischen Bildschirmen hin und her), wenn eine Aktion aufgerufen
wird.Client-Fenster
im BedienfeldclientEin Client-Fenster im Bedienfeld.UhrclockUhr.BedienelementverhaltendateZeigt das aktuelle Datum an.DateisteuerungfileStellt eine Datei dar. Durch Auswahl
des Bedienelements wird die Standardaktion für die Datei ausgeführt.
Neue Bedienelemente erstellenBedienelementerstellenIm folgenden Abschnitt wird die Vorgehensweise bei der Definition eines
Bedienelements beschrieben und erläutert, wie verschiedene Bedienelementtypen
erstellt werden.Soll das Bedienelement über die Aktionen PUSH_ACTION und/oder DROP_ACTION verfügen, die entsprechenden
Aktionsdefinitionen erstellen. Hierbei handelt es sich um die Aktionen, die
ausgeführt werden, wenn der Benutzer das Bedienelement anklickt oder
ihm eine Datei übergibt.Die Symbolbilddateien für das Bedienelement erstellen.
Informationen zu Symbolgrößen, -namen und -positionen können
dem Abschnitt
entnommen werden.Eine neue Bedienfeldkonfigurationsdatei erstellen in:systemweit: /etc/dt/appconfig/types/sprache/*.fppersönlich: Standardverzeichnis/.dt/types/*.fpDie Bedienelementdefinition der Datei hinzufügen.Die Datei sichern.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Bedienelement erstellen, das bei Anklicken eine
Aktion ausführtFolgende Felder verwenden, um das Verhalten des Bedienelements zu definieren:
TYPE: Auf icon setzen
PUSH_ACTION FeldPUSH_ACTION: Gibt den Namen der Aktion an, die ausgeführt werden soll
Beispielsweise führt das folgende Bedienelement, das in die Bedientafel
'Persönliche Anwendungen' gestellt wird, ein Spiel aus, das der Benutzer
am System installiert hat.CONTROL Ball
{
TYPE icon
CONTAINER_NAME PersAppsSubpanel
CONTAINER_TYPE SUBPANEL
ICON ball
PUSH_ACTION RunBallGame
HELP_STRING "Dieses Bedienelement auswählen, um Ball zu spielen."
}Das folgende Bedienelement wird in die obere linke Ecke des Arbeitsbereichsumschalters
gestellt. Es startet eine Aktion mit dem Namen 'CutDisp'.CONTROL StartCutDisp
{
TYPE icon
CONTAINER_NAME Switch
CONTAINER_TYPE SWITCH
POSITION_HINTS first
ICON cutdisp
HELP_STRING "Dieses Bedienelement auswählen, um cutdisp auszuführen."
PUSH_ACTION CutDisp
}Bedienelement erstellen, das eine Datei öffnetBedienelementzum Öffnen einer DateiFolgende Felder verwenden, um das Verhalten des Bedienelements zu definieren:
TYPE: Auf file setzen
FILE_NAME FeldFILE_NAME: Gibt den Pfad der Datei an, die geöffnet werden soll.PUSH_ACTION: Auf Open
setzenEine Aktion 'Öffnen' muß für den Datentyp der Datei
definiert sein.Beispielsweise wird das folgende Bedienelement ganz rechts in die Hauptanzeige
gestellt. Es startet den Texteditor mit der Datendatei /users/ellen/PhoneList.txt. Die Aktion 'Öffnen' für Dateien des Typs *.txt ist Bestandteil der Standarddatenbank für Aktionen.
CONTROL EditPhoneList
{
TYPE file
FILE_NAME /users/ellen/PhoneList.txt
CONTAINER_NAME Top
CONTAINER_TYPE BOX
POSITION_HINTS last
ICON PhoneBook
HELP_STRING "Dieses Bedienelement zeigt Ellens Telefonliste"
PUSH_ACTION Open
}Bedienelement erstellen, das als Übergabebereich
fungiertÜbergabebereichBedienfeldsteuerungBedienfeldBedienelement als ÜbergabebereichBedienelementÜbergabebereichIm Feld DROP_ACTION FeldDROP_ACTION die Aktion angeben, die ausgeführt wird, wenn der Benutzer
eine Datei an das Bedienelement übergibt. Die Aktion muß ein Dateiargument
akzeptieren können.Häufig enthält eine Bedienelementdefinition sowohl ein Feld PUSH_ACTION als auch ein Feld DROP_ACTION. Dieselbe
Aktion kann sowohl für Übergabe als auch für Anklicken verwendet
werden.Beispielsweise führt das folgende Bedienelement in der Bedientafel
'Persönliche Anwendungen' den X-Client xwud aus, der
ein Dateiargument benötigt.CONTROL Run_xwud
{
CONTAINER_NAME PerAppsSubpanel
CONTAINER_TYPE SUBPANEL
POSITION_HINTS 2
ICON XwudImage
PUSH_ACTION RunXwud
DROP_ACTION RunXwud
}Bedienelement erstellen, das eine Datei überwachtBedienelementDatei überwachenFolgende Felder verwenden, um das Verhalten des Bedienelements zu definieren:
TYPE: Einen der folgenden Werte eingeben:
icon type
BedienelementiconDiesen Typ verwenden, wenn PUSH_ACTION und/oder DROP_ACTION für das
Bedienelement angegeben werden soll.DateitypbedienelementfileDiesen Typ verwenden, wenn das Bedienelement
sich nach der Auswahl wie die Datei verhalten soll, wenn das Symbol der Datei
im Dateimanager doppelgeklickt wird.ICON und ALTERNATE_ICON FeldALTERNATE_ICON: Beschreiben
die Bilder, mit denen der ursprüngliche und der geänderte Status
der überwachten Datei angegeben wird.MONITOR_TYPE FeldMONITOR_TYPE: Beschreibt die Bedingungen, unter denen
ein Bild sich ändert. Einen der folgenden Werte verwenden:mailDas Bedienelement ändert sein
Erscheinungsbild, wenn der Datei Informationen hinzugefügt werden.fileDas Bedienelement ändert sich,
wenn der angegebenen Datei Informationen hinzugefügt werden.FILE_NAMEFILE_NAME Feld: Gibt die zu überwachende Datei an.Beispielsweise sucht das folgende Bedienelement eine Datei meetings, die mit einem anonymen ftp auf das
System übertragen werden soll. Das Bedienelement wird an erster Position
in die Bedientafel 'Persönliche Anwendungen' gestellt.CONTROL MonitorCalendar
{
TYPE file
CONTAINER_NAME PersAppsSubpanel
CONTAINER_TYPE SUBPANEL
POSITION_HINTS first
FILE_NAME /users/ftp/meetings
MONITOR_TYPE file
ICON meetingsno
ALTERNATE_ICON meetingsyes
}Bedienelement zum Umschalten erstellenBedienelementzum UmschaltenEin Bedienelement zum Umschalten prüft, ob der Prozeß, der
von PUSH_ACTION gestartet wurde, bereits ausgeführt
wird. Wenn der Prozeß nicht ausgeführt wird, wird PUSH_ACTION ausgeführt. Wenn der Prozeß bereits ausgeführt
wird, erhält das Fenster die oberste Ebene im Fensterstapel des aktuellen
Arbeitsbereichs.Folgende Felder verwenden, um das Verhalten des Bedienelements zu definieren:
PUSH_RECALL: Auf True
setzen.CLIENT_NAME FeldCLIENT_NAME: Gibt den Namen des Clients an das Bedienelement.Der Wert von CLIENT_NAME muß mit der ersten
Zeichenfolge (res_name) der Eigenschaft WM_CLASS
übereinstimmen. Informationen dazu können der Hilfeseite xprop(1) entnommen werden.PUSH_ACTION: Beschreibt die Aktion 'Ausführen',
wenn der Benutzer auf das Bedienelement klickt.Beispielsweise führt das folgende Bedienelement eine Anwendung
mit der Aktion MyEditor einmalig aus:CONTROL MyEditor
{
TYPE icon
CONTAINER_NAME Top
CONTAINER_TYPE BOX
POSITION_HINTS 15
PUSH_RECALL True
CLIENT_NAME BestEditor
PUSH_ACTION StartMyEditor
ICON MyEd
}Clientfensterbedienelement erstellenBedienfeldClientClientsFenster in BedienfeldBedienelementClientEin Clientfensterbedienelement ist ein Anwendungsfenster im Bedienfeld.
Beispielsweise kann durch das Erstellen eines xload Clientfensterbedienelements
eine Systemauslastungsanzeige in das Bedienfeld gestellt werden.Das Bedienelement definieren.Folgende Felder verwenden, um das Verhalten des Bedienelements zu definieren:
TYPE: Auf client setzen.
CLIENT_NAME FeldCLIENT_NAME: Gibt den Client an, der gestartet werden soll.Der Wert von CLIENT_NAME muß mit der ersten
Zeichenfolge (res_name) der Eigenschaft WM_CLASS
übereinstimmen. Informationen dazu können der Hilfeseite xprop(1) entnommen werden.CLIENT_GEOMETRY FeldCLIENT_GEOMETRY: Gibt in Pixel die Größe
des Bedienfeldfensters für den Benutzer an.Die Hilfeseite xwininfo(1) beschreibt, wie man
die Größe eines Fensters in Pixel erhält.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Den Client aus einer Terminal-Emulatorbefehlszeile starten.
Beispielsweise zeigt das folgende Bedienelement eine Auslastung von
30 x 20 Pixel.CONTROL LoadMeter
{
TYPE client
CONTAINER_NAME Top
CONTAINER_TYPE BOX
CLIENT_NAME xload
CLIENT_GEOMETRY 30x20
}Wenn der Client zwischen Sessions nicht gespeichert und wiederhergestellt
wird, kann das Bedienelement so konfiguriert werden, daß es den Client
startet, wenn es vom Benutzer angeklickt wird. Beispielsweise kann das Bedienelement
zur Systemauslastung so konfiguriert werden, daß xload gestartet wird
durch Hinzufügen der folgenden Zeile in der DefinitionPUSH_ACTION StartXloadund dem Erstellen dieser Aktion.ACTION StartXload
{
WINDOW_TYPE NO_STDIO
EXEC_STRING /usr/contrib/bin/X11/xload
}Bedienelement animierenBedienelementAnimationAnimation
für BedienfeldBedienfeldAnimationEine Animationsfolge kann hinzugefügt werden, die ausgeführt
wird, wenn der Benutzer das Bedienelement anwählt oder ihm ein Objekt
übergibt.Für eine Animationsfolge muß ein Bedienelement folgende Eigenschaften
besitzen:Vom Typ iconseinÜber PUSH_ACTION oder DROP_ACTION verfügenDie Animationsfolge mit der Komponente ANIMATION DefinitionANIMATION angeben:
ANIMATION animation_name
{
ANIMATION symbol_bild [verzögerung]
ANIMATION symbol_bild [verzögerung]
…
}wobei verzögerung die Zeitverzögerung
in Millisekunden zwischen der Animation von Symbolen angibt.Die Felder PUSH_ANIMATION FeldPUSH_ANIMATION und/oder DROP_ANIMATION FeldDROP_ANIMATION
der Bedienelementdefinition hinzufügen. Der Wert ist der Name der Folge
ANIMATION.Beispielsweise animieren die folgenden Zeilen ein Bedienelement, das
die Anwendung BestEditor startet. Die Zeitverzögerung zwischen Symbolen
beträgt 300 Millisekunden. In diesem Beispiel wird angenommen, daß
die Symboldateien frame1, frame2
usw. erstellt wurden.CONTROL BestEditor
{
…
PUSH_ANIMATION BestEdAnimation
…
}
ANIMATION BestEdAnimation
{
ANIMATION frame1 300
ANIMATION frame2
…
}Kontexthilfe für Bedienelemente des BedienfeldesEs gibt zwei Möglichkeiten der Kontexthilfe für ein Bedienelement:
Eine Hilfezeichenfolge in der Bedienelementdefinition.Die Hilfezeichenfolge wird in der Hilfeanzeige angezeigt, wenn der Benutzer
Kontexthilfe für das Bedienelement aufruft. Die Hilfezeichenfolge kann
keine Formatierungen (z.B. Kopfzeilen) oder Verweise enthalten.Die Hilfezeichenfolge in der Bedienelementdefinition angeben:HELP_STRING hilfe_zeichenfolge
HELP_STRING FeldEin Hilfethema in einem registrierten Hilfeband:Ein Hilfethema sind zusammengefaßte Informationen mit den vollen
Möglichkeiten des Hilfesystems. Um ein Hilfethema zu verfassen, ist
der Help Developers Kit des Desktops erforderlich.Den Hilfeband und Kennummer des Themas in der Bedienelementdefinition
angeben.HELP_VOLUME hilfeband_name
HELP_TOPIC thema_kennummerHELP_VOLUME FeldHELP_TOPIC FeldArbeitsbereichsumschalter anpassenEs gibt verschiedene Möglichkeiten, den Arbeitsbereichsumschalter
anzupassen:Anzahl der Arbeitsbereiche ändernAnordnung des Schalters ändernBedienelemente im Schalter ändernStandardanzahl der Arbeitsbereiche ändernDie folgende Arbeitsbereichsmanagerressource ändern:
Dtwm*workspaceCount: nMehr Informationen können dem Abschnitt “Die Anzahl von Arbeitsplätzen
auf einer systemweiten Basis” auf Seite 244 entnommen werden.Anzahl der Schalterzeilen ändernDas Feld NUMBER_OF_ROWS FeldNUMBER_OF_ROWS in der SWITCH
Definition ändern.Beispielsweise definiert die folgende Definition einen Schalter mit
drei Zeilen.SWITCH Switch
{
CONTAINER_NAME feld_name
NUMBER_OF_ROWS 3
…
}Bedienelemente im Arbeitsbereichsumschalter ändern oder hinzufügenEine Bedienfeldkonfigurationsdatei mit der Bedienelementdefinition
erstellen.Das Bedienelement angeben, das im Schalter angezeigt werden
soll:CONTAINER_NAME Switch
CONTAINER_TYPE SWITCHDie Position im Schalter angeben:POSITION_HINTS nwobei n eine ganze Zahl ist. Die Positionen
werden durchnumeriert von links nach rechts und von oben nach unten. (Beim
standardmäßig eingestellten Schalter mit zwei Zeilen sind dies
die Positionen 1 bis 4.)Das Symbol für das Bedienelement erstellen. Die empfohlene
Größe beträgt 16 auf 16 Pixel.Beispielsweise stellt das folgende Bedienelement ein Bedienelement für
Terminalfenster in den Schalter.CONTROL SwitchTerminal
{
TYPE icon
CONTAINER_NAME Switch
CONTAINER_TYPE SWITCH
POSITION_HINTS 3
ICON Fpterm
LABEL Terminal
PUSH_ACTION Dtterm
HELP_TOPIC FPOnItemTerm
HELP_VOLUME FPanel
}Das Bedienelement verwendet ein integriertes Symbol und dasselbe Hilfethema,
das von dem Bedienelement für Terminalfenster und der Bedientafel Persönliche
Anwendungen benutzt wird.Allgemeine BedienfeldkonfigurationDie PANEL Syntax des Bedienfelds ermöglicht:Position des Bedienfeldes ändernAussehen des Fensters ändernAllgemeines Erscheinungsbild und Verhalten von Bedienelementen
einstellen.Die Standardbeschreibung von PANEL befindet sich
in der Datei /usr/dt/appconfig/types/sprache/dtwm.fp.Zusätzliche Informationen können der Hilfeseite dtfpfile(4X) entnommen werden.Allgemeine SchritteEine neue Bedienfeldkonfigurationsdatei erstellen in: /etc/dt/appconfig/types/sprache
oder Standardverzeichnis/.dt/types.Die Standardbeschreibung von PANEL aus
der Datei /usr/dt/types/sprache/dtwm.fp in die neue Datei kopieren.Die PANEL Beschreibung bearbeiten.Die neue PANEL Beschreibung hat Vorrang vor der Standardbeschreibung.
Standardposition des Bedienfeldes ändernBedienfeldPositionMit dem Feld PANEL_GEOMETRY
FeldPANEL_GEOMETRY in der Definition für PANEL die Position angeben.Das folgende Bedienfeld ist zum Beispiel in der oberen rechten Ecke.
PANEL SpecialFrontPanel
{
PANEL_GEOMETRY -1+1
…
}Bezeichnungen für Bedienelemente in der Hauptanzeige erstellenBezeichnungenBedienelemente des BedienfeldesBedienfeldBezeichnungen für BedienelementeBedienelementbezeichnenDie folgende Zeile der Definition für PANEL hinzufügen:DISPLAY_CONTROL_LABELS TrueJedem Bedienelement ein Feld LABEL hinzufügen.
Der bedienelement_name wird verwendet,
wenn kein LABEL angegeben wird.Klickverhalten von Bedienelementen ändernMit dem Feld CONTROL_BEHAVIOR
FeldCONTROL_BEHAVIOR in der Definition für PANEL angeben, wie der Benutzer die PUSH_ACTION
eines Bedienelements ausführt. Es gibt folgende Werte für das Feld:
single_clickDer Benutzer klickt das Bedienelement an,
um PUSH_ACTION auszuführen.double_clickDer Benutzer doppelklickt das Bedienelement,
um PUSH_ACTION auszuführen.Völlig neue Bedienfelder erstellenBedienfeldneu erstellenDas Erstellen eines neuen Bedienfeldes kann von Vorteil sein, wenn umfangreiche
Änderungen gemacht werden sollen.Um nicht mit den integrierten Bedienfeldkomponenten in Konflikt zu geraten,
sollte ein völlig neues Bedienfeld neue Namen für das PANEL und
andere Container verwenden.Die PANEL Komponente mit einem eindeutigen
Namen für das neue Bedienfeld erstellen.PANEL bedienfeld_name
{
…
}Die neuen Felder und Bedienelemente mit den neuen Container-Namen
erstellen.Wenn existierende Komponenten benutzt werden sollen, müssen ihre
Definitionen kopiert und der Wert von CONTAINER_NAME
geändert werden.'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.Beispiel für die Erstellung eines persönlichen Bedienfeldes
mit drei ZeilenDas folgende Beispiel ändert das Standardbedienfeld, so daß
die Bedienelemente in drei Zeilen organisiert werden.Die Datei /usr/dt/appconfig/types/sprache/dtwm.fp in die Datei Standardverzeichnis/.dt/types/MyFrontPanel.fp. kopieren. Der Datei Schreibzugriff geben.Diese Datei wird zum Erstellen des neuen Bedienfeldes bearbeitet.Den Namen des Bedienfeldes ändern:PANEL NewFrontPanelDen Namen des Feldes Top ändern und den Container-Namen
bearbeiten:BOX NewFrontPanelTop
{
CONTAINER_NAME NewFrontPanel
POSITION_HINTS first
…
}Felddefinitionen für die mittlere und untere Zeile hinzufügen:
BOX NewFrontPanelMiddle
{
CONTAINER_NAME NewFrontPanel
POSITION_HINTS second
}
BOX NewFrontPanelBottom
{
CONTAINER_NAME NewFrontPanel
POSITION_HINTS second
}Den CONTAINER_NAME der folgenden Bedienelemente
zu NewFrontPanelTop ändern:ClockDateHomeTextEditorMailDen CONTAINER_NAME der folgenden Bedienelemente
zu NewFrontPanelBottom ändern:PrinterStyleApplicationsHelpTrashDen CONTAINER_NAME des Arbeitsbereichsschalters
zu NewFrontPanelMiddle ändern.Die Ressource einstellen:Dtwm*frontPanel*name: NewFrontPanel
'Arbeitsbereichsmanager neu starten' im Arbeitsbereichsmenü
auswählen.