]> Dogcows Code - chaz/openbox/commitdiff
hardcode some bitmap masks
authorDana Jansens <danakj@orodu.net>
Thu, 23 Jan 2003 00:08:50 +0000 (00:08 +0000)
committerDana Jansens <danakj@orodu.net>
Thu, 23 Jan 2003 00:08:50 +0000 (00:08 +0000)
otk/focuslabel.cc
otk/label.cc
otk/renderstyle.cc
otk/renderstyle.hh

index 712fce37cb5a9755f6e7d36376dab16499040c4c..08f2af86823123792075b66f7f2209cbb79c49c6 100644 (file)
@@ -31,6 +31,8 @@ void FocusLabel::setStyle(RenderStyle *style)
 
 void FocusLabel::renderForeground()
 {
+  otk::Widget::renderForeground();
+
   const Font *ft = style()->labelFont();
   RenderColor *text_color = (isFocused() ? style()->textFocusColor()
                              : style()->textUnfocusColor());
index 8757d8a9d08f18881285844ed51fe35e73a59a98..41e5cd14e3505b5621a853c594b6da364728502e 100644 (file)
@@ -27,6 +27,8 @@ void Label::setStyle(RenderStyle *style)
 
 void Label::renderForeground(void)
 {
+  otk::Widget::renderForeground();
+
   const Font *ft = style()->labelFont();
   unsigned int sidemargin = style()->bevelWidth() * 2;
 
index 22622931de7cc8579fbc4b595ab0022f3229b92b..8361ce4ddeb1ad0279056a7601f23690e82e8c3c 100644 (file)
@@ -5,6 +5,8 @@
 #endif // HAVE_CONFIG_H
 
 #include "renderstyle.hh"
+#include "display.hh"
+#include "screeninfo.hh"
 
 namespace otk {
 
@@ -166,6 +168,82 @@ RenderStyle::RenderStyle(int screen, const std::string &stylefile)
                                     0x0);
 
   _label_font = new Font(_screen, "Arial,Sans-9:bold", true, 1, 0x40);
+
+  XImage *image = XCreateImage(**display,
+                               display->screenInfo(_screen)->visual(),
+                               2, XYBitmap, 0, NULL, 8, 8, 0, 0);
+  assert(image);
+  
+  _max_mask = new PixmapMask();
+  _max_mask->w = _max_mask->h = 8;
+  {
+    unsigned char data[] = {
+      0,1,1,1,1,1,1,0,
+      1,1,1,1,1,1,1,1,
+      1,1,0,0,0,0,1,1,
+      1,1,0,0,0,0,1,1,
+      1,1,0,0,0,0,1,1,
+      1,1,0,0,0,0,1,1,
+      1,1,1,1,1,1,1,1,
+      0,1,1,1,1,1,1,0 };
+    image->data = (char*)data;
+    XPutImage(**display, _max_mask->mask, DefaultGC(**display, _screen),
+              image, 0, 0, 0, 0, 8, 8);
+  }
+
+  _icon_mask = new PixmapMask();
+  _icon_mask->w = _icon_mask->h = 8;
+  {
+    unsigned char data[] = {
+      0,0,0,0,0,0,0,0,
+      0,0,0,0,0,0,0,0,
+      1,1,0,0,0,0,1,1,
+      1,1,1,0,0,1,1,1,
+      0,1,1,1,1,1,1,0,
+      0,0,1,1,1,1,0,0,
+      0,0,0,1,1,0,0,0,
+      0,0,0,0,0,0,0,0 };
+    image->data = (char*)data;
+    XPutImage(**display, _icon_mask->mask, DefaultGC(**display, _screen),
+              image, 0, 0, 0, 0, 8, 8);
+  }
+  
+  _stick_mask = new PixmapMask();
+  _stick_mask->w = _stick_mask->h = 8;
+  {
+    unsigned char data[] = {
+      0,0,0,0,0,0,0,0,
+      0,0,0,0,0,0,0,0,
+      0,0,0,1,1,0,0,0,
+      0,0,1,1,1,1,0,0,
+      0,0,1,1,1,1,0,0,
+      0,0,0,1,1,0,0,0,
+      0,0,0,0,0,0,0,0,
+      0,0,0,0,0,0,0,0 };    
+    image->data = (char*)data;
+    XPutImage(**display, _stick_mask->mask, DefaultGC(**display, _screen),
+              image, 0, 0, 0, 0, 8, 8);
+  }
+  
+  _close_mask = new PixmapMask();
+  _close_mask->w = _close_mask->h = 8;
+  {
+    unsigned char data[] = {
+      1,1,0,0,0,0,1,1,
+      1,1,1,0,0,1,1,1,
+      0,1,1,1,1,1,1,0,
+      0,0,1,1,1,1,0,0,
+      0,0,1,1,1,1,0,0,
+      0,1,1,1,1,1,1,0,
+      1,1,1,0,0,1,1,1,
+      1,1,0,0,0,0,1,1 };
+    image->data = (char*)data;
+    XPutImage(**display, _close_mask->mask, DefaultGC(**display, _screen),
+              image, 0, 0, 0, 0, 8, 8);
+  }
+
+  image->data = NULL;
+  XDestroyImage(image);
 }
 
 RenderStyle::~RenderStyle()
@@ -199,6 +277,11 @@ RenderStyle::~RenderStyle()
   delete _grip_unfocus;
 
   delete _label_font;
+
+  delete _max_mask;
+  delete _icon_mask;
+  delete _stick_mask;
+  delete _close_mask;
 }
 
 }
index ccdf3ebf7949180cef811082aad6bd1fa5fb20c6..7bebf418efbab22dfb2449f97bd9f03774f63540 100644 (file)
 
 namespace otk {
 
+struct PixmapMask {
+  Pixmap mask;
+  unsigned int w, h;
+  PixmapMask() { mask = None; w = h = 0; }
+};
+
 class RenderStyle {
 public:
   enum TextJustify {
@@ -55,6 +61,11 @@ private:
   Font *_label_font;
   TextJustify _label_justify;
 
+  PixmapMask *_max_mask;
+  PixmapMask *_icon_mask;
+  PixmapMask *_stick_mask;
+  PixmapMask *_close_mask;
+
   int _handle_width;
   int _bevel_width;
 
@@ -101,12 +112,17 @@ public:
   inline RenderTexture *buttonPressUnfocusBackground() const
     { return _button_press_unfocus; }
 
-  inline RenderTexture *gripdFocusBackground() const { return _grip_focus; }
+  inline RenderTexture *gripFocusBackground() const { return _grip_focus; }
   inline RenderTexture *gripUnfocusBackground() const { return _grip_unfocus; }
 
   inline Font *labelFont() const { return _label_font; }
   inline TextJustify labelTextJustify() const { return _label_justify; }
 
+  inline PixmapMask *maximizeMask() const { return _max_mask; }
+  inline PixmapMask *iconifyMask() const { return _icon_mask; }
+  inline PixmapMask *stickyMask() const { return _stick_mask; }
+  inline PixmapMask *closeMask() const { return _close_mask; }
+  
   inline int handleWidth() const { return _handle_width; }
   inline int bevelWidth() const { return _bevel_width; }
 };
This page took 0.033343 seconds and 4 git commands to generate.