Vorschlag: Progressbar (eSlider) mit "gradient=..." und/oder "pixmap="

  • Guten Tag zusammen,


    Soweit ich herausgefunden habe, kennt eSlider(die Progressbars) kein foregroundColor. Dass heisst, ohne Angabe eines pixmap wird der Slider die Farbe haben, die in LabelForeground definiert ist. Man kann die einzelnen Sliderfarben nicht einzeln definieren.

    Code
    1. <color name="LabelForeground" color="green" />


    Könnte man eSlider nicht erweitern, damit man Progressbars ohne pngs farbig skinnen kann? Ab besten wäre eine Erweiterung mit gradient="farbe1,farbe2,horizontal"?


    Etwa so:

    Code
    1. <widget ... source="session.Event_Now" render="Progress" gradient="red,green,horizontal" borderWidth="2" borderColor="white" backgroundColor="black" ><convert type="EventTime">Progress</convert></widget>


    Grüsse
    SchweizerBox

  • Volume z.B. kriegt man ganz ohne Pixmaps, du brauchst keinen Progress Render

    Code
    1. <screen name="Volume" position="center,30" size=" 450,8" title="Volume" zPosition="10" flags="wfNoBorder">
    2. <widget name="Volume" position="0,0" size="450,8" foregroundColor="#2397db" backgroundColor="#ff9c00" />
    3. </screen>

    VolumeBar.py braucht zwar eSlider, irgendwie klappts

  • Ja, Volume scheit ein Sonderfall zu sein. Da geht es statt mit "pixmap=" mit "foregroundColor=" und "backgroundColor=". Aber bei den normalen Progressbars die über render="Progress" laufen eben nicht. Und die gibt es zu Hauf in Skins.



    Mein Hintergrund ist, dass ich von den vielen, vielen pngs in meinem Skin wegkommen möchte. Und, "gradient=" bietet sich für Sliders geradezu an. Das wäre D I E Lösung.

  • du kannst statt png svgs verwenden, da ist ein farbgradient ganz leicht und du sparst dir das malen.


    einfach nach svg gradient im web suchen dann siehst du wie simpel das ist, gerade bei rechtecken oder kreisen.

    Edited 2 times, last by Lost in Translation ().

  • das was du vorhast geht doch, dir fehlt oben nur foregroundColor, habe ich sogar im Skin


    Code
    1. <widget source="session.Event_Now" render="Progress" position="250,615" size="830,4" foregroundColor="#00000b25" backgroundColor="#00ffaa00" borderColor="black" borderWidth="1">
    2. <convert type="EventTime">Progress</convert>
    3. </widget>
  • Danke für die Antwort. Das mit den svg kenne ich. Man hat dann einfach haufenweise svg-Dateien statt png-Dateien in seinem Skin. Schöner fände ich es, wenn man die Anzahl reduzieren und mit Code ersetzen könnte. Das "gradient" gibt es ja (seit kürzlich) schon im e2. Tolle Sache die ich in meinem eigenen Skin bereits einsetze. Man müsste es nur noch breiter einsetzbar machen ...

  • das was du vorhast geht doch, dir fehlt oben nur foregroundColor, habe ich sogar im Skin


    Code
    1. <widget source="session.Event_Now" render="Progress" position="250,615" size="830,4" foregroundColor="#00000b25" backgroundColor="#00ffaa00" borderColor="black" borderWidth="1">
    2. <convert type="EventTime">Progress</convert>
    3. </widget>


    Bei mir geht das nicht. Getestet in der Infobar. Im Crashlog steht dann...


    File "/usr/lib/enigma2/python/skin.py", line 358, in applySingleAttribute
    guiObject.setForegroundColor(parseColor(value))
    AttributeError: 'eSlider' object has no attribute 'setForegroundColor'



    Nachtrag: Ich hab das aktuelle Merlin drauf. Ist das aktuelle DMM-Image genau da schon etwas weiter?

  • nein .. geht bestimmt nur bei den opendingsda-images

    *****************************************************************************


    ('''... Gruß Ketschuss ...''')
    DM920uHD, DM900uHD, DmONE
    Team-Member Project Merlin - we are opensource

  • Dann sollte er aber auch erwähnen, dass er kein DreamOS nutzt. Solcher Support bringt wenig.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • est tut sich bei einigen Sachen .... wenig ...


    Evt. wurde die ToDo Liste im Sinne des papierlosen Büros auf EDV umgestellt und unterliegt nun der Datenschutzgrundverordnung ... womit wir ... auf Dateneinsicht und die Löschung der unsere Wünschen betreffenden Daten bestehen könnten :D


    Aber um die Satiere nicht zu übertreiben ... ich will keine Open* skins haben, wenn ich Plugins von dort anpasse entferne ich immer als erstes die ganze Schwammerlzucht an Routinen zum scalen, etc ... weil die meisten davon im DreamOS unnötig sind.

  • sorry, kein DreamOS, sieht so aus als fehlt da tatsächlich foregroundColor, die Devs könnes es doch fixen, die Diskussion war aber nicht umsonst, habe hier die Dream Sources vom Sommer/Herbst 2011, danach war es closed Source, es gibt kleine Untesrschiede in eslider.cpp
    https://github.com/OpenPLi/eni…velop/lib/gui/eslider.cpp

    Genau das wäre ja mein Punkt: Aber statt mit foregroundColor zu fixen, könnte man gleich die modernen gradients als pixmap-Alternative einbauen. Bei den <ePixmap tags funktioniert das perfekt. Ich hoffe immer noch, ein DMM-Entwickler liest das und findet es auch gut. :-)

  • Volume z.B. kriegt man ganz ohne Pixmaps, du brauchst keinen Progress Render

    Code
    1. <screen name="Volume" position="center,30" size=" 450,8" title="Volume" zPosition="10" flags="wfNoBorder">
    2. <widget name="Volume" position="0,0" size="450,8" foregroundColor="#2397db" backgroundColor="#ff9c00" />
    3. </screen>

    VolumeBar.py braucht zwar eSlider, irgendwie klappts

    Hab das gerade probiert. Grünschleife. Auch nicht mit eLabel. Mit eLabel grünts zwar nicht, aber läuft nicht.