LEGOIslandRebuilder/ext/PropertyGrid/CustomItem.h
2022-03-31 11:38:16 -07:00

32 lines
790 B
C++

#pragma once
#include "PropertyGrid.h"
class ICustomItem
{
public:
// basic required stuff
virtual CPropertyGrid::EEditMode GetEditMode() = 0;
virtual void DrawItem(CDC& dc, CRect rc, bool focused) = 0;
// validation
virtual void ValidateChanges() {}
// mouse stuff
virtual bool OnLButtonDown(CRect rc, CPoint pt) { return false; }
virtual void OnMouseMove(CRect rc, CPoint pt) {}
virtual void OnLButtonUp(CRect rc, CPoint pt) {}
// in-place edit
virtual string GetStringForInPlaceEdit() { return ""; }
virtual bool OnItemEdited(string strNewValue) { return false; }
// dropdown edit
virtual void ShowDropDown(CRect rc) {}
// modal edit
virtual bool OnEditItem() { return false; }
protected:
friend class CPropertyGrid;
CPropertyGrid* m_pGrid;
};