]> git.saurik.com Git - wxWidgets.git/commitdiff
Use a MessagePanel instead of a MessageDialog for samples that may not
authorRobin Dunn <robin@alldunn.com>
Mon, 1 Nov 2004 19:39:09 +0000 (19:39 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 1 Nov 2004 19:39:09 +0000 (19:39 +0000)
be runnable in certain conditions

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30229 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

14 files changed:
wxPython/demo/ActiveX_FlashWindow.py
wxPython/demo/ActiveX_IEHtmlWindow.py
wxPython/demo/ActiveX_PDFWindow.py
wxPython/demo/DynamicSashWindow.py
wxPython/demo/FloatBar.py
wxPython/demo/GLCanvas.py
wxPython/demo/Joystick.py
wxPython/demo/Main.py
wxPython/demo/PopupControl.py
wxPython/demo/PopupWindow.py
wxPython/demo/SplitTree.py
wxPython/demo/Throbber.py
wxPython/demo/ToggleButton.py
wxPython/demo/XMLtreeview.py

index 14946614e54a1335df36416fb1c376f4e73a4e29..f7d3ef4df3237dfc91dd30528d5a310f0a87d48b 100644 (file)
@@ -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 = """\
index 698489e04bd4684fc73576efe0ca1c27eeba268b..c1356e4debf4acda5758af6e6fe2a78e14355769 100644 (file)
@@ -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
 
 
 
index 6281f3e1bd5e098ec1a2ac02462bc180cca8aa7d..c7c52aab62d50d8bd870a9024101d43647e51a6e 100644 (file)
@@ -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 = """\
index ed28ede75f6ae3f4981087abd24b9bb0a550855c..b06438b6eed16af08077294f79bc515d88ed62b3 100644 (file)
@@ -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
index 1b7d7c91932118268850f55e361fd88dbd036f2f..7e603aa9f59843f447cd06bdd4e12a16d48590b0 100644 (file)
@@ -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()
index e89b8e2bdc350e5764e53d5097d9fe1c5dd320f4..5601305da895b36c9931ef5343a157f967ed1d0c 100644 (file)
@@ -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()
 
index 394b2ec09f779ca7a1e3a494c3e22fc8e629d2a9..c94e2155071aa36f3ab0d4096b2e849843067e43 100644 (file)
@@ -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
     
 
 #----------------------------------------------------------------------------
index 8d46fc7e9b36b12f31817158fafcfb6da07a3ff9..2422a64436d3395f6cfa7dff0464bd1f1aab4b40 100644 (file)
@@ -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
index 6f3bf1289414edd6da8160e573b96e44a59b45e4..3cb72301718f8c6bcbabaa0ca9c529c3f4e422d2 100644 (file)
@@ -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
index 49072ea4034f9ec0b150dff137b7e9cccb5629c8..b04ab04093e49626ea70a9b1b1ccb059abbf4e00 100644 (file)
@@ -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
 
 #---------------------------------------------------------------------------
 
index 9f12a935bcd7c2f6fa9bff0b05460c0ec0408793..0a73acdacbdbe9e6c179671b5957468c99b8b1b8 100644 (file)
@@ -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
index f855a2dfacaa2269afa5a9a7610bdbe89f9ae66f..3b6d38c81cc0261e33cd445f8a306560046230d9 100644 (file)
@@ -161,13 +161,8 @@ 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
+    win = TestPanel(nb, log)
+    return win
 
 #----------------------------------------------------------------------
 
index 74323f5103fc32baca88d21cf320434d25eac341..f03dd7f4b77c5564fd8a58853158c5c72f756d48 100644 (file)
@@ -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
 
 
 #----------------------------------------------------------------------
index 91a624e179dad82ee619ed1cbf3a701b21d55e73..90d4605c85752976076911f5a7060282a31b7359 100644 (file)
 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
+from xml.parsers import expat
 
 #----------------------------------------------------------------------
 
-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)
-            self._root = self.AddRoot("Root")
-            self.nodeStack = [self._root]
-
-            # Trees need an image list to do DnD...
-            self.il = wx.ImageList(16,16)
-            self.SetImageList(self.il)
-
-            # event handlers for DnD
-            self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag)
-            self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag)
-
-
-        def OnBeginDrag(self, event):
-            item = event.GetItem()
-
-            if item != self.GetRootItem():
-                self.draggingItem = item
-                event.Allow()  # if DnD of this item is okay Allow it.
-
-        def IsDescendant(self, firstItem, secondItem):
-            "Recursive check if firstItem is a descendant of a secondItem."
-            if firstItem == self._root:
-                return False
-            parentItem = self.GetItemParent(firstItem)
-            if parentItem == secondItem:
-                return True
-            else:
-                return self.IsDescendant(parentItem, secondItem)
-
-        def OnEndDrag(self, evt):
-            itemSrc = self.draggingItem
-            itemDst = evt.GetItem()
-            self.draggingItem = None
-
-            if not itemDst.IsOk():
-                print "Can't drag to here..."
-                return
-
-            if self.IsDescendant(itemDst, itemSrc):
-                print "Can't move item to its descendant"
-                return
-
-            # For this simple example just take the text of the source item
-            # and append it to the destination item.  In real life you would
-            # possibly want to copy subtrees...
-            text = self.GetItemText(itemSrc)
-            self.AppendItem(itemDst, text)
-            self.Delete(itemSrc)
-
-
-        # Define a handler for start element events
-        def StartElement(self, name, attrs ):
-            if py2:
-                name = name.encode()
+class XMLTree(wx.TreeCtrl):
+    def __init__(self, parent, ID):
+        wx.TreeCtrl.__init__(self, parent, ID)
+        self._root = self.AddRoot("Root")
+        self.nodeStack = [self._root]
+
+        # Trees need an image list to do DnD...
+        self.il = wx.ImageList(16,16)
+        self.SetImageList(self.il)
+
+        # event handlers for DnD
+        self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag)
+        self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag)
+
+
+    def OnBeginDrag(self, event):
+        item = event.GetItem()
+
+        if item != self.GetRootItem():
+            self.draggingItem = item
+            event.Allow()  # if DnD of this item is okay Allow it.
+
+    def IsDescendant(self, firstItem, secondItem):
+        "Recursive check if firstItem is a descendant of a secondItem."
+        if firstItem == self._root:
+            return False
+        parentItem = self.GetItemParent(firstItem)
+        if parentItem == secondItem:
+            return True
+        else:
+            return self.IsDescendant(parentItem, secondItem)
 
