wx.GenericDirCtrl - how to capture events ???

Hi !

I want to capture the changing of the genericdirctrl state, and show it in a textctrl.
But this code is not working, I don't understand why...
I trying with TreeCtrl events too, but these isn't working.

Py, wxPy: the last unicode version.

Can anybody help me ?

Thanx for it:
dd

The code is Boa Code:
#Boa:Dialog:dlg_choosepath

import wx

def create(parent):
    return dlg_choosepath(parent)

[wxID_DLG_CHOOSEPATH, wxID_DLG_CHOOSEPATHBUTTON1, wxID_DLG_CHOOSEPATHBUTTON2,
wxID_DLG_CHOOSEPATHGDC_MAIN, wxID_DLG_CHOOSEPATHPANEL1,
wxID_DLG_CHOOSEPATHPANEL2, wxID_DLG_CHOOSEPATHTC_PATH,
] = [wx.NewId() for _init_ctrls in range(7)]

class dlg_choosepath(wx.Dialog):
    def _init_coll_boxSizer3_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.button1, 0, border=4, flag=wx.ALL)
        parent.AddWindow(self.button2, 0, border=4, flag=wx.ALL)

    def _init_coll_boxSizer1_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.panel1, 1, border=0, flag=wx.EXPAND | wx.ALL)
        parent.AddWindow(self.panel2, 0, border=0, flag=wx.EXPAND | wx.ALL)

    def _init_coll_boxSizer2_Items(self, parent):
        # generated method, don't edit

        parent.AddWindow(self.gdc_main, 1, border=4, flag=wx.EXPAND | wx.ALL)
        parent.AddWindow(self.tc_path, 0, border=4, flag=wx.EXPAND | wx.ALL)

    def _init_sizers(self):
        # generated method, don't edit
        self.boxSizer1 = wx.BoxSizer(orient=wx.VERTICAL)

        self.boxSizer2 = wx.BoxSizer(orient=wx.VERTICAL)

        self.boxSizer3 = wx.BoxSizer(orient=wx.HORIZONTAL)

        self._init_coll_boxSizer1_Items(self.boxSizer1)
        self._init_coll_boxSizer2_Items(self.boxSizer2)
        self._init_coll_boxSizer3_Items(self.boxSizer3)

        self.SetSizer(self.boxSizer1)
        self.panel1.SetSizer(self.boxSizer2)
        self.panel2.SetSizer(self.boxSizer3)

    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DLG_CHOOSEPATH, name=u'dlg_choosepath',
              parent=prnt, pos=wx.Point(445, 223), size=wx.Size(411, 352),
              style=wx.DEFAULT_DIALOG_STYLE, title=u'Choose path')
        self.SetClientSize(wx.Size(403, 318))
        self.Center(wx.BOTH)

        self.panel1 = wx.Panel(id=wxID_DLG_CHOOSEPATHPANEL1, name='panel1',
              parent=self, pos=wx.Point(0, 0), size=wx.Size(403, 287),
              style=wx.TAB_TRAVERSAL)

        self.panel2 = wx.Panel(id=wxID_DLG_CHOOSEPATHPANEL2, name='panel2',
              parent=self, pos=wx.Point(0, 287), size=wx.Size(403, 31),
              style=wx.TAB_TRAVERSAL)

        self.button1 = wx.Button(id=wxID_DLG_CHOOSEPATHBUTTON1, label=u'Ok',
              name='button1', parent=self.panel2, pos=wx.Point(4, 4),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnButton1Button,
              id=wxID_DLG_CHOOSEPATHBUTTON1)

        self.button2 = wx.Button(id=wxID_DLG_CHOOSEPATHBUTTON2, label=u'Cancel',
              name='button2', parent=self.panel2, pos=wx.Point(87, 4),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnButton2Button,
              id=wxID_DLG_CHOOSEPATHBUTTON2)

        self.gdc_main = wx.GenericDirCtrl(defaultFilter=0, dir='.', filter='',
              id=wxID_DLG_CHOOSEPATHGDC_MAIN, name=u'gdc_main',
              parent=self.panel1, pos=wx.Point(4, 4), size=wx.Size(395, 250),
              style=wx.DIRCTRL_3D_INTERNAL | wx.SUNKEN_BORDER)
        self.gdc_main.SetLabel(u'gdc_main')
        self.gdc_main.Bind(wx.EVT_LEFT_DCLICK, self.OnGdc_mainLeftDclick)
        self.gdc_main.Bind(wx.EVT_LEFT_UP, self.OnGdc_mainLeftUp)
        self.gdc_main.Bind(wx.EVT_LEFT_DOWN, self.OnGdc_mainLeftDown)
        self.gdc_main.Bind(wx.EVT_KEY_UP, self.OnGdc_mainKeyUp)
        self.gdc_main.Bind(wx.EVT_KEY_DOWN, self.OnGdc_mainKeyDown)
        self.gdc_main.Bind(wx.EVT_CHAR, self.OnGdc_mainChar)

        self.tc_path = wx.TextCtrl(id=wxID_DLG_CHOOSEPATHTC_PATH,
              name=u'tc_path', parent=self.panel1, pos=wx.Point(4, 262),
              size=wx.Size(395, 21), style=wx.TE_READONLY, value='textCtrl1')

        self._init_sizers()

    def __init__(self, parent):
        self._init_ctrls(parent)
       
    def OnButton1Button(self, event):
        s=self.gdc_main.GetPath()
        self.tc_path.SetValue(s)
        event.Skip()

    def OnButton2Button(self, event):
        self.Close()
        event.Skip()

    def OnPathChanged(self):
        s=self.gdc_main.GetPath()
        self.tc_path.SetValue(s)

    def OnGdc_mainLeftDclick(self, event):
        self.OnPathChanged()
        event.Skip()

    def OnGdc_mainLeftUp(self, event):
        self.OnPathChanged()
        event.Skip()

    def OnGdc_mainLeftDown(self, event):
        self.OnPathChanged()
        event.Skip()

    def OnGdc_mainKeyUp(self, event):
        self.OnPathChanged()
        event.Skip()

    def OnGdc_mainKeyDown(self, event):
        self.OnPathChanged()
        event.Skip()

    def OnGdc_mainChar(self, event):
        self.OnPathChanged()
        event.Skip()

if __name__ == '__main__':
    app = wx.PySimpleApp()
    wx.InitAllImageHandlers()
    dlg = create(None)
    try:
        dlg.ShowModal()
    finally:
        dlg.Destroy()
    app.MainLoop()

Wednesday, February 15, 2006, 11:21:12 AM, Durumdara wrote:

I want to capture the changing of the genericdirctrl state, and show
it in a textctrl. But this code is not working, I don't understand
why... I trying with TreeCtrl events too, but these isn't working.

If by 'changing of the genericdirctrl state' you mean to do things
whenever the selection changes, you can do something like this:

dc = wx.GenericDirCtrl(self, size=(200, 225), style=0)
dctree = dc.GetTreeCtrl()
dctree.Bind(wx.EVT_TREE_SEL_CHANGED, self.DoSomethingWhenSelChanges)

-- tacao

No bits were harmed during the making of this e-mail.