Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

pgimage.h

Go to the documentation of this file.
00001 /*
00002     ParaGUI - crossplatform widgetset 
00003     Copyright (C) 2000,2001,2002  Alexander Pipelka 
00004   
00005     This library is free software; you can redistribute it and/or 
00006     modify it under the terms of the GNU Library General Public 
00007     License as published by the Free Software Foundation; either 
00008     version 2 of the License, or (at your option) any later version. 
00009   
00010     This library is distributed in the hope that it will be useful, 
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of 
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
00013     Library General Public License for more details. 
00014   
00015     You should have received a copy of the GNU Library General Public 
00016     License along with this library; if not, write to the Free 
00017     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
00018   
00019     Alexander Pipelka 
00020     pipelka@teleweb.at 
00021   
00022     Last Update:      $Author: mbickel $ 
00023     Update Date:      $Date: 2007-04-13 16:15:56 $ 
00024     Source File:      $Source: /home/cvspsrv/cvsroot/games/asc/source/libs/paragui/include/pgimage.h,v $ 
00025     CVS/RCS Revision: $Revision: 1.2 $ 
00026     Status:           $State: Exp $ 
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

Generated on Tue Jun 24 01:27:48 2008 for Advanced Strategic Command by  doxygen 1.4.2