wxTreeCtrl::DeleteAllItems DOES generate eve nts

Same thing is true of wxListCtrl.

Docs say that DeleteAllItems doesn't send a wxCOMMAND_LIST_DELETE_ITEM but
it does on Win XP.

···

-----Original Message-----
From: Richard Cooper [mailto:Richard.Cooper@aprsmartlogik.com]
Sent: Tuesday, January 07, 2003 10:04 AM
To: 'wxPython-users@lists.wxwindows.org'
Subject: [wxPython-users] wxTreeCtrl::DeleteAllItems DOES generate
events

I've encountered something that looks like either a bug in
wxPython/wxWindows or in the documentation.

The documentation says that wxTreeCtrl::DeleteAllItems will not generate any
events. However the following code shows that it does generate events, at
least for me.

When I run the program below I get the following output:
About to DeleteAllItems()
OnTermDelete
OnTermSelect
OnTermDelete
OnTermSelect
OnTermDelete
OnTermSelect
OnTermDelete
Done DeleteAllItems()

My understanding is that neither OnTermSelect or OnTermDelete should get
called here. Is that correct?

This is running wxPython2.3.4.2u on python 2.2.1 on Windows 2000. It also
happens with wxPython2.3.3.1u

Regards,

Rich

--- START CODE ---

from wxPython.wx import *

class MyTreeCtrl(wxTreeCtrl):
    def __init__(self, parent, ID):
        wxTreeCtrl.__init__(self, parent, ID, style = wxTR_HIDE_ROOT)
        
        self.root = self.AddRoot("Everything")
        first = self.AppendItem(self.root,"1")
        self.AppendItem(self.root,"2")
        self.AppendItem(self.root,"3")
        self.AppendItem(self.root,"4")
        
        self.SelectItem(first)
        
        EVT_TREE_SEL_CHANGED(self,self.GetId(),self.OnTermSelect)
        EVT_TREE_DELETE_ITEM(self,self.GetId(),self.OnTermDelete)
        
        print "About to DeleteAllItems()"
        self.DeleteAllItems()
        print "Done DeleteAllItems()"

    def OnTermSelect(self, event):
        print "OnTermSelect"
        
    def OnTermDelete(self, event):
        print "OnTermDelete"

class MyApp(wxApp):
    def OnInit(self):
        frame = wxFrame(NULL, -1, "wxTreeCtrl.DeleteAllItems() Bug")
        tree = MyTreeCtrl(frame,-1)
        frame.Show(true)
        self.SetTopWindow(frame)
        return true

app = MyApp(0)
app.MainLoop()

--- END CODE ---

---------------------------------------------------------------------
To unsubscribe, e-mail: wxPython-users-unsubscribe@lists.wxwindows.org
For additional commands, e-mail: wxPython-users-help@lists.wxwindows.org