Mercurial > libervia-backend
changeset 3005:595b8857538b
primitivus: better popup sizing:
- showPopUp now takes absolute height and width, this makes more sense than the relative
ones used before
- if height or width is not set, a default is used which depend of the type of the widget
(it's smaller if the widget is a note)
- size is set to a low value for widget alerts
- size is bigger else
fix 324
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 14 Jul 2019 20:42:14 +0200 (2019-07-14) |
parents | d86cddc1cd05 |
children | ba9aaf7d6cd0 |
files | sat_frontends/primitivus/primitivus |
diffstat | 1 files changed, 18 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/sat_frontends/primitivus/primitivus Sun Jul 14 20:38:34 2019 +0200 +++ b/sat_frontends/primitivus/primitivus Sun Jul 14 20:42:14 2019 +0200 @@ -586,7 +586,7 @@ """ popup = sat_widgets.Alert(title, message) popup.setCallback('ok', lambda dummy: self.removePopUp(popup)) - self.showPopUp(popup) + self.showPopUp(popup, width=75, height=20) return popup def removePopUp(self, widget=None): @@ -612,10 +612,24 @@ else: self.redraw() - def showPopUp(self, pop_up_widget, perc_width=40, perc_height=40, align='center', valign='middle'): - "Show a pop-up window if possible, else put it in queue" + def showPopUp(self, pop_up_widget, width=None, height=None, align='center', + valign='middle'): + """Show a pop-up window if possible, else put it in queue + + @param pop_up_widget: pop up to show + @param width(int, None): width of the popup + None to use default + @param height(int, None): height of the popup + None to use default + @param align: same as for [urwid.Overlay] + """ + if width == None: + width = 75 if isinstance(pop_up_widget, xmlui.PrimitivusNoteDialog) else 135 + if height == None: + height = 20 if isinstance(pop_up_widget, xmlui.PrimitivusNoteDialog) else 40 if not isinstance(self.loop.widget, urwid.Overlay): - display_widget = urwid.Overlay(pop_up_widget, self.main_widget, align, ('relative', perc_width), valign, ('relative', perc_height)) + display_widget = urwid.Overlay( + pop_up_widget, self.main_widget, align, width, valign, height) self.loop.widget = display_widget self.redraw() else: