source: dev/trunk/ab5.0/abdev/abdev/include/MainFrame.h@ 772

Last change on this file since 772 was 772, checked in by イグトランス (egtra), 15 years ago

Windows 7タスクバーへの対応を実装。
(#245)

File size: 15.4 KB
Line 
1#pragma once
2
3#include <boost/shared_ptr.hpp>
4
5//サイズ変更枠の太さ
6#define LEVER_THICK 5
7
8#define WM_SHOWERROR WM_USER+70 //エラー表示メッセージ
9
10#define WM_SETCOMPILEVIEW WM_USER+71 //コンパイラウィンドウが表示されたとき
11#define WM_DESTROYCOMPILEVIEW WM_USER+72 //コンパイラウィンドウが破棄されたとき
12
13#define WM_SETDEBUGGERBASE WM_USER+73 //デバッガベースウィンドウが表示されたとき
14#define WM_DESTROYDEBUGGERBASE WM_USER+74 //デバッガベースウィンドウが破棄されたとき
15
16#define WM_SETDEBUGGERVIEW WM_USER+75 //デバッガウィンドウが表示されたとき
17#define WM_DESTROYDEBUGGERVIEW WM_USER+76 //デバッガウィンドウが表示されたとき
18
19#ifdef HAVE_WINDOWS_7_SDK
20class TaskbarList;
21#endif
22
23namespace ActiveBasic{ namespace IDE{
24
25
26class MainFrame
27 : public WindowComponents::MdiWindow
28{
29 WindowAreaManager wam;
30 UINT TaskbarButtonCreated;
31#ifdef HAVE_WINDOWS_7_SDK
32 boost::shared_ptr<TaskbarList> taskbarList;
33#endif
34
35public:
36 MainFrame();
37
38 // リサイズ時のリフレッシュ
39 void Resized();
40
41 // WebブラウザでURLを開く
42 void OpenWebBrowser( const std::string &url );
43
44 // Explorerでパスを開く
45 void OpenExplorer( const std::string &filepath );
46
47 // 生成された
48 ::LRESULT OnCreate( ::CREATESTRUCT const* );
49
50 // OSが終了する
51 BOOL OnQueryEndSession(UINT nSource, UINT uLogOff);
52
53 // 「閉じる」ボタンがクリックされた
54 void OnClose();
55
56 // リサイズされた
57 void OnSize(UINT nType, CSize size);
58
59 // 破棄された
60 void OnDestroy();
61
62 // タイマーイベント
63 void OnTimer( UINT_PTR id );
64
65 // クリップボード内のデータが変更した
66 void OnDrawClipboard();
67
68 // メニューが選択された
69 void OnMenuSelect( UINT nItemID, UINT nFlags, HMENU menu );
70
71 // メニューがアクティブになる直前に送られる
72 void OnInitMenu( HMENU menu );
73
74 // メニューアイテムのサイズが要求された
75 void OnMeasureItem( int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct );
76
77 // メニューアイテムの描画が要求された
78 void OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct );
79
80 // 拡張コントロールからメッセージが通知された
81 LRESULT OnNotify( int idCtrl, LPNMHDR pnmh );
82
83 // ファイルがドロップされた
84 void OnDropFiles( HDROP hDropInfo );
85
86 // 再描画
87 void OnPaint( HDC dummy );
88
89 // ソースコード表示メッセージ
90 ::LRESULT OnShowSourceLine( ::UINT msg, ::WPARAM wParam, ::LPARAM lParam, ::BOOL& handled );
91
92#ifdef HAVE_WINDOWS_7_SDK
93 // タスクバーボタンが生成された
94 ::LRESULT OnTaskbarButtonCreated(::UINT msg, ::WPARAM wParam, ::LPARAM lParam);
95
96 // 子ウィンドウが生成された
97 void AddChildWindow( HWND hwndChild );
98
99 // 子ウィンドウが破棄された
100 void DeleteChildWindow( HWND hwndChild );
101
102 // 子ウィンドウがアクティブになった
103 void ActivateChildWindow( HWND hwndChild );
104
105 // タブの順序が変更になった
106 void SetTabOrder( HWND hwndChild, HWND hwndInsertBefore );
107
108 // サムネイル画像が古くなった(ので更新したい)
109 void InvalidateBitmap( HWND hwndChild );
110#endif
111
112 // 「新規作成」メニューがクリックされた
113 void OnCmdNew( UINT uNotifyCode, int nID, CWindow wndCtl );
114
115 // 「開く」メニューがクリックされた
116 void OnCmdOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
117
118 // 「閉じる」メニューがクリックされた
119 void OnCmdClose( UINT uNotifyCode, int nID, CWindow wndCtl );
120
121 // 「プロジェクトを開く」メニューがクリックされた
122 void OnCmdProjectOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
123
124 // 「プロジェクトを保存」メニューがクリックされた
125 void OnCmdProjectSave( UINT uNotifyCode, int nID, CWindow wndCtl );
126
127 // 「プロジェクトを閉じる」メニューがクリックされた
128 void OnCmdProjectClose( UINT uNotifyCode, int nID, CWindow wndCtl );
129
130 // 「プロジェクト フォルダを開く」メニューがクリックされた
131 void OnCmdProjectFolderOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
132
133 // 「保存」メニューがクリックされた
134 void OnCmdSave( UINT uNotifyCode, int nID, CWindow wndCtl );
135
136 // 「名前を付けて保存」メニューがクリックされた
137 void OnCmdNewSave( UINT uNotifyCode, int nID, CWindow wndCtl );
138
139 // 「文字コードを指定して保存」メニューがクリックされた
140 void OnCmdCodeSave( UINT uNotifyCode, int nID, CWindow wndCtl );
141
142 // 「すべて保存」メニューがクリックされた
143 void OnCmdAllSave( UINT uNotifyCode, int nID, CWindow wndCtl );
144
145 // 「ページ設定」メニューがクリックされた
146 void OnCmdPageSet( UINT uNotifyCode, int nID, CWindow wndCtl );
147
148 // 「印刷プレビュー」メニューがクリックされた
149 void OnCmdPreview( UINT uNotifyCode, int nID, CWindow wndCtl );
150
151 // 「印刷」メニューがクリックされた
152 void OnCmdPrintOut( UINT uNotifyCode, int nID, CWindow wndCtl );
153
154 // 「終了」メニューがクリックされた
155 void OnCmdExit( UINT uNotifyCode, int nID, CWindow wndCtl );
156
157 // 「元に戻す」メニューがクリックされた
158 void OnCmdUndo( UINT uNotifyCode, int nID, CWindow wndCtl );
159
160 // 「やり直し」メニューがクリックされた
161 void OnCmdRedo( UINT uNotifyCode, int nID, CWindow wndCtl );
162
163 // 「切り取り」メニューがクリックされた
164 void OnCmdCut( UINT uNotifyCode, int nID, CWindow wndCtl );
165
166 // 「コピー」メニューがクリックされた
167 void OnCmdCopy( UINT uNotifyCode, int nID, CWindow wndCtl );
168
169 // 「貼り付け」メニューがクリックされた
170 void OnCmdPaste( UINT uNotifyCode, int nID, CWindow wndCtl );
171
172 // 「削除」メニューがクリックされた
173 void OnCmdDelete( UINT uNotifyCode, int nID, CWindow wndCtl );
174
175 // 「すべて選択」メニューがクリックされた
176 void OnCmdAllSelect( UINT uNotifyCode, int nID, CWindow wndCtl );
177
178 // 「検索」メニューがクリックされた
179 void OnCmdFind( UINT uNotifyCode, int nID, CWindow wndCtl );
180
181 // 「置換」メニューがクリックされた
182 void OnCmdPermutation( UINT uNotifyCode, int nID, CWindow wndCtl );
183
184 // 変換メニューのいずれかがクリックされた
185 void OnCmdConvertX( UINT uNotifyCode, int nID, CWindow wndCtl );
186
187 // 「文字カウント」メニューがクリックされた
188 void OnCmdStringCount( UINT uNotifyCode, int nID, CWindow wndCtl );
189
190 // 「選択範囲の文字カウント」メニューがクリックされた
191 void OnCmdSelStringCount( UINT uNotifyCode, int nID, CWindow wndCtl );
192
193 // 「プロジェクトビュー」メニューがクリックされた
194 void OnCmdProjectView( UINT uNotifyCode, int nID, CWindow wndCtl );
195
196 // 「プロジェクトオプション」メニューがクリックされた
197 void OnCmdProjectOption( UINT uNotifyCode, int nID, CWindow wndCtl );
198
199 // 「最前面表示」メニューがクリックされた
200 void OnCmdTopMost( UINT uNotifyCode, int nID, CWindow wndCtl );
201
202 // 「右端で折り返す」メニューがクリックされた
203 void OnCmdRightTurn( UINT uNotifyCode, int nID, CWindow wndCtl );
204
205 // 「オプション」メニューがクリックされた
206 void OnCmdSet( UINT uNotifyCode, int nID, CWindow wndCtl );
207
208 // 「デバッグ実行」メニューがクリックされた
209 void OnCmdDebug( UINT uNotifyCode, int nID, CWindow wndCtl );
210
211 // 「デバッグビルド」メニューがクリックされた
212 void OnCmdDebugCompile( UINT uNotifyCode, int nID, CWindow wndCtl );
213
214 // 「アタッチ」メニューがクリックされた
215 void OnCmdAttach( UINT uNotifyCode, int nID, CWindow wndCtl );
216
217 // 「リリースビルド」メニューがクリックされた
218 void OnCmdReleaseCompile( UINT uNotifyCode, int nID, CWindow wndCtl );
219
220 // 「リリース実行」メニューがクリックされた
221 void OnCmdReleaseRun( UINT uNotifyCode, int nID, CWindow wndCtl );
222
223 // 「ステップイン」メニューがクリックされた
224 void OnCmdStepIn( UINT uNotifyCode, int nID, CWindow wndCtl );
225
226 // 「ステップオーバー」メニューがクリックされた
227 void OnCmdStepOver( UINT uNotifyCode, int nID, CWindow wndCtl );
228
229 // 「カーソル行まで実行」メニューがクリックされた
230 void OnCmdStepCursor( UINT uNotifyCode, int nID, CWindow wndCtl );
231
232 // 「ブレークポイント」メニューがクリックされた
233 void OnCmdBreakPoint( UINT uNotifyCode, int nID, CWindow wndCtl );
234
235 // 「デバッグの停止」メニューがクリックされた
236 void OnCmdDebugStop( UINT uNotifyCode, int nID, CWindow wndCtl );
237
238 // 「デバッグの一時停止」メニューがクリックされた
239 void OnCmdDebugPause( UINT uNotifyCode, int nID, CWindow wndCtl );
240
241 // Webリンクメニューがクリックされた
242 void OnCmdWebLink( UINT uNotifyCode, int nID, CWindow wndCtl );
243
244 // 「トピックス」メニューがクリックされた
245 void OnCmdTopics( UINT uNotifyCode, int nID, CWindow wndCtl );
246
247 // 「バージョン情報」メニューがクリックされた
248 void OnCmdAbout( UINT uNotifyCode, int nID, CWindow wndCtl );
249
250 // レバーの「ドキュメントセレクト」メニューがクリックされた
251 void OnCmdDocSelectBand( UINT uNotifyCode, int nID, CWindow wndCtl );
252
253 // レバーの「標準」メニューがクリックされた
254 void OnCmdStandardBand( UINT uNotifyCode, int nID, CWindow wndCtl );
255
256 // レバーの「リリース」メニューがクリックされた
257 void OnCmdReleaseBand( UINT uNotifyCode, int nID, CWindow wndCtl );
258
259 // レバーの「デバッグ」メニューがクリックされた
260 void OnCmdDebugBand( UINT uNotifyCode, int nID, CWindow wndCtl );
261
262 // レバーの「プラットフォーム選択」メニューがクリックされた
263 void OnCmdSelectCompilerBand( UINT uNotifyCode, int nID, CWindow wndCtl );
264
265 // レバーの「レバーを固定」メニューがクリックされた
266 void OnCmdNoGripper( UINT uNotifyCode, int nID, CWindow wndCtl );
267
268 // レバーの「レバーをリセット」メニューがクリックされた
269 void OnCmdResetRebar( UINT uNotifyCode, int nID, CWindow wndCtl );
270
271 // タブの「自分以外のウィンドウを閉じる」メニューがクリックされた
272 void OnCmdAllCloseOmitMyself( UINT uNotifyCode, int nID, CWindow wndCtl );
273
274 // タブの「絶対パスをコピー」メニューがクリックされた
275 void OnCmdPathCopy( UINT uNotifyCode, int nID, CWindow wndCtl );
276
277 // タブの「フォルダを開く」メニューがクリックされた
278 void OnCmdFolderOpen( UINT uNotifyCode, int nID, CWindow wndCtl );
279
280 // タブの「ファイルを削除」メニューがクリックされた
281 void OnCmdDeleteFile( UINT uNotifyCode, int nID, CWindow wndCtl );
282
283 // タブの「タブの色」メニューがクリックされた
284 void OnCmdColor( UINT uNotifyCode, int nID, CWindow wndCtl );
285
286private:
287 // メッセージマップ
288 BEGIN_MSG_MAP( MainFrame )
289 MSG_WM_CREATE( OnCreate )
290 MSG_WM_SIZE( OnSize )
291 MSG_WM_QUERYENDSESSION( OnQueryEndSession )
292 MSG_WM_CLOSE( OnClose )
293 MSG_WM_DESTROY( OnDestroy )
294 MSG_WM_TIMER( OnTimer )
295 MSG_WM_DRAWCLIPBOARD( OnDrawClipboard )
296 MSG_WM_MENUSELECT( OnMenuSelect )
297 MSG_WM_INITMENU( OnInitMenu )
298 MSG_WM_MEASUREITEM( OnMeasureItem )
299 MSG_WM_DRAWITEM( OnDrawItem )
300 MSG_WM_NOTIFY( OnNotify );
301 MSG_WM_DROPFILES( OnDropFiles )
302 MSG_WM_PAINT( OnPaint )
303 MESSAGE_HANDLER( WM_SHOWERROR, OnShowSourceLine )
304#ifdef HAVE_WINDOWS_7_SDK
305 MESSAGE_HANDLER_EX( TaskbarButtonCreated, OnTaskbarButtonCreated )
306#endif
307 COMMAND_ID_HANDLER_EX( IDM_NEW, OnCmdNew )
308 COMMAND_ID_HANDLER_EX( IDM_OPEN, OnCmdOpen )
309 COMMAND_ID_HANDLER_EX( IDM_CLOSE, OnCmdClose )
310#ifndef THETEXT
311 COMMAND_ID_HANDLER_EX( IDM_PROJECT_OPEN, OnCmdProjectOpen )
312 COMMAND_ID_HANDLER_EX( IDM_PROJECT_SAVE, OnCmdProjectSave )
313 COMMAND_ID_HANDLER_EX( IDM_PROJECT_CLOSE, OnCmdProjectClose )
314 COMMAND_ID_HANDLER_EX( IDM_PROJECT_FOLDER_OPEN, OnCmdProjectFolderOpen )
315#endif
316 COMMAND_ID_HANDLER_EX( IDM_SAVE, OnCmdSave )
317 COMMAND_ID_HANDLER_EX( IDM_NEWSAVE, OnCmdNewSave )
318 COMMAND_ID_HANDLER_EX( IDM_CODE_SAVE, OnCmdCodeSave )
319 COMMAND_ID_HANDLER_EX( IDM_ALLSAVE, OnCmdAllSave )
320 COMMAND_ID_HANDLER_EX( IDM_PAGESET, OnCmdPageSet )
321 COMMAND_ID_HANDLER_EX( IDM_PREVIEW, OnCmdPreview )
322 COMMAND_ID_HANDLER_EX( IDM_PRINTOUT, OnCmdPrintOut )
323 COMMAND_ID_HANDLER_EX( IDM_EXIT, OnCmdExit )
324 COMMAND_ID_HANDLER_EX( IDM_UNDO, OnCmdUndo )
325 COMMAND_ID_HANDLER_EX( (WORD)IDM_ACCEL_UNDO, OnCmdUndo )
326 COMMAND_ID_HANDLER_EX( IDM_REDO, OnCmdRedo )
327 COMMAND_ID_HANDLER_EX( (WORD)IDM_ACCEL_REDO, OnCmdRedo )
328 COMMAND_ID_HANDLER_EX( IDM_CUT, OnCmdCut )
329 COMMAND_ID_HANDLER_EX( IDM_COPY, OnCmdCopy )
330 COMMAND_ID_HANDLER_EX( IDM_PASTE, OnCmdPaste )
331 COMMAND_ID_HANDLER_EX( IDM_DELETE, OnCmdDelete )
332 COMMAND_ID_HANDLER_EX( IDM_ALLSELECT, OnCmdAllSelect )
333 COMMAND_ID_HANDLER_EX( IDM_FIND, OnCmdFind )
334 COMMAND_ID_HANDLER_EX( IDM_PERMUTATION, OnCmdPermutation )
335 COMMAND_ID_HANDLER_EX( IDM_CONV_ALPHA_SMALL, OnCmdConvertX )
336 COMMAND_ID_HANDLER_EX( IDM_CONV_ALPHA_BIG, OnCmdConvertX )
337 COMMAND_ID_HANDLER_EX( IDM_CONV_HALF, OnCmdConvertX )
338 COMMAND_ID_HANDLER_EX( IDM_CONV_MULTI, OnCmdConvertX )
339 COMMAND_ID_HANDLER_EX( IDM_CONV_KATAKANA, OnCmdConvertX )
340 COMMAND_ID_HANDLER_EX( IDM_CONV_HIRAGANA, OnCmdConvertX )
341 COMMAND_ID_HANDLER_EX( IDM_CONV_SPACE, OnCmdConvertX )
342 COMMAND_ID_HANDLER_EX( IDM_CONV_TAB, OnCmdConvertX )
343#ifdef THETEXT
344 COMMAND_ID_HANDLER_EX( IDM_CONV_HASRETURN, OnCmdConvertX )
345 COMMAND_ID_HANDLER_EX( IDM_CONV_QUOTE, OnCmdConvertX )
346 COMMAND_ID_HANDLER_EX( IDM_STRING_COUNT, OnCmdStringCount )
347 COMMAND_ID_HANDLER_EX( IDM_SEL_STRING_COUNT, OnCmdSelStringCount )
348#else
349 COMMAND_ID_HANDLER_EX( IDM_CODEFORMAT, OnCmdConvertX )
350#endif
351 COMMAND_ID_HANDLER_EX( IDM_PROJECTVIEW, OnCmdProjectView )
352 COMMAND_ID_HANDLER_EX( IDM_PROJECT_OPTION, OnCmdProjectOption )
353 COMMAND_ID_HANDLER_EX( IDM_TOPMOST, OnCmdTopMost )
354#ifdef THETEXT
355 COMMAND_ID_HANDLER_EX( IDM_RIGHT_TURN, OnCmdRightTurn )
356#endif
357 COMMAND_ID_HANDLER_EX( IDM_SET, OnCmdSet )
358#ifndef THETEXT
359 COMMAND_ID_HANDLER_EX( IDM_DEBUG, OnCmdDebug )
360 COMMAND_ID_HANDLER_EX( IDM_DEBUGCOMPILE, OnCmdDebugCompile )
361 COMMAND_ID_HANDLER_EX( IDM_ATTACH, OnCmdAttach )
362 COMMAND_ID_HANDLER_EX( IDM_RELEASECOMPILE, OnCmdReleaseCompile )
363 COMMAND_ID_HANDLER_EX( IDM_RELEASERUN, OnCmdReleaseRun )
364 COMMAND_ID_HANDLER_EX( IDM_STEP_IN, OnCmdStepIn )
365 COMMAND_ID_HANDLER_EX( IDM_STEP_OVER, OnCmdStepOver )
366 COMMAND_ID_HANDLER_EX( IDM_STEP_CURSOR, OnCmdStepCursor )
367 COMMAND_ID_HANDLER_EX( IDM_BREAKPOINT, OnCmdBreakPoint )
368 COMMAND_ID_HANDLER_EX( IDM_DEBUG_STOP, OnCmdDebugStop )
369 COMMAND_ID_HANDLER_EX( IDM_DEBUG_PAUSE, OnCmdDebugPause )
370 COMMAND_ID_HANDLER_EX( IDM_COMMUNITY, OnCmdWebLink )
371 COMMAND_ID_HANDLER_EX( IDM_COMMU_SEARCH, OnCmdWebLink )
372 COMMAND_ID_HANDLER_EX( IDM_COMMU_PM, OnCmdWebLink )
373 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM1, OnCmdWebLink )
374 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM2, OnCmdWebLink )
375 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM3, OnCmdWebLink )
376 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM4, OnCmdWebLink )
377 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM5, OnCmdWebLink )
378 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM6, OnCmdWebLink )
379 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM7, OnCmdWebLink )
380 COMMAND_ID_HANDLER_EX( ID_COMMU_FORUM8, OnCmdWebLink )
381 COMMAND_ID_HANDLER_EX( IDM_AB_WEBSITE, OnCmdWebLink )
382 COMMAND_ID_HANDLER_EX( IDM_ACTBDL, OnCmdWebLink )
383#else
384 COMMAND_ID_HANDLER_EX( IDM_DSHOMEPAGE, OnCmdWebLink )
385#endif
386 COMMAND_ID_HANDLER_EX( IDM_TOPIC, OnCmdTopics )
387 COMMAND_ID_HANDLER_EX( IDM_ABOUT, OnCmdAbout )
388 COMMAND_ID_HANDLER_EX( IDM_DOCSELECTBAND, OnCmdDocSelectBand )
389 COMMAND_ID_HANDLER_EX( IDM_STANDARDBAND, OnCmdStandardBand )
390#ifndef THETEXT
391 COMMAND_ID_HANDLER_EX( IDM_RELEASEBAND, OnCmdReleaseBand )
392 COMMAND_ID_HANDLER_EX( IDM_DEBUGBAND, OnCmdDebugBand )
393 COMMAND_ID_HANDLER_EX( IDM_SELECTCOMPILERBAND, OnCmdSelectCompilerBand )
394#endif
395 COMMAND_ID_HANDLER_EX( IDM_NOGRIPPER, OnCmdNoGripper )
396 COMMAND_ID_HANDLER_EX( IDM_RESET_REBAR, OnCmdResetRebar )
397 COMMAND_ID_HANDLER_EX( IDM_ALLCLOSE_OMIT_MYSELF, OnCmdAllCloseOmitMyself )
398 COMMAND_ID_HANDLER_EX( IDM_PATH_COPY, OnCmdPathCopy )
399 COMMAND_ID_HANDLER_EX( IDM_FOLDER_OPEN, OnCmdFolderOpen )
400 COMMAND_ID_HANDLER_EX( IDM_DELETE_FILE, OnCmdDeleteFile )
401 COMMAND_ID_HANDLER_EX( IDM_USER_COLOR, OnCmdColor )
402 COMMAND_ID_HANDLER_EX( IDM_GRAY, OnCmdColor )
403 COMMAND_ID_HANDLER_EX( IDM_WHITE, OnCmdColor )
404 COMMAND_ID_HANDLER_EX( IDM_RED, OnCmdColor )
405 COMMAND_ID_HANDLER_EX( IDM_GREEN, OnCmdColor )
406 COMMAND_ID_HANDLER_EX( IDM_BLUE, OnCmdColor )
407 COMMAND_ID_HANDLER_EX( IDM_YELLOW, OnCmdColor )
408
409 CHAIN_MSG_MAP(CUpdateUI<WindowComponents::MdiWindow>)
410 CHAIN_MSG_MAP(CMDIFrameWindowImpl<WindowComponents::MdiWindow>)
411 END_MSG_MAP()
412};
413
414
415}}
Note: See TracBrowser for help on using the repository browser.