From 0c26d699c2ccdda75680fe83f2cb6cb1cd6535db Mon Sep 17 00:00:00 2001 From: RD42 <42702181+dashr9230@users.noreply.github.com> Date: Fri, 24 May 2024 23:05:44 +0800 Subject: [PATCH] [saco] Implement `CDXUTDialog::InitControl(...)` --- saco/d3d9/common/DXUTgui.cpp | 26 ++++++++++++++++++++++++++ saco/d3d9/common/DXUTgui.h | 2 ++ 2 files changed, 28 insertions(+) diff --git a/saco/d3d9/common/DXUTgui.cpp b/saco/d3d9/common/DXUTgui.cpp index ac7395e..4fe6e1b 100644 --- a/saco/d3d9/common/DXUTgui.cpp +++ b/saco/d3d9/common/DXUTgui.cpp @@ -286,6 +286,32 @@ DXUTFontNode* CDXUTDialog::GetFont( UINT index ) return m_pManager->GetFontNode( m_Fonts.GetAt( index ) ); } + +//-------------------------------------------------------------------------------------- +HRESULT CDXUTDialog::InitControl( CDXUTControl* pControl ) +{ + HRESULT hr; + + if( pControl == NULL ) + return E_INVALIDARG; + + pControl->m_Index = m_Controls.GetSize(); + + // Look for a default Element entries + for( int i=0; i < m_DefaultElements.GetSize(); i++ ) + { + DXUTElementHolder* pElementHolder = m_DefaultElements.GetAt( i ); + if( pElementHolder->nControlType == pControl->GetType() ) + pControl->SetElement( pElementHolder->iElement, &pElementHolder->Element ); + } + + V_RETURN( pControl->OnInit() ); + + return S_OK; +} + + + //-------------------------------------------------------------------------------------- // CDXUTControl class //-------------------------------------------------------------------------------------- diff --git a/saco/d3d9/common/DXUTgui.h b/saco/d3d9/common/DXUTgui.h index 6fc4338..aca2572 100644 --- a/saco/d3d9/common/DXUTgui.h +++ b/saco/d3d9/common/DXUTgui.h @@ -91,6 +91,8 @@ public: CDXUTDialog(); ~CDXUTDialog(); + HRESULT InitControl( CDXUTControl* pControl ); + // Methods called by controls void SendEvent( UINT nEvent, bool bTriggeredByUser, CDXUTControl* pControl );