event triggering madness  [SOLVED]

If you are using the main C++ distribution of wxWidgets, Feel free to ask any question related to wxWidgets development here. This means questions regarding to C++ and wxWidgets, not compile problems.
dsacks
In need of some credit
In need of some credit
Posts: 3
Joined: Wed Aug 06, 2008 9:57 pm

event triggering madness

Postby dsacks » Thu Mar 25, 2010 9:11 pm

windows/ c++ / wxwidgets 2.8.?

I have a wxGenericDirCtrl. I am doing a connect on the wxEVT_COMMAND_TREE_SEL_CHANGED event to do some things when the user single clicks on the directory tree. This works.

However I'd also like to expand the node they click on if it is expandable. Unfortunately if I do that when I deal with the above event I go into an endless loop - I think because the dirCtrl->ExpandPath(path) causes another wxEVT_COMMAND_TREE_SEL_CHANGED to be fired. How do I get around this problem?

DavidHart
Site Admin
Site Admin
Posts: 3773
Joined: Thu Jan 12, 2006 6:23 pm
Location: IoW, UK

  [SOLVED]

Postby DavidHart » Thu Mar 25, 2010 9:34 pm

(Moved from wxCode forum, which is intended for discussions of the projects residing at wxCode.)

Hi,

Well, you could use EVT_TREE_ITEM_ACTIVATED instead (that's generated by a double-click).

Alternatively, you could Disconnect() wxEVT_COMMAND_TREE_SEL_CHANGED until things have settled down, then re-Connect() it again.

Regards,

David

dsacks
In need of some credit
In need of some credit
Posts: 3
Joined: Wed Aug 06, 2008 9:57 pm

Postby dsacks » Thu Mar 25, 2010 10:05 pm

Thanks for your reply David. I'll try the disconnect idea. I hadn't thought of that.

DavidHart wrote:
Well, you could use EVT_TREE_ITEM_ACTIVATED instead (that's generated by a double-click).

Alternatively, you could Disconnect() wxEVT_COMMAND_TREE_SEL_CHANGED until things have settled down, then re-Connect() it again.

Regards,

David


Return to “C++ Development”

Who is online

Users browsing this forum: No registered users and 7 guests