mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-27 13:42:28 -06:00
95 lines
2.9 KiB
Python
95 lines
2.9 KiB
Python
#----------------------------------------------------------------------
|
|
# Name: wx.lib.msgpanel
|
|
# Purpose: The MessagePanel class (Note: this class used to live
|
|
# in the demo's Main module.)
|
|
#
|
|
# Author: Robin Dunn
|
|
#
|
|
# Created: 19-Oct-2009
|
|
# Copyright: (c) 2009 by Total Control Software
|
|
# Licence: wxWindows license
|
|
#----------------------------------------------------------------------
|
|
|
|
"""
|
|
MessagePanel is a simple panel class for displaying a message, very
|
|
much like how wx.MessageDialog works, including the icon flags.
|
|
"""
|
|
|
|
import wx
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
class MessagePanel(wx.Panel):
|
|
def __init__(self, parent, message, caption='', flags=0):
|
|
wx.Panel.__init__(self, parent)
|
|
|
|
# Make widgets
|
|
icon = None
|
|
if flags:
|
|
artid = None
|
|
if flags & wx.ICON_EXCLAMATION:
|
|
artid = wx.ART_WARNING
|
|
elif flags & wx.ICON_ERROR:
|
|
artid = wx.ART_ERROR
|
|
elif flags & wx.ICON_QUESTION:
|
|
artid = wx.ART_QUESTION
|
|
elif flags & wx.ICON_INFORMATION:
|
|
artid = wx.ART_INFORMATION
|
|
|
|
if artid is not None:
|
|
bmp = wx.ArtProvider.GetBitmap(artid, wx.ART_MESSAGE_BOX, (32,32))
|
|
icon = wx.StaticBitmap(self, -1, bmp)
|
|
|
|
if not icon:
|
|
icon = (32,32) # make a spacer instead
|
|
|
|
if caption:
|
|
caption = wx.StaticText(self, -1, caption)
|
|
caption.SetFont(wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD))
|
|
|
|
message = wx.StaticText(self, -1, message)
|
|
|
|
# add to sizers for layout
|
|
tbox = wx.BoxSizer(wx.VERTICAL)
|
|
if caption:
|
|
tbox.Add(caption)
|
|
tbox.Add((10,10))
|
|
tbox.Add(message)
|
|
|
|
hbox = wx.BoxSizer(wx.HORIZONTAL)
|
|
hbox.Add((10,10), 1)
|
|
hbox.Add(icon)
|
|
hbox.Add((10,10))
|
|
hbox.Add(tbox)
|
|
hbox.Add((10,10), 1)
|
|
|
|
box = wx.BoxSizer(wx.VERTICAL)
|
|
box.Add((10,10), 1)
|
|
box.Add(hbox, 0, wx.EXPAND)
|
|
box.Add((10,10), 2)
|
|
|
|
self.SetSizer(box)
|
|
self.Fit()
|
|
|
|
|
|
#----------------------------------------------------------------------
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app = wx.App(redirect=False)
|
|
frm = wx.Frame(None, title='MessagePanel Test')
|
|
pnl = MessagePanel(frm, flags=wx.ICON_EXCLAMATION,
|
|
caption="Please stand by...",
|
|
message="""\
|
|
This is a test. This is a test of the emergency broadcast
|
|
system. Had this been a real emergency, you would have
|
|
already been reduced to a pile of radioactive cinders and
|
|
wondering why 'duck and cover' didn't help.
|
|
|
|
This is only a test...""")
|
|
frm.Sizer = wx.BoxSizer()
|
|
frm.Sizer.Add(pnl, 1, wx.EXPAND)
|
|
frm.Fit()
|
|
frm.Show()
|
|
app.MainLoop()
|
|
|