]> Dogcows Code - chaz/openbox/commitdiff
otk using new render shit.. supposedly
authorDana Jansens <danakj@orodu.net>
Wed, 22 Jan 2003 22:46:16 +0000 (22:46 +0000)
committerDana Jansens <danakj@orodu.net>
Wed, 22 Jan 2003 22:46:16 +0000 (22:46 +0000)
19 files changed:
otk/application.cc
otk/application.hh
otk/appwidget.cc
otk/button.cc
otk/button.hh
otk/focuslabel.cc
otk/focuslabel.hh
otk/focuswidget.cc
otk/focuswidget.hh
otk/label.cc
otk/label.hh
otk/otk_test.cc
otk/rendercolor.cc
otk/rendercolor.hh
otk/rendercontrol.cc
otk/rendercontrol.hh
otk/renderstyle.hh
otk/widget.cc
otk/widget.hh

index e325a58218bc824557bcf4b5573a85b4b9bff9f3..e4de62c16bc8cf36e83b2a126d73be55b5bec761 100644 (file)
@@ -30,22 +30,16 @@ Application::Application(int argc, char **argv)
   (void)argc;
   (void)argv;
 
-  const ScreenInfo *s_info = _display.screenInfo(DefaultScreen(*_display));
-
   Timer::initialize();
   RenderColor::initialize();
   Property::initialize();
