2 * PROJECT: ReactOS Applications Manager
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: base/applications/rapps/listview.c
5 * PURPOSE: ListView functions
6 * PROGRAMMERS: Dmitry Chapyshev (dmitry@reactos.org)
12 BOOL bAscending
= TRUE
;
15 ListViewGetlParam(INT Index
)
22 ItemIndex
= (INT
) SendMessage(hListView
, LVM_GETNEXTITEM
, -1, LVNI_FOCUSED
);
31 ZeroMemory(&Item
, sizeof(LVITEM
));
33 Item
.mask
= LVIF_PARAM
;
34 Item
.iItem
= ItemIndex
;
35 if (!ListView_GetItem(hListView
, &Item
))
38 return (PVOID
)Item
.lParam
;
42 ListViewAddColumn(INT Index
, LPWSTR lpText
, INT Width
, INT Format
)
46 ZeroMemory(&Column
, sizeof(LV_COLUMN
));
48 Column
.mask
= LVCF_FMT
| LVCF_TEXT
| LVCF_WIDTH
| LVCF_SUBITEM
;
49 Column
.iSubItem
= Index
;
50 Column
.pszText
= (LPTSTR
)lpText
;
54 return (ListView_InsertColumn(hListView
, Index
, &Column
) == -1) ? FALSE
: TRUE
;
58 ListViewAddItem(INT ItemIndex
, INT IconIndex
, LPWSTR lpText
, LPARAM lParam
)
62 ZeroMemory(&Item
, sizeof(LV_ITEM
));
64 Item
.mask
= LVIF_TEXT
| LVIF_PARAM
| LVIF_STATE
| LVIF_IMAGE
;
65 Item
.pszText
= lpText
;
67 Item
.iItem
= ItemIndex
;
68 Item
.iImage
= IconIndex
;
70 return ListView_InsertItem(hListView
, &Item
);
75 ListViewCompareFunc(LPARAM lParam1
, LPARAM lParam2
, LPARAM lParamSort
)
77 WCHAR Item1
[MAX_STR_LEN
], Item2
[MAX_STR_LEN
];
81 IndexInfo
.flags
= LVFI_PARAM
;
83 IndexInfo
.lParam
= lParam1
;
84 Index
= ListView_FindItem(hListView
, -1, &IndexInfo
);
85 ListView_GetItemText(hListView
, Index
, (INT
)lParamSort
, Item1
, sizeof(Item1
) / sizeof(WCHAR
));
87 IndexInfo
.lParam
= lParam2
;
88 Index
= ListView_FindItem(hListView
, -1, &IndexInfo
);
89 ListView_GetItemText(hListView
, Index
, (INT
)lParamSort
, Item2
, sizeof(Item2
) / sizeof(WCHAR
));
92 return wcscmp(Item2
, Item1
);
94 return wcscmp(Item1
, Item2
);
100 CreateListView(HWND hwnd
)
102 hListView
= CreateWindowExW(WS_EX_CLIENTEDGE
,
105 WS_CHILD
| WS_VISIBLE
| LVS_SORTASCENDING
| LVS_REPORT
| LVS_SINGLESEL
| LVS_SHOWSELALWAYS
,
108 GetSubMenu(LoadMenuW(hInst
, MAKEINTRESOURCEW(IDR_APPLICATIONMENU
)), 0),
114 /* TODO: Show error message */
118 (VOID
) ListView_SetExtendedListViewStyle(hListView
, LVS_EX_FULLROWSELECT
);