X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/samples/wxPIA_book/Chapter-18/drop_source.py?ds=inline diff --git a/wxPython/samples/wxPIA_book/Chapter-18/drop_source.py b/wxPython/samples/wxPIA_book/Chapter-18/drop_source.py deleted file mode 100644 index d854947a69..0000000000 --- a/wxPython/samples/wxPIA_book/Chapter-18/drop_source.py +++ /dev/null @@ -1,70 +0,0 @@ -import wx - -class DragController(wx.Control): - """ - Just a little control to handle dragging the text from a text - control. We use a separate control so as to not interfere with - the native drag-select functionality of the native text control. - """ - def __init__(self, parent, source, size=(25,25)): - wx.Control.__init__(self, parent, -1, size=size, - style=wx.SIMPLE_BORDER) - self.source = source - self.SetMinSize(size) - self.Bind(wx.EVT_PAINT, self.OnPaint) - self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) - - def OnPaint(self, evt): - # draw a simple arrow - dc = wx.BufferedPaintDC(self) - dc.SetBackground(wx.Brush(self.GetBackgroundColour())) - dc.Clear() - w, h = dc.GetSize() - y = h/2 - dc.SetPen(wx.Pen("dark blue", 2)) - dc.DrawLine(w/8, y, w-w/8, y) - dc.DrawLine(w-w/8, y, w/2, h/4) - dc.DrawLine(w-w/8, y, w/2, 3*h/4) - - def OnLeftDown(self, evt): - text = self.source.GetValue() - data = wx.TextDataObject(text) - dropSource = wx.DropSource(self) - dropSource.SetData(data) - result = dropSource.DoDragDrop(wx.Drag_AllowMove) - - # if the user wants to move the data then we should delete it - # from the source - if result == wx.DragMove: - self.source.SetValue("") - -class MyFrame(wx.Frame): - def __init__(self): - wx.Frame.__init__(self, None, title="Drop Source") - p = wx.Panel(self) - - # create the controls - label1 = wx.StaticText(p, -1, "Put some text in this control:") - label2 = wx.StaticText(p, -1, - "Then drag from the neighboring bitmap and\n" - "drop in an application that accepts dropped\n" - "text, such as MS Word.") - text = wx.TextCtrl(p, -1, "Some text") - dragctl = DragController(p, text) - - # setup the layout with sizers - sizer = wx.BoxSizer(wx.VERTICAL) - sizer.Add(label1, 0, wx.ALL, 5) - hrow = wx.BoxSizer(wx.HORIZONTAL) - hrow.Add(text, 1, wx.RIGHT, 5) - hrow.Add(dragctl, 0) - sizer.Add(hrow, 0, wx.EXPAND|wx.ALL, 5) - sizer.Add(label2, 0, wx.ALL, 5) - p.SetSizer(sizer) - sizer.Fit(self) - - -app = wx.PySimpleApp() -frm = MyFrame() -frm.Show() -app.MainLoop()