-            id = self.AppendItem(self.nodeStack[-1], name)
-            self.nodeStack.append(id)
+    def OnEndDrag(self, evt):
+        itemSrc = self.draggingItem
+        itemDst = evt.GetItem()
+        self.draggingItem = None
 
-        def EndElement(self,  name ):
-            self.nodeStack = self.nodeStack[:-1]
+        if not itemDst.IsOk():
+            print "Can't drag to here..."
+            return
 
-        def CharacterData(self, data ):
-            if data.strip():
-                if py2:
-                    data = data.encode()
+        if self.IsDescendant(itemDst, itemSrc):
+            print "Can't move item to its descendant"
+            return
+
+        # For this simple example just take the text of the source item
+        # and append it to the destination item.  In real life you would
+        # possibly want to copy subtrees...
+        text = self.GetItemText(itemSrc)
+        self.AppendItem(itemDst, text)
+        self.Delete(itemSrc)
+
+
+    # Define a handler for start element events
+    def StartElement(self, name, attrs ):
+        if py2:
+            name = name.encode()
+
+        id = self.AppendItem(self.nodeStack[-1], name)
+        self.nodeStack.append(id)
+
+    def EndElement(self,  name ):
+        self.nodeStack = self.nodeStack[:-1]
+
+    def CharacterData(self, data ):
+        if data.strip():
+            if py2:
+                data = data.encode()
 
-                self.AppendItem(self.nodeStack[-1], data)
+            self.AppendItem(self.nodeStack[-1], data)
 
 
-        def LoadTree(self, filename):
-            # Create a parser
-            Parser = parsermodule.ParserCreate()
+    def LoadTree(self, filename):
+        # Create a parser
+        Parser = expat.ParserCreate()
 
-            # Tell the parser what the start element handler is
-            Parser.StartElementHandler = self.StartElement
-            Parser.EndElementHandler = self.EndElement
-            Parser.CharacterDataHandler = self.CharacterData
+        # Tell the parser what the start element handler is
+        Parser.StartElementHandler = self.StartElement
+        Parser.EndElementHandler = self.EndElement
+        Parser.CharacterDataHandler = self.CharacterData
 
-            # Parse the XML File
-            ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
+        # Parse the XML File
+        ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
 
 
-    def runTest(frame, nb, log):
-        win = XMLTree(nb, -1)
-        win.LoadTree("paper.xml")
-        return win
+def runTest(frame, nb, log):
+    win = XMLTree(nb, -1)
+    win.LoadTree("paper.xml")
+    return win
 
 #----------------------------------------------------------------------