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)