ReactOS 0.4.17-dev-1183-g3b30a2a
CAddDialog Class Reference

#include <CAddDialog.h>

Inheritance diagram for CAddDialog:
Collaboration diagram for CAddDialog:

Public Types

enum  { IDD = IDD_DIALOG_ADD }
 

Public Member Functions

 CAddDialog (CMainWnd *MainWnd, CConsoleWnd *console)
 
 ~CAddDialog ()
 
void InitLV (CListView &listView)
 
void InsertListItem (CListView &listView, CSnapinCacheEntry *CacheEntry)
 
void InitTV (CTreeView &treeView)
 
HTREEITEM InsertTreeItem (CTreeView &treeView, CSnapinAlias *Alias, HTREEITEM hParent=NULL, HTREEITEM hInsertAfter=TVI_LAST)
 
VOID InitCB (CWindow &comboBox)
 
VOID AppendComboBoxItem (CWindow &comboBox, CSnapinAlias *Alias, int iIndent)
 
VOID InsertSnapinAliasesRecursive (CSnapinAlias *ParentAlias, INT Indent)
 
LRESULT OnInitDialog (UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnCommand (WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
 
LRESULT OnItemChanged (INT uCode, LPNMHDR hdr, BOOL &bHandled)
 
LRESULT OnSelectionChanged (INT uCode, LPNMHDR hdr, BOOL &bHandled)
 
LRESULT OnItemDblClicked (INT uCode, LPNMHDR hdr, BOOL &bHandled)
 
void UpdateButtons ()
 
BOOL GetAdvanced ()
 
VOID SetAdvanced (BOOL Advanced)
 

Private Member Functions

void CreateSnapinAliases (CSnapinAlias *ParentAlias, CSnapin *ParentSnapin)
 
void ReconnectSnapins (CSnapinAlias *ParentAlias, CSnapin *ParentSnapin)
 
void DeleteSnapinAliasesRecursive (CSnapinAlias *ParentAlias, BOOL RemoveDeletedSnapins)
 
void DeleteSnapinAliases (BOOL RemoveDeletedSnapins)
 

Private Attributes

CListView m_Available
 
CTreeView m_Selected
 
CWindow m_BtnAdd
 
CWindow m_BtnRemove
 
CWindow m_BtnUp
 
CWindow m_BtnDown
 
CWindow m_Description
 
CWindow m_SelectedText
 
CWindow m_ParentText
 
CWindow m_ParentList
 
BOOL m_Advanced
 
CMainWnd * m_MainWnd
 
CComPtr< CConsoleWnd > m_Console
 
CSnapin * m_RootSnapin
 
CSnapinAlias * m_RootAlias
 
CSnapinAlias * m_ParentAlias
 

Detailed Description

Definition at line 11 of file CAddDialog.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
IDD 

Definition at line 15 of file CAddDialog.h.

#define IDD_DIALOG_ADD
Definition: resource.h:72

Constructor & Destructor Documentation

◆ CAddDialog()

CAddDialog::CAddDialog ( CMainWnd *  MainWnd,
CConsoleWnd *  console 
)

Definition at line 11 of file CAddDialog.cpp.

12{
13 m_MainWnd = MainWnd;
16}
CConsole Console
CMainWnd * m_MainWnd
Definition: CAddDialog.h:48
CComPtr< CConsoleWnd > m_Console
Definition: CAddDialog.h:49
BOOL m_Advanced
Definition: CAddDialog.h:46
#define FALSE
Definition: types.h:117

◆ ~CAddDialog()

CAddDialog::~CAddDialog ( )

Definition at line 18 of file CAddDialog.cpp.

19{
20}

Member Function Documentation

◆ AppendComboBoxItem()

VOID CAddDialog::AppendComboBoxItem ( CWindow &  comboBox,
CSnapinAlias *  Alias,
int  iIndent 
)

Definition at line 82 of file CAddDialog.cpp.

83{
85
87
89 Item.iItem = -1;
90 Item.pszText = (LPWSTR)Alias->Snapin()->DisplayName().GetString();
91 Item.cchTextMax = -1;
92 Item.iImage = Alias->Snapin()->CacheEntry()->NormalImageIndex();
93 Item.iSelectedImage = Alias->Snapin()->CacheEntry()->NormalImageIndex();
94 Item.iIndent = iIndent;
95 Item.lParam = (LPARAM)Alias;
96
97 comboBox.SendMessage(CBEM_INSERTITEM, 0, (LPARAM)&Item);
98}
LRESULT SendMessage(UINT message, WPARAM wParam=0, LPARAM lParam=0)
Definition: atlwin.h:1116
#define ZeroMemory
Definition: minwinbase.h:31
LONG_PTR LPARAM
Definition: minwindef.h:175
#define CBEIF_IMAGE
Definition: commctrl.h:3792
#define CBEIF_SELECTEDIMAGE
Definition: commctrl.h:3793
#define CBEIF_TEXT
Definition: commctrl.h:3791
#define CBEM_INSERTITEM
Definition: commctrl.h:3850
#define CBEIF_INDENT
Definition: commctrl.h:3795
#define CBEIF_LPARAM
Definition: commctrl.h:3796
uint16_t * LPWSTR
Definition: typedefs.h:56
_In_ WDFCOLLECTION _In_ WDFOBJECT Item

Referenced by InsertSnapinAliasesRecursive(), and OnInitDialog().

◆ CreateSnapinAliases()

void CAddDialog::CreateSnapinAliases ( CSnapinAlias *  ParentAlias,
CSnapin *  ParentSnapin 
)
private

Definition at line 426 of file CAddDialog.cpp.

427{
428 POSITION pos = ParentSnapin->m_SubNodes.GetHeadPosition();
429 while (pos)
430 {
431 CSnapin *Snapin = (CSnapin*)ParentSnapin->m_SubNodes.GetNext(pos);
432 if (Snapin)
433 {
434 CSnapinAlias *Alias = new CSnapinAlias(ParentAlias, Snapin);
435 ParentAlias->m_SubNodes.AddTail(Alias);
436 CreateSnapinAliases(Alias, Snapin);
437 }
438 }
439}
void CreateSnapinAliases(CSnapinAlias *ParentAlias, CSnapin *ParentSnapin)
Definition: CAddDialog.cpp:426
CAtlList< CSnapinAlias * > m_SubNodes
Definition: CSnapinAlias.h:18
CAtlList< CSnapin * > m_SubNodes
Definition: CSnapin.h:46

Referenced by CreateSnapinAliases(), and OnInitDialog().

◆ DeleteSnapinAliases()

void CAddDialog::DeleteSnapinAliases ( BOOL  RemoveDeletedSnapins)
private

Definition at line 480 of file CAddDialog.cpp.

481{
482 if (m_RootAlias)
483 {
484 DeleteSnapinAliasesRecursive(m_RootAlias, RemoveDeletedSnapins);
485 m_RootAlias->m_SubNodes.RemoveAll();
486 delete m_RootAlias;
488 }
489}
void DeleteSnapinAliasesRecursive(CSnapinAlias *ParentAlias, BOOL RemoveDeletedSnapins)
Definition: CAddDialog.cpp:462
CSnapinAlias * m_RootAlias
Definition: CAddDialog.h:52
#define NULL
Definition: types.h:112

Referenced by OnCommand().

◆ DeleteSnapinAliasesRecursive()

void CAddDialog::DeleteSnapinAliasesRecursive ( CSnapinAlias *  ParentAlias,
BOOL  RemoveDeletedSnapins 
)
private

Definition at line 462 of file CAddDialog.cpp.

463{
464 POSITION pos = ParentAlias->m_SubNodes.GetHeadPosition();
465 while (pos)
466 {
467 CSnapinAlias *Alias = (CSnapinAlias*)ParentAlias->m_SubNodes.GetNext(pos);
468 if (Alias)
469 {
470 DeleteSnapinAliasesRecursive(Alias, RemoveDeletedSnapins);
471 Alias->m_SubNodes.RemoveAll();
472 if (RemoveDeletedSnapins && (Alias->IsDeleted()))
473 delete Alias->Snapin();
474 delete Alias;
475 }
476 }
477}

Referenced by DeleteSnapinAliases(), and DeleteSnapinAliasesRecursive().

◆ GetAdvanced()

BOOL CAddDialog::GetAdvanced ( )

Definition at line 492 of file CAddDialog.cpp.

493{
494 return m_Advanced;
495}

Referenced by CAddAdvancedDialog::OnInitDialog().

◆ InitCB()

VOID CAddDialog::InitCB ( CWindow &  comboBox)

Definition at line 76 of file CAddDialog.cpp.

77{
79}
HIMAGELIST SnapinImageList()
Definition: CMainWnd.cpp:662
#define CBEM_SETIMAGELIST
Definition: commctrl.h:3832

Referenced by OnInitDialog().

◆ InitLV()

void CAddDialog::InitLV ( CListView &  listView)

Definition at line 23 of file CAddDialog.cpp.

24{
25 listView.DeleteAllItems();
26
28 listView.InsertColumn(0, (LPWSTR)module.GetString(), LVCFMT_LEFT, 130, 0);
29
31 listView.InsertColumn(1, (LPWSTR)vendor.GetString(), LVCFMT_LEFT, 120, 1);
32
34}
#define IDS_MODULE
Definition: resource.h:13
#define IDS_VENDOR
Definition: resource.h:14
BOOL DeleteAllItems()
Definition: rosctrls.h:126
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
Definition: rosctrls.h:91
int InsertColumn(int iCol, LV_COLUMN *pcol)
Definition: rosctrls.h:52
const WCHAR * vendor
Definition: db.cpp:873
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LVSIL_SMALL
Definition: commctrl.h:2304
#define LVCFMT_LEFT
Definition: commctrl.h:2603

Referenced by OnInitDialog().

◆ InitTV()

void CAddDialog::InitTV ( CTreeView &  treeView)

Definition at line 51 of file CAddDialog.cpp.

52{
54}
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
Definition: rosctrls.h:540
#define TVSIL_NORMAL
Definition: commctrl.h:3448

Referenced by OnInitDialog().

◆ InsertListItem()

void CAddDialog::InsertListItem ( CListView &  listView,
CSnapinCacheEntry *  CacheEntry 
)

Definition at line 37 of file CAddDialog.cpp.

38{
39 LVITEM lvi = { 0 };
40 lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;
41 lvi.lParam = (LPARAM)CacheEntry;
42 lvi.pszText = (LPWSTR)CacheEntry->Name().GetString();
43 lvi.iItem = INT_MAX;
44 lvi.iImage = CacheEntry->NormalImageIndex();
45 int item = listView.InsertItem(&lvi);
46
47 listView.SetItemText(item, 1, (LPWSTR)CacheEntry->Provider().GetString());
48}
PXSTR GetString() noexcept
Definition: atlsimpstr.h:367
int InsertItem(const LV_ITEM *pitem)
Definition: rosctrls.h:96
BOOL SetItemText(int i, int subItem, LPCWSTR text)
Definition: rosctrls.h:186
const CAtlString & Provider() const
const CAtlString & Name() const
#define INT_MAX
Definition: limits.h:26
#define LVITEM
Definition: commctrl.h:2380
#define LVIF_PARAM
Definition: commctrl.h:2316
#define LVIF_TEXT
Definition: commctrl.h:2314
#define LVIF_IMAGE
Definition: commctrl.h:2315

Referenced by OnInitDialog().

◆ InsertSnapinAliasesRecursive()

VOID CAddDialog::InsertSnapinAliasesRecursive ( CSnapinAlias *  ParentAlias,
INT  Indent 
)

Definition at line 101 of file CAddDialog.cpp.

102{
103 POSITION pos = ParentAlias->m_SubNodes.GetHeadPosition();
104 while (pos)
105 {
106 CSnapinAlias *Alias = (CSnapinAlias*)ParentAlias->m_SubNodes.GetNext(pos);
107 if (Alias)
108 {
109 Alias->hTreeItem = InsertTreeItem(m_Selected, Alias, ParentAlias->hTreeItem);
110 AppendComboBoxItem(m_ParentList, Alias, Indent);
111 InsertSnapinAliasesRecursive(Alias, Indent + 1);
112 }
113 }
114 m_Selected.Expand(ParentAlias->hTreeItem, TVE_EXPAND);
115}
VOID InsertSnapinAliasesRecursive(CSnapinAlias *ParentAlias, INT Indent)
Definition: CAddDialog.cpp:101
VOID AppendComboBoxItem(CWindow &comboBox, CSnapinAlias *Alias, int iIndent)
Definition: CAddDialog.cpp:82
CWindow m_ParentList
Definition: CAddDialog.h:44
HTREEITEM InsertTreeItem(CTreeView &treeView, CSnapinAlias *Alias, HTREEITEM hParent=NULL, HTREEITEM hInsertAfter=TVI_LAST)
Definition: CAddDialog.cpp:57
CTreeView m_Selected
Definition: CAddDialog.h:36
HTREEITEM hTreeItem
Definition: CSnapinAlias.h:19
BOOL Expand(HTREEITEM item, DWORD action)
Definition: rosctrls.h:609
#define TVE_EXPAND
Definition: commctrl.h:3428

Referenced by InsertSnapinAliasesRecursive(), and OnInitDialog().

◆ InsertTreeItem()

HTREEITEM CAddDialog::InsertTreeItem ( CTreeView &  treeView,
CSnapinAlias *  Alias,
HTREEITEM  hParent = NULL,
HTREEITEM  hInsertAfter = TVI_LAST 
)

Definition at line 57 of file CAddDialog.cpp.

58{
59 TVINSERTSTRUCTW Insert;
60
61 ZeroMemory(&Insert, sizeof(TVINSERTSTRUCTW));
62
64 Insert.item.pszText = (LPWSTR)Alias->Snapin()->DisplayName().GetString();
65 Insert.item.iImage = Alias->Snapin()->CacheEntry()->NormalImageIndex();
66 Insert.item.iSelectedImage = Alias->Snapin()->CacheEntry()->OpenImageIndex();
67 Insert.item.lParam = (LPARAM)Alias;
68
69 Insert.hParent = hParent;
70 Insert.hInsertAfter = hInsertAfter;
71
72 return treeView.InsertItem(&Insert);
73}
HTREEITEM InsertItem(const TVINSERTSTRUCTW *pitem)
Definition: rosctrls.h:545
#define TVIF_TEXT
Definition: commctrl.h:3271
#define TVIF_IMAGE
Definition: commctrl.h:3272
#define TVIF_PARAM
Definition: commctrl.h:3273
#define TVIF_SELECTEDIMAGE
Definition: commctrl.h:3276
HTREEITEM hParent
Definition: commctrl.h:3398
HTREEITEM hInsertAfter
Definition: commctrl.h:3399

Referenced by InsertSnapinAliasesRecursive(), OnCommand(), OnInitDialog(), and OnItemDblClicked().

◆ OnCommand()

LRESULT CAddDialog::OnCommand ( WORD  wNotifyCode,
WORD  wID,
HWND  hWndCtl,
BOOL &  bHandled 
)

Definition at line 169 of file CAddDialog.cpp.

170{
171 switch (wID)
172 {
174 {
175 int iItem = m_Available.GetNextItem(-1, LVNI_SELECTED);
176 if (iItem != -1)
177 {
179 if (CacheEntry)
180 {
182 m_ParentAlias->m_SubNodes.AddTail(Alias);
183// Alias->Snapin()->OnAdd(m_Console);
186 }
187 }
188 }
189 break;
190
192 {
193 HTREEITEM hTreeItem = m_Selected.GetSelection();
194 if (hTreeItem != NULL)
195 {
197 if (Alias)
198 {
199 Alias->Deleted();
200 m_Selected.DeleteItem(Alias->hTreeItem);
201 }
202 }
203 }
204 break;
205
207 {
208 HTREEITEM hSelectItem = m_Selected.GetSelection();
209 if (hSelectItem != NULL)
210 {
211 HTREEITEM hParentItem = m_Selected.GetNextItem(hSelectItem, TVGN_PARENT);
212 if (hParentItem != NULL)
213 {
214 CSnapinAlias *ParentAlias = (CSnapinAlias *)m_Selected.GetItemData(hParentItem);
216 if (ParentAlias && Alias)
217 {
218 HTREEITEM hPrevItem = m_Selected.GetNextItem(hSelectItem, TVGN_PREVIOUS);
219 if (hPrevItem)
220 {
221 hPrevItem = m_Selected.GetNextItem(hPrevItem, TVGN_PREVIOUS);
222 if (hPrevItem == NULL)
223 hPrevItem = TVI_FIRST;
224
225 POSITION pos = ParentAlias->m_SubNodes.Find(Alias);
226 POSITION prev = pos;
227 ParentAlias->m_SubNodes.GetPrev(prev);
228 ParentAlias->m_SubNodes.SwapElements(pos, prev);
229
230 m_Selected.DeleteItem(hSelectItem);
231 Alias->hTreeItem = InsertTreeItem(m_Selected, Alias, hParentItem, hPrevItem);
232 m_Selected.SelectItem(Alias->hTreeItem);
233 }
234 }
235 }
236 }
237 }
238 break;
239
241 {
242 HTREEITEM hSelectItem = m_Selected.GetSelection();
243 if (hSelectItem != NULL)
244 {
245 HTREEITEM hParentItem = m_Selected.GetNextItem(hSelectItem, TVGN_PARENT);
246 if (hParentItem != NULL)
247 {
248 CSnapinAlias *ParentAlias = (CSnapinAlias *)m_Selected.GetItemData(hParentItem);
250 if (ParentAlias && Alias)
251 {
252 HTREEITEM hNextItem = m_Selected.GetNextItem(hSelectItem, TVGN_NEXT);
253 if (hNextItem)
254 {
255 POSITION pos = ParentAlias->m_SubNodes.Find(Alias);
256 POSITION next = pos;
257 ParentAlias->m_SubNodes.GetNext(next);
258 ParentAlias->m_SubNodes.SwapElements(pos, next);
259
260 m_Selected.DeleteItem(hSelectItem);
261 Alias->hTreeItem = InsertTreeItem(m_Selected, Alias, hParentItem, hNextItem);
262 m_Selected.SelectItem(Alias->hTreeItem);
263 }
264 }
265 }
266 }
267 }
268 break;
269
270 case IDC_ADD_ADVANCED:
271 {
272 CAddAdvancedDialog AdvancedDialog(this);
273 if (AdvancedDialog.DoModal(m_hWnd, (LPARAM)0) == IDOK)
274 {
275 RECT rc;
276 int Offset = 50;
277
278// Offset = HIWORD(::GetDialogBaseUnits()) * 20;
279
280 ::GetWindowRect(m_Selected.m_hWnd, &rc);
281 ::MapWindowPoints(HWND_DESKTOP, this->m_hWnd, (LPPOINT)&rc, 2);
282 if (m_Advanced)
283 rc.top += Offset;
284 else
285 rc.top -= Offset;
286
287 ::MoveWindow(m_Selected.m_hWnd, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
288
290 ::MapWindowPoints(HWND_DESKTOP, this->m_hWnd, (LPPOINT)&rc, 2);
291 if (m_Advanced)
292 {
293 rc.top += Offset;
294 rc.bottom += Offset;
295 }
296 else
297 {
298 rc.top -= Offset;
299 rc.bottom -= Offset;
300 }
301
302 ::MoveWindow(m_SelectedText.m_hWnd, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
303
304 if (m_Advanced)
305 {
308 }
309 else
310 {
313 }
314 }
315 }
316 break;
317
319 {
321 if (iItem != CB_ERR)
322 {
324 }
325 }
326 break;
327
328 case IDOK:
329 {
333 }
334 return 0;
335
336 case IDCANCEL:
337 {
340 }
341 return 0;
342 }
343
345
346 return 0;
347}
#define IDC_ADD_BUTTON_REMOVE
Definition: resource.h:74
#define IDC_ADD_BUTTON_DOWN
Definition: resource.h:79
#define IDC_ADD_BUTTON_UP
Definition: resource.h:78
#define IDC_ADD_LIST_PARENT
Definition: resource.h:83
#define IDC_ADD_BUTTON_ADD
Definition: resource.h:73
#define IDC_ADD_ADVANCED
Definition: resource.h:80
HWND m_hWnd
Definition: atlwin.h:273
BOOL ShowWindow(int nCmdShow)
Definition: atlwin.h:1333
void UpdateButtons()
Definition: CAddDialog.cpp:398
CListView m_Available
Definition: CAddDialog.h:35
CSnapin * m_RootSnapin
Definition: CAddDialog.h:51
CSnapinAlias * m_ParentAlias
Definition: CAddDialog.h:53
void DeleteSnapinAliases(BOOL RemoveDeletedSnapins)
Definition: CAddDialog.cpp:480
CWindow m_SelectedText
Definition: CAddDialog.h:42
CWindow m_ParentText
Definition: CAddDialog.h:43
void ReconnectSnapins(CSnapinAlias *ParentAlias, CSnapin *ParentSnapin)
Definition: CAddDialog.cpp:442
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
UINT GetNextNodeId()
Definition: CMainWnd.cpp:695
BOOL DeleteItem(HTREEITEM i)
Definition: rosctrls.h:550
BOOL SelectItem(HTREEITEM item, DWORD action=TVGN_CARET)
Definition: rosctrls.h:614
DWORD_PTR GetItemData(HTREEITEM item)
Definition: rosctrls.h:595
HTREEITEM GetNextItem(HTREEITEM i, WORD flags)
Definition: rosctrls.h:580
HTREEITEM GetSelection()
Definition: rosctrls.h:604
#define TRUE
Definition: types.h:120
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
#define TVGN_PARENT
Definition: commctrl.h:3460
#define LVNI_SELECTED
Definition: commctrl.h:2429
#define TVI_FIRST
Definition: commctrl.h:3374
#define TVGN_PREVIOUS
Definition: commctrl.h:3459
#define TVGN_NEXT
Definition: commctrl.h:3458
#define SW_HIDE
Definition: winuser.h:779
#define IDCANCEL
Definition: winuser.h:842
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define CB_ERR
Definition: winuser.h:2471
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
#define IDOK
Definition: winuser.h:841
#define HWND_DESKTOP
Definition: winuser.h:1220
#define CB_GETITEMDATA
Definition: winuser.h:1979
#define SendMessage
Definition: winuser.h:6009
#define SW_SHOW
Definition: winuser.h:786
#define CB_GETCURSEL
Definition: winuser.h:1972
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
Definition: dcommon.idl:28
long bottom
Definition: dcommon.idl:29
long right
Definition: dcommon.idl:29
long left
Definition: dcommon.idl:29
long top
Definition: dcommon.idl:29
PSYMCRYPT_PARALLEL_HASH_OPERATION next
int32_t INT
Definition: typedefs.h:58

◆ OnInitDialog()

LRESULT CAddDialog::OnInitDialog ( UINT  nMessage,
WPARAM  wParam,
LPARAM  lParam,
BOOL &  bHandled 
)

Definition at line 119 of file CAddDialog.cpp.

120{
121 CenterWindow(m_Console->m_hWnd);
122
133
136
140
141 /* Get Snapins from the Cache */
142 for (int i = 0; i < m_MainWnd->GetSnapinCacheCount(); i++)
143 {
145 }
146
147 /* Create the snapin alias tree */
151
153
155
157
160
162
164
165 return TRUE;
166}
#define IDC_ADD_TEXT_SELECTED
Definition: resource.h:81
#define IDC_ADD_LIST_AVAILABLE
Definition: resource.h:75
#define IDC_ADD_LIST_SELECTED
Definition: resource.h:76
#define IDC_ADD_DESCRIPTION
Definition: resource.h:77
#define IDC_ADD_TEXT_PARENT
Definition: resource.h:82
static VOID CenterWindow(HWND hWnd)
Definition: reactos.c:45
void Attach(HWND hWndNew)
Definition: atlwin.h:298
void InitTV(CTreeView &treeView)
Definition: CAddDialog.cpp:51
VOID InitCB(CWindow &comboBox)
Definition: CAddDialog.cpp:76
CWindow m_BtnUp
Definition: CAddDialog.h:39
CWindow m_BtnRemove
Definition: CAddDialog.h:38
void InsertListItem(CListView &listView, CSnapinCacheEntry *CacheEntry)
Definition: CAddDialog.cpp:37
void InitLV(CListView &listView)
Definition: CAddDialog.cpp:23
CWindow m_Description
Definition: CAddDialog.h:41
CWindow m_BtnDown
Definition: CAddDialog.h:40
CWindow m_BtnAdd
Definition: CAddDialog.h:37
int GetSnapinCacheCount()
Definition: CMainWnd.cpp:638
CSnapin * GetRootSnapin()
Definition: CMainWnd.cpp:668
CSnapinCacheEntry * GetSnapinCacheEntry(int nIndex)
Definition: CMainWnd.cpp:644
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define TVI_ROOT
Definition: commctrl.h:3373
#define CB_SETCURSEL
Definition: winuser.h:1990
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)

◆ OnItemChanged()

LRESULT CAddDialog::OnItemChanged ( INT  uCode,
LPNMHDR  hdr,
BOOL &  bHandled 
)

Definition at line 350 of file CAddDialog.cpp.

351{
352 int iItem = m_Available.GetNextItem(-1, LVNI_SELECTED);
353 CSnapinCacheEntry *CacheEntry;
354 if (iItem != -1 && (CacheEntry = (CSnapinCacheEntry*)m_Available.GetItemData(iItem)))
355 {
357 }
358 else
359 {
361 }
362
364
365 return TRUE;
366}
BOOL SetWindowText(LPCTSTR lpszString)
Definition: atlwin.h:1300
const CAtlString & Description() const

◆ OnItemDblClicked()

LRESULT CAddDialog::OnItemDblClicked ( INT  uCode,
LPNMHDR  hdr,
BOOL &  bHandled 
)

Definition at line 376 of file CAddDialog.cpp.

377{
378 if (hdr->hwndFrom == m_Available.m_hWnd)
379 {
381 if (lpnmitem->iItem != -1)
382 {
384 if (CacheEntry)
385 {
387 m_ParentAlias->m_SubNodes.AddTail(Alias);
388// Alias->Snapin()->OnAdd(m_Console);
391 }
392 }
393 }
394 return TRUE;
395}
char hdr[14]
Definition: iptest.cpp:33
struct tagNMITEMACTIVATE * LPNMITEMACTIVATE

◆ OnSelectionChanged()

LRESULT CAddDialog::OnSelectionChanged ( INT  uCode,
LPNMHDR  hdr,
BOOL &  bHandled 
)

Definition at line 369 of file CAddDialog.cpp.

370{
372 return TRUE;
373}

◆ ReconnectSnapins()

void CAddDialog::ReconnectSnapins ( CSnapinAlias *  ParentAlias,
CSnapin *  ParentSnapin 
)
private

Definition at line 442 of file CAddDialog.cpp.

443{
444 ParentSnapin->m_SubNodes.RemoveAll();
445
446 POSITION pos = ParentAlias->m_SubNodes.GetHeadPosition();
447 while (pos)
448 {
449 CSnapinAlias *Alias = (CSnapinAlias*)ParentAlias->m_SubNodes.GetNext(pos);
450 if (Alias)
451 {
452 if (!Alias->IsDeleted())
453 {
454 ParentSnapin->m_SubNodes.AddTail(Alias->Snapin());
455 ReconnectSnapins(Alias, Alias->Snapin());
456 }
457 }
458 }
459}

Referenced by OnCommand(), and ReconnectSnapins().

◆ SetAdvanced()

VOID CAddDialog::SetAdvanced ( BOOL  Advanced)

Definition at line 498 of file CAddDialog.cpp.

499{
500 m_Advanced = Advanced;
501}

Referenced by CAddAdvancedDialog::OnCommand().

◆ UpdateButtons()

void CAddDialog::UpdateButtons ( )

Definition at line 398 of file CAddDialog.cpp.

399{
401
402 CSnapinAlias *ParentAlias = NULL;
404 if (hTreeItem)
405 {
407 if (Alias)
408 ParentAlias = Alias->Parent();
409 }
410
411 m_BtnRemove.EnableWindow((hTreeItem != NULL) && (ParentAlias != NULL));
412
413 HTREEITEM hPrevItem = NULL, hNextItem = NULL;
414 HTREEITEM hSelectItem = m_Selected.GetSelection();
415 if (hSelectItem)
416 {
417 hPrevItem = m_Selected.GetNextItem(hSelectItem, TVGN_PREVIOUS);
418 hNextItem = m_Selected.GetNextItem(hSelectItem, TVGN_NEXT);
419 }
420
421 m_BtnUp.EnableWindow(hPrevItem != NULL);
422 m_BtnDown.EnableWindow(hNextItem != NULL);
423}
BOOL EnableWindow(BOOL bEnable=TRUE)
Definition: atlwin.h:523
#define ListView_GetSelectedCount(hwndLV)
Definition: commctrl.h:2714
#define TVGN_CARET
Definition: commctrl.h:3466

Referenced by OnCommand(), OnInitDialog(), OnItemChanged(), and OnSelectionChanged().

Member Data Documentation

◆ m_Advanced

BOOL CAddDialog::m_Advanced
private

Definition at line 46 of file CAddDialog.h.

Referenced by CAddDialog(), GetAdvanced(), OnCommand(), and SetAdvanced().

◆ m_Available

CListView CAddDialog::m_Available
private

Definition at line 35 of file CAddDialog.h.

Referenced by OnCommand(), OnInitDialog(), OnItemChanged(), OnItemDblClicked(), and UpdateButtons().

◆ m_BtnAdd

CWindow CAddDialog::m_BtnAdd
private

Definition at line 37 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_BtnDown

CWindow CAddDialog::m_BtnDown
private

Definition at line 40 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_BtnRemove

CWindow CAddDialog::m_BtnRemove
private

Definition at line 38 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_BtnUp

CWindow CAddDialog::m_BtnUp
private

Definition at line 39 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_Console

CComPtr<CConsoleWnd> CAddDialog::m_Console
private

Definition at line 49 of file CAddDialog.h.

Referenced by CAddDialog(), and OnInitDialog().

◆ m_Description

CWindow CAddDialog::m_Description
private

Definition at line 41 of file CAddDialog.h.

Referenced by OnInitDialog(), and OnItemChanged().

◆ m_MainWnd

CMainWnd* CAddDialog::m_MainWnd
private

Definition at line 48 of file CAddDialog.h.

Referenced by CAddDialog(), InitCB(), InitLV(), InitTV(), OnCommand(), OnInitDialog(), and OnItemDblClicked().

◆ m_ParentAlias

CSnapinAlias* CAddDialog::m_ParentAlias
private

Definition at line 53 of file CAddDialog.h.

Referenced by OnCommand(), OnInitDialog(), and OnItemDblClicked().

◆ m_ParentList

CWindow CAddDialog::m_ParentList
private

Definition at line 44 of file CAddDialog.h.

Referenced by InsertSnapinAliasesRecursive(), OnCommand(), and OnInitDialog().

◆ m_ParentText

CWindow CAddDialog::m_ParentText
private

Definition at line 43 of file CAddDialog.h.

Referenced by OnCommand(), and OnInitDialog().

◆ m_RootAlias

CSnapinAlias* CAddDialog::m_RootAlias
private

Definition at line 52 of file CAddDialog.h.

Referenced by DeleteSnapinAliases(), OnCommand(), and OnInitDialog().

◆ m_RootSnapin

CSnapin* CAddDialog::m_RootSnapin
private

Definition at line 51 of file CAddDialog.h.

Referenced by OnCommand(), and OnInitDialog().

◆ m_Selected

CTreeView CAddDialog::m_Selected
private

◆ m_SelectedText

CWindow CAddDialog::m_SelectedText
private

Definition at line 42 of file CAddDialog.h.

Referenced by OnCommand(), and OnInitDialog().


The documentation for this class was generated from the following files: