# generated by wxGlade 0.2 on Sat Dec 7 14:30:59 2002 # $Id: color_dialog.py,v 1.11 2007/01/27 19:59:29 dinogen Exp $ #from wxPython.wx import * #from wxPyColourChooser import wxPyColourChooser #from wxPython.lib.colourchooser import wxPyColourChooser import wx from wx.lib.colourchooser import PyColourChooser import misc class wxGladeColorDialog(wx.Dialog): def __init__(self, colors_dict): wx.Dialog.__init__(self, None, -1, "") self.colors_dict = colors_dict choices = self.colors_dict.keys() choices.sort() # begin wxGlade: wxGladeColorDialog.__init__ self.panel_1 = wx.Panel(self, -1) self.use_sys_color = wx.RadioButton(self.panel_1, -1, _("System colour"), style=wx.RB_SINGLE) self.sys_color = wx.ComboBox(self.panel_1, -1, choices=choices, style=wx.CB_DROPDOWN|wx.CB_READONLY) self.use_chooser = wx.RadioButton(self.panel_1, -1, _("Custom colour"), style=wx.RB_SINGLE) self.color_chooser = PyColourChooser(self, -1) self.ok = wx.Button(self, wx.ID_OK, _("OK")) self.cancel = wx.Button(self, wx.ID_CANCEL, _("Cancel")) self.__set_properties() self.__do_layout() # end wxGlade wx.EVT_RADIOBUTTON(self, self.use_sys_color.GetId(), self.on_use_sys_color) wx.EVT_RADIOBUTTON(self, self.use_chooser.GetId(), self.on_use_chooser) def on_use_sys_color(self, event): self.sys_color.Enable(True) self.color_chooser.Enable(False) self.use_chooser.SetValue(0) def on_use_chooser(self, event): self.sys_color.Enable(False) self.color_chooser.Enable(True) self.use_sys_color.SetValue(0) def get_value(self): if self.use_sys_color.GetValue(): return self.sys_color.GetStringSelection() else: return misc.color_to_string(self.color_chooser.GetValue()) def set_value(self, value): value = value.strip() if value in self.colors_dict: self.use_sys_color.SetValue(1) self.use_chooser.SetValue(0) self.sys_color.SetValue(value) self.sys_color.Enable(True) self.color_chooser.Enable(False) else: self.use_chooser.SetValue(1) self.use_sys_color.SetValue(0) try: self.color_chooser.SetValue(misc.string_to_color(value)) except: pass self.sys_color.Enable(False) self.color_chooser.Enable(True) def __set_properties(self): # begin wxGlade: wxGladeColorDialog.__set_properties self.SetTitle(_("Select widget colour")) self.use_sys_color.SetValue(1) self.sys_color.SetSelection(0) self.ok.SetDefault() # end wxGlade self.use_chooser.SetValue(0) self.color_chooser.Enable(False) def __do_layout(self): # begin wxGlade: wxGladeColorDialog.__do_layout sizer_1 = wx.BoxSizer(wx.VERTICAL) sizer_3 = wx.BoxSizer(wx.HORIZONTAL) sizer_2 = wx.BoxSizer(wx.VERTICAL) sizer_2.Add(self.use_sys_color, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 5) sizer_2.Add(self.sys_color, 0, wx.ALL|wx.EXPAND, 5) static_line_1 = wx.StaticLine(self.panel_1, -1) sizer_2.Add(static_line_1, 0, wx.ALL|wx.EXPAND, 5) sizer_2.Add(self.use_chooser, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 5) self.panel_1.SetAutoLayout(1) self.panel_1.SetSizer(sizer_2) sizer_2.Fit(self.panel_1) sizer_2.SetSizeHints(self.panel_1) sizer_1.Add(self.panel_1, 0, wx.EXPAND, 0) sizer_1.Add(self.color_chooser, 0, wx.ALL, 5) static_line_1_copy = wx.StaticLine(self, -1) sizer_1.Add(static_line_1_copy, 0, wx.ALL|wx.EXPAND, 5) sizer_3.Add(self.ok, 0, wx.RIGHT, 13) sizer_3.Add(self.cancel, 0, 0, 5) sizer_1.Add(sizer_3, 0, wx.ALL|wx.ALIGN_RIGHT, 10) self.SetAutoLayout(1) self.SetSizer(sizer_1) sizer_1.Fit(self) sizer_1.SetSizeHints(self) self.Layout() # end wxGlade self.CenterOnScreen() # end of class wxGladeColorDialog