#include "SinglePropSheetDlg.h"\r
#include "MessageBox.h"\r
\r
+void SetSortArrow(CListCtrl * control, int nColumn, bool bAscending)\r
+{\r
+ if (control == NULL)\r
+ return;\r
+ // set the sort arrow\r
+ CHeaderCtrl * pHeader = control->GetHeaderCtrl();\r
+ HDITEM HeaderItem = {0};\r
+ HeaderItem.mask = HDI_FORMAT;\r
+ for (int i=0; i<pHeader->GetItemCount(); ++i)\r
+ {\r
+ pHeader->GetItem(i, &HeaderItem);\r
+ HeaderItem.fmt &= ~(HDF_SORTDOWN | HDF_SORTUP);\r
+ pHeader->SetItem(i, &HeaderItem);\r
+ }\r
+ if (nColumn >= 0)\r
+ {\r
+ pHeader->GetItem(nColumn, &HeaderItem);\r
+ HeaderItem.fmt |= (bAscending ? HDF_SORTUP : HDF_SORTDOWN);\r
+ pHeader->SetItem(nColumn, &HeaderItem);\r
+ }\r
+}\r
+\r
// CBrowseRefsDlg dialog\r
\r
IMPLEMENT_DYNAMIC(CBrowseRefsDlg, CResizableStandAloneDialog)\r
void CBrowseRefsDlg::FillListCtrlForTreeNode(HTREEITEM treeNode)\r
{\r
m_ListRefLeafs.DeleteAllItems();\r
+ m_currSortCol = -1;\r
+ m_currSortDesc = false;\r
+ SetSortArrow(&m_ListRefLeafs,-1,false);\r
\r
CShadowTree* pTree=(CShadowTree*)(m_RefTreeCtrl.GetItemData(treeNode));\r
if(pTree==NULL)\r
\r
};\r
\r
+\r
void CBrowseRefsDlg::OnLvnColumnclickListRefLeafs(NMHDR *pNMHDR, LRESULT *pResult)\r
{\r
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);\r
\r
CRefLeafListCompareFunc compareFunc(&m_ListRefLeafs, m_currSortCol, m_currSortDesc);\r
m_ListRefLeafs.SortItemsEx(&CRefLeafListCompareFunc::StaticCompare, (DWORD_PTR)&compareFunc);\r
+\r
+ SetSortArrow(&m_ListRefLeafs,m_currSortCol,!m_currSortDesc);\r
}\r
+\r