ReactOS 0.4.17-dev-784-g3812a95
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, CSnapin *Snapin, HTREEITEM hInsertAfter)
 
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 ()
 

Private Attributes

CListView m_Available
 
CTreeView m_Selected
 
CWindow m_BtnAdd
 
CWindow m_BtnRemove
 
CWindow m_Description
 
CMainWndm_MainWnd
 
CComPtr< CConsoleWndm_Console
 
CAtlList< CSnapin * > m_Snapins
 

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:35

Constructor & Destructor Documentation

◆ CAddDialog()

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

Definition at line 42 of file CAddDialog.h.

43 {
44 m_MainWnd = MainWnd;
45 m_Console = console;
46 }
CMainWnd * m_MainWnd
Definition: CAddDialog.h:37
CComPtr< CConsoleWnd > m_Console
Definition: CAddDialog.h:38

◆ ~CAddDialog()

CAddDialog::~CAddDialog ( )
inline

Definition at line 48 of file CAddDialog.h.

49 {
50 m_Snapins.RemoveAll();
51 }
CAtlList< CSnapin * > m_Snapins
Definition: CAddDialog.h:39

Member Function Documentation

◆ InitLV()

void CAddDialog::InitLV ( CListView listView)
inline

Definition at line 53 of file CAddDialog.h.

54 {
55 listView.DeleteAllItems();
56
58 listView.InsertColumn(0, (LPWSTR)module.GetString(), LVCFMT_LEFT, 130, 0);
59
61 listView.InsertColumn(1, (LPWSTR)vendor.GetString(), LVCFMT_LEFT, 120, 1);
62
64 }
#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
HIMAGELIST SnapinImageList()
Definition: CMainWnd.cpp:276
const WCHAR * vendor
Definition: db.cpp:873
CAtlStringA CAtlString
Definition: atlstr.h:138
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LVSIL_SMALL
Definition: commctrl.h:2304
#define LVCFMT_LEFT
Definition: commctrl.h:2603
uint16_t * LPWSTR
Definition: typedefs.h:56

Referenced by OnInitDialog().

◆ InitTV()

void CAddDialog::InitTV ( CTreeView treeView)
inline

Definition at line 79 of file CAddDialog.h.

80 {
82 }
HIMAGELIST SetImageList(HIMAGELIST himl, int iImageList)
Definition: rosctrls.h:535
#define TVSIL_NORMAL
Definition: commctrl.h:3448

Referenced by OnInitDialog().

◆ InsertListItem()

void CAddDialog::InsertListItem ( CListView listView,
CSnapinCacheEntry CacheEntry 
)
inline

Definition at line 66 of file CAddDialog.h.

67 {
68 LVITEM lvi = { 0 };
69 lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE;
70 lvi.lParam = (LPARAM)CacheEntry;
71 lvi.pszText = (LPWSTR)CacheEntry->Name().GetString();
72 lvi.iItem = INT_MAX;
73 lvi.iImage = CacheEntry->NormalImageIndex();
74 int item = listView.InsertItem(&lvi);
75
76 listView.SetItemText(item, 1, (LPWSTR)CacheEntry->Provider().GetString());
77 }
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
LONG_PTR LPARAM
Definition: minwindef.h:175
#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().

◆ InsertTreeItem()

HTREEITEM CAddDialog::InsertTreeItem ( CTreeView treeView,
CSnapin Snapin,
HTREEITEM  hInsertAfter 
)
inline

Definition at line 84 of file CAddDialog.h.

