Mercurial > cpython-lru_cache-weakref
annotate Lib/lib-tk/tkFont.py @ 27998:e27f58a50737 legacy-trunk
SF bug #690377: Dud footnote reference in distutils docs
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Fri, 21 Feb 2003 02:47:09 +0000 |
| parents | eee67a84e5fa |
| children | 90c77b8af1a4 |
| rev | line source |
|---|---|
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 # Tkinter |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 # $Id$ |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 # font wrapper |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 # written by Fredrik Lundh <fredrik@pythonware.com>, February 1998 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 # FIXME: should add 'displayof' option where relevant (actual, families, |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 # measure, and metrics) |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
11 # |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 # Copyright (c) Secret Labs AB 1998. |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 # info@pythonware.com |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 # http://www.pythonware.com |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 # |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 __version__ = "0.9" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 import Tkinter |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 # weight/slant |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 NORMAL = "normal" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 BOLD = "bold" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 ITALIC = "italic" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 class Font: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 """Represents a named font. |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 Constructor options are: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 font -- font specifier (name, system font, or (family, size, style)-tuple) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 or any combination of |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 family -- font 'family', e.g. Courier, Times, Helvetica |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 size -- font size in points |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 weight -- font thickness: NORMAL, BOLD |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 slant -- font slant: NORMAL, ITALIC |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 underline -- font underlining: false (0), true (1) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 overstrike -- font strikeout: false (0), true (1) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 name -- name to use for this font configuration (defaults to a unique name) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 """ |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 def _set(self, kw): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 options = [] |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 for k, v in kw.items(): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 options.append("-"+k) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 options.append(str(v)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 return tuple(options) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 def _get(self, args): |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
54 options = [] |
|
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
55 for k in args: |
|
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
56 options.append("-"+k) |
|
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
57 return tuple(options) |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 def _mkdict(self, args): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 options = {} |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 for i in range(0, len(args), 2): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 options[args[i][1:]] = args[i+1] |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 return options |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 def __init__(self, root=None, font=None, name=None, **options): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 if not root: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 root = Tkinter._default_root |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 if font: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 # get actual settings corresponding to the given font |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 font = root.tk.splitlist(root.tk.call("font", "actual", font)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
71 else: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
72 font = self._set(options) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
73 if not name: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
74 name = "font" + str(id(self)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 self.name = name |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
76 apply(root.tk.call, ("font", "create", name) + font) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
77 # backlinks! |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
78 self._root = root |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
79 self._split = root.tk.splitlist |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
80 self._call = root.tk.call |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
81 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
82 def __str__(self): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
83 return self.name |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
84 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 def __del__(self): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 try: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 self._call("font", "delete", self.name) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
88 except (AttributeError, Tkinter.TclError): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 pass |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
91 def copy(self): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
92 "Return a distinct copy of the current font" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
93 return apply(Font, (self._root,), self.actual()) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
94 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 def actual(self, option=None): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
96 "Return actual font attributes" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
97 if option: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
98 return self._call("font", "actual", self.name, "-"+option) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
99 else: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
100 return self._mkdict( |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 self._split(self._call("font", "actual", self.name)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 ) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 def cget(self, option): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 "Get font attribute" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 return self._call("font", "config", self.name, "-"+option) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 def config(self, **options): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 "Modify font attributes" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 if options: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 apply(self._call, ("font", "config", self.name) + |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 self._set(options)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 else: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 return self._mkdict( |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 self._split(self._call("font", "config", self.name)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 ) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
118 configure = config |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
119 |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
120 def measure(self, text): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 "Return text width" |
|
16517
eee67a84e5fa
String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents:
15308
diff
changeset
|
122 return int(self._call("font", "measure", self.name, text)) |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
123 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
124 def metrics(self, *options): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
125 """Return font metrics. |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
126 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
127 For best performance, create a dummy widget |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
128 using this font before calling this method.""" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
129 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
130 if options: |
|
16517
eee67a84e5fa
String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents:
15308
diff
changeset
|
131 return int( |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
132 self._call("font", "metrics", self.name, self._get(options)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
133 ) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
134 else: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
135 res = self._split(self._call("font", "metrics", self.name)) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
136 options = {} |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
137 for i in range(0, len(res), 2): |
|
16517
eee67a84e5fa
String method conversion.
Eric S. Raymond <esr@thyrsus.com>
parents:
15308
diff
changeset
|
138 options[res[i][1:]] = int(res[i+1]) |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
139 return options |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
140 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
141 def families(root=None): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
142 "Get font families (as a tuple)" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
143 if not root: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
144 root = Tkinter._default_root |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
145 return root.tk.splitlist(root.tk.call("font", "families")) |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
146 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
147 def names(root=None): |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
148 "Get names of defined fonts (as a tuple)" |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
149 if not root: |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
150 root = Tkinter._default_root |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
151 return root.tk.splitlist(root.tk.call("font", "names")) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
152 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
153 # -------------------------------------------------------------------- |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
154 # test stuff |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
155 |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
156 if __name__ == "__main__": |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
157 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
158 root = Tkinter.Tk() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
159 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
160 # create a font |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
161 f = Font(family="times", size=30, weight=NORMAL) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
162 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
163 print f.actual() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
164 print f.actual("family") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
165 print f.actual("weight") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
166 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
167 print f.config() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
168 print f.cget("family") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
169 print f.cget("weight") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
170 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
171 print names() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
172 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
173 print f.measure("hello"), f.metrics("linespace") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
174 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
175 print f.metrics() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
176 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
177 f = Font(font=("Courier", 20, "bold")) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
178 print f.measure("hello"), f.metrics("linespace") |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
179 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
180 w = Tkinter.Label(root, text="Hello, world", font=f) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
181 w.pack() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
182 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
183 w = Tkinter.Button(root, text="Quit!", command=root.destroy) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
184 w.pack() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
185 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
186 fb = Font(font=w["font"]).copy() |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
187 fb.config(weight=BOLD) |
|
15308
847ae40074d4
Make reindent.py happy (convert everything to 4-space indents!).
Fred Drake <fdrake@acm.org>
parents:
8960
diff
changeset
|
188 |
|
8960
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
189 w.config(font=fb) |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
190 |
|
9618a86879ca
Fredrik Lundh's font wrapper.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
191 Tkinter.mainloop() |
