GoPal 3.0 Skinbefehle: Unterschied zwischen den Versionen

Aus GoPalWiki
Wechseln zu: Navigation, Suche
K (Achtung)
(Fernbedienung-Skin Befehle)
 
(33 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Kategorie:GoPal 3.x Skinning]]
 
[[Kategorie:GoPal 3.x Skinning]]
 +
  
==Achtung==
+
{{Achtung|Bevor Ihr irgend etwas ändert oder ausprobiert, macht bitte eine Sicherungskopie der ''PFSkin.skn'', damit Ihr, wenn es schief geht, immer wieder den Original-Zustand herstellen könnt.}}
[[bild:achtung.gif|15px]]Bevor Ihr irgend etwas ändert oder ausprobiert, macht bitte eine Sicherungskopie der PFSkin.skn, damit Ihr - wenn es schief geht - immer wieder den Original-Zustand herstellen könnt.
 
 
Wenn es zu unerklärlichen Fehlern kommt, z. B. Speicherkarte wird auf einmal nicht mehr erkannt oder Navigation startet nicht durch, so kann das an Euren Änderungen liegen. Bitte dann zuerst versuchen, mit der Original-Datei zu starten. Wenn das funktioniert, solltet Ihr Euch Eure Änderungen einmal genauer ansehen, da es dann dort irgendwelche Unstimmigkeiten gibt.
 
Wenn es zu unerklärlichen Fehlern kommt, z. B. Speicherkarte wird auf einmal nicht mehr erkannt oder Navigation startet nicht durch, so kann das an Euren Änderungen liegen. Bitte dann zuerst versuchen, mit der Original-Datei zu starten. Wenn das funktioniert, solltet Ihr Euch Eure Änderungen einmal genauer ansehen, da es dann dort irgendwelche Unstimmigkeiten gibt.
  
Zeile 11: Zeile 11:
  
 
=== Include-Dateien ===
 
=== Include-Dateien ===
 
+
Im Block <code>Includes</code> können andere Skin-Dateien eingebunden werden. Beispiel:
Im Block Includes können andere Skin-Dateien eingebunden werden.
 
 
 
Beispiel:
 
 
  Includes
 
  Includes
 
  {
 
  {
Zeile 20: Zeile 17:
 
  Include: PFLang.skn;
 
  Include: PFLang.skn;
 
  }
 
  }
 +
Die ''PFSpecial.skn'' regelt hierbei die grundsätzlichen Einstellungen, den Aufbau des Systems und mit den Stings die Belegung der z. B. COM-Ports, Hintergrundbelechtung etc.
  
Die PFSpecial.skn regelt hierbei die grundsätzlichen Einstellungen, den Aufbau des Systems und mit den Stings die Belegung der z. B. COM-Ports, Hintergrundbelechtung etc.
+
Die ''PFLang.skn'' legt die ID-Nummer der verschiedenen Meldungen fest und bezieht dabei weitere ''*.skn''-Dateien mit ein.
 
 
Die PFLang.skn legt die ID-Nummer der verschiedenen Meldungen fest und bezieht dabei weitere *.skn Dateien mit ein.
 
  
 
=== Referenz auf Grafiken ===
 
=== Referenz auf Grafiken ===
In der PFSkin.skn
+
In der ''PFSkin.skn'', im Block <code>Bitmaps</code> können Grafiken mit einer ID versehen werden. Auf die ID kann dann z. B. bei der Definition von Buttons verwiesen werden, so dass die referenzierte Grafik angezeigt wird. Beispiel:
Im Block Bitmaps können Grafiken mit einer ID versehen werden. Auf die ID kann dann z. B. bei der Definition von Buttons verwiesen werden, so dass die referenzierte Grafik angezeigt wird.
 