85 {
86 TVINSERTSTRUCTW Insert;
87
88 ZeroMemory(&Insert, sizeof(TVINSERTSTRUCTW));
89
91 Insert.item.pszText = (LPWSTR)Snapin->GetCacheEntry()->Name().GetString();
92 Insert.item.iImage = Snapin->GetCacheEntry()->NormalImageIndex();
93 Insert.item.iSelectedImage = Snapin->GetCacheEntry()->OpenImageIndex();
94 Insert.item.lParam = (LPARAM)Snapin;
95
96 Insert.hParent = NULL;
97 Insert.hInsertAfter = hInsertAfter;
98
99 return treeView.InsertItem(&Insert);
100 }
CSnapinCacheEntry * GetCacheEntry()
Definition: CSnapin.h:49
HTREEITEM InsertItem(const TVINSERTSTRUCTW *pitem)
Definition: rosctrls.h:540
#define NULL
Definition: types.h:112
#define ZeroMemory
Definition: minwinbase.h:31
#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 OnCommand(), and OnItemDblClicked().

◆ OnCommand()

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

Definition at line 126 of file CAddDialog.h.

127 {
128 switch (wID)
129 {
130 case IDC_BUTTON_ADD:
131 {
132 int iItem = m_Available.GetNextItem(-1, LVNI_SELECTED);
133 if (iItem != -1)
134 {
136 if (CacheEntry)
137 {
138 CSnapin *Snapin = new CSnapin(CacheEntry);
139 m_Snapins.AddTail(Snapin);
140 Snapin->OnAdd(m_Console);
142 }
143 }
144 }
145 break;
146
148 {
149 HTREEITEM hTreeItem = m_Selected.GetSelection();
150 if (hTreeItem != NULL)
151 {
152 CSnapin *Snapin = (CSnapin *)m_Selected.GetItemData(hTreeItem);
153 if (Snapin)
154 {
155 m_Snapins.RemoveAt(m_Snapins.Find(Snapin));
156 m_Selected.DeleteItem(hTreeItem);
157 delete Snapin;
158 }
159 }
160 }
161 break;
162
163 case IDOK:
164 {
165#if 0
167 for (int n = 0; n < items; ++n)
168 {
169 CSnapin* snapin;
170 if ((snapin = (CSnapin*)m_Selected.GetItemData(n)))
171 {
172 snapin->OnAccept(m_Console);
173 }
174 }
175#endif
176 }
177 // save stuff
178 case IDCANCEL:
179 EndDialog(0);
180 return 0;
181 }
182
184
185 return 0;
186 }
#define IDC_BUTTON_ADD
Definition: resource.h:72
#define IDC_BUTTON_REMOVE
Definition: resource.h:37
void UpdateButtons()
Definition: CAddDialog.h:232
CListView m_Available
Definition: CAddDialog.h:31
CTreeView m_Selected
Definition: CAddDialog.h:32
HTREEITEM InsertTreeItem(CTreeView &treeView, CSnapin *Snapin, HTREEITEM hInsertAfter)
Definition: CAddDialog.h:84
int GetNextItem(int i, WORD flags)
Definition: rosctrls.h:161
DWORD_PTR GetItemData(int i)
Definition: rosctrls.h:204
void OnAccept(IConsole *console)
Definition: CSnapin.h:98
void OnAdd(IConsole *console)
Definition: CSnapin.h:84
BOOL DeleteItem(HTREEITEM i)
Definition: rosctrls.h:545
int GetItemCount()
Definition: rosctrls.h:560
DWORD_PTR GetItemData(HTREEITEM item)
Definition: rosctrls.h:590
HTREEITEM GetSelection()
Definition: rosctrls.h:599
GLdouble n
Definition: glext.h:7729
static TCHAR * items[]
Definition: page1.c:45
#define LVNI_SELECTED
Definition: commctrl.h:2429
#define IDCANCEL
Definition: winuser.h:842
#define IDOK
Definition: winuser.h:841
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)

◆ OnInitDialog()

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

Definition at line 102 of file CAddDialog.h.

