def __init__(self, options): super(Window, self).__init__(800, 600, "Loading...", True, None, False) self.slideshow = Slideshow(options) self.options = options self.printer = Printer() self.reader = Reader(self.printer) self.setup()
def __init__(self, options): super(Window, self).__init__( 800, 600, "Loading...", True, None, False ) self.slideshow = Slideshow(options) self.options = options self.printer = Printer() self.reader = Reader(self.printer) self.setup()
class Window(window.Window): def __init__(self, options): super(Window, self).__init__(800, 600, "Loading...", True, None, False) self.slideshow = Slideshow(options) self.options = options self.printer = Printer() self.reader = Reader(self.printer) self.setup() def setup(self): if not self.options.windowed: self.toggle_fullscreen() def toggle_fullscreen(self): self.activate() self.set_mouse_visible(self.fullscreen) self.set_fullscreen(not self.fullscreen) def update_caption(self): self.set_caption( "ymage [%d/%d]" % (self.slideshow.index + 1, len(self.slideshow.slides))) # Actions def _set_duration(self): self.reader.start_reading("Duration", self.slideshow.set_duration) def _increase_duration(self): self.printer._print("Duration: {}".format( self.slideshow.increase_duration())) def _decrease_duration(self): self.printer._print("Duration: {}".format( self.slideshow.decrease_duration())) def _previous_slide(self): self.slideshow.display(action="previous") def _next_slide(self): self.slideshow.display(action="next") def _toggle_paused(self): self.printer._print(self.slideshow.toggle_paused()) def _random(self): self.slideshow.display(action="random", previous=False) def _previous_random(self): self.slideshow.display(action="random", previous=True) def _print_info(self): self.printer._print("{} [{}/{}]".format(self.slideshow.get_current(), self.slideshow.index + 1, len(self.slideshow.slides))) def _search(self, query=None): if query is None: self.reader.start_reading("Search for", self._search) else: self.slideshow.display(action="search", query=query) def _jump(self, index=None): if index is None: self.reader.start_reading("Slide", self._jump) else: self.slideshow.display(action="jump", index=index) def on_draw(self): self.clear() try: self.slideshow.draw(self.width, self.height) except gl.lib.GLException: # In case one of the slides is corrupted # move on to the next self.slideshow.display() self.update_caption() self.printer.draw() def on_key_press(self, symbol, modifiers): if self.reader.is_reading: self.reader.read(symbol, modifiers) return try: { window.key.P: self._print_info, window.key.R: self._random, window.key.E: self._previous_random, window.key.D: self._set_duration, window.key.UP: self._increase_duration, window.key.DOWN: self._decrease_duration, window.key.LEFT: self._previous_slide, window.key.RIGHT: self._next_slide, window.key.SPACE: self._toggle_paused, window.key.I: self._jump, window.key.F: self.toggle_fullscreen, window.key.SLASH: self._search, window.key.RETURN: app.exit, window.key.ESCAPE: app.exit, }[symbol]() except KeyError: pass
class Window(window.Window): def __init__(self, options): super(Window, self).__init__( 800, 600, "Loading...", True, None, False ) self.slideshow = Slideshow(options) self.options = options self.printer = Printer() self.reader = Reader(self.printer) self.setup() def setup(self): if not self.options.windowed: self.toggle_fullscreen() def toggle_fullscreen(self): self.activate() self.set_mouse_visible(self.fullscreen) self.set_fullscreen(not self.fullscreen) def update_caption(self): self.set_caption("ymage [%d/%d]" % ( self.slideshow.index + 1, len(self.slideshow.slides) )) # Actions def _set_duration(self): self.reader.start_reading( "Duration", self.slideshow.set_duration ) def _increase_duration(self): self.printer._print("Duration: {}".format( self.slideshow.increase_duration() )) def _decrease_duration(self): self.printer._print("Duration: {}".format( self.slideshow.decrease_duration() )) def _previous_slide(self): self.slideshow.display(action="previous") def _next_slide(self): self.slideshow.display(action="next") def _toggle_paused(self): self.printer._print( self.slideshow.toggle_paused() ) def _random(self): self.slideshow.display(action="random", previous=False) def _previous_random(self): self.slideshow.display(action="random", previous=True) def _print_info(self): self.printer._print("{} [{}/{}]".format( self.slideshow.get_current(), self.slideshow.index + 1, len(self.slideshow.slides) )) def _search(self, query=None): if query is None: self.reader.start_reading("Search for", self._search) else: self.slideshow.display(action="search", query=query) def _jump(self, index=None): if index is None: self.reader.start_reading("Slide", self._jump) else: self.slideshow.display(action="jump", index=index) def on_draw(self): self.clear() try: self.slideshow.draw(self.width, self.height) except gl.lib.GLException: # In case one of the slides is corrupted # move on to the next self.slideshow.display() self.update_caption() self.printer.draw() def on_key_press(self, symbol, modifiers): if self.reader.is_reading: self.reader.read(symbol, modifiers) return try: { window.key.P: self._print_info, window.key.R: self._random, window.key.E: self._previous_random, window.key.D: self._set_duration, window.key.UP: self._increase_duration, window.key.DOWN: self._decrease_duration, window.key.LEFT: self._previous_slide, window.key.RIGHT: self._next_slide, window.key.SPACE: self._toggle_paused, window.key.I: self._jump, window.key.F: self.toggle_fullscreen, window.key.SLASH: self._search, window.key.RETURN: app.exit, window.key.ESCAPE: app.exit, }[symbol]() except KeyError: pass