ยปCore Development>Code coverage>Lib/lib-tk/Canvas.py

Python code coverage for Lib/lib-tk/Canvas.py

#countcontent
1n/a# This module exports classes for the various canvas item types
2n/a
3n/a# NOTE: This module was an experiment and is now obsolete.
4n/a# It's best to use the Tkinter.Canvas class directly.
5n/a
6n/afrom warnings import warnpy3k
7n/awarnpy3k("the Canvas module has been removed in Python 3.0", stacklevel=2)
8n/adel warnpy3k
9n/a
10n/afrom Tkinter import Canvas, _cnfmerge, _flatten
11n/a
12n/a
13n/aclass CanvasItem:
14n/a def __init__(self, canvas, itemType, *args, **kw):
15n/a self.canvas = canvas
16n/a self.id = canvas._create(itemType, args, kw)
17n/a if not hasattr(canvas, 'items'):
18n/a canvas.items = {}
19n/a canvas.items[self.id] = self
20n/a def __str__(self):
21n/a return str(self.id)
22n/a def __repr__(self):
23n/a return '<%s, id=%d>' % (self.__class__.__name__, self.id)
24n/a def delete(self):
25n/a del self.canvas.items[self.id]
26n/a self.canvas.delete(self.id)
27n/a def __getitem__(self, key):
28n/a v = self.canvas.tk.split(self.canvas.tk.call(
29n/a self.canvas._w, 'itemconfigure',
30n/a self.id, '-' + key))
31n/a return v[4]
32n/a cget = __getitem__
33n/a def __setitem__(self, key, value):
34n/a self.canvas.itemconfig(self.id, {key: value})
35n/a def keys(self):
36n/a if not hasattr(self, '_keys'):
37n/a self._keys = map(lambda x, tk=self.canvas.tk:
38n/a tk.splitlist(x)[0][1:],
39n/a self.canvas.tk.splitlist(
40n/a self.canvas._do(
41n/a 'itemconfigure',
42n/a (self.id,))))
43n/a return self._keys
44n/a def has_key(self, key):
45n/a return key in self.keys()
46n/a def __contains__(self, key):
47n/a return key in self.keys()
48n/a def addtag(self, tag, option='withtag'):
49n/a self.canvas.addtag(tag, option, self.id)
50n/a def bbox(self):
51n/a x1, y1, x2, y2 = self.canvas.bbox(self.id)
52n/a return (x1, y1), (x2, y2)
53n/a def bind(self, sequence=None, command=None, add=None):
54n/a return self.canvas.tag_bind(self.id, sequence, command, add)
55n/a def unbind(self, sequence, funcid=None):
56n/a self.canvas.tag_unbind(self.id, sequence, funcid)
57n/a def config(self, cnf={}, **kw):
58n/a return self.canvas.itemconfig(self.id, _cnfmerge((cnf, kw)))
59n/a def coords(self, pts = ()):
60n/a flat = ()
61n/a for x, y in pts: flat = flat + (x, y)
62n/a return self.canvas.coords(self.id, *flat)
63n/a def dchars(self, first, last=None):
64n/a self.canvas.dchars(self.id, first, last)
65n/a def dtag(self, ttd):
66n/a self.canvas.dtag(self.id, ttd)
67n/a def focus(self):
68n/a self.canvas.focus(self.id)
69n/a def gettags(self):
70n/a return self.canvas.gettags(self.id)
71n/a def icursor(self, index):
72n/a self.canvas.icursor(self.id, index)
73n/a def index(self, index):
74n/a return self.canvas.index(self.id, index)
75n/a def insert(self, beforethis, string):
76n/a self.canvas.insert(self.id, beforethis, string)
77n/a def lower(self, belowthis=None):
78n/a self.canvas.tag_lower(self.id, belowthis)
79n/a def move(self, xamount, yamount):
80n/a self.canvas.move(self.id, xamount, yamount)
81n/a def tkraise(self, abovethis=None):
82n/a self.canvas.tag_raise(self.id, abovethis)
83n/a raise_ = tkraise # BW compat
84n/a def scale(self, xorigin, yorigin, xscale, yscale):
85n/a self.canvas.scale(self.id, xorigin, yorigin, xscale, yscale)
86n/a def type(self):
87n/a return self.canvas.type(self.id)
88n/a
89n/aclass Arc(CanvasItem):
90n/a def __init__(self, canvas, *args, **kw):
91n/a CanvasItem.__init__(self, canvas, 'arc', *args, **kw)
92n/a
93n/aclass Bitmap(CanvasItem):
94n/a def __init__(self, canvas, *args, **kw):
95n/a CanvasItem.__init__(self, canvas, 'bitmap', *args, **kw)
96n/a
97n/aclass ImageItem(CanvasItem):
98n/a def __init__(self, canvas, *args, **kw):
99n/a CanvasItem.__init__(self, canvas, 'image', *args, **kw)
100n/a
101n/aclass Line(CanvasItem):
102n/a def __init__(self, canvas, *args, **kw):
103n/a CanvasItem.__init__(self, canvas, 'line', *args, **kw)
104n/a
105n/aclass Oval(CanvasItem):
106n/a def __init__(self, canvas, *args, **kw):
107n/a CanvasItem.__init__(self, canvas, 'oval', *args, **kw)
108n/a
109n/aclass Polygon(CanvasItem):
110n/a def __init__(self, canvas, *args, **kw):
111n/a CanvasItem.__init__(self, canvas, 'polygon', *args, **kw)
112n/a
113n/aclass Rectangle(CanvasItem):
114n/a def __init__(self, canvas, *args, **kw):
115n/a CanvasItem.__init__(self, canvas, 'rectangle', *args, **kw)
116n/a
117n/a# XXX "Text" is taken by the Text widget...
118n/aclass CanvasText(CanvasItem):
119n/a def __init__(self, canvas, *args, **kw):
120n/a CanvasItem.__init__(self, canvas, 'text', *args, **kw)
121n/a
122n/aclass Window(CanvasItem):
123n/a def __init__(self, canvas, *args, **kw):
124n/a CanvasItem.__init__(self, canvas, 'window', *args, **kw)
125n/a
126n/aclass Group:
127n/a def __init__(self, canvas, tag=None):
128n/a if not tag:
129n/a tag = 'Group%d' % id(self)
130n/a self.tag = self.id = tag
131n/a self.canvas = canvas
132n/a self.canvas.dtag(self.tag)
133n/a def str(self):
134n/a return self.tag
135n/a __str__ = str
136n/a def _do(self, cmd, *args):
137n/a return self.canvas._do(cmd, (self.tag,) + _flatten(args))
138n/a def addtag_above(self, tagOrId):
139n/a self._do('addtag', 'above', tagOrId)
140n/a def addtag_all(self):
141n/a self._do('addtag', 'all')
142n/a def addtag_below(self, tagOrId):
143n/a self._do('addtag', 'below', tagOrId)
144n/a def addtag_closest(self, x, y, halo=None, start=None):
145n/a self._do('addtag', 'closest', x, y, halo, start)
146n/a def addtag_enclosed(self, x1, y1, x2, y2):
147n/a self._do('addtag', 'enclosed', x1, y1, x2, y2)
148n/a def addtag_overlapping(self, x1, y1, x2, y2):
149n/a self._do('addtag', 'overlapping', x1, y1, x2, y2)
150n/a def addtag_withtag(self, tagOrId):
151n/a self._do('addtag', 'withtag', tagOrId)
152n/a def bbox(self):
153n/a return self.canvas._getints(self._do('bbox'))
154n/a def bind(self, sequence=None, command=None, add=None):
155n/a return self.canvas.tag_bind(self.id, sequence, command, add)
156n/a def unbind(self, sequence, funcid=None):
157n/a self.canvas.tag_unbind(self.id, sequence, funcid)
158n/a def coords(self, *pts):
159n/a return self._do('coords', pts)
160n/a def dchars(self, first, last=None):
161n/a self._do('dchars', first, last)
162n/a def delete(self):
163n/a self._do('delete')
164n/a def dtag(self, tagToDelete=None):
165n/a self._do('dtag', tagToDelete)
166n/a def focus(self):
167n/a self._do('focus')
168n/a def gettags(self):
169n/a return self.canvas.tk.splitlist(self._do('gettags', self.tag))
170n/a def icursor(self, index):
171n/a return self._do('icursor', index)
172n/a def index(self, index):
173n/a return self.canvas.tk.getint(self._do('index', index))
174n/a def insert(self, beforeThis, string):
175n/a self._do('insert', beforeThis, string)
176n/a def config(self, cnf={}, **kw):
177n/a return self.canvas.itemconfigure(self.tag, _cnfmerge((cnf,kw)))
178n/a def lower(self, belowThis=None):
179n/a self._do('lower', belowThis)
180n/a def move(self, xAmount, yAmount):
181n/a self._do('move', xAmount, yAmount)
182n/a def tkraise(self, aboveThis=None):
183n/a self._do('raise', aboveThis)
184n/a lift = tkraise
185n/a def scale(self, xOrigin, yOrigin, xScale, yScale):
186n/a self._do('scale', xOrigin, yOrigin, xScale, yScale)
187n/a def select_adjust(self, index):
188n/a self.canvas._do('select', ('adjust', self.tag, index))
189n/a def select_from(self, index):
190n/a self.canvas._do('select', ('from', self.tag, index))
191n/a def select_to(self, index):
192n/a self.canvas._do('select', ('to', self.tag, index))
193n/a def type(self):
194n/a return self._do('type')