-  _img_ctrl = new ImageControl(s_info, True, 4, 5, 200);
-  _style_conf = new Configuration(False);
-  _style = new Style(_img_ctrl);
+  _style = new RenderStyle(DefaultScreen(*_display), ""); // XXX: get a path!
 
   loadStyle();
 }
 
 Application::~Application()
 {
-  delete _style_conf;
-  delete _img_ctrl;
   delete _style;
   RenderColor::destroy();
   Timer::destroy();
@@ -53,14 +47,9 @@ Application::~Application()
 
 void Application::loadStyle(void)
 {
-  // find the style name as a property
+  // XXX: find the style name as a property
   std::string style = "/usr/local/share/openbox/styles/artwiz";
-  _style_conf->setFile(style);
-  if (!_style_conf->load()) {
-    std::cerr << "ERROR: Unable to load style \"" << style << "\".\n";
-    ::exit(1);
-  }
-  _style->load(*_style_conf);
+  //_style->load(style);
 }
 
 void Application::run(void)
index 4d7b0d894cc04307fa2f2f7bb421d5b5cfe1963f..6f1cebc6087100194e71ddb91e3ea6b4d3b750ba 100644 (file)
@@ -4,9 +4,7 @@
 
 #include "eventdispatcher.hh"
 #include "display.hh"
-#include "configuration.hh"
-#include "image.hh"
-#include "style.hh"
+#include "renderstyle.hh"
 
 namespace otk {
 
@@ -25,16 +23,14 @@ public:
   void setDockable(bool dockable) { _dockable = dockable; }
   inline bool isDockable(void) const { return _dockable; }
 
-  inline Style *getStyle(void) const { return _style; }
+  inline RenderStyle *getStyle(void) const { return _style; }
   // more accessors
 
 private:
   void loadStyle(void);
 
   Display _display;
-  ImageControl *_img_ctrl;
-  Configuration *_style_conf;
-  Style *_style;
+  RenderStyle *_style;
   bool _dockable;
 
   int _appwidget_count;
index 5b1225f758127ef872bfe5bdb975a76f0901b5cb..c62a0d924720ae936956d1ab888385f632fa5539 100644 (file)
@@ -15,7 +15,7 @@ extern "C" {
 namespace otk {
 
 AppWidget::AppWidget(Application *app, Direction direction,
-                           Cursor cursor, int bevel_width)
+                     Cursor cursor, int bevel_width)
   : Widget(app, app->getStyle(), direction, cursor, bevel_width),
     _application(app)
 {
index 04906fe517306f1e06baa4d5a0dbdf28c7934a2c..e7340d1b875a2452df2bc5614c61d164a3a7a1a5 100644 (file)
@@ -19,15 +19,14 @@ Button::~Button()
 }
 
 
-void Button::setStyle(Style *style)
+void Button::setStyle(RenderStyle *style)
 {
   FocusLabel::setStyle(style);
 
-  // XXX: do this again
-  //setTexture(style->getButtonFocus());
-  //setUnfocusTexture(style->getButtonUnfocus());
-  //_pressed_focus_tx = style->getButtonPressedFocus();
-  //_pressed_unfocus_tx = style->getButtonPressedUnfocus();
+  setTexture(style->buttonUnpressFocusBackground());
+  setUnfocusTexture(style->buttonUnpressUnfocusBackground());
+  _pressed_focus_tx = style->buttonPressFocusBackground();
+  _pressed_unfocus_tx = style->buttonPressUnfocusBackground();
 }
 
 
index dd3c78b95644af7c75eda053ce1d7d2f6e15fcbc..1483677ea348a93ce548a00e9c159514ebe9ec9e 100644 (file)
@@ -33,7 +33,7 @@ public:
   void buttonPressHandler(const XButtonEvent &e);
   void buttonReleaseHandler(const XButtonEvent &e);
 
-  virtual void setStyle(Style *style);
+  virtual void setStyle(RenderStyle *style);
   
 private:
 
index 6869d231c081a3ce21f0476cf99796e5f8d6bd1b..24f3ff52d27bbf60bc9a5869a03e80576e60eb96 100644 (file)
@@ -20,22 +20,21 @@ FocusLabel::~FocusLabel()
 }
 
 
-void FocusLabel::setStyle(Style *style)
+void FocusLabel::setStyle(RenderStyle *style)
 {
   FocusWidget::setStyle(style);
 
-  // XXX: do this again
-  //setTexture(style->getLabelFocus());
-  //setUnfocusTexture(style->getLabelUnfocus());
+  setTexture(style->labelFocusBackground());
+  setUnfocusTexture(style->labelUnfocusBackground());
 }
 
 
 void FocusLabel::renderForeground(void)
 {
-  const Font *ft = style()->getFont();
-  Color *text_color = (isFocused() ? style()->getTextFocus()
-                       : style()->getTextUnfocus());
-  unsigned int sidemargin = style()->getBevelWidth() * 2;
+  const Font *ft = style()->labelFont();
+  RenderColor *text_color = (isFocused() ? style()->textFocusColor()
+                             : style()->textUnfocusColor());
+  unsigned int sidemargin = style()->bevelWidth() * 2;
 
   ustring t = _text; // the actual text to draw
   int x = sidemargin;    // x coord for the text
@@ -54,14 +53,14 @@ void FocusLabel::renderForeground(void)
     } while (length > max_length && text_len-- > 0);
 
     // justify the text
-    switch (style()->textJustify()) {
-    case Style::RightJustify:
+    switch (style()->labelTextJustify()) {
+    case RenderStyle::RightJustify:
       x += max_length - length;
       break;
-    case Style::CenterJustify:
+    case RenderStyle::CenterJustify:
       x += (max_length - length) / 2;
       break;
-    case Style::LeftJustify:
+    case RenderStyle::LeftJustify:
       break;
     }
   }
index 5d5af64e7640c2e3a10edcdc3da94d2585e6afd5..e5fd4529a395c5800f09ebd8f75726b18434ff84 100644 (file)
@@ -18,7 +18,7 @@ public:
 
   void renderForeground(void);
 
-  virtual void setStyle(Style *style);
+  virtual void setStyle(RenderStyle *style);
   
 private:
   //! Text displayed in the label
index 9af8b37d48ce9c520b9c348f37a753a585678bbe..12b872c4a32d3267b8b91afb5099befc2506bd61 100644 (file)
@@ -55,7 +55,7 @@ void FocusWidget::setTexture(RenderTexture *texture)
   _focus_texture = texture;
 }
 
-void FocusWidget::setBorderColor(const Color *color)
+void FocusWidget::setBorderColor(const RenderColor *color)
 {
   Widget::setBorderColor(color);
   _focus_bcolor = color;
index b951dcbd468dfe958fc4520050236015a1310eb3..886a2e3194746dfff03e763c198813073924f817 100644 (file)
@@ -18,16 +18,16 @@ public:
   virtual void unfocus(void);
 
   virtual void setTexture(RenderTexture *texture);
-  virtual void setBorderColor(const Color *color);
+  virtual void setBorderColor(const RenderColor *color);
 
   inline void setUnfocusTexture(RenderTexture *texture)
   { _unfocus_texture = texture; }
   inline RenderTexture *getUnfocusTexture(void) const
   { return _unfocus_texture; }
 
-  inline void setUnfocusBorderColor(const Color *color)
+  inline void setUnfocusBorderColor(const RenderColor *color)
   { _unfocus_bcolor = color; }
-  inline const Color *getUnfocusBorderColor(void) const
+  inline const RenderColor *getUnfocusBorderColor(void) const
   { return _unfocus_bcolor; }
 
   inline bool isFocused(void) const { return _focused; }
@@ -38,8 +38,8 @@ private:
   RenderTexture *_unfocus_texture;
   RenderTexture *_focus_texture;
 
-  const Color *_unfocus_bcolor;
-  const Color *_focus_bcolor;
+  const RenderColor *_unfocus_bcolor;
+  const RenderColor *_focus_bcolor;
 };
 
 }
