Example #1
0
class FilteredPopupListPanel(Widget):
    def __init__(self, parent, items, parent_window, icon=None):
        super().__init__(parent)

        self.popupBtn = PopupButton(parent, items[0])
        popup = self.popupBtn.popup()
        popup.setLayout(GroupLayout())

        self.list_panel = FilteredListPanel(popup, items, parent_window)
        self.list_panel.setSelectedIndex(0)

    def setSelectedIndex(self, i):
        self.popupBtn.setCaption(self.list_panel.items[i])
        self.list_panel.setSelectedIndex(i)

    def setCallback(self, cb):
        def cb_wrapper(value):
            self.popupBtn.setCaption(self.list_panel.items[value])
            cb(value)

        self.list_panel.setCallback(cb_wrapper)