THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 29/10/2005 at 03:15, xxxxxxxx wrote:
Cinema 4D Version: 9.1
Language(s) : C++ ;
This might be a bit complicated
I have a TreeView gadget that is currently populated by 700 items.
Each of these items is in fact a BaseObject that I create in memory that I dont insert into the document.
I then use the BaseContainer of each of these virtual objects to store data regarding the treeview state.
One important part of these BaseContainers is that I have set a link to point to an object thats already in the document.
Then when the user clicks on a treeview item, I check the link in the basecontainer, make sure its valid, and use doc->SetActiveObject() to select the object.
I do this inside the TreeViewFunctions::Select Method.
now I have a problem, it works fine but if I click on a item OUTSIDE the treeview list (for example, if all the items are collapsed, and i click below the last item)
My treeview goes on a frenzy and calls Select for every 700 items in the treeview, thus creating a massive slow down as the plugin is busy processing all the items
I can't work out why the treeview executes the Select method so many times.
Its fine when the user actually click a valid item in the treeview, Select is called around 3 times which is fine.
On 29/10/2005 at 07:50, xxxxxxxx wrote:
I think I have worked out what is happening.
When you click an invalid item in the treeview, the treeview attempts to de-select everything, so it calls TreeViewFunction::Select() for every object while passing SELECTION_SUB as the mode parameter