Ejemplo n.º 1
0
    def draw_event(self, cr, event, period):
        try:
            area = self.area_from_start_end(period.start, period.end).shrink(3, 0)
        except DateNotVisible:
            return
        
        #shapes.filled_box(cr, area, settings.default_event_bg_color)
        shapes.rounded_rect(cr, area, 5)
        m = cairo.Matrix()
        m.scale(1.0/area.width, 1.0/area.height)
        m.translate(-area.x, -area.y)

        settings.default_event_bg_color.set_matrix(m)
        cr.set_source(settings.default_event_bg_color)
        cr.fill_preserve()
        #cr.set_line_width(1.0)
        cr.set_source(settings.default_event_outline_color)
        settings.default_event_outline_color.set_matrix(m)
        #cr.set_antialias(cairo.ANTIALIAS_SUBPIXEL)
        cr.stroke()

        if (self.selected and
            (event == self.selected[0]) and
            (period.ordinal == self.selected[1]) and
            (self.cursor_showing)):
            cursor_pos = self.ti.get_cursor_pos()
        else:
            cursor_pos = -1

        lyt = shapes.left_aligned_text(cr, area.shrink(1, 3), event.description,
                                       settings.default_event_text_color,
                                       cursor_pos)
           
        self.occurrences[(event, period.ordinal)] = (event, area, period)
Ejemplo n.º 2
0
    def paint(self, cr):
        cr.identity_matrix()
        cr.scale(self.scale, self.scale)

        self.clear_background(cr)
        cr.set_source(settings.grid_line_color)
        cr.set_line_width(settings.grid_line_width)
        
        events = self.sort_allday_events_by_date()
        x = self.get_week_pixel_offset()

        cr.save()
        cr.set_antialias(cairo.ANTIALIAS_NONE)
        for i in xrange(0, (self.days_visible()) + 1):
            x += self.day_width
            cr.move_to (x, 0)
            cr.line_to (x, self.height)
        cr.stroke()
        cr.restore()

        cr.save()
        cr.rectangle(self.day_width, 0, self.width - self.day_width, self.height)
        cr.clip()
        for date, evts in events.iteritems():
            y = 0
            x = self.date_to_x(date)
            for event in evts:
                th = shapes.text_height(cr, self.day_width, event)
                area = shapes.Area(x, y + 2, self.day_width, th).shrink(3, 0)
                shapes.filled_box(cr, area, settings.default_event_bg_color,
                                  settings.default_event_outline_color)
                shapes.left_aligned_text(cr, area, event,
                                         settings.default_event_text_color)
                y += 20
        cr.restore()
            
        self.draw_comfort_lines(cr)