PieDock 1.6.0

src/XSurface.h

00001 /*
00002  *   O         ,-
00003  *  ° o    . -´  '     ,-
00004  *   °  .´        ` . ´,´
00005  *     ( °   ))     . (
00006  *      `-;_    . -´ `.`.
00007  *          `._'       ´
00008  *
00009  * Copyright (c) 2007-2010 Markus Fisch <mf@markusfisch.de>
00010  *
00011  * Licensed under the MIT license:
00012  * http://www.opensource.org/licenses/mit-license.php
00013  */
00014 #ifndef _PieDock_XSurface_
00015 #define _PieDock_XSurface_
00016 
00017 #include "Surface.h"
00018 #include "ArgbSurface.h"
00019 
00020 #include <X11/Xlib.h>
00021 
00022 namespace PieDock
00023 {
00029     class XSurface : public Surface
00030     {
00031         public:
00032             XSurface( int, int, Display *, Visual *, int );
00033             virtual ~XSurface();
00034             inline XImage *getResource() const { return resource; }
00035             inline Visual *getVisual() const { return visual; }
00036 
00037         protected:
00038             virtual int determineBitsPerPixel( int );
00039             virtual void allocateData();
00040             virtual void freeData();
00041 
00042         private:
00043             Display *display;
00044             Visual *visual;
00045             int orginalDepth;
00046             XImage *resource;
00047     };
00048 }
00049 
00050 #endif