103 {
104 CenterWindow(m_Console->m_hWnd);
105
111
114
115 /* Get Snapins from the Cache */
116 for (int i = 0; i < m_MainWnd->GetSnapinCacheCount(); i++)
117 {
119 }
120
122
123 return TRUE;
124 }
#define IDC_DESCRIPTION
Definition: resource.h:17
#define IDC_LIST_SELECTED
Definition: resource.h:39
#define IDC_LIST_AVAILABLE
Definition: resource.h:38
static VOID CenterWindow(HWND hWnd)
Definition: reactos.c:45
void InitTV(CTreeView &treeView)
Definition: CAddDialog.h:79
CWindow m_BtnRemove
Definition: CAddDialog.h:34
void InsertListItem(CListView &listView, CSnapinCacheEntry *CacheEntry)
Definition: CAddDialog.h:66
void InitLV(CListView &listView)
Definition: CAddDialog.h:53
CWindow m_Description
Definition: CAddDialog.h:35
CWindow m_BtnAdd
Definition: CAddDialog.h:33
int GetSnapinCacheCount()
Definition: CMainWnd.cpp:252
CSnapinCacheEntry * GetSnapinCacheEntry(int nIndex)
Definition: CMainWnd.cpp:258
#define TRUE
Definition: types.h:120
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
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)

◆ OnItemChanged()

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

Definition at line 188 of file CAddDialog.h.

189 {
190 int iItem = m_Available.GetNextItem(-1, LVNI_SELECTED);
191 CSnapinCacheEntry *CacheEntry;
192 if (iItem != -1 && (CacheEntry = (CSnapinCacheEntry*)m_Available.GetItemData(iItem)))
193 {
194 m_Description.SetWindowText((LPWSTR)CacheEntry->Description().GetString());
195 }
196 else
197 {
198 m_Description.SetWindowText(NULL);
199 }
200
202
203 return TRUE;
204 }
const CAtlString & Description() const

◆ OnItemDblClicked()

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

Definition at line 212 of file CAddDialog.h.

213 {
214 if (hdr->hwndFrom == m_Available.m_hWnd)
215 {
217 if (lpnmitem->iItem != -1)
218 {
220 if (CacheEntry)
221 {
222 CSnapin *Snapin = new CSnapin(CacheEntry);
223 m_Snapins.AddTail(Snapin);
224 Snapin->OnAdd(m_Console);
226 }
227 }
228 }
229 return TRUE;
230 }
char hdr[14]
Definition: iptest.cpp:33
struct tagNMITEMACTIVATE * LPNMITEMACTIVATE

◆ OnSelectionChanged()

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

Definition at line 206 of file CAddDialog.h.

207 {
209 return TRUE;
210 }

◆ UpdateButtons()

void CAddDialog::UpdateButtons ( )
inline

Definition at line 232 of file CAddDialog.h.

233 {
234 m_BtnAdd.EnableWindow(ListView_GetSelectedCount(m_Available.m_hWnd) > 0);
235
237 m_BtnRemove.EnableWindow(hItem != NULL);
238 }
HTREEITEM GetNextItem(HTREEITEM i, WORD flags)
Definition: rosctrls.h:575
#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_Available

CListView CAddDialog::m_Available
private

Definition at line 31 of file CAddDialog.h.

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

◆ m_BtnAdd

CWindow CAddDialog::m_BtnAdd
private

Definition at line 33 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_BtnRemove

CWindow CAddDialog::m_BtnRemove
private

Definition at line 34 of file CAddDialog.h.

Referenced by OnInitDialog(), and UpdateButtons().

◆ m_Console

CComPtr<CConsoleWnd> CAddDialog::m_Console
private

Definition at line 38 of file CAddDialog.h.

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

◆ m_Description

CWindow CAddDialog::m_Description
private

Definition at line 35 of file CAddDialog.h.

Referenced by OnInitDialog(), and OnItemChanged().

◆ m_MainWnd

CMainWnd* CAddDialog::m_MainWnd
private

Definition at line 37 of file CAddDialog.h.

Referenced by CAddDialog(), InitLV(), InitTV(), and OnInitDialog().

◆ m_Selected

CTreeView CAddDialog::m_Selected
private

Definition at line 32 of file CAddDialog.h.

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

◆ m_Snapins

CAtlList<CSnapin*> CAddDialog::m_Snapins
private

Definition at line 39 of file CAddDialog.h.

Referenced by OnCommand(), OnItemDblClicked(), and ~CAddDialog().


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