00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef KYRA_BOX_INCLUDED
00033 #define KYRA_BOX_INCLUDED
00034
00035 #include "image.h"
00036 #include "boxresource.h"
00037
00038
00039 struct KrPaintInfo;
00040 class KrBoxResource;
00041 union KrRGBA;
00042
00043
00058 class KrBox : public KrImage
00059 {
00060 public:
00061
00063 KrBox( KrBoxResource* resource );
00064 KrBox( int width, int height, KrRGBA color, int boxtype );
00065
00066 virtual ~KrBox();
00067
00068 virtual KrBox* ToBox() { return this; }
00069
00070 virtual void Draw( KrPaintInfo* paintInfo,
00071 const grinliz::Rectangle2I& clip,
00072 int window );
00073
00074 int Width() { return resource->Width(); }
00075 int Height() { return resource->Height(); }
00076
00077
00079 void SetSize( int w, int h );
00081 void SetBoxColor( KrRGBA color );
00083 void SetType( int boxtype );
00084
00085 virtual KrImNode* Clone();
00086
00087 virtual bool HitTest( int x, int y, int flags, std::vector<KrImage*>* results, int win );
00088 virtual void CalcTransform( int window );
00089 virtual void QueryBoundingBox( grinliz::Rectangle2I* boundingBox, int window = 0 );
00090 virtual KrResource* Resource() { return resource; }
00091
00092 protected:
00093
00094 private:
00095 KrBoxResource* resource;
00096 bool owned;
00097 };
00098
00099
00100 #endif