def previous(self):
     if self.current_x == 0:
         delta = timedelta(minutes=settings.getTimelineToDisplay())
         y = self.current_y
         self.stop_time -= delta
         self.start_time -= delta
         self.displayChannels()
         self.setFocus(0, y)
         self.setTimesLabels()
     else:
         self.current_x -= 1
         self.setFocus(self.current_x, self.current_y)
 def next(self):
     if len(self.currentGrid[self.current_y]) - 1 == self.current_x:
         # Load new page
         delta = timedelta(minutes=settings.getTimelineToDisplay())
         y = self.current_y
         self.stop_time += delta
         self.start_time += delta
         self.displayChannels()
         self.setFocus(0, y)
         self.setTimesLabels()
     else:
         # Next control
         self.current_x += 1
         self.setFocus(self.current_x, self.current_y)
    def setTimeMarker(self, timer=False):

        tm = self.window.getControl(EPGControl.image.TIME_MARKER)
        dt_now = datetime.now()
        delta = dt_now - self.start_time
        tm.setVisible(False)

        if delta.seconds >= 0 and delta.seconds <= settings.getTimelineToDisplay(
        ) * 60:
            x = self.secondsToX(delta.seconds)
            tm.setPosition(int(x), tm.getY())
            tm.setVisible(True)

        if timer and not abortRequested and not self.is_closing:
            Timer(1, self.setTimeMarker, {timer: True}).start()
    def __init__(self, window):

        self.window = window
        self.start_time = self.stop_time = None
        self.start_channel_id = 0

        globalControl = self.window.getControl(EPGControl.GLOBAL_CONTROL)
        self.left, self.top = globalControl.getPosition()
        self.right = self.left + globalControl.getWidth()
        self.bottom = self.top + globalControl.getHeight()
        self.width = globalControl.getWidth()
        self.cellHeight = globalControl.getHeight(
        ) / settings.getDisplayChannelsCount()

        start_time = datetime.now()
        self.start_time = start_time.replace(
            minute=(0 if start_time.minute <= 29 else 30))
        self.stop_time = self.start_time + timedelta(
            minutes=settings.getTimelineToDisplay() - 2)

        self.setEPGBackgrounds()
        self.setTimeMarker(timer=True)
        self.setTimesLabels()
 def secondsToX(self, secs):
     return self.left + (secs * self.width /
                         (settings.getTimelineToDisplay() * 60)) + 24
 def __toTimeView(ctime, multiplier):
     # Defining time for program guide and time labels zone.
     increment = int(settings.getTimelineToDisplay() / 4) * multiplier
     later = (ctime + timedelta(minutes=increment)).time()
     return str(("[B]%02d:%02d[/B]") % (later.hour, later.minute))