- for (unsigned int screen = 0; screen < numberOfScreens(); screen++) {
- BTexture texture;
- img_ctrl[screen]->parseTexture(&texture, grad);
- img_ctrl[screen]->parseColor(texture.getColor(), fore);
- img_ctrl[screen]->parseColor(texture.getColorTo(), back);
+ /*
+ we have to be sure that neither raised nor sunken is specified otherwise
+ odd looking borders appear. So we convert to lowercase then look for
+ 'raised' or 'sunken' in the description and erase them. To be paranoid
+ the search is done in a loop.
+ */
+ std::string descr;
+ descr.reserve(grad.size());
+
+ std::string::const_iterator it = grad.begin(), end = grad.end();
+ for (; it != end; ++it)
+ descr += tolower(*it);
+
+ std::string::size_type pos;
+ while ((pos = descr.find("raised")) != std::string::npos)
+ descr.erase(pos, 6); // 6 is strlen raised
+
+ while ((pos = descr.find("sunken")) != std::string::npos)
+ descr.erase(pos, 6);
+
+ // now add on 'flat' to prevent the bevels from being added
+ descr += "flat";
+
+ for (unsigned int screen = 0; screen < getNumberOfScreens(); screen++) {
+ BTexture texture(descr, this, screen, img_ctrl[screen]);