Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenlistview.c
Go to the documentation of this file.
00001 /* 00002 * PROJECT: ReactOS Applications Manager 00003 * LICENSE: GPL - See COPYING in the top level directory 00004 * FILE: base/applications/rapps/listview.c 00005 * PURPOSE: ListView functions 00006 * PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org) 00007 */ 00008 00009 #include "rapps.h" 00010 00011 HWND hListView; 00012 BOOL bAscending = TRUE; 00013 00014 00015 PVOID 00016 ListViewGetlParam(INT Index) 00017 { 00018 INT ItemIndex; 00019 LVITEM Item; 00020 00021 if (Index == -1) 00022 { 00023 ItemIndex = (INT) SendMessage(hListView, LVM_GETNEXTITEM, -1, LVNI_FOCUSED); 00024 if (ItemIndex == -1) 00025 return NULL; 00026 } 00027 else 00028 { 00029 ItemIndex = Index; 00030 } 00031 00032 ZeroMemory(&Item, sizeof(LVITEM)); 00033 00034 Item.mask = LVIF_PARAM; 00035 Item.iItem = ItemIndex; 00036 if (!ListView_GetItem(hListView, &Item)) 00037 return NULL; 00038 00039 return (PVOID)Item.lParam; 00040 } 00041 00042 BOOL 00043 ListViewAddColumn(INT Index, LPWSTR lpText, INT Width, INT Format) 00044 { 00045 LV_COLUMN Column; 00046 00047 ZeroMemory(&Column, sizeof(LV_COLUMN)); 00048 00049 Column.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_SUBITEM; 00050 Column.iSubItem = Index; 00051 Column.pszText = (LPTSTR)lpText; 00052 Column.cx = Width; 00053 Column.fmt = Format; 00054 00055 return (ListView_InsertColumn(hListView, Index, &Column) == -1) ? FALSE : TRUE; 00056 } 00057 00058 INT 00059 ListViewAddItem(INT ItemIndex, INT IconIndex, LPWSTR lpText, LPARAM lParam) 00060 { 00061 LV_ITEMW Item; 00062 00063 ZeroMemory(&Item, sizeof(LV_ITEM)); 00064 00065 Item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE; 00066 Item.pszText = lpText; 00067 Item.lParam = lParam; 00068 Item.iItem = ItemIndex; 00069 Item.iImage = IconIndex; 00070 00071 return ListView_InsertItem(hListView, &Item); 00072 } 00073 00074 INT 00075 CALLBACK 00076 ListViewCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort) 00077 { 00078 WCHAR Item1[MAX_STR_LEN], Item2[MAX_STR_LEN]; 00079 LVFINDINFO IndexInfo; 00080 INT Index; 00081 00082 IndexInfo.flags = LVFI_PARAM; 00083 00084 IndexInfo.lParam = lParam1; 00085 Index = ListView_FindItem(hListView, -1, &IndexInfo); 00086 ListView_GetItemText(hListView, Index, (INT)lParamSort, Item1, sizeof(Item1) / sizeof(WCHAR)); 00087 00088 IndexInfo.lParam = lParam2; 00089 Index = ListView_FindItem(hListView, -1, &IndexInfo); 00090 ListView_GetItemText(hListView, Index, (INT)lParamSort, Item2, sizeof(Item2) / sizeof(WCHAR)); 00091 00092 if (bAscending) 00093 return wcscmp(Item2, Item1); 00094 else 00095 return wcscmp(Item1, Item2); 00096 00097 return 0; 00098 } 00099 00100 BOOL 00101 CreateListView(HWND hwnd) 00102 { 00103 hListView = CreateWindowExW(WS_EX_CLIENTEDGE, 00104 WC_LISTVIEWW, 00105 L"", 00106 WS_CHILD | WS_VISIBLE | LVS_SORTASCENDING | LVS_REPORT | LVS_SINGLESEL, 00107 205, 28, 465, 250, 00108 hwnd, 00109 NULL, 00110 hInst, 00111 NULL); 00112 00113 if (!hListView) 00114 { 00115 /* TODO: Show error message */ 00116 return FALSE; 00117 } 00118 00119 (VOID) ListView_SetExtendedListViewStyle(hListView, LVS_EX_FULLROWSELECT); 00120 00121 return TRUE; 00122 } Generated on Sun May 27 2012 04:16:59 for ReactOS by
1.7.6.1
|