all repos — openbox @ 033e9843bcec8340c9e657fe0f0519f86075424b

openbox fork - make it a bit more like ryudo

otk using new render shit.. supposedly
Dana Jansens danakj@orodu.net
commit

033e9843bcec8340c9e657fe0f0519f86075424b

parent

75e8fc2705d9c606a702eb7057e9e503be90618b

M otk/application.ccotk/application.cc

@@ -30,22 +30,16 @@ {

(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 @@ }

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)
M otk/application.hhotk/application.hh

@@ -4,9 +4,7 @@ #define __application_hh

#include "eventdispatcher.hh" #include "display.hh" -#include "configuration.hh" -#include "image.hh" -#include "style.hh" +#include "renderstyle.hh" namespace otk {

@@ -25,16 +23,14 @@

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;
M otk/appwidget.ccotk/appwidget.cc

@@ -15,7 +15,7 @@

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) {
M otk/button.ccotk/button.cc

@@ -19,15 +19,14 @@ {

} -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(); }
M otk/button.hhotk/button.hh

@@ -33,7 +33,7 @@

void buttonPressHandler(const XButtonEvent &e); void buttonReleaseHandler(const XButtonEvent &e); - virtual void setStyle(Style *style); + virtual void setStyle(RenderStyle *style); private:
M otk/focuslabel.ccotk/focuslabel.cc

@@ -20,22 +20,21 @@ {

} -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 @@ length = ft->measureString(t);

} 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; } }
M otk/focuslabel.hhotk/focuslabel.hh

@@ -18,7 +18,7 @@ void setText(const ustring &text) { _text = text; _dirty = true; }

void renderForeground(void); - virtual void setStyle(Style *style); + virtual void setStyle(RenderStyle *style); private: //! Text displayed in the label
M otk/focuswidget.ccotk/focuswidget.cc

@@ -55,7 +55,7 @@ Widget::setTexture(texture);

_focus_texture = texture; } -void FocusWidget::setBorderColor(const Color *color) +void FocusWidget::setBorderColor(const RenderColor *color) { Widget::setBorderColor(color); _focus_bcolor = color;
M otk/focuswidget.hhotk/focuswidget.hh

@@ -18,16 +18,16 @@ virtual void focus(void);

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 @@

RenderTexture *_unfocus_texture; RenderTexture *_focus_texture; - const Color *_unfocus_bcolor; - const Color *_focus_bcolor; + const RenderColor *_unfocus_bcolor; + const RenderColor *_focus_bcolor; }; }
M otk/label.ccotk/label.cc

@@ -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 @@ length = ft->measureString(t);

} 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); } }
M otk/label.hhotk/label.hh

@@ -18,7 +18,7 @@ void setText(const ustring &text) { _text = text; _dirty = true; }

virtual void renderForeground(void); - virtual void setStyle(Style *style); + virtual void setStyle(RenderStyle *style); private: //! Text to be displayed in the label
M otk/otk_test.ccotk/otk_test.cc

@@ -15,8 +15,8 @@

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 @@

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 @@ // fix width to 60 and let the height be calculated by its parent

//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 @@ otk::Button rbutt2(&right);

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 @@ //foo.unfocus();

foo.show(); - app.exec(); + app.run(); return 0; }
M otk/rendercolor.ccotk/rendercolor.cc

@@ -71,7 +71,8 @@ _red, _green, _blue);

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);
M otk/rendercolor.hhotk/rendercolor.hh

@@ -36,6 +36,7 @@ int _screen;

unsigned char _red; unsigned char _green; unsigned char _blue; + unsigned long _pixel; GC _gc;

@@ -54,6 +55,7 @@ inline int screen() const { return _screen; }

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; } };
M otk/rendercontrol.ccotk/rendercontrol.cc

@@ -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 @@

} 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;
M otk/rendercontrol.hhotk/rendercontrol.hh

@@ -13,7 +13,7 @@ class ScreenInfo;

class Surface; class RenderTexture; class Font; -class Color; +class RenderColor; class ustring; class RenderControl {

@@ -73,7 +73,8 @@ static RenderControl *getRenderControl(int screen);

//! 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,
M otk/renderstyle.hhotk/renderstyle.hh

@@ -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 @@ inline RenderTexture *buttonUnpressUnfocusBackground() const

{ 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; }
M otk/widget.ccotk/widget.cc

@@ -35,9 +35,9 @@ _event_dispatcher->registerHandler(_window, this);

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 @@ _bevel_width(bevel_width), _ignore_config(0), _visible(false),

_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 @@ if (it != _children.end())

_children.erase(it); } -void Widget::setStyle(Style *style) +void Widget::setStyle(RenderStyle *style) { assert(style); _style = style;

@@ -473,12 +473,22 @@

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(); }
M otk/widget.hhotk/widget.hh

@@ -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 @@

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 @@ inline RenderTexture *texture(void) const { return _texture; }

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 @@

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 @@

Widget *_parent; WidgetList _children; - Style *_style; + RenderStyle *_style; Direction _direction; Cursor _cursor; int _bevel_width;

@@ -158,7 +158,7 @@ RenderTexture *_texture;

Pixmap _bg_pixmap; unsigned int _bg_pixel; - const Color *_bcolor; + const RenderColor *_bcolor; unsigned int _bwidth; Rect _rect;