Пример #1
0
    def draw_marquee(self, cr):
        if not self.selection_recurrence:
            return
        s, e = self.dates_visible()
        for instance in self.selection_recurrence.timedOccurrences(s, e):

            try:
                area = self.area_from_start_end(instance.start,
                                                instance.end).shrink(2, 0)
            except DateNotVisible:
                return

            shapes.filled_box(cr, area, settings.marquee_fill_color)
            cr.set_source(settings.marquee_text_color)

            text = instance.start.strftime ("%X")
            shapes.text_above(cr, text, area.x, area.y - 2, area.width)
        
            text = instance.end.strftime ("%X")
            shapes.text_below(cr, text, area.x, area.y2 + 2, area.width)

            duration = instance.duration
            m = int (duration.seconds / 60) % 60
            h = int (duration.seconds / 60 / 60)

            text = "%dh %dm" % (h, m)
            shapes.centered_text(cr, area, text, settings.text_color)
Пример #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)