def __init__(self, shell, filename, **kwds): text = get_text(filename) text_pages = text.split("\nPAGE\n") pages = [] page_size = (0, 0) for text_page in text_pages: lines = text_page.strip().split("\n") page = Page(self, lines[0], lines[1:]) pages.append(page) page_size = maximum(page_size, page.size) self.pages = pages bf = self.button_font b1 = Button("Prev Page", font = bf, action = self.prev_page) b2 = Button("Menu", font = bf, action = self.go_back) b3 = Button("Next Page", font = bf, action = self.next_page) self.b = ((shell.rect.width-page_size[0])/2, (shell.rect.height-page_size[1])/2) page_rect = Rect(self.b, page_size) gap = (0, 18) b1.topleft = add(page_rect.bottomleft, gap) b2.midtop = add(page_rect.midbottom, gap) b3.topright = add(page_rect.bottomright, gap) Screen.__init__(self, shell, **kwds) self.size = add(b3.bottomright, self.b) self.add(b1) self.add(b2) self.add(b3) self.prev_button = b1 self.next_button = b3 self.set_current_page(0)
def __init__(self, shell, filename, **kwds): """""" text = ResourceUtility.get_text(filename) text_pages = text.split("\nPAGE\n") pages = [] page_size = (0, 0) for text_page in text_pages: lines = text_page.strip().split("\n") page = Page(self, lines[0], lines[1:]) pages.append(page) page_size = maximum(page_size, page.size) self.pages = pages bf = self.button_font b1 = Button("Prev Page", font=bf, action=self.prev_page) b2 = Button("Menu", font=bf, action=self.go_back) b3 = Button("Next Page", font=bf, action=self.next_page) b = self.margin # page_rect = Rect((b, b), page_size) width_height = list(map(lambda x: x, page_size)) page_rect = Rect((b, b),(width_height[0],width_height[1])) gap = (0, 18) # # Python 3 update # # In Python 3 maps and list are not auto-converted # # b1.topleft = add(page_rect.bottomleft, gap) # b2.midtop = add(page_rect.midbottom, gap) # b3.topright = add(page_rect.bottomright, gap) b1.topleft = list(add(page_rect.bottomleft, gap)) b2.midtop = list(add(page_rect.midbottom, gap)) b3.topright = list(add(page_rect.bottomright, gap)) # Screen.__init__(self, shell, **kwds) super().__init__(shell, **kwds) # # Python 3 update # # In Python 3 maps and list are not auto-converted # # self.size = add(b3.bottomright, (b, b)) self.size = list(add(b3.bottomright, (b, b))) self.add(b1) self.add(b2) self.add(b3) self.prev_button = b1 self.next_button = b3 self.set_current_page(0)
def local_to_global_offset(self): d = self.topleft parent = self.parent if parent: d = add(d, parent.local_to_global_offset()) return d
def shrink_wrap(self): contents = self.subwidgets if contents: rects = [widget.rect for widget in contents] # rmax = Rect.unionall(rects) # broken in PyGame 1.7.1 rmax = rects.pop() for r in rects: rmax = rmax.union(r) self._rect.size = list(add(rmax.topleft, rmax.bottomright))
def local_to_global(self, p): """ Converts the given coordinate pair from the widget's local coordinate system to PyGame screen coordinates. Args: p: Widget local coordinates Returns: global coordinates """ return add(p, self.local_to_global_offset())