Demo updates for new wx namespace, from Jeff Grimmett
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24723 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,85 +1,116 @@
|
||||
# 11/5/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
||||
#
|
||||
# o Updated for wx namespace
|
||||
# o Got rid of all the hardcoded window IDs.
|
||||
# o Fixed a bug in class TestPanel() (empty sizer Add())
|
||||
#
|
||||
# 11/25/2003 - Jeff Grimmett (grimmtooth@softhome.net)
|
||||
#
|
||||
# o Fixed a bug in the BMP file dialog; was using GetFilename()
|
||||
# instead of GetPath() to get the file to load.
|
||||
#
|
||||
|
||||
from wxPython.wx import *
|
||||
import wx
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class ClipTextPanel(wxPanel):
|
||||
ID_CopyBtn = wx.NewId()
|
||||
ID_PasteBtn = wx.NewId()
|
||||
ID_BitmapBtn = wx.NewId()
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class ClipTextPanel(wx.Panel):
|
||||
def __init__(self, parent, log):
|
||||
wxPanel.__init__(self, parent, -1)
|
||||
wx.Panel.__init__(self, parent, -1)
|
||||
self.log = log
|
||||
|
||||
#self.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False))
|
||||
#self.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, False))
|
||||
|
||||
sizer = wxBoxSizer(wxVERTICAL)
|
||||
sizer.Add(wxStaticText(self, -1,
|
||||
"Copy/Paste text to/from\n"
|
||||
"this window and other apps"), 0, wxEXPAND|wxALL, 2)
|
||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||
sizer.Add(
|
||||
wx.StaticText(
|
||||
self, -1, "Copy/Paste text to/from\n"
|
||||
"this window and other apps"
|
||||
),
|
||||
0, wx.EXPAND|wx.ALL, 2
|
||||
)
|
||||
|
||||
self.text = wxTextCtrl(self, -1, "", style=wxTE_MULTILINE|wxHSCROLL)
|
||||
sizer.Add(self.text, 1, wxEXPAND)
|
||||
self.text = wx.TextCtrl(self, -1, "", style=wx.TE_MULTILINE|wx.HSCROLL)
|
||||
sizer.Add(self.text, 1, wx.EXPAND)
|
||||
|
||||
hsz = wxBoxSizer(wxHORIZONTAL)
|
||||
hsz.Add(wxButton(self, 6050, " Copy "), 1, wxEXPAND|wxALL, 2)
|
||||
hsz.Add(wxButton(self, 6051, " Paste "), 1, wxEXPAND|wxALL, 2)
|
||||
sizer.Add(hsz, 0, wxEXPAND)
|
||||
sizer.Add(wxButton(self, 6052, " Copy Bitmap "), 0, wxEXPAND|wxALL, 2)
|
||||
hsz = wx.BoxSizer(wx.HORIZONTAL)
|
||||
hsz.Add(wx.Button(self, ID_CopyBtn, " Copy "), 1, wx.EXPAND|wx.ALL, 2)
|
||||
hsz.Add(wx.Button(self, ID_PasteBtn, " Paste "), 1, wx.EXPAND|wx.ALL, 2)
|
||||
sizer.Add(hsz, 0, wx.EXPAND)
|
||||
sizer.Add(
|
||||
wx.Button(self, ID_BitmapBtn, " Copy Bitmap "),
|
||||
0, wx.EXPAND|wx.ALL, 2
|
||||
)
|
||||
|
||||
EVT_BUTTON(self, 6050, self.OnCopy)
|
||||
EVT_BUTTON(self, 6051, self.OnPaste)
|
||||
EVT_BUTTON(self, 6052, self.OnCopyBitmap)
|
||||
self.Bind(wx.EVT_BUTTON, self.OnCopy, id=ID_CopyBtn)
|
||||
self.Bind(wx.EVT_BUTTON, self.OnPaste, id=ID_PasteBtn)
|
||||
self.Bind(wx.EVT_BUTTON, self.OnCopyBitmap, id=ID_BitmapBtn)
|
||||
|
||||
self.SetAutoLayout(True)
|
||||
self.SetSizer(sizer)
|
||||
|
||||
|
||||
def OnCopy(self, evt):
|
||||
self.do = wxTextDataObject()
|
||||
self.do = wx.TextDataObject()
|
||||
self.do.SetText(self.text.GetValue())
|
||||
wxTheClipboard.Open()
|
||||
wxTheClipboard.SetData(self.do)
|
||||
wxTheClipboard.Close()
|
||||
wx.TheClipboard.Open()
|
||||
wx.TheClipboard.SetData(self.do)
|
||||
wx.TheClipboard.Close()
|
||||
|
||||
|
||||
def OnPaste(self, evt):
|
||||
do = wxTextDataObject()
|
||||
wxTheClipboard.Open()
|
||||
success = wxTheClipboard.GetData(do)
|
||||
wxTheClipboard.Close()
|
||||
do = wx.TextDataObject()
|
||||
wx.TheClipboard.Open()
|
||||
success = wx.TheClipboard.GetData(do)
|
||||
wx.TheClipboard.Close()
|
||||
|
||||
if success:
|
||||
self.text.SetValue(do.GetText())
|
||||
else:
|
||||
wxMessageBox("There is no data in the clipboard in the required format",
|
||||
"Error")
|
||||
wx.MessageBox(
|
||||
"There is no data in the clipboard in the required format",
|
||||
"Error"
|
||||
)
|
||||
|
||||
def OnCopyBitmap(self, evt):
|
||||
dlg = wxFileDialog(self, "Choose a bitmap to copy", wildcard="*.bmp")
|
||||
if dlg.ShowModal() == wxID_OK:
|
||||
bmp = wxBitmap(dlg.GetFilename(), wxBITMAP_TYPE_BMP)
|
||||
bmpdo = wxBitmapDataObject(bmp)
|
||||
wxTheClipboard.Open()
|
||||
wxTheClipboard.SetData(bmpdo)
|
||||
wxTheClipboard.Close()
|
||||
dlg = wx.FileDialog(self, "Choose a bitmap to copy", wildcard="*.bmp")
|
||||
|
||||
if dlg.ShowModal() == wx.ID_OK:
|
||||
bmp = wx.Bitmap(dlg.GetPath(), wx.BITMAP_TYPE_BMP)
|
||||
bmpdo = wx.BitmapDataObject(bmp)
|
||||
wx.TheClipboard.Open()
|
||||
wx.TheClipboard.SetData(bmpdo)
|
||||
wx.TheClipboard.Close()
|
||||
|
||||
wx.MessageBox(
|
||||
"The bitmap is now in the Clipboard. Switch to a graphics\n"
|
||||
"editor and try pasting it in..."
|
||||
)
|
||||
|
||||
wxMessageBox("The bitmap is now in the Clipboard. Switch to a graphics\n"
|
||||
"editor and try pasting it in...")
|
||||
dlg.Destroy()
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class OtherDropTarget(wxPyDropTarget):
|
||||
class OtherDropTarget(wx.PyDropTarget):
|
||||
def __init__(self, window, log):
|
||||
wxPyDropTarget.__init__(self)
|
||||
wx.PyDropTarget.__init__(self)
|
||||
self.log = log
|
||||
self.do = wxFileDataObject()
|
||||
self.do = wx.FileDataObject()
|
||||
self.SetDataObject(self.do)
|
||||
|
||||
def OnEnter(self, x, y, d):
|
||||
self.log.WriteText("OnEnter: %d, %d, %d\n" % (x, y, d))
|
||||
return wxDragCopy
|
||||
return wx.DragCopy
|
||||
|
||||
#def OnDragOver(self, x, y, d):
|
||||
# self.log.WriteText("OnDragOver: %d, %d, %d\n" % (x, y, d))
|
||||
# return wxDragCopy
|
||||
# return wx.DragCopy
|
||||
|
||||
def OnLeave(self):
|
||||
self.log.WriteText("OnLeave\n")
|
||||
@@ -95,11 +126,9 @@ class OtherDropTarget(wxPyDropTarget):
|
||||
return d
|
||||
|
||||
|
||||
|
||||
|
||||
class MyFileDropTarget(wxFileDropTarget):
|
||||
class MyFileDropTarget(wx.FileDropTarget):
|
||||
def __init__(self, window, log):
|
||||
wxFileDropTarget.__init__(self)
|
||||
wx.FileDropTarget.__init__(self)
|
||||
self.window = window
|
||||
self.log = log
|
||||
|
||||
@@ -107,13 +136,14 @@ class MyFileDropTarget(wxFileDropTarget):
|
||||
self.window.SetInsertionPointEnd()
|
||||
self.window.WriteText("\n%d file(s) dropped at %d,%d:\n" %
|
||||
(len(filenames), x, y))
|
||||
|
||||
for file in filenames:
|
||||
self.window.WriteText(file + '\n')
|
||||
|
||||
|
||||
class MyTextDropTarget(wxTextDropTarget):
|
||||
class MyTextDropTarget(wx.TextDropTarget):
|
||||
def __init__(self, window, log):
|
||||
wxTextDropTarget.__init__(self)
|
||||
wx.TextDropTarget.__init__(self)
|
||||
self.window = window
|
||||
self.log = log
|
||||
|
||||
@@ -121,32 +151,43 @@ class MyTextDropTarget(wxTextDropTarget):
|
||||
self.window.WriteText("(%d, %d)\n%s\n" % (x, y, text))
|
||||
|
||||
def OnDragOver(self, x, y, d):
|
||||
return wxDragCopy
|
||||
return wx.DragCopy
|
||||
|
||||
|
||||
class FileDropPanel(wxPanel):
|
||||
class FileDropPanel(wx.Panel):
|
||||
def __init__(self, parent, log):
|
||||
wxPanel.__init__(self, parent, -1)
|
||||
wx.Panel.__init__(self, parent, -1)
|
||||
|
||||
#self.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD, False))
|
||||
#self.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, False))
|
||||
|
||||
sizer = wxBoxSizer(wxVERTICAL)
|
||||
sizer.Add(wxStaticText(self, -1, " \nDrag some files here:"),
|
||||
0, wxEXPAND|wxALL, 2)
|
||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||
sizer.Add(
|
||||
wx.StaticText(self, -1, " \nDrag some files here:"),
|
||||
0, wx.EXPAND|wx.ALL, 2
|
||||
)
|
||||
|
||||
self.text = wx.TextCtrl(
|
||||
self, -1, "",
|
||||
style = wx.TE_MULTILINE|wx.HSCROLL|wx.TE_READONLY
|
||||
)
|
||||
|
||||
self.text = wxTextCtrl(self, -1, "",
|
||||
style = wxTE_MULTILINE|wxHSCROLL|wxTE_READONLY)
|
||||
dt = MyFileDropTarget(self, log)
|
||||
self.text.SetDropTarget(dt)
|
||||
sizer.Add(self.text, 1, wxEXPAND)
|
||||
sizer.Add(self.text, 1, wx.EXPAND)
|
||||
|
||||
sizer.Add(
|
||||
wx.StaticText(self, -1, " \nDrag some text here:"),
|
||||
0, wx.EXPAND|wx.ALL, 2
|
||||
)
|
||||
|
||||
self.text2 = wx.TextCtrl(
|
||||
self, -1, "",
|
||||
style = wx.TE_MULTILINE|wx.HSCROLL|wx.TE_READONLY
|
||||
)
|
||||
|
||||
sizer.Add(wxStaticText(self, -1, " \nDrag some text here:"),
|
||||
0, wxEXPAND|wxALL, 2)
|
||||
self.text2 = wxTextCtrl(self, -1, "",
|
||||
style = wxTE_MULTILINE|wxHSCROLL|wxTE_READONLY)
|
||||
dt = MyTextDropTarget(self.text2, log)
|
||||
self.text2.SetDropTarget(dt)
|
||||
sizer.Add(self.text2, 1, wxEXPAND)
|
||||
sizer.Add(self.text2, 1, wx.EXPAND)
|
||||
|
||||
self.SetAutoLayout(True)
|
||||
self.SetSizer(sizer)
|
||||
@@ -162,28 +203,29 @@ class FileDropPanel(wxPanel):
|
||||
#----------------------------------------------------------------------
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
class TestPanel(wxPanel):
|
||||
class TestPanel(wx.Panel):
|
||||
def __init__(self, parent, log):
|
||||
wxPanel.__init__(self, parent, -1)
|
||||
wx.Panel.__init__(self, parent, -1)
|
||||
|
||||
self.SetAutoLayout(True)
|
||||
outsideSizer = wxBoxSizer(wxVERTICAL)
|
||||
outsideSizer = wx.BoxSizer(wx.VERTICAL)
|
||||
|
||||
msg = "Clipboard / Drag-And-Drop"
|
||||
text = wxStaticText(self, -1, "", style=wxALIGN_CENTRE)
|
||||
text.SetFont(wxFont(24, wxSWISS, wxNORMAL, wxBOLD, False))
|
||||
text = wx.StaticText(self, -1, "", style=wx.ALIGN_CENTRE)
|
||||
text.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD, False))
|
||||
text.SetLabel(msg)
|
||||
|
||||
w,h = text.GetTextExtent(msg)
|
||||
text.SetSize(wxSize(w,h+1))
|
||||
text.SetForegroundColour(wxBLUE)
|
||||
outsideSizer.Add(text, 0, wxEXPAND|wxALL, 5)
|
||||
outsideSizer.Add(wxStaticLine(self, -1), 0, wxEXPAND)
|
||||
text.SetSize(wx.Size(w,h+1))
|
||||
text.SetForegroundColour(wx.BLUE)
|
||||
outsideSizer.Add(text, 0, wx.EXPAND|wx.ALL, 5)
|
||||
outsideSizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND)
|
||||
|
||||
inSizer = wxBoxSizer(wxHORIZONTAL)
|
||||
inSizer.Add(ClipTextPanel(self, log), 1, wxEXPAND)
|
||||
inSizer.Add(FileDropPanel(self, log), 1, wxEXPAND)
|
||||
inSizer = wx.BoxSizer(wx.HORIZONTAL)
|
||||
inSizer.Add(ClipTextPanel(self, log), 1, wx.EXPAND)
|
||||
inSizer.Add(FileDropPanel(self, log), 1, wx.EXPAND)
|
||||
|
||||
outsideSizer.Add(inSizer, 1, wxEXPAND)
|
||||
outsideSizer.Add(inSizer, 1, wx.EXPAND)
|
||||
self.SetSizer(outsideSizer)
|
||||
|
||||
|
||||
@@ -196,17 +238,9 @@ def runTest(frame, nb, log):
|
||||
#----------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
overview = """<html><body>\
|
||||
overview = """\
|
||||
<html>
|
||||
<body>
|
||||
This demo shows some examples of data transfer through clipboard or
|
||||
drag and drop. In wxWindows, these two ways to transfer data (either
|
||||
between different applications or inside one and the same) are very
|
||||
@@ -230,12 +264,11 @@ and target, the data provider and the data receiver. These which may
|
||||
be in the same application and even the same window when, for example,
|
||||
you drag some text from one position to another in a word
|
||||
processor. Let us describe what each of them should do.
|
||||
</body></html>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys,os
|
||||
import run
|
||||
|
Reference in New Issue
Block a user