def __init__(self, conf=None, dbtool=None, eventcolumn=None): self.conf = conf self.dbtool = dbtool self.eventcolumn = eventcolumn pile = urwid.Filler(CPile([])) urwid.WidgetWrap.__init__(self, pile) self.update()
def update(self, date): """create an EventList populated with Events for `date` and display it """ self.date = date # TODO make this switch from pile to columns depending on terminal size events = EventList(conf=self.conf, dbtool=self.dbtool, eventcolumn=self) self.eventcount = events.update(date) self.container = CPile([events]) self._w = self.container
def __init__(self, accounts, account_chooser): self.account_chooser = account_chooser acc_list = [] for one in accounts: button = urwid.Button(one, on_press=self.set_account, user_data=one) acc_list.append(button) pile = CPile(acc_list) fill = urwid.Filler(pile) self.__super.__init__(urwid.AttrMap(fill, 'popupbg'))
def __init__(self, conf, dbtool, event): super(EventDisplay, self).__init__(conf, dbtool) lines = [] lines.append(urwid.Text(event.vevent['SUMMARY'])) # start and end time/date if event.allday: startstr = event.start.strftime(self.conf.default.dateformat) if event.start == event.end: lines.append(urwid.Text('On: ' + startstr)) else: endstr = event.end.strftime(self.conf.default.dateformat) lines.append(urwid.Text('From: ' + startstr + ' to: ' + endstr)) else: startstr = event.start.strftime(self.conf.default.dateformat + ' ' + self.conf.default.timeformat) if event.start.date == event.end.date: endstr = event.end.strftime(self.conf.default.timeformat) else: endstr = event.end.strftime(self.conf.default.dateformat + ' ' + self.conf.default.timeformat) lines.append(urwid.Text('From: ' + startstr + ' To: ' + endstr)) # resource lines.append(urwid.Text('Calendar: ' + event.account)) # description and location for key, desc in [('DESCRIPTION', 'Desc'), ('LOCATION', 'Loc')]: try: lines.append( urwid.Text(desc + ': ' + str(event.vevent[key].encode('utf-8')))) except KeyError: pass pile = CPile(lines) self._w = urwid.Filler(pile, valign='top')
def __init__(self, conf, dbtool): self.conf = conf self.dbtool = dbtool pile = CPile([]) urwid.WidgetWrap.__init__(self, pile)
def toggle(self, checkbox, state): """change from allday to datetime event :param checkbox: the checkbox instance that is used for toggling, gets automatically passed by urwid (is not used) :type checkbox: checkbox :param state: True if allday event, False if datetime :type state: bool """ self.allday = state datewidth = len(self.startdate) + 7 edit = urwid.Edit(caption=('', 'From: '), edit_text=self.startdate, wrap='any') edit = urwid.AttrMap( edit, self.startdate_bg, 'editcp', ) edit = urwid.Padding(edit, align='left', width=datewidth, left=0, right=1) self.startdatewidget = edit edit = urwid.Edit(caption=('', 'To: '), edit_text=self.enddate, wrap='any') edit = urwid.AttrMap( edit, self.enddate_bg, 'editcp', ) edit = urwid.Padding(edit, align='left', width=datewidth, left=0, right=1) self.enddatewidget = edit if state is True: timewidth = 1 self.starttimewidget = urwid.Text('') self.endtimewidget = urwid.Text('') elif state is False: timewidth = len(self.starttime) + 1 edit = urwid.Edit(edit_text=self.starttime, wrap='any') edit = urwid.AttrMap( edit, self.starttime_bg, 'editcp', ) edit = urwid.Padding(edit, align='left', width=len(self.starttime) + 1, left=1) self.starttimewidget = edit edit = urwid.Edit(edit_text=self.endtime, wrap='any') edit = urwid.AttrMap( edit, self.endtime_bg, 'editcp', ) edit = urwid.Padding(edit, align='left', width=len(self.endtime) + 1, left=1) self.endtimewidget = edit columns = CPile([ CColumns([(datewidth, self.startdatewidget), (timewidth, self.starttimewidget)], dividechars=1), CColumns([(datewidth, self.enddatewidget), (timewidth, self.endtimewidget)], dividechars=1), self.checkallday ], focus_item=2) urwid.WidgetWrap.__init__(self, columns)