aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk/GContext.hh
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-10-09 16:48:09 (GMT)
committerrathnor <rathnor>2003-10-09 16:48:09 (GMT)
commit018665d7a3ae8cb642880176d415f57fc178c299 (patch)
tree05a21b11a9f28bd8b456e080be52148de30f5018 /src/FbTk/GContext.hh
parent075dc35b5eeb875e971842e8230338395367e08f (diff)
downloadfluxbox-018665d7a3ae8cb642880176d415f57fc178c299.zip
fluxbox-018665d7a3ae8cb642880176d415f57fc178c299.tar.bz2
drawing optimisations and fixes
Diffstat (limited to 'src/FbTk/GContext.hh')
-rw-r--r--src/FbTk/GContext.hh63
1 files changed, 48 insertions, 15 deletions
diff --git a/src/FbTk/GContext.hh b/src/FbTk/GContext.hh
index 6175b2d..c192879 100644
--- a/src/FbTk/GContext.hh
+++ b/src/FbTk/GContext.hh
@@ -19,19 +19,20 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: GContext.hh,v 1.3 2003/09/11 19:57:38 fluxgen Exp $ 22// $Id: GContext.hh,v 1.4 2003/10/09 16:48:09 rathnor Exp $
23 23
24#ifndef FBTK_GCONTEXT_HH 24#ifndef FBTK_GCONTEXT_HH
25#define FBTK_GCONTEXT_HH 25#define FBTK_GCONTEXT_HH
26 26
27#include "Color.hh"
28#include "FbPixmap.hh"
29
27#include <X11/Xlib.h> 30#include <X11/Xlib.h>
28 31
29namespace FbTk { 32namespace FbTk {
30 33
31class FbDrawable; 34class FbDrawable;
32class FbPixmap;
33class Font; 35class Font;
34class Color;
35 36
36/// wrapper for X GC 37/// wrapper for X GC
37class GContext { 38class GContext {
@@ -43,23 +44,55 @@ public:
43 44
44 virtual ~GContext(); 45 virtual ~GContext();
45 46
46 void setForeground(const FbTk::Color &color); 47 inline void setForeground(const FbTk::Color &color) {
47 void setForeground(long pixel_value); 48 setForeground(color.pixel());
48 void setBackground(const FbTk::Color &color); 49 }
49 void setBackground(long pixel_value); 50
51 inline void setForeground(long pixel_value) {
52 XSetForeground(m_display, m_gc,
53 pixel_value);
54 }
55
56 inline void setBackground(const FbTk::Color &color) {
57 setBackground(color.pixel());
58 }
59
60 inline void setBackground(long pixel_value) {
61 XSetBackground(m_display, m_gc, pixel_value);
62 }
63
50 /// not implemented 64 /// not implemented
51 void setFont(const FbTk::Font &font); 65 inline void setFont(const FbTk::Font &font) {}
66
52 /// set font id 67 /// set font id
53 void setFont(int fid); 68 inline void setFont(int fid) {
54 void setClipMask(const FbTk::FbPixmap &pm); 69 XSetFont(m_display, m_gc, fid);
55 void setClipOrigin(int x, int y); 70 }
56 void setGraphicsExposure(bool value); 71
57 void setFunction(int func); 72 inline void setClipMask(const FbTk::FbPixmap &mask) {
58 void setSubwindowMode(int mode); 73 XSetClipMask(m_display, m_gc, mask.drawable());
74 }
75
76 inline void setClipOrigin(int x, int y) {
77 XSetClipOrigin(m_display, m_gc, x, y);
78 }
79
80 inline void setGraphicsExposure(bool value) {
81 XSetGraphicsExposures(m_display, m_gc, value);
82 }
83
84 inline void setFunction(int func) {
85 XSetFunction(m_display, m_gc, func);
86 }
87
88 inline void setSubwindowMode(int mode) {
89 XSetSubwindowMode(m_display, m_gc, mode);
90 }
59 91
60 GC gc() const { return m_gc; } 92 inline GC gc() const { return m_gc; }
61 93
62private: 94private:
95 Display *m_display; // worth caching
63 GC m_gc; 96 GC m_gc;
64}; 97};
65 98