1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190
|
// Windows/Control/ListView.h
#ifndef __WINDOWS_CONTROL_LISTVIEW_H
#define __WINDOWS_CONTROL_LISTVIEW_H
#include "Windows/Window.h"
#include "Windows/Defs.h"
/*
#include <commctrl.h>
*/
#ifndef _WIN32
#define LVCF_FMT 0x0001
#define LVCF_WIDTH 0x0002
#define LVCF_TEXT 0x0004
#define LVCF_SUBITEM 0x0008
#define LVCF_IMAGE 0x0010
#define LVCF_ORDER 0x0020
#define LVCFMT_LEFT 0x0000
#define LVCFMT_RIGHT 0x0001
#define LVCFMT_CENTER 0x0002
#define LVCFMT_JUSTIFYMASK 0x0003
// state
#define LVIS_FOCUSED 0x0002 /* wxLIST_STATE_FOCUSED */
#define LVIS_SELECTED 0x0004 /* wxLIST_STATE_SELECTED */
#define LVNI_SELECTED 0x0004 /* wxLIST_STATE_SELECTED */
typedef INT (CALLBACK *PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
typedef struct tagLVCOLUMNW
{
UINT mask;
int fmt;
int cx;
LPWSTR pszText;
int cchTextMax;
int iSubItem;
// FIXME int iOrder; // not available
} LVCOLUMNW;
#define LVCOLUMN LVCOLUMNW
#define LV_COLUMNW LVCOLUMNW /* FIXME */
typedef struct tagLVITEMW
{
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iIndent;
#endif
#if (_WIN32_WINNT >= 0x501)
int iGroupId;
UINT cColumns; // tile view columns
PUINT puColumns;
#endif
} LVITEMW;
#define LVITEM LVITEMW
#define LVIF_TEXT 0x0001
// FIXME - mask
#define LVIF_PARAM 2
#define LVIF_IMAGE 4
#define LVIF_STATE 8
#endif
class wxListCtrl;
namespace NWindows {
namespace NControl {
class CListView // : public NWindows::CWindow
{
wxListCtrl *_list;
public:
CListView() : _list(0) {}
void Attach(wxWindow * newWindow);
operator HWND() const;
void SetUnicodeFormat() { /* FIXME */ ; }
int GetItemCount() const;
int InsertItem(int index, LPCTSTR text);
int InsertItem(const LVITEM* item);
void SetItem(const LVITEM* item);
int SetSubItem(int index, int subIndex, LPCTSTR text);
void SetUnicodeFormat(bool fUnicode) { return ; }
void InsertColumn(int columnIndex, LPCTSTR text, int width);
void InsertColumn(int columnIndex, const LVCOLUMNW *columnInfo);
void DeleteAllItems();
void SetRedraw(bool);
void SetItemCount(int );
void InvalidateRect(void *, bool);
int GetSelectedCount() const;
void /* bool */ EnsureVisible(int index, bool partialOK);
void SetItemState(int index, UINT state, UINT mask);
void SetItemState_FocusedSelected(int index) { SetItemState(index, LVIS_FOCUSED | LVIS_SELECTED, LVIS_FOCUSED | LVIS_SELECTED); }
void SetItemState_Selected(int index, bool select) { SetItemState(index, select ? LVIS_SELECTED : 0, LVIS_SELECTED); }
void SetItemState_Selected(int index) { SetItemState(index, LVIS_SELECTED, LVIS_SELECTED); }
UINT GetItemState(int index, UINT mask) const;
bool IsItemSelected(int index) const { return GetItemState(index, LVIS_SELECTED) == LVIS_SELECTED; }
void /* bool */ Update();
bool DeleteColumn(int columnIndex);
bool GetItemParam(int itemIndex, LPARAM ¶m) const;
int GetNextItem(int startIndex, UINT flags) const;
int GetFocusedItem() const;
void RedrawAllItems();
// FIXME added
int GetColumnCount();
void SetFocus();
void RedrawItem(int item);
bool SortItems(PFNLVCOMPARE compareFunction, LPARAM dataParam);
bool GetColumn(int columnIndex, LVCOLUMN* columnInfo);
// HWND EditLabel(int itemIndex)
void EditLabel(int itemIndex);
bool SetColumnWidthAuto(int iCol) {
return true; // FIXME SetColumnWidth(iCol, LVSCW_AUTOSIZE);
}
private:
void _InsertColumn(int columnIndex, LPCTSTR text, int format, int width);
};
class CListView2: public CListView
{
// FIXME WNDPROC _origWindowProc;
public:
// void SetWindowProc();
virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
};
/*
class CListView3: public CListView2
{
public:
virtual LRESULT OnMessage(UINT message, WPARAM wParam, LPARAM lParam);
};
*/
}}
#endif
|