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
00033 #ifndef PG_IMAGE_H
00034 #define PG_IMAGE_H
00035
00036 #include "pgthemewidget.h"
00037
00044 class DECLSPEC PG_Image : public PG_ThemeWidget {
00045 static PG_Rect CalcWidgetSize( const PG_Point& p, const SDL_Surface* image );
00046 public:
00059 PG_Image(PG_Widget* parent, const PG_Point& p, const std::string& filename, PG_Draw::BkMode drawmode = PG_Draw::TILE, const std::string& style = "ThemeWidget");
00060
00073 PG_Image(PG_Widget* parent, const PG_Point& p, SDL_Surface* image, bool freeimage = true, PG_Draw::BkMode drawmode = PG_Draw::TILE, const std::string& style = "ThemeWidget");
00074
00088 PG_Image(PG_Widget* parent, const PG_Point& p, const std::string& filename, Uint32 colorkey, PG_Draw::BkMode drawmode = PG_Draw::TILE, const std::string& style = "ThemeWidget");
00089
00095 void SetColorKey(const PG_Color& key);
00096
00100 void SetDrawMode(PG_Draw::BkMode mode);
00101
00102 Uint8 GetDrawMode() {
00103 return my_DrawMode;
00104 };
00105
00106 bool LoadImage(const std::string& filename);
00107
00108 bool LoadImage(const std::string& filename, const PG_Color& key);
00109
00110 bool SetImage(SDL_Surface* image, bool bFreeImage = true);
00111
00112 ~PG_Image();
00113
00114 protected:
00115
00116 SDL_Surface* my_cachedSrf;
00117
00118 PG_Draw::BkMode my_DrawMode;
00119
00121 void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
00122
00124 void eventBlit(SDL_Surface* surface, const PG_Rect& src, const PG_Rect& dst);
00125 };
00126
00127 #endif // PG_IMAGE_H