]> git.saurik.com Git - wxWidgets.git/blame - wxPython/demo/Pickers.py
workaround sizing bug on Mac
[wxWidgets.git] / wxPython / demo / Pickers.py
CommitLineData
d211a853
RD
1
2import wx
3
4#----------------------------------------------------------------------
5
6class 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
9a45f8a3 23 lbl = wx.StaticText(self, -1, "default style")
d211a853
RD
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
88def runTest(frame, nb, log):
89 win = TestPanel(nb, log)
90 return win
91
92#----------------------------------------------------------------------
93
94
95
96overview = """<html><body>
97<h2><center>Picker Controls</center></h2>
98
99The Picker controls are either native or generic controls usually
100comprised of a button and with an optional text control next to it.
101The pickers enable the user to choose something using one of the
102common dialogs and then displays the result in some way.
103
104</body></html>
105"""
106
107
108
109if __name__ == '__main__':
110 import sys,os
111 import run
112 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
113