windows-nt/Source/XPSP1/NT/public/internal/windows/inc/duser/duirefpointelement.h
2020-09-26 16:20:57 +08:00

54 lines
1.7 KiB
C++

/*
* RefPointElement
*/
#ifndef DUI_CONTROL_REFPOINTELEMENT_H_INCLUDED
#define DUI_CONTROL_REFPOINTELEMENT_H_INCLUDED
#pragma once
namespace DirectUI
{
////////////////////////////////////////////////////////
// RefPointElement
// Class definition
class RefPointElement : public Element
{
public:
static HRESULT Create(OUT Element** ppElement) { return Create(AE_Inactive, ppElement); }
static HRESULT Create(UINT nActive, OUT Element** ppElement);
// System Events
//virtual void OnGroupChanged(int fGroups, bool bLowPri);
virtual void OnPropertyChanged(PropertyInfo* ppi, int iIndex, Value* pvOld, Value* pvNew);
// Global helpers
static Element* FindRefPoint(Element* pe, POINT* ppt);
static RefPointElement* Locate(Element* pe);
// Property definitions
static PropertyInfo* ReferencePointProp;
static PropertyInfo* ActualReferencePointProp;
// Quick property accessors
const POINT* GetReferencePoint(Value** ppv) { *ppv = GetValue(ReferencePointProp, PI_Local); return (*ppv != Value::pvUnset) ? (*ppv)->GetPoint() : NULL; }
const POINT* GetActualReferencePoint(Value** ppv) DUIQuickGetterInd(GetPoint(), ActualReferencePoint, Specified)
HRESULT SetReferencePoint(int x, int y) DUIQuickSetter(CreatePoint(x, y), ReferencePoint)
// ClassInfo accessors (static and virtual instance-based)
static IClassInfo* Class;
virtual IClassInfo* GetClassInfo() { return Class; }
static HRESULT Register();
RefPointElement() { }
HRESULT Initialize(UINT nActive);
virtual ~RefPointElement() { }
};
} // namespace DirectUI
#endif // DUI_CONTROL_REFPOINTELEMENT_H_INCLUDED