ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

listview.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.