All 5 phases of the open-source Decal rebuild: Phase 1: 14 decompiled .NET projects (Interop.*, Adapter, FileService, DecalUtil) Phase 2: 10 native DLLs rewritten as C# COM servers with matching GUIDs - DecalDat, DHS, SpellFilter, DecalInput, DecalNet, DecalFilters - Decal.Core, DecalControls, DecalRender, D3DService Phase 3: C++ shims for Inject.DLL (D3D9 hooking) and LauncherHook.DLL Phase 4: DenAgent WinForms tray application Phase 5: WiX installer and build script 25 C# projects building with 0 errors. Native C++ projects require VS 2022 + Windows SDK (x86). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
46 lines
No EOL
1.1 KiB
C++
46 lines
No EOL
1.1 KiB
C++
// ChoiceDropDown.cpp : Implementation of cChoiceDropDown
|
|
#include "stdafx.h"
|
|
#include "DecalControls.h"
|
|
#include "ChoiceDropDown.h"
|
|
|
|
#include "Choice.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// cChoiceDropDown
|
|
|
|
STDMETHODIMP cChoiceDropDown::Reformat()
|
|
{
|
|
RECT rcLayer;
|
|
m_pSite->get_Position( &rcLayer );
|
|
|
|
// Move our only child to cover the entire client
|
|
CComPtr< ILayerSite > pChild;
|
|
m_pSite->get_Child( 0, ePositionByIndex, &pChild );
|
|
|
|
if( ( rcLayer.right - rcLayer.left ) < 16 || ( rcLayer.bottom - rcLayer.top ) < 16 )
|
|
{
|
|
RECT rcClient = { 0, 0, 0, 0 };
|
|
pChild->put_Position( &rcClient );
|
|
}
|
|
else
|
|
{
|
|
RECT rcClient = { 0, 0, rcLayer.right - rcLayer.left, rcLayer.bottom - rcLayer.top };
|
|
pChild->put_Position( &rcClient );
|
|
}
|
|
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP cChoiceDropDown::PopupCancel(MouseState *pMS, VARIANT_BOOL *pbContinue)
|
|
{
|
|
// Allow clicks in the parent object
|
|
*pbContinue = ( pMS->over == m_pChoice ) ? VARIANT_TRUE : VARIANT_FALSE;
|
|
|
|
if( !( *pbContinue ) )
|
|
{
|
|
m_pChoice->m_nHotSelect = -1;
|
|
m_pChoice->setPopup( false );
|
|
}
|
|
|
|
return S_OK;
|
|
} |