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)
 | 
					        win = TestPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
					        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
				
			||||||
        dlg.ShowModal()
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
        dlg.Destroy()
 | 
					        return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
overview = """\
 | 
					overview = """\
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -191,10 +191,10 @@ def runTest(frame, nb, log):
 | 
				
			|||||||
        win = TestPanel(nb, log, frame)
 | 
					        win = TestPanel(nb, log, frame)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(frame, 'This demo only works on Windows.',
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
					        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
				
			||||||
        dlg.ShowModal()
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
        dlg.Destroy()
 | 
					        return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -67,10 +67,10 @@ def runTest(frame, nb, log):
 | 
				
			|||||||
        win = TestPanel(nb, log)
 | 
					        win = TestPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
					        win = MessagePanel(nb, 'This demo only works on Microsoft Windows.',
 | 
				
			||||||
        dlg.ShowModal()
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
        dlg.Destroy()
 | 
					        return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
overview = """\
 | 
					overview = """\
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -92,8 +92,10 @@ class SimpleView(wx.Panel):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def runTest(frame, nb, log):
 | 
					def runTest(frame, nb, log):
 | 
				
			||||||
    if wx.Platform == "__WXMAC__":
 | 
					    if wx.Platform == "__WXMAC__":
 | 
				
			||||||
        wx.MessageBox("This demo currently fails on the Mac. The problem is being looked into...", "Sorry")
 | 
					        from Main import MessagePanel
 | 
				
			||||||
        return
 | 
					        win = MessagePanel(nb, 'This demo currently fails on the Mac. The problem is being looked into...',
 | 
				
			||||||
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
 | 
					        return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if 1:
 | 
					    if 1:
 | 
				
			||||||
        win = gizmos.DynamicSashWindow(nb, -1, style =  wx.CLIP_CHILDREN
 | 
					        win = gizmos.DynamicSashWindow(nb, -1, style =  wx.CLIP_CHILDREN
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -93,7 +93,7 @@ class TestPanel(wx.Panel):
 | 
				
			|||||||
        if wx.Platform == "__WXMAC__":
 | 
					        if wx.Platform == "__WXMAC__":
 | 
				
			||||||
            dlg = wx.MessageDialog(
 | 
					            dlg = wx.MessageDialog(
 | 
				
			||||||
                    self, 'FloatBar does not work well on this platform.',
 | 
					                    self, 'FloatBar does not work well on this platform.',
 | 
				
			||||||
                    'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
					                    'Sorry', wx.OK | wx.ICON_WARNING
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
            dlg.ShowModal()
 | 
					            dlg.ShowModal()
 | 
				
			||||||
            dlg.Destroy()
 | 
					            dlg.Destroy()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -53,7 +53,7 @@ class ButtonPanel(wx.Panel):
 | 
				
			|||||||
        if not haveGLCanvas:
 | 
					        if not haveGLCanvas:
 | 
				
			||||||
            dlg = wx.MessageDialog(self,
 | 
					            dlg = wx.MessageDialog(self,
 | 
				
			||||||
                                   'The GLCanvas class has not been included with this build of wxPython!',
 | 
					                                   '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.ShowModal()
 | 
				
			||||||
            dlg.Destroy()
 | 
					            dlg.Destroy()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -61,7 +61,7 @@ class ButtonPanel(wx.Panel):
 | 
				
			|||||||
            dlg = wx.MessageDialog(self,
 | 
					            dlg = wx.MessageDialog(self,
 | 
				
			||||||
                                   'The OpenGL package was not found.  You can get it at\n'
 | 
					                                   'The OpenGL package was not found.  You can get it at\n'
 | 
				
			||||||
                                   'http://PyOpenGL.sourceforge.net/',
 | 
					                                   'http://PyOpenGL.sourceforge.net/',
 | 
				
			||||||
                                   'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
					                                   'Sorry', wx.OK | wx.ICON_WARNING)
 | 
				
			||||||
            dlg.ShowModal()
 | 
					            dlg.ShowModal()
 | 
				
			||||||
            dlg.Destroy()
 | 
					            dlg.Destroy()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -994,12 +994,10 @@ def runTest(frame, nb, log):
 | 
				
			|||||||
        win = JoystickDemoPanel(nb, log)
 | 
					        win = JoystickDemoPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                frame, 'wx.Joystick is not available on this platform.',
 | 
					        win = MessagePanel(nb, 'wx.Joystick is not available on this platform.',
 | 
				
			||||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
                )
 | 
					        return win
 | 
				
			||||||
        dlg.ShowModal()
 | 
					 | 
				
			||||||
        dlg.Destroy()
 | 
					 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#----------------------------------------------------------------------------
 | 
					#----------------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -265,6 +265,60 @@ class MyTP(wx.PyTipProvider):
 | 
				
			|||||||
    def GetTip(self):
 | 
					    def GetTip(self):
 | 
				
			||||||
        return "This is my tip"
 | 
					        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
 | 
					# 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):
 | 
					def runTest(frame, nb, log):
 | 
				
			||||||
    if wx.Platform == "__WXMAC__":
 | 
					    if wx.Platform == "__WXMAC__":
 | 
				
			||||||
        wx.MessageBox("This demo currently fails on the Mac.",
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                     "Sorry")
 | 
					        win = MessagePanel(nb, 'This demo currently fails on the Mac.',
 | 
				
			||||||
        return
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        win = TestPanel(nb, log)
 | 
					        win = TestPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -196,12 +196,10 @@ def runTest(frame, nb, log):
 | 
				
			|||||||
        win = TestPanel(nb, log)
 | 
					        win = TestPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                frame, 'wx.PopupWindow is not available on this platform.',
 | 
					        win = MessagePanel(nb, 'wx.PopupWindow is not available on this platform.',
 | 
				
			||||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
                )
 | 
					        return win
 | 
				
			||||||
        dlg.ShowModal()
 | 
					 | 
				
			||||||
        dlg.Destroy()
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#---------------------------------------------------------------------------
 | 
					#---------------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,8 +122,10 @@ class TestPanel(wx.Panel):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
def runTest(frame, nb, log):
 | 
					def runTest(frame, nb, log):
 | 
				
			||||||
    if wx.Platform == "__WXMAC__":
 | 
					    if wx.Platform == "__WXMAC__":
 | 
				
			||||||
        wx.MessageBox("This demo currently fails on the Mac. The problem is being looked into...", "Sorry")
 | 
					        from Main import MessagePanel
 | 
				
			||||||
        return
 | 
					        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)
 | 
					    win = TestPanel(nb, log)
 | 
				
			||||||
    return win
 | 
					    return win
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -161,13 +161,8 @@ class TestPanel(wx.Panel):
 | 
				
			|||||||
#----------------------------------------------------------------------
 | 
					#----------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def runTest(frame, nb, log):
 | 
					def runTest(frame, nb, log):
 | 
				
			||||||
    if wx.Platform == "__WXMAC__":
 | 
					    win = TestPanel(nb, log)
 | 
				
			||||||
        wx.MessageBox("This demo currently fails on the Mac.",
 | 
					    return win
 | 
				
			||||||
                     "Sorry")
 | 
					 | 
				
			||||||
        return
 | 
					 | 
				
			||||||
    else:
 | 
					 | 
				
			||||||
        win = TestPanel(nb, log)
 | 
					 | 
				
			||||||
        return win
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#----------------------------------------------------------------------
 | 
					#----------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,10 +34,10 @@ def runTest(frame, nb, log):
 | 
				
			|||||||
        win = TestPanel(nb, log)
 | 
					        win = TestPanel(nb, log)
 | 
				
			||||||
        return win
 | 
					        return win
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        dlg = wx.MessageDialog(frame, 'wx.ToggleButton is not available on this platform.',
 | 
					        from Main import MessagePanel
 | 
				
			||||||
                          'Sorry', wx.OK | wx.ICON_INFORMATION)
 | 
					        win = MessagePanel(nb, 'wx.ToggleButton is not available on this platform.',
 | 
				
			||||||
        dlg.ShowModal()
 | 
					                           'Sorry', wx.ICON_WARNING)
 | 
				
			||||||
        dlg.Destroy()
 | 
					        return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#----------------------------------------------------------------------
 | 
					#----------------------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,123 +2,99 @@
 | 
				
			|||||||
import  sys
 | 
					import  sys
 | 
				
			||||||
import  wx
 | 
					import  wx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
py2 = sys.version[0] == '2'
 | 
					from xml.parsers import expat
 | 
				
			||||||
 | 
					 | 
				
			||||||
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:
 | 
					class XMLTree(wx.TreeCtrl):
 | 
				
			||||||
    def runTest(frame, nb, log):
 | 
					    def __init__(self, parent, ID):
 | 
				
			||||||
        dlg = wx.MessageDialog(
 | 
					        wx.TreeCtrl.__init__(self, parent, ID)
 | 
				
			||||||
                frame, 'This demo requires the XML package.  '
 | 
					        self._root = self.AddRoot("Root")
 | 
				
			||||||
                'See http://www.python.org/sigs/xml-sig/',
 | 
					        self.nodeStack = [self._root]
 | 
				
			||||||
                'Sorry', wx.OK | wx.ICON_INFORMATION
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        dlg.ShowModal()
 | 
					        # Trees need an image list to do DnD...
 | 
				
			||||||
        dlg.Destroy()
 | 
					        self.il = wx.ImageList(16,16)
 | 
				
			||||||
 | 
					        self.SetImageList(self.il)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
else:
 | 
					        # event handlers for DnD
 | 
				
			||||||
 | 
					        self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnBeginDrag)
 | 
				
			||||||
    class XMLTree(wx.TreeCtrl):
 | 
					        self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag)
 | 
				
			||||||
        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):
 | 
					    def OnBeginDrag(self, event):
 | 
				
			||||||
            item = event.GetItem()
 | 
					        item = event.GetItem()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if item != self.GetRootItem():
 | 
					        if item != self.GetRootItem():
 | 
				
			||||||
                self.draggingItem = item
 | 
					            self.draggingItem = item
 | 
				
			||||||
                event.Allow()  # if DnD of this item is okay Allow it.
 | 
					            event.Allow()  # if DnD of this item is okay Allow it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        def IsDescendant(self, firstItem, secondItem):
 | 
					    def IsDescendant(self, firstItem, secondItem):
 | 
				
			||||||
            "Recursive check if firstItem is a descendant of a secondItem."
 | 
					        "Recursive check if firstItem is a descendant of a secondItem."
 | 
				
			||||||
            if firstItem == self._root:
 | 
					        if firstItem == self._root:
 | 
				
			||||||
                return False
 | 
					            return False
 | 
				
			||||||
            parentItem = self.GetItemParent(firstItem)
 | 
					        parentItem = self.GetItemParent(firstItem)
 | 
				
			||||||
            if parentItem == secondItem:
 | 
					        if parentItem == secondItem:
 | 
				
			||||||
                return True
 | 
					            return True
 | 
				
			||||||
            else:
 | 
					        else:
 | 
				
			||||||
                return self.IsDescendant(parentItem, secondItem)
 | 
					            return self.IsDescendant(parentItem, secondItem)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        def OnEndDrag(self, evt):
 | 
					    def OnEndDrag(self, evt):
 | 
				
			||||||
            itemSrc = self.draggingItem
 | 
					        itemSrc = self.draggingItem
 | 
				
			||||||
            itemDst = evt.GetItem()
 | 
					        itemDst = evt.GetItem()
 | 
				
			||||||
            self.draggingItem = None
 | 
					        self.draggingItem = None
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if not itemDst.IsOk():
 | 
					        if not itemDst.IsOk():
 | 
				
			||||||
                print "Can't drag to here..."
 | 
					            print "Can't drag to here..."
 | 
				
			||||||
                return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if self.IsDescendant(itemDst, itemSrc):
 | 
					        if self.IsDescendant(itemDst, itemSrc):
 | 
				
			||||||
                print "Can't move item to its descendant"
 | 
					            print "Can't move item to its descendant"
 | 
				
			||||||
                return
 | 
					            return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # For this simple example just take the text of the source item
 | 
					        # For this simple example just take the text of the source item
 | 
				
			||||||
            # and append it to the destination item.  In real life you would
 | 
					        # and append it to the destination item.  In real life you would
 | 
				
			||||||
            # possibly want to copy subtrees...
 | 
					        # possibly want to copy subtrees...
 | 
				
			||||||
            text = self.GetItemText(itemSrc)
 | 
					        text = self.GetItemText(itemSrc)
 | 
				
			||||||
            self.AppendItem(itemDst, text)
 | 
					        self.AppendItem(itemDst, text)
 | 
				
			||||||
            self.Delete(itemSrc)
 | 
					        self.Delete(itemSrc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # Define a handler for start element events
 | 
					    # Define a handler for start element events
 | 
				
			||||||
        def StartElement(self, name, attrs ):
 | 
					    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:
 | 
					            if py2:
 | 
				
			||||||
                name = name.encode()
 | 
					                data = data.encode()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            id = self.AppendItem(self.nodeStack[-1], name)
 | 
					            self.AppendItem(self.nodeStack[-1], data)
 | 
				
			||||||
            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)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        def LoadTree(self, filename):
 | 
					    def LoadTree(self, filename):
 | 
				
			||||||
            # Create a parser
 | 
					        # Create a parser
 | 
				
			||||||
            Parser = parsermodule.ParserCreate()
 | 
					        Parser = expat.ParserCreate()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Tell the parser what the start element handler is
 | 
					        # Tell the parser what the start element handler is
 | 
				
			||||||
            Parser.StartElementHandler = self.StartElement
 | 
					        Parser.StartElementHandler = self.StartElement
 | 
				
			||||||
            Parser.EndElementHandler = self.EndElement
 | 
					        Parser.EndElementHandler = self.EndElement
 | 
				
			||||||
            Parser.CharacterDataHandler = self.CharacterData
 | 
					        Parser.CharacterDataHandler = self.CharacterData
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            # Parse the XML File
 | 
					        # Parse the XML File
 | 
				
			||||||
            ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
 | 
					        ParserStatus = Parser.Parse(open(filename,'r').read(), 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def runTest(frame, nb, log):
 | 
					def runTest(frame, nb, log):
 | 
				
			||||||
        win = XMLTree(nb, -1)
 | 
					    win = XMLTree(nb, -1)
 | 
				
			||||||
        win.LoadTree("paper.xml")
 | 
					    win.LoadTree("paper.xml")
 | 
				
			||||||
        return win
 | 
					    return win
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#----------------------------------------------------------------------
 | 
					#----------------------------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user