def __init__(self, frame, items):
        assert len(items) > 0

        view.View.__init__(self, pygame.Rect(frame.topleft, (1, 1)))

        self.on_selection_changed = callback.Signal()
        self.on_list_opened = callback.Signal()

        self.top_label = label.Label(pygame.Rect(0, 0, 1, 1), '')
        self.top_label.halign = label.LEFT
        self.top_label._enabled = True
        self.top_label.on_mouse_down.connect(self.show_list)
        self.add_child(self.top_label)

        self.list_view = listview.ListView(pygame.Rect(0, 0, 1, 1), items)
        self.list_view.on_selected.connect(self.item_selected)
        self.list_view.on_deselected.connect(self.item_deselected)
        self.scroll_view = scroll.ScrollView(pygame.Rect(0, 0, 1, 1),
                                             self.list_view)
        self.scroll_view.hidden = True
        self.add_child(self.scroll_view)

        self.disclosure = button.Button(pygame.Rect(0, 0, 1, 1), caption='')
        self.disclosure.on_clicked.connect(self._toggle_show_list)
        self.add_child(self.disclosure)
items: list of views; str(item) used for selection display
dataset/ETHPy150Open fictorial/pygameui/pygameui/select.py/SelectView.__init__