1
/////////////////////////////////////////////////////////////////////////////
3
// Purpose: wxListCtrl sample
4
// Author: Julian Smart
7
// RCS-ID: $Id: listtest.h 70359 2012-01-15 18:50:35Z VZ $
8
// Copyright: (c) Julian Smart
9
// Licence: wxWindows licence
10
/////////////////////////////////////////////////////////////////////////////
12
// not all ports have support for EVT_CONTEXT_MENU yet, don't define
13
// USE_CONTEXT_MENU for those which don't
14
#if defined(__WXMOTIF__) || defined(__WXPM__) || defined(__WXX11__)
15
#define USE_CONTEXT_MENU 0
17
#define USE_CONTEXT_MENU 1
20
// Define a new application type
21
class MyApp: public wxApp
26
virtual bool OnInit();
29
wxDECLARE_NO_COPY_CLASS(MyApp);
32
class MyListCtrl: public wxListCtrl
35
MyListCtrl(wxWindow *parent,
40
: wxListCtrl(parent, id, pos, size, style),
41
m_attr(*wxBLUE, *wxLIGHT_GREY, wxNullFont)
50
// add one item to the listctrl in report mode
51
void InsertItemInReportView(int i);
53
void OnColClick(wxListEvent& event);
54
void OnColRightClick(wxListEvent& event);
55
void OnColBeginDrag(wxListEvent& event);
56
void OnColDragging(wxListEvent& event);
57
void OnColEndDrag(wxListEvent& event);
58
void OnBeginDrag(wxListEvent& event);
59
void OnBeginRDrag(wxListEvent& event);
60
void OnBeginLabelEdit(wxListEvent& event);
61
void OnEndLabelEdit(wxListEvent& event);
62
void OnDeleteItem(wxListEvent& event);
63
void OnDeleteAllItems(wxListEvent& event);
64
void OnSelected(wxListEvent& event);
65
void OnDeselected(wxListEvent& event);
66
void OnListKeyDown(wxListEvent& event);
67
void OnActivated(wxListEvent& event);
68
void OnFocused(wxListEvent& event);
69
void OnCacheHint(wxListEvent& event);
71
void OnChar(wxKeyEvent& event);
74
void OnContextMenu(wxContextMenuEvent& event);
77
void OnRightClick(wxMouseEvent& event);
80
void ShowContextMenu(const wxPoint& pos);
82
void SetColumnImage(int col, int image);
84
void LogEvent(const wxListEvent& event, const wxChar *eventName);
85
void LogColEvent(const wxListEvent& event, const wxChar *eventName);
87
virtual wxString OnGetItemText(long item, long column) const;
88
virtual int OnGetItemColumnImage(long item, long column) const;
89
virtual wxListItemAttr *OnGetItemAttr(long item) const;
91
wxListItemAttr m_attr;
96
wxDECLARE_NO_COPY_CLASS(MyListCtrl);
100
// Define a new frame type
101
class MyFrame: public wxFrame
104
MyFrame(const wxChar *title);
110
void OnSize(wxSizeEvent& event);
112
void OnQuit(wxCommandEvent& event);
113
void OnAbout(wxCommandEvent& event);
114
void OnListView(wxCommandEvent& event);
115
void OnReportView(wxCommandEvent& event);
116
void OnIconView(wxCommandEvent& event);
117
void OnIconTextView(wxCommandEvent& event);
118
void OnSmallIconView(wxCommandEvent& event);
119
void OnSmallIconTextView(wxCommandEvent& event);
120
void OnVirtualView(wxCommandEvent& event);
121
void OnSmallVirtualView(wxCommandEvent& event);
123
void OnSetItemsCount(wxCommandEvent& event);
126
void OnGoTo(wxCommandEvent& event);
127
void OnFocusLast(wxCommandEvent& event);
128
void OnToggleFirstSel(wxCommandEvent& event);
129
void OnDeselectAll(wxCommandEvent& event);
130
void OnSelectAll(wxCommandEvent& event);
131
void OnAdd(wxCommandEvent& event);
132
void OnEdit(wxCommandEvent& event);
133
void OnDelete(wxCommandEvent& event);
134
void OnDeleteAll(wxCommandEvent& event);
135
void OnSort(wxCommandEvent& event);
136
void OnSetFgColour(wxCommandEvent& event);
137
void OnSetBgColour(wxCommandEvent& event);
138
void OnToggleMultiSel(wxCommandEvent& event);
139
void OnShowColInfo(wxCommandEvent& event);
140
void OnShowSelInfo(wxCommandEvent& event);
141
void OnShowViewRect(wxCommandEvent& event);
142
#ifdef wxHAS_LISTCTRL_COLUMN_ORDER
143
void OnSetColOrder(wxCommandEvent& event);
144
void OnGetColOrder(wxCommandEvent& event);
145
#endif // wxHAS_LISTCTRL_COLUMN_ORDER
146
void OnFreeze(wxCommandEvent& event);
147
void OnThaw(wxCommandEvent& event);
148
void OnToggleLines(wxCommandEvent& event);
149
void OnToggleHeader(wxCommandEvent& event);
151
void OnToggleMacUseGeneric(wxCommandEvent& event);
153
void OnFind(wxCommandEvent& event);
155
void OnUpdateUIEnableInReport(wxUpdateUIEvent& event);
156
void OnUpdateToggleMultiSel(wxUpdateUIEvent& event);
157
void OnUpdateToggleHeader(wxUpdateUIEvent& event);
159
wxImageList *m_imageListNormal;
160
wxImageList *m_imageListSmall;
163
MyListCtrl *m_listCtrl;
164
wxTextCtrl *m_logWindow;
167
// recreate the list control with the new flags
168
void RecreateList(long flags, bool withText = true);
170
// fill the control with items depending on the view
171
void InitWithListItems();
172
void InitWithReportItems();
173
void InitWithIconItems(bool withText, bool sameIcon = false);
174
void InitWithVirtualItems();
176
// return true if the control is not in virtual view, give an error message
177
// and return false if it is
178
bool CheckNonVirtual() const;
185
// number of items to initialize list/report view with
189
wxDECLARE_NO_COPY_CLASS(MyFrame);
190
DECLARE_EVENT_TABLE()
194
// IDs for the menu commands
197
LIST_ABOUT = wxID_ABOUT,
198
LIST_QUIT = wxID_EXIT,
200
LIST_LIST_VIEW = wxID_HIGHEST,
203
LIST_SMALL_ICON_VIEW,
204
LIST_SMALL_ICON_TEXT_VIEW,
207
LIST_SMALL_VIRTUAL_VIEW,
208
LIST_SET_ITEMS_COUNT,
220
LIST_TOGGLE_MULTI_SEL,
226
#ifdef wxHAS_LISTCTRL_COLUMN_ORDER
229
#endif // wxHAS_LISTCTRL_COLUMN_ORDER
236
LIST_MAC_USE_GENERIC,