def draw(self, cr, hover=(None, None)): set_fonts(cr, self.font['font'], self.font['fontsize']) # highlight if self._active: cr.set_source_rgba(0, 0, 0, 0.1) leading = self._leading cl, cx, cy = self._cursor_location(self._i) sl, sx, sy = self._cursor_location(self._j) for l, x1, x2 in _paint_select(cl, sl, cx, sx, self._x + 30, self._x_right): cr.rectangle(x1, self._y + l*leading, x2 - x1, leading) cr.fill() # text color_iter = self._colored_text.items() else: if self._invalid: color_iter = (((1, 0.4, 0.4), glyphs) for glyphs in self._colored_text.values()) else: color_iter = self._colored_text.items() for color, glyphs in color_iter: cr.set_source_rgba( * color ) cr.show_glyphs(glyphs) cr.fill() # cursor if self._active: cr.set_source_rgb( * accent) cr.rectangle(cx - 1, cy, 2, leading) cr.rectangle(sx - 1, sy, 2, leading) cr.fill()
def draw(self, cr, hover=None): if hover is not None: hover, Hside = hover set_fonts(cr, * self._cells[0][1][:2] ) for i, ((cx, cy, ch, ck), textline) in enumerate(self._cells): count = self._table[i][0] if count: # nonzero count if count > 0: R = range(count) bg = accent else: R = reversed(range(0, count, -1)) bg = negative_accent for c in R: cr.set_source_rgba(1, 1, 1, 0.5) cr.rectangle(cx + 2*c - 1, cy - 2*c + 1, ch, ck) cr.fill() cr.set_source_rgb( * bg ) cr.rectangle(cx + 2*c, cy - 2*c, ch, ck) cr.fill() offset = max(0, (count - 1) * 2) cr.set_source_rgb(1, 1, 1) cr.show_glyphs((g[0], g[1] + offset, g[2] - offset) for g in textline[2]) minus_sign(cr, cx - 2 + offset, cy - 1 - offset) plus_sign(cr, cx + ch - 24 + offset, cy - 1 - offset) cr.fill() continue elif hover == i: minus_sign(cr, cx - 2, cy) if Hside: cr.set_source_rgba(0, 0, 0, 0.7) else: cr.set_source_rgb( * accent ) cr.fill() plus_sign(cr, cx + ch - 24, cy) if Hside: cr.set_source_rgb( * accent ) else: cr.set_source_rgba(0, 0, 0, 0.7) cr.fill() cr.set_source_rgb( * accent ) cr.show_glyphs(textline[2]) else: cr.set_source_rgba(0, 0, 0, 0.7) cr.show_glyphs(textline[2])
def draw(self, cr, hover=None): cr.set_source_rgb(0.8, 0.8, 0.8) cr.rectangle(self._x, self._y, self._width, self._height) cr.fill() cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(self._x + 1, self._y + 1, self._width - 2, self._height - 2) cr.fill() set_fonts(cr, * self._SF ) for i, label in enumerate(self._labels): if i == hover: cr.set_source_rgb( * accent ) cr.rectangle(self._x, self._y + i*self._item_height, self._width, self._item_height) cr.fill() cr.set_source_rgb(1, 1, 1) else: cr.set_source_rgb(0.1,0.1,0.1) cr.show_glyphs(label[2])
def draw(self, cr, hover=None): cr.set_source_rgb(0.8, 0.8, 0.8) cr.rectangle(self._x, self._y, self._width, self._height) cr.fill() cr.set_source_rgba(1, 1, 1, 1) cr.rectangle(self._x + 1, self._y + 1, self._width - 2, self._height - 2) cr.fill() set_fonts(cr, *self._SF) for i, label in enumerate(self._labels): if i == hover: cr.set_source_rgb(*accent) cr.rectangle(self._x, self._y + i * self._item_height, self._width, self._item_height) cr.fill() cr.set_source_rgb(1, 1, 1) else: cr.set_source_rgb(0.1, 0.1, 0.1) cr.show_glyphs(label[2])