Develop and Download Open Source Software

Browse CVS Repository

Contents of /enbanfukusyaya/EnbanFukusyaYa/Win32/EnbanFukusyaDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.16 - (show annotations) (download) (as text)
Fri Nov 5 17:24:03 2010 UTC (13 years, 5 months ago) by bananajinn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +933 -925 lines
File MIME type: text/x-c++src
*** empty log message ***

1 // EnbanFukusyaDlg.cpp : インプリメンテーション ファイル
2 //
3
4 #include "stdafx.h"
5 #include "EnbanFukusya.h"
6 #include "EnbanFukusyaDlg.h"
7 #include "ThemeMessageDlg.h"
8 #include "SettingDlg.h"
9 #include "ThemeSelectDlg.h"
10 #include <GraphicUtil.h>
11
12 #include "aspi.h"
13 #include <scan.h>
14 #include <ui.h>
15 #include <cmd.h>
16 #include <copydisc.h>
17 #include <cmdlog.h>
18
19 #ifdef _DEBUG
20 #define new DEBUG_NEW
21 #undef THIS_FILE
22 static char THIS_FILE[] = __FILE__;
23 #endif
24
25 /////////////////////////////////////////////////////////////////////////////
26 // アプリケーションのバージョン情報で使われている CAboutDlg ダイアログ
27
28 class CAboutDlg : public CThemeDialog
29 {
30 public:
31 CAboutDlg();
32
33 // ダイアログ データ
34 //{{AFX_DATA(CAboutDlg)
35 enum { IDD = IDD_ABOUTBOX };
36 CThemeLabel m_StcCopyright;
37 CThemeLabel m_StcVersion;
38 CThemeButton m_BtnOK;
39 //}}AFX_DATA
40
41 // ClassWizard は仮想関数のオーバーライドを生成します
42 //{{AFX_VIRTUAL(CAboutDlg)
43 protected:
44 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV のサポート
45 //}}AFX_VIRTUAL
46
47 // インプリメンテーション
48 protected:
49 //{{AFX_MSG(CAboutDlg)
50 virtual BOOL OnInitDialog();
51 //}}AFX_MSG
52 DECLARE_MESSAGE_MAP()
53 };
54
55 CAboutDlg::CAboutDlg() : CThemeDialog(CAboutDlg::IDD, NULL)
56 {
57 //{{AFX_DATA_INIT(CAboutDlg)
58 //}}AFX_DATA_INIT
59 }
60
61 void CAboutDlg::DoDataExchange(CDataExchange* pDX)
62 {
63 CDialog::DoDataExchange(pDX);
64 //{{AFX_DATA_MAP(CAboutDlg)
65 DDX_Control(pDX, IDC_STC_COPYRIGHT, m_StcCopyright);
66 DDX_Control(pDX, IDC_STC_VERSION, m_StcVersion);
67 DDX_Control(pDX, IDOK, m_BtnOK);
68 //}}AFX_DATA_MAP
69 }
70
71 BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
72 //{{AFX_MSG_MAP(CAboutDlg)
73 //}}AFX_MSG_MAP
74 END_MESSAGE_MAP()
75
76 BOOL CAboutDlg::OnInitDialog()
77 {
78 CDialog::OnInitDialog();
79
80 // TODO: この位置に初期化の補足処理を追加してください
81 m_BtnOK.SetTheme(GetTheme());
82 m_StcCopyright.SetTheme(GetTheme());
83 m_StcVersion.SetTheme(GetTheme());
84 return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
85 // 例外: OCX プロパティ ページの戻り値は FALSE となります
86 }
87
88
89 /////////////////////////////////////////////////////////////////////////////
90 // CEnbanFukusyaDlg ダイアログ
91
92 CEnbanFukusyaDlg::CEnbanFukusyaDlg(CWnd* pParent /*=NULL*/)
93 : CThemeDialog(CEnbanFukusyaDlg::IDD, pParent)
94 {
95 //{{AFX_DATA_INIT(CEnbanFukusyaDlg)
96 //}}AFX_DATA_INIT
97 // メモ: LoadIcon は Win32 の DestroyIcon のサブシーケンスを要求しません。
98 //m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
99 m_hIcon = AfxGetApp()->LoadIcon(IDI_APPICON);
100 m_pReaderDrives = NULL;
101 m_pWriterDrives = NULL;
102 m_bRunning = FALSE;
103 m_nWindowSizeStep = -1;
104 m_bScanDone = FALSE;
105 m_nAllWritableDrives = -1;
106 m_nReadDriveISO = -1;
107 m_nWriteDriveISO = -1;
108 m_nReadDriveNet = -1;
109 m_nWriteDriveNet = -1;
110 m_nReadDriveMkisofs = -1;
111 }
112
113 void CEnbanFukusyaDlg::DoDataExchange(CDataExchange* pDX)
114 {
115 CDialog::DoDataExchange(pDX);
116 //{{AFX_DATA_MAP(CEnbanFukusyaDlg)
117 DDX_Control(pDX, IDC_STC_INFO, m_StcInfo);
118 DDX_Control(pDX, IDC_STC_WRITER, m_StcWriter);
119 DDX_Control(pDX, IDC_STC_READER, m_StcReader);
120 DDX_Control(pDX, IDC_STC_PROGRESS2, m_StcProgress2);
121 DDX_Control(pDX, IDC_STC_PROGRESS1, m_StcProgress1);
122 DDX_Control(pDX, IDC_COMBO2, m_CmbWriter);
123 DDX_Control(pDX, IDC_COMBO1, m_CmbReader);
124 DDX_Control(pDX, IDC_PROGRESS2, m_Progress2);
125 DDX_Control(pDX, IDC_PROGRESS1, m_Progress1);
126 DDX_Control(pDX, IDCANCEL, m_BtnExit);
127 DDX_Control(pDX, IDOK, m_BtnOK);
128 //}}AFX_DATA_MAP
129 }
130
131 BEGIN_MESSAGE_MAP(CEnbanFukusyaDlg, CDialog)
132 //{{AFX_MSG_MAP(CEnbanFukusyaDlg)
133 ON_WM_SYSCOMMAND()
134 ON_WM_PAINT()
135 ON_WM_QUERYDRAGICON()
136 //}}AFX_MSG_MAP
137 ON_MESSAGE(WM_KICKIDLE, OnKickIdle)
138 ON_MESSAGE(WM_USER_UICTL, OnUICtl)
139 END_MESSAGE_MAP()
140
141 /////////////////////////////////////////////////////////////////////////////
142 // CEnbanFukusyaDlg メッセージ ハンドラ
143
144 BOOL CEnbanFukusyaDlg::OnInitDialog()
145 {
146 CDialog::OnInitDialog();
147
148 // "バージョン情報..." メニュー項目をシステム メニューへ追加します。
149
150 // IDM_ABOUTBOX はコマンド メニューの範囲でなければなりません。
151 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
152 ASSERT(IDM_ABOUTBOX < 0xF000);
153
154 CMenu* pSysMenu = GetSystemMenu(FALSE);
155 if (pSysMenu != NULL){
156 CString strAboutMenu, strThemeSelect;
157 strAboutMenu.LoadString(IDS_ABOUTBOX);
158 strThemeSelect.LoadString(IDS_THEMESELECT);
159 if (!strAboutMenu.IsEmpty()){
160 pSysMenu->AppendMenu(MF_SEPARATOR);
161 pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
162 if(!strThemeSelect.IsEmpty()){
163 pSysMenu->AppendMenu(MF_STRING, IDM_THEMESELECT, strThemeSelect);
164 }
165 }
166 }
167
168 // このダイアログ用のアイコンを設定します。フレームワークはアプリケーションのメイン
169 // ウィンドウがダイアログでない時は自動的に設定しません。
170 SetIcon(m_hIcon, TRUE); // 大きいアイコンを設定
171 SetIcon(m_hIcon, FALSE); // 小さいアイコンを設定
172
173 // TODO: 特別な初期化を行う時はこの場所に追加してください。
174 LoadIniFile();
175 SetWindowText("円盤複写屋");
176 OpenAspi();
177 LoadTheme();
178 ResizeWindow(0);
179
180 return TRUE; // TRUE を返すとコントロールに設定したフォーカスは失われません。
181 }
182
183 void CEnbanFukusyaDlg::OnSysCommand(UINT nID, LPARAM lParam)
184 {
185 switch(nID & 0xFFF0){
186 case IDM_ABOUTBOX:
187 {
188 CAboutDlg dlgAbout;
189 CThemeSet *pThemeClass = ((CEnbanFukusyaApp *)AfxGetApp())->GetThemeClass();
190 dlgAbout.SetTheme(pThemeClass);
191 dlgAbout.DoModal();
192 }
193 break;
194 case IDM_THEMESELECT:
195 {
196 CThemeSelectDlg dlgThemeSel;
197 CThemeSet *pThemeClass = ((CEnbanFukusyaApp *)AfxGetApp())->GetThemeClass();
198 dlgThemeSel.SetTheme(pThemeClass);
199 dlgThemeSel.SetThemeNumber(m_nThemeNumber);
200 if(dlgThemeSel.DoModal()==IDOK){
201 m_nThemeNumber = dlgThemeSel.GetThemeNumber();
202 LoadTheme();
203 RedrawWindow(NULL, NULL, RDW_INVALIDATE|RDW_FRAME);
204 Invalidate();
205 }
206 }
207 break;
208 default:
209 CDialog::OnSysCommand(nID, lParam);
210 }
211 }
212
213 // もしダイアログボックスに最小化ボタンを追加するならば、アイコンを描画する
214 // コードを以下に記述する必要があります。MFC アプリケーションは document/view
215 // モデルを使っているので、この処理はフレームワークにより自動的に処理されます。
216
217 void CEnbanFukusyaDlg::OnPaint()
218 {
219 if (IsIconic())
220 {
221 CPaintDC dc(this); // 描画用のデバイス コンテキスト
222
223 SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
224
225 // クライアントの矩形領域内の中央
226 int cxIcon = GetSystemMetrics(SM_CXICON);
227 int cyIcon = GetSystemMetrics(SM_CYICON);
228 CRect rect;
229 GetClientRect(&rect);
230 int x = (rect.Width() - cxIcon + 1) / 2;
231 int y = (rect.Height() - cyIcon + 1) / 2;
232
233 // アイコンを描画します。
234 dc.DrawIcon(x, y, m_hIcon);
235 }
236 else
237 {
238 CDialog::OnPaint();
239 DrawLogo();
240 }
241 }
242
243 // システムは、ユーザーが最小化ウィンドウをドラッグしている間、
244 // カーソルを表示するためにここを呼び出します。
245 HCURSOR CEnbanFukusyaDlg::OnQueryDragIcon()
246 {
247 return (HCURSOR) m_hIcon;
248 }
249
250 void CEnbanFukusyaDlg::LoadTheme()
251 {
252 LOADABLE_THEME_BITMAP ltbButtonNormal = { IDB_BUTTON_NORMAL, 0, 4, 4, TBF_STRETCH };
253 LOADABLE_THEME_BITMAP ltbButtonFocus = { IDB_BUTTON_FOCUS, 0, 4, 4, TBF_STRETCH };
254 LOADABLE_THEME_BITMAP ltbButtonSelect = { IDB_BUTTON_SELECT, 0, 4, 4, TBF_STRETCH };
255 LOADABLE_THEME_BITMAP ltbButtonDisable = { IDB_BUTTON_DISABLE, 0, 4, 4, TBF_STRETCH };
256 LOADABLE_THEME_BITMAP ltbDropButton = { IDB_DROPDOWN, IDB_DROPDOWN_MASK, 4, 4, TBF_STRETCH };
257 LOADABLE_THEME_BITMAP ltbComboBoxBG = { IDB_COMBOBOX, 0, 2, 2, TBF_TILE };
258 LOADABLE_THEME_BITMAP ltbChecked = { IDB_CHECKED, 0, 4, 4, TBF_STRETCH };
259 LOADABLE_THEME_BITMAP ltbUnchecked = { IDB_UNCHECKED, 0, 4, 4, TBF_STRETCH };
260 LOADABLE_THEME_BITMAP ltbProgressBG = { IDB_PROGRESSBG, 0, 16, 4, TBF_VSTRETCH };
261 LOADABLE_THEME_BITMAP ltbProgressFG = { IDB_PROGRESSFG, 0, 12, 4, TBF_VSTRETCH };
262 LOADABLE_THEME_BITMAP ltbDialogBG = { IDB_DIALOGBG, 0, 16, 0, TBF_TILE };
263 LOADABLE_THEME_BITMAP ltbCloseButton = { IDB_CLOSEBUTTON, 0, 4, 4, TBF_STRETCH };
264 LOADABLE_THEME_BITMAP ltbTitleActive = { IDB_TITLE_ACT, 0, 16, 0, TBF_VSTRETCH };
265 LOADABLE_THEME_BITMAP ltbTitleInactive = { IDB_TITLE_INACT, 0, 16, 0, TBF_VSTRETCH };
266 LOADABLE_THEME theme_normal[] = {
267 { TCID_DEFAULT, TTID_FGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(255,255,200)) },
268 { TCID_DEFAULT, TTID_FGCOLOR, TSID_DISABLED, THEME_DATA_COLOR(RGB(192,192,192)) },
269 { TCID_BUTTON, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbButtonNormal) },
270 { TCID_BUTTON, TTID_BITMAP, TSID_FOCUSED, THEME_DATA_BITMAP(&ltbButtonFocus) },
271 { TCID_BUTTON, TTID_BITMAP, TSID_SELECTED, THEME_DATA_BITMAP(&ltbButtonSelect) },
272 { TCID_BUTTON, TTID_BITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbButtonDisable) },
273 { TCID_CHECKBOX, TTID_CHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbChecked) },
274 { TCID_CHECKBOX, TTID_UNCHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbUnchecked) },
275 { TCID_COMBOBOX, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbComboBoxBG) },
276 { TCID_COMBOBOX, TTID_DROPBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbDropButton) },
277 { TCID_PROGRESSBAR, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbProgressBG) },
278 { TCID_PROGRESSBAR, TTID_FGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbProgressFG) },
279 { TCID_DIALOG, TTID_BGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbDialogBG) },
280 { TCID_DIALOG, TTID_CLOSEBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbCloseButton) },
281 { TCID_DIALOG, TTID_TITLEBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTitleActive) },
282 { TCID_DIALOG, TTID_TITLEBITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbTitleInactive) },
283 { TCID_END, 0, 0, NULL }
284 };
285 /* Aqua */
286 LOADABLE_THEME_BITMAP ltbAquaButton = { IDB_AQUA_BUTTON, IDB_AQUA_BUTTONMASK, 10, 2, TBF_STRETCH };
287 LOADABLE_THEME_BITMAP ltbAquaButtonFocus = { IDB_AQUA_BUTTONFOCUS, IDB_AQUA_BUTTONMASK, 10, 2, TBF_STRETCH };
288 LOADABLE_THEME_BITMAP ltbAquaCheck = { IDB_AQUA_CHECKED, IDB_AQUA_CHECKEDMASK, 0, 0, TBF_TILE };
289 LOADABLE_THEME_BITMAP ltbAquaUncheck = { IDB_AQUA_UNCHECKED, IDB_AQUA_UNCHECKEDMASK, 0, 0, TBF_TILE };
290 LOADABLE_THEME_BITMAP ltbAquaProgressBG = { IDB_AQUA_PROGRESSBG, 0, 0, 0, TBF_VSTRETCH };
291 LOADABLE_THEME_BITMAP ltbAquaProgressFG = { IDB_AQUA_PROGRESSFG, 0, 0, 0, TBF_VSTRETCH };
292 LOADABLE_THEME_BITMAP ltbAquaDropButton = { IDB_AQUA_DROPBUTTON, IDB_AQUA_DROPBUTTONMASK, 0, 0, TBF_STRETCH };
293 LOADABLE_THEME_BITMAP ltbAquaComboBoxBG = { IDB_AQUA_COMBOBOXBG, 0, 6, 2, TBF_VSTRETCH };
294 LOADABLE_THEME_BITMAP ltbAquaTitleActive = { IDB_AQUA_TITLEACT, 0, 0, 0, TBF_VSTRETCH };
295 LOADABLE_THEME_BITMAP ltbAquaTitleInactive = { IDB_AQUA_TITLEINACT, 0, 0, 0, TBF_VSTRETCH };
296 LOADABLE_THEME_BITMAP ltbAquaDialog = { IDB_AQUA_DIALOGBG, 0, 0, 0, TBF_TILE };
297 LOADABLE_THEME_BITMAP ltbAquaCloseButton = { IDB_AQUA_CLOSEBUTTON, IDB_AQUA_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
298 LOADABLE_THEME_BITMAP ltbAquaMaxButton = { IDB_AQUA_MAXBUTTON, IDB_AQUA_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
299 LOADABLE_THEME_BITMAP ltbAquaMinButton = { IDB_AQUA_MINBUTTON, IDB_AQUA_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
300 LOADABLE_THEME theme_aqua[] = {
301 { TCID_DEFAULT, TTID_FGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(0,0,0)) },
302 { TCID_DEFAULT, TTID_FGCOLOR, TSID_DISABLED, THEME_DATA_COLOR(RGB(128,128,128)) },
303 { TCID_BUTTON, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaButton) },
304 { TCID_BUTTON, TTID_BITMAP, TSID_FOCUSED, THEME_DATA_BITMAP(&ltbAquaButtonFocus) },
305 { TCID_BUTTON, TTID_BITMAP, TSID_SELECTED, THEME_DATA_BITMAP(&ltbAquaButtonFocus) },
306 { TCID_CHECKBOX, TTID_CHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaCheck) },
307 { TCID_CHECKBOX, TTID_UNCHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaUncheck) },
308 { TCID_PROGRESSBAR, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaProgressBG) },
309 { TCID_PROGRESSBAR, TTID_FGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaProgressFG) },
310 { TCID_COMBOBOX, TTID_DROPBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaDropButton) },
311 { TCID_COMBOBOX, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaComboBoxBG) },
312 { TCID_DIALOG, TTID_BGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaDialog) },
313 { TCID_DIALOG, TTID_TITLEFGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(0,0,0)) },
314 { TCID_DIALOG, TTID_TITLEBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaTitleActive) },
315 { TCID_DIALOG, TTID_TITLEBITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbAquaTitleInactive) },
316 { TCID_DIALOG, TTID_CLOSEBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaCloseButton) },
317 { TCID_DIALOG, TTID_MAXBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMaxButton) },
318 { TCID_DIALOG, TTID_RESTOREBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMaxButton) },
319 { TCID_DIALOG, TTID_MINBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMinButton) },
320 { TCID_END, 0, 0, NULL }
321 };
322 #if 1
323 LOADABLE_THEME_BITMAP ltbTowadaButton = { IDB_TOWADA_BUTTON, 0, 6, 4, TBF_STRETCH };
324 LOADABLE_THEME_BITMAP ltbTowadaButtonFocus = { IDB_TOWADA_BUTTONFOCUS, 0, 6, 4, TBF_STRETCH };
325 LOADABLE_THEME_BITMAP ltbTowadaButtonSelect= { IDB_TOWADA_BUTTONSELECT, 0, 6, 4, TBF_STRETCH };
326 LOADABLE_THEME_BITMAP ltbTowadaChecked = { IDB_TOWADA_CHECKED, 0, 4, 4, TBF_STRETCH };
327 LOADABLE_THEME_BITMAP ltbTowadaUnchecked = { IDB_TOWADA_UNCHECKED, 0, 4, 4, TBF_STRETCH };
328 LOADABLE_THEME_BITMAP ltbTowadaDropButton = { IDB_TOWADA_DROPBUTTON, 0, 4, 4, TBF_STRETCH };
329 LOADABLE_THEME_BITMAP ltbTowadaDialog = { IDB_TOWADA_DIALOGBG, 0, 25, 25, TBF_STRETCH };
330 LOADABLE_THEME_BITMAP ltbTowadaProgressBG = { IDB_TOWADA_PROGRESSBG, 0, 6, 4, TBF_VSTRETCH };
331 LOADABLE_THEME_BITMAP ltbTowadaProgressFG = { IDB_TOWADA_PROGRESSFG, 0, 6, 4, TBF_VSTRETCH };
332 LOADABLE_THEME theme_towadako[] = {
333 { TCID_DEFAULT, TTID_FGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(255,255,200)) },
334 { TCID_DEFAULT, TTID_FGCOLOR, TSID_DISABLED, THEME_DATA_COLOR(RGB(192,192,192)) },
335 { TCID_BUTTON, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaButton) },
336 { TCID_BUTTON, TTID_BITMAP, TSID_FOCUSED, THEME_DATA_BITMAP(&ltbTowadaButtonFocus) },
337 { TCID_BUTTON, TTID_BITMAP, TSID_SELECTED, THEME_DATA_BITMAP(&ltbTowadaButtonSelect) },
338 // { TCID_BUTTON, TTID_BITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbTowadaButtonDisable) },
339 { TCID_CHECKBOX, TTID_CHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaChecked) },
340 { TCID_CHECKBOX, TTID_UNCHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaUnchecked) },
341 // { TCID_COMBOBOX, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbComboBoxBG) },
342 { TCID_COMBOBOX, TTID_DROPBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaDropButton) },
343 { TCID_PROGRESSBAR, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaProgressBG) },
344 { TCID_PROGRESSBAR, TTID_FGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaProgressFG) },
345 { TCID_DIALOG, TTID_BGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTowadaDialog) },
346 // { TCID_DIALOG, TTID_CLOSEBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbCloseButton) },
347 // { TCID_DIALOG, TTID_TITLEBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbTitleActive) },
348 // { TCID_DIALOG, TTID_TITLEBITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbTitleInactive) },
349 { TCID_END, 0, 0, NULL }
350 };
351 #endif
352 #if 0
353 /* pu-nyan */
354 LOADABLE_THEME_BITMAP ltbPunyanButton = { IDB_PUNYAN_BUTTON, 0, 10, 2, TBF_STRETCH };
355 // LOADABLE_THEME_BITMAP ltbPunyanButtonFocus = { IDB_PUNYAN_BUTTONFOCUS, 0, 10, 2, TBF_STRETCH };
356 // LOADABLE_THEME_BITMAP ltbPunyanCheck = { IDB_PUNYAN_CHECKED, IDB_PUNYAN_CHECKEDMASK, 0, 0, TBF_TILE };
357 // LOADABLE_THEME_BITMAP ltbPunyanUncheck = { IDB_PUNYAN_UNCHECKED, IDB_PUNYAN_UNCHECKEDMASK, 0, 0, TBF_TILE };
358 LOADABLE_THEME_BITMAP ltbPunyanProgressBG = { IDB_PUNYAN_PROGRESSBG, 0, 0, 0, TBF_VSTRETCH };
359 LOADABLE_THEME_BITMAP ltbPunyanProgressFG = { IDB_PUNYAN_PROGRESSFG, 0, 0, 0, TBF_VSTRETCH };
360 LOADABLE_THEME_BITMAP ltbPunyanDropButton = { IDB_PUNYAN_DROPBUTTON, 0, 0, 0, TBF_STRETCH };
361 LOADABLE_THEME_BITMAP ltbPunyanComboBoxBG = { IDB_PUNYAN_COMBOBOXBG, 0, 6, 2, TBF_VSTRETCH };
362 LOADABLE_THEME_BITMAP ltbPunyanTitleActive = { IDB_PUNYAN_TITLEACT, 0, 0, 0, TBF_VSTRETCH };
363 // LOADABLE_THEME_BITMAP ltbPunyanTitleInactive = { IDB_PUNYAN_TITLEINACT, 0, 0, 0, TBF_VSTRETCH };
364 LOADABLE_THEME_BITMAP ltbPunyanDialog = { IDB_PUNYAN_DIALOGBG, 0, 0, 0, TBF_TILE };
365 LOADABLE_THEME_BITMAP ltbPunyanCloseButton = { IDB_PUNYAN_CLOSEBUTTON, IDB_PUNYAN_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
366 // LOADABLE_THEME_BITMAP ltbPunyanMaxButton = { IDB_PUNYAN_MAXBUTTON, IDB_PUNYAN_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
367 // LOADABLE_THEME_BITMAP ltbPunyanMinButton = { IDB_PUNYAN_MINBUTTON, IDB_PUNYAN_CLOSEBUTTONMASK, 0, 0, TBF_STRETCH };
368 LOADABLE_THEME theme_punyan[] = {
369 { TCID_DEFAULT, TTID_FGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(0,0,0)) },
370 { TCID_DEFAULT, TTID_FGCOLOR, TSID_DISABLED, THEME_DATA_COLOR(RGB(128,128,128)) },
371 { TCID_BUTTON, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanButton) },
372 // { TCID_BUTTON, TTID_BITMAP, TSID_FOCUSED, THEME_DATA_BITMAP(&ltbPunyanButtonFocus) },
373 // { TCID_BUTTON, TTID_BITMAP, TSID_SELECTED, THEME_DATA_BITMAP(&ltbPunyanButtonFocus) },
374 // { TCID_CHECKBOX, TTID_CHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanCheck) },
375 // { TCID_CHECKBOX, TTID_UNCHECKED, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanUncheck) },
376 { TCID_PROGRESSBAR, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanProgressBG) },
377 { TCID_PROGRESSBAR, TTID_FGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanProgressFG) },
378 { TCID_COMBOBOX, TTID_DROPBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanDropButton) },
379 { TCID_COMBOBOX, TTID_BITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanComboBoxBG) },
380 { TCID_DIALOG, TTID_BGBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanDialog) },
381 { TCID_DIALOG, TTID_TITLEFGCOLOR, TSID_NORMAL, THEME_DATA_COLOR(RGB(255,255,255)) },
382 { TCID_DIALOG, TTID_TITLEBITMAP, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanTitleActive) },
383 // { TCID_DIALOG, TTID_TITLEBITMAP, TSID_DISABLED, THEME_DATA_BITMAP(&ltbPunyanTitleInactive) },
384 { TCID_DIALOG, TTID_CLOSEBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbPunyanCloseButton) },
385 // { TCID_DIALOG, TTID_MAXBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMaxButton) },
386 // { TCID_DIALOG, TTID_RESTOREBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMaxButton) },
387 // { TCID_DIALOG, TTID_MINBUTTON, TSID_NORMAL, THEME_DATA_BITMAP(&ltbAquaMinButton) },
388 { TCID_END, 0, 0, NULL }
389 };
390 #endif
391 CThemeSet *pThemeClass = ((CEnbanFukusyaApp *)AfxGetApp())->GetThemeClass();
392 LOADABLE_THEME *theme;
393
394 switch(m_nThemeNumber){
395 case 1:
396 theme = theme_aqua;
397 break;
398 #if 1
399 case 2:
400 theme = theme_towadako;
401 break;
402 #endif
403 #if 0
404 case 2:
405 theme = theme_punyan;
406 break;
407 #endif
408 default:
409 theme = theme_normal;
410 }
411
412 pThemeClass->InitializeTheme();
413 pThemeClass->LoadThemeFromStruct(theme);
414 m_BtnOK.SetTheme(pThemeClass);
415 m_BtnExit.SetTheme(pThemeClass);
416 m_Progress1.SetTheme(pThemeClass);
417 m_Progress2.SetTheme(pThemeClass);
418 m_CmbReader.SetTheme(pThemeClass);
419 m_CmbWriter.SetTheme(pThemeClass);
420 m_StcReader.SetTheme(pThemeClass);
421 m_StcWriter.SetTheme(pThemeClass);
422 m_StcProgress1.SetTheme(pThemeClass);
423 m_StcProgress2.SetTheme(pThemeClass);
424 m_StcInfo.SetTheme(pThemeClass);
425 this->SetTheme(pThemeClass);
426
427 // ロゴビットマップ
428 if(m_bmpLogo.m_hObject!=NULL){
429 m_bmpLogo.DeleteObject();
430 m_bmpLogoMask.DeleteObject();
431 }
432 m_bmpLogo.LoadBitmap(IDB_LOGO);
433 m_bmpLogoMask.LoadBitmap(IDB_LOGOMASK);
434 }
435
436 void CEnbanFukusyaDlg::DrawLogo()
437 {
438 CClientDC dc(this);
439 RECT rcWnd, rcLogo;
440 SIZE szLogo;
441 THEME_BITMAP tb;
442 CGraphicUtil GUtil;
443
444 tb.bitmap = &m_bmpLogo;
445 tb.mask = &m_bmpLogoMask;
446 tb.border_height = 0;
447 tb.border_height = 0;
448 tb.flags = TBF_TILE;
449
450 szLogo = GUtil.GetBitmapSize(&m_bmpLogo);
451
452 GetClientRect(&rcWnd);
453 GetDlgItem(IDC_STC_BORDER1)->GetWindowRect(&rcLogo);
454 ScreenToClient(&rcLogo);
455
456 rcLogo.bottom = rcLogo.top;
457 rcLogo.left = (rcWnd.right-rcWnd.left - szLogo.cx)/2;
458 rcLogo.right = rcLogo.left + szLogo.cx;
459 rcLogo.top = rcLogo.bottom - szLogo.cy;
460 GUtil.DrawThemeBitmap(this, &dc, &tb, &rcLogo);
461 }
462
463 LRESULT CEnbanFukusyaDlg::OnKickIdle(WPARAM wParam, LPARAM lParam)
464 {
465 SCAN_t *drives;
466 CString csMessage;
467 CComboBox *cb;
468 int nCount;
469 int nDrive;
470
471 if(m_bScanDone)
472 return 0;
473
474 CThemeSet *pThemeClass = ((CEnbanFukusyaApp *)AfxGetApp())->GetThemeClass();
475 CThemeMessageDlg MsgDlg;
476 MsgDlg.SetTheme(pThemeClass);
477
478 for(nCount=0; nCount<2; nCount++){
479 cb = nCount==0 ? &m_CmbReader : &m_CmbWriter;
480 if(cb->GetCount()==0){
481 drives = ScanDrive(nCount>0);
482 if(drives==NULL){
483 csMessage.LoadString(IDS_DRIVENOTFOUND);
484 MsgDlg.Disp(csMessage, NULL, MB_ICONERROR);
485 return 0;
486 }
487 for(nDrive=0; strlen((LPCTSTR)drives[nDrive].inqdata)!=0; nDrive++){
488 cb->AddString((LPCTSTR)drives[nDrive].inqdata);
489 }
490 if(nCount==0){
491 if(m_pReaderDrives!=NULL)
492 free(m_pReaderDrives);
493 m_pReaderDrives = drives;
494 }
495 else{
496 if(m_pWriterDrives!=NULL)
497 free(m_pWriterDrives);
498 m_pWriterDrives = drives;
499 }
500 cb->SetCurSel(0);
501 }
502 }
503
504 if(m_CmbWriter.GetCount() >= 2){
505 m_CmbWriter.AddString("記録用ディスク挿入済の全装置");
506 m_nAllWritableDrives = m_CmbWriter.GetCount()-1;
507 }
508
509 m_CmbReader.AddString("ISOイメージファイル");
510 m_nReadDriveISO = m_CmbReader.GetCount()-1;
511 m_CmbWriter.AddString("ISOイメージファイル");
512 m_nWriteDriveISO = m_CmbWriter.GetCount()-1;
513
514 m_CmbReader.AddString("円盤イメージファイル");
515 m_nReadDriveEmg = m_CmbReader.GetCount()-1;
516 m_CmbWriter.AddString("円盤イメージファイル");
517 m_nWriteDriveEmg = m_CmbWriter.GetCount()-1;
518
519 m_CmbReader.AddString("ネットワーク");
520 m_nReadDriveNet = m_CmbReader.GetCount()-1;
521 m_CmbWriter.AddString("ネットワーク");
522 m_nWriteDriveNet = m_CmbWriter.GetCount()-1;
523
524 m_CmbReader.AddString("フォルダからのISOイメージ(mkisofs)");
525 m_nReadDriveMkisofs = m_CmbReader.GetCount()-1;
526
527 /*
528 * コマンドライン引数による読取装置指定を確認
529 */
530 #define IS_DEVICE_ISO(s) \
531 ((strlen(s) > 4) && (stricmp(s+strlen(s)-4, ".iso")==0))
532 #define IS_DEVICE_EMG(s) \
533 ((strlen(s) > 4) && (stricmp(s+strlen(s)-4, ".emg")==0))
534 CString csTmp;
535 LPCTSTR lpszTmp;
536 lpszTmp = GetArgReader();
537 if(lpszTmp != NULL){
538 if(IS_DEVICE_ISO(lpszTmp)){
539 csTmp.Format("ISO(%s)", lpszTmp);
540 m_CmbReader.DeleteString(m_nReadDriveISO);
541 m_CmbReader.InsertString(m_nReadDriveISO, csTmp);
542 m_CmbReader.SetCurSel(m_nReadDriveISO);
543 m_CmbReader.EnableWindow(FALSE);
544 }
545 else if(IS_DEVICE_EMG(lpszTmp)){
546 csTmp.Format("円盤イメージ(%s)", lpszTmp);
547 m_CmbReader.DeleteString(m_nReadDriveEmg);
548 m_CmbReader.InsertString(m_nReadDriveEmg, csTmp);
549 m_CmbReader.SetCurSel(m_nReadDriveEmg);
550 m_CmbReader.EnableWindow(FALSE);
551 }
552 }
553 /*
554 * コマンドライン引数による書込装置指定を確認
555 */
556 lpszTmp = GetArgWriter();
557 if(lpszTmp != NULL){
558 if(IS_DEVICE_ISO(lpszTmp)){
559 csTmp.Format("ISO(%s)", lpszTmp);
560 m_CmbWriter.DeleteString(m_nWriteDriveISO);
561 m_CmbWriter.InsertString(m_nWriteDriveISO, csTmp);
562 m_CmbWriter.SetCurSel(m_nWriteDriveISO);
563 m_CmbWriter.EnableWindow(FALSE);
564 }
565 else if(IS_DEVICE_EMG(lpszTmp)){
566 csTmp.Format("円盤イメージ(%s)", lpszTmp);
567 m_CmbWriter.DeleteString(m_nWriteDriveEmg);
568 m_CmbWriter.InsertString(m_nWriteDriveEmg, csTmp);
569 m_CmbWriter.SetCurSel(m_nWriteDriveEmg);
570 m_CmbWriter.EnableWindow(FALSE);
571 }
572 }
573
574 m_bScanDone = TRUE;
575
576 return 0;
577 }
578
579
580 BOOL CEnbanFukusyaDlg::DestroyWindow()
581 {
582 // TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
583 CloseAspi();
584 if(m_pReaderDrives!=NULL){
585 free(m_pReaderDrives);
586 m_pReaderDrives=NULL;
587 }
588 if(m_pWriterDrives!=NULL){
589 free(m_pWriterDrives);
590 m_pWriterDrives=NULL;
591 }
592
593 return CDialog::DestroyWindow();
594 }
595
596 void CEnbanFukusyaDlg::OnCancel()
597 {
598 // TODO: この位置に特別な後処理を追加してください。
599 if(m_bRunning){
600 UISetAbort();
601 m_bRunning=FALSE;
602 m_BtnOK.EnableWindow(FALSE);
603 return;
604 }
605 SaveIniFile();
606 CDialog::OnCancel();
607 }
608
609 void CEnbanFukusyaDlg::OnOK()
610 {
611 // TODO: この位置にその他の検証用のコードを追加してください
612
613 //CDialog::OnOK();
614 if(m_bRunning){
615 UISetAbort();
616 m_bRunning=FALSE;
617 m_BtnOK.EnableWindow(FALSE);
618 return;
619 }
620
621 CString csTemp;
622 CThemeMessageDlg MsgDlg;
623 CThemeSet *pThemeClass = ((CEnbanFukusyaApp *)AfxGetApp())->GetThemeClass();
624 int ret;
625 DRIVEID reader, *writerp=NULL;
626 int sel_reader, sel_writer;
627 //BOOL bOneDrive = FALSE;
628 int nWriter;
629 int nIndex;
630
631 MsgDlg.SetTheme(pThemeClass);
632
633 // 選択ドライブ取得
634 sel_reader = m_CmbReader.GetCurSel();
635 if(sel_reader==CB_ERR)
636 return;
637 sel_writer = m_CmbWriter.GetCurSel();
638 if(sel_writer==CB_ERR)
639 return;
640
641 writerp = (DRIVEID *)malloc(sizeof(DRIVEID));
642 if(writerp==NULL){
643 csTemp.LoadString(IDS_DRIVEINITERROR);
644 MsgDlg.Disp(csTemp, NULL, MB_ICONSTOP);
645 return;
646 }
647
648 if(sel_writer == m_nAllWritableDrives){
649 nWriter=0;
650 for(nIndex=0; strlen((LPCTSTR)m_pWriterDrives[nIndex].inqdata)!=0; nIndex++){
651 if(m_pReaderDrives[sel_reader].hid == m_pWriterDrives[nIndex].hid &&
652 m_pReaderDrives[sel_reader].tid == m_pWriterDrives[nIndex].tid){
653 /* 読取装置は無視 */
654 continue;
655 }
656 writerp = (DRIVEID *)realloc(writerp, (nWriter+1)*sizeof(DRIVEID));
657 if(writerp==NULL){
658 csTemp.LoadString(IDS_DRIVEINITERROR);
659 MsgDlg.Disp(csTemp, NULL, MB_ICONSTOP);
660 return;
661 }
662 writerp[nWriter].hid = m_pWriterDrives[nIndex].hid;
663 writerp[nWriter].tid = m_pWriterDrives[nIndex].tid;
664 nWriter++;
665 }
666 }
667 else if(sel_writer == m_nWriteDriveISO){
668 writerp->hid = HID_VIRTUAL;
669 writerp->tid = CMDDRVTYPE_ISO;
670 nWriter=1;
671 }
672 else if(sel_writer == m_nWriteDriveEmg){
673 writerp->hid = HID_VIRTUAL;
674 writerp->tid = CMDDRVTYPE_IMAGE;
675 nWriter=1;
676 }
677 else if(sel_writer == m_nWriteDriveNet){
678 writerp->hid = HID_VIRTUAL;
679 writerp->tid = CMDDRVTYPE_NET;
680 nWriter=1;
681 }
682 else{
683 writerp->hid = m_pWriterDrives[sel_writer].hid;
684 writerp->tid = m_pWriterDrives[sel_writer].tid;
685 nWriter=1;
686 }
687
688 if(sel_reader == m_nReadDriveMkisofs){
689 reader.hid = HID_VIRTUAL;
690 reader.tid = CMDDRVTYPE_MKISOFS;
691 }
692 else if(sel_reader == m_nReadDriveISO){
693 reader.hid = HID_VIRTUAL;
694 reader.tid = CMDDRVTYPE_ISO;
695 }
696 else if(sel_reader == m_nReadDriveEmg){
697 reader.hid = HID_VIRTUAL;
698 reader.tid = CMDDRVTYPE_IMAGE;
699 }
700 else if(sel_reader == m_nReadDriveNet){
701 reader.hid = HID_VIRTUAL;
702 reader.tid = CMDDRVTYPE_NET;
703 }
704 else{
705 reader.hid = m_pReaderDrives[sel_reader].hid;
706 reader.tid = m_pReaderDrives[sel_reader].tid;
707 }
708
709 UIClearAbort();
710 UISetHWND(this->m_hWnd);
711 m_bRunning=TRUE;
712 m_BtnExit.EnableWindow(FALSE);
713 m_CmbReader.EnableWindow(FALSE);
714 m_CmbWriter.EnableWindow(FALSE);
715 csTemp.LoadString(IDS_ABORT);
716 m_BtnOK.SetWindowText(csTemp);
717 m_BtnOK.SetFocus();
718
719 ret = CopyDisc(&reader, writerp, nWriter);
720
721 csTemp.LoadString(IDS_COPYSTART);
722 m_BtnOK.SetWindowText(csTemp);
723 m_BtnOK.EnableWindow(TRUE);
724 m_BtnExit.EnableWindow(TRUE);
725 m_CmbReader.EnableWindow(TRUE);
726 m_CmbWriter.EnableWindow(TRUE);
727 m_bRunning=FALSE;
728
729 /* メモリ解放 */
730 free(writerp);
731
732 SendMessage(WM_USER_UICTL, UICTL_METER2INIT, NULL);
733 SendMessage(WM_USER_UICTL, UICTL_METER1INIT, NULL);
734 }
735
736 LRESULT CEnbanFukusyaDlg::OnUICtl(WPARAM wParam, LPARAM lParam)
737 {
738 LPCTSTR lpMessage;
739
740 switch(wParam){
741 case UICTL_METER1INIT:
742 m_Progress1.SetPos(0);
743 m_Progress1.SetRange(0, 1000);
744 if(lParam==NULL){
745 lpMessage = "";
746 ShowMeter1(FALSE);
747 }
748 else{
749 lpMessage = (LPCTSTR)lParam;
750 ShowMeter1(TRUE);
751 }
752 m_StcProgress1.SetWindowText(lpMessage);
753 break;
754 case UICTL_METER2INIT:
755 m_Progress2.SetPos(0);
756 m_Progress2.SetRange(0, 1000);
757 if(lParam==NULL){
758 lpMessage = "";
759 ShowMeter2(FALSE);
760 }
761 else{
762 lpMessage = (LPCTSTR)lParam;
763 ShowMeter2(TRUE);
764 }
765 m_StcProgress2.SetWindowText(lpMessage);
766 break;
767 case UICTL_METER1SETPOS:
768 m_Progress1.SetPosAnim((int)lParam);
769 TRACE("meter1=%ld\n", lParam);
770 break;
771 case UICTL_METER2SETPOS:
772 m_Progress2.SetPosAnim((int)lParam);
773 TRACE("meter2=%ld\n", lParam);
774 break;
775 case UICTL_DISPINFO:
776 if(lParam==NULL){
777 lpMessage = "";
778 ShowInfo(FALSE);
779 }
780 else{
781 lpMessage = (LPCTSTR)lParam;
782 ShowInfo(TRUE);
783 }
784 m_StcInfo.SetWindowText(lpMessage);
785 break;
786 case UICTL_SETTING:
787 return Setting((OPTIONS *)lParam);
788 case UICTL_GETARGREADER:
789 return (LONG)GetArgReader();
790 case UICTL_GETARGWRITER:
791 return (LONG)GetArgWriter();
792 }
793
794 return 0;
795 }
796
797 void CEnbanFukusyaDlg::ResizeWindow(int nStep)
798 {
799 RECT rcChild, rcWnd;
800
801 if(nStep==m_nWindowSizeStep)
802 return;
803
804 GetWindowRect(&rcWnd);
805 ScreenToClient(&rcWnd);
806 switch(nStep){
807 case 0:
808 m_Progress1.GetWindowRect(&rcChild);
809 ScreenToClient(&rcChild);
810 rcWnd.bottom = rcChild.top;
811 break;
812 case 1:
813 m_Progress2.GetWindowRect(&rcChild);
814 ScreenToClient(&rcChild);
815 rcWnd.bottom = rcChild.top;
816 break;
817 case 2:
818 m_Progress2.GetWindowRect(&rcChild);
819 ScreenToClient(&rcChild);
820 rcWnd.bottom = rcChild.bottom + 20;
821 break;
822 case 3:
823 m_StcInfo.GetWindowRect(&rcChild);
824 ScreenToClient(&rcChild);
825 rcWnd.bottom = rcChild.bottom + 10;
826 break;
827 default:
828 return;
829 }
830 SetWindowPos(NULL, 0, 0, rcWnd.right-rcWnd.left, rcWnd.bottom-rcWnd.top,
831 SWP_NOZORDER|SWP_NOMOVE);
832 m_nWindowSizeStep = nStep;
833 }
834
835
836 void CEnbanFukusyaDlg::ShowMeter1(BOOL bShow)
837 {
838
839 if(bShow){
840 if(m_nWindowSizeStep<1)
841 ResizeWindow(1);
842 }
843 else{
844 ResizeWindow(0);
845 }
846 }
847
848 void CEnbanFukusyaDlg::ShowMeter2(BOOL bShow)
849 {
850 if(bShow){
851 if(m_nWindowSizeStep<2)
852 ResizeWindow(2);
853 }
854 else{
855 ResizeWindow(1);
856 }
857 }
858
859 void CEnbanFukusyaDlg::ShowInfo(BOOL bShow)
860 {
861 if(bShow){
862 ResizeWindow(3);
863 }
864 else{
865 ResizeWindow(2);
866 }
867 }
868
869 int CEnbanFukusyaDlg::Setting(OPTIONS *pOption)
870 {
871 CSettingDlg dlg;
872 int ret;
873
874 dlg.SetTheme(GetTheme());
875 dlg.SetData(pOption);
876 ret = dlg.DoModal();
877 return ret==IDOK ? RET_OK : RET_ABORT;
878 }
879
880 void CEnbanFukusyaDlg::LoadIniFile()
881 {
882 char buf[80];
883
884 GetRegString("theme", buf, sizeof(buf));
885 if(!strcmp(buf, "towadako")){
886 m_nThemeNumber = 2;
887 }
888 else if(!strcmp(buf, "aqua")){
889 m_nThemeNumber = 1;
890 }
891 else{
892 m_nThemeNumber = 0;
893 }
894 }
895
896 void CEnbanFukusyaDlg::SaveIniFile()
897 {
898 char *type;
899
900 switch(m_nThemeNumber){
901 case 1:
902 type = "aqua";
903 break;
904 case 2:
905 type = "towadako";
906 break;
907 default:
908 type = "normal";
909 }
910 WriteRegString("theme", type);
911 }
912
913 void CEnbanFukusyaDlg::SetArgReader(LPCTSTR lpszReader)
914 {
915 m_csArgReader = lpszReader;
916 }
917
918 LPCTSTR CEnbanFukusyaDlg::GetArgReader()
919 {
920 return m_csArgReader;
921 }
922
923 void CEnbanFukusyaDlg::SetArgWriter(LPCTSTR lpszWriter)
924 {
925 m_csArgWriter = lpszWriter;
926 }
927
928
929 LPCTSTR CEnbanFukusyaDlg::GetArgWriter()
930 {
931 return m_csArgWriter;
932 }
933

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26