Пример #1
0
    def __init__(self, ids, width, height, tab_width=None, tab_height=None,
                 focusable=False, theme=None, initial_tab=None):
        Div.__init__(self, width, height, focusable, theme)

        # Find ids
        self.ids = ids

        # Setup dimensions
        if tab_width is None:
            self.tab_width = max(30, self.width / 8)
        else:
            self.tab_width = tab_width
        if tab_height is None:
            self.tab_height = min(10, self.height / 2)
        else:
            self.tab_height = tab_height
        self.area_height = self.height - self.tab_height

        # Create areas and tabs
        self.areas = {}
        self.tabs = []
        for i, id in enumerate(self.ids):
            div = Div(self.width, self.area_height, focusable, theme)
            self.areas[id] = div

            tab = Tab(self, self.tab_width, self.tab_height, id)
            self.add_widget(tab, (i * self.tab_width, 0))
            self.tabs.append(tab)

        # Set initial tab area
        self.current = None
        if initial_tab is not None:
            self.focus(initial_tab)
        elif self.areas:
            self.focus(self.ids[0])
Пример #2
0
    def __init__(self, tab_group, width, height, id, theme=None):
        Div.__init__(self, width, height, False, theme)
        self.tab_group = tab_group

        self.label = TabLabel(tab_group, id, theme=self.theme)
        self.add_widget(self.label, AlignCenter())
        self.changed = True
Пример #3
0
 def draw(self):
     if self.image is None or self.changed:
         r = pygame.Rect(0, 0, self.width, self.height)
         if self.tab_group.current is self.tab_group[self.label.id]:
             self.image = self.theme.draw_selected_tab(r)
         else:
             self.image = self.theme.draw_unselected_tab(r)
         self.changed = False
     Div.draw(self)
Пример #4
0
 def __init__(self, width, height, cell_height, theme=None):
     Div.__init__(self, width, height, False, theme=theme)
     self.cell_height = cell_height
     self.contents = []
     self.start = 0
     self.height_in_cells = height / cell_height
     self.refresh()
     self.changed = True
     self.draw()
Пример #5
0
 def draw(self):
     if self.image is None or self.changed:
         end = self.start + self.height_in_cells
         self.scroll_bar_img = self.theme.draw_scroll_bar(self.height,
                                                          self.start,
                                                          end,
                                                          len(self))
         r = pygame.Rect(0, 0, self.get_cells_width(), self.height)
         #self.scroll_area_img = self.theme.draw_scroll_area(r)
         
         surf = pygame.Surface((self.width, self.height), SRCALPHA, 32)
         #surf.blit(self.scroll_area_img.get_surface(), (0, 0))
         surf.blit(self.scroll_bar_img,
                         (r.w, 0))
         self.image = Image(surf)
         self.changed = False
     Div.draw(self)
Пример #6
0
 def render(self, screen, x_offset, y_offset):
     Widget.render(self, screen, x_offset, y_offset)
     Div.render(self, screen, x_offset, y_offset)
Пример #7
0
 def add_line(self):
     div = Div(self.width, self.cell_height, theme=self.theme)
     self.contents.append(div)
     self.refresh()
     return len(self.contents) - 1