1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
|
/*
ParaGUI - crossplatform widgetset
Copyright (C) 2000,2001,2002 Alexander Pipelka
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Alexander Pipelka
pipelka@teleweb.at
Last Update: $Author: mbickel $
Update Date: $Date: 2009-04-18 13:48:39 $
Source File: $Source: /home/martin/asc/v2/svntest/games/asc/source/libs/paragui/include/pgimage.h,v $
CVS/RCS Revision: $Revision: 1.3 $
Status: $State: Exp $
*/
/** \file pgimage.h
Header file for the PG_Image class.
*/
#ifndef PG_IMAGE_H
#define PG_IMAGE_H
#include "pgthemewidget.h"
/**
@author Jaroslav Vozab
@short A static (non-resizeable by the end user) frame with image.
*/
class DECLSPEC PG_Image : public PG_ThemeWidget {
static PG_Rect CalcWidgetSize( const PG_Point& p, const SDL_Surface* image );
public:
/**
@short Contructor of the PG_Image class (loading from file)
Creates the widget and loads the image from a file
@param parent pointer to the parent widget or NULL
@param p position of the PG_Image widget
@param filename image-file to load
@param drawmode Image drawmode (see PG_Draw::BkMode)
@param style widgetstyle to use
*/
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");
/**
@short Contructor of the PG_Image class (image from surface)
Creates the widget and loads the image from an SDL_Surface
@param parent pointer to the parent widget or NULL
@param p position of the PG_Image widget
@param image pointer to imagedata (SDL_Surface)
@param freeimage if true the imagedata is handled by the widget
@param drawmode Image drawmode (see PG_Draw::BkMode)
@param style widgetstyle to use
*/
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");
/**
@short Contructor of the PG_Image class (loading from file)
Creates the widget and loads the image from a file using a colorkey
@param parent pointer to the parent widget or NULL
@param p position of the PG_Image widget
@param filename image-file to load
@param colorkey colorkey (0xRRGGBB)
@param drawmode Image drawmode (see PG_Draw::BkMode)
@param style widgetstyle to use
*/
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");
/**
@short Set the colorkey of the image
@param key colorkey (0xRRGGBB);
*/
void SetColorKey(const PG_Color& key);
/**
@ Set mode of drawing (BKMODE_TILE | BKMODE_STRETCH | BKMODE_3TILEH | BKMODE_3TILEV | BKMODE_9TILE)
*/
void SetDrawMode(PG_Draw::BkMode mode);
Uint8 GetDrawMode() {
return my_DrawMode;
};
bool LoadImage(const std::string& filename);
bool LoadImage(const std::string& filename, const PG_Color& key);
bool SetImage(SDL_Surface* image, bool bFreeImage = true);
~PG_Image();
protected:
SDL_Surface* my_cachedSrf;
PG_Draw::BkMode my_DrawMode;
/** */
void eventDraw(SDL_Surface* surface, const PG_Rect& rect);
/** */
void eventBlit(SDL_Surface* surface, const PG_Rect& src, const PG_Rect& dst);
};
#endif // PG_IMAGE_H
|