def paint_foreground_cb(self, cr, wd, ht): """Fg marker painting, for `ColorAdjusterWidget` impls. """ col = HSVColor(color=self.get_managed_color()) col.s = 1.0 radius = self.get_radius(wd, ht, self.BORDER_WIDTH) cx = int(wd // 2) cy = int(ht // 2) cr.arc(cx, cy, radius + 0.5, 0, 2 * math.pi) cr.clip() x, y = self.get_pos_for_color(col) col.s = 0.70 ex, ey = self.get_pos_for_color(col) cr.set_line_width(5) cr.move_to(x, y) cr.line_to(ex, ey) cr.set_source_rgb(0, 0, 0) cr.stroke_preserve() cr.set_source_rgb(1, 1, 1) cr.set_line_width(3.5) cr.stroke_preserve() cr.set_source_rgb(*col.get_rgb()) cr.set_line_width(0.25) cr.stroke()
def paint_foreground_cb(self, cr, wd, ht): """Fg marker painting, for `ColorAdjusterWidget` impls. """ col = HSVColor(color=self.get_managed_color()) col.s = 1.0 radius = self.get_radius(wd, ht, self.BORDER_WIDTH) cx = int(wd // 2) cy = int(ht // 2) cr.arc(cx, cy, radius+0.5, 0, 2*math.pi) cr.clip() x, y = self.get_pos_for_color(col) col.s = 0.70 ex, ey = self.get_pos_for_color(col) cr.set_line_width(5) cr.move_to(x, y) cr.line_to(ex, ey) cr.set_source_rgb(0, 0, 0) cr.stroke_preserve() cr.set_source_rgb(1, 1, 1) cr.set_line_width(3.5) cr.stroke_preserve() cr.set_source_rgb(*col.get_rgb()) cr.set_line_width(0.25) cr.stroke()
def render_background_cb(self, cr, wd, ht, icon_border=None): col = HSVColor(color=self.get_managed_color()) b = icon_border if b is None: b = self.BORDER_WIDTH eff_wd = int(wd - 2*b) eff_ht = int(ht - 2*b) f1, f2 = self.__get_faces() step = max(1, int(eff_wd // 128)) rect_x, rect_y = int(b)+0.5, int(b)+0.5 rect_w, rect_h = int(eff_wd)-1, int(eff_ht)-1 # Paint the central area offscreen cr.push_group() for x in xrange(0, eff_wd, step): amt = x / eff_wd setattr(col, f1, amt) setattr(col, f2, 1.0) lg = cairo.LinearGradient(b+x, b, b+x, b+eff_ht) lg.add_color_stop_rgb(*([0.0] + list(col.get_rgb()))) setattr(col, f2, 0.0) lg.add_color_stop_rgb(*([1.0] + list(col.get_rgb()))) cr.rectangle(b+x, b, step, eff_ht) cr.set_source(lg) cr.fill() slice_patt = cr.pop_group() # Tango-like outline cr.set_line_join(cairo.LINE_JOIN_ROUND) cr.rectangle(rect_x, rect_y, rect_w, rect_h) cr.set_line_width(self.OUTLINE_WIDTH) cr.set_source_rgba(*self.OUTLINE_RGBA) cr.stroke() # The main area cr.set_source(slice_patt) cr.paint() # Tango-like highlight over the top cr.rectangle(rect_x, rect_y, rect_w, rect_h) cr.set_line_width(self.EDGE_HIGHLIGHT_WIDTH) cr.set_source_rgba(*self.EDGE_HIGHLIGHT_RGBA) cr.stroke()
def render_background_cb(self, cr, wd, ht, icon_border=None): col = HSVColor(color=self.get_managed_color()) b = icon_border if b is None: b = self.BORDER_WIDTH eff_wd = int(wd - 2 * b) eff_ht = int(ht - 2 * b) f1, f2 = self.__get_faces() step = max(1, int(eff_wd // 128)) rect_x, rect_y = int(b) + 0.5, int(b) + 0.5 rect_w, rect_h = int(eff_wd) - 1, int(eff_ht) - 1 # Paint the central area offscreen cr.push_group() for x in xrange(0, eff_wd, step): amt = x / eff_wd setattr(col, f1, amt) setattr(col, f2, 1.0) lg = cairo.LinearGradient(b + x, b, b + x, b + eff_ht) lg.add_color_stop_rgb(*([0.0] + list(col.get_rgb()))) setattr(col, f2, 0.0) lg.add_color_stop_rgb(*([1.0] + list(col.get_rgb()))) cr.rectangle(b + x, b, step, eff_ht) cr.set_source(lg) cr.fill() slice_patt = cr.pop_group() # Tango-like outline cr.set_line_join(cairo.LINE_JOIN_ROUND) cr.rectangle(rect_x, rect_y, rect_w, rect_h) cr.set_line_width(self.OUTLINE_WIDTH) cr.set_source_rgba(*self.OUTLINE_RGBA) cr.stroke() # The main area cr.set_source(slice_patt) cr.paint() # Tango-like highlight over the top cr.rectangle(rect_x, rect_y, rect_w, rect_h) cr.set_line_width(self.EDGE_HIGHLIGHT_WIDTH) cr.set_source_rgba(*self.EDGE_HIGHLIGHT_RGBA) cr.stroke()