]> git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/FontEnumerator.py
Added some info panels that show size and colour attributes about the widget
[wxWidgets.git] / wxPython / demo / FontEnumerator.py
1
2 import wx
3
4 #----------------------------------------------------------------------
5
6
7 class TestPanel(wx.Panel):
8 def __init__(self, parent, log):
9 wx.Panel.__init__(self, parent, -1)
10
11 e = wx.FontEnumerator()
12 e.EnumerateFacenames()
13 list = e.GetFacenames()
14
15 list.sort()
16
17 s1 = wx.StaticText(self, -1, "Face names:")
18
19 self.lb1 = wx.ListBox(self, -1, wx.DefaultPosition, (200, 250),
20 list, wx.LB_SINGLE)
21
22 self.Bind(wx.EVT_LISTBOX, self.OnSelect, id=self.lb1.GetId())
23
24 self.txt = wx.StaticText(self, -1, "Sample text...", (285, 50))
25
26 row = wx.BoxSizer(wx.HORIZONTAL)
27 row.Add(s1, 0, wx.ALL, 5)
28 row.Add(self.lb1, 0, wx.ALL, 5)
29 row.Add(self.txt, 0, wx.ALL|wx.ADJUST_MINSIZE, 5)
30
31 sizer = wx.BoxSizer(wx.VERTICAL)
32 sizer.Add(row, 0, wx.ALL, 30)
33 self.SetSizer(sizer)
34 self.Layout()
35
36 self.lb1.SetSelection(0)
37 self.OnSelect(None)
38 wx.FutureCall(300, self.SetTextSize)
39
40
41 def SetTextSize(self):
42 self.txt.SetSize(self.txt.GetBestSize())
43
44
45 def OnSelect(self, evt):
46 face = self.lb1.GetStringSelection()
47 font = wx.Font(28, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, face)
48 self.txt.SetLabel(face)
49 self.txt.SetFont(font)
50 if wx.Platform == "__WXMAC__": self.Refresh()
51
52 ## st = font.GetNativeFontInfo().ToString()
53 ## ni2 = wx.NativeFontInfo()
54 ## ni2.FromString(st)
55 ## font2 = wx.FontFromNativeInfo(ni2)
56
57 #----------------------------------------------------------------------
58
59 def runTest(frame, nb, log):
60 win = TestPanel(nb, log)
61 return win
62
63 #----------------------------------------------------------------------
64
65
66
67 overview = """<html><body>
68 wxFontEnumerator enumerates either all available fonts on the system or only
69 the ones with given attributes - either only fixed-width (suited for use in
70 programs such as terminal emulators and the like) or the fonts available in
71 the given encoding.
72 </body></html>
73 """
74
75
76 if __name__ == '__main__':
77 import sys,os
78 import run
79 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
80