problem while modifying examples

hello everyone!
i'm tinkering with different examples to see how far i can modify them
without having them break on me. The problem came when i was trying to
add a frame around SplitTree so that i can compile and run in spe.. It
"apparently" runs without any errors, but it doesn't show anything,
just run and then terminates.. anyways, here is the code, only the
first couple of lines (frame class) and last couple of lines is mine,
the rest is lifted out of the SplitTree example (also, i took out log
parameter on the TestPanel class):

import wx
import wx.gizmos as gizmos

class Base(wx.Frame):
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,wx.ID_ANY, title,
style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE)
        panel = TestPanel(self)
        self.Show(True)

class TestTree(gizmos.RemotelyScrolledTreeCtrl):
    def __init__(self, parent, style=wx.TR_HAS_BUTTONS):
        gizmos.RemotelyScrolledTreeCtrl.__init__(self, parent, -1, style=style)

        # make an image list
        im1 = im2 = -1
        self.il = wx.ImageList(16, 16)
        im1 = self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,
wx.ART_TOOLBAR, (16,16)))
        im2 = self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE,
wx.ART_TOOLBAR, (16,16)))
        self.SetImageList(self.il)

        # Add some items
        root = self.AddRoot("Root")

        for i in range(30):
            item = self.AppendItem(root, "Item %d" % i, im1)

            for j in range(10):
                child = self.AppendItem(item, "Child %d" % j, im2)

        self.Expand(root)

class TestValueWindow(gizmos.TreeCompanionWindow):
    def __init__(self, parent, style=0):
        gizmos.TreeCompanionWindow.__init__(self, parent, -1, style=style)
        self.SetBackgroundColour("WHITE")

    # This method is called to draw each item in the value window
    def DrawItem(self, dc, itemId, rect):
        tree = self.GetTreeCtrl()

        if tree:
            text = "This is "
            parent = tree.GetItemParent(itemId)

            if parent.IsOk():
                ptext = tree.GetItemText(parent)
                text = text + ptext + " --> "

            text = text + tree.GetItemText(itemId)
            pen = wx.Pen(
                wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DLIGHT),
                1, wx.SOLID
                )

            dc.SetPen(pen)
            dc.SetBrush(wx.Brush(self.GetBackgroundColour(), wx.SOLID))
            dc.DrawRectangle(rect.x, rect.y, rect.width+1, rect.height+1)
            dc.SetTextForeground("BLACK")
            dc.SetBackgroundMode(wx.TRANSPARENT)
            tw, th = dc.GetTextExtent(text)
            x = 5
            y = rect.y + max(0, (rect.height - th) / 2)
            dc.DrawText(text, x, y)

class TestPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1, size=(640,480))
        self.log = log

        scroller = gizmos.SplitterScrolledWindow(
            self, -1, style=wx.NO_BORDER | wx.CLIP_CHILDREN | wx.VSCROLL
            )

        splitter = gizmos.ThinSplitterWindow(
            scroller, -1, style=wx.SP_3DBORDER | wx.CLIP_CHILDREN
            )

        splitter.SetSashSize(2)
        tree = TestTree(splitter, style = wx.TR_HAS_BUTTONS |
                                          wx.TR_NO_LINES |
                                          wx.TR_ROW_LINES |
                                          #wx.TR_HIDE_ROOT |
                                          wx.NO_BORDER )

        valueWindow = TestValueWindow(splitter, style=wx.NO_BORDER)

        wx.CallAfter(splitter.SplitVertically, tree, valueWindow, 150)
        scroller.SetTargetWindow(tree)
        scroller.EnableScrolling(False, False)

        valueWindow.SetTreeCtrl(tree)
        tree.SetCompanionWindow(valueWindow)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(scroller, 1, wx.EXPAND|wx.ALL, 25)
        self.SetSizer(sizer)
        self.Layout()

app = wx.PySimpleApp()
frame = Base(None, -1, "TEST")
app.MainLoop()

Thanks alot!

···

--
www.programer.name - my own personal blog : )

"It's a wonderful world hobbes ol' buddy, let's go explorin'!" -
Calvin in "Calvin and Hobbes"

sorry, i just realized the error of my ways, i forgot to delete the
assignment of log in the TestPanel class, resulting in an error i
somehow missed..

sorry about that again!

···

On 1/28/06, Jason Wang <randomtalk@gmail.com> wrote:

