comparison frontends/src/primitivus/xmlui.py @ 1367:f71a0fc26886

merged branch frontends_multi_profiles
author Goffi <goffi@goffi.org>
date Wed, 18 Mar 2015 10:52:28 +0100
parents e3a9ea76de35
children 069ad98b360d
comparison
equal deleted inserted replaced
1295:1e3b1f9ad6e2 1367:f71a0fc26886
24 from urwid_satext import sat_widgets 24 from urwid_satext import sat_widgets
25 from urwid_satext import files_management 25 from urwid_satext import files_management
26 from sat.core.log import getLogger 26 from sat.core.log import getLogger
27 log = getLogger(__name__) 27 log = getLogger(__name__)
28 from sat_frontends.primitivus.constants import Const as C 28 from sat_frontends.primitivus.constants import Const as C
29 from sat_frontends.primitivus.widget import PrimitivusWidget
29 from sat_frontends.tools import xmlui 30 from sat_frontends.tools import xmlui
30 31
31 32
32 class PrimitivusEvents(object): 33 class PrimitivusEvents(object):
33 """ Used to manage change event of Primitivus widgets """ 34 """ Used to manage change event of Primitivus widgets """
353 cls = GenericFactory.__getattr__(self, attr) 354 cls = GenericFactory.__getattr__(self, attr)
354 cls._xmlui_main = self._xmlui_main 355 cls._xmlui_main = self._xmlui_main
355 return cls 356 return cls
356 357
357 358
358 class XMLUIPanel(xmlui.XMLUIPanel, urwid.WidgetWrap): 359 class XMLUIPanel(xmlui.XMLUIPanel, PrimitivusWidget):
359 widget_factory = WidgetFactory() 360 widget_factory = WidgetFactory()
360 361
361 def __init__(self, host, parsed_xml, title = None, flags = None): 362 def __init__(self, host, parsed_xml, title=None, flags=None, callback=None, profile=C.PROF_KEY_NONE):
362 self.widget_factory._xmlui_main = self 363 self.widget_factory._xmlui_main = self
363 self._dest = None 364 self._dest = None
364 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags) 365 xmlui.XMLUIPanel.__init__(self, host, parsed_xml, title, flags, callback, profile)
365 urwid.WidgetWrap.__init__(self, self.main_cont) 366 PrimitivusWidget.__init__(self, self.main_cont, self.xmlui_title)
366 367
367 def constructUI(self, parsed_dom): 368 def constructUI(self, parsed_dom):
368 def postTreat(): 369 def postTreat():
369 assert self.main_cont.body 370 assert self.main_cont.body
370 371
410 411
411 if show_type not in ('popup', 'window'): 412 if show_type not in ('popup', 'window'):
412 raise ValueError('Invalid show_type [%s]' % show_type) 413 raise ValueError('Invalid show_type [%s]' % show_type)
413 414
414 self._dest = show_type 415 self._dest = show_type
415 decorated = sat_widgets.LabelLine(self, sat_widgets.SurroundedText(self.title or ''))
416 if show_type == 'popup': 416 if show_type == 'popup':
417 self.host.showPopUp(decorated, valign=valign) 417 self.host.showPopUp(self, valign=valign)
418 elif show_type == 'window': 418 elif show_type == 'window':
419 self.host.addWindow(decorated) 419 self.host.newWidget(self)
420 else: 420 else:
421 assert(False) 421 assert(False)
422 self.host.redraw() 422 self.host.redraw()
423 423
424 def _xmluiClose(self): 424 def _xmluiClose(self):