ultimatepp/bazaar/MapCommon/PolygonItem.h
Sc0rch 9959d8888c MapRender: First release (FormEditorCommon, FormEditorProperties, Map, MapBG, MapCommon, MapEditor, MapRenderTest.
git-svn-id: svn://ultimatepp.org/upp/trunk@4180 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2011-11-18 06:28:11 +00:00

45 lines
1 KiB
C++

#ifndef MAP_COMMON__POLYGON_ITEM_H
#define MAP_COMMON__POLYGON_ITEM_H
#include "IMapRender.h"
#include <Map/MapSerialize.h>
class PolygonItemDisplay;
class PolygonItem : public IMapItem, public Room
{
public:
PolygonItem(IMapRender* render);
virtual ~PolygonItem();
virtual void Render(Draw* w);
virtual bool ProcessLeftDown(Point p, dword keyflags);
virtual bool ProcessLeftUp(Point p, dword keyflags);
virtual void StatePerformed (dword state, const String& param = String());
virtual bool Contains(const Point& p);
virtual Point GetTopLeft();
virtual Point GetCenter();
virtual Rect GetRect();
virtual String GetItemType() { return "PolygonItem"; }
public:
static Callback1<Ptr<PolygonItem> > WhenClick;
PolygonItem* SetDisplay(PolygonItemDisplay* disp);
private:
Point _click;
bool _stdDisplay;
PolygonItemDisplay* _display;
};
class PolygonItemDisplay
{
public:
virtual ~PolygonItemDisplay() {}
virtual void Paint(Draw* w, PolygonItem* item) const;
};
#endif