-
-import wx
-
-#----------------------------------------------------------------------
-
-class MyURLDropTarget(wx.PyDropTarget):
- def __init__(self, window):
- wx.PyDropTarget.__init__(self)
- self.window = window
-
- self.data = wx.URLDataObject();
- self.SetDataObject(self.data)
-
- def OnDragOver(self, x, y, d):
- return wx.DragLink
-
- def OnData(self, x, y, d):
- if not self.GetData():
- return wx.DragNone
-
- url = self.data.GetURL()
- self.window.AppendText(url + "\n")
-
- return d
-
-
-#----------------------------------------------------------------------
-
-class TestPanel(wx.Panel):
- def __init__(self, parent, log):
- wx.Panel.__init__(self, parent, -1)
-
- self.SetAutoLayout(True)
- outsideSizer = wx.BoxSizer(wx.VERTICAL)
-
- msg = "Drag-And-Drop of URLs"
- 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(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)
- outsideSizer.Add((20,20))
-
- self.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD, False))
-
- inSizer = wx.FlexGridSizer(2, 2, 5, 5)
- inSizer.AddGrowableCol(0)
-
- inSizer.Add((20,20))
- inSizer.Add((20,20))
- inSizer.Add(wx.StaticText(self, -1,
- "Drag URLs from your browser to\nthis window:",
- style = wx.ALIGN_RIGHT),
- 0, wx.ALIGN_RIGHT )
- self.dropText = wx.TextCtrl(self, -1, "", size=(380, 180),
- style=wx.TE_MULTILINE|wx.TE_READONLY)
- inSizer.Add(self.dropText, 0, wx.EXPAND)
-
-
- inSizer.Add(wx.StaticText(self, -1,
- "Drag this URL to your browser:",
- style = wx.ALIGN_RIGHT),
- 0, wx.ALIGN_RIGHT )
- self.dragText = wx.TextCtrl(self, -1, "http://wxPython.org/")
- inSizer.Add(self.dragText, 0, wx.EXPAND)
- self.dragText.Bind(wx.EVT_MOTION, self.OnStartDrag)
-
-
-## inSizer.Add(wx.StaticText(self, -1,
-## "Drag this TEXT to your browser:",
-## style = wx.ALIGN_RIGHT),
-## 0, wx.ALIGN_RIGHT )
-## self.dragText2 = wx.TextCtrl(self, -1, "http://wxPython.org/")
-## inSizer.Add(self.dragText2, 0, wx.EXPAND)
-## self.dragText2.Bind(EVT_MOTION, self.OnStartDrag2)
-
-
- outsideSizer.Add(inSizer, 1, wx.EXPAND)
- self.SetSizer(outsideSizer)
-
- self.dropText.SetDropTarget(MyURLDropTarget(self.dropText))
-
-
- def OnStartDrag(self, evt):
- if evt.Dragging():
- url = self.dragText.GetValue()
- data = wx.URLDataObject()
- data.SetURL(url)
-
- dropSource = wx.DropSource(self.dragText)
- dropSource.SetData(data)
- result = dropSource.DoDragDrop()
-
-
- def OnStartDrag2(self, evt):
- if evt.Dragging():
- url = self.dragText2.GetValue()
- data = wx.TextDataObject()
- data.SetText(url)
-
- dropSource = wx.DropSource(self.dragText2)
- dropSource.SetData(data)
- result = dropSource.DoDragDrop()
-
-
-#----------------------------------------------------------------------
-
-def runTest(frame, nb, log):
- win = TestPanel(nb, log)
- return win
-
-#----------------------------------------------------------------------
-
-
-
-
-overview = """\
-"""
-
-
-
-
-if __name__ == '__main__':
- import sys,os
- import run
- run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
-