Exemple #1
0
    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()
Exemple #2
0
    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])
Exemple #3
0
 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])
Exemple #4
0
    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])