Source code of Windows XP (NT5)
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.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 2000
//
// File: cplnkele.h
//
//--------------------------------------------------------------------------
#ifndef __CONTROLPANEL_LINKELEM_H
#define __CONTROLPANEL_LINKELEM_H
#include "cpviewp.h"
#include "cpuiele.h"
#include "cputil.h"
namespace CPL {
class CLinkElement : public DUI::Button { public: virtual ~CLinkElement(void);
void OnEvent(DUI::Event *pev);
void OnInput(DUI::InputEvent *pev);
void OnPropertyChanged(DUI::PropertyInfo *ppi, int iIndex, DUI::Value *pvOld, DUI::Value *pvNew);
void OnDestroy(void); static HRESULT Create(DUI::Element **ppElement);
HRESULT Initialize(IUICommand *pUiCommand, eCPIMGSIZE eIconSize);
//
// ClassInfo accessors (static and virtual instance-based)
//
static DUI::IClassInfo *Class;
virtual DUI::IClassInfo *GetClassInfo(void) { return Class; } static HRESULT Register();
private: //
// These are the 3 states of a drag operation that we transition
// through. See the OnInput() method for usage and description.
//
enum { DRAG_IDLE, DRAG_HITTESTING, DRAG_DRAGGING }; IUICommand *m_pUiCommand; // Link command object associated with element.
eCPIMGSIZE m_eIconSize; HWND m_hwndInfotip; // Infotip window.
ATOM m_idTitle; ATOM m_idIcon; int m_iDragState; RECT m_rcDragBegin;
//
// Prevent copy.
//
CLinkElement(const CLinkElement& rhs); // not implemented.
CLinkElement& operator = (const CLinkElement& rhs); // not implemented.
public: CLinkElement(void);
private: HRESULT _Initialize(void); HRESULT _InitializeAccessibility(void); HRESULT _CreateElementTitle(void); HRESULT _CreateElementIcon(void); HRESULT _GetElementIcon(HICON *phIcon); HRESULT _AddOrDeleteAtoms(bool bAdd); HRESULT _OnContextMenu(DUI::ButtonContextEvent *peButton); HRESULT _OnSelected(void);
void _Destroy(void); void _OnElementResized(DUI::Value *pvNewExtent); void _OnElementMoved(DUI::Value *pvNewLocation); void _OnMouseOver(DUI::Value *pvNewMouseWithin);
HRESULT _GetInfotipText(LPWSTR *ppszInfotip); HRESULT _GetTitleText(LPWSTR *ppszTitle); HRESULT _ShowInfotipWindow(bool bShow); HRESULT _GetDragDropData(IDataObject **ppdtobj); HRESULT _BeginDrag(int iClickPosX, int iClickPosY); HRESULT _SetPreferredDropEffect(IDataObject *pdtobj, DWORD dwEffect); HRESULT _GetDragImageBitmap(HBITMAP *phbm, LONG *plWidth, LONG *plHeight); HRESULT _SetDragImage(IDataObject *pdtobj, int iClickPosX, int iClickPosY); };
} // namespace CPL
#endif // __CONTROLPANEL_LINKELEM_H
|