Changeset 941 for trunk/lib/Colors.cc


Ignore:
Timestamp:
Dec 3, 2009, 7:05:39 AM (13 years ago)
Author:
Peter Johansson
Message:

refs #419. Lifted some functions/code from Colors' privacy to be reachable also from Configuration class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Colors.cc

    r940 r941  
    7373      color c;
    7474      c.label=i->first;
    75       if (i->second.size()==6) {
    76         c.r= 16*to_decimal(i->second[0]) + to_decimal(i->second[1]);
    77         c.g= 16*to_decimal(i->second[2]) + to_decimal(i->second[3]);
    78         c.b= 16*to_decimal(i->second[4]) + to_decimal(i->second[5]);
    79       }
    80       else if (i->second.size()==3) {
    81         c.r= 16*to_decimal(i->second[0]) + to_decimal(i->second[0]);
    82         c.g= 16*to_decimal(i->second[1]) + to_decimal(i->second[1]);
    83         c.b= 16*to_decimal(i->second[2]) + to_decimal(i->second[2]);
    84       }
    85       else
    86         throw std::runtime_error("invalid color format: " + i->second);
     75      str2rgb(i->second, c.r, c.g, c.b);
    8776      next_color_=color_map_.insert(next_color_,c);
    8877      author_map_.insert(std::make_pair(c.label, next_color_++));
     
    117106
    118107
    119   int Colors::to_decimal(int hex)
     108  int to_decimal(int hex)
    120109  {
    121110    hex=toupper(hex);
     
    127116  }
    128117
     118  void str2rgb(const std::string& str, unsigned char& r, unsigned char& g,
     119               unsigned char& b)
     120  {
     121    if (str.size()==6) {
     122      r = 16*to_decimal(str[0]) + to_decimal(str[1]);
     123      g = 16*to_decimal(str[2]) + to_decimal(str[3]);
     124      b = 16*to_decimal(str[4]) + to_decimal(str[5]);
     125    }
     126    else if (str.size()==3) {
     127      r = 17*to_decimal(str[0]);
     128      g = 17*to_decimal(str[1]);
     129      b = 17*to_decimal(str[2]);
     130    }
     131    else
     132      throw std::runtime_error("invalid color format: " + str);
     133  }
     134
     135
    129136}} // end of namespace svndigest and namespace theplu
Note: See TracChangeset for help on using the changeset viewer.