71 lines
1.8 KiB
C
71 lines
1.8 KiB
C
|
// Combobox.h
|
||
|
//
|
||
|
|
||
|
#ifndef DUI_CONTROL_COMBOBOX_H_INCLUDED
|
||
|
#define DUI_CONTROL_COMBOBOX_H_INCLUDED
|
||
|
|
||
|
#include "duihwndhost.h"
|
||
|
|
||
|
namespace DirectUI
|
||
|
{
|
||
|
|
||
|
////////////////////////////////////////////////////////
|
||
|
// Combobox
|
||
|
|
||
|
// SelectionChange event
|
||
|
struct SelectionIndexChangeEvent : Event
|
||
|
{
|
||
|
int iOld;
|
||
|
int iNew;
|
||
|
};
|
||
|
|
||
|
// Class definition
|
||
|
class Combobox : public HWNDHost
|
||
|
{
|
||
|
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);
|
||
|
virtual void OnPropertyChanged(PropertyInfo* ppi, int iIndex, Value* pvOld, Value* pvNew);
|
||
|
|
||
|
// Control notifications
|
||
|
virtual bool OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, LRESULT* plRet);
|
||
|
|
||
|
// Sizing callback
|
||
|
virtual BOOL OnAdjustWindowSize(int x, int y, UINT uFlags);
|
||
|
|
||
|
// Rendering
|
||
|
SIZE GetContentSize(int dConstW, int dConstH, Surface* psrf);
|
||
|
|
||
|
// ClassInfo accessors (static and virtual instance-based)
|
||
|
static IClassInfo* Class;
|
||
|
virtual IClassInfo* GetClassInfo() { return Class; }
|
||
|
static HRESULT Register();
|
||
|
|
||
|
int AddString(LPCWSTR lpszString);
|
||
|
|
||
|
// Event types
|
||
|
static UID SelectionChange;
|
||
|
|
||
|
// Property definitions
|
||
|
static PropertyInfo* SelectionProp;
|
||
|
|
||
|
// Quick property accessors
|
||
|
int GetSelection() DUIQuickGetter(int, GetInt(), Selection, Specified)
|
||
|
|
||
|
HRESULT SetSelection(int v) DUIQuickSetter(CreateInt(v), Selection)
|
||
|
|
||
|
Combobox() { }
|
||
|
virtual ~Combobox() { }
|
||
|
HRESULT Initialize(UINT nActive) { return HWNDHost::Initialize(HHC_CacheFont | HHC_SyncText | HHC_SyncPaint, nActive); }
|
||
|
|
||
|
virtual HWND CreateHWND(HWND hwndParent);
|
||
|
};
|
||
|
|
||
|
} // namespace DirectUI
|
||
|
|
||
|
#endif // DUI_CONTROL_COMBOBOX_H_INCLUDED
|
||
|
|