00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
#include "ICMUI.H"
00018
00019
#include <stdlib.h>
00020
#include "Resource.H"
00021
00022
00023
00024
00025
00026 CInstallPage::CInstallPage(
CProfilePropertySheet *pcpps) :
00027
CDialog(pcpps -> Instance(),
00028 pcpps -> Profile().IsInstalled() ? UninstallPage : InstallPage,
00029 pcpps -> Window()), m_cppsBoss(*pcpps){ }
00030
00031 CInstallPage::~CInstallPage() {}
00032
00033
00034
00035 BOOL CInstallPage::OnInit() {
00036
00037
SetDlgItemText(m_hwnd, ProfileNameControl,
m_cppsBoss.
Profile().
GetName());
00038
if (
m_cppsBoss.
Profile().
IsInstalled())
00039
CheckDlgButton(m_hwnd, DeleteFileControl,
00040
m_cppsBoss.
DeleteIsOK() ? BST_CHECKED : BST_UNCHECKED);
00041
00042
return TRUE;
00043 }
00044
00045 BOOL CInstallPage::OnCommand(WORD wNotifyCode, WORD wid, HWND hwndCtl) {
00046
switch (wid) {
00047
case DeleteFileControl:
00048
00049
if (wNotifyCode == BN_CLICKED) {
00050
m_cppsBoss.
DeleteOnUninstall(
00051
IsDlgButtonChecked(m_hwnd, DeleteFileControl) ==
00052 BST_CHECKED);
00053
return TRUE;
00054 }
00055
00056
break;
00057
00058
case ProfileNameControl:
00059
if (wNotifyCode == EN_SETFOCUS) {
00060
00061
SendDlgItemMessage(m_hwnd, ProfileNameControl, EM_SETSEL,
00062 0, 0);
00063
return TRUE;
00064 }
00065
break;
00066 }
00067
00068
return FALSE;
00069 }
00070
00071
00072
00073 CAdvancedPage::CAdvancedPage(
CProfilePropertySheet *pcpps) :
00074
CDialog(pcpps -> Instance(), AdvancedPage, pcpps -> Window()),
00075 m_cppsBoss(*pcpps){ }
00076
00077
00078
00079 CAdvancedPage::~CAdvancedPage() {}
00080
00081
00082
00083
00084 void CAdvancedPage::Update() {
00085
00086
00087
00088
SendDlgItemMessage(m_hwnd,
DeviceListControl, LB_RESETCONTENT, 0, 0);
00089
00090
for (
unsigned u =
m_cppsBoss.
AssociationCount(); u--; ) {
00091
int iItem =
SendDlgItemMessage(m_hwnd,
DeviceListControl, LB_ADDSTRING,
00092 0, (LPARAM)
m_cppsBoss.
DisplayName(u));
00093
SendDlgItemMessage(m_hwnd,
DeviceListControl, LB_SETITEMDATA, iItem,
00094 (LPARAM)
m_cppsBoss.
Association(u));
00095 }
00096
00097
00098
00099
EnableWindow(
GetDlgItem(m_hwnd,
RemoveDeviceButton),
00100
m_cppsBoss.
Profile().
AssociationCount());
00101
00102
00103
00104
00105
EnableWindow(
GetDlgItem(m_hwnd,
AddDeviceButton),
00106
m_cppsBoss.
Profile().
DeviceCount() &&
00107
m_cppsBoss.
Profile().
DeviceCount() >
m_cppsBoss.
AssociationCount());
00108 }
00109
00110
00111
00112 BOOL CAdvancedPage::OnInit() {
00113
00114
SetDlgItemText(m_hwnd, ProfileNameControl,
m_cppsBoss.
Profile().
GetName());
00115
00116
00117
00118
Update();
00119
return TRUE;
00120 }
00121
00122
00123
00124 BOOL CAdvancedPage::OnCommand(WORD wNotifyCode, WORD wid, HWND hwndCtl) {
00125
00126
switch (wid) {
00127
00128
case AddDeviceButton:
00129
00130
if (wNotifyCode == BN_CLICKED) {
00131
CAddDeviceDialog cadd(
m_cppsBoss, m_hwnd);
00132
Update();
00133
return TRUE;
00134 }
00135
break;
00136
00137
case RemoveDeviceButton:
00138
00139
if (wNotifyCode == BN_CLICKED) {
00140
00141
int i =
SendDlgItemMessage(m_hwnd,
DeviceListControl,
00142 LB_GETCURSEL, 0, 0);
00143
00144
if (i == -1)
00145
return TRUE;
00146
00147
unsigned uItem =
SendDlgItemMessage(m_hwnd,
DeviceListControl,
00148 LB_GETITEMDATA, i, 0);
00149
m_cppsBoss.
Dissociate(uItem);
00150
Update();
00151
return TRUE;
00152 }
00153
break;
00154
00155
case DeviceListControl:
00156
switch (wNotifyCode) {
00157
00158
case LBN_SELCHANGE:
00159
EnableWindow(
GetDlgItem(m_hwnd,
RemoveDeviceButton),
00160 -1 !=
SendMessage(hwndCtl, LB_GETCURSEL, 0, 0));
00161
return TRUE;
00162 }
00163
break;
00164 }
00165
00166
return FALSE;
00167 }
00168
00169
00170
00171
00172 CAddDeviceDialog::CAddDeviceDialog(
CProfilePropertySheet& cpps,
00173 HWND hwndParent) :
00174
CDialog(cpps.Instance(),
AddDeviceDialog, hwndParent), m_cppsBoss(cpps) {
00175
DoModal();
00176 }
00177
00178
00179
00180
BOOL CAddDeviceDialog::OnInit() {
00181
00182
CProfile& cpThis = m_cppsBoss.
Profile();
00183 m_hwndList =
GetDlgItem(m_hwnd, DeviceListControl);
00184 m_hwndButton =
GetDlgItem(m_hwnd, AddDeviceButton);
00185
00186
00187
00188
for (
unsigned uDevice = 0; uDevice < cpThis.
DeviceCount(); uDevice++) {
00189
for (
unsigned u = 0; u < m_cppsBoss.
AssociationCount(); u++)
00190
if (uDevice == m_cppsBoss.
Association(u))
00191
break;
00192
if (u < m_cppsBoss.
AssociationCount())
00193
continue;
00194
int idItem =
SendMessage(m_hwndList, LB_ADDSTRING, 0,
00195 (LPARAM) cpThis.
DisplayName(uDevice));
00196
SendMessage(m_hwndList, LB_SETITEMDATA, idItem, (LPARAM) uDevice);
00197 }
00198
00199
if (
SendMessage(m_hwndList, LB_GETCOUNT, 0, 0))
00200
SendMessage(m_hwndList, LB_SETCURSEL, 0, 0);
00201
00202
EnableWindow(m_hwndButton, -1 !=
00203
SendMessage(m_hwndList, LB_GETCURSEL, 0, 0));
00204
return TRUE;
00205 }
00206
00207
00208
00209
BOOL CAddDeviceDialog::OnCommand(WORD wNotification, WORD wid,
00210 HWND hwndControl){
00211
00212
switch (wNotification) {
00213
00214
case LBN_SELCHANGE:
00215
EnableWindow(m_hwndButton, -1 !=
00216
SendMessage(m_hwndList, LB_GETCURSEL, 0, 0));
00217
return TRUE;
00218
00219
case BN_CLICKED:
00220
if (wid ==
AddDeviceButton) {
00221
00222
int i =
SendMessage(m_hwndList, LB_GETCURSEL, 0, 0);
00223
00224
if (i == -1)
00225
return TRUE;
00226
00227
unsigned uItem = (
unsigned)
SendMessage(m_hwndList,
00228 LB_GETITEMDATA, i, 0);
00229
m_cppsBoss.
Associate(uItem);
00230 }
00231
break;
00232
00233
case LBN_DBLCLK:
00234
return OnCommand(BN_CLICKED, AddDeviceButton, m_hwndButton);
00235 }
00236
00237
return CDialog::OnCommand(wNotification, wid, hwndControl);
00238 }