- //Obtain the column name and the level that needs to be organized
-
- int l = level - 1;
- //Sets the data for the items to be sorted
- std::string att;
- unsigned int ty=0;
- int n = GetCtrl(level)->GetItemCount();
- for (int i = 0; i < n; i++)
- {
-
- //Gets current item data
- long adr = GetCtrl(level)->GetItemData(i);
-
- //Extracts the node and the type of attribute
- tree::Node* nod = ((ItemData*)adr)->node;
- if(i==0)
- {
- (*nod).GetAttributeDescriptor(mLevelList[level].key[mColumnSelected]).DecodeType(ty);
- }
- //Obtains the organizing attribute
- att=(*nod).GetAttribute(mLevelList[level].key[mColumnSelected]);
-
- char* d= new char [att.size()+1];
- strcpy (d, att.c_str());
-
- //Creates array
- long* lp= new long[2];
- lp[0]=adr;
- lp[1]=(long)d;
-
- //Sets it as the data
- GetCtrl(level)->SetItemData(i,(long)lp);
- }
-
- if(mDirection)
- {
- if(ty==1)
- {
- GetCtrl(level)->SortItems(CompareFunctionInts, 0);
- }
- else
- {
- GetCtrl(level)->SortItems(CompareFunctionStrings, 0);
- }
-
- }
- else
- {
- if(ty==1)
- {
- GetCtrl(level)->SortItems(CompareFunctionInts, 1);
- }
- else
- {
- GetCtrl(level)->SortItems(CompareFunctionStrings, 1);
- }
- }
+ GimmickDebugMessage(1,
+ "WxTreeView::SortLevel("
+ <<level<<")"
+ <<std::endl);
+ //Obtain the column name and the level that needs to be organized
+
+ // int l = level - 1;
+ //Sets the data for the items to be sorted
+ // std::string att;
+ unsigned int ty=0;
+ int nbselected = 0;
+ int n = GetCtrl(level)->GetItemCount();
+ for (int i = 0; i < n; i++)
+ {
+
+ //Gets current item data
+ ItemData* data = (ItemData*)GetCtrl(level)->GetItemData(i);
+
+ //Extracts the node and the type of attribute
+ tree::Node* nod = data->node;
+ if(i==0)
+ {
+ (*nod).GetAttributeDescriptor
+ (mLevelList[level].key[mLevelList[level].SortColumn])
+ .DecodeType( ty );
+ }
+ //Obtains the organizing attribute
+ data->attr = & (*nod).GetAttribute
+ (mLevelList[level].key[mLevelList[level].SortColumn]);
+ //Selected ?
+ data->selected = false;
+ if (GetCtrl(level)->GetItemState(i,wxLIST_STATE_SELECTED)>0)
+ {
+ data->selected = true;
+ nbselected++;
+ }