00001 #ifndef _SUPERBITMAP_H_
00002 #define _SUPERBITMAP_H_
00003
00004 #include <nds.h>
00005 #include "gadget.h"
00006
00007 namespace WoopsiUI {
00008
00009 class Bitmap;
00010
00015 class SuperBitmap : public Gadget {
00016
00017 public:
00018
00031 SuperBitmap(s16 x, s16 y, u16 width, u16 height, u16 bitmapWidth, u16 bitmapHeight, bool isDecoration, FontBase* font = NULL);
00032
00039 const u16 getPixel(s16 x, s16 y) const;
00040
00045 const u16* getBitmap() const;
00046
00052 virtual void draw(Rect clipRect);
00053
00060 virtual void drawPixel(s16 x, s16 y, u16 colour);
00061
00070 virtual void drawFilledRect(s16 x, s16 y, u16 width, u16 height, u16 colour);
00071
00079 virtual void drawHorizLine(s16 x, s16 y, u16 width, u16 colour);
00080
00088 virtual void drawVertLine(s16 x, s16 y, u16 height, u16 colour);
00089
00098 virtual void drawRect(s16 x, s16 y, u16 width, u16 height, u16 colour);
00099
00108 virtual void drawLine(s16 x1, s16 y1, s16 x2, s16 y2, u16 colour);
00109
00117 virtual void drawCircle(s16 x0, s16 y0, u16 radius, u16 colour);
00118
00126 virtual void drawFilledCircle(s16 x0, s16 y0, u16 radius, u16 colour);
00127
00135 virtual void drawText(s16 x, s16 y, FontBase* font, const char* string);
00136
00145 virtual void drawText(s16 x, s16 y, FontBase* font, const char* string, u16 colour);
00146
00159 virtual void drawBitmap(s16 x, s16 y, u16 width, u16 height, const u16* bitmap, s16 bitmapX, s16 bitmapY, u16 bitmapWidth, u16 bitmapHeight);
00160
00171 virtual void drawBitmap(s16 x, s16 y, u16 width, u16 height, const Bitmap* bitmap, s16 bitmapX, s16 bitmapY);
00172
00179 virtual void floodFill(s16 x, s16 y, u16 newColour);
00180
00189 virtual void drawEllipse(s16 xCentre, s16 yCentre, s16 horizRadius, s16 vertRadius, u16 colour);
00190
00199 virtual void drawFilledEllipse(s16 xCentre, s16 yCentre, s16 horizRadius, s16 vertRadius, u16 colour);
00200
00204 virtual void clearBitmap();
00205
00213 virtual bool drag(s16 x, s16 y, s16 vX, s16 vY);
00214
00215 protected:
00216 s32 _bitmapX;
00217 s32 _bitmapY;
00218 Bitmap* _bitmap;
00223 virtual ~SuperBitmap();
00224
00228 inline SuperBitmap(const SuperBitmap& superBitmap) : Gadget(superBitmap) { };
00229 };
00230 }
00231
00232 #endif