Solution46
CWndDocking.h
[詳解]
1 //=============================================================================
2 /// @file
3 /// ドッキングウィンドウクラスヘッダファイル
4 ///
5 /// ドッキングウィンドウクラスヘッダファイルです。
6 ///
7 /// $Id: CWndDocking.h 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 once
14 #pragma managed( push, off )
15 
16 //=============================================================================
17 // インクルードファイル
18 #include <CWndDocumentTab.h>
19 #include <CWndToolDocument.h>
20 
21 //=============================================================================
22 // ウィンドウライブラリ名前空間
23 namespace LibWindow {
24  //=========================================================================
25  /// ドッキングウィンドウクラス
26  ///
27  /// ドッキングウィンドウクラスです。
28  ///
29  /// @attention なし
30  ///
32  //=====================================================================
33  // 構築子と解体子
34  public:
35  //---------------------------------------------------------------------
36  /// コンストラクタ
37  ///
38  /// コンストラクタです。
39  ///
40  /// @param なし
41  /// @return なし
42  /// @attention なし
43  ///
44  explicit CWndDocking() noexcept;
45 
46  //---------------------------------------------------------------------
47  /// ムーブコンストラクタ
48  ///
49  /// ムーブコンストラクタです。
50  ///
51  /// @param[in] rcInstance インスタンス左辺値参照
52  /// @return なし
53  /// @attention なし
54  ///
55  explicit CWndDocking( CWndDocking&& rcInstance ) noexcept;
56 
57  //---------------------------------------------------------------------
58  /// デストラクタ
59  ///
60  /// デストラクタです。
61  ///
62  /// @param なし
63  /// @return なし
64  /// @attention なし
65  ///
66  virtual ~CWndDocking() noexcept;
67 
68  //=====================================================================
69  // インライン公開関数
70  public:
71  //---------------------------------------------------------------------
72  /// セクション名取得関数
73  ///
74  /// セクション名取得関数です。
75  ///
76  /// @param なし
77  /// @return 文字列ポインタ
78  /// @attention オーバライド関数です。
79  ///
80  inline virtual wchar_t const* GetSectionName() const noexcept override { return L"ドッキングウィンドウ"; }
81 
82  //---------------------------------------------------------------------
83  /// サイズバーコントロール取得関数
84  ///
85  /// サイズバーコントロール取得関数です。
86  ///
87  /// @param なし
88  /// @return コントロールハンドル
89  /// @attention オーバライド関数です。
90  ///
91  inline virtual HWND GetSizeBar() const noexcept override { return m_hSizeBar; }
92 
93  //---------------------------------------------------------------------
94  /// パーティションサイズ取得関数
95  ///
96  /// パーティションサイズ取得関数です。
97  ///
98  /// @param なし
99  /// @return パーティションサイズ
100  /// @attention オーバライド関数です。
101  ///
102  inline virtual int GetPartitionSize() const noexcept override { return m_nPartitionSize; }
103 
104  //---------------------------------------------------------------------
105  /// パーティションサイズ設定関数
106  ///
107  /// パーティションサイズ設定関数です。
108  ///
109  /// @param[in] nSize パーティションサイズ
110  /// @return 実行結果
111  /// - true 成功
112  /// - false 失敗
113  /// @attention オーバライド関数です。
114  ///
115  inline virtual bool SetPartitionSize( int nSize ) noexcept override { m_nPartitionSize = nSize; return true; }
116 
117  //---------------------------------------------------------------------
118  /// タブ下端表示状態取得関数
119  ///
120  /// タブ下端表示状態取得関数です。
121  ///
122  /// @param なし
123  /// @return タブ下端表示状態
124  /// - true 真
125  /// - false 偽
126  /// @attention オーバライド関数です。
127  ///
128  inline virtual bool IsTabBottom() const noexcept override { return true; }
129 
130  //=====================================================================
131  // 公開関数
132  public:
133  //---------------------------------------------------------------------
134  /// ウィンドウ作成関数
135  ///
136  /// ウィンドウ作成関数です。
137  ///
138  /// @param[in] hParent 親ウィンドウハンドル
139  /// @param[in] hMenu メニューハンドル
140  /// @return 実行結果
141  /// - true 成功
142  /// - false 失敗
143  /// @attention オーバライド関数です。
144  ///
145  virtual bool Create( HWND hParent = nullptr, HMENU hMenu = nullptr ) noexcept override;
146 
147  //---------------------------------------------------------------------
148  /// 各種メッセージ処理関数
149  ///
150  /// 各種メッセージ処理関数です。
151  ///
152  /// @param なし
153  /// @return メッセージ終了コード
154  /// @attention オーバライド関数です。
155  ///
156  virtual LRESULT WmLButtonDblClk() noexcept override;
157 
158  //---------------------------------------------------------------------
159  /// ウィンドウ構成情報初期化関数
160  ///
161  /// ウィンドウ構成情報初期化関数です。
162  ///
163  /// @param[in] rcConfig JSON構成ファイル参照
164  /// @return 実行結果
165  /// - true 成功
166  /// - false 失敗
167  /// @attention オーバライド関数です。
168  ///
169  virtual bool InitConfig( CJsonConfig& rcConfig ) noexcept override;
170 
171  //---------------------------------------------------------------------
172  /// ウィンドウ構成情報保存関数
173  ///
174  /// ウィンドウ構成情報保存関数です。
175  ///
176  /// @param[in] rcConfig JSON構成ファイル参照
177  /// @return 実行結果
178  /// - true 成功
179  /// - false 失敗
180  /// @attention オーバライド関数です。
181  ///
182  virtual bool SaveConfig( CJsonConfig& rcConfig ) noexcept override;
183 
184  //=====================================================================
185  // 静的公開関数
186  public:
187  //---------------------------------------------------------------------
188  /// ツールドキュメントウィンドウ作成関数
189  ///
190  /// ツールドキュメントウィンドウ作成関数です。
191  ///
192  /// @param なし
193  /// @return エレメントウィンドウポインタ
194  /// @attention なし
195  ///
196  static CWndElement* CreateToolDocumentWindow() noexcept { return new CWndToolDocument(); }
197 
198  //=====================================================================
199  // 限定公開変数
200  protected:
201  HWND m_hSizeBar; ///< サイズバーコントロールハンドル
202  int m_nPartitionSize; ///< パーティションサイズ
203 
204  //=====================================================================
205  // 削除関数
206  private:
207  CWndDocking( CWndDocking const& ) = delete;
208  CWndDocking& operator=( CWndDocking const& ) = delete;
209  };
210 }
211 
212 #pragma managed( pop )
ツールドキュメントウィンドウクラスヘッダファイル
HWND m_hSizeBar
サイズバーコントロールハンドル
Definition: CWndDocking.h:201
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
Definition: LibWindowDef.h:30
JSON構成情報クラス
Definition: CJsonConfig.h:31
ウィンドウライブラリ名前空間
Definition: CommandIdDef.h:22
int m_nPartitionSize
パーティションサイズ
Definition: CWndDocking.h:202
ドッキングウィンドウクラス
Definition: CWndDocking.h:31
ツールドキュメントウィンドウクラス
virtual bool SetPartitionSize(int nSize) noexcept override
パーティションサイズ設定関数
Definition: CWndDocking.h:115
virtual int GetPartitionSize() const noexcept override
パーティションサイズ取得関数
Definition: CWndDocking.h:102
static CWndElement * CreateToolDocumentWindow() noexcept
ツールドキュメントウィンドウ作成関数
Definition: CWndDocking.h:196
ドキュメントタブウィンドウクラス
virtual wchar_t const * GetSectionName() const noexcept override
セクション名取得関数
Definition: CWndDocking.h:80
ペインウィンドウクラス
Definition: CWndPane.h:74
virtual bool IsTabBottom() const noexcept override
タブ下端表示状態取得関数
Definition: CWndDocking.h:128
ドキュメントタブウィンドウクラスヘッダファイル
virtual HWND GetSizeBar() const noexcept override
サイズバーコントロール取得関数
Definition: CWndDocking.h:91