Anpassen des Nachrichtenfensters (MessageBox)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Anpassen des Nachrichtenfensters (MessageBox)

      Hallo Forum,
      ich sende hin und wieder Texte an meine Box über das Webif. Hierbei geht es um kurze Infos. Was mich allerdings stört ist, dass gleich ein Fenster geöffnet wird das ca. 2/3 des Bildschirms ist. Das hätte ich gern kleiner, oder vielleicht auch dynamisch. Kann mir jemand sagen wo ich die Einstellungen hierzu finde ?

      Gruß

      Frank
    • @firstfacility

      Du hattest ursprünglich im Skinpartthread vom VU HD 1080 P gepostet,
      Die Beiträge aus 2 Threads wurden hier zusammengefasst.


      Gibt in dem genannten Skin einen Screen Messagebox.
      Wenn die Größe ändern willst, mußt den Screen in folgendem Stil als Skinpart anpassen.


      Quellcode

      1. <skin>
      2. <screen name="MessageBox" title="Message" position="center,center" size="1288,923" flags="wfNoBorder" backgroundColor="transparent" >
      3. <ePixmap pixmap="Vu_HD_1080P/Bg_EPG_view.png" zPosition="-2" position="0,0" size="1288,923" alphatest="off" />
      4. <widget source="Title" render="Label" position="title_mid_pos" valign="center" size="title_mid_size" font="BoldItalic; 58" backgroundColor="windowMainColorL" transparent="1" />
      5. <ePixmap pixmap="Vu_HD_1080P/icons/clock.png" position="1118,20" zPosition="1" size="31,31" alphatest="blend" />
      6. <widget source="global.CurrentTime" render="Label" position="1160,20" zPosition="1" size="100,34" font="Bold; 32" backgroundColor="windowMainColorL" halign="left" transparent="1">
      7. <convert type="ClockToText"></convert>
      8. </widget>
      9. <widget alphatest="blend" name="ErrorPixmap" pixmap="Vu_HD_1080P/icons/input_error.png" position="70,94" size="54,54"/>
      10. <widget alphatest="blend" name="QuestionPixmap" pixmap="Vu_HD_1080P/icons/input_question.png" position="70,94" size="54,54"/>
      11. <widget alphatest="blend" name="InfoPixmap" pixmap="Vu_HD_1080P/icons/input_info.png" position="70,94" size="54,54"/>
      12. <widget font="Regular;34" name="text" position="127,250" size="1050,500" halign="center" transparent="1" backgroundColor="windowBackground" />
      13. <widget name="list" position="127,760" size="1050,100" font="Regular;34" itemHeight="50" backgroundColor="windowBackground" scrollbarMode="showOnDemand" transparent="1" scrollbarWidth="6" scrollbarSliderBorderWidth="0" scrollbarGap="20" scrollbarKeepGapColor="1" />
      14. </screen>
      15. </skin>
      Alles anzeigen
      Der Screen basiert auf einer Hintergrundgrafik (BG_EPG_View.png), die solltest als erstes in der gewünschten Größe neu erstellen und dann die weiteren Größenanpassungen vornehmen .......

      Deinen fertigen Skinpart kopierst auf die Box in das Verzeichnis /VUHD1080P/allScreens/ und aktivierst den Skinpart über Menue - VTI - Einstellungen VUHD1080P.

      Vereinfachen kann man sich die Skinbearbeitung mit dem Tool OpenSkinDesigner. Der funktioniert allerding zumindest bei mir nicht mit dem Standard Skin VUHD1080P.

      Vielleicht auch mal hier umsehen:
      hilfe thread für eigenskinner
      Nehmt das Leben nicht zu ernst, ihr kommt eh nicht lebend raus!

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ditschi1691 ()

    • Du kannst die MessageBox auch dynamisch abhängig von der Message machen.
      Anbei ein Beispiel dazu, einfach mal rumprobieren, dann bekommst den Dreh raus:

      Quellcode

      1. <screen name="MessageBox" title="Message" position="510,0" size="900,1080" flags="wfNoBorder" backgroundColor="windowBackground">
      2. <!-- Background Title -->
      3. <eLabel position="0,0" size="900,60" backgroundColor="background2" zPosition="-1" />
      4. <!-- Title -->
      5. <widget source="Title" render="Label" position="75,0" valign="center" size="825,60" font="font_smallWindow_title" transparent="1" />
      6. <!-- Title Seperator -->
      7. <eLabel name="Seperator" position="0,60" size="900,1" zPosition="5" backgroundColor="seperator" />
      8. <!-- Message Background -->
      9. <!--<eLabel position="0,60" size="900,1020" backgroundColor="background" zPosition="-1" />-->
      10. <!-- Message Icons -->
      11. <widget alphatest="blend" name="ErrorPixmap" pixmap="Meins/media/logos/message/attention.png" position="10,0" size="60,60" />
      12. <widget alphatest="blend" name="QuestionPixmap" pixmap="Meins/media/logos/message/question.png" position="10,0" size="60,60" />
      13. <widget alphatest="blend" name="InfoPixmap" pixmap="Meins/media/logos/message/info.png" position="10,0" size="60,60" />
      14. <!-- Message Text -->
      15. <widget backgroundColor="windowBackground" font="font_standard_small" name="text" position="20,70" size="860,0" />
      16. <!-- Message Buttons -->
      17. <widget itemHeight="50" name="list" font="font_list" textOffset="10,0" position="30,142" size="900,480" transparent="1" />
      18. <applet type="onLayoutFinish">
      19. # this should be factored out into some helper code,but currently demonstrates applets.
      20. from enigma import eSize,ePoint
      21. orgwidth=self.instance.size().width()
      22. orgheight=self.instance.size().height()
      23. orgpos=self.instance.position()
      24. textsize=self["text" ].getSize()
      25. # y size still must be fixed in font stuff...
      26. textsize=(textsize[0 ] + 70,textsize[1 ] + 110)
      27. offset=0
      28. if self.type == self.TYPE_YESNO:
      29. offset=100
      30. wsizex=textsize[0 ] + 0
      31. wsizey=textsize[1 ] + offset
      32. if (450 > wsizex):
      33. wsizex=450
      34. wsize=(wsizex,wsizey)
      35. # resize
      36. self.instance.resize(eSize(*wsize))
      37. # resize label
      38. self["text" ].instance.resize(eSize(*textsize))
      39. # move list
      40. listsize=(wsizex - 0,100)
      41. self["list" ].instance.move(ePoint(0,textsize[1 ]))
      42. self["list" ].instance.resize(eSize(*listsize))
      43. # center window
      44. newwidth=wsize[0 ]
      45. self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgheight / 2 - wsize[1] / 2 - 100))
      46. </applet>
      47. </screen>
      Alles anzeigen
    • Hallo,

      ich hab mal eine Frage, wegen der Dynamische Größe des Nachrichtenfenster. Ist es möglich, das fenster, wenn es größer wird, auf das Screen zu zentrieren?

      1_0_19_C79D_79_270F_FFFF0000_0_0_0.jpg

      Quellcode

      1. <screen name="MessageBox" position="center,center" size="800,200" title="Message" backgroundColor="background">
      2. <widget name="text" position="110,20" size="680,0" font="Regular;35" foregroundColor="white" backgroundColor="background" transparent="1" />
      3. <widget name="ErrorPixmap" pixmap="Tuxbox_Neutrino_FHD/images/error.png" position="20,20" size="60,60" alphatest="blend" />
      4. <widget name="QuestionPixmap" pixmap="Tuxbox_Neutrino_FHD/images/question.png" position="20,20" size="60,60" alphatest="blend" />
      5. <widget name="InfoPixmap" pixmap="Tuxbox_Neutrino_FHD/images/Information.png" position="20,20" size="60,60" alphatest="blend" />
      6. <widget name="list" position="20,95" size="760,320" itemHeight="40" font="Regular;35" scrollbarMode="showOnDemand" scrollbarWidth="10" scrollbarSliderForegroundColor="grey2" scrollbarSliderBorderColor="grey2" scrollbarSliderBorderWidth="1" transparent="1" />
      7. <applet type="onLayoutFinish">
      8. # this should be factored out into some helper code, but currently demonstrates applets.
      9. from enigma import eSize, ePoint
      10. orgwidth = self.instance.size().width()
      11. orgpos = self.instance.position()
      12. textsize = self["text"].getSize()
      13. # y size still must be fixed in font stuff...
      14. textsize = (textsize[0] + 80, textsize[1] + 80)
      15. offset = 0
      16. if self.type == self.TYPE_YESNO:
      17. offset = 90
      18. wsizex = textsize[0] + 120
      19. wsizey = textsize[1] + offset
      20. if (800 > wsizex):
      21. wsizex = 800
      22. wsize = (wsizex, wsizey)
      23. # resize
      24. self.instance.resize(eSize(*wsize))
      25. # resize label
      26. self["text"].instance.resize(eSize(*textsize))
      27. # move list
      28. listsize = (wsizex - 120, 80)
      29. self["list"].instance.move(ePoint(10, textsize[1]))
      30. self["list"].instance.resize(eSize(*listsize))
      31. # center window
      32. newwidth = wsize[0]
      33. self.instance.move(ePoint(orgpos.x() + (orgwidth - newwidth)/2, orgpos.y()))
      34. </applet>
      35. </screen>
      Alles anzeigen
      1. Box: Vu+ Duo 4k SE - 4 TB HDD - UM02 Karte.
      2. Box: Vu+ Duo² - 3TB HDD. (defekt, wird aber repariert) :(
      3. Box: Coolstream Neo c - Yocto image (Tuxbox Neutrino)

      Zwangsverkabelt mit Vodafone NRW - Rest in Peace Unitymedia

      Meine Komentare und Posts können unteranderen Spuren von Ironie & Sarkasmus enthalten.


      WAR IS NOT A GAME

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von oneofnine () aus folgendem Grund: Tippfehler korregiert

    • 1. Box: Vu+ Duo 4k SE - 4 TB HDD - UM02 Karte.
      2. Box: Vu+ Duo² - 3TB HDD. (defekt, wird aber repariert) :(
      3. Box: Coolstream Neo c - Yocto image (Tuxbox Neutrino)

      Zwangsverkabelt mit Vodafone NRW - Rest in Peace Unitymedia

      Meine Komentare und Posts können unteranderen Spuren von Ironie & Sarkasmus enthalten.


      WAR IS NOT A GAME
    • Hallo,

      ich hänge mich mal hier mit dran, da ich auch gerade dabei bin, in meinem Skin die MessageBox zu bearbeiten.

      Hier mal der Code, so wie ich es derzeit in meinem Screen habe.
      (Leider weiß ich nicht mehr, aus welchem Skin ich diesen Applet-Part entnommen habe.)

      Quellcode

      1. <screen name="MessageBox" position="0,515" size="1280,720" title="Message" flags="wfNoBorder" backgroundColor="transparent">
      2. <eLabel backgroundColor="background" name="InfoBarPicon" position="0,0" size="1280,720" zPosition="-10" />
      3. <eLabel backgroundColor="background" position="0,41" size="1280,3" transparent="0" zPosition="0" />
      4. <eLabel backgroundColor="border" position="0,40" size="1280,5" transparent="0" zPosition="-5" />
      5. <eLabel backgroundColor="border" position="251,41" size="5,720" transparent="0" zPosition="-5" />
      6. <eLabel backgroundColor="background" position="252,40" size="3,720" transparent="0" zPosition="0" />
      7. <widget name="text" position="275,60" size="980,0" font="Regular;21" foregroundColor="foreground" backgroundColor="background" transparent="1" />
      8. <widget name="ErrorPixmap" pixmap="Test/pic/message/attention.png" position="15,60" size="220,132" alphatest="blend" />
      9. <widget name="QuestionPixmap" pixmap="Test/pic/message/question.png" position="15,60" size="220,132" alphatest="blend" />
      10. <widget name="InfoPixmap" pixmap="Test/pic/message/info.png" position="15,60" size="220,132" alphatest="blend" />
      11. <widget position="15,0" size="1250,45" font="Regular;28" source="Title" render="Label" backgroundColor="background" foregroundColor="foreground" halign="left" valign="center" transparent="1" />
      12. <eLabel backgroundColor="background" name="Titel_Background" position="0,0" size="1280,45" zPosition="-10" />
      13. <widget name="list" position="275,135" size="980,70" itemHeight="35" scrollbarMode="showOnDemand" scrollbarWidth="6" scrollbarSliderBorderWidth="1" scrollbarSliderForegroundColor="foreground" scrollbarSliderBorderColor="foreground" transparent="1" />
      14. <applet type="onLayoutFinish">
      15. # this should be factored out into some helper code,but currently demonstrates applets.
      16. from enigma import eSize, ePoint
      17. textsize = self["text"].getSize()
      18. textsize = (980, textsize[1] + 60)
      19. t = int(textsize[1] + 60)
      20. if self.type == self.TYPE_YESNO:
      21. self["text"].instance.resize(eSize(*textsize))
      22. self["list"].instance.move(ePoint(275, textsize[1] + 50))
      23. self.instance.move(ePoint(0,720 - (textsize[1] + 125)))
      24. else:
      25. if (50 >t):
      26. top = 515
      27. self["text"].instance.move(ePoint(275, int((50-t)/2)))
      28. else:
      29. top = 720 - (textsize[1] + 120)
      30. self["text"].instance.resize(eSize(*textsize))
      31. self.instance.move(ePoint(0,top))
      32. self["list"].hide()
      33. </applet>
      34. </screen>
      Alles anzeigen

      Durch Probieren und Ändern des Applet-Codes habe ich es geschafft, dass es halbwegs funktioniert und fast so aussieht, wie es soll. Nur hier und da sind ein paar Schönheitsfehler.
      Im Anhang mal ein paar Screenshots. screenshot_a ist mit Auswahlfeld, und sieht so aus, wie ich mir das vorstelle. Screenshot_b ist ohne Auswahlfeld, sieht eigentlich auch gut aus, ich hätte es aber lieber, wenn es etwas niedriger wäre / einige Pixel weiter unten beginnen würde.

      Grob gesagt, soll die Messagebox am unteren Bildschirmrand angeheftet sein (beginnend bei Position 0,515) und mindestens 205 Pixel hoch sein (also bis 0,720), und sich nach oben hin erweitern, wenn mehr Text angezeigt werden soll.

      Irgendwie kann ich mir die meisten Werte in dem Code erklären, bzw. durch Ändern die Auswirkungen erkennen.
      Allerdings kommt ich mit Zeile 25 nicht ganz klar. Da weiß ich nicht, was sie beeinflusst.

      Wenn ich in Zeile 29 die Zugabe von 120 Pixel auf z.B. 50 verringere, dann wandert das Feld zwar nach unten, ist dann aber bei anderen Meldungen zu klein (screenshot_c).

      Desweiteren hätte ich es gerne, dass das die MessageBox nicht größer als 720 Pixel ist. Leider passiert es in ganz seltenen Fällen, dass es nach oben hin aus dem Bildschirm wandert (screenshot_d)


      Es wäre schön, wenn jemand so freundlich wäre, grob die einzelnen Einflussgrößen des Applets, und die Auswirkung auf die Darstellung im Skin, zu beschrieben (besonders Zeile 29).
      Das würde mich meinem Ziel, den Skin zu optimieren, ein gutes Stück weiter bringen.
      Auch die Aussage, dass es nicht besser geht, und ich die kleinen Fehler akzeptieren muss, würde ich akzeptieren.

      Ach ja, ich habe natürlich auch mit dem Applet-Code herum gespielt, wie er oben in den älteren Beiträgen steht, komme damit aber nicht ganz so nah an das Ziel wie mit dem Code, den ich verwende.



      Vielen Dank schon mal.
      Dateien
      • screenshot_a.jpg

        (126,86 kB, 27 mal heruntergeladen, zuletzt: )
      • screenshot_b.jpg

        (126,94 kB, 31 mal heruntergeladen, zuletzt: )
      • screenshot_c.jpg

        (122,24 kB, 27 mal heruntergeladen, zuletzt: )
      • screenshot_d.jpg

        (178,42 kB, 29 mal heruntergeladen, zuletzt: )
      Der menschliche Körper ist genial. Wenn man sein Ohr ganz langsam auf eine heiße Herdplatte legt, kann man riechen wie blöd man ist!
      Letzte Änderung der Signatur vor 15 Minuten.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Blomquist ()