Solution46
CAppTestMenu.cpp
[詳解]
1 //=============================================================================
2 /// @file
3 /// テストアプリケーションメインメニュー実装ファイル
4 ///
5 /// テストアプリケーションメインメニュー実装ファイルです。
6 ///
7 /// $Id: CAppTestMenu.cpp 245 2019-03-20 15:03:41Z admin $
8 /// $Date: 2019-03-21 00:03:41 +0900 (2019/03/21 (木)) $
9 /// $Author: admin $
10 ///
11 /// @attention なし
12 
13 #pragma managed( push, off )
14 
15 //=============================================================================
16 // インクルードファイル
17 #include <CAppTestMenu.h>
18 #include <CAppTestMenuConsole.h>
19 #include <CAppTestMenuWindow.h>
20 
21 //=============================================================================
22 // テストアプリケーション名前空間
23 namespace AppTest {
24  //=========================================================================
25  // テストアプリケーションメインメニュークラス
26  //=========================================================================
27  // 構築子と解体子
28  //-------------------------------------------------------------------------
29  // コンストラクタ
31  // 基底クラスコンストラクタ
32  : CAppTestMenuBase( &s_sMenuInfo )
33  {}
34 
35  //=========================================================================
36  // 公開関数
37  //-------------------------------------------------------------------------
38  // サブメニュー取得関数
40  // 処理ブロック
41  CAppTestMenuBase* result = nullptr;
42  do {
43  // インデックスを調べる
44  switch ( static_cast< EMenuItem >( m_nMenuIndex ) ) {
45  case EMenuItem::MenuConsole: result = new CAppTestMenuConsole; break; // コンソールメニュー
46  case EMenuItem::MenuWindow: result = new CAppTestMenuWindow; break; // ウィンドウメニュー
47  }
48  } while ( false );
49 
50  // 実行結果を返す
51  return result;
52  }
53 
54  //=========================================================================
55  // 静的限定公開定数
56  //-------------------------------------------------------------------------
57  // メニュー定義情報構造体
59  L"テストアプリケーションメニュー", // メニュー名称
60  static_cast< int >( EMenuItem::Size ), // メニュー項目数
61  s_sItemInfo, // メニュー項目情報配列
62  };
63 
64  //-------------------------------------------------------------------------
65  // メニュー項目情報配列
67  { L"コンソールメニュー", true }, // MenuConsole
68  { L"ウィンドウメニュー", true }, // ManuWindow
69  };
70 }
71 
72 #pragma managed( pop )
テストアプリケーション名前空間
Definition: AppTest.h:25
メニュー定義情報構造体
Definition: CConsoleMenu.h:55
テストアプリケーションコンソールメニュークラス
CAppTestMenu() noexcept
コンストラクタ
テストアプリケーションコンソールメニュークラスヘッダファイル
int m_nMenuIndex
メニュー項目インデックス
Definition: CConsoleMenu.h:230
テストアプリケーションウィンドウメニュークラス
テストアプリケーションメニュー基底クラス
static SMenuInfo const s_sMenuInfo
メニュー定義情報構造体
Definition: CAppTestMenu.h:90
テストアプリケーションウィンドウメニュークラスヘッダファイル
メニュー項目情報構造体
Definition: CConsoleMenu.h:43
テストアプリケーションメインメニュークラスヘッダファイル
virtual CAppTestMenuBase * GetSubMenu() const noexcept override
サブメニュー取得関数
static SMenuItemInfo const s_sItemInfo[static_cast< int >(EMenuItem::Size)]
メニュー項目情報配列
Definition: CAppTestMenu.h:91