ยปCore Development>Code coverage>Mac/Demo/imgbrowse/imgbrowse.py

Python code coverage for Mac/Demo/imgbrowse/imgbrowse.py

#countcontent
1n/a"""imgbrowse - Display pictures using img"""
2n/a
3n/aimport FrameWork
4n/aimport EasyDialogs
5n/afrom Carbon import Res
6n/afrom Carbon import Qd
7n/afrom Carbon import QuickDraw
8n/afrom Carbon import Win
9n/a#ifrom Carbon mport List
10n/aimport struct
11n/aimport img
12n/aimport imgformat
13n/aimport mac_image
14n/a
15n/a
16n/a# Where is the picture window?
17n/aLEFT=200
18n/aTOP=64
19n/aMINWIDTH=64
20n/aMINHEIGHT=64
21n/aMAXWIDTH=320
22n/aMAXHEIGHT=320
23n/a
24n/a
25n/adef main():
26n/a print 'hello world'
27n/a imgbrowse()
28n/a
29n/aclass imgbrowse(FrameWork.Application):
30n/a def __init__(self):
31n/a # First init menus, etc.
32n/a FrameWork.Application.__init__(self)
33n/a self.lastwin = None
34n/a # Finally, go into the event loop
35n/a self.mainloop()
36n/a
37n/a def makeusermenus(self):
38n/a self.filemenu = m = FrameWork.Menu(self.menubar, "File")
39n/a self.openitem = FrameWork.MenuItem(m, "Open...", "O", self.opendoc)
40n/a self.infoitem = FrameWork.MenuItem(m, "Info", "I", self.info)
41n/a self.quititem = FrameWork.MenuItem(m, "Quit", "Q", self.quit)
42n/a
43n/a def quit(self, *args):
44n/a self._quit()
45n/a
46n/a def opendoc(self, *args):
47n/a pathname = EasyDialogs.AskFileForOpen() # Any file type
48n/a if not pathname:
49n/a return
50n/a bar = EasyDialogs.ProgressBar('Reading and converting...')
51n/a try:
52n/a rdr = img.reader(imgformat.macrgb16, pathname)
53n/a except img.error, arg:
54n/a EasyDialogs.Message(repr(arg))
55n/a return
56n/a w, h = rdr.width, rdr.height
57n/a bar.set(10)
58n/a data = rdr.read()
59n/a del bar
60n/a pixmap = mac_image.mkpixmap(w, h, imgformat.macrgb16, data)
61n/a self.showimg(w, h, pixmap, data)
62n/a
63n/a def showimg(self, w, h, pixmap, data):
64n/a win = imgwindow(self)
65n/a win.open(w, h, pixmap, data)
66n/a self.lastwin = win
67n/a
68n/a def info(self, *args):
69n/a if self.lastwin:
70n/a self.lastwin.info()
71n/a
72n/aclass imgwindow(FrameWork.Window):
73n/a def open(self, width, height, pixmap, data):
74n/a self.pixmap = pixmap
75n/a self.data = data
76n/a self.pictrect = (0, 0, width, height)
77n/a bounds = (LEFT, TOP, LEFT+width, TOP+height)
78n/a
79n/a self.wid = Win.NewCWindow(bounds, "Picture", 1, 0, -1, 1, 0)
80n/a self.do_postopen()
81n/a
82n/a def do_update(self, *args):
83n/a pass
84n/a currect = self.fitrect()
85n/a print 'PICT:', self.pictrect
86n/a print 'WIND:', currect
87n/a print 'ARGS:', (self.pixmap, self.wid.GetWindowPort().GetPortBitMapForCopyBits(), self.pictrect,
88n/a currect, QuickDraw.srcCopy, None)
89n/a self.info()
90n/a Qd.CopyBits(self.pixmap, self.wid.GetWindowPort().GetPortBitMapForCopyBits(), self.pictrect,
91n/a currect, QuickDraw.srcCopy, None)
92n/a
93n/a def fitrect(self):
94n/a """Return self.pictrect scaled to fit in window"""
95n/a graf = self.wid.GetWindowPort()
96n/a screenrect = graf.GetPortBounds()
97n/a picwidth = self.pictrect[2] - self.pictrect[0]
98n/a picheight = self.pictrect[3] - self.pictrect[1]
99n/a if picwidth > screenrect[2] - screenrect[0]:
100n/a factor = float(picwidth) / float(screenrect[2]-screenrect[0])
101n/a picwidth = picwidth / factor
102n/a picheight = picheight / factor
103n/a if picheight > screenrect[3] - screenrect[1]:
104n/a factor = float(picheight) / float(screenrect[3]-screenrect[1])
105n/a picwidth = picwidth / factor
106n/a picheight = picheight / factor
107n/a return (screenrect[0], screenrect[1], screenrect[0]+int(picwidth),
108n/a screenrect[1]+int(picheight))
109n/a
110n/a def info(self):
111n/a graf = self.wid.GetWindowPort()
112n/a bits = graf.GetPortBitMapForCopyBits()
113n/a mac_image.dumppixmap(bits.pixmap_data)
114n/a
115n/amain()