- //Send an event telling wether the selection is valid or not
- wxCommandEvent event( 0, GetId() );
- event.SetEventObject( this );
- std::vector<tree::Node*> sel=GetSelected((mLevelList.size()+1));
- event.SetClientData(&sel);
- GetEventHandler()->ProcessEvent( event );
+ GimmickDebugMessage(7,
+ "WxTreeView::ValidateSelectedImages"
+ <<std::endl);
+ std::vector<tree::Node*> sel(GetSelected(mLevelList.size()+1));
+ GetGimmickView()->OnSelectionChange(sel);
+ /*
+ //Send an event telling wether the selection is valid or not
+ wxCommandEvent event( 0, GetId() );
+ event.SetEventObject( this );
+ std::vector<tree::Node*> sel=GetSelected((mLevelList.size()+1));
+ event.SetClientData(&sel);
+ GetEventHandler()->ProcessEvent( event );
+ */
+ //
+ }
+ //================================================================
+
+
+ //================================================================
+ void WxTreeView::GetNodes(std::vector<tree::Node*>& nodes, bool direction)
+ {
+ long item = mLastSelected;
+ int level=mLevelList.size()-1;
+ //Gets current item data
+ long adr = GetCtrl(level)->GetItemData(item);
+ //Extracts the node
+ tree::Node* nod = ((ItemData*)adr)->node;
+ for ( ;; )
+ {
+ if(direction)
+ {
+ item = GetCtrl(level)->GetNextItem(item,
+ wxLIST_NEXT_ABOVE);
+ }
+ else
+ {
+ item = GetCtrl(level)->GetNextItem(item,
+ wxLIST_NEXT_BELOW);
+ }
+ if ( item == -1 )
+ {
+ break;
+ }
+ if(GetCtrl(level)->GetItemState(item, wxLIST_STATE_SELECTED)==0)
+ {
+ adr = GetCtrl(level)->GetItemData(item);
+ nod = ((ItemData*)adr)->node;
+ nodes.push_back(nod);
+ }
+ }
+