]>
Commit | Line | Data |
---|---|---|
1 | # 11/13/2003 - Jeff Grimmett (grimmtooth@softhome.net) | |
2 | # | |
3 | # o Updated for wx namespace | |
4 | # | |
5 | ||
6 | import wx | |
7 | ||
8 | #---------------------------------------------------------------------- | |
9 | ||
10 | # Some unicode strings | |
11 | chi_uni = (u'Python \u662f\u6700\u597d\u7684\u7de8\u7a0b\u8a9e\u8a00\uff01', | |
12 | 'Python is the best\nprogramming language!') | |
13 | ||
14 | lt1_uni = (u'Pythonas yra \u017eaviausia \u0161neka', | |
15 | 'Python is the best') | |
16 | lt2_uni = (u'A\u0161 m\u0117gstu \u0161okolad\u0105', | |
17 | 'I like chocolate') | |
18 | ||
19 | kor_uni = (u'\ud30c\uc774\uc36c\uc740 \ucd5c\uace0\uc758 \ud504\ub85c\uadf8\ub798\ubc0d \uc5b8\uc5b4\uc774\ub2e4!', | |
20 | 'Python is the best\nprogramming language!') | |
21 | ||
22 | bul_uni = (u'\u041f\u0438\u0442\u043e\u043d \u0435 \u043d\u0430\u0439-\u0434\u043e\u0431\u0440\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0435\u043d \u0435\u0437\u0438\u043a!', | |
23 | 'Python is the best\nprogramming language!') | |
24 | rus_uni = (u'\u041f\u0438\u0442\u043e\u043d - \u043b\u0443\u0447\u0448\u0438\u0439 \u044f\u0437\u044b\u043a \n\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f!', | |
25 | 'Python is the best\nprogramming language!') | |
26 | ||
27 | ||
28 | # Equivalents in UTF-8. Should I demo these somehow??? | |
29 | chi_utf8 = ('Python \xe6\x98\xaf\xe6\x9c\x80\xe5\xa5\xbd\xe7\x9a\x84\xe7\xb7\xa8\xe7\xa8\x8b\xe8\xaa\x9e\xe8\xa8\x80\xef\xbc\x81', | |
30 | 'Python is the best programming language') | |
31 | ||
32 | lt1_utf8 = ('Pythonas yra \xc5\xbeaviausia \xc5\xa1neka', | |
33 | 'Python is the best') | |
34 | lt2_utf8 = ('A\xc5\xa1 m\xc4\x97gstu \xc5\xa1okolad\xc4\x85', | |
35 | 'I like chocolate') | |
36 | ||
37 | kor_utf8 = ('\xed\x8c\x8c\xec\x9d\xb4\xec\x8d\xac\xec\x9d\x80 \xec\xb5\x9c\xea\xb3\xa0\xec\x9d\x98 \xed\x94\x84\xeb\xa1\x9c\xea\xb7\xb8\xeb\x9e\x98\xeb\xb0\x8d \xec\x96\xb8\xec\x96\xb4\xec\x9d\xb4\xeb\x8b\xa4!', | |
38 | 'Python is the best programming language!') | |
39 | ||
40 | bul_utf8 = ('\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd \xd0\xb5 \xd0\xbd\xd0\xb0\xd0\xb9-\xd0\xb4\xd0\xbe\xd0\xb1\xd1\x80\xd0\xb8\xd1\x8f \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xb5\xd0\xbd \xd0\xb5\xd0\xb7\xd0\xb8\xd0\xba!', | |
41 | 'Python is the best programming language!') | |
42 | rus_utf8 = ('\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd - \xd0\xbb\xd1\x83\xd1\x87\xd1\x88\xd0\xb8\xd0\xb9 \xd1\x8f\xd0\xb7\xd1\x8b\xd0\xba \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbc\xd0\xbc\xd0\xb8\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f!', | |
43 | 'Python is the best programming language!') | |
44 | ||
45 | #---------------------------------------------------------------------- | |
46 | ||
47 | class TestPanel(wx.Panel): | |
48 | def __init__(self, parent, log): | |
49 | self.log = log | |
50 | wx.Panel.__init__(self, parent, -1) | |
51 | ||
52 | box = wx.BoxSizer(wx.VERTICAL) | |
53 | ||
54 | if not wx.USE_UNICODE: | |
55 | self.AddLine(box) | |
56 | self.AddText(box, "Sorry, this wxPython was not built with Unicode support.", | |
57 | font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) | |
58 | self.AddLine(box) | |
59 | ||
60 | else: | |
61 | f = self.GetFont() | |
62 | font = wx.Font(14, f.GetFamily(), f.GetStyle(), wx.BOLD, False, | |
63 | f.GetFaceName(), f.GetEncoding()) | |
64 | ||
65 | self.AddLine(box) | |
66 | self.AddText(box, chi_uni[0], chi_uni[1], 'Chinese:', font) | |
67 | self.AddLine(box) | |
68 | ||
69 | self.AddText(box, lt1_uni[0], lt1_uni[1], 'Lithuanian:', font) | |
70 | self.AddLine(box) | |
71 | self.AddText(box, lt2_uni[0], lt2_uni[1], 'Lithuanian:', font) | |
72 | self.AddLine(box) | |
73 | ||
74 | self.AddText(box, kor_uni[0], kor_uni[1], 'Korean:', font) | |
75 | self.AddLine(box) | |
76 | ||
77 | self.AddText(box, bul_uni[0], bul_uni[1], 'Bulgarian:', font) | |
78 | self.AddLine(box) | |
79 | self.AddText(box, rus_uni[0], rus_uni[1], 'Russian:', font) | |
80 | self.AddLine(box) | |
81 | ||
82 | ||
83 | border = wx.BoxSizer(wx.VERTICAL) | |
84 | border.Add(box, 1, wx.EXPAND|wx.ALL, 10) | |
85 | self.SetAutoLayout(True) | |
86 | self.SetSizer(border) | |
87 | ||
88 | ||
89 | def AddLine(self, sizer): | |
90 | sizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND) | |
91 | ||
92 | def AddText(self, sizer, text1, text2='', lang='', font=None): | |
93 | # create some controls | |
94 | lang = wx.StaticText(self, -1, lang) | |
95 | text1 = wx.StaticText(self, -1, text1) | |
96 | text2 = wx.StaticText(self, -1, text2, style=wx.ALIGN_RIGHT) | |
97 | if font is not None: | |
98 | text1.SetFont(font) | |
99 | ||
100 | # put them in a sizer | |
101 | row = wx.BoxSizer(wx.HORIZONTAL) | |
102 | row.Add(lang) | |
103 | row.Add((15,10)) | |
104 | row.Add(text1, 1, wx.EXPAND) | |
105 | row.Add(text2) | |
106 | ||
107 | # put the row in the main sizer | |
108 | sizer.Add(row, 0, wx.EXPAND|wx.ALL, 5) | |
109 | ||
110 | ||
111 | #---------------------------------------------------------------------- | |
112 | ||
113 | def runTest(frame, nb, log): | |
114 | win = TestPanel(nb, log) | |
115 | return win | |
116 | ||
117 | #---------------------------------------------------------------------- | |
118 | ||
119 | ||
120 | ||
121 | overview = """<html><body> | |
122 | <h2><center>wxPython Unicode Support</center></h2> | |
123 | ||
124 | wxWindows and wxPython can be compiled with unicode support enabled or | |
125 | disabled. Previous to wxPython 2.3.3 non-unicode mode was always | |
126 | used. Starting with 2.3.3 either mode is supported, but only if it is | |
127 | also available in wxWindow on the platform. Currently wxWindows only | |
128 | supports unicode on MS Windows platforms, but with the recent release | |
129 | of GTK+ 2.0 it is only a matter of time until it can be done on wxGTK | |
130 | (Linux and other unixes) as well. | |
131 | <p> | |
132 | When unicode is enabled, then all functions and methods in wxPython | |
133 | that return a wxString from the C++ function will return a Python | |
134 | unicode object, and parameters to C++ functions/methods that expect a | |
135 | wxString can accept either a Python string or unicode object. If a | |
136 | string object is passed then it will be decoded into unicode using the | |
137 | converter pointed to by wxConvCurrent, which will use the default | |
138 | system encoding. If you need to use string in some other encoding | |
139 | then you should convert it to unicode using the Python codecs first | |
140 | and then pass the unicode to the wxPython method. | |
141 | ||
142 | ||
143 | </body></html> | |
144 | """ | |
145 | ||
146 | ||
147 | ||
148 | ||
149 | if __name__ == '__main__': | |
150 | import sys,os | |
151 | import run | |
152 | run.main(['', os.path.basename(sys.argv[0])]) | |
153 |