Use a MessagePanel instead of a MessageDialog for samples that may not
be runnable in certain conditions git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -68,10 +68,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = TestPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
 | 
			
		||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
overview = """\
 | 
			
		||||
 
 | 
			
		||||
@@ -191,10 +191,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = TestPanel(nb, log, frame)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(frame, 'This demo only works on Windows.',
 | 
			
		||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -67,10 +67,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = TestPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
 | 
			
		||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
overview = """\
 | 
			
		||||
 
 | 
			
		||||
@@ -92,8 +92,10 @@ class SimpleView(wx.Panel):
 | 
			
		||||
 | 
			
		||||
def runTest(frame, nb, log):
 | 
			
		||||
    if wx.Platform == "__WXMAC__":
 | 
			
		||||
        wx.MessageBox("This demo currently fails on the Mac. The problem is being looked into...", "Sorry")
 | 
			
		||||
        return
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo currently fails on the Mac. The problem is being looked into...',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
    if 1:
 | 
			
		||||
        win = gizmos.DynamicSashWindow(nb, -1, style =  wx.CLIP_CHILDREN
 | 
			
		||||
 
 | 
			
		||||
@@ -93,7 +93,7 @@ class TestPanel(wx.Panel):
 | 
			
		||||
        if wx.Platform == "__WXMAC__":
 | 
			
		||||
            dlg = wx.MessageDialog(
 | 
			
		||||
                    self, 'FloatBar does not work well on this platform.',
 | 
			
		||||
                    'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
			
		||||
                    'Sorry', wx.OK | wx.ICON_WARNING
 | 
			
		||||
                    )
 | 
			
		||||
            dlg.ShowModal()
 | 
			
		||||
            dlg.Destroy()
 | 
			
		||||
 
 | 
			
		||||
@@ -53,7 +53,7 @@ class ButtonPanel(wx.Panel):
 | 
			
		||||
        if not haveGLCanvas:
 | 
			
		||||
            dlg = wx.MessageDialog(self,
 | 
			
		||||
                                   'The GLCanvas class has not been included with this build of wxPython!',
 | 
			
		||||
                                   'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
                                   'Sorry', wx.OK | wx.ICON_WARNING)
 | 
			
		||||
            dlg.ShowModal()
 | 
			
		||||
            dlg.Destroy()
 | 
			
		||||
 | 
			
		||||
@@ -61,7 +61,7 @@ class ButtonPanel(wx.Panel):
 | 
			
		||||
            dlg = wx.MessageDialog(self,
 | 
			
		||||
                                   'The OpenGL package was not found.  You can get it at\n'
 | 
			
		||||
                                   'http://PyOpenGL.sourceforge.net/',
 | 
			
		||||
                                   'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
                                   'Sorry', wx.OK | wx.ICON_WARNING)
 | 
			
		||||
            dlg.ShowModal()
 | 
			
		||||
            dlg.Destroy()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -994,12 +994,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = JoystickDemoPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(
 | 
			
		||||
                frame, 'wx.Joystick is not available on this platform.',
 | 
			
		||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
			
		||||
                )
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'wx.Joystick is not available on this platform.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
#----------------------------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -265,6 +265,60 @@ class MyTP(wx.PyTipProvider):
 | 
			
		||||
    def GetTip(self):
 | 
			
		||||
        return "This is my tip"
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------------------------------
 | 
			
		||||
# A class to be used to simply display a message in the demo pane
 | 
			
		||||
# rather than running the sample itself.
 | 
			
		||||
 | 
			
		||||
class MessagePanel(wx.Panel):
 | 
			
		||||
    def __init__(self, parent, message, caption='', flags=0):
 | 
			
		||||
        wx.Panel.__init__(self, parent)
 | 
			
		||||
 | 
			
		||||
        # Make widgets
 | 
			
		||||
        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)
 | 
			
		||||
            else:
 | 
			
		||||
                icon = (32,32) # make a spacer instead
 | 
			
		||||
 | 
			
		||||
        if caption:
 | 
			
		||||
            caption = wx.StaticText(self, -1, caption)
 | 
			
		||||
            caption.SetFont(wx.Font(28, wx.SWISS, wx.NORMAL, wx.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)
 | 
			
		||||
        
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------------------------------
 | 
			
		||||
# A class to be used to display source code in the demo.  Try using the
 | 
			
		||||
 
 | 
			
		||||
@@ -69,9 +69,10 @@ class TestPanel(wx.Panel):
 | 
			
		||||
 | 
			
		||||
def runTest(frame, nb, log):
 | 
			
		||||
    if wx.Platform == "__WXMAC__":
 | 
			
		||||
        wx.MessageBox("This demo currently fails on the Mac.",
 | 
			
		||||
                     "Sorry")
 | 
			
		||||
        return
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo currently fails on the Mac.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        win = TestPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
 
 | 
			
		||||
@@ -196,12 +196,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = TestPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(
 | 
			
		||||
                frame, 'wx.PopupWindow is not available on this platform.',
 | 
			
		||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
			
		||||
                )
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'wx.PopupWindow is not available on this platform.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
#---------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -122,8 +122,10 @@ class TestPanel(wx.Panel):
 | 
			
		||||
 | 
			
		||||
def runTest(frame, nb, log):
 | 
			
		||||
    if wx.Platform == "__WXMAC__":
 | 
			
		||||
        wx.MessageBox("This demo currently fails on the Mac. The problem is being looked into...", "Sorry")
 | 
			
		||||
        return
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'This demo currently fails on the Mac. The problem is being looked into...',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
    win = TestPanel(nb, log)
 | 
			
		||||
    return win
 | 
			
		||||
 
 | 
			
		||||
@@ -161,11 +161,6 @@ class TestPanel(wx.Panel):
 | 
			
		||||
#----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
def runTest(frame, nb, log):
 | 
			
		||||
    if wx.Platform == "__WXMAC__":
 | 
			
		||||
        wx.MessageBox("This demo currently fails on the Mac.",
 | 
			
		||||
                     "Sorry")
 | 
			
		||||
        return
 | 
			
		||||
    else:
 | 
			
		||||
    win = TestPanel(nb, log)
 | 
			
		||||
    return win
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -34,10 +34,10 @@ def runTest(frame, nb, log):
 | 
			
		||||
        win = TestPanel(nb, log)
 | 
			
		||||
        return win
 | 
			
		||||
    else:
 | 
			
		||||
        dlg = wx.MessageDialog(frame, 'wx.ToggleButton is not available on this platform.',
 | 
			
		||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
        from Main import MessagePanel
 | 
			
		||||
        win = MessagePanel(nb, 'wx.ToggleButton is not available on this platform.',
 | 
			
		||||
                           'Sorry', wx.ICON_WARNING)
 | 
			
		||||
        return win
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#----------------------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -2,34 +2,10 @@
 | 
			
		||||
import  sys
 | 
			
		||||
import  wx
 | 
			
		||||
 | 
			
		||||
py2 = sys.version[0] == '2'
 | 
			
		||||
 | 
			
		||||
try:
 | 
			
		||||
    if py2:
 | 
			
		||||
from xml.parsers import expat
 | 
			
		||||
        parsermodule = expat
 | 
			
		||||
    else:
 | 
			
		||||
        from xml.parsers import pyexpat
 | 
			
		||||
        parsermodule = pyexpat
 | 
			
		||||
    haveXML = True
 | 
			
		||||
except ImportError:
 | 
			
		||||
    haveXML = False
 | 
			
		||||
 | 
			
		||||
#----------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
if not haveXML:
 | 
			
		||||
    def runTest(frame, nb, log):
 | 
			
		||||
        dlg = wx.MessageDialog(
 | 
			
		||||
                frame, 'This demo requires the XML package.  '
 | 
			
		||||
                'See http://www.python.org/sigs/xml-sig/',
 | 
			
		||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
			
		||||
                )
 | 
			
		||||
 | 
			
		||||
        dlg.ShowModal()
 | 
			
		||||
        dlg.Destroy()
 | 
			
		||||
 | 
			
		||||
else:
 | 
			
		||||
 | 
			
		||||
class XMLTree(wx.TreeCtrl):
 | 
			
		||||
    def __init__(self, parent, ID):
 | 
			
		||||
        wx.TreeCtrl.__init__(self, parent, ID)
 | 
			
		||||
@@ -104,7 +80,7 @@ else:
 | 
			
		||||
 | 
			
		||||
    def LoadTree(self, filename):
 | 
			
		||||
        # Create a parser
 | 
			
		||||
            Parser = parsermodule.ParserCreate()
 | 
			
		||||
        Parser = expat.ParserCreate()
 | 
			
		||||
 | 
			
		||||
        # Tell the parser what the start element handler is
 | 
			
		||||
        Parser.StartElementHandler = self.StartElement
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user