GoPal 2.0 Skin
GoPal 2.0 ist eine Navigationssoftware für Windows CE basierende Endgeräte (PDA, PNA) des deutschen Herstellers Medion. Den Benutzern wird über eine einfache Scriptsprache die Möglichkeit gegeben, das Aussehen seinen persönlichen Bedürfnissen entsprechend anzupassen und weitere Funktionalitäten auf der Benutzeroberfläche z.B. durch Buttons zu integrieren. Dieses Verfahren wird mit "Skin" bezeichnet.
Es gibt verschiedene Varianten der Software:
- PE - Premium Edition (Bluetooth, TMCpro)
- AE - Advanced Edition
- ME - Medium Edition
Dieser Artikel soll eine Dokumentation Skin-Scriptsprache darstellen. Falls es Unterschiede zu den verschiedenen Varianten (PE, AE, ..) gibt, sollten diese gekennzeichnet werden.
Inhaltsverzeichnis
Wichtig
Es wurde ein Problem beobachtet: nach Änderungen der PFSkin.skn-Datei gab es Lesefehler auf der Speicherkarte. Sobald die originale Skin-Datei wieder eingespielt wurde, funktionierte es wieder. Fehlerhafte oder nicht "bestimmungsgemäße" Inhalte der Skin-Dateien können also zu unerwartetem Verhalten der GoPal-Software führen.
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; }
Defines
Hier werden Konstante definiert, die an den verschiedensten Stellen des Skins verwendet werden. Hier kommt der Include Datei PFSpecial.skn eine besondere Bedeutung zu. Beispiel:
Definition: MAP_ELEMENTS_TRANSPARENT_COLOR: 77,97,138,200; Verwendung bei Objekten: BGColor: $MAP_ELEMENTS_TRANSPARENT_COLOR$;
Die Tragweite des Kommentars aus dem AE-Skin "Note: Only general defines may be defined here. Specific defines (colours, coordinates, etc.) must appear in PFSpecial.skn" ist allerdings zweifelhaft, da ein Großteil der Defines bei der PE-Version von der PFSpecial.skn in die PFSkin.skn verschoben wurden.
Referenz auf Grafiken
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
Über den Block Fonts können 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
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 kann 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 auskommen 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: $AREA_BG_COLOR$; 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.
5. 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 (ist noch nicht vollständig) | |
TrafficWarningDetailArea | Verkehrsmeldungs-Details | |
LoadFavoritesFromExternalView | .... irgendwas mit der Anzeige der Favoriten | |
SpeedLimitWarningSettingsView | Settings für die Höchstgeschwindigkeitswarnung | |
PsfAuthentificationStartScreen | ?? | |
PsfAuthtificationSuccessScreen | ?? | |
PsfAuthtificationErrorScreen | ?? | |
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: ???? (derzeit nicht aktiv bzw. verdeckt) //RouteSimulationButton / Button: Routensimulation (derzeit nicht aktiv bzw. verdeckt) StopGuidanceButton / Button: Zielführung stoppen | |
MapMenuSettings1Subform | Aufruf über den unteren rechten Button in der Maske selbst
noch nicht weiter detailliert | |
PreferredPetrolArea |
noch nicht weiter detailliert | |
MapMenuSettings2Subform |
noch nicht weiter detailliert | |
MapMenuSettings3Subform |
noch nicht weiter detailliert | |
GotoView |
noch nicht weiter detailliert | |
TripInfoView |
noch nicht weiter detailliert | |
VoicInputScreen | Wird derzeit nicht genutzt. Ggf. für spätere Erweiterungen
noch nicht weiter detailliert | |
VoicInputResultScreen | Wird derzeit nicht genutzt. Ggf. für spätere Erweiterungen
noch nicht weiter detailliert | |
VoiceInputErrorScreen | Wird derzeit nicht genutzt. Ggf. für spätere Erweiterungen
noch nicht weiter detailliert | |
SelectFastPoiAmbitSearchCategory | ?
noch nicht weiter detailliert | |
SelectTimeZone | Auswahlmaske für Zeitzone
noch nicht weiter detailliert | |
SelectTimeZoneandDaylight | ?
noch nicht weiter detailliert | |
TimeZoneTextListSubForm | ?
noch nicht weiter detailliert | |
GettingStartedQuestionForm | ?
noch nicht weiter detailliert |
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/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 im Icon <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 | ??? |
SimpleScrollBarFiller | ??? |
SkinButton | Eine weitere Button-Art (verwendet in Menus, Unterschied zum PushButton unklar) |
SkinContainer | Eine Zusammenfassung meherer Objekte (Icons, Texte, Scrollbars, etc.) die dann in verschiedene Masken(Screens) eingebunden werden können. Damit kann in jeder dieser Maske sicher gestellt werden, dass die eingebundenn Objekte immer an der gleichen Stelle stehen. |
SkinEditField | ??? |
SkinIcon | Ein Grafik-Objekt |
SkinScrollbarButton | ??? |
SkinText | Ein Text-Objekt |
StandardKeybdDisplay | ??? |
TextListBox | ??? |
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; | |
DestinationSC.10248; | |
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; | |
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; | |
ListMaintenance.15; | Download from MyMap24: Öffnet Dialog "Favoriten aktualisieren"?? |
ListMaintenance.15; | |
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; | |
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; | |
MapMenu.changetour; | ruft Route-Ändern auf |
MapMenu.choosemap; | |
MapMenu.Close; | |
MapMenu.dest; | |
MapMenu.dynMapAddStopover; | Zwischenziel einfügen ???? |
MapMenu.dynMapBack; | |
MapMenu.dynMapInfo; | |
MapMenu.dynMapNextItem; | |
MapMenu.dynMapPrevItem; | |
MapMenu.exit | |
MapMenu.fastcategory; | Einstellung der Kategorie für die Schnellsuche |
MapMenu.fastsearch; | Schnellsuche in der eingestellten Kategorie |
MapMenu.favouredgarage; | |
MapMenu.goto; | Gehe-Zu Button (ruft Routenplanung Auswahlmöglichkeit auf) |
MapMenu.gpsinfo; | |
MapMenu.hardwaresettings; | |
MapMenu.help; | |
MapMenu.info; | |
MapMenu.keyboard; | |
MapMenu.language; | |
MapMenu.leave; | |
MapMenu.locationplan; | Wegebeschreibung erzeugen |
MapMenu.main; | |
MapMenu.managedestinations; | Zielspeicher verwalten |
MapMenu.maxvelocity; | |
MapMenu.moveDown; | |
MapMenu.moveLeft; | |
MapMenu.moveRight; | |
MapMenu.moveUp; | |
MapMenu.music; | |
MapMenu.newdestination; | |
MapMenu.newtour; | Aufruf von Auswahlmenü "Routenplanung" |
MapMenu.open; | |
MapMenu.overview; | |
MapMenu.positioning; | |
MapMenu.presentation; | |
MapMenu.routeoptions; | ruft den Routen-Optionen Dialog auf |
MapMenu.routesimulation; | Routensimulation (derzeit nicht aktiv) |
MapMenu.saveposition; | akt. Position speichern |
MapMenu.selectiondestination; | |
MapMenu.selectionroute; | Aufruf von Auswahlmenü "Route" |
MapMenu.selectionsettings; | |
MapMenu.selectionview; | |
MapMenu.settings1; | |
MapMenu.settings2; | |
MapMenu.settings3; | |
MapMenu.startguidance; | Routenführung starten |
MapMenu.stopguidance; | Routenführung beenden |
MapMenu.telephone test | ??? |
MapMenu.timezone; | Aufruf der Zeitzonen-Einstellungen |
MapMenu.tmcoverview; | |
MapMenu.tmcsender; | TMC-Suchlauf |
MapMenu.trafficInfoDetail; | TMC-Infos |
MapMenu.tripinfo; | Routen-Info |
MapMenu.turntoggle; | |
MapMenu.video; | |
MapMenu.view1; | |
MapMenu.view2; | |
MapMenu.volume; | |
MapMenu.zoomIn; | in die Karte zoomen |
MapMenu.zoomOut; | aus der Karte zoomen |
MapTurnToggle.BackFromGPS; | |
MapTurnToggle.gps; | |
MapTurnToggle.Map; | |
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; | |
RdsTmc.selectPort; | |
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"; |
Code-Beispiele
In der FAQ zum MD96050 http://md96050.netfirms.com (Stand: 24. November 2006 - 16.00 Uhr) sind einige Code-Beispiele aufgeführt, die jedoch nur für den MD96050 gedacht sind.
Folgende Code-Beispiele wurden jedoch auf einem MD96080 erfolgreich getestet:
Route Abbrechen-Knopf in der Kartenansicht
Der Route-Abbrechen-Knopf ist im serienmäßigen Skin reichlich versteckt untergebracht, das lenkt beim Fahren zu sehr ab. Hier eine kleine Anleitung, wie man mit "1-Klick-Technologie" den Button direkt in die Kartenansicht bekommt:
Zuerst in der PFSKin.skn nach "MapViewArea" suchen, dann weiter runter blättern bis zu "Scale". Anschließend vor dem Scale Abschnitt (aber nach dem abschließenden "}" des vorherigen Abschnitts den folgenden Code einfügen:
StopGuidanceButton { Class: PushButton; Coordinates: 441,180,30,30; //x von links, y von oben, breite, höhe Enabled: 23,0,150,30,30,0,0; Pushed: 23,0,150,30,30,0,2; PYOffset: 0; BGMode: transparent; FocussedColor: 0,0,0,0; DisableFocus: yo; Wordbreak: yes; KPush: enter,left; Action: MapMenu.stopguidance; }
Höhenanzeige im Kompassanzeigemodus
Für die Höhenanzeige im Kompassanzeigemodus reicht es in der PFSkin.skn folgenden Code
HeightText { ID: 10150; Class: SkinText; TextId: 20151; Background: 214,0,0,80,30; Coordinates: 305,2,80,30; // urspruenglich: $COMPASS_HEIGHT_TEXT_COORDS$; TextCoordinates: 5,0,70,30; // -> keine Anzeige BGMode: opaque; TextColor: 0,0,0; HAlign: left; VAlign: center; Font: 6; Visibility: $COMPASS_HEIGHT_VISIBILITY$; } m_height { ID: 10007; Class: SkinText; Text: "^F2^%s ^F6^%s"; Coordinates: 331,9,65,30; // urspruenglich: $COMPASS_HEIGHT_VALUE_COORDS$; BGMode: Transparent; // ->keine Anzeige HAlign: center; Font: 2; }
anstelle
HeightText { ID: 10150; Class: SkinText; TextId: 20151; Coordinates: $COMPASS_HEIGHT_TEXT_COORDS$; TextCoordinates: 2,4,80,16; BGColor: 255,255,255; BGMode: opaque; TextColor: 0,0,0; HAlign: center; VAlign: center; Font: 6; Border: 1; BorderColor: 0,0,0; } m_height { ID: 10007; Class: SkinText; Text: "^F2^%s ^F6^%s"; Coordinates: $COMPASS_HEIGHT_VALUE_COORDS$; BGMode: Transparent; HAlign: center; Font: 2; }
einzusetzen. An der PFSpecial.skn muss nichts geändert werden.
Tastatur-Anzeige als Qwertz-Standard
Für die Tastatur-Anzeige als Qwertz-Standard reicht es, in der PFSkin.skn folgenden Code
KeyboardBlockAlphaBig { Coordinates: 0,0,480,272; BGMode: transparent; TextColor: 0,0,0; DeleteButton { ID: 913; Class: SecondMeaningButton; Coordinates: 430,4,46,28; Enabled: 190,0,0,46,28,255,0,255; Focussed: 190,0,28,46,28,255,0,255; Pushed: 190,0,56,46,28,255,0,255; Icon: 196,0,0,23,21,20,3,255,0,255; PYOffset: 1; BGMode: Transparent; Semantics: down; } // VoiceInputButton // { // ID: 10262; // Class: PushButton; // Coordinates: $RIGHT_CORNER_BUTTON_COORDS$; // Enabled: 181,80,0,40,40,255,0,255; // Icon: 195,0,0,30,30,9,9,255,0,255; // PYOffset: 1; // BGMode: Transparent; // Font: 7; // HAlign: center; // VAlign: center; // Semantics: down; // SetFocusOnLoad: yo; // // Visibility: hidden; // Action: DestinationSC.10262; // } QButton { Class: PushButton; Coordinates: $STANDARD_KEY_1x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Q^F7^"; Letter: Q; } WButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "W^F7^"; Letter: W; } EButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "E^F7^"; Letter: E; } RButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "R^F7^"; Letter: R; } TButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "T^F7^"; Letter: T; } ZButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Z^F7^"; Letter: Z; } UButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "U^F7^"; Letter: U; } IButton { Class: PushButton; Coordinates: $STANDARD_KEY_8x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "I^F7^"; Letter: I; } OButton { Class: PushButton; Coordinates: $STANDARD_KEY_9x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "O^F7^"; Letter: O; } PButton { Class: PushButton; Coordinates: $STANDARD_KEY_10x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "P^F7^"; Letter: P; } AButton { Class: PushButton; Coordinates: $STANDARD_KEY_1x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "A^F7^"; Letter: A; } SButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "S^F7^"; Letter: S; } DButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "D^F7^"; Letter: D; } FButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "F^F7^"; Letter: F; } GButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "G^F7^"; Letter: G; } HButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "H^F7^"; Letter: H; } JButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "J^F7^"; Letter: J; } KButton { Class: PushButton; Coordinates: $STANDARD_KEY_8x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "K^F7^"; Letter: K; } LButton { Class: PushButton; Coordinates: $STANDARD_KEY_9x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "L^F7^"; Letter: L; } SymbolicButton { ID: 915; Class: PushButton; Coordinates: $STANDARD_KEY_10x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Semantics: down; //Text: "^F7^^n^123"; Icon: 202,0,0,30,30,9,9; BlockSkin: KeyboardBlockSymbolic; } ShiftButton { ID: 911; Class: PushButton; Coordinates: $STANDARD_KEY_1x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Font: 7; //Text: "ÄÖ"; Icon: 202,0,60,30,30,9,9; Semantics: down; BlockSkin: KeyboardBlockLowerCase; } YButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Y^F7^"; Letter: Y; } XButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "X^F7^"; Letter: X; } CButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "C^F7^"; Letter: C; } VButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "V^F7^"; Letter: V; } BButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "B^F7^"; Letter: B; } NButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "N^F7^"; Letter: N; } MButton { Class: PushButton; Coordinates: $STANDARD_KEY_8x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "M^F7^"; Letter: M; } Spc { Class: PushButton; Coordinates: $STANDARD_KEY_9x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Semantics: down; Icon: 202,0,90,30,30,9,9; Letter: " "; } Minus { Class: PushButton; Coordinates: $STANDARD_KEY_10x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Semantics: down; Text: "-^F7^"; Letter: "-"; }
anstelle
KeyboardBlockAlphaBig { Coordinates: 0,0,480,272; BGMode: transparent; TextColor: 0,0,0; DeleteButton { ID: 913; Class: SecondMeaningButton; Coordinates: 430,4,46,28; Enabled: 190,0,0,46,28,255,0,255; Focussed: 190,0,28,46,28,255,0,255; Pushed: 190,0,56,46,28,255,0,255; Icon: 196,0,0,23,21,20,3,255,0,255; PYOffset: 1; BGMode: Transparent; Semantics: down; } // VoiceInputButton // { // ID: 10262; // Class: PushButton; // Coordinates: $RIGHT_CORNER_BUTTON_COORDS$; // Enabled: 181,80,0,40,40,255,0,255; // Icon: 195,0,0,30,30,9,9,255,0,255; // PYOffset: 1; // BGMode: Transparent; // Font: 7; // HAlign: center; // VAlign: center; // Semantics: down; // SetFocusOnLoad: yo; // // Visibility: hidden; // Action: DestinationSC.10262; // } AButton { Class: PushButton; Coordinates: $STANDARD_KEY_1x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "A^F7^"; Letter: A; } BButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "B^F7^"; Letter: B; } CButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "C^F7^"; Letter: C; } DButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "D^F7^"; Letter: D; } EButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "E^F7^"; Letter: E; } FButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "F^F7^"; Letter: F; } GButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "G^F7^"; Letter: G; } HButton { Class: PushButton; Coordinates: $STANDARD_KEY_8x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "H^F7^"; Letter: H; } IButton { Class: PushButton; Coordinates: $STANDARD_KEY_9x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "I^F7^"; Letter: I; } JButton { Class: PushButton; Coordinates: $STANDARD_KEY_10x1$; Enabled: $KEYPAD_LEFT_BUTTON_ENABLED$; Focussed: $KEYPAD_LEFT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_LEFT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "J^F7^"; Letter: J; } KButton { Class: PushButton; Coordinates: $STANDARD_KEY_1x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "K^F7^"; Letter: K; } LButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "L^F7^"; Letter: L; } MButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "M^F7^"; Letter: M; } NButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "N^F7^"; Letter: N; } OButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "O^F7^"; Letter: O; } PButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "P^F7^"; Letter: P; } QButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Q^F7^"; Letter: Q; } RButton { Class: PushButton; Coordinates: $STANDARD_KEY_8x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "R^F7^"; Letter: R; } SButton { Class: PushButton; Coordinates: $STANDARD_KEY_9x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "S^F7^"; Letter: S; } TButton { Class: PushButton; Coordinates: $STANDARD_KEY_10x2$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "T^F7^"; Letter: T; } ShiftButton { ID: 911; Class: PushButton; Coordinates: $STANDARD_KEY_1x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Font: 7; //Text: "ÄÖ"; Icon: 202,0,60,30,30,9,9; Semantics: down; BlockSkin: KeyboardBlockLowerCase; } UButton { Class: PushButton; Coordinates: $STANDARD_KEY_2x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "U^F7^"; Letter: U; } VButton { Class: PushButton; Coordinates: $STANDARD_KEY_3x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "V^F7^"; Letter: V; } WButton { Class: PushButton; Coordinates: $STANDARD_KEY_4x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "W^F7^"; Letter: W; } XButton { Class: PushButton; Coordinates: $STANDARD_KEY_5x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "X^F7^"; Letter: X; } YButton { Class: PushButton; Coordinates: $STANDARD_KEY_6x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Y^F7^"; Letter: Y; } ZButton { Class: PushButton; Coordinates: $STANDARD_KEY_7x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; TextCoordinates: $STANDARD_KEY_TEXT_COORDS$; Semantics: down; Text: "Z^F7^"; Letter: Z; } Spc { Class: PushButton; Coordinates: $STANDARD_KEY_8x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Semantics: down; Icon: 202,0,90,30,30,9,9; Letter: " "; } Minus { Class: PushButton; Coordinates: $STANDARD_KEY_9x3$; Enabled: $KEYPAD_RIGHT_BUTTON_ENABLED$; Focussed: $KEYPAD_RIGHT_BUTTON_FOCUSSED$; Pushed: $KEYPAD_RIGHT_BUTTON_PUSHED$; PYOffset: 1; BGMode: Transparent; HAlign: center; VAlign: center; Semantics: down; Text: "-^F7^"; Letter: "-"; }
einzusetzen. An der PFSpecial.skn muss nichts geändert werden.
StvO-Abfrage löschen
Um die StvO-Abfrage zu löschen, reicht es in der PFSkin.skn folgenden Code zu löschen, oder den Text in der ersten Zeile 'StVOArea' in z.B. '_StVOArea' umzubennen:
StVOArea { Background: 51,0,0,480,272,0,0; DefaultFont: 7; TitleBar { Class: SkinIcon; Coordinates: $TITLEBAR_CORDS$; BitmapReference: $TITLEBAR_ICON$; } ... NextButton { Class: PushButton; Coordinates: $RIGHT_CORNER_BUTTON_COORDS$; Enabled: $CORNER_BUTTON_ENABLED$; Pushed: $CORNER_BUTTON_PUSHED$; Disabled: $CORNER_BUTTON_DISABLED$; Icon: $OK_ICON$; //ok PYOffset: 2; DisableFocus: yo; Action: SettingSC.119; HKPush: $KEY_EVENT_OK$; } }
Aktivieren der MapGimmicks
Die Grafikdatei http://www.pocketnavigation.de/board/attachment.php?attachmentid=1020071 herunterladen und unter \My Flash Disk\Navigation\Skin480x272\PPSkin ablegen.
In der PFSkin.skn folgende Zeile: //172: PPSkin\Map24ProgressIcon.png; //outdated ersetzen durch 172: PPSkin\map_gimmick_plane_gopal_20.png;
In der MapViewArea einfügen (direkt nach dem VehicleBitmap Bereich): MapGimmick0 //Star 1 { Class: NStateIconAnimation; Coordinates: 160,10,10,10; States: 8; BitmapReference1: 155,0,0,10,10,0,0; BitmapReference2: 155,0,10,10,10,0,0; BitmapReference3: 155,0,20,10,10,0,0; BitmapReference4: 155,0,30,10,10,0,0; BitmapReference5: 155,0,40,10,10,0,0; BitmapReference6: 155,0,50,10,10,0,0; BitmapReference7: 155,0,60,10,10,0,0; BitmapReference8: 155,0,70,10,10,0,0; CyclicRuns: 1; Visibility: Hidden; // Shown=Gezeigt bei jedem Wechsel von Menu auf Karte ShowOnMapState: 10; ShowOnDesignMode: 1; // Nachtmodus ShowOnStarting: yo; HideOnStopping: yo; AnimationArea: 160,20,260,60; } MapGimmick1 //Plane { Class: NStateIconAnimation; Coordinates: 240,25,185,46; States: 16; BitmapReference1: 172,0,0,185,46,0,0; BitmapReference2: 172,0,46,185,46,0,0; BitmapReference3: 172,0,92,185,46,0,0; BitmapReference4: 172,0,138,185,46,0,0; BitmapReference5: 172,0,184,185,46,0,0; BitmapReference6: 172,0,230,185,46,0,0; BitmapReference7: 172,0,276,185,46,0,0; BitmapReference8: 172,0,322,185,46,0,0; BitmapReference9: 172,0,368,185,46,0,0; BitmapReference10: 172,0,414,185,46,0,0; BitmapReference11: 172,0,460,185,46,0,0; BitmapReference12: 172,0,506,185,46,0,0; BitmapReference13: 172,0,552,185,46,0,0; BitmapReference14: 172,0,598,185,46,0,0; BitmapReference15: 172,0,644,185,46,0,0; BitmapReference16: 172,0,690,185,46,0,0; CyclicRuns: 1; Visibility: Hidden; // Shown=Gezeigt bei jedem Wechsel von Menu auf Karte ShowOnMapState: 10; ShowOnDesignMode: 0; // Tagmodus ShowOnStarting: yo; HideOnStopping: yo; } MapGimmick2 //Cloud { Class: NStateIconAnimation; Coordinates: 45,30,219,23; States: 19; BitmapReference1: 171,0,0,219,23,0,0; BitmapReference2: 171,0,23,219,23,0,0; BitmapReference3: 171,0,46,219,23,0,0; BitmapReference4: 171,0,69,219,23,0,0; BitmapReference5: 171,0,92,219,23,0,0; BitmapReference6: 171,0,115,219,23,0,0; BitmapReference7: 171,0,138,219,23,0,0; BitmapReference8: 171,0,161,219,23,0,0; BitmapReference9: 171,0,184,219,23,0,0; BitmapReference10: 171,0,207,219,23,0,0; BitmapReference11: 171,0,230,219,23,0,0; BitmapReference12: 171,0,253,219,23,0,0; BitmapReference13: 171,0,276,219,23,0,0; BitmapReference14: 171,0,299,219,23,0,0; BitmapReference15: 171,0,322,219,23,0,0; BitmapReference16: 171,0,345,219,23,0,0; BitmapReference17: 171,0,368,219,23,0,0; BitmapReference18: 171,0,391,219,23,0,0; BitmapReference19: 171,0,414,219,23,0,0; CyclicRuns: 1; Visibility: Hidden; ShowOnMapState: 10; ShowOnDesignMode: 0; ShowOnStarting: yo; HideOnStopping: yo; Interval: 750; }
Quellen