def _on_ok(self, e): colors = snarkutils.get_color_library() for s in self._swatches: for c in colors: if (s.get_swatch_color() == c["hex"]): c["use"] = s.is_selected() break snarkutils.set_color_library(colors) self.Close() if (e is not None): e.Skip(False) # Consume the event.
def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title=title) self._swatches = [] self._pane = wx.Panel(self, wx.ID_ANY) swatch_sizer = wx.GridSizer(rows=0, cols=6, vgap=5, hgap=5) for c in snarkutils.get_color_library(): swatch = ColorSwatch(self._pane, wx.ID_ANY) swatch.set_swatch_color(c["hex"]) swatch.set_selected(c["use"]) swatch.SetToolTipString(c["hex"]) swatch_sizer.Add(swatch, flag=wx.ALIGN_CENTER) self._swatches.append(swatch) self.ok_btn = wx.Button(self._pane, wx.ID_ANY, label="OK") self.ok_btn.Bind(wx.EVT_BUTTON, self._on_ok) ctrl_sizer = wx.BoxSizer(wx.HORIZONTAL) ctrl_sizer.Add((-1, 1), 1) ctrl_sizer.Add(self.ok_btn) ctrl_sizer.Add((-1, 1), 1) self._pane_sizer = wx.BoxSizer(wx.VERTICAL) self._pane_sizer.Add(swatch_sizer, flag=wx.ALIGN_CENTER_HORIZONTAL) self._pane_sizer.Add((-1, 8), 0, flag=wx.EXPAND) self._pane_sizer.Add(ctrl_sizer, 0, flag=wx.EXPAND) self._pane.SetSizer(self._pane_sizer) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self._pane, 1, flag=wx.EXPAND) self.SetSizer(sizer) #self.SetSize((325,200)) self.Fit() self.Bind(wx.EVT_CLOSE, self._on_close)