X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Ftexture.cc;h=67addc3becdaabd3fdaa50dd80a7e49ae4a69ed4;hb=2c977ae7ffe1e287264989669d2cfd2eb499d4ee;hp=22454c59409b44dc6f8250badffe6d151c81d3c2;hpb=85c41a1aec90b8daefc425596ea34b6f9d0e643c;p=chaz%2Fopenbox diff --git a/otk/texture.cc b/otk/texture.cc index 22454c59..67addc3b 100644 --- a/otk/texture.cc +++ b/otk/texture.cc @@ -14,33 +14,30 @@ extern "C" { #include #include "texture.hh" -#include "basedisplay.hh" +#include "display.hh" #include "image.hh" -#include "screen.hh" -#include "blackbox.hh" using std::string; +namespace otk { -BTexture::BTexture(const BaseDisplay * const _display, - unsigned int _screen, BImageControl* _ctrl) - : c(_display, _screen), ct(_display, _screen), - lc(_display, _screen), sc(_display, _screen), bc(_display, _screen), t(0), - dpy(_display), ctrl(_ctrl), scrn(_screen) { } +Texture::Texture(unsigned int _screen, ImageControl* _ctrl) + : c(_screen), ct(_screen), + lc(_screen), sc(_screen), bc(_screen), t(0), + ctrl(_ctrl), scrn(_screen) { } -BTexture::BTexture(const string &d, const BaseDisplay * const _display, - unsigned int _screen, BImageControl* _ctrl) - : c(_display, _screen), ct(_display, _screen), - lc(_display, _screen), sc(_display, _screen), bc(_display, _screen), t(0), - dpy(_display), ctrl(_ctrl), scrn(_screen) { +Texture::Texture(const string &d,unsigned int _screen, ImageControl* _ctrl) + : c(_screen), ct(_screen), + lc(_screen), sc(_screen), bc(_screen), t(0), + ctrl(_ctrl), scrn(_screen) { setDescription(d); } -void BTexture::setColor(const BColor &cc) { +void Texture::setColor(const Color &cc) { c = cc; - c.setDisplay(display(), screen()); + c.setScreen(screen()); unsigned char r, g, b, rr, gg, bb; @@ -54,7 +51,7 @@ void BTexture::setColor(const BColor &cc) { if (rr < r) rr = ~0; if (gg < g) gg = ~0; if (bb < b) bb = ~0; - lc = BColor(rr, gg, bb, display(), screen()); + lc = Color(rr, gg, bb, screen()); // calculate the shadow color r = c.red(); @@ -66,11 +63,11 @@ void BTexture::setColor(const BColor &cc) { if (rr > r) rr = 0; if (gg > g) gg = 0; if (bb > b) bb = 0; - sc = BColor(rr, gg, bb, display(), screen()); + sc = Color(rr, gg, bb, screen()); } -void BTexture::setDescription(const string &d) { +void Texture::setDescription(const string &d) { descr.erase(); descr.reserve(d.length()); @@ -79,72 +76,70 @@ void BTexture::setDescription(const string &d) { descr += tolower(*it); if (descr.find("parentrelative") != string::npos) { - setTexture(BTexture::Parent_Relative); + setTexture(Texture::Parent_Relative); } else { setTexture(0); if (descr.find("gradient") != string::npos) { - addTexture(BTexture::Gradient); + addTexture(Texture::Gradient); if (descr.find("crossdiagonal") != string::npos) - addTexture(BTexture::CrossDiagonal); + addTexture(Texture::CrossDiagonal); else if (descr.find("rectangle") != string::npos) - addTexture(BTexture::Rectangle); + addTexture(Texture::Rectangle); else if (descr.find("pyramid") != string::npos) - addTexture(BTexture::Pyramid); + addTexture(Texture::Pyramid); else if (descr.find("pipecross") != string::npos) - addTexture(BTexture::PipeCross); + addTexture(Texture::PipeCross); else if (descr.find("elliptic") != string::npos) - addTexture(BTexture::Elliptic); + addTexture(Texture::Elliptic); else if (descr.find("horizontal") != string::npos) - addTexture(BTexture::Horizontal); + addTexture(Texture::Horizontal); else if (descr.find("vertical") != string::npos) - addTexture(BTexture::Vertical); + addTexture(Texture::Vertical); else - addTexture(BTexture::Diagonal); + addTexture(Texture::Diagonal); } else { - addTexture(BTexture::Solid); + addTexture(Texture::Solid); } if (descr.find("sunken") != string::npos) - addTexture(BTexture::Sunken); + addTexture(Texture::Sunken); else if (descr.find("flat") != string::npos) - addTexture(BTexture::Flat); + addTexture(Texture::Flat); else - addTexture(BTexture::Raised); + addTexture(Texture::Raised); - if (texture() & BTexture::Flat) { + if (texture() & Texture::Flat) { if (descr.find("border") != string::npos) - addTexture(BTexture::Border); + addTexture(Texture::Border); } else { if (descr.find("bevel2") != string::npos) - addTexture(BTexture::Bevel2); + addTexture(Texture::Bevel2); else - addTexture(BTexture::Bevel1); + addTexture(Texture::Bevel1); } if (descr.find("interlaced") != string::npos) - addTexture(BTexture::Interlaced); + addTexture(Texture::Interlaced); } } -void BTexture::setDisplay(const BaseDisplay * const _display, - const unsigned int _screen) { - if (_display == display() && _screen == screen()) { +void Texture::setScreen(const unsigned int _screen) { + if (_screen == screen()) { // nothing to do return; } - dpy = _display; scrn = _screen; - c.setDisplay(_display, _screen); - ct.setDisplay(_display, _screen); - lc.setDisplay(_display, _screen); - sc.setDisplay(_display, _screen); - bc.setDisplay(_display, _screen); + c.setScreen(_screen); + ct.setScreen(_screen); + lc.setScreen(_screen); + sc.setScreen(_screen); + bc.setScreen(_screen); } -BTexture& BTexture::operator=(const BTexture &tt) { +Texture& Texture::operator=(const Texture &tt) { c = tt.c; ct = tt.ct; lc = tt.lc; @@ -152,7 +147,6 @@ BTexture& BTexture::operator=(const BTexture &tt) { bc = tt.bc; descr = tt.descr; t = tt.t; - dpy = tt.dpy; scrn = tt.scrn; ctrl = tt.ctrl; @@ -160,18 +154,17 @@ BTexture& BTexture::operator=(const BTexture &tt) { } -Pixmap BTexture::render(const unsigned int width, const unsigned int height, +Pixmap Texture::render(const unsigned int width, const unsigned int height, const Pixmap old) { - assert(display() != 0); - assert(texture() != BTexture::NoTexture); + assert(texture() != Texture::NoTexture); - if (texture() == (BTexture::Flat | BTexture::Solid)) - return None; - if (texture() == BTexture::Parent_Relative) +// if (texture() == (Texture::Flat | Texture::Solid)) +// return None; + if (texture() == Texture::Parent_Relative) return ParentRelative; if (screen() == ~(0u)) - scrn = DefaultScreen(display()->getXDisplay()); + scrn = DefaultScreen(**display); assert(ctrl != 0); Pixmap ret = ctrl->renderImage(width, height, *this); @@ -181,3 +174,5 @@ Pixmap BTexture::render(const unsigned int width, const unsigned int height, return ret; } + +}