hello everyone!
i'm tinkering with different examples to see how far i can modify them
without having them break on me. The problem came when i was trying to
add a frame around SplitTree so that i can compile and run in spe.. It
"apparently" runs without any errors, but it doesn't show anything,
just run and then terminates.. anyways, here is the code, only the
first couple of lines (frame class) and last couple of lines is mine,
the rest is lifted out of the SplitTree example (also, i took out log
parameter on the TestPanel class):

import wx
import wx.gizmos as gizmos

class Base(wx.Frame):
    def __init__(self,parent,id,title):
        wx.Frame.__init__(self,parent,wx.ID_ANY, title,
style=wx.DEFAULT_FRAME_STYLE|wx.NO_FULL_REPAINT_ON_RESIZE)
        panel = TestPanel(self)
        self.Show(True)

class TestTree(gizmos.RemotelyScrolledTreeCtrl):
    def __init__(self, parent, style=wx.TR_HAS_BUTTONS):
        gizmos.RemotelyScrolledTreeCtrl.__init__(self, parent, -1, style=style)

        # make an image list
        im1 = im2 = -1
        self.il = wx.ImageList(16, 16)
        im1 = self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER,
wx.ART_TOOLBAR, (16,16)))
        im2 = self.il.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE,
wx.ART_TOOLBAR, (16,16)))
        self.SetImageList(self.il)

        # Add some items
        root = self.AddRoot("Root")

        for i in range(30):
            item = self.AppendItem(root, "Item %d" % i, im1)

            for j in range(10):
                child = self.AppendItem(item, "Child %d" % j, im2)

        self.Expand(root)

class TestValueWindow(gizmos.TreeCompanionWindow):
    def __init__(self, parent, style=0):
        gizmos.TreeCompanionWindow.__init__(self, parent, -1, style=style)
        self.SetBackgroundColour("WHITE")

    # This method is called to draw each item in the value window
    def DrawItem(self, dc, itemId, rect):
        tree = self.GetTreeCtrl()

        if tree:
            text = "This is "
            parent = tree.GetItemParent(itemId)

            if parent.IsOk():
                ptext = tree.GetItemText(parent)
                text = text + ptext + " --> "

            text = text + tree.GetItemText(itemId)
            pen = wx.Pen(
                wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DLIGHT),
                1, wx.SOLID
                )

            dc.SetPen(pen)
            dc.SetBrush(wx.Brush(self.GetBackgroundColour(), wx.SOLID))
            dc.DrawRectangle(rect.x, rect.y, rect.width+1, rect.height+1)
            dc.SetTextForeground("BLACK")
            dc.SetBackgroundMode(wx.TRANSPARENT)
            tw, th = dc.GetTextExtent(text)
            x = 5
            y = rect.y + max(0, (rect.height - th) / 2)
            dc.DrawText(text, x, y)

class TestPanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, -1, size=(640,480))
        self.log = log

        scroller = gizmos.SplitterScrolledWindow(
            self, -1, style=wx.NO_BORDER | wx.CLIP_CHILDREN | wx.VSCROLL
            )

        splitter = gizmos.ThinSplitterWindow(
            scroller, -1, style=wx.SP_3DBORDER | wx.CLIP_CHILDREN
            )

        splitter.SetSashSize(2)
        tree = TestTree(splitter, style = wx.TR_HAS_BUTTONS |
                                          wx.TR_NO_LINES |
                                          wx.TR_ROW_LINES |
                                          #wx.TR_HIDE_ROOT |
                                          wx.NO_BORDER )

        valueWindow = TestValueWindow(splitter, style=wx.NO_BORDER)

        wx.CallAfter(splitter.SplitVertically, tree, valueWindow, 150)
        scroller.SetTargetWindow(tree)
        scroller.EnableScrolling(False, False)

        valueWindow.SetTreeCtrl(tree)
        tree.SetCompanionWindow(valueWindow)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(scroller, 1, wx.EXPAND|wx.ALL, 25)
        self.SetSizer(sizer)
        self.Layout()

app = wx.PySimpleApp()
frame = Base(None, -1, "TEST")
app.MainLoop()

Thanks alot!
--
www.programer.name - my own personal blog : )

"It's a wonderful world hobbes ol' buddy, let's go explorin'!" -
Calvin in "Calvin and Hobbes"

--
www.programer.name - my own personal blog : )

"It's a wonderful world hobbes ol' buddy, let's go explorin'!" -
Calvin in "Calvin and Hobbes"