dabo Commit
Revision 4342
Date: 2008-08-03 08:44:15 -0700 (Sun, 03 Aug 2008)
Author: Ed
Trac: http://svn.dabodev.com/trac/dabo/changeset/4342

Changed:
D   trunk/dabo/ui/uiwx/dDropTarget.py
U   trunk/dabo/ui/uiwx/dPemMixin.py

Log:
Moved the dDropTarget class definition into dPemMixin.py, and renamed it 
_DropTarget. The reason is that this is a wxPython-specific implementation 
detail, and we don't want to expose this as a Dabo base class to users.


Diff:
Deleted: trunk/dabo/ui/uiwx/dDropTarget.py

Modified: trunk/dabo/ui/uiwx/dPemMixin.py
===================================================================
--- trunk/dabo/ui/uiwx/dPemMixin.py     2008-08-03 01:25:32 UTC (rev 4341)
+++ trunk/dabo/ui/uiwx/dPemMixin.py     2008-08-03 15:44:15 UTC (rev 4342)
@@ -15,9 +15,9 @@
 from dabo.dObject import dObject
 from dabo.ui import makeDynamicProperty
 from dabo.lib.utils import dictStringify
-from dDropTarget import dDropTarget
 
 
+
 class dPemMixin(dPemMixinBase):
        """ Provides Property/Event/Method interfaces for dForms and dControls.
 
@@ -1875,11 +1875,9 @@
        def _setDroppedFileHandler(self, val):
                if self._constructed():
                        self._droppedFileHandler = val
-                       
                        if self._dropTarget == None:
-                               self._dropTarget = dDropTarget()
+                               self._dropTarget = _DropTarget()
                                self.SetDropTarget(self._dropTarget)
-                       
                        self._dropTarget.FileHandler = val
                else:
                        self._properties["DroppedFileHandler"] = val
@@ -1892,11 +1890,9 @@
                if self._constructed():
                        self._droppedTextHandler = val
                        target = self.GetDropTarget()
-                       
                        if self._dropTarget == None:
-                               self._dropTarget = dDropTarget()
+                               self._dropTarget = _DropTarget()
                                self.SetDropTarget(self._dropTarget)
-                       
                        self._dropTarget.TextHandler = val
                else:
                        self._properties["DroppedTextHandler"] = val
@@ -2767,6 +2763,7 @@
        DynamicWidth = makeDynamicProperty(Width)
 
 
+
 class DrawObject(dObject):
        """Class to handle drawing on an object. 
 
@@ -3585,7 +3582,65 @@
        DynamicWidth = makeDynamicProperty(Width)
        DynamicXpos = makeDynamicProperty(Xpos)
        DynamicYpos = makeDynamicProperty(Ypos)
+
+
+
+class _DropTarget(wx.DropTarget):
+       """Class that handles drag/drop items of any type."""
+       def __init__(self):
+               wx.DropTarget.__init__(self)
+               
+               self._fileHandle  = self._textHandle = None
+               self.compositeDataObject = wx.DataObjectComposite()
+               self.fileData = wx.FileDataObject()
+               self.compositeDataObject.Add(self.fileData)
+               self.textData = wx.TextDataObject()
+               self.compositeDataObject.Add(self.textData)
+               self.SetDataObject(self.compositeDataObject)
+
+
+       def OnData(self, x, y, defResult):
+               if self.GetData():
+                       format = 
self.compositeDataObject.ReceivedFormat.GetType()
+                       if format == wx.DF_FILENAME:
+                               if self._fileHandle:
+                                       
self._fileHandle.processDroppedFiles(self.fileData.Filenames)
+                       elif format == wx.DF_TEXT or wx.DF_HTML:
+                               
self._textHandle.processDroppedText(self.textData.Text)
+#              else:
+#                      print false
+               return defResult
+
+
+       def OnDragOver(self, xpos, ypos, result):
+               return wx.DragLink
+
+
+       #Property getters and setters
+       def _getFileHandler(self):
+               return self._fileHandle
        
+       def _setFileHandler(self, val):
+               self._fileHandle = val
+       
+       
+       def _getTextHandler(self):
+               return self._textHandle
+       
+       def _setTextHandler(self, val):
+               self._textHandle = val
+       
+       
+       #PropertyDefinitions
+       FileHandler = property(_getFileHandler, _setFileHandler, None,
+                       _("""Reference to the object that will handle files 
dropped on this control.
+                       When files are dropped, a list of them will be passed 
to this object's 
+                       'processDroppedFiles()' method. Default=None  (object 
or None)"""))
+       
+       TextHandler = property(_getTextHandler, _setTextHandler, None,
+                       _("""Reference to the object that will handle text 
dropped on this control.
+                       When text is dropped, that text will be passed to this 
object's 
+                       'processDroppedText()' method. Default=None  (object or 
None)"""))      
 
 
 if __name__ == "__main__":




_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev
Searchable Archives: http://leafe.com/archives/search/dabo-dev
This message: http://leafe.com/archives/byMID/[EMAIL PROTECTED]

Reply via email to