windows-nt/Source/XPSP1/NT/public/internal/windows/inc/duser/duibutton.h

77 lines
1.7 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/*
* Button
*/
#ifndef DUI_CONTROL_BUTTON_H_INCLUDED
#define DUI_CONTROL_BUTTON_H_INCLUDED
#pragma once
namespace DirectUI
{
////////////////////////////////////////////////////////
// Button
// ButtonClick event
struct ButtonClickEvent : Event
{
UINT nCount;
UINT uModifiers;
POINT pt;
};
struct ButtonContextEvent : Event
{
UINT uModifiers;
POINT pt;
};
// Class definition
class Button : public Element
{
public:
static HRESULT Create(OUT Element** ppElement) { return Create(AE_MouseAndKeyboard, ppElement); }
static HRESULT Create(UINT nActive, OUT Element** ppElement);
// System events
virtual void OnInput(InputEvent* pie);
// Event types
static UID Click;
static UID Context;
// Property definitions
static PropertyInfo* PressedProp;
static PropertyInfo* CapturedProp;
// Quick property accessors
bool GetPressed() DUIQuickGetter(bool, GetBool(), Pressed, Specified)
bool GetCaptured() DUIQuickGetter(bool, GetBool(), Captured, Specified)
HRESULT SetPressed(bool v) DUIQuickSetter(CreateBool(v), Pressed)
HRESULT SetCaptured(bool v) DUIQuickSetter(CreateBool(v), Captured)
// ClassInfo accessors (static and virtual instance-based)
static IClassInfo* Class;
virtual IClassInfo* GetClassInfo() { return Class; }
static HRESULT Register();
// System events
virtual void OnPropertyChanged(PropertyInfo* ppi, int iIndex, Value* pvOld, Value* pvNew);
// override the DefaultAction() of Element.
virtual HRESULT DefaultAction();
Button() { }
HRESULT Initialize(UINT nActive);
virtual ~Button() { }
private:
BOOL _bRightPressed;
};
} // namespace DirectUI
#endif // DUI_CONTROL_BUTTON_H_INCLUDED