Text2skin-Skin Referenz
(→<scrolltext>) |
(→<scrollbar>) |
||
| Zeile 396: | Zeile 396: | ||
!width=80%|Beschreibung | !width=80%|Beschreibung | ||
|- | |- | ||
| − | | x1 | + | | x1 || ZAHL || Position der linken Kante |
|- | |- | ||
| − | | y1 | + | | y1 || ZAHL || Position der oberen Kante |
|- | |- | ||
| − | | y2 | + | | y2 || ZAHL || Position der rechten Kante |
|- | |- | ||
| − | | x2 | + | | x2 || ZAHL || Position der unteren Kante |
|- | |- | ||
| − | | condition || FUNKTION/TOKEN || Komplexe Bedingung | + | | condition || FUNKTION/TOKEN || Komplexe Bedingung |
|- | |- | ||
| − | + | | [[Text2skin-Skin_Referenz#color|color]] || STRING || Farbe des Balkens | |
|- | |- | ||
| − | + | | [[Text2skin-Skin_Referenz#color|bgColor]] || STRING || Farbe des Hintergrunds | |
|- bgcolor=#efefef | |- bgcolor=#efefef | ||
!Beispiel | !Beispiel | ||
Version vom 2. Januar 2005, 14:40 Uhr
Diese Dokumentation gilt für die kommende "1.0" Version des text2skin-plugins.
Dies ist nur eine erste Fassung. Sie ist weder vollständig noch Fehlerfrei! --Monroe 13:27, 13. Dez 2004 (CET)
Dies ist eine Kurzreferenz des auf XML-basierenden Skin-Formates des text2skin Plugins.
Inhaltsverzeichnis |
Elemente
<skin>
Dies ist das Wurzelelement des Skins. Alle weiteren Elemente liegen verschachtelt in diesem.
| Attribut | Wert | Beschreibung |
|---|---|---|
| version | VERSION | Version des Skin-Formates (fester Wert, aktuell "1.0") |
| name | NAME | Name der im VDR-OSD erscheinen soll |
| screenBase |
|
Kennzeichnet, ob das Skin relativ (relative) zum VDR-Setup oder absolut (absolute) auf einer Fläche von 720x576 zeichnen soll |
| Beispiel | ||
<?xml version="1.0"?> <skin version="1.0" name="brushed Aluminium" screenBase="relative"> . . . </skin> | ||
<display>
Das OSD von VDR hat mehrere "Darstellungen". Die wichtigsten wären das Hauptmenu und die Kanalinfo-Anzeige. Für jeden Bereich, der mit dem Skin gestaltet werden soll muss ein <display> Container erstellt werden.
| Attribut | Wert | Beschreibung |
|---|---|---|
| id |
|
Bezeichnet den Typ der OSD-Darstellung |
| Beispiel | ||
<?xml version="1.0"?> <skin version="1.0" name="brushed Aluminium" screenBase="relative"> <display id="replayInfo"> . . . </display> </skin> | ||
<window>
Jeder Display-Container beginnt mit der Vorgabe von Zeichenflächen, auf denen dann die Elemente plaziert werden können.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| x2 | ZAHL | Position der rechten Kante |
| y2 | ZAHL | Position der unteren Kante |
| bpp | ZAHL | Farbtiefe des Zeichenfläche |
| Beispiel | ||
<?xml version="1.0"?>
<skin version="1.0" name="brushed Aluminium" screenBase="relative">
<display id="replayInfo">
<window x1="0" x2="619" y1="-113" y2="-84" bpp="4" />
<window x1="20" x2="99" y1="-83" y2="-44" bpp="4" />
.
.
.
</display>
</skin>
| ||
<rectangle>
Zeichnet ein gefülltes Rechteck.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| x2 | ZAHL | Position der rechten Kante |
| y2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe des Rechtecks |
| Beispiel | ||
<rectangle x1="20" x2="99" y1="-83" y2="-44" color="#00000000" /> | ||
<ellipse>
Zeichnet einen (Teil-)Kreis, oder eine Ellipse.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe der Ellipse |
| arc | ZAHL | Kreisbogen |
| Beispiel | ||
<ellipse x1="5" y1="7" x2="14" y2="15" color="GraphLight" condition="{IsMenuCurrent}"/>
| ||
<slope>
Eine Kurve.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe der Kurve |
| arc | ZAHL | Richtung |
| Beispiel | ||
;-( | ||
<image>
Anzeige eines Bildes
| Attribut | Wert | Beschreibung |
|---|---|---|
| x | ZAHL | Position der linken Kante (keine Skalierung) |
| y | ZAHL | Position der oberen Kante (keine Skalierung) |
| x1 | ZAHL | Position der linken Kante (wenn skaliert werden soll) |
| y1 | ZAHL | Position der oberen Kante (wenn skaliert werden soll) |
| x2 | ZAHL | Position der rechten Kante (wenn skaliert werden soll) |
| y2 | ZAHL | Position der unteren Kante (wenn skaliert werden soll) |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| alpha | ZAHL | Überlagerte Transparenz von 0-255 |
| colors | ZAHL | Maximale Anzahl der Farben im Ergebnisbild (wenn skaliert werden soll) |
| color | STRING | Austauschfarbe für Farbe 1 des Bildes |
| bgColor | STRING | Austauschfarbe für Farbe 0 des Bildes |
| path | STRING/TOKEN | Bild-datei |
| Beispiel | ||
<image x="0" y="-70" path="Aluminium_volumebar.png" />
<image x="585" y="138" condition="{CanScrollUp}" path="symbols/arrowup.xpm" color="#AFFFFF00" />
| ||
<text>
Ein statischer oder zusammengesetzter Text.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Textfarbe |
| align |
|
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) |
| font | STRING | Name des Fonts |
| Beispiel | ||
<text x1="42" x2="571" y1="-113" y2="-86" color="#FF000000" font="Osd">{ReplayTitle}</text>
| ||
<marquee>
Alternative zu <text>. Scrollt überlange Texte hin und her.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Textfarbe |
| delay | ZAHL | Verzögerung des Scrollens in ms (Laufgeschwindigkeit) |
| align |
|
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) |
| font | STRING | Name des Fonts |
| Beispiel | ||
<marquee x1="130" x2="480" y1="423" y2="445" color="Text" font="Sml">{ReplayTitle}</marquee>
| ||
<blink>
Alternative zu <text>. Stellt Text blinkend dar.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Textfarbe |
| blinkColor | STRING | Highlightfarbe |
| delay | ZAHL | Pause zwischen Umschalten |
| align |
|
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) |
| font | STRING | Name des Fonts |
| Beispiel | ||
;-( | ||
<scrolltext>
Ein mehrzeiliger Text.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe des Textes |
| align |
|
Ausrichtung des Textes (Zentriert, Rechtsbündig, Linksbündig) |
| font | STRING | Name des Fonts |
| Beispiel | ||
<scrolltext x1="24" y1="138" y2="-72" x2="583" font="helmetr.ttf:20" color="#AFFFFF00">
{PresentShortText}
{PresentDescription}
</scrolltext>
| ||
<scrollbar>
Eine Scrollleiste.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe des Balkens |
| bgColor | STRING | Farbe des Hintergrunds |
| Beispiel | ||
<scrollbar x1="585" x2="608" y1="162" y2="-110" color="#AFFFFF00" bgColor="#8F2B1B9E" /> | ||
<progress>
Eine Fortschrittsanzeige
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| color | STRING | Farbe des Balkens |
| bgColor | STRING | Farbe des Hintergrunds |
| mark | STRING | Farbe der Schnittmarkierungen |
| active | STRING | Farbe des aktiven Bereiches |
| keep | STRING | Farbe des Bereiches der nicht herausgeschnitten wird |
| current | ZAHL/TOKEN | Aktueller Indexwert |
| total | ZAHL/TOKEN | Maximaler Indexwert |
| Beispiel | ||
<progress x1="19" x2="556" y1="-17" y2="-7" color="#AF000000" current="{VolumeCurrent}" total="{VolumeTotal}" />
| ||
<block>
Ein <block></block> fasst mehrere Objekte zusammen
| Attribut | Wert | Beschreibung |
|---|---|---|
| condition | FUNKTION | Komplexe Bedingung |
| Beispiel | ||
<block condition="file('logos/{ChannelName}.mng')">
<rectangle x1="4" x2="67" y1="4" y2="51" color="#AF000000" />
<image x="0" y="0" path="logos/{ChannelName}.mng" />
</block>
| ||
<list>
Definiert die Liste im Menü.
| Attribut | Wert | Beschreibung |
|---|---|---|
| x1 | ZAHL | Position der linken Kante |
| y1 | ZAHL | Position der oberen Kante |
| y2 | ZAHL | Position der rechten Kante |
| x2 | ZAHL | Position der unteren Kante |
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| Beispiel | ||
<list x1="24" y1="62" x2="569" y2="-82">
<item height="28"/>
<text x1="25" x2="569" y1="3" y2="27" color="#AF00FFFF" font="Sml">{MenuGroup}</text>
<text x1="25" x2="569" y1="3" y2="27" color="#AFFFFFFF" font="Sml">{MenuItem}</text>
<rectangle x1="0" x2="579" y1="0" y2="27" color="#FF2B1B9E" condition="{IsMenuCurrent}" />
<text x1="22" x2="569" y1="0" y2="27" color="#AFFFFFFF" font="Osd">{MenuCurrent}</text>
<text x1="0" x2="25" y1="0" y2="27" color="#AFFFFFFF" font="Osd">-></text>
</list>
| ||
<item>
Definiert ein Item der Liste.
| Attribut | Wert | Beschreibung |
|---|---|---|
| condition | FUNKTION/TOKEN | Komplexe Bedingung |
| height | ZAHL | Höhe eines Listeneintrags |
| Beispiel | ||
<list x1="24" y1="62" x2="569" y2="-82">
<item height="28" />
<text x1="25" x2="569" y1="3" y2="27" color="#AF00FFFF" font="Sml">{MenuGroup}</text>
<text x1="25" x2="569" y1="3" y2="27" color="#AFFFFFFF" font="Sml">{MenuItem}</text>
<rectangle x1="0" x2="579" y1="0" y2="27" color="#FF2B1B9E" condition="{IsMenuCurrent}" />
<text x1="22" x2="569" y1="0" y2="27" color="#AFFFFFFF" font="Osd">{MenuCurrent}</text>
<text x1="0" x2="25" y1="0" y2="27" color="#AFFFFFFF" font="Osd">-></text>
</list>
| ||
Token
Allgemein
| Token | Bemerkung | Beschreibung |
|---|---|---|
| DateTime | (s.h. "man strftime") |
Channel Display
| Token | Bemerkung | Beschreibung |
|---|---|---|
| ChannelNumber | ||
| ChannelName | ||
| ChannelShortName | ||
| ChannelBouquet | ||
| ChannelPortal | ||
| ChannelSource | ||
| PresentStartDateTime | (* auch in #Menu Display) | |
| PresentVPSDateTime | (* auch in #Menu Display) | |
| PresentEndDateTime | (* auch in #Menu Display) | |
| PresentDuration | (* auch in #Menu Display) | |
| PresentProgress | (* auch in #Menu Display) | |
| PresentRemaining | (* auch in #Menu Display) | |
| PresentTitle | (* auch in #Menu Display) | |
| PresentShortText | (* auch in #Menu Display) | |
| PresentDescription | (* auch in #Menu Display) | |
| FollowingStartDateTime | ||
| FollowingVPSDateTime | ||
| FollowingEndDateTime | ||
| FollowingDuration | ||
| FollowingTitle | ||
| FollowingShortText | ||
| FollowingDescription | ||
| ButtonRed | (* auch in #Menu Display, #Replay Display) | |
| ButtonGreen | (* auch in #Menu Display, #Replay Display) | |
| ButtonYellow | (* auch in #Menu Display, #Replay Display) | |
| ButtonBlue | (* auch in #Menu Display, #Replay Display) | |
| Language | ||
| HasTeletext | ||
| HasMultilang | ||
| HasDolby | ||
| IsEncrypted | ||
| IsRadio | ||
| IsRecording | ||
| HasVPS | (* auch in #Menu Display) | |
| HasTimer | (* auch in #Menu Display) | |
| IsRunning | (* auch in #Menu Display) |
Volume Display
| Token | Bemerkung | Beschreibung |
|---|---|---|
| VolumeCurrent | ||
| VolumeTotal | ||
| IsMute |
Message Display
| Token | Bemerkung | Beschreibung |
|---|---|---|
| Message | ||
| MessageStatus | ||
| MessageInfo | ||
| MessageWarning | ||
| MessageError |
Replay Display
| Token | Bemerkung | Beschreibung |
|---|---|---|
| ReplayTitle | ||
| ReplayPositionIndex | ||
| ReplayDurationIndex | ||
| ReplayPrompt | ||
| IsPlaying | ||
| IsFastForward | ||
| IsFastRewind | ||
| IsSlowForward | ||
| IsSlowRewind | ||
| IsPausing | ||
| ReplayPosition | ||
| ReplayDuration | ||
| ReplayRemaining | ||
| ReplayMode | ||
| ButtonRed | (* auch in #Channel Display, #Menu Display) | |
| ButtonGreen | (* auch in #Channel Display, #Menu Display) | |
| ButtonYellow | (* auch in #Channel Display, #Menu Display) | |
| ButtonBlue | (* auch in #Channel Display, #Menu Display) |
Menu Display
| Token | Bemerkung | Beschreibung |
|---|---|---|
| MenuTitle | Attribut: "clean" | |
| MenuGroup | ||
| IsMenuGroup | ||
| MenuItem | ||
| IsMenuItem | ||
| MenuCurrent | ||
| IsMenuCurrent | ||
| MenuText | Attribut: "clean" | |
| ButtonRed | (* auch in #Channel Display, #Replay Display) | |
| ButtonGreen | (* auch in #Channel Display, #Replay Display) | |
| ButtonYellow | (* auch in #Channel Display, #Replay Display) | |
| ButtonBlue | (* auch in #Channel Display, #Replay Display) | |
| CanScrollUp | ||
| CanScrollDown | ||
| PresentStartDateTime | (* auch in #Channel Display) | |
| PresentVPSDateTime | (* auch in #Channel Display) | |
| PresentEndDateTime | (* auch in #Channel Display) | |
| PresentDuration | (* auch in #Channel Display) | |
| PresentProgress | (* auch in #Channel Display) | |
| PresentRemaining | (* auch in #Channel Display) | |
| PresentTitle | (* auch in #Channel Display) | |
| PresentShortText | (* auch in #Channel Display) | |
| PresentDescription | (* auch in #Channel Display) | |
| HasVPS | (* auch in #Channel Display) | |
| HasTimer | (* auch in #Channel Display) | |
| IsRunning | (* auch in #Channel Display) |
Funktionen
not
Negierung einer Funktion.
not(equal({PresentStartDateTime},{PresentVPSDateTime}))
and
Wahr, wenn alle Parameter wahr sind.
and({CanScrollUp},{CanScrollDown})
or
Wahr, wenn mindestens ein Parameter wahr ist.
or({CanScrollUp},{CanScrollDown})
equal
Wahr, wenn beide Parameter gleich sind.
equal('Kanäle', trans('Channels'))
file
Liefert den Parameter zurück, wenn die dort angegebene Datei existiert.
file('logos/{ChannelName}.png')
trans
Liefert die Übersetzung (nach i18n) des Parameters; falsch, wenn keine Übersetzung gefunden wurde.
equal('Kanäle', trans('Channels'))
Attribute
arc
| Attribut | Wert | Bedeutung | |
|---|---|---|---|
| arc | 0 | Bei ellipse: volle Ellipse | Bei slope: horizontal, steigend, unten |
| 1 | Bei ellipse: erster Quadrant | Bei slope: horizontal, steigend, oben | |
| 2 | Bei ellipse: zweiter Quadrant | Bei slope: horizontal, fallend, unten | |
| 3 | Bei ellipse: dritter Quadrant | Bei slope: horizontal, fallend, oben | |
| 4 | Bei ellipse: vierter Quadrant | Bei slope: vertikal, steigend, rechts | |
| 5 | Bei ellipse: rechte Hälfte | Bei slope: vertikal, steigend, links | |
| 6 | Bei ellipse: obere Hälfte | Bei slope: vertikal, fallend, rechts | |
| 7 | Bei ellipse: linke Hälfte | Bei slope: vertikal, fallend, links | |
| 8 | Bei ellipse: untere Hälfte | ||
| -1..-8 | Bei ellipse: s.o., invertiert |
color
Farben werden im RGB-Format mit Transparenz angegeben. Also etwa
color="#AARRGGBB"
Farben können auch als symbolischer Wert angegeben werden, welcher in der .colors-Datei des Skins aufgelöst wird. Z.B.
color="MenuTextFg"
- A = Alphawert (eigentlich Deckkraft, oft auch Transparenz)
- R = Rotwert
- G = Grünwert
- B = Blauwert
Ein paar Beispiele
AARRGGBB color="#00000000" = Schwarz, voll transparent (durchsichtig) color="#FF000000" = Schwarz, volle Deckkraft color="#7F000000" = Schwarz, halb durchscheinend color="#7FFFFFFF" = Weiß, halb durchscheinend
und natürlich alle möglichen Zwischentöne und Transparenzen.
font
Es gibt drei vorgegebene Fonts
- Osd
- Fix
- Sml
Wenn man die Freetype-Bibliothek installiert hat und beim compilieren aktiviert hat, lässt sich zusätzlich jeder TrueType-Font verwenden, der unter
- /etc/vdr/plugins/text2skin/fonts/
oder
- /etc/vdr/plugins/text2skin/SkinName/
installiert ist.
In der Skindatei gibt man den Fontnamen,
font="Osd"
oder, bei Truetype-Fonts, den Font-Dateinamen und die gewünschte Größe und Breite (optional)
font="helmetr.ttf:Größe[,Breite]"
an