// // PTexture.cc for pekwm // Copyright (C) 2004-2009 Claes Nasten // // This program is licensed under the GNU GPL. // See the LICENSE file for more information. // #include "../config.h" #ifndef _PTEXTURE_HH_ #define _PTEXTURE_HH_ #include "pekwm.hh" class PTexture { public: enum Type { TYPE_SOLID, TYPE_SOLID_RAISED, TYPE_IMAGE, TYPE_EMPTY, TYPE_NO }; PTexture(Display *dpy) : _dpy(dpy), _ok(false), _width(0), _height(0), _type(PTexture::TYPE_NO) { } virtual ~PTexture(void) { } virtual void render(Drawable draw, int x, int y, uint width, uint height) { } virtual Pixmap getMask(uint width, uint height, bool &do_free) { return None; } inline bool isOk(void) const { return _ok; } inline uint getWidth(void) const { return _width; } inline uint getHeight(void) const { return _height; } inline PTexture::Type getType(void) const { return _type; } inline void setWidth(uint width) { _width = width; } inline void setHeight(uint height) { _height = height; } protected: Display *_dpy; bool _ok; // Texture successfully loaded uint _width, _height; // for images etc, 0 for infinite like in stretch PTexture::Type _type; // Type of texture }; #endif // _PTEXTURE_HH_