index b536451e0a4fbb3b295fda7c7e5796d785f3ffc9..8757d8a9d08f18881285844ed51fe35e73a59a98 100644 (file)
@@ -17,19 +17,18 @@ Label::~Label()
 {
 }
 
-void Label::setStyle(Style *style)
+void Label::setStyle(RenderStyle *style)
 {
   Widget::setStyle(style);
 
-  // XXX: do this again
-  //setTexture(style->getLabelUnfocus());
+  setTexture(style->labelUnfocusBackground());
 }
 
 
 void Label::renderForeground(void)
 {
-  const Font *ft = style()->getFont();
-  unsigned int sidemargin = style()->getBevelWidth() * 2;
+  const Font *ft = style()->labelFont();
+  unsigned int sidemargin = style()->bevelWidth() * 2;
 
   ustring t = _text; // the actual text to draw
   int x = sidemargin;    // x coord for the text
@@ -48,20 +47,20 @@ void Label::renderForeground(void)
     } while (length > max_length && text_len-- > 0);
 
     // justify the text
-    switch (style()->textJustify()) {
-    case Style::RightJustify:
+    switch (style()->labelTextJustify()) {
+    case RenderStyle::RightJustify:
       x += max_length - length;
       break;
-    case Style::CenterJustify:
+    case RenderStyle::CenterJustify:
       x += (max_length - length) / 2;
       break;
-    case Style::LeftJustify:
+    case RenderStyle::LeftJustify:
       break;
     }
   }
 
   display->renderControl(_screen)->
-    drawString(*_surface, *ft, x, 0, *style()->getTextUnfocus(), t);
+    drawString(*_surface, *ft, x, 0, *style()->textUnfocusColor(), t);
 }
 
 }
index ff1755d78fe82b143c85bf941a461bed7fb8ba0a..e24858f19fe731ef91db71afae7c6bc04def9a58 100644 (file)
@@ -18,7 +18,7 @@ public:
 
   virtual void renderForeground(void);
 
-  virtual void setStyle(Style *style);
+  virtual void setStyle(RenderStyle *style);
 
 private:
   //! Text to be displayed in the label
