You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.6 KiB
63 lines
1.6 KiB
/*
|
|
* Selector
|
|
*/
|
|
|
|
#ifndef DUI_CONTROL_SELECTOR_H_INCLUDED
|
|
#define DUI_CONTROL_SELECTOR_H_INCLUDED
|
|
|
|
#pragma once
|
|
|
|
namespace DirectUI
|
|
{
|
|
|
|
////////////////////////////////////////////////////////
|
|
// Selector
|
|
|
|
// SelectionChange event
|
|
struct SelectionChangeEvent : Event
|
|
{
|
|
Element* peOld;
|
|
Element* peNew;
|
|
};
|
|
|
|
// Class definition
|
|
class Selector : public Element
|
|
{
|
|
public:
|
|
static HRESULT Create(OUT Element** ppElement);
|
|
|
|
// Generic events
|
|
virtual void OnEvent(Event* pEvent);
|
|
|
|
// System events
|
|
virtual void OnPropertyChanged(PropertyInfo* ppi, int iIndex, Value* pvOld, Value* pvNew);
|
|
virtual void OnInput(InputEvent* pInput); // Routed and bubbled
|
|
virtual void OnKeyFocusMoved(Element *peFrom, Element *peTo);
|
|
|
|
// Hierarchy
|
|
virtual Element* GetAdjacent(Element* peFrom, int iNavDir, NavReference const* pnr, bool bKeyable);
|
|
|
|
// Event types
|
|
static UID SelectionChange;
|
|
|
|
// Property definitions
|
|
static PropertyInfo* SelectionProp;
|
|
|
|
// Quick property accessors
|
|
Element* GetSelection() DUIQuickGetter(Element*, GetElement(), Selection, Specified)
|
|
|
|
HRESULT SetSelection(Element* v) DUIQuickSetter(CreateElementRef(v), Selection)
|
|
|
|
// ClassInfo accessors (static and virtual instance-based)
|
|
static IClassInfo* Class;
|
|
virtual IClassInfo* GetClassInfo() { return Class; }
|
|
static HRESULT Register();
|
|
|
|
Selector() { }
|
|
HRESULT Initialize() { return Element::Initialize(0); }
|
|
virtual ~Selector() { }
|
|
};
|
|
|
|
} // namespace DirectUI
|
|
|
|
#endif // DUI_CONTROL_SELECTOR_H_INCLUDED
|