13 #pragma managed( push, off ) 47 :
CArray( std::move( rcInstance ) )
58 for (
int nIndex = (
m_nCount - 1 ); 0 <= nIndex; --nIndex ) {
61 if (
nullptr != pcElement ) {
78 for (
int nIndex = 0;; ++nIndex ) {
88 if (
nullptr == pcElement ) {
93 else if ( !pcElement->
Create( hParent, hMenu ) ) {
111 for (
int nIndex = 0;
m_nCount > nIndex; ++nIndex ) {
114 if (
nullptr != pcElement ) {
122 else if ( 0 > result ) {
141 if ( ( 0 > nIndex ) || (
m_nCount <= nIndex ) ) {
164 for (
int nIndex = 0;
m_nCount > nIndex; ++nIndex ) {
167 if (
nullptr != pcElement ) {
169 if ( pcElement->
IsShow() ) {
177 else if ( 0 > result ) {
239 for (
int nIndex = 0;
m_nCount > nIndex; ++nIndex ) {
242 if (
nullptr != pcElement ) {
264 if (
nullptr == pszElementName ) {
269 else if (
nullptr == pfnCreateElement ) {
282 for (
int nIndex = 0;; ++nIndex ) {
284 if ( nCount <= nIndex ) {
289 if ( ( 0 <= nIndex ) && (
m_nCount > nIndex ) ) {
302 if (
nullptr != pcElement ) {
309 if (
Append( pcElement ) ) {
336 if (
nullptr == pszElementName ) {
345 if (
nullptr == pszElementName ) {
350 else for (
int nIndex = 0;; ++nIndex ) {
360 if (
nullptr != pcElement ) {
388 if (
nullptr == pszElementName ) {
397 if (
nullptr == pszElementName ) {
418 for (
int nIndex = 0;; ++nIndex ) {
428 if (
nullptr != pcElement ) {
454 if (
nullptr == pcParent ) {
460 for (
int nIndex = 0;; ++nIndex ) {
470 if (
nullptr != pcElement ) {
472 ++rsChildInfo.m_nCount;
475 if ( pcElement->
IsShow() ) {
477 ++rsChildInfo.m_nShow;
481 ++rsChildInfo.m_nHide;
485 if ( pcParent->CanHideChildWindow( pcElement ) ) {
487 ++rsChildInfo.m_nHideable;
491 if ( pcParent->CanDeleteChildWindow( pcElement ) ) {
493 ++rsChildInfo.m_nDeletable;
516 for (
int nIndex = 0;
m_nCount > nIndex; ++nIndex ) {
519 if (
nullptr != pcElement ) {
542 for (
int nIndex = 0;
m_nCount > nIndex; ++nIndex ) {
545 if (
nullptr != pcElement ) {
548 if (
nullptr != pcPane ) {
568 if (
nullptr == pcParent ) {
574 for (
int nIndex = 0;; ++nIndex ) {
584 if (
nullptr != pcElement ) {
586 if ( !pcParent->ShowChildWindow( pcElement, bShow ) ) {
610 if (
nullptr == pcParent ) {
616 for (
int nIndex =
m_nCount;; --nIndex ) {
626 if (
nullptr != pcElement ) {
633 else if ( !pcParent->DeleteChildWindow( pcElement ) ) {
652 if (
nullptr == pcElement ) {
657 else if (
Append( pcElement ) ) {
659 if ( pcElement->Create( hParent ) ) {
687 if ( 0 == ::IsWindow( hParent ) ) {
692 else if (
nullptr == pfnCreateElement ) {
699 if (
nullptr == pcElement ) {
725 if (
nullptr == hMenu ) {
730 else if (
nullptr == pcParent ) {
735 else if (
nullptr == pszElementName ) {
741 int nOrder = pcParent->GetOrderIndex();
748 WORD wCode =
static_cast< WORD
>( nOrder );
751 HMENU hSubMenu = ::CreatePopupMenu();
752 if (
nullptr == hSubMenu ) {
758 for (
int nIndex = 0;; ++nIndex ) {
764 if ( 0 < ::GetMenuItemCount( hSubMenu ) ) {
766 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
770 UINT uId = MAKELONG( wIdNew, wCode );
771 ::AppendMenuW( hSubMenu, MF_STRING, uId,
CString().Format( L
"新規%s", pszElementName ) );
772 SetMenuCommandData( hSubMenu, uId, reinterpret_cast< ULONG_PTR >( pcParent->GetHandle() ) );
776 if ( 0 < ::GetMenuItemCount( hMenu ) ) {
778 ::AppendMenuW( hMenu, MF_SEPARATOR, 0,
nullptr );
782 ::AppendMenuW( hMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubMenu ),
CString().Format( L
"%sリスト", pszElementName ) );
785 ::EnableMenuItem( hMenu, ( ::GetMenuItemCount( hMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
795 if (
nullptr != pcElement ) {
797 HMENU hSubSubMenu = ::CreatePopupMenu();
798 if (
nullptr == hSubSubMenu ) {
805 if ( 0 < ::GetMenuItemCount( hSubSubMenu ) ) {
807 wchar_t szBuffer[ MAX_PATH ];
808 ::GetWindowTextW( pcElement->
GetHandle(), szBuffer, MAX_PATH );
811 if ( 0 < ::GetMenuItemCount( hSubMenu ) ) {
813 ::AppendMenuW( hSubMenu, MF_SEPARATOR, 0,
nullptr );
817 ::AppendMenuW( hSubMenu, MF_POPUP, reinterpret_cast< UINT_PTR >( hSubSubMenu ), szBuffer );
820 ::EnableMenuItem( hSubMenu, ( ::GetMenuItemCount( hSubMenu ) - 1 ), ( MF_BYPOSITION | MFS_DISABLED ) );
825 ::DestroyMenu( hSubSubMenu );
830 ::DestroyMenu( hSubSubMenu );
838 ::DestroyMenu( hSubMenu );
857 #pragma managed( pop ) static wchar_t const *const KEY_CURRENT_INDEX
カレントインデックスキー文字列
virtual bool Get(int &rnValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値取得関数
virtual HWND & GetHandle() noexcept
ウィンドウハンドル取得関数
virtual bool ShowChildAll(bool bShow) noexcept
全子ウィンドウ表示関数
virtual bool Create(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept override
ウィンドウ作成関数
virtual int GetShowCurrentIndex() const noexcept
表示状態カレントインデックス取得関数
virtual bool IsShow() noexcept
表示フラグ取得関数
virtual bool ResumeElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報復元関数
virtual CWndElement * GetElementWindow(HWND hWnd) const noexcept
エレメントウィンドウ取得関数
virtual bool CreateListWindow(HWND hParent=nullptr, HMENU hMenu=nullptr) noexcept
エレメントウィンドウリスト作成関数
virtual bool SetCurrentIndex(int nIndex) noexcept
カレントインデックス設定関数
virtual CWndElement * GetShowCurrentElement() const noexcept
表示状態カレントエレメントウィンドウ取得関数
virtual bool Append(CArray const &rcInstance) noexcept
追加関数
virtual void Clear() noexcept
クリア関数
LIB_WINDOW_API int GetEnableMenuCommandCount(HMENU hMenu) noexcept
メニューコマンド有効数取得関数
virtual bool ResumeConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報復元関数
#define LIB_WINDOW_API
ダイナミックライブラリインポート宣言
virtual CWndPane * GetElementListOrderPane(int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号ペインウィンドウ取得関数
virtual int GetCurrentIndex() const noexcept
カレントインデックス取得関数
virtual bool DeleteChildAll() noexcept
全子ウィンドウ削除関数
virtual bool GetChildElementListInfo(CWndPane *pcParent, SChildPaneInfo &rsChildInfo) noexcept
子エレメントウィンドウリスト情報取得関数
virtual bool AppendElementWindow(HWND hParent, CWndElement *pcElement) noexcept
エレメントウィンドウ追加関数
virtual bool Set(int nValue, wchar_t const *pszKey=nullptr, int nIndex=-1) noexcept
整数型設定値設定関数
virtual bool SaveConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報保存関数
virtual void Clear() noexcept override
クリア関数
virtual bool InitConfig(CJsonConfig &rcConfig) noexcept
ウィンドウ構成情報初期化関数
virtual bool RemoveElementWindow(CWndElement *pcElement) noexcept
エレメントウィンドウ削除関数
static wchar_t const *const KEY_ELEMENT_COUNT
エレメントウィンドウ数キー文字列
virtual bool AppendDebugMenu(HMENU hMenu) noexcept
デバッグメニュー追加関数
virtual bool AppendElementListDebugSubMenu(HMENU hMenu, CWndPane *pcParent, wchar_t const *pszElementName, WORD wIdNew) noexcept
エレメントウィンドウリストデバッグサブメニュー追加関数
static wchar_t const *const SECTION_ELEMENT_INFO
エレメントウィンドウ情報セクション文字列
virtual bool ShowElementListAll(CWndPane *pcParent, bool bShow) noexcept
全エレメントウィンドウリスト表示関数
virtual int GetElementListOrderIndex(CWndPane *pcPane, int *pnOrder) noexcept
エレメントウィンドウリストオーダー番号取得関数
virtual CWndElement * GetCurrentElement() const noexcept
カレントエレメントウィンドウ取得関数
LIB_WINDOW_API bool SetMenuCommandData(HMENU hMenu, UINT uId, ULONG_PTR uData) noexcept
メニューコマンドデータ設定関数
virtual bool DeleteElementListAll(CWndPane *pcParent) noexcept
全エレメントウィンドウリスト削除関数
virtual CWndElement * AppendNewElementWindow(HWND hParent, CWndElement *(*pfnCreateElement)()) noexcept
新規エレメントウィンドウ追加関数
virtual bool GetChildPaneInfo(SChildPaneInfo &rsChildInfo) noexcept
子ペインウィンドウ情報取得関数
virtual CWndPane * GetOrderPane(int *pnOrder) noexcept
オーダー番号ペインウィンドウ取得関数
virtual bool SaveElementListConfig(CJsonConfig &rcConfig, wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報保存関数
CWndList() noexcept
コンストラクタ
JSON構成情報自動セクションブロッククラスヘッダファイル
virtual bool InitElementListConfig(CJsonConfig &rcConfig, CWndElement *(*pfnCreateElement)(), wchar_t const *pszElementName) noexcept
エレメントウィンドウリスト構成情報初期化関数
virtual int GetOrderIndex(CWndPane *pcPane=nullptr, int *pnOrder=nullptr) noexcept
ペインウィンドウオーダー番号取得関数