1*f6dc9357SAndroid Build Coastguard Worker // PanelSelect.cpp
2*f6dc9357SAndroid Build Coastguard Worker
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker
5*f6dc9357SAndroid Build Coastguard Worker #include "resource.h"
6*f6dc9357SAndroid Build Coastguard Worker
7*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/StringConvert.h"
8*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/Wildcard.h"
9*f6dc9357SAndroid Build Coastguard Worker
10*f6dc9357SAndroid Build Coastguard Worker #include "ComboDialog.h"
11*f6dc9357SAndroid Build Coastguard Worker #include "LangUtils.h"
12*f6dc9357SAndroid Build Coastguard Worker #include "Panel.h"
13*f6dc9357SAndroid Build Coastguard Worker
OnShiftSelectMessage()14*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnShiftSelectMessage()
15*f6dc9357SAndroid Build Coastguard Worker {
16*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
17*f6dc9357SAndroid Build Coastguard Worker return;
18*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
19*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
20*f6dc9357SAndroid Build Coastguard Worker return;
21*f6dc9357SAndroid Build Coastguard Worker if (!_selectionIsDefined)
22*f6dc9357SAndroid Build Coastguard Worker return;
23*f6dc9357SAndroid Build Coastguard Worker int startItem = MyMin(focusedItem, _prevFocusedItem);
24*f6dc9357SAndroid Build Coastguard Worker int finishItem = MyMax(focusedItem, _prevFocusedItem);
25*f6dc9357SAndroid Build Coastguard Worker
26*f6dc9357SAndroid Build Coastguard Worker int numItems = _listView.GetItemCount();
27*f6dc9357SAndroid Build Coastguard Worker for (int i = 0; i < numItems; i++)
28*f6dc9357SAndroid Build Coastguard Worker {
29*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(i);
30*f6dc9357SAndroid Build Coastguard Worker if (realIndex == kParentIndex)
31*f6dc9357SAndroid Build Coastguard Worker continue;
32*f6dc9357SAndroid Build Coastguard Worker if (i >= startItem && i <= finishItem)
33*f6dc9357SAndroid Build Coastguard Worker if (_selectedStatusVector[realIndex] != _selectMark)
34*f6dc9357SAndroid Build Coastguard Worker {
35*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = _selectMark;
36*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(i);
37*f6dc9357SAndroid Build Coastguard Worker }
38*f6dc9357SAndroid Build Coastguard Worker }
39*f6dc9357SAndroid Build Coastguard Worker
40*f6dc9357SAndroid Build Coastguard Worker _prevFocusedItem = focusedItem;
41*f6dc9357SAndroid Build Coastguard Worker }
42*f6dc9357SAndroid Build Coastguard Worker
OnArrowWithShift()43*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnArrowWithShift()
44*f6dc9357SAndroid Build Coastguard Worker {
45*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
46*f6dc9357SAndroid Build Coastguard Worker return;
47*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
48*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
49*f6dc9357SAndroid Build Coastguard Worker return;
50*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(focusedItem);
51*f6dc9357SAndroid Build Coastguard Worker
52*f6dc9357SAndroid Build Coastguard Worker if (_selectionIsDefined)
53*f6dc9357SAndroid Build Coastguard Worker {
54*f6dc9357SAndroid Build Coastguard Worker if (realIndex != kParentIndex)
55*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = _selectMark;
56*f6dc9357SAndroid Build Coastguard Worker }
57*f6dc9357SAndroid Build Coastguard Worker else
58*f6dc9357SAndroid Build Coastguard Worker {
59*f6dc9357SAndroid Build Coastguard Worker if (realIndex == kParentIndex)
60*f6dc9357SAndroid Build Coastguard Worker {
61*f6dc9357SAndroid Build Coastguard Worker _selectionIsDefined = true;
62*f6dc9357SAndroid Build Coastguard Worker _selectMark = true;
63*f6dc9357SAndroid Build Coastguard Worker }
64*f6dc9357SAndroid Build Coastguard Worker else
65*f6dc9357SAndroid Build Coastguard Worker {
66*f6dc9357SAndroid Build Coastguard Worker _selectionIsDefined = true;
67*f6dc9357SAndroid Build Coastguard Worker _selectMark = !_selectedStatusVector[realIndex];
68*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = _selectMark;
69*f6dc9357SAndroid Build Coastguard Worker }
70*f6dc9357SAndroid Build Coastguard Worker }
71*f6dc9357SAndroid Build Coastguard Worker
72*f6dc9357SAndroid Build Coastguard Worker _prevFocusedItem = focusedItem;
73*f6dc9357SAndroid Build Coastguard Worker PostMsg(kShiftSelectMessage);
74*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(focusedItem);
75*f6dc9357SAndroid Build Coastguard Worker }
76*f6dc9357SAndroid Build Coastguard Worker
OnInsert()77*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnInsert()
78*f6dc9357SAndroid Build Coastguard Worker {
79*f6dc9357SAndroid Build Coastguard Worker /*
80*f6dc9357SAndroid Build Coastguard Worker const int kState = CDIS_MARKED; // LVIS_DROPHILITED;
81*f6dc9357SAndroid Build Coastguard Worker UINT state = (_listView.GetItemState(focusedItem, LVIS_CUT) == 0) ?
82*f6dc9357SAndroid Build Coastguard Worker LVIS_CUT : 0;
83*f6dc9357SAndroid Build Coastguard Worker _listView.SetItemState(focusedItem, state, LVIS_CUT);
84*f6dc9357SAndroid Build Coastguard Worker // _listView.SetItemState_Selected(focusedItem);
85*f6dc9357SAndroid Build Coastguard Worker */
86*f6dc9357SAndroid Build Coastguard Worker
87*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
88*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
89*f6dc9357SAndroid Build Coastguard Worker return;
90*f6dc9357SAndroid Build Coastguard Worker
91*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(focusedItem);
92*f6dc9357SAndroid Build Coastguard Worker if (realIndex != kParentIndex)
93*f6dc9357SAndroid Build Coastguard Worker {
94*f6dc9357SAndroid Build Coastguard Worker bool isSelected = !_selectedStatusVector[realIndex];
95*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = isSelected;
96*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
97*f6dc9357SAndroid Build Coastguard Worker _listView.SetItemState_Selected(focusedItem, isSelected);
98*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(focusedItem);
99*f6dc9357SAndroid Build Coastguard Worker }
100*f6dc9357SAndroid Build Coastguard Worker
101*f6dc9357SAndroid Build Coastguard Worker int nextIndex = focusedItem + 1;
102*f6dc9357SAndroid Build Coastguard Worker if (nextIndex < _listView.GetItemCount())
103*f6dc9357SAndroid Build Coastguard Worker {
104*f6dc9357SAndroid Build Coastguard Worker _listView.SetItemState_FocusedSelected(nextIndex);
105*f6dc9357SAndroid Build Coastguard Worker _listView.EnsureVisible(nextIndex, false);
106*f6dc9357SAndroid Build Coastguard Worker }
107*f6dc9357SAndroid Build Coastguard Worker }
108*f6dc9357SAndroid Build Coastguard Worker
109*f6dc9357SAndroid Build Coastguard Worker /*
110*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnUpWithShift()
111*f6dc9357SAndroid Build Coastguard Worker {
112*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
113*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
114*f6dc9357SAndroid Build Coastguard Worker return;
115*f6dc9357SAndroid Build Coastguard Worker const int index = GetRealItemIndex(focusedItem);
116*f6dc9357SAndroid Build Coastguard Worker if (index == kParentIndex)
117*f6dc9357SAndroid Build Coastguard Worker return;
118*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[index] = !_selectedStatusVector[index];
119*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(index);
120*f6dc9357SAndroid Build Coastguard Worker }
121*f6dc9357SAndroid Build Coastguard Worker
122*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnDownWithShift()
123*f6dc9357SAndroid Build Coastguard Worker {
124*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
125*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
126*f6dc9357SAndroid Build Coastguard Worker return;
127*f6dc9357SAndroid Build Coastguard Worker const int index = GetRealItemIndex(focusedItem);
128*f6dc9357SAndroid Build Coastguard Worker if (index == kParentIndex)
129*f6dc9357SAndroid Build Coastguard Worker return;
130*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[index] = !_selectedStatusVector[index];
131*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(index);
132*f6dc9357SAndroid Build Coastguard Worker }
133*f6dc9357SAndroid Build Coastguard Worker */
134*f6dc9357SAndroid Build Coastguard Worker
UpdateSelection()135*f6dc9357SAndroid Build Coastguard Worker void CPanel::UpdateSelection()
136*f6dc9357SAndroid Build Coastguard Worker {
137*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
138*f6dc9357SAndroid Build Coastguard Worker {
139*f6dc9357SAndroid Build Coastguard Worker bool enableTemp = _enableItemChangeNotify;
140*f6dc9357SAndroid Build Coastguard Worker _enableItemChangeNotify = false;
141*f6dc9357SAndroid Build Coastguard Worker int numItems = _listView.GetItemCount();
142*f6dc9357SAndroid Build Coastguard Worker for (int i = 0; i < numItems; i++)
143*f6dc9357SAndroid Build Coastguard Worker {
144*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(i);
145*f6dc9357SAndroid Build Coastguard Worker if (realIndex != kParentIndex)
146*f6dc9357SAndroid Build Coastguard Worker _listView.SetItemState_Selected(i, _selectedStatusVector[realIndex]);
147*f6dc9357SAndroid Build Coastguard Worker }
148*f6dc9357SAndroid Build Coastguard Worker _enableItemChangeNotify = enableTemp;
149*f6dc9357SAndroid Build Coastguard Worker }
150*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawAllItems();
151*f6dc9357SAndroid Build Coastguard Worker }
152*f6dc9357SAndroid Build Coastguard Worker
153*f6dc9357SAndroid Build Coastguard Worker
SelectSpec(bool selectMode)154*f6dc9357SAndroid Build Coastguard Worker void CPanel::SelectSpec(bool selectMode)
155*f6dc9357SAndroid Build Coastguard Worker {
156*f6dc9357SAndroid Build Coastguard Worker CComboDialog dlg;
157*f6dc9357SAndroid Build Coastguard Worker LangString(selectMode ? IDS_SELECT : IDS_DESELECT, dlg.Title );
158*f6dc9357SAndroid Build Coastguard Worker LangString(IDS_SELECT_MASK, dlg.Static);
159*f6dc9357SAndroid Build Coastguard Worker dlg.Value = '*';
160*f6dc9357SAndroid Build Coastguard Worker if (dlg.Create(GetParent()) != IDOK)
161*f6dc9357SAndroid Build Coastguard Worker return;
162*f6dc9357SAndroid Build Coastguard Worker const UString &mask = dlg.Value;
163*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
164*f6dc9357SAndroid Build Coastguard Worker if (DoesWildcardMatchName(mask, GetItemName(i)))
165*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = selectMode;
166*f6dc9357SAndroid Build Coastguard Worker UpdateSelection();
167*f6dc9357SAndroid Build Coastguard Worker }
168*f6dc9357SAndroid Build Coastguard Worker
SelectByType(bool selectMode)169*f6dc9357SAndroid Build Coastguard Worker void CPanel::SelectByType(bool selectMode)
170*f6dc9357SAndroid Build Coastguard Worker {
171*f6dc9357SAndroid Build Coastguard Worker const int focusedItem = _listView.GetFocusedItem();
172*f6dc9357SAndroid Build Coastguard Worker if (focusedItem < 0)
173*f6dc9357SAndroid Build Coastguard Worker return;
174*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(focusedItem);
175*f6dc9357SAndroid Build Coastguard Worker UString name = GetItemName(realIndex);
176*f6dc9357SAndroid Build Coastguard Worker bool isItemFolder = IsItem_Folder(realIndex);
177*f6dc9357SAndroid Build Coastguard Worker
178*f6dc9357SAndroid Build Coastguard Worker if (isItemFolder)
179*f6dc9357SAndroid Build Coastguard Worker {
180*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
181*f6dc9357SAndroid Build Coastguard Worker if (IsItem_Folder(i) == isItemFolder)
182*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = selectMode;
183*f6dc9357SAndroid Build Coastguard Worker }
184*f6dc9357SAndroid Build Coastguard Worker else
185*f6dc9357SAndroid Build Coastguard Worker {
186*f6dc9357SAndroid Build Coastguard Worker int pos = name.ReverseFind_Dot();
187*f6dc9357SAndroid Build Coastguard Worker if (pos < 0)
188*f6dc9357SAndroid Build Coastguard Worker {
189*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
190*f6dc9357SAndroid Build Coastguard Worker if (IsItem_Folder(i) == isItemFolder && GetItemName(i).ReverseFind_Dot() < 0)
191*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = selectMode;
192*f6dc9357SAndroid Build Coastguard Worker }
193*f6dc9357SAndroid Build Coastguard Worker else
194*f6dc9357SAndroid Build Coastguard Worker {
195*f6dc9357SAndroid Build Coastguard Worker UString mask ('*');
196*f6dc9357SAndroid Build Coastguard Worker mask += name.Ptr((unsigned)pos);
197*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
198*f6dc9357SAndroid Build Coastguard Worker if (IsItem_Folder(i) == isItemFolder && DoesWildcardMatchName(mask, GetItemName(i)))
199*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = selectMode;
200*f6dc9357SAndroid Build Coastguard Worker }
201*f6dc9357SAndroid Build Coastguard Worker }
202*f6dc9357SAndroid Build Coastguard Worker
203*f6dc9357SAndroid Build Coastguard Worker UpdateSelection();
204*f6dc9357SAndroid Build Coastguard Worker }
205*f6dc9357SAndroid Build Coastguard Worker
SelectAll(bool selectMode)206*f6dc9357SAndroid Build Coastguard Worker void CPanel::SelectAll(bool selectMode)
207*f6dc9357SAndroid Build Coastguard Worker {
208*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
209*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = selectMode;
210*f6dc9357SAndroid Build Coastguard Worker UpdateSelection();
211*f6dc9357SAndroid Build Coastguard Worker }
212*f6dc9357SAndroid Build Coastguard Worker
InvertSelection()213*f6dc9357SAndroid Build Coastguard Worker void CPanel::InvertSelection()
214*f6dc9357SAndroid Build Coastguard Worker {
215*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
216*f6dc9357SAndroid Build Coastguard Worker {
217*f6dc9357SAndroid Build Coastguard Worker /*
218*f6dc9357SAndroid Build Coastguard Worker unsigned numSelected = 0;
219*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
220*f6dc9357SAndroid Build Coastguard Worker if (_selectedStatusVector[i])
221*f6dc9357SAndroid Build Coastguard Worker numSelected++;
222*f6dc9357SAndroid Build Coastguard Worker */
223*f6dc9357SAndroid Build Coastguard Worker // 17.02: fixed : now we invert item even, if single item is selected
224*f6dc9357SAndroid Build Coastguard Worker /*
225*f6dc9357SAndroid Build Coastguard Worker if (numSelected == 1)
226*f6dc9357SAndroid Build Coastguard Worker {
227*f6dc9357SAndroid Build Coastguard Worker int focused = _listView.GetFocusedItem();
228*f6dc9357SAndroid Build Coastguard Worker if (focused >= 0)
229*f6dc9357SAndroid Build Coastguard Worker {
230*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(focused);
231*f6dc9357SAndroid Build Coastguard Worker if (realIndex >= 0)
232*f6dc9357SAndroid Build Coastguard Worker if (_selectedStatusVector[realIndex])
233*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = false;
234*f6dc9357SAndroid Build Coastguard Worker }
235*f6dc9357SAndroid Build Coastguard Worker }
236*f6dc9357SAndroid Build Coastguard Worker */
237*f6dc9357SAndroid Build Coastguard Worker }
238*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, _selectedStatusVector)
239*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[i] = !_selectedStatusVector[i];
240*f6dc9357SAndroid Build Coastguard Worker UpdateSelection();
241*f6dc9357SAndroid Build Coastguard Worker }
242*f6dc9357SAndroid Build Coastguard Worker
KillSelection()243*f6dc9357SAndroid Build Coastguard Worker void CPanel::KillSelection()
244*f6dc9357SAndroid Build Coastguard Worker {
245*f6dc9357SAndroid Build Coastguard Worker SelectAll(false);
246*f6dc9357SAndroid Build Coastguard Worker // ver 20.01: now we don't like that focused will be selected item.
247*f6dc9357SAndroid Build Coastguard Worker // So the following code was disabled:
248*f6dc9357SAndroid Build Coastguard Worker /*
249*f6dc9357SAndroid Build Coastguard Worker if (!_mySelectMode)
250*f6dc9357SAndroid Build Coastguard Worker {
251*f6dc9357SAndroid Build Coastguard Worker int focused = _listView.GetFocusedItem();
252*f6dc9357SAndroid Build Coastguard Worker if (focused >= 0)
253*f6dc9357SAndroid Build Coastguard Worker {
254*f6dc9357SAndroid Build Coastguard Worker // CPanel::OnItemChanged notify for LVIS_SELECTED change doesn't work here. Why?
255*f6dc9357SAndroid Build Coastguard Worker // so we change _selectedStatusVector[realIndex] here.
256*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(focused);
257*f6dc9357SAndroid Build Coastguard Worker if (realIndex != kParentIndex)
258*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = true;
259*f6dc9357SAndroid Build Coastguard Worker _listView.SetItemState_Selected(focused);
260*f6dc9357SAndroid Build Coastguard Worker }
261*f6dc9357SAndroid Build Coastguard Worker }
262*f6dc9357SAndroid Build Coastguard Worker */
263*f6dc9357SAndroid Build Coastguard Worker }
264*f6dc9357SAndroid Build Coastguard Worker
OnLeftClick(MY_NMLISTVIEW_NMITEMACTIVATE * itemActivate)265*f6dc9357SAndroid Build Coastguard Worker void CPanel::OnLeftClick(MY_NMLISTVIEW_NMITEMACTIVATE *itemActivate)
266*f6dc9357SAndroid Build Coastguard Worker {
267*f6dc9357SAndroid Build Coastguard Worker if (itemActivate->hdr.hwndFrom != HWND(_listView))
268*f6dc9357SAndroid Build Coastguard Worker return;
269*f6dc9357SAndroid Build Coastguard Worker // It will work only for Version 4.71 (IE 4);
270*f6dc9357SAndroid Build Coastguard Worker int indexInList = itemActivate->iItem;
271*f6dc9357SAndroid Build Coastguard Worker if (indexInList < 0)
272*f6dc9357SAndroid Build Coastguard Worker return;
273*f6dc9357SAndroid Build Coastguard Worker
274*f6dc9357SAndroid Build Coastguard Worker #ifndef UNDER_CE
275*f6dc9357SAndroid Build Coastguard Worker if ((itemActivate->uKeyFlags & LVKF_SHIFT) != 0)
276*f6dc9357SAndroid Build Coastguard Worker {
277*f6dc9357SAndroid Build Coastguard Worker // int focusedIndex = _listView.GetFocusedItem();
278*f6dc9357SAndroid Build Coastguard Worker const int focusedIndex = _startGroupSelect;
279*f6dc9357SAndroid Build Coastguard Worker if (focusedIndex < 0)
280*f6dc9357SAndroid Build Coastguard Worker return;
281*f6dc9357SAndroid Build Coastguard Worker const int startItem = MyMin(focusedIndex, indexInList);
282*f6dc9357SAndroid Build Coastguard Worker const int finishItem = MyMax(focusedIndex, indexInList);
283*f6dc9357SAndroid Build Coastguard Worker
284*f6dc9357SAndroid Build Coastguard Worker const int numItems = _listView.GetItemCount();
285*f6dc9357SAndroid Build Coastguard Worker for (int i = 0; i < numItems; i++)
286*f6dc9357SAndroid Build Coastguard Worker {
287*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(i);
288*f6dc9357SAndroid Build Coastguard Worker if (realIndex == kParentIndex)
289*f6dc9357SAndroid Build Coastguard Worker continue;
290*f6dc9357SAndroid Build Coastguard Worker const bool selected = (i >= startItem && i <= finishItem);
291*f6dc9357SAndroid Build Coastguard Worker if (_selectedStatusVector[realIndex] != selected)
292*f6dc9357SAndroid Build Coastguard Worker {
293*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = selected;
294*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(i);
295*f6dc9357SAndroid Build Coastguard Worker }
296*f6dc9357SAndroid Build Coastguard Worker }
297*f6dc9357SAndroid Build Coastguard Worker }
298*f6dc9357SAndroid Build Coastguard Worker else
299*f6dc9357SAndroid Build Coastguard Worker #endif
300*f6dc9357SAndroid Build Coastguard Worker {
301*f6dc9357SAndroid Build Coastguard Worker _startGroupSelect = indexInList;
302*f6dc9357SAndroid Build Coastguard Worker
303*f6dc9357SAndroid Build Coastguard Worker #ifndef UNDER_CE
304*f6dc9357SAndroid Build Coastguard Worker if ((itemActivate->uKeyFlags & LVKF_CONTROL) != 0)
305*f6dc9357SAndroid Build Coastguard Worker {
306*f6dc9357SAndroid Build Coastguard Worker const unsigned realIndex = GetRealItemIndex(indexInList);
307*f6dc9357SAndroid Build Coastguard Worker if (realIndex != kParentIndex)
308*f6dc9357SAndroid Build Coastguard Worker {
309*f6dc9357SAndroid Build Coastguard Worker _selectedStatusVector[realIndex] = !_selectedStatusVector[realIndex];
310*f6dc9357SAndroid Build Coastguard Worker _listView.RedrawItem(indexInList);
311*f6dc9357SAndroid Build Coastguard Worker }
312*f6dc9357SAndroid Build Coastguard Worker }
313*f6dc9357SAndroid Build Coastguard Worker #endif
314*f6dc9357SAndroid Build Coastguard Worker }
315*f6dc9357SAndroid Build Coastguard Worker
316*f6dc9357SAndroid Build Coastguard Worker return;
317*f6dc9357SAndroid Build Coastguard Worker }
318