]>
Commit | Line | Data |
---|---|---|
1f780e48 RD |
1 | #---------------------------------------------------------------------------- |
2 | # Name: ImageEditor.py | |
3 | # Purpose: Image Editor for pydocview | |
4 | # | |
5 | # Author: Morgan Hua | |
6 | # | |
7 | # Created: 12/24/04 | |
8 | # Copyright: (c) 2004-2005 ActiveGrid, Inc. | |
9 | # CVS-ID: $Id$ | |
10 | # License: wxWindows License | |
11 | #---------------------------------------------------------------------------- | |
12 | import wx | |
13 | import wx.lib.docview | |
14 | _ = wx.GetTranslation | |
15 | ||
16 | ||
17 | class ImageDocument(wx.lib.docview.Document): | |
18 | pass | |
19 | ||
20 | ||
21 | class ImageView(wx.lib.docview.View): | |
22 | ||
23 | ||
24 | #---------------------------------------------------------------------------- | |
25 | # Overridden methods | |
26 | #---------------------------------------------------------------------------- | |
27 | ||
28 | def __init__(self): | |
29 | wx.lib.docview.View.__init__(self) | |
30 | self._ctrl = None | |
31 | ||
32 | ||
33 | def OnCreate(self, doc, flags): | |
34 | if len(doc.GetFilename()) == 0: | |
35 | wx.MessageBox(_("Cannot create a new image file.\n%s has no paint capability.") % wx.GetApp().GetAppName(), | |
36 | _("New Image File"), | |
37 | wx.OK | wx.ICON_EXCLAMATION) | |
38 | return False | |
39 | ||
40 | frame = wx.GetApp().CreateDocumentFrame(self, doc, flags) | |
41 | panel = wx.Panel(frame, -1) | |
42 | bitmap = wx.Image(doc.GetFilename()).ConvertToBitmap() | |
43 | self._ctrl = wx.StaticBitmap(panel, -1, bitmap, (0,0), (bitmap.GetWidth(), bitmap.GetHeight())) | |
b792147d RD |
44 | wx.EVT_LEFT_DOWN(self._ctrl, self.OnFocus) |
45 | wx.EVT_LEFT_DCLICK(self._ctrl, self.OnFocus) | |
46 | wx.EVT_RIGHT_DOWN(self._ctrl, self.OnFocus) | |
47 | wx.EVT_RIGHT_DCLICK(self._ctrl, self.OnFocus) | |
48 | wx.EVT_MIDDLE_DOWN(self._ctrl, self.OnFocus) | |
49 | wx.EVT_MIDDLE_DCLICK(self._ctrl, self.OnFocus) | |
1f780e48 RD |
50 | panel.SetClientSize(bitmap.GetSize()) |
51 | frame.SetClientSize(panel.GetSize()) | |
52 | self.Activate() | |
53 | return True | |
54 | ||
55 | ||
b792147d RD |
56 | def OnFocus(self, event): |
57 | self._ctrl.SetFocus() | |
58 | event.Skip() | |
59 | ||
60 | ||
1f780e48 RD |
61 | def OnClose(self, deleteWindow = True): |
62 | statusC = wx.GetApp().CloseChildDocuments(self.GetDocument()) | |
63 | statusP = wx.lib.docview.View.OnClose(self, deleteWindow = deleteWindow) | |
64 | if not (statusC and statusP): | |
65 | return False | |
66 | self.Activate(False) | |
67 | if deleteWindow: | |
68 | self.GetFrame().Destroy() | |
69 | return True | |
70 | ||
71 | ||
72 | #---------------------------------------------------------------------------- | |
73 | # Icon Bitmaps - generated by encode_bitmaps.py | |
74 | #---------------------------------------------------------------------------- | |
75 | from wx import ImageFromStream, BitmapFromImage | |
1f780e48 RD |
76 | import cStringIO |
77 | ||
78 | ||
79 | def getImageData(): | |
80 | return \ | |
bbf7159c RD |
81 | '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\x08\x02\ |
82 | \x00\x00\x00\x90\x91h6\x00\x00\x00\x03sBIT\x08\x08\x08\xdb\xe1O\xe0\x00\x00\ | |
83 | \x00\x9aIDAT(\x91\x95\x92\xc1\r\xc50\x08C\xdd\xaa\xeb\xc12\xec\x90\x9b\x97!\ | |
84 | \x0b\xb0\x03\x19\xe8\x1fR\xa9U\xf2\xd5\xb4>DH\xf8\t\x13\xb1E\x04\xbe\xe8\x00\ | |
85 | @\xf2\x8d\xb5\xd6z\x02\x00\xccl\t\x98\x19\xc9}\xe9#y\x8f\xb0\x00H\xba\xc3\ | |
86 | \xfd\x8a\xbd\x9e0\xe8xn\x9b\x99*q[r\x01`\xfa\x8f?\x91\x86-\x07\x8d\x00Iww\ | |
87 | \xf7\xce\xcc\xf0>\xbb\x01\xa8j)e\x80G\xa0\xb7[k\x00J)\xfdU\xd5\xd6Z\x87O_D\ | |
88 | \x88\x88\x88dff>\x17"r\x02y\xd33\xb3E\xc4\xcb\xe3\xeb\xda\xbe\x9e\xf7\x0f\ | |
89 | \xa0B\x86\xd5X\x16\xcc\xea\x00\x00\x00\x00IEND\xaeB`\x82' | |
1f780e48 RD |
90 | |
91 | ||
92 | def getImageBitmap(): | |
93 | return BitmapFromImage(getImageImage()) | |
94 | ||
95 | def getImageImage(): | |
96 | stream = cStringIO.StringIO(getImageData()) | |
97 | return ImageFromStream(stream) | |
98 | ||
99 | def getImageIcon(): | |
bbf7159c | 100 | return wx.IconFromBitmap(getImageBitmap()) |
1f780e48 | 101 |