Beispiel
 
 
  Bitmaps
 
  Bitmaps
 
  {
 
  {
 
   
 
   
 
  2: PPSkin\SplashScreen.png;
 
  2: PPSkin\SplashScreen.png;
  3: PPSkin\CornerButtons.png;                  //outdated
+
  3: PPSkin\CornerButtons.png;                  //outdated
 
  4: PPSkin\button_icons.png;
 
  4: PPSkin\button_icons.png;
 
  5: PPSkin\About.png;
 
  5: PPSkin\About.png;
Zeile 40: Zeile 34:
  
 
=== Schriftarten definieren ===
 
=== Schriftarten definieren ===
In der PFSkin.skn
+
In der ''PFSkin.skn'' können über den Block <code>Fonts</code> verschiedene Formatdefinitionen für die Ausgabe von Text hinterlegt werden. Jede Definition erhält eine eindeutige ID, eine Schriftart, Schriftgröße und bei Bedarf eine Formatierung wie Bold oder Italic. Beispiel:
können über den Block Fonts verschiedene Formatdefinitionen für die Ausgabe von Text hinterlegt werden. Jede Definition erhält eine eindeutige ID, eine Schriftart, Schriftgröße und bei Bedarf eine Formatierung wie Bold oder Italic.
 
Beispiel:
 
 
  Fonts
 
  Fonts
 
  {
 
  {
Zeile 60: Zeile 52:
 
         ...usw...
 
         ...usw...
 
  }
 
  }
 
 
Über den Paramter <tt>Font:XXX</tt> kann dann auf die im Abschnitt <tt>Fonts</tt> definierten Textformatierungen zugegriffen werden.
 
Über den Paramter <tt>Font:XXX</tt> kann dann auf die im Abschnitt <tt>Fonts</tt> definierten Textformatierungen zugegriffen werden.
  
 
=== Hauptbereiche ===
 
=== Hauptbereiche ===
In der PFSkin.skn
+
in der ''PFSkin.skn'' sind:
 
==== MapViewArea - Die Kartenansicht ====
 
==== MapViewArea - Die Kartenansicht ====
 
Fast alle Anpassungen des Skins finden in diesem Bereich statt. Hier werden Rahmen eingebaut, Farben verändert, Buttons platziert. Die Möglichkeiten sind vielfältig und einiges davon wird hoffentlich noch in dieses Wiki einfliessen.
 
Fast alle Anpassungen des Skins finden in diesem Bereich statt. Hier werden Rahmen eingebaut, Farben verändert, Buttons platziert. Die Möglichkeiten sind vielfältig und einiges davon wird hoffentlich noch in dieses Wiki einfliessen.
 
 
==== TurnByTurnArea - Die Pfeilansicht ====
 
==== TurnByTurnArea - Die Pfeilansicht ====
 
Hier können z. B. die Hintergrund- und Pfeilfarbe verändert werden, Buttons hinzugefügt und das Erscheinungsbild der Felder für Ankunftszeit, Fahrzeit und Strecke angepasst werden. <br>
 
Hier können z. B. die Hintergrund- und Pfeilfarbe verändert werden, Buttons hinzugefügt und das Erscheinungsbild der Felder für Ankunftszeit, Fahrzeit und Strecke angepasst werden. <br>
 
Genau hier liegt auch eine Falle, in die schon viele Skin-Entwickler getappt sind. Denn wer diese 3 Felder (die auch hier TargetTimeText, TargetDistanceText, TargetArrTimeText heissen) eigentlich in der Kartenansicht ändern möchte, kann versehentlich hier rauskommen und wird seine vorgenommenen Änderungen dort nie wiederfinden.
 
Genau hier liegt auch eine Falle, in die schon viele Skin-Entwickler getappt sind. Denn wer diese 3 Felder (die auch hier TargetTimeText, TargetDistanceText, TargetArrTimeText heissen) eigentlich in der Kartenansicht ändern möchte, kann versehentlich hier rauskommen und wird seine vorgenommenen Änderungen dort nie wiederfinden.
 
 
==== GPSView - Die Kompassansicht ====
 
==== GPSView - Die Kompassansicht ====
 
Hier lässt sich eine Höhenanzeige aktivieren, die standardmäßig nicht angezeigt wird. Der Grund wird sein, dass mindestens das Signal von 4 Satelliten benötigt wird, um eine brauchbare Höhenangabe zu erhalten.<br>
 
Hier lässt sich eine Höhenanzeige aktivieren, die standardmäßig nicht angezeigt wird. Der Grund wird sein, dass mindestens das Signal von 4 Satelliten benötigt wird, um eine brauchbare Höhenangabe zu erhalten.<br>
 
Ebenso haben manche Userskins hier eine Uhrzeitanzeige aktiviert, die leider nur die GMT-Zeit anzeigt, also um eine Stunde "nachgeht".
 
Ebenso haben manche Userskins hier eine Uhrzeitanzeige aktiviert, die leider nur die GMT-Zeit anzeigt, also um eine Stunde "nachgeht".
 
 
==== Masken - Definitionen ====
 
==== Masken - Definitionen ====
 +
Masken bestehen aus einem bestimmten, für die universelle Handhabung wichtigen immer wiederkehrenden Aufbau.
  
Masken bestehen aus einem bestimmten, für die universelle Handhabung wichtigen immer wiederkehrenden Aufbau.
 
 
Dieses "Skelett" besteht aus:
 
Dieses "Skelett" besteht aus:
  
 
1. '''Grundsätzlichen Definitionen''' für
 
1. '''Grundsätzlichen Definitionen''' für
+
* den Hintergrund
- den Hintergrund
+
* die Hintergrundfarbe
- die Hintergrundfarbe
+
* den Darstellungsmodus
- den Darstellungsmodus
+
* die verwendete Schrift
- die verwendete Schrift
+
* die Schriftfarbe
- die Schriftfarbe
 
  
    Beispiel:  
+
Beispiel:  
 
         Background: 51,0,0,480,272;
 
         Background: 51,0,0,480,272;
 
         BGColor: 225,228,229;
 
         BGColor: 225,228,229;
Zeile 95: Zeile 82:
 
         DefaultFont: 60;
 
         DefaultFont: 60;
 
         TextColor: 0,0,0;
 
         TextColor: 0,0,0;
 
+
 
 
2. '''Titelbar'''
 
2. '''Titelbar'''
Die Angabe in dieser Sektion referenziert die Grafik für die Maskenüberschrift.  
+
:Die Angabe in dieser Sektion referenziert die Grafik für die Maskenüberschrift.
 +
 
3. '''Titel'''
 
3. '''Titel'''
Die Angabe in dieser Sektion referenziert den Text für die Maskenüberschrift.  
+
:Die Angabe in dieser Sektion referenziert den Text für die Maskenüberschrift.  
 +
 
 
4. '''TitelbarExitButton'''
 
4. '''TitelbarExitButton'''
Die Angabe in dieser Sektion definieren den Exit-Button.
+
:Die Angabe in dieser Sektion definieren den Exit-Button.
 +
 
 
5. '''TitelbarHelpButton'''
 
5. '''TitelbarHelpButton'''
Die Angabe in dieser Sektion definieren den Hilfe-Button.
+
:Die Angabe in dieser Sektion definieren den Hilfe-Button. ... ist aber manchmal auch nicht vorhanden.
... ist aber manchmal auch nicht vorhanden.
 
5. '''Folge von Detail-Definitionen''', die den Inhalt der Maske festlegen.
 
Diese sind je nach Maske natürlich verschiedenartiger Natur.
 
  
== Auflistung der Masken-Definitionen. ==
+
6. '''Folge von Detail-Definitionen''', die den Inhalt der Maske festlegen.
{|border="1"
+
:Diese sind je nach Maske natürlich verschiedenartiger Natur.
|Maske
+
:{| class="wikitable"
|Beschreibung     ('''''ist noch nicht vollständig''''')  
+
|+ Auflistung der Masken-Definitionen
 +
! Maske !! Beschreibung   
 
|-
 
|-
|Includes
+
| Includes || Hier werden weitere *.skn Dateien eingebunden
|Hier werden weitere *.skn Dateien eingebunden
 
 
|-
 
|-
|Bitmaps
+
|Bitmaps || Hier werden den Bitmaps ID-Nr verpasst, die dann in den Buttons damit aufgerufen werden können.
|Hier werden den Bitmaps ID-Nr verpasst, die dann in den Buttons damit aufgerufen werden können.
 
 
|-
 
|-
 
|Fonts
 
|Fonts
Zeile 477: Zeile 463:
 
|-
 
|-
 
|TMCSelectListView
 
|TMCSelectListView
|Auswahlmenü für TMC, TMCpro und/oder V-Trafic
+
|Auswahlmenü für TMC, TMCpro und/oder V-Traffic
 
|-
 
|-
 
|SelectKeyboard
 
|SelectKeyboard
Zeile 562: Zeile 548:
 
|-
 
|-
 
|GotoView
 
|GotoView
|
+
| Steuert das Menü Gehe zu ... unter Routen Optionen
Steuert das Menü Gehe zu ... unter Routen Optionen
 
 
 
|-
 
|-
 
|TripInfoView
 
|TripInfoView
|Aufruf über den unteren rechten Button in der Karte und dann auf Tripinfo
+
|Aufruf über den unteren rechten Button in der Karte und dann auf Tripinfo<br />Steuert die Anzeigen im Fenster Tipinfo<br />Höchstgeschindigkeit<br />Durchschnittsgeschwindigkeit<br />Gefahrene Strecke<br />Fahrzeit
Steuert die Anzeigen im Fenster Tipinfo  
 
Höchstgeschindigkeit
 
Durchschnittsgeschwindigkeit
 
Gefahrene Strecke
 
Fahrzeit
 
 
|-
 
|-
 
|VoicInputScreen
 
|VoicInputScreen
Zeile 608: Zeile 587:
 
|-
 
|-
 
|AmbiguityListEntryInfoSubform
 
|AmbiguityListEntryInfoSubform
|
+
| '''noch nicht weiter detailliert '''
'''noch nicht weiter detailliert '''
 
 
|-
 
|-
 
|AmbiguityListEntryInfoSubformPOI
 
|AmbiguityListEntryInfoSubformPOI
Zeile 618: Zeile 596:
 
|-
 
|-
 
|SelectTimeZoneAndDayLight
 
|SelectTimeZoneAndDayLight
||Auswahlmenü für Zeitzone
+
|Auswahlmenü für Zeitzone
 
|-
 
|-
 
|TimeZoneTextListSubForm
 
|TimeZoneTextListSubForm
||Zeitzonen-Auswahl-Subform
+
|Zeitzonen-Auswahl-Subform
 
|-
 
|-
 
|DayLightTextListSubform
 
|DayLightTextListSubform
|
+
| '''noch nicht weiter detailliert '''
'''noch nicht weiter detailliert '''
 
 
|-
 
|-
 
|RouteBlockingView
 
|RouteBlockingView
Zeile 636: Zeile 613:
 
== Verwendung von Objekten ==
 
== Verwendung von Objekten ==
 
=== Coordinates / Grundsätzliches zum Koordinaten-System ===
 
=== Coordinates / Grundsätzliches zum Koordinaten-System ===
Jedes auf dem Bildschirm darzustellende Element wird über den Parameter Coordinates platziert. Hierbei kann solch ein Element auch ein Container sein, in dem weitere Elemente gruppiert werden. Dies ist wichtig, da die einzugebenden Koordinaten immer relativ zur Position des übergeordneten Containers sind. Beispiel:
+
Jedes auf dem Bildschirm darzustellende Element wird über den Parameter <code>Coordinates</code> platziert. Hierbei kann solch ein Element auch ein Container sein, in dem weitere Elemente gruppiert werden. Dies ist wichtig, da die einzugebenden Koordinaten immer relativ zur Position des übergeordneten Containers sind. Beispiel:
 
 
 
  TTISubform // this form is used in the MapViewArea and TurnByTurnArea
 
  TTISubform // this form is used in the MapViewArea and TurnByTurnArea
 
  {
 
  {
Zeile 659: Zeile 635:
 
                 Action: NavigationMenu.trafficWarning;
 
                 Action: NavigationMenu.trafficWarning;
 
         }
 
         }
 
+
<code>TTISubform</code> ist der Container für das nachgeordnete Element <code>VanishingTTIWarningButton</code>, seine Koordinaten sind der Bezugspunkt für alle im Container gruppierten Elemente.  
TTISubform ist der Container für das nachgeordnete Element VanishingTTIWarningButton, seine Koordinaten sind der Bezugspunkt für alle im Container gruppierten Elemente.  
 
  
 
Syntax für die Koordinaten:
 
Syntax für die Koordinaten:
Die ersten beiden Werten geben die Position der linken oberen Ecke an:
+
: Die ersten beiden Werten geben die Position der linken oberen Ecke an:
384 = Der Abstand vom linken Rand
+
: 384 = Der Abstand vom linken Rand
0 = Der Abstand von Oben
+
: 0 = Der Abstand von Oben
 
   
 
   
Die beiden letzten Werte geben die Größe an:
+
: Die beiden letzten Werte geben die Größe an:
96 = die Feldgröße nach rechts
+
: 96 = die Feldgröße nach rechts
108 = die Feldgröße nach unten
+
: 108 = die Feldgröße nach unten
  
In diesem Beispiel ist also die tatsächliche Position des Elementes VanishingTTIWarningButton:  
+
In diesem Beispiel ist also die tatsächliche Position des Elementes <code>VanishingTTIWarningButton</code>:  
384 Pixel vom linken Rand
+
: 384 Pixel vom linken Rand
60 Pixel von oben
+
: 60 Pixel von oben
  
 
=== TextCoordinates ===
 
=== TextCoordinates ===
Über die TextCoordinates kann speziell bei Text-Objekten der tatsächliche Text innerhalb des über die Coordinates definierten Hintergrundes pixelgenau positioniert werden. Beispiel:
+
Über die <code>TextCoordinates</code> kann speziell bei Text-Objekten der tatsächliche Text innerhalb des über die <code>Coordinates</code> definierten Hintergrundes pixelgenau positioniert werden. Beispiel:
 
  TargetTimeText
 
  TargetTimeText
 
  {
 
  {
Zeile 683: Zeile 658:
 
         Coordinates: 148,236,114,36;
 
         Coordinates: 148,236,114,36;
 
         TextCoordinates: 0,10,114,20;
 
         TextCoordinates: 0,10,114,20;
Hier wird der Text innerhalb des größeren (114x36) Hintergrunds beginnend bei Position 0,10 (relativ zu den Coordinates) in einer Größe 114x20 dargestellt.
+
Hier wird der Text innerhalb des größeren (114x36) Hintergrunds beginnend bei Position 0,10 (relativ zu den <code>Coordinates</code>) in einer Größe 114x20 dargestellt.
  
=== HAlign/VAlign ===
+
=== HAlign und VAlign ===
Über die Eigenschaften HAlign (horizontal) und VAlign (vertikal) wird speziell bei Text-Objekten die Ausrichtung gesteuert. Mögliche Werte sind für
+
Über die Eigenschaften <code>HAlign</code> (horizontal) und <code>VAlign</code> (vertikal) wird speziell bei Text-Objekten die Ausrichtung gesteuert. Mögliche Werte sind für
HAlign: left, center, right (linksbündig, zentriert, rechtsbündig) und für VAlign: top, center, bottom (oben, zentriert, unten)
+
<code>HAlign: left, center, right</code> (linksbündig, zentriert, rechtsbündig) und für <code>VAlign: top, center, bottom</code> (oben, zentriert, unten).
  
 
=== PYOffset ===
 
=== PYOffset ===
Über die Eigenschaft PYOffset kann auf einfache Art ein Y-Versatz (Verschieben nach oben oder unten) eines Objektes (Icon,Text etc.) innerhalb des durch die Coordinates bestimmten Hintergrundes erzielt werden.
+
Über die Eigenschaft <code>PYOffset</code> kann auf einfache Art ein Y-Versatz (Verschieben nach oben oder unten) eines Objektes (Icon,Text etc.) innerhalb des durch die Coordinates bestimmten Hintergrundes erzielt werden.
  
=== Enabled/Focussed/Pushed/Disabled ===
+
=== Enabled / Focussed / Pushed / Disabled ===
 
Diese speziell für Buttons vorgesehen Eigenschaften bestimmen - entsprechend der unter [[GoPal_2.0_Skin#Icon| Icon]] näher erläuterten Syntax - das Aussehen des Hintergrundes in den 4 möglichen Zuständen eines Buttons.
 
Diese speziell für Buttons vorgesehen Eigenschaften bestimmen - entsprechend der unter [[GoPal_2.0_Skin#Icon| Icon]] näher erläuterten Syntax - das Aussehen des Hintergrundes in den 4 möglichen Zuständen eines Buttons.
Enabled = Standard/Aktiviert
+
{| class||"wikitable"
Focussed = Der Button hat den Focus (in einem Touchscreen gesteuerten System etwas unklare Bedeutung)
+
|<code>Enabled</code> || Standard/Aktiviert
Pushed = Der Button wird gedrückt  
+
|-
Disabled = Deaktiviert
+
| <code>Focussed</code> || Der Button hat den Focus (in einem Touchscreen gesteuerten System etwas unklare Bedeutung)
 +
|-
 +
| <code>Pushed</code> || Der Button wird gedrückt
 +
|-
 +
| <code>Disabled</code> || Deaktiviert
 +
|}
  
 
=== Icon ===
 
=== Icon ===
Zeile 727: Zeile 707:
 
Klassen bestimmen die Art eines Objektes. Jede Klasse hat bestimmte festgelegte Eigenschaften und Methoden, die jedes Objekt dieser Klasse übernimmt. Beispiel: Class: PushButton; definiert einen Standardbutton.  
 
Klassen bestimmen die Art eines Objektes. Jede Klasse hat bestimmte festgelegte Eigenschaften und Methoden, die jedes Objekt dieser Klasse übernimmt. Beispiel: Class: PushButton; definiert einen Standardbutton.  
  
{|border="1"
+
{| class="wikitable" border="1"
|Class
+
!Class!!Beschreibung
|Beschreibung
 
 
|-
 
|-
 
|BitmapIconPanel
 
|BitmapIconPanel
Zeile 847: Zeile 826:
 
Beispiel: <tt>Action: SettingSC.100;</tt>  erhöht die Sprachlautstärke.
 
Beispiel: <tt>Action: SettingSC.100;</tt>  erhöht die Sprachlautstärke.
  
{|border="1"
+
{| class="wikitable" border="1"
|Action
+
!Action!!Beschreibung  .... '''''bitte alphabetisch sortiert auflisten'''''
|Beschreibung  .... '''''bitte alphabetisch sortiert auflisten'''''
 
 
|-
 
|-
 
|DestinationSC.10070;
 
|DestinationSC.10070;
Zeile 1.539: Zeile 1.517:
 
=== Spezial-Referenz ===
 
=== Spezial-Referenz ===
 
Es gibt spezielle Parameter, die nur für bestimmte Klassen verwendet werden können:
 
Es gibt spezielle Parameter, die nur für bestimmte Klassen verwendet werden können:
{|border="1"
+
{| class="wikitable" border="1"
|Class
+
!Class!!Parameter!!'''erlaubte Werte''' / Beschreibung!!Beispiel
|Parameter
 
|'''erlaubte Werte''' / Beschreibung
 
|Beispiel
 
 
|-
 
|-
 
|LauncherButton
 
|LauncherButton
Zeile 1.565: Zeile 1.540:
 
|Text: "gespeicherte Route^n^laden";
 
|Text: "gespeicherte Route^n^laden";
 
|}
 
|}
 +
 
== Fernbedienung-Skin Befehle ==
 
== Fernbedienung-Skin Befehle ==
Es gibt verschieden Befehle für die [[Lenkradfernbedienung]] (FB).
+
Es gibt verschieden Befehle für die [[Lenkradfernbedienung]], um einen Button überhaupt ansprechen zu können muss der Eintrag
 
+
DisableFocus: yes;
 
+
entfernt werden.
Um einen Button überhaupt ansprechen zu können mit der FB, muss der Eintrag '''DisableFocus: yes;''' entfernt werden.
 
 
 
 
 
Um Button in der Kartenansicht anzusprechen, müsst Ihr unter MapViewArea den Eintrag '''FocusManager: "disabled";''' entfernen.
 
 
 
 
 
 
 
'''KPush: enter;''' reagiert auf die OK-Taste
 
 
 
'''KPush: left;''' reagiert auf die 'Pfeil links' Taste (sollte immer für den Button unten links genommen werden)
 
 
 
'''KPush: right;''' reagiert auf die 'Pfeil rechts' Taste (sollte immer für den Button unten rechts genommen werden)
 
 
 
'''HKPush: "down";''' reagiert auf die 'Pfeil runter' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
 
 
 
'''HKPush: "up";''' reagiert auf die 'Pfeil rauf' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
 
 
 
 
 
 
 
Wenn Ihr bei einem Button 'DisableFocus: yes;' entfernt, aber keinen KPush: einfügt, kann man mit den 'Pfeil rauf / runter' Tasten diesen Button auch auswählen und er reagiert standardmässig auf die OK-Taste, sobald er markiert ist.
 
  
 +
Um Button in der Kartenansicht anzusprechen, müsst Ihr unter <code>MapViewArea</code> den Eintrag
 +
FocusManager: "disabled";
 +
entfernen.
  
 +
Wenn Ihr bei einem Button <code>DisableFocus: yes;</code> entfernt, aber keinen <code>KPush:</code>einfügt, kann man mit den Tasten 'Pfeil rauf / runter' diesen Button auch auswählen und er reagiert standardmässig auf die OK-Taste, sobald er markiert ist.
  
 
Hier mal alle bekannten Befehle:
 
Hier mal alle bekannten Befehle:
 +
{| class="wikitable"
 +
| KPush: enter; || reagiert auf die OK-Taste
 +
|-
 +
| KPush: left;  || reagiert auf die 'Pfeil links' Taste (sollte immer für den Button unten links genommen werden)
 +
|-
 +
| KPush: right;  || reagiert auf die 'Pfeil rechts' Taste (sollte immer für den Button unten rechts genommen werden)
 +
|-
 +
| HKPush: "down";  || reagiert auf die 'Pfeil runter' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
 +
|-
 +
| HKPush: "up";  || reagiert auf die 'Pfeil rauf' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
 +
|-
 +
| HKPush: "left"; ||
 +
|-
 +
| HKPush: "right"; ||
 +
|-
 +
| HKUp: "Up"; ||
 +
|-
 +
| HKDown: "Down"; ||
 +
|-
 +
| HKExecute: Enter; ||
 +
|-
 +
| HKBackSpace: "Back"; ||
 +
|-
 +
| HKSelect: UpDown; ||
 +
|-
 +
| HKPush: "F24"; ||
 +
|-
 +
| AlwaysConsumeKHK: yes; ||
 +
|-
 +
| KHKScrollMode: "page"; ||
 +
|-
 +
| HKScrollPage: yo; ||
 +
|-
 +
| HKPush: hk1; ||
 +
|-
 +
| HKPush: hk2; ||
 +
|-
 +
| SetFocusOnLoad: yes;  || Legt fest, welcher Button nach Aufruf der Seite fokussiert ist.
 +
|}
 +
Die Play-Taste kann man mit einer Funktion belegen, wenn man in der ''PFSkin'' den Eintrag
 +
HKPUSH: "PLAY";
 +
bei der gewünschten Funktion einfügt.
  
'''HKPush: "left";'''
+
Die Vor- und Zurück-Tasten auf der Fernbedienung belegt man, indem man in der ''PFSpecial.skn'' die F8- und F9-Tasten dafür einträgt unter <code>GlobalHK</code>.<br />
 
+
Im folgenden Beispiel kann man dann mit den Tasten zoomen.
'''HKPush: "right";'''
+
F8@MapMenu.zoomIn,  
 
+
F9@MapMenu.zoomOut
'''HKUp: "Up";'''
 
 
 
'''HKDown: "Down";'''
 
 
 
'''HKExecute: Enter;'''
 
 
 
'''HKBackSpace: "Back";'''
 
 
 
'''HKSelect: UpDown;'''
 
 
 
'''HKPush: "F24";'''
 
 
 
'''AlwaysConsumeKHK: yes;'''
 
 
 
'''KHKScrollMode: "page";'''
 
 
 
'''HKScrollPage: yo;'''
 
 
 
'''HKPush: hk1;'''
 
 
 
'''HKPush: hk2;'''
 
 
 
 
 
'''SetFocusOnLoad: yes;'''
 
Legt fest, welcher Button nach Aufruf der Seite fokussiert ist.
 
 
 
Die Play-Taste kann man mit einer Funktion belegen, wenn man in der PFSkin den Eintrag HKPUSH: "PLAY"; bei der gewünschten Funktion einfügt.
 
 
 
Die Vor- und Zurück-Tasten auf der Fernbedienung belegt man, indem man in der PFSpecial.skn die F8- und F9-Tasten dafür einträgt unter GlobalHK:
 
 
 
Beispiel: F8@MapMenu.zoomIn, F9@MapMenu.zoomOut
 
 
 
In diesem Beispiel kann man dann mit den Tasten zoomen.
 
 
 
 
 
 
 
 
 
 
 
{{adsense}}
 

Aktuelle Version vom 5. Februar 2020, 18:02 Uhr


Bevor Ihr irgend etwas ändert oder ausprobiert, macht bitte eine Sicherungskopie der PFSkin.skn, damit Ihr, wenn es schief geht, immer wieder den Original-Zustand herstellen könnt.

Wenn es zu unerklärlichen Fehlern kommt, z. B. Speicherkarte wird auf einmal nicht mehr erkannt oder Navigation startet nicht durch, so kann das an Euren Änderungen liegen. Bitte dann zuerst versuchen, mit der Original-Datei zu starten. Wenn das funktioniert, solltet Ihr Euch Eure Änderungen einmal genauer ansehen, da es dann dort irgendwelche Unstimmigkeiten gibt.

Grundsätzlicher Aufbau der Skin-Dateien

Skin-Dateien der GoPal-Navigations-Software besitzen die Endung .skn. Es handelt sich um reine ASCII-Textdateien, die mit einem herkömmlichen ASCII-Texteditor bearbeitet werden können.

Die Dateien sind strukturiert aufgebaut. Jeder Block wird durch einen Bezeichner eingeleitet und die Definitionen dieses Objektes sind in geschweifte Klammern eingebettet.

Include-Dateien

Im Block Includes können andere Skin-Dateien eingebunden werden. Beispiel:

Includes
{
	Include: PFSpecial.skn;
	Include: PFLang.skn;
}

Die PFSpecial.skn regelt hierbei die grundsätzlichen Einstellungen, den Aufbau des Systems und mit den Stings die Belegung der z. B. COM-Ports, Hintergrundbelechtung etc.

Die PFLang.skn legt die ID-Nummer der verschiedenen Meldungen fest und bezieht dabei weitere *.skn-Dateien mit ein.

Referenz auf Grafiken

In der PFSkin.skn, im Block Bitmaps können Grafiken mit einer ID versehen werden. Auf die ID kann dann z. B. bei der Definition von Buttons verwiesen werden, so dass die referenzierte Grafik angezeigt wird. Beispiel:

Bitmaps
{

	2: PPSkin\SplashScreen.png;
	3: PPSkin\CornerButtons.png;                   //outdated
	4: PPSkin\button_icons.png;
	5: PPSkin\About.png;
       ...usw....
}

Schriftarten definieren

In der PFSkin.skn können über den Block Fonts verschiedene Formatdefinitionen für die Ausgabe von Text hinterlegt werden. Jede Definition erhält eine eindeutige ID, eine Schriftart, Schriftgröße und bei Bedarf eine Formatierung wie Bold oder Italic. Beispiel:

Fonts
{
	0: Arial,18;            // Original Font VERDANA    // Normal text
	1: Arial,23,BOLD;       // Original Font VERDANA    // For titles
	2: Arial,16,BOLD;       // Original Font VERDANA    // Normal text
	3: Arial,18,BOLD;	// Original Font VERDANA    // Used in TurnByTurnArea
	4: Arial,15;            // Original Font VERDANA
	5: ArialNarrow,18;
	6: Arial,16;            // Used by the drawing board for displaying meter units in the meter
	7: Arial,15,BOLD;       // Original Font VERDANA    // Used for Button Text (Standard)
	8: Arial,12;            // Original Font VERDANA    // small font used for distance unit in route overview
	9: Arial,19,BOLD;       // Original Font VERDANA    // large adress font used in AmbiguityListEntryInfoArea
	10: Arial,16,BOLD;      // Original Font VERDANA    // Used for Hybrid License Dlg.
	11: Arial,21,BOLD;      // Original Font VERDANA    // Used for infos in map.
	12: Arial,14,BOLD;	// Original Font VERDANA    // Used for ScaleElement
       ...usw...
}

Über den Paramter Font:XXX kann dann auf die im Abschnitt Fonts definierten Textformatierungen zugegriffen werden.

Hauptbereiche

in der PFSkin.skn sind:

MapViewArea - Die Kartenansicht

Fast alle Anpassungen des Skins finden in diesem Bereich statt. Hier werden Rahmen eingebaut, Farben verändert, Buttons platziert. Die Möglichkeiten sind vielfältig und einiges davon wird hoffentlich noch in dieses Wiki einfliessen.

TurnByTurnArea - Die Pfeilansicht

Hier können z. B. die Hintergrund- und Pfeilfarbe verändert werden, Buttons hinzugefügt und das Erscheinungsbild der Felder für Ankunftszeit, Fahrzeit und Strecke angepasst werden.
Genau hier liegt auch eine Falle, in die schon viele Skin-Entwickler getappt sind. Denn wer diese 3 Felder (die auch hier TargetTimeText, TargetDistanceText, TargetArrTimeText heissen) eigentlich in der Kartenansicht ändern möchte, kann versehentlich hier rauskommen und wird seine vorgenommenen Änderungen dort nie wiederfinden.

GPSView - Die Kompassansicht

Hier lässt sich eine Höhenanzeige aktivieren, die standardmäßig nicht angezeigt wird. Der Grund wird sein, dass mindestens das Signal von 4 Satelliten benötigt wird, um eine brauchbare Höhenangabe zu erhalten.
Ebenso haben manche Userskins hier eine Uhrzeitanzeige aktiviert, die leider nur die GMT-Zeit anzeigt, also um eine Stunde "nachgeht".

Masken - Definitionen

Masken bestehen aus einem bestimmten, für die universelle Handhabung wichtigen immer wiederkehrenden Aufbau.

Dieses "Skelett" besteht aus:

1. Grundsätzlichen Definitionen für

  • den Hintergrund
  • die Hintergrundfarbe
  • den Darstellungsmodus
  • die verwendete Schrift
  • die Schriftfarbe

Beispiel:

       Background: 51,0,0,480,272;
       BGColor: 225,228,229;
       BGMode: opaque;
       DefaultFont: 60;
       TextColor: 0,0,0;

2. Titelbar

Die Angabe in dieser Sektion referenziert die Grafik für die Maskenüberschrift.

3. Titel

Die Angabe in dieser Sektion referenziert den Text für die Maskenüberschrift.

4. TitelbarExitButton

Die Angabe in dieser Sektion definieren den Exit-Button.

5. TitelbarHelpButton

Die Angabe in dieser Sektion definieren den Hilfe-Button. ... ist aber manchmal auch nicht vorhanden.

6. Folge von Detail-Definitionen, die den Inhalt der Maske festlegen.

Diese sind je nach Maske natürlich verschiedenartiger Natur.
Auflistung der Masken-Definitionen
Maske Beschreibung
Includes Hier werden weitere *.skn Dateien eingebunden
Bitmaps Hier werden den Bitmaps ID-Nr verpasst, die dann in den Buttons damit aufgerufen werden können.
Fonts Hier werden die Schriften eingebunden
AssistedCountryPhoneInputKeyboard ???
AssistedPhoneInputKeyboard ???
CityStreetMatchesSubform ???
HybridLicenseKeyDlg ???
KeyboardBlockAlphaBig Hier wird das Tastaturlayout bestimmt
KeyboardBlockLowerCase Tastaturlayout der Sonderzeichen ( Ä, Ö, Ü usw. )
KeyboardBlockNumericOnly Hier wird das Layout des Nummernblocks bestimmt.
KeyboardBlockSymbolic Hier wird das Layout der Sondertasten bestimmt ( ?, !, & usw. ).
LicenseKeyboard ???
OBNAssistedCountryKeyboard ???
OBNAssistedKeyboard ???
OBNContInputKeyboard ???
OBNContPOINameInputKeyboard ???
OBNKeyboard ???
PhoneContInputKeyboard ???
PhoneInputKeyboard ???
PhoneKeyboardBlockAlpha Hier wird das Tastaturlayout bestimmt, wenn die Telefontastatur gewählt wurde.
PhoneKeyboardBlockNumeric Hier wird das Layout des Nummernblocks für die Telefontastatur bestimmt.
ContCenterSubform ???
AssistedPOIPhoneInputKeyboard ???
MapViewArea Objekte in der Kartenansicht, hier werden die meisten Buttons eingefügt.
MapSignPostSubForm Hier wird der Abbiegepfeil konfiguriert und die Infoleiste mit der Strasse und dem Spurassistenten.
NavigationInfoElementsSubForm Hier werden das Batteriesymbol, Speedlimit-Warnung und Ansagewiederholungs-Button konfiguriert; desweiteren wird der GPS-Container mit eingebunden (alles nur für die Kartenansicht).
MapNorthDirectionSubform Hier wird der kleine Kompass in der Kartenansicht konfiguriert.
GPSErrorSignPostSubForm Hier wird das GPS-Icon in der Kartenansicht oben links festgelegt.
GPSInfoSubform Hier wird das GPS-Icon in der Kartenansicht oben links konfiguriert.
TTISubform Hier wird das TMC-Icon in der Kartenansicht oben links konfiguriert.
DestinationArea ???
TurnByTurnArea Hier wird alles für die Pfeilansicht geregelt, hier können auch Buttons eingefügt werden.
FreeTargetArea Hier wird das Adresseingabefenster konfiguriert.
FreeTargetAreaAddressSubform Hier werden die Buttons PLZ, Ort und Strasse im Adresseingabefenster konfiguriert.
FreeTargetAreaContactsSubForm
FreeTargetAreaCoordinatesSubform ???
FreeTargetAreaNoContactsSubForm Adress- und Sonderzieleingabe direkt nach GoPal-Start; ab V3.1 -> FreeTargetAreaMSContactsSubForm
FreeTargetAreaPOISubform Hier wird die Liste der Sonderziele konfiguriert.
FreeTargetAreaSubSkin Hier wird die Liste der Länder konfiguriert.
POIDestinationStartScreen Hier wird das Fenster Suche nach POI konfiguriert (in der Nähe, an einem bestimmten Ort)
POINameDestinationArea ???
RecentDestinationArea Liste aller letzten Orte
RecentDestinationsSubform Hier werden die 3 Buttons der letzten Orte im Adresseingabefenster konfiguriert.
TabSubform ???
MainTextEntrySubForm ???
ListMaintenance Hier wird die Menüseite mit den Favoriten/letzte Orte konfiguriert (Zielspeicher).
RemoveAllRecent Alle Ziele löschen
RemoveRecent Ein Ziel löschen
RenameFavorite Favoriten umbenennen
RemoveFavorite Einen Favoriten löschen
TourPlanElementSelectionArea Hier wird die Menüseite Routenplannung konfiguriert.
TourOptionsArea Hier wird die Menüseite Route laden/speichern konfiguriert (wird noch nicht benutzt).
POICategoryListSubForm ???
POIAmbitDestinationArea ???
ContactDestinationArea Hier werden die Contacte über Buttons alphabetisch geordnet (wird noch nicht benutzt).
StoredDestinationArea Hier wierden die Favoriten als Liste angezeigt.
RouteOverviewArea Die Wegbeschreibung
TTIOverviewArea TMC Meldungen Übersicht
TTIDetailArea TMC Detail-Meldung
TTIDetailAreaSubForm Einstellung z. B. der Schriftgrösse für TMC Detail-Meldungen
AmbiguityArea ???
AmbiguityListEntryInfoArea ???
AmbiguityListEntryInfoViewport Detailinformation nach Abschluss der Adresseingabe
AgentProgressArea Route wird berechnet Seite
ShowAgentErrorArea ???
EulaArea Eulahinweis (wird noch nicht benutzt)
StVOArea Strassenverkehrshinweis
NaviTypeSubSkin Routenoptionen, Liste der Verkehrsmittel (PKW, Fahrrad usw.)
RouteTypeSubSkin Routenoptionen, Liste der Strecken (schnell, kurz, ökonomisch)
OmitTollRoadsSubSkin Routenoptionen, Liste der Mautfunktion (verwenden, meiden)
RoadClass0SubSkin Routenoptionen, Liste der Autobahnfunktion (verwenden, meiden)
FerriesSubSkin Routenoptionen, Liste der Fähren-Einstellung (verwenden, meiden)
CongestionByPassSubSkin Routenoptionen, Liste der Stauparameter (keine, manuell, automatisch)
RouteOptionsSubform Menüseite mit den Routenoptionen
RouteOptionsArea Menü Routenoptionen
RouteOptionsAreaMapMenu Untere Zeile Routenoptionen
ContinueRouteArea Route fortsetzen Seite
ExternalDestinationArea ???
GPSView Kompass Ansicht
TBTSignPostSubForm Einstellung der Strasse und Abbiegehinweise in der Pfeilansicht
SelectLanguage Sprache wählen Menü
LangSelectionExit Sprache wählen Menü verlassen
SelectMapRegions Karte wählen Menü
SelectInitialMapRegions Gewählte Karte bestätigen
MapSelectionExit Karte wählen Menü verlassen
SelectTimeZone Zeitzonen Menü
AboutArea Info Bildschirm
HardwareConfigArea Possitionierungsseite
HWConfigTypeSubSkin Einstellung des GPS Ports
HWConfigDiscoverArea Einstellung, ob GPS-Signal benutzt werden soll oder eine aufgezeichnete GPS-Spur wieder gegeben werden soll.
AudioConfigArea Lautstärkeregelung
AudioConfigPopUpArea Lautstärkeregelung des Popups
MapConfigArea Menüseite Darstellung
MapStateSubSkin ???
DesignSubSkin ???
AutoSwitchSubSkin ???
MetricImperialUnitsSubSkin ???
PowersaveSubSkin Ausschalt-Menü (Reset oder abschalten)
TimeFormatSubSkin Zeitzone
TTIWarningSubform Hinweis-Button, der bei einer auftretenden Verkehrsstörung auf der berechneten Route eingeblendet wird.
MapMenuDefault ???
MenuViewMain Die erste Menüseite des Haupmenüs (neues Ziel eingeben usw.)
MenuViewView Untere Zeile im Menü Ansicht
MapMenuAutozoom Autozoom Button
MapMenuSelection ???
MapMenuLocation ???
DynMapItemViewSubform Elemente oben mit Strassennamen, wenn ein Ziel aus der Karte gewählt wurde.
DynamicMapItemSelectionMenu Buttons unten zum Rauf/Runter-Schalten der Strassen und Ziel zur Route Hinzufügen, wenn ein Ziel aus der Karte gewählt wurde.
NoAuthInfoDlg ???
DeviceCodeArea ???
FatalErrorArea Fehlermeldung (Fatal Aplication Error)
UpdateReminderArea Update-Hinweis, wenn Kartenmaterial zu alt ist.
SystemMessageDefaultMenu ???
SystemMessageArea ???
POIOverrrideMessageArea ???
StorageCardOut Hinweisfenster, dass die SD-Karte entfernt wurde.
SelectRdsTmc TMC-Sender Fenster
SelectTmcPortView TMC-Port einstellen
TrafficWarningListView Liste der TMC-Meldungen
CongestionByPassListView Auswahlmenü für autom. oder manuelle Stauumfahrung
SelectTmcRdsModeView Auswahlmenü für autom. oder manuelle Sendersuche bzw. Frequenzeingabe
TMCSelectListView Auswahlmenü für TMC, TMCpro und/oder V-Traffic
SelectKeyboard Auswahlliste des Tastaturlayouts
SpeedLimitWarningSettingsView Settings für die Höchstgeschwindigkeitswarnung
PsfAuthentificationStartScreen Zeigt den Startbildschirm für die code eingabe bei updates des kartenmaterials
PsfAuthtificationSuccessScreen Zeigt den Bildschirm das das neue kartenmaterial jetzt freigeschaltet ist
PsfAuthtificationErrorScreen Zeigt den Bildschirm bei einem Fehler
MapMenuView1Subform Aufruf über den rechten Button in der Kartenansicht
MapButton                  / Button: Kartenauswahl 2D/3D
TrafficInformationButton   / Button: Verkehrsinformationen
GPSInformationButton       / Button: Kompass
TripInfoButto              / Button: TripInfo 
//DummyButton              / Button: !! liegt bzgl. der Koordinaten über dem TripInfoButton 
DirectionViewButton        / Button: Wechsel zur Pfeil-Navigation
AppButton                  / Button: Weitere Anwendungen    ->(wechselt zum Hauptmenü)
//TelephoneButton          / Button: !! liegt bzgl. Koordinaten über dem TripInfoButton
//ExitNavigationButton     / Button: !! liegt bzgl. Koordinaten über dem DirectionViewButton
//NextViewButton           / Button: !! liegt bzgl. Koordinaten über dem AppButton    
MapMenuView2Subform Derzeit nicht erreichbar, da der Button NextViewButton in der Maske MapMenuView1Subform auskommentiert ist.
 MusicButton               / Button: 
 VideoButton               / Button: 
 NextViewButton            / Button: Zurück zu  MapMenuView1Subform
MapMenuDestinationSubform Aufruf über den linken M-Button in der Kartenansicht bzw. den unteren linken Button in der Maske selbst
NewDestinationButton       / Button: neues Ziel eingeben
FastSearchButton           / Button: Schnellsuche in der eingestellten Kategorie
NewTourButton              / Button: Routenplanung
AmbitSearchButton          / Button: Umkreissuche
SavePositionButton         / Button: Akt. Position speichern
ManageDestinationsButton   / Button: Zielspeicher verwalten
MapMenuRoutingSubform Aufruf über den unteren mittleren Button in der Maske selbst
GotoButton                 / Button: Gehe zu ....
LocationPlanButton         / Button: Wegbeschreibung 
ChangeTourButton           / Button: Route ändern
RouteOptionsButton         / Button: Routenoptionen
BlockSectionButton         / Button: Route (Strasse) sperren   (In der ME Version verdeckt)
RouteSimulationButton      / Button: Routensimulation 
StopGuidanceButton         / Button: Zielführung stoppen
MapMenuSettings1Subform Aufruf über den unteren rechten Button in der Maske selbst
SettingsButton
TMCSenderButton
PresentationButton
VolumeButton
FastSearchCategoryButton
MoreSettingsButton
PreferredPetrolArea Listet die bevorzugten Tankstellen auf
MapMenuSettings2Subform
KeyboardButton
MaximumVelocityButton
LanguageButton
TimezoneButton
ChooseMapButton
MoreSettingsButton
FavouredGarageButton
MapMenuSettings3Subform
FavouredGarageButton
PositioningButton
InfoButton
MoreSettingsButton
GotoView Steuert das Menü Gehe zu ... unter Routen Optionen
TripInfoView Aufruf über den unteren rechten Button in der Karte und dann auf Tripinfo
Steuert die Anzeigen im Fenster Tipinfo
Höchstgeschindigkeit
Durchschnittsgeschwindigkeit
Gefahrene Strecke
Fahrzeit
VoicInputScreen Anzeige für Spracheingabe
VoicInputResultScreen Ergebnisliste der Spracheingabe
VoiceInputErrorScreen Fehlermeldung bei unerkannter Spracheingabe
SelectFastPoiAmbitSearchCategory Auswahlmenü der Kategorie für Schnellsuche
GettingStartedQuestionForm Abfrage "Einführungshinweise"
TTIDetailSubForm Standortinformationen der Verkehrsstörung in der Detailansicht einer Verkehreswarnung
TTIDetailAreaSubForm; Verkehrsstörunginformationen in der Detailansicht einer Verkehreswarnung
POITelephonicBookingView Fenster "Telefonische Buchung" eines POI (v. a. bei hotel.de-POIs)
POIFurtherInformationView Fenster Detailinformation eines POI
MapRouteSimulationSubForm Routensimulations-Button für die Kartenansicht
TBTRouteSimulationSubForm Routensimulations-Button für die Pfeilansicht
AmbiguityListEntryInfoSubform noch nicht weiter detailliert
AmbiguityListEntryInfoSubformPOI Detailinformation nach Abschluss der Adresseingabe
CommitWithoutGPSView Abfrage "Die Route von der zuletzt bekannten Position berechnen?"
SelectTimeZoneAndDayLight Auswahlmenü für Zeitzone
TimeZoneTextListSubForm Zeitzonen-Auswahl-Subform
DayLightTextListSubform noch nicht weiter detailliert
RouteBlockingView Auswahlmenü Route blockieren
GPSTrackingSubSkin Auswahlmenü GPS-Spur aufzeichnen

Verwendung von Objekten

Coordinates / Grundsätzliches zum Koordinaten-System

Jedes auf dem Bildschirm darzustellende Element wird über den Parameter Coordinates platziert. Hierbei kann solch ein Element auch ein Container sein, in dem weitere Elemente gruppiert werden. Dies ist wichtig, da die einzugebenden Koordinaten immer relativ zur Position des übergeordneten Containers sind. Beispiel:

TTISubform 	// this form is used in the MapViewArea and TurnByTurnArea
{
       Coordinates: 384,0,96,108;
       BGMode: Transparent;
       DisableFocus: yo;
       MoveBehaviour: Vertical;
       ResizeBehaviour: Horizontal;
       TapMode: TapThrough;
       VanishingTTIWarningButton
       {
               Class: VanishingTTIWarningButton;
               Coordinates: 0,60,96,48;
               Enabled: 183,0,0,96,48,0,0,255,0,255;
               Pushed: 183,0,48,96,48,0,0,255,0,255;
               Icon: 161,0,0,44,38,26,5,255,0,255;
               PYOffset: 2;
               DisableFocus: yo;
               Visibility: $MAP_TTI_WARNING_BUTTON_VISIBILITY$;
               //      Visibility: shown;
               Action: NavigationMenu.trafficWarning;
       }

TTISubform ist der Container für das nachgeordnete Element VanishingTTIWarningButton, seine Koordinaten sind der Bezugspunkt für alle im Container gruppierten Elemente.

Syntax für die Koordinaten:

Die ersten beiden Werten geben die Position der linken oberen Ecke an:
384 = Der Abstand vom linken Rand
0 = Der Abstand von Oben
Die beiden letzten Werte geben die Größe an:
96 = die Feldgröße nach rechts
108 = die Feldgröße nach unten

In diesem Beispiel ist also die tatsächliche Position des Elementes VanishingTTIWarningButton:

384 Pixel vom linken Rand
60 Pixel von oben

TextCoordinates

Über die TextCoordinates kann speziell bei Text-Objekten der tatsächliche Text innerhalb des über die Coordinates definierten Hintergrundes pixelgenau positioniert werden. Beispiel:

TargetTimeText
{
       ID: 45;
       Class: SkinText;
       Coordinates: 148,236,114,36;
       TextCoordinates: 0,10,114,20;

Hier wird der Text innerhalb des größeren (114x36) Hintergrunds beginnend bei Position 0,10 (relativ zu den Coordinates) in einer Größe 114x20 dargestellt.

HAlign und VAlign

Über die Eigenschaften HAlign (horizontal) und VAlign (vertikal) wird speziell bei Text-Objekten die Ausrichtung gesteuert. Mögliche Werte sind für HAlign: left, center, right (linksbündig, zentriert, rechtsbündig) und für VAlign: top, center, bottom (oben, zentriert, unten).

PYOffset

Über die Eigenschaft PYOffset kann auf einfache Art ein Y-Versatz (Verschieben nach oben oder unten) eines Objektes (Icon,Text etc.) innerhalb des durch die Coordinates bestimmten Hintergrundes erzielt werden.

Enabled / Focussed / Pushed / Disabled

Diese speziell für Buttons vorgesehen Eigenschaften bestimmen - entsprechend der unter Icon näher erläuterten Syntax - das Aussehen des Hintergrundes in den 4 möglichen Zuständen eines Buttons.

Enabled Standard/Aktiviert
Focussed Der Button hat den Focus (in einem Touchscreen gesteuerten System etwas unklare Bedeutung)
Pushed Der Button wird gedrückt
Disabled Deaktiviert

Icon

Mit der Eigenschaft Icon wird dem Objekt das darzustellende Symbol übergeben. Die verfügbaren Grafiken werden im Abschnitt Bitmaps definiert und mit einer ID versehen.

Die Syntax lautet: Icon <Grafik ID>, <X-Koord.>, <Y-Koord.>, <Größe-X>, <Größe-Y>, <X-Versatz>, <Y-Versatz>, <Transparenz (R, G, B)>
Beispiel:

      		VolumeButton
		{
			Class: PushButton;
			Coordinates: 0,45,48,48;
			Icon: 8,0,90,30,30,10,10;
			PYOffset: 2;
			BGMode: transparent;
			FocussedColor: 0,0,0,0; //avoids showing the button
			DisableFocus: yo;
			Wordbreak: yes;
			KPush: enter,left;
			Action: MapMenu.volume;
		}

Die X und Y-Koordinaten dienen hier dazu, das Icon in einer MultiIcon-Datei (Grafik-Dateien, in denen mehrere Icons unter- und auch nebeneinander zusammengefasst sind) zu bestimmen. X und Y-Versatz bedeutet in diesem Beispiel, dass das Icon (30x30) innerhalb des größeren Hintergrunds (48x48) mit einem Versatz von jeweils 10 Punkten nach rechts und unten abgebildet wird. Die Farbwerte für transparent darzustellenden Bereiche in der Grafik <R,G,B> können optional definiert werden.


Referenz

Class-Referenz

Klassen bestimmen die Art eines Objektes. Jede Klasse hat bestimmte festgelegte Eigenschaften und Methoden, die jedes Objekt dieser Klasse übernimmt. Beispiel: Class: PushButton; definiert einen Standardbutton.

Class Beschreibung
BitmapIconPanel Ein Pfeil-Element wie in der Pfeilansicht und in den Abbiegehinweisen der Kartenansicht
CompassBitmapElement Der Kompass in der Kompassansicht
DropDown Ein Button mit Dropdown-Liste
DynMapItemDisplay Der Anzeige-Container für die Fadenkreuz-Infos
LauncherButton Ein Button zum Starten externer Programme
LaunchFromRegistryButton Ein Button, dessen Sichtbarkeit und verknüpfte Action abhängig vom Vorhandensein eines bestimmten Registry-Eintrages ist
LetterRadioButton ???
ListBox Eine fortlaufende Liste mit Scrollbar
ListBoxButton Ein Button innerhalb einer ListBox
ManouevreDistanceElement Die Entfernungsanzeige bei den Abbiegehinweisen
MapView Die Kartenansicht
NStateIcon Ein Icon mit Mehrfachanzeige (TMC-Status, Battery-Status etc.)
NStateIconAnimation Eine Icon-Animation der MapGimmicks
NStateButton Ein Button mit Mehrfachanzeige (SoundToggle, 3D/2D etc.)
PhoneKeybdDisplay ???
ProgressBar Ein Fortschrittsbalken (Routenberechnung etc.)
PushButton Ein Standard-Button
RadioButton Ein Button aus einer Gruppe von Option-Buttons
RoadIconElement Das kleine Straßenschild in den Abbiegehinweisen
ScaleElement Der Kartenmaßstab
SecondMeaningButton Der Delete-Button im Keyboard
SignPostContainer Der Container für die Abbiegehinweise
SimpleScrollbar Eine Scrollbar, wie sie z. B. bei der Länderauswahl benutzt wird.
SimpleScrollBarFiller ???
SkinButton Eine weitere Button-Art (verwendet in Menüs, Unterschied zum PushButton unklar)
SkinContainer Eine Zusammenfassung mehrerer Objekte (Icons, Texte, Scrollbars, etc.), die dann in verschiedene Masken (Screens) eingebunden werden können. Damit kann in jeder dieser Maske sichergestellt werden, dass die eingebundenn Objekte immer an der gleichen Stelle stehen.
SkinEditField ???
SkinIcon Ein Grafik-Objekt
SkinScrollbarButton Die Button für Rauf und Runter, die direkt über und unter der Scrollbar sitzen.
SkinText Ein Text-Objekt
StandardKeybdDisplay ???
TextListBox Eine Textbox in Form einer Liste wie sie z. B. bei den TMC-Meldungen eingesetzt wird.
ToggleButton Ein Schalter-Button mit 2 Zustandsicons
TriStateButton Ein Schalter-Button mit 3 Zustandsicons
VanishingCalcProgressBox Der Fortschrittsbalken bei der Routenberechnung
VanishingErrorBox Die Fehlermeldungs-Box
VanishingTTIWarningButton Die Verkehrswarnungs-Anzeige

Action-Referenz

Über Aktionen können Buttons mit einer Funktionalität belegt werden. Beispiel: Action: SettingSC.100; erhöht die Sprachlautstärke.

Action Beschreibung .... bitte alphabetisch sortiert auflisten
DestinationSC.10070; Startpunkt ändern
DestinationSC.10071; Ziel hinzufügen (immer an's Ende der Liste)
DestinationSC.10085; Umschaltung zu Routenoptionen
DestinationSC.10248; ohne Funktion
DestinationSC.10249;
DestinationSC.10260; City-/StreetMatchesOne-Button -> vielleicht der "Alle Treffer anzeigen" Button bei der Orts-/Straßenauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10262
DestinationSC.10266;
DestinationSC.10272;
DestinationSC.10274; StreetMatchesOne-Button -> vielleicht der 1. blaue Button bei der Straßenauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10275; StreetMatchesOne-Button -> vielleicht der 2. blaue Button bei der Straßenauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10276; StreetMatchesOne-Button -> vielleicht der 3. blaue Button bei der Straßenauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10277; CityMatchesOne-Button -> vielleicht der 1. blaue Button bei der Ortsauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10278; CityMatchesOne-Button -> vielleicht der 2. blaue Button bei der Ortsauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10279; CityMatchesOne-Button -> vielleicht der 3. blaue Button bei der Ortsauswahl mit den gefundenen Übereinstimmungen?
DestinationSC.10280;
DestinationSC.10281;
DestinationSC.10282;
DestinationSC.10727;
DestinationSC.301;
DestinationSC.302;
DestinationSC.303;
DestinationSC.351
DestinationSC.400;
DestinationSC.401;
DestinationSC.402;
DestinationSC.404
DestinationSC.405;
DestinationSC.58; Vorblättern (next) ????
DestinationSC.59;
DestinationSC.65
DestinationSC.65; Zurückblättern oder Cancel-Button?????
DestinationSC.65;
DestinationSC.73;
DestinationSC.76; Cancel Button im "Route fortsetzen" Menü. Wird auch benutzt, um die Zielübernahme aus Polyglott abzubrechen.
DestinationSC.77; o.k. Button im "Route fortsetzen" Menü. Wird auch benutzt, um ein aus den Polyglott übernommenes Ziel zu bestätigen -> startet die Routenberechnung.
DestinationSC.80; Connect-Button ?????
DestinationSC.81;
DestinationSC.leavelocation;
DestinationSC.next; Vorblättern (next) ????
DestinationSC.openkeyboard Tastatur öffnen ????
DestinationSC.recenterlocation; Standort zentrieren
DestinationSC.showlocation; Standort anzeigen
DestinationSC.tourcalculation; Route berechnen
DestinationSC.tourcancel; Route abbrechen
DestinationSC.tourelementdelete; Routenpunkt löschen
DestinationSC.tourelementdown; Routenpunkt nach unten verschieben
DestinationSC.tourelementup; Routenpunkt nach oben verschieben
DestinationSC.touroptimize; Route optimieren
DestinationSC.TourPlanLoad; Route laden ????
DestinationSC.TourPlanSav; Route speichern ????
Dialer Bluetooth-Menü aufrufen
KeyEvent.Enter; Selektieren und nächster ?????
LastPromptRepeat; Letzte Eingabe wiederholen ????
ListBox.AutoSwitchDropDown,0;
ListBox.AutoSwitchDropDown,1;
ListBox.CongestionByPassDropDown,0;
ListBox.CongestionByPassDropDown,1;
ListBox.CountryCodeData,0;
ListBox.CountryCodeData,1;
ListBox.DayLightDropDown,0;
ListBox.DesignDropDown,0;
ListBox.DesignDropDown,1;
ListBox.FerriesDropDown,0;
ListBox.FerriesDropDown,1;
ListBox.HWConfigTypeList,0;
ListBox.HWConfigTypeList,1;
ListBox.MapStateDropDown,0;
ListBox.MapStateDropDown,1;
ListBox.MetricImperialUnitsDropDown,0;
ListBox.MetricImperialUnitsDropDown,1;
ListBox.NaviTypeDropDown,0;
ListBox.NaviTypeDropDown,1;
ListBox.OmitTollRoadsDropDown,0;
ListBox.OmitTollRoadsDropDown,1;
ListBox.POICategoryList,0;
ListBox.POICategoryList,1;
ListBox.PowersaveDropDown,0;
ListBox.PowersaveDropDown,1;
ListBox.RoadClass0DropDown,0;
ListBox.RoadClass0DropDown,1;
ListBox.RouteTypeDropDown,0;
ListBox.RouteTypeDropDown,1;
ListBox.SelectKbdDropDown,0;
ListBox.SelectModeDropDown,0;
ListBox.TimeFormatDropDown,0;
ListBox.TimeFormatDropDown,1;
ListBox.TimeZoneDropDown,0;
ListBox.TrafficWarningDropDown,0;
ListBox.VInfoDropDown,1;
ListMaintenance.0; "Back" Button
ListMaintenance.1;
ListMaintenance.10; einen letzten Ort löschen
ListMaintenance.11; alle letzten Orte löschen
ListMaintenance.13;
ListMaintenance.14; Öffnet die Tastatur und man kann die Aktuelle Position damit unter Favoriten speichern
ListMaintenance.15; Download from MyMap24: Öffnet Dialog "Favoriten aktualisieren"??
ListMaintenance.16; Öffnet die Zieleingabe (Startmenü)
ListMaintenance.17; ImportMyMap24??
ListMaintenance.2; Favorit löschen
ListMaintenance.3; Aufruf des Dialoges "Favorit umbenennen"
ListMaintenance.4; Aufruf des Dialoges "Einen letzten Ort löschen"
ListMaintenance.5; Aufruf des Dialoges "Alle letzten Orte löschen"
ListMaintenance.8; Eintrag umbenennen
ListMaintenance.9; Favorit löschen
MainMenu.1; Exit-Button (zum Hauptauswahl-Menü)
MainMenu.5; Zurück-Button; auch festgestellt wurde: Aufruf des Menüs "Sprachlautstärke"
MainMenu.216; Aufrufen des Hauptmenüs??
MainMenu.217; Aufruf der Adresseingabe (Startbildschirm)
MapMenu.3d; zwischen 3D und 2D umschalten
MapMenu.acPos; Aktuelle Position anzeigen
MapMenu.ambitsearch; Umkreissuche
MapMenu.autozoom; Automatischer Zoom
MapMenu.back; Zurück-Button (zur Kartenansicht)
MapMenu.backPoiAmbitSearch;
MapMenu.blocksection; Ruft Route blockieren auf
MapMenu.changetour; ruft Route-Ändern auf
MapMenu.choosemap; ruft Karte wählen auf
MapMenu.Close;
MapMenu.dest; Auf Routenübersicht zoomen
MapMenu.dynMapAddStopover; Zwischenziel einfügen aus der Karte
MapMenu.dynMapBack; Zurück Button wenn ein Ziel aus der Karte makiert wurde
MapMenu.dynMapInfo; Anzeige der Strasse/n oben im Fenster wenn ein Ziel aus der Karte gewählt wurde
MapMenu.dynMapNextItem; Nächste Strasse wenn ein Ziel aus der Karte makiert wurde
MapMenu.dynMapPrevItem; Vorherige Strasse wenn ein Ziel aus der Karte makiert wurde
MapMenu.exit Menü verlassen
MapMenu.fastcategory; Einstellung der Kategorie für die Schnellsuche
MapMenu.fastsearch; Schnellsuche in der eingestellten Kategorie
MapMenu.favouredgarage; ruft bevorzugte Tankstellen auf
MapMenu.goto; Gehe-Zu Button (ruft Routenplanung Auswahlmöglichkeit auf)
MapMenu.gpsinfo; ruft den Kompass auf
MapMenu.hardwaresettings;
MapMenu.help; ruft die Hilfe auf
MapMenu.info; ruft den Infobildschirm auf
MapMenu.keyboard; ruft die Tastaturauswahl auf
MapMenu.language; ruft das Menü Sprache wählen auf
MapMenu.leave;
MapMenu.locationplan; Wegebeschreibung erzeugen
MapMenu.main; Aufruf von Hauptmenü "Zieleingabe"
MapMenu.managedestinations; Zielspeicher verwalten
MapMenu.maxvelocity; ruft das Menü Höchstgeschwindigkeit auf
MapMenu.moveDown; Karte nach unten verschieben
MapMenu.moveLeft; Karte nach links verschieben
MapMenu.moveRight; Karte nach rechts verschieben
MapMenu.moveUp; Karte nach oben verschieben
MapMenu.music;
MapMenu.newdestination; Neues Ziel eingeben (Startseite)
MapMenu.newtour; Aufruf von Auswahlmenü "Routenplanung"
MapMenu.open;
MapMenu.overview; Zoom auf Routenübersicht zurück ( so wie unter Gehe zu - Übersicht)
MapMenu.positioning; Aufruf von Menü "Positionierung"
MapMenu.presentation; Aufruf von Menü "Darstellung"
MapMenu.routeoptions; ruft den Routen-Optionen Dialog auf
MapMenu.routesimulation; Routensimulation
MapMenu.saveposition; akt. Position speichern
MapMenu.selectiondestination; Aufruf von Hauptmenü "Zieleingabe"
MapMenu.selectionroute; Aufruf von Hauptmenü "Route"
MapMenu.selectionsettings; Aufruf von Hauptmenü "Einstellungen"
MapMenu.selectionview; Aufruf von Menü "Ansicht"
MapMenu.settings1; Aufruf von Hauptmenü "Einstellungen"
MapMenu.settings2; Aufruf von Hauptmenü "Einstellungen Seite 2"
MapMenu.settings3; Aufruf von Hauptmenü "Einstellungen Seite 3"
MapMenu.startguidance; Routenführung starten
MapMenu.stopguidance; Routenführung beenden
MapMenu.telephone test ???
MapMenu.timezone; Aufruf der Zeitzonen-Einstellungen
MapMenu.tmcoverview; Verkehrslage Meldungen anzeigen
MapMenu.tmcsender; TMC-Suchlauf
MapMenu.trafficInfoDetail; TMC-Verkehrslage Detail Ansicht für die erste Staumeldung öffnen
MapMenu.tripinfo; Routen-Info
MapMenu.turntoggle; Umschaltung in die Pfeilansicht
MapMenu.video;
MapMenu.view1;
MapMenu.view2;
MapMenu.volume; Aufruf der "Sprachlautstärke" Einstellung
MapMenu.zoomIn; in die Karte zoomen
MapMenu.zoomOut; aus der Karte zoomen
MapTurnToggle.BackFromGPS;
MapTurnToggle.gps; Aufruf von "Kompass"
MapTurnToggle.Map; Aufruf der "Karte"
NavigationMenu.calcAltRoute; alternative Routenberechnung starten
NavigationMenu.cancel; Navigation abbrechen
NavigationMenu.stopGuidance; Navigation stoppen
NavigationMenu.trafficInfo; Anzeige der Verkehrsinfo
NavigationMenu.trafficInfoDetail; Anzeige der Verkehrsinfo im Detail
NavigationMenu.trafficWarning; Anzeige von Verkehrswarnungen
OpenFile.Close;
OpenFile.Open;
OpenKeyboard.1,AlphaBig,poiname,904;
OpenKeyboard.1,AlphaBig,poiname,904;
OpenKeyboard.5,AlphaBig,Name,904;
RdsTmc.selectMode; Aufruf von Menü "Automatisch / Manuelle Sendersuche"
RdsTmc.selectPort; Ruft eine Seite zur Einstellung des TMC Ports auf (welcher Port, Simulation, Aufzeichnung)
SettingSC.100; Sprachlautstärke erhöhen
SettingSC.101; Sprachlautstärke verringern
SettingSC.119; Weiter über Pushbutton
SettingSC.121; Zurück über PushButton
SettingSC.10077;
SettingSC.10169;
SettingSC.10170;
SettingSC.10180;
SettingSC.10181;
SettingSC.10182;
SettingSC.10183; TMC-Suchlauf(aufwärts) .... wird von Moddern gerne genutzt um den Suchlauf über PushButton zu starten
SettingSC.10184; TMC-Suchlauf(abwärts)
SettingSC.10187;
SettingSC.10188;
SettingSC.10189;
SettingSC.10231;
SettingSC.10232;
SettingSC.10233;
SettingSC.10234;
SettingSC.10235;
SettingSC.10236;
SettingSC.10237;
SettingSC.10241;
SettingSC.10242; NextButtonPsfAuth ???
SettingSC.10243;
SettingSC.10244; BackButtonPsfAuth ???
SettingSC.10251;
SettingSC.119;
SettingSC.121;
SettingSC.41000000000000000
SettingSC.42;
SettingSC.73;
SettingSC.913;
SettingSC.98;
SystemHandling.continue;

Spezial-Referenz

Es gibt spezielle Parameter, die nur für bestimmte Klassen verwendet werden können:

Class Parameter erlaubte Werte / Beschreibung Beispiel
LauncherButton launch: <voller Dateiname des externen Programmes> eingeschlossen in Anführungszeichen launch: "\Storage Card\Programme\koord465.exe";
params: (optional) Kommandozeilen-Parameter eingeschlossen in Anführungszeichen params: "goto=\Storage Card\Programme\home.3na";
launchtype: (optional) relative Dateiname wird ohne Pfad angegeben launchtype: relative;
text: (optional) Text in Anführungszeichen, ^n^ für Zeilenumbruch Text: "gespeicherte Route^n^laden";

Fernbedienung-Skin Befehle

Es gibt verschieden Befehle für die Lenkradfernbedienung, um einen Button überhaupt ansprechen zu können muss der Eintrag

DisableFocus: yes;

entfernt werden.

Um Button in der Kartenansicht anzusprechen, müsst Ihr unter MapViewArea den Eintrag

FocusManager: "disabled";

entfernen.

Wenn Ihr bei einem Button DisableFocus: yes; entfernt, aber keinen KPush:einfügt, kann man mit den Tasten 'Pfeil rauf / runter' diesen Button auch auswählen und er reagiert standardmässig auf die OK-Taste, sobald er markiert ist.

Hier mal alle bekannten Befehle:

KPush: enter; reagiert auf die OK-Taste
KPush: left; reagiert auf die 'Pfeil links' Taste (sollte immer für den Button unten links genommen werden)
KPush: right; reagiert auf die 'Pfeil rechts' Taste (sollte immer für den Button unten rechts genommen werden)
HKPush: "down"; reagiert auf die 'Pfeil runter' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
HKPush: "up"; reagiert auf die 'Pfeil rauf' Taste (wird bei den Zoom Button benutzt, um in der Karte zu zoomen)
HKPush: "left";
HKPush: "right";
HKUp: "Up";
HKDown: "Down";
HKExecute: Enter;
HKBackSpace: "Back";
HKSelect: UpDown;
HKPush: "F24";
AlwaysConsumeKHK: yes;
KHKScrollMode: "page";
HKScrollPage: yo;
HKPush: hk1;
HKPush: hk2;
SetFocusOnLoad: yes; Legt fest, welcher Button nach Aufruf der Seite fokussiert ist.

Die Play-Taste kann man mit einer Funktion belegen, wenn man in der PFSkin den Eintrag

HKPUSH: "PLAY"; 

bei der gewünschten Funktion einfügt.

Die Vor- und Zurück-Tasten auf der Fernbedienung belegt man, indem man in der PFSpecial.skn die F8- und F9-Tasten dafür einträgt unter GlobalHK.
Im folgenden Beispiel kann man dann mit den Tasten zoomen.

F8@MapMenu.zoomIn, 
F9@MapMenu.zoomOut