class CategoryInputWindowPanel(BaseWindowPanel): EMPTY_ITEM = '<empty>' def __init__(self, parent, title, categories): BaseWindowPanel.__init__(self, parent, bg_color=Colour.BLACK, fg_color=Colour.WHITE) # Title Label self._title_label = StaticText(self, pos=(85, 10), size=(100, 30), label=title) self._title_label.SetFont( Font(20, FONTFAMILY_DEFAULT, FONTSTYLE_NORMAL, FONTWEIGHT_NORMAL)) # Cancel Button self._cancel_button = Button(self, -1, "Cancel", pos=(10, 10), size=(70, 30)) self._cancel_button.SetBackgroundColour(Colour.DARK_RED) self._cancel_button.SetForegroundColour(Colour.WHITE) # Confirm Button self._confirm_button = Button(self, -1, "OK", pos=(240, 10), size=(70, 30)) self._confirm_button.SetBackgroundColour(Colour.DARK_GREEN) self._confirm_button.SetForegroundColour(Colour.WHITE) # List Views self._list_control = ListBox(self, pos=(10, 50), size=(295, 170)) self._list_control.SetBackgroundColour(Colour.BLACK) self._list_control.SetForegroundColour(Colour.WHITE) self._list_control.SetItems([CategoryInputWindowPanel.EMPTY_ITEM] + categories) # Event self.Bind(EVT_BUTTON, self._confirm_button_click, self._confirm_button) self.Bind(EVT_BUTTON, self._cancel_button_click, self._cancel_button) def _cancel_button_click(self, e): self.GetParent().EndModal(ID_CANCEL) def _confirm_button_click(self, e): self.GetParent().EndModal(ID_OK) def get_value(self): v = self._list_control.GetStringSelection() return "" if v == CategoryInputWindowPanel.EMPTY_ITEM else v
def update_preview(self, list_obj: wx.ListBox, axes: matplotlib.axes.Axes): """ Update the preview from the given list :param list_obj: The list to update the preview for :param axes: The preview axes to update """ axes.clear() axes.axis("off") selection_string = list_obj.GetStringSelection() if selection_string == '': return axes.scatter(1, 1, s=400, color=selection_string, marker='s')