Exemple #1
0
    def __init__(self, cal, **kwargs):
        """
        Constructor.
        """
        CanvasTable.__init__(self, **kwargs)

        self.cal = cal
        self.range = kwargs.get('range')
        self.active_range = self.range
        self.selected = None

        # Create canvas items.
        self.scroll = hippo.CanvasScrollbars()
        self.hbox_top = hippo.CanvasBox(
            orientation=hippo.ORIENTATION_HORIZONTAL)
        self.vbox_top = hippo.CanvasBox()
        self.day_captions = CanvasTable()
        self.timeline = CanvasTimeline(self.cal)
        self.padding_left = hippo.CanvasBox()
        self.padding_right = hippo.CanvasBox()
        self.allday_view = CanvasHEventView(self.cal,
                                            yalign=hippo.ALIGNMENT_FILL)
        self.grid = CanvasGrid(self._new_cell)
        self.gridbox = hippo.CanvasBox(
            orientation=hippo.ORIENTATION_HORIZONTAL)
        self.vevent_views = {}
        self.hevent_views = {}
        self.allocs = {}
        self.allocs[self.padding_left] = (0, 0, 0, 0)
        self.allocs[self.padding_right] = (0, 0, 0, 0)

        self.vbox_top.append(self.day_captions)
        self.vbox_top.append(self.allday_view)
        self.day_captions.set_homogeneus_columns(True)

        self.hbox_top.append(self.padding_left)
        self.hbox_top.append(self.vbox_top, hippo.PACK_EXPAND)
        self.hbox_top.append(self.padding_right)

        self.gridbox.append(self.timeline)
        self.gridbox.append(self.grid, hippo.PACK_EXPAND)
        self.scroll.set_root(self.gridbox)

        self.add(self.hbox_top, 0, 1, 0, 1)
        self.add(self.scroll, 0, 1, 1, 2)
        self.set_row_expand(1, True)
        self.set_column_expand(0, True)
        self.allday_view.show_normal = False
        self.allday_view.connect('event-clicked', self.on_view_event_clicked)
        self.grid.connect('paint', self.on_grid_paint)
        self.grid.set_homogeneus_columns(True)