4
__version__ = "$Revision: 1.2 $"
5
__date__ = "$Date: 2005/09/18 03:59:22 $"
8
from PythonCard import clipboard, dialog, graphic, model
12
class Doodle(model.PageBackground):
14
def on_initialize(self, event):
19
sizer1 = wx.BoxSizer(wx.VERTICAL)
20
comp = self.components
21
flags = wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.ALIGN_BOTTOM
22
# Mac wxButton needs 7 pixels on bottom and right
24
sizer1.Add(comp.btnColor, 0, flags, macPadding)
25
sizer1.Add(comp.bufOff, 1, wx.EXPAND)
28
sizer1.SetSizeHints(self)
29
self.panel.SetSizer(sizer1)
30
self.panel.SetAutoLayout(1)
33
def on_bufOff_mouseEnter(self, event):
34
self.x, self.y = event.position
36
def on_bufOff_mouseDown(self, event):
37
self.x, self.y = event.position
38
event.target.drawLine((self.x, self.y), (self.x + 1, self.y + 1))
40
def on_bufOff_mouseDrag(self, event):
42
event.target.drawLine((self.x, self.y), (x, y))
46
def on_btnColor_mouseClick(self, event):
47
result = dialog.colorDialog(self)
49
self.components.bufOff.foregroundColor = result.color
50
event.target.backgroundColor = result.color
53
result = dialog.openFileDialog(None, "Import which file?")
55
path = result.paths[0]
56
os.chdir(os.path.dirname(path))
58
bmp = graphic.Bitmap(self.filename)
59
self.components.bufOff.drawBitmap(bmp, (0, 0))
61
def on_menuFileOpen_select(self, event):
64
def on_menuFileSaveAs_select(self, event):
65
if self.filename is None:
69
path, filename = os.path.split(self.filename)
70
result = dialog.saveFileDialog(None, "Save As", path, filename)
72
path = result.paths[0]
73
fileType = graphic.bitmapType(path)
76
bmp = self.components.bufOff.getBitmap()
77
bmp.SaveFile(path, fileType)
84
def on_menuEditCopy_select(self, event):
85
clipboard.setClipboard(self.components.bufOff.getBitmap())
87
def on_menuEditPaste_select(self, event):
88
bmp = clipboard.getClipboard()
89
if isinstance(bmp, wx.Bitmap):
90
self.components.bufOff.drawBitmap(bmp)
92
def on_editClear_command(self, event):
93
self.components.bufOff.clear()
96
if __name__ == '__main__':
97
app = model.Application(Doodle)