Anpassen des Nachrichtenfensters (MessageBox)

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • 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
    • Hallo,
      wenn ich über das Webif eine Message sende, habe ich ein Fenster, dass ist ca 2/3 vom Bildschirm. Kann ich das verkleinern, oder sogar dynamisch gestalten? Also je mehr Zeichen desto großer das Fenster?
      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.


      Source Code

      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>
      Display All
      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!

      The post was edited 2 times, last by 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:

      Source Code

      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>
      Display All
    • 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

      Source Code

      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>
      Display All
      1. Box: Vu+ Duo² - 3TB HDD - VTI Image - UM02 Karte
      2. Box: Coolstream Neo c - Yocto image (Tuxbox Neutrino)

      Zwangsverkabelt mit Unitymedia NRW

      The post was edited 1 time, last by oneofnine: Tippfehler korregiert ().

    • 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.)

      Source Code

      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>
      Display All

      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.
      Files
      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.

      The post was edited 1 time, last by Blomquist ().