// Global sizer
wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
- int ctrl_style = wxLC_REPORT;
+ int ctrl_style = wxLC_REPORT | wxLC_VRULES;
int col_style = wxLIST_FORMAT_LEFT;
// Creating the ListCtrl for the levels > 0 (not for Root level)
{
tree::Node* node;
};
+
//=====================================================================
-
- //=====================================================================
- ///
- void WxTreeView::UpdateLevel( int level )
+ std::vector<tree::Node*> WxTreeView::GetSelected(int level)
{
- GimmickDebugMessage(1,
- GetTreeHandler()->GetTree().GetLabel()
- <<" view : updating level "<<level
- <<std::endl);
int l = level - 1;
// the selection of upper level
std::vector<tree::Node*> sel;
}
}
}
+ return sel;
+ }
+
+ //=====================================================================
+
+ ///Removes selected nodes on given level
+ void WxTreeView::RemoveSelected( int level )
+ {
+ std::vector<tree::Node*> sel=GetSelected(level+1);
+
+ std::vector<tree::Node*>::iterator i;
+ for (i=sel.begin(); i!=sel.end(); ++i)
+ {
+ GimmickDebugMessage(2,
+ "deleting '"
+ <<(*i)->GetLabel()
+ <<"'"<<level
+ <<std::endl);
+ GetTreeHandler()->Remove(*i);
+ }
+ UpdateLevel(level);
+
+ }
+
+
+ //=====================================================================
+
+ //=====================================================================
+
+ ///
+ void WxTreeView::UpdateLevel( int level )
+ {
+ GimmickDebugMessage(1,
+ GetTreeHandler()->GetTree().GetLabel()
+ <<" view : updating level "<<level
+ <<std::endl);
+
+ wxBusyCursor busy;
+
+ std::vector<tree::Node*> sel=GetSelected(level);
+
+ int l = level - 1;
+
// to speed up inserting we hide the control temporarily
GetCtrl(l)->Hide();
GetCtrl(l)->DeleteAllItems();
<<" view : item selected "
<<std::endl);
-
wxListItem info;
info.m_itemId = event.m_itemIndex;
" Level "<<level+1
<<std::endl);
if (level<mLevelList.size()-1) UpdateLevel( level + 2 );
-
+
}
//================================================================