]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/Pickers.py
Don't decref if the interpreter is not initialized, (eg. it's in its
[wxWidgets.git] / wxPython / demo / Pickers.py
1
2 import wx
3
4 #----------------------------------------------------------------------
5
6 class TestPanel(wx.Panel):
7 def __init__(self, parent, log):
8 self.log = log
9 wx.Panel.__init__(self, parent, -1)
10
11 box = wx.BoxSizer(wx.VERTICAL)
12 title = wx.StaticText(self, -1, "Picker Controls")
13 title.SetFont(wx.FFont(24, wx.FONTFAMILY_SWISS, wx.FONTFLAG_BOLD))
14 title.SetForegroundColour("navy")
15 box.Add(title, 0, wx.ALIGN_CENTER|wx.ALL, 5)
16 #print title.GetBestSize(), title.GetMinSize(), title.GetSize()
17
18 box.Add(wx.StaticLine(self), 0, wx.EXPAND)
19
20 fgs = wx.FlexGridSizer(cols=4, hgap=5, vgap=5)
21 fgs.AddGrowableCol(3)
22 fgs.Add((10,10)) # spacer
23 lbl = wx.StaticText(self, -1, "default style")
24 lbl.SetFont(wx.FFont(12, wx.FONTFAMILY_SWISS, wx.FONTFLAG_BOLD))
25 fgs.Add(lbl)
26 fgs.Add((10,10)) # spacer
27 lbl = wx.StaticText(self, -1, "with textctrl")
28 lbl.SetFont(wx.FFont(12, wx.FONTFAMILY_SWISS, wx.FONTFLAG_BOLD))
29 fgs.Add(lbl, 0, wx.ALIGN_CENTER)
30
31 fgs.Add(wx.StaticText(self, -1, "wx.ColourPickerCtrl:"), 0, wx.ALIGN_CENTER_VERTICAL)
32 cp1 = wx.ColourPickerCtrl(self)
33 fgs.Add(cp1, 0, wx.ALIGN_CENTER)
34 fgs.Add((10,10)) # spacer
35 cp2 = wx.ColourPickerCtrl(self, style=wx.CLRP_USE_TEXTCTRL)
36 cp2.SetTextCtrlProportion(5)
37 fgs.Add(cp2, 0, wx.EXPAND)
38 self.Bind(wx.EVT_COLOURPICKER_CHANGED, self.OnPickColor, cp1)
39 self.Bind(wx.EVT_COLOURPICKER_CHANGED, self.OnPickColor, cp2)
40
41 fgs.Add(wx.StaticText(self, -1, "wx.DirPickerCtrl:"), 0, wx.ALIGN_CENTER_VERTICAL)
42 dp1 = wx.DirPickerCtrl(self)
43 fgs.Add(dp1, 0, wx.ALIGN_CENTER)
44 fgs.Add((10,10)) # spacer
45 dp2 = wx.DirPickerCtrl(self, style=wx.DIRP_USE_TEXTCTRL)
46 dp2.SetTextCtrlProportion(2)
47 fgs.Add(dp2, 0, wx.EXPAND)
48 self.Bind(wx.EVT_DIRPICKER_CHANGED, self.OnPickFileDir, dp1)
49 self.Bind(wx.EVT_DIRPICKER_CHANGED, self.OnPickFileDir, dp2)
50
51 fgs.Add(wx.StaticText(self, -1, "wx.FilePickerCtrl:"), 0, wx.ALIGN_CENTER_VERTICAL)
52 fp1 = wx.FilePickerCtrl(self)
53 fgs.Add(fp1, 0, wx.ALIGN_CENTER)
54 fgs.Add((10,10)) # spacer
55 fp2 = wx.FilePickerCtrl(self, style=wx.FLP_USE_TEXTCTRL)
56 fp2.SetTextCtrlProportion(2)
57 fgs.Add(fp2, 0, wx.EXPAND)
58 self.Bind(wx.EVT_FILEPICKER_CHANGED, self.OnPickFileDir, fp1)
59 self.Bind(wx.EVT_FILEPICKER_CHANGED, self.OnPickFileDir, fp2)
60
61 fgs.Add(wx.StaticText(self, -1, "wx.FontPickerCtrl:"), 0, wx.ALIGN_CENTER_VERTICAL)
62 fnt1 = wx.FontPickerCtrl(self, style=wx.FNTP_FONTDESC_AS_LABEL)
63 fgs.Add(fnt1, 0, wx.ALIGN_CENTER)
64 fgs.Add((10,10)) # spacer
65 fnt2 = wx.FontPickerCtrl(self, style=wx.FNTP_FONTDESC_AS_LABEL|wx.FNTP_USE_TEXTCTRL)
66 fnt2.SetTextCtrlProportion(2)
67 fgs.Add(fnt2, 0, wx.EXPAND)
68 self.Bind(wx.EVT_FONTPICKER_CHANGED, self.OnPickFont, fnt1)
69 self.Bind(wx.EVT_FONTPICKER_CHANGED, self.OnPickFont, fnt2)
70
71
72 box.Add(fgs, 1, wx.EXPAND|wx.ALL, 5)
73 self.SetSizer(box)
74
75
76 def OnPickColor(self, evt):
77 self.log.write("You chose: %s\n" % repr(evt.GetColour()))
78
79 def OnPickFileDir(self, evt):
80 self.log.write("You chose: %s\n" % repr(evt.GetPath()))
81
82 def OnPickFont(self, evt):
83 font = evt.GetFont()
84 self.log.write("You chose: %s\n" % font.GetNativeFontInfoUserDesc())
85
86 #----------------------------------------------------------------------
87
88 def runTest(frame, nb, log):
89 win = TestPanel(nb, log)
90 return win
91
92 #----------------------------------------------------------------------
93
94
95
96 overview = """<html><body>
97 <h2><center>Picker Controls</center></h2>
98
99 The Picker controls are either native or generic controls usually
100 comprised of a button and with an optional text control next to it.
101 The pickers enable the user to choose something using one of the
102 common dialogs and then displays the result in some way.
103
104 </body></html>
105 """
106
107
108
109 if __name__ == '__main__':
110 import sys,os
111 import run
112 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
113