index 778f0f8f8140719dd134a5312f5c4b373944b176..06de3a16fff35181d94245b6720435cc0c740345 100644 (file)
@@ -15,8 +15,8 @@ int main(int argc, char **argv) {
   otk::AppWidget foo(&app);
 
   foo.resize(600, 500);
-  foo.setTexture(app.getStyle()->getTitleFocus());
-//  foo.setUnfocusTexture(app.getStyle()->getTitleUnfocus());
+  foo.setTexture(app.getStyle()->titlebarFocusBackground());
+//  foo.setUnfocusTexture(app.getStyle()->titlebarUnfocusBackground());
 
   foo.setBevelWidth(2);
   foo.setDirection(otk::Widget::Horizontal);
@@ -27,15 +27,15 @@ int main(int argc, char **argv) {
   left.setDirection(otk::Widget::Horizontal);
   left.setStretchableVert(true);
   left.setStretchableHorz(true);
-  left.setTexture(app.getStyle()->getTitleFocus());
-  left.setUnfocusTexture(app.getStyle()->getTitleUnfocus());
+  left.setTexture(app.getStyle()->titlebarFocusBackground());
+  left.setUnfocusTexture(app.getStyle()->titlebarUnfocusBackground());
  
   right.setDirection(otk::Widget::Vertical);
   right.setBevelWidth(10);
   right.setStretchableVert(true);
   right.setWidth(300);
-  right.setTexture(app.getStyle()->getTitleFocus());
-  right.setUnfocusTexture(app.getStyle()->getTitleUnfocus());
+  right.setTexture(app.getStyle()->titlebarFocusBackground());
+  right.setUnfocusTexture(app.getStyle()->titlebarUnfocusBackground());
 
   otk::Button iconb(&left);
   iconb.resize(40,20);
@@ -51,8 +51,8 @@ int main(int argc, char **argv) {
   //label.setHeight(20);
   label.setStretchableVert(true);
   label.setStretchableHorz(true);
-  label.setTexture(app.getStyle()->getLabelFocus());
-  label.setUnfocusTexture(app.getStyle()->getLabelUnfocus());
+  label.setTexture(app.getStyle()->labelFocusBackground());
+  label.setUnfocusTexture(app.getStyle()->labelUnfocusBackground());
 
   // fixed size
   maxb.setText("bar");
@@ -66,8 +66,8 @@ int main(int argc, char **argv) {
 
   rblef.setStretchableHorz(true);
   rblef.setHeight(50);
-  rblef.setTexture(app.getStyle()->getHandleFocus());
-  rblef.setUnfocusTexture(app.getStyle()->getHandleUnfocus());
+  rblef.setTexture(app.getStyle()->handleFocusBackground());
+  rblef.setUnfocusTexture(app.getStyle()->handleUnfocusBackground());
   
   rbutt1.setText("this is fucking tight");
   rbutt2.setText("heh, WOOP");
@@ -77,7 +77,7 @@ int main(int argc, char **argv) {
 
   foo.show();
 
-  app.exec();
+  app.run();
 
   return 0;
 }
index bfc8d46104356135af96b526528b72c985a12871..b5e037d382272e1a9cd026b09c31a8b0b8625f66 100644 (file)
@@ -71,7 +71,8 @@ void RenderColor::create()
       xcol.pixel = 0;
     }
 
-    gcv.foreground = xcol.pixel;
+    _pixel = xcol.pixel;
+    gcv.foreground = _pixel;
     gcv.cap_style = CapProjecting;
     _gc = XCreateGC(**display, info->rootWindow(),
                    GCForeground | GCCapStyle, &gcv);
index 1152e767d5259a6e43fb0291cc1117670addd234..4eeb8158a0d20c0bade832f73c5d6011ef9e3510 100644 (file)
@@ -36,6 +36,7 @@ private:
   unsigned char _red;
   unsigned char _green;
   unsigned char _blue;
+  unsigned long _pixel;
 
   GC _gc;
 
@@ -54,6 +55,7 @@ public:
   inline unsigned char red() const { return _red; }
   inline unsigned char green() const { return _green; }
   inline unsigned char blue() const { return _blue; }
+  inline unsigned long pixel() const { return _pixel; }
   inline GC gc() const { return _gc; }
 };
 
index 189bbd6e00514a3d2fd242adcf9c7595ff54b8eb..90229d88c7db765ff98398a9e82338ec583a6485 100644 (file)
@@ -7,10 +7,10 @@
 #include "rendercontrol.hh"
 #include "truerendercontrol.hh"
 #include "rendertexture.hh"
+#include "rendercolor.hh"
 #include "display.hh"
 #include "screeninfo.hh"
 #include "surface.hh"
-#include "color.hh"
 #include "font.hh"
 #include "ustring.hh"
 
@@ -61,7 +61,8 @@ RenderControl::~RenderControl()
 }
 
 void RenderControl::drawString(Surface& sf, const Font &font, int x, int y,
-                              const Color &color, const ustring &string) const
+                              const RenderColor &color,
+                               const ustring &string) const
 {
   assert(sf._screen == _screen);
   XftDraw *d = sf._xftdraw;
index f4ae64936a1203ba316c4dfd351d9649c913ef8c..1d9ab7e7501dd3c1eb23978db21e246ae3797e06 100644 (file)
@@ -13,7 +13,7 @@ class ScreenInfo;
 class Surface;
 class RenderTexture;
 class Font;
-class Color;
+class RenderColor;
 class ustring;
 
 class RenderControl {
@@ -73,7 +73,8 @@ public:
 
   //! Draws a string onto a Surface
   virtual void drawString(Surface& sf, const Font& font, int x, int y,
-                         const Color& color, const ustring& string) const;
+                         const RenderColor& color,
+                          const ustring& string) const;
 
   //! Draws a background onto a Surface, as specified by a RenderTexture
   virtual void drawBackground(Surface& sf,
index c23d45aada0c07b9930b60cc0745978cc052aa58..ccdf3ebf7949180cef811082aad6bd1fa5fb20c6 100644 (file)
@@ -62,6 +62,8 @@ public:
   RenderStyle(int screen, const std::string &stylefile);
   virtual ~RenderStyle();
 
+  inline int screen() const { return _screen; }
+  
   inline RenderColor *textFocusColor() const { return _text_color_focus; }
   inline RenderColor *textUnfocusColor() const { return _text_color_unfocus; }
 
@@ -96,7 +98,7 @@ public:
     { return _button_unpress_unfocus; }
   inline RenderTexture *buttonPressFocusBackground() const
     { return _button_press_focus; }
-  inline RenderTexture *buttonPressUnfocusBackgrounf() const
+  inline RenderTexture *buttonPressUnfocusBackground() const
     { return _button_press_unfocus; }
 
   inline RenderTexture *gripdFocusBackground() const { return _grip_focus; }
index 2e2ec2ca7b634dbceaa9b27b93a09569201ffdb9..036ed1c3d5c4f16f8e4991643915f1abcb4356cb 100644 (file)
@@ -35,9 +35,9 @@ Widget::Widget(Widget *parent, Direction direction)
   setStyle(_style); // let the widget initialize stuff
 }
 
-Widget::Widget(EventDispatcher *event_dispatcher, Style *style,
-                     Direction direction, Cursor cursor, int bevel_width,
-                     bool override_redirect)
+Widget::Widget(EventDispatcher *event_dispatcher, RenderStyle *style,
+               Direction direction, Cursor cursor, int bevel_width,
+               bool override_redirect)
   : EventHandler(),
     _dirty(false),_focused(false),
     _parent(0), _style(style), _direction(direction), _cursor(cursor),
@@ -45,7 +45,7 @@ Widget::Widget(EventDispatcher *event_dispatcher, Style *style,
     _grabbed_mouse(false), _grabbed_keyboard(false),
     _stretchable_vert(false), _stretchable_horz(false), _texture(0),
     _bg_pixmap(0), _bg_pixel(0), _bcolor(0), _bwidth(0), _rect(0, 0, 1, 1),
-    _screen(style->getScreen()), _fixed_width(false), _fixed_height(false),
+    _screen(style->screen()), _fixed_width(false), _fixed_height(false),
     _surface(0),
     _event_dispatcher(event_dispatcher)
 {
@@ -444,7 +444,7 @@ void Widget::removeChild(Widget *child)
     _children.erase(it);
 }
 
-void Widget::setStyle(Style *style)
+void Widget::setStyle(RenderStyle *style)
 {
   assert(style);
   _style = style;
@@ -473,12 +473,22 @@ void Widget::exposeHandler(const XExposeEvent &e)
 void Widget::configureHandler(const XConfigureEvent &e)
 {
   EventHandler::configureHandler(e);
+
   if (_ignore_config) {
     _ignore_config--;
   } else {
-    if (!(e.width == _rect.width() && e.height == _rect.height())) {
+    int width = e.width;
+    int height = e.height;
+
+    XEvent ev;
+    while (XCheckTypedWindowEvent(**display, _window, ConfigureNotify, &ev)) {
+      width = ev.xconfigure.width;
+      height = ev.xconfigure.height;
+    }
+
+    if (!(width == _rect.width() && height == _rect.height())) {
       _dirty = true;
-      _rect.setSize(e.width, e.height);
+      _rect.setSize(width, height);
     }
     update();
   }
index c7fc713bbb79a7b392db8a6c9f1722b5cdf86282..2b0300939cbcaf988b8bc949b8d4c2e6019555ad 100644 (file)
@@ -5,7 +5,7 @@
 #include "rect.hh"
 #include "point.hh"
 #include "rendertexture.hh"
-#include "style.hh"
+#include "renderstyle.hh"
 #include "eventdispatcher.hh"
 #include "display.hh"
 #include "surface.hh"
@@ -28,7 +28,7 @@ public:
   typedef std::list<Widget *> WidgetList;
 
   Widget(Widget *parent, Direction = Horizontal);
-  Widget(EventDispatcher *event_dispatcher, Style *style,
+  Widget(EventDispatcher *event_dispatcher, RenderStyle *style,
          Direction direction = Horizontal, Cursor cursor = 0,
          int bevel_width = 1, bool override_redirect = false);
 
@@ -81,8 +81,8 @@ public:
   virtual void setTexture(RenderTexture *texture)
     { _texture = texture; _dirty = true; }
 
-  inline const Color *borderColor(void) const { return _bcolor; }
-  virtual void setBorderColor(const Color *color) {
+  inline const RenderColor *borderColor(void) const { return _bcolor; }
+  virtual void setBorderColor(const RenderColor *color) {
     assert(color); _bcolor = color;
     XSetWindowBorder(**display, _window, color->pixel());
   }
@@ -115,8 +115,8 @@ public:
   inline Direction direction(void) const { return _direction; }
   void setDirection(Direction dir) { _direction = dir; }
 
-  inline Style *style(void) const { return _style; }
-  virtual void setStyle(Style *style);
+  inline RenderStyle *style(void) const { return _style; }
+  virtual void setStyle(RenderStyle *style);
 
   inline EventDispatcher *eventDispatcher(void)
     { return _event_dispatcher; }
@@ -140,7 +140,7 @@ protected:
   Widget *_parent;
   WidgetList _children;
 
-  Style *_style;
+  RenderStyle *_style;
   Direction _direction;
   Cursor _cursor;
   int _bevel_width;
@@ -158,7 +158,7 @@ protected:
   Pixmap _bg_pixmap;
   unsigned int _bg_pixel;
 
-  const Color *_bcolor;
+  const RenderColor *_bcolor;
   unsigned int _bwidth;
 
   Rect _rect;
This page took 0.046005 seconds and 4 git commands to generate.