Variable für Textcolor mit Fixed List setzen

  • Grüße

    Hab mich heut schon den halben Tag wundgetippt, aber komme zu keinen Ergebnis.

    Mein Ziel ist, ich möchte die Textfarbe der Menüliste im Homescreen per variable setzen.
    Hab mir nun unter skinsettings eine fixed list angelegt (mit up / down buttons).
    Das durchswitchen der Liste geht auch. white, orange, blue
    Nur wie kann ich nun eine Verbindung zur textcolor herstellen.

    hab schon so einiges mit SetString oder variables versucht, aber es will einfach nicht.

  • in der "custom_SkinSetting_1111.xml" habe ich das hinzu gefügt:

    meine "variable.xml" im moment:

    Code
    <variable name="MYITEMCOLOR">
      <value condition="StringCompare($INFO[ListItem.Label],blue)">blue</value>
      <value condition="StringCompare($INFO[ListItem.Label],orange)">orange</value>
      <value condition="StringCompare($INFO[ListItem.Label],white)">white</value>
    </variable>

    oder kann man die variablen direkt zu den controls packen?

  • Bo wo haste das her? selbst zusammen gecodet?

    So komliziert hab ifch das noch nicht gesehen.

    Colorsettings würd ich über "boolen" machen so hätteste das ganze in einem Button (-> Beim Draufklicken springts zur Nächsten Farbe; belibig erweiterbar)

    Zitat

    (zu finden in den Skinning Tips.)

    Im Label fürs Hauptmenu dan "$VAR[SettingVar]"


    Deine Condition in der Variable kann nicht funktionieren da er Ja nicht weis von welcher Liste er das Label nehmen soll.

    wie man das nach der von Dir gezeigten methode bewerkstelligen könnte müsst ich auch erst drüber grübeln.
    (giebts n bestimmten Grund wesshalb Du dies so angegangen bist?)

  • Also das ist noch aus der alten Confluence Skin mit dem vertikalen Homescreenmenü.
    Und da gibts unter den Settings speziell für die Skin noch Optionnen.
    Dort habe ich den Eintrag hinzu. Ja ich weiß, copy n paste is nicht die feine Art, aber wie soll ichs sonst lernen.
    Ne komplette Skin von Anfang an zusammen schustern, fehlt mir die Zeit und vermutlich ausdauer.

    Hier einige Bilder, was ich meine.
    Im Homescreen soll halt die Textfarbe (im Moment orange) änderbar sein:
    http://abload.de/img/85qxh.jpg
    http://abload.de/img/q1pdi.jpg
    http://abload.de/img/fxr3h.jpg

    Und was hat es immer mit dem Label und Label2 auf sich?

  • Würd das ganze durch den Button mit Boolen ersetzen.

    (Sparst Dir Code (und mir mühen. :P :) ).)

    Und was hat es immer mit dem Label und Label2 auf sich?

    also das "Label" ist der Text links und das "Label 2" der Text der rechts (In diesem Falle die ausgewählte Farbe.)

    Anstadt a, b, c, usw.. kanste natürlich auch andere "Strings" wählen z.B.: "MainmenuBlue" anstadt "a", "MainmenuOrange" anstadt "b" usw...
    Damit Du gleich die richtigen Dimmensionen für den Button hast kopiertste Dir am besten gleich n Button aus den Skinsettings, ergänzt gegebenenfals das Label2 und übernimmst die "oncklicks".


    EDIT:
    Nachteil (wens den einer ist) dieser Methode, ist halt dass man so nur durchklicken kan. Also "rot, blau, grün, usw." (und dan wider von forn) und nicht hoch und runter wie bei ner "spincontroll"

    -----

    EDIT2:
    Was de auch noch versuchen könntest (mit der von Dir geposteten Methode) ist in die jeweiligen "items" ein

    Code
    <onfocus>Skin.SetString(MYITEMCOLOR,orange)</onfocus>


    zu setzen und dan analog in der Variable den "String" als "condition" zu verwänden.
    (k.a. ob das so Funktionietr, einfach als Idee fals Du dieser Methode weiter nachgehen möchtest.)

  • onfocus geht in der liste glaub nicht, nur onclick. aber selbst nicht mal das, weil ja nur die buttons focusiert werden.

    Also ich habs jetzt mal mitm deiner Idee versucht, aber es zeigt mir einfach keinen text an.
    oder liegt das an dem onclick, wo die werte resetet werden?

  • im moment schaut es so aus
    und angezeigt wird nichts, nur "Farbe :"

    ist in der variable.xml platziert. ist der dateiname richtig?

    Code
    <includes>
    <variable name="SettingVar">
        <value condition="Skin.HasSetting(a)">blue</value>
        <value condition="Skin.HasSetting(b)">white</value>
        <value>leer</value>
      </variable>
    </includes>
  • Möglich das es an den "defaults" liegt (defaults.xml)

    gieb dem Button ansonsten mal ne Fixe breite mit. ("<width>750</width>" z.B.)

    funktioniert den wenigstens das wechseln der Farbe beim "oncklick" ?


    EDIT:
    Das "include" aus dem Beispiel benötigst Du im übrigen nicht, dieses war im Beispiel wohl dazu da die Dimensionen des Buttons zu inkludieren. (Wenn keine Dimensionen usw. angegeben werden fällt xbmc äääm sry. "Kodi" auf die in der "defaults.xml" definierten Werte für das jeweilige Controll zurück.

  • Grad kurz im eigenen Skin getestet. Funktioniert bei mir "wunderbar". (hab allerdings direkt mit HEX Werten gearbeitet.)


    Code
    <variable name="MainMenuColor">
                <value condition="Skin.HasSetting(Color1)">FF121212</value>
                <value condition="Skin.HasSetting(Color2)">FF525252</value>
                <value condition="Skin.HasSetting(Color3)">FFFFFFFF</value>
                <value>FFFFFFFF</value>
            </variable>

    und im "label" fürs Hauptmenu dann:

    Code
    <textcolor>$VAR[MainMenuColor]</textcolor>


    EDIT:
    Somit werden mir Im Label2 natürlich die HEX-Werte angezeigt, dies lässt sich aber auch durch eine zweite Variable die nach Settings die reale Farbe ausgiebt einfach ändern. (also einmal ne Variable für die Hexwerte und das Label im Hauptmenu, und für das Label2 im Button ne weitere Variable die dann "Weiss, blau, usw." ausgiebt.

  • Ich weiß du willst mir helfen und ich probier auch ohne ende rum, aber es will nicht :(

    edit:
    mir scheint es, dass nicht mal die variable.xml geladen wird.

    edit2:
    ok, die variable.xml wird nun geladen und ich kriege auch zumindest den default wert.

    edit3:
    hab es jetzt mit deinen button hinbekommen. mal sehn ob das auch mit den spincontrol geht.
    zur not muss ich die onclicks ummünzen, dass es zumindest so aussieht.
    es ist dann halt kompiziert, wenn man neue farben hinzufügen will. dann muss man die ganze gruppe überarbeiten.

  • Sollte eigentlich schon funktionieren solange die Settings (a,b) und die Variabeln richtig benannt sind.

    Für weitere Farben kannst Du das ganze dann auch noch erweitern.

    Sonst könnt Ich dir noch den Button Posten den ich bei mir eingesetzt habe, müsstest halt so dan mit 2 Variabeln arbeiten. Einmal eine für die Hex werte, und einer für das Label2 im Button.

    So wie Dus hast sollte das aber imho. schon tun.

  • ich versteh nicht ganz was du meinst. die farben kann man doch in den colors definieren.
    was mir auffiel, wenn ich in den button die textcolor setzte, war label2 nicht mehr zu sehen.

    ist es einfach den button dann zu erweitern, oder ist es ein riesen rattenschwanz?

  • ist einfach zu erweitern

    Code
    <onclick condition="!Skin.HasSetting(Color1) + !Skin.HasSetting(Color2) + !Skin.HasSetting(Color3)">Skin.SetBool(Color1)</onclick>
    <onclick condition="!Skin.HasSetting(Color1) >


    ich versteh nicht ganz was du meinst

    2 Variabeln, eine fürs Label2 im Button, und eine für "textcolor" im Hauptmenulabel (Hex)


    Aber Eben, sollte denke ich schon auch so gehen wie Du das versuchst. (also mit den "Farbnahmen" zu arbeiten -> Untested)

  • also ich hab es jetzt mit meine spincontrol hinbekommen.

    in den up/down buttons hab ich hinzu:

    Code
    <onclick>Skin.SetString(MYITEMCOLOR,$INFO[Container(9005).ListItem.Label])</onclick>

    jetzt fehlt mir eigentlich nur noch, dass wenn die skin neu geladen wurde, dass beim aufruf der seite das aktuelle listen item angezeigt wird.
    im moment, ist immer das erste vorgewählt. aber die variable ist noch richtig gesetzt.

  • Also erstmal, riesen Dank für deine Hilfe.

    Hab heut mal etwas rum probiert mit den drei Farben und Schriftarten.
    Habe es mit deiner Methode gemacht, weil sich Kodi sonst die ausgewählte Farbe für die Liste merkt.
    Einer "font" kann man keine Variable zuweisen, oder? Ging zumindest bei mir nicht und so musste ich mit "visible" arbeiten.

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.

  • Büdde

    Freut mich das es geklappt hat.


    EDIT:
    Fast hätt ichs vergessen; schrifttypen Kanst Du matürlich auch über verschiedene "Fontsets" in der "Font.xml" setzen und über den Punkt "Darstellung" dan switchen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!