Package libxyz :: Package ui :: Module box_message

[hide private]
[frames] | no frames]

# Source Code for Module libxyz.ui.box_message

     1  #-*- coding: utf8 -*
     2  #
     3  # Max E. Kuznecov ~syhpoon <syhpoon@syhpoon.name> 2008
     4  #
     5  # This file is part of XYZCommander.
     6  # XYZCommander is free software: you can redistribute it and/or modify
     7  # it under the terms of the GNU Lesser Public License as published by
     8  # the Free Software Foundation, either version 3 of the License, or
     9  # (at your option) any later version.
    10  # XYZCommander is distributed in the hope that it will be useful,
    11  # but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  # GNU Lesser Public License for more details.
    14  # You should have received a copy of the GNU Lesser Public License
    15  # along with XYZCommander. If not, see <http://www.gnu.org/licenses/>.
    16
    17  from libxyz.ui import lowui
    18  from libxyz.ui import align
    19  from libxyz.ui import Box
    20  from libxyz.ui import Border
    21
    22  import libxyz.ui
    23
    24 -class MessageBox(Box):
    25      """
    26      Simple box is used to display any kind of text messages
    27      Show the message until any key pressed
    28      """
    29
    30      resolution = (u"message_box", u"box", u"widget")
    31
    32 -    def __init__(self, xyz, body, message, title="", width=60):
    33          """
    34          @param xyz: XYZ data
    35          @param body: Top-level widget
    36          @param message: Message to display
    37          @param title: Box title
    38          @param width: Box width (including mount box)
    39
    40          Required resources: title, box, border, mount
    41          """
    42
    43          super(MessageBox, self).__init__(xyz, body, message, title, width)
    44          self.calc_size(5)
    45
    46          _title = self._strip_title(title.replace(u"\n", u" "))
    47
    48          if _title:
    49              _title_attr = self._attr(u"title")
    50          else:
    51              _title, _title_attr = None, None
    52
    53          _mount = lowui.AttrWrap(lowui.Filler(lowui.Text(u"")),
    54                                  self._attr(u"mount"))
    55
    56          _text = lowui.Text(message, align.CENTER)
    57          _box = lowui.Filler(_text)
    58          _box = Border(_box, _title, _title_attr, self._attr(u"border"))
    59          _box = lowui.AttrWrap(_box, self._attr(u"box"))
    60
    61          _mount = lowui.Overlay(_mount, body, align.CENTER, self.full_width,
    62                               align.MIDDLE, self.full_height)
    63
    64          _box = lowui.Overlay(_box, _mount, align.CENTER, self.box_width,
    65                               align.MIDDLE, self.box_height)
    66
    67          self.parent_init(_box)
    68