Beispiel #1
0
 def get_displayed_canvas(self, cursor_x=0, cursor_y=None):
     """Generates the displayed data for a canvas-based output device. The output of this function can be fed to the o.display_image function.
     |Doesn't support partly-rendering entries yet."""
     menu_text = self.get_displayed_text()
     draw = luma_canvas(self.o.device)
     d = draw.__enter__()
     scrollbar_coordinates = self.get_scrollbar_top_bottom()
     #Drawing scrollbar, if applicable
     if scrollbar_coordinates == (0, 0):
         #left offset is dynamic and depends on whether there's a scrollbar or not
         left_offset = self.x_offset
     else:
         left_offset = self.x_scrollbar_offset
         y1, y2 = scrollbar_coordinates
         d.rectangle((1, y1, 2, y2), outline="white")
     #Drawing cursor, if enabled
     if cursor_y is not None:
         c_x = cursor_x * self.charwidth
         c_y = cursor_y * self.charheight
         cursor_dims = (c_x - 1 + left_offset, c_y - 1,
                        c_x + self.charwidth + left_offset,
                        c_y + self.charheight)
         d.rectangle(cursor_dims, outline="white")
     #Drawing the text itself
     #http://pillow.readthedocs.io/en/3.1.x/reference/ImageFont.html
     font = ImageFont.truetype("ui/fonts/Fixedsys62.ttf", 16)
     for i, line in enumerate(menu_text):
         y = (i * self.charheight - 1) if i != 0 else 0
         d.text((left_offset, y), line, fill="white", font=font)
     image = draw.image
     del d
     del draw
     return image
Beispiel #2
0
 def get_displayed_canvas(self, cursor_x=0, cursor_y=None):
     #This view doesn't have a cursor, instead, the entry that's currently active is in the display center
     draw = luma_canvas(self.o.device)
     d = draw.__enter__()
     central_position = (10, 16)
     font = ImageFont.truetype("ui/fonts/Fixedsys62.ttf", 32)
     current_entry = self.el.contents[self.el.pointer]
     d.text(central_position, current_entry[0], fill="white", font=font)
     font = ImageFont.truetype("ui/fonts/Fixedsys62.ttf", 16)
     if self.el.pointer != 0:
         line = self.el.contents[self.el.pointer - 1][0]
         d.text((2, 0), line, fill="white", font=font)
     if self.el.pointer < len(self.el.contents) - 1:
         line = self.el.contents[self.el.pointer + 1][0]
         d.text((2, 48), line, fill="white", font=font)
     image = draw.image
     del d
     del draw
     return image