X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fstyle.cc;h=a3d21788d5fb8871e36e2af2ccec68997be73e40;hb=52b83a9dbb2b7823d5f78781f5948dfd8d77d50b;hp=d98c926b5a21e8d23070382c62a44085f49fafaa;hpb=196996230c7a3ac409c317a8a3be3970917bdd9a;p=chaz%2Fopenbox diff --git a/otk/style.cc b/otk/style.cc index d98c926b..a3d21788 100644 --- a/otk/style.cc +++ b/otk/style.cc @@ -1,10 +1,13 @@ -#ifdef HAVE_CONFIG_H -#include "../config.h" -#endif // HAVE_CONFIG_H +// -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*- + +#ifdef HAVE_CONFIG_H +# include "../config.h" +#endif #include -#include "display.hh" +#include +#include "display.hh" #include "util.hh" #include "style.hh" @@ -14,13 +17,9 @@ Style::Style() : font(NULL) { } -Style::Style(unsigned int screen) - : font(NULL), screen_number(screen) -{ -} - -Style::Style(unsigned int screen, BImageControl *ctrl) - : image_control(ctrl), font(NULL), screen_number(screen) +Style::Style(BImageControl *ctrl) + : image_control(ctrl), font(0), + screen_number(ctrl->getScreenInfo()->getScreenNumber()) { } @@ -43,7 +42,7 @@ Style::~Style() { stick_button.mask = None; } -void Style::load(Configuration &style) { +void Style::load(const Configuration &style) { std::string s; // load fonts/fontsets @@ -159,32 +158,6 @@ void Style::load(Configuration &style) { } -void Style::doJustify(const std::string &text, int &start_pos, - unsigned int max_length, - unsigned int modifier) const { - size_t text_len = text.size(); - unsigned int length; - - do { - length = font->measureString(std::string(text, 0, text_len)) + modifier; - } while (length > max_length && text_len-- > 0); - - switch (justify) { - case RightJustify: - start_pos += max_length - length; - break; - - case CenterJustify: - start_pos += (max_length - length) / 2; - break; - - case LeftJustify: - default: - break; - } -} - - void Style::readDatabaseMask(const std::string &rname, PixmapMask &pixmapMask, const Configuration &style) { Window root_window = OBDisplay::screenInfo(screen_number)->getRootWindow(); @@ -260,50 +233,29 @@ BColor Style::readDatabaseColor(const std::string &rname, BFont *Style::readDatabaseFont(const std::string &rbasename, - const Configuration &style) { - std::string fontname; + const Configuration &style) { + std::string fontstring, s; - std::string s; + // XXX: load all this font stuff from the style... - int i; - if (style.getValue(rbasename + "xft.font", s) && - style.getValue(rbasename + "xft.size", i)) { - std::string family = s; - bool bold = False; - bool italic = False; - bool dropShadow = False; - - if (style.getValue(rbasename + "xft.flags", s)) { - if (s.find("bold") != std::string::npos) - bold = True; - if (s.find("italic") != std::string::npos) - italic = True; - if (s.find("shadow") != std::string::npos) - dropShadow = True; - } + bool dropShadow = True; - unsigned char offset = 1; - if (style.getValue(rbasename + "xft.shadow.offset", s)) { - offset = atoi(s.c_str()); //doesn't detect errors - if (offset > CHAR_MAX) - offset = 1; - } - - unsigned char tint = 0x40; - if (style.getValue(rbasename + "xft.shadow.tint", s)) { - tint = atoi(s.c_str()); - } + unsigned char offset = 1; + if (style.getValue(rbasename + "xft.shadow.offset", s)) { + offset = atoi(s.c_str()); //doesn't detect errors + if (offset > CHAR_MAX) + offset = 1; + } - - BFont *b = new BFont(screen_number, family, i, bold, italic, - dropShadow && shadow_fonts, - offset, tint, aa_fonts); - if (b->valid()) - return b; - delete b; + unsigned char tint = 0x40; + if (style.getValue(rbasename + "xft.shadow.tint", s)) { + tint = atoi(s.c_str()); } - - exit(2); // can't continue without a font + + fontstring = "Arial,Sans-8:bold"; + + // if this fails, it ::exit()'s + return new BFont(screen_number, fontstring, dropShadow, offset, tint); } }