void ps_printer::set_color(color *col, int fill) { sbuf_color = *col; unsigned int components[4]; char s[3]; color_scheme cs = col->get_components(components); s[0] = fill ? 'F' : 'C'; s[2] = 0; switch (cs) { case DEFAULT: // black out.put_symbol("0"); s[1] = 'g'; break; case RGB: out.put_color(Red) .put_color(Green) .put_color(Blue); s[1] = 'r'; break; case CMY: col->get_cmyk(&Cyan, &Magenta, &Yellow, &Black); // fall through case CMYK: out.put_color(Cyan) .put_color(Magenta) .put_color(Yellow) .put_color(Black); s[1] = 'k'; cmyk_flag = 1; break; case GRAY: out.put_color(Gray); s[1] = 'g'; break; } out.put_symbol(s); }