Initial commit: Complete open-source Decal rebuild
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>
This commit is contained in:
commit
d1442e3747
1382 changed files with 170725 additions and 0 deletions
46
Native/DecalControls/ChoiceDropDown.cpp
Normal file
46
Native/DecalControls/ChoiceDropDown.cpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
// 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue