* skeleton of X11 skins
[vlc.git] / modules / gui / skins / x11 / x11_graphics.h
1 /*****************************************************************************
2  * x11_graphics.h: X11 implementation of the Graphics and Region classes
3  *****************************************************************************
4  * Copyright (C) 2003 VideoLAN
5  * $Id: x11_graphics.h,v 1.1 2003/04/28 14:32:57 asmax Exp $
6  *
7  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
8  *          Olivier Teulière <ipkiss@via.ecp.fr>
9  *          Emmanuel Puig    <karibu@via.ecp.fr>
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111,
24  * USA.
25  *****************************************************************************/
26
27
28 #ifndef VLC_SKIN_X11_GRAPHICS
29 #define VLC_SKIN_X11_GRAPHICS
30
31 //--- X11 -------------------------------------------------------------------
32 #include <X11/Xlib.h>
33 #include <X11/Xutil.h>
34
35 //---------------------------------------------------------------------------
36 class SkinRegion;
37 class SkinWindow;
38
39 //---------------------------------------------------------------------------
40 class X11Graphics : public Graphics
41 {
42     protected:
43        /* Drawable *Image;
44         GdkGC *Gc;*/
45
46     public:
47         // Constructor
48         X11Graphics( int w, int h, SkinWindow *from = NULL );
49         // Destructor
50         virtual ~X11Graphics();
51         // Drawing methods
52         virtual void CopyFrom( int dx, int dy, int dw, int dh, Graphics *Src,
53                               int sx, int sy, int Flag );
54         //virtual void CopyTo(  Graphics *Dest, int dx, int dy, int dw, int dh,
55         //                      int sx, int sy, int Flag );
56         virtual void DrawRect( int x, int y, int w, int h, int color );
57
58         // Clipping methods
59         virtual void SetClipRegion( SkinRegion *rgn );
60         virtual void ResetClipRegion();
61
62         // Specific X11 methods
63 /*        GdkDrawable *GetImage() { return Image; };
64         GdkGC *GetGC()    { return Gc; };*/
65 };
66 //---------------------------------------------------------------------------
67 class X11Region : public SkinRegion
68 {
69     private:
70         Region *Rgn;
71     public:
72         // Constructor
73         X11Region();
74         X11Region( int x, int y, int w, int h );
75         // Destructor
76         ~X11Region();
77         // Modify region
78         virtual void AddPoint( int x, int y );
79         virtual void AddRectangle( int x, int y, int w, int h );
80         virtual void AddElipse( int x, int y, int w, int h );
81         virtual void Move( int x, int y );
82
83         virtual bool Hit( int x, int y );
84
85         // Specific X11 methods
86         Region *GetHandle() { return Rgn; };
87 };
88 //---------------------------------------------------------------------------
89
90 #endif