diff options
author | petasisg@gmail.com <petasisg@gmail.com@f3661a36-4baa-549a-d6c7-40e0ffef350e> | 2014-08-13 18:33:48 (GMT) |
---|---|---|
committer | petasisg@gmail.com <petasisg@gmail.com@f3661a36-4baa-549a-d6c7-40e0ffef350e> | 2014-08-13 18:33:48 (GMT) |
commit | a180f18ae3f3ada9c56d86479135d64d4c8eae6e (patch) | |
tree | a1b0b5533154d468366fda5a7d963967c3b2ae1d /library/tkdnd_macosx.tcl | |
parent | 82b4c65e44fe98ef9083600b6a459464a23d94ed (diff) | |
download | tkdnd-a180f18ae3f3ada9c56d86479135d64d4c8eae6e.zip tkdnd-a180f18ae3f3ada9c56d86479135d64d4c8eae6e.tar.gz tkdnd-a180f18ae3f3ada9c56d86479135d64d4c8eae6e.tar.bz2 |
OSX updates
Diffstat (limited to 'library/tkdnd_macosx.tcl')
-rw-r--r-- | library/tkdnd_macosx.tcl | 87 |
1 files changed, 60 insertions, 27 deletions
diff --git a/library/tkdnd_macosx.tcl b/library/tkdnd_macosx.tcl index a610d05..ce1b224 100644 --- a/library/tkdnd_macosx.tcl +++ b/library/tkdnd_macosx.tcl @@ -1,6 +1,6 @@ # # tkdnd_macosx.tcl -- -# +# # This file implements some utility procedures that are used by the TkDND # package. @@ -24,13 +24,13 @@ # and need not follow the licensing terms described here, provided that # the new terms are clearly indicated on the first page of each file where # they apply. -# +# # IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY # FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES # ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY # DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -# +# # THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE @@ -53,27 +53,42 @@ if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} { namespace eval macdnd { variable _dropped_data + + + proc initialise {} { + variable _tkdnd2platform + variable _platform2tkdnd + + ## Initialize the tkdnd 2 platform & platform 2 tkdnd arrays for type conversion... + array set _platform2tkdnd [list \ + NSPasteboardTypeString DND_Text \ + NSFilenamesPboardType DND_Files \ + ] + foreach type [array names _platform2tkdnd] { + lappend _tkdnd2platform($_platform2tkdnd($type)) $type + } + };# initialise };# namespace macdnd # ---------------------------------------------------------------------------- # Command macdnd::_HandleEnter # ---------------------------------------------------------------------------- proc macdnd::_HandleEnter { path drag_source typelist } { - return [::tkdnd::xdnd::_HandleXdndEnter $path $drag_source $typelist] + ::tkdnd::xdnd::_HandleXdndEnter $path $drag_source $typelist };# macdnd::_HandleEnter # ---------------------------------------------------------------------------- -# Command macdnd::_HandlePosition +# Command macdnd::_HandlePosition # ---------------------------------------------------------------------------- proc macdnd::_HandlePosition { drop_target rootX rootY } { - return [::tkdnd::xdnd::_HandleXdndPosition $drop_target $rootX $rootY] + ::tkdnd::xdnd::_HandleXdndPosition $drop_target $rootX $rootY };# macdnd::_HandlePosition # ---------------------------------------------------------------------------- # Command macdnd::_HandleLeave # ---------------------------------------------------------------------------- proc macdnd::_HandleLeave { args } { - return [::tkdnd::xdnd::_HandleXdndLeave] + ::tkdnd::xdnd::_HandleXdndLeave };# macdnd::_HandleLeave # ---------------------------------------------------------------------------- @@ -82,7 +97,7 @@ proc macdnd::_HandleLeave { args } { proc macdnd::_HandleDrop { drop_target data args } { variable _dropped_data set _dropped_data $data - return [::tkdnd::xdnd::_HandleXdndDrop 0] + ::tkdnd::xdnd::_HandleXdndDrop 0 };# macdnd::_HandleDrop # ---------------------------------------------------------------------------- @@ -90,81 +105,99 @@ proc macdnd::_HandleDrop { drop_target data args } { # ---------------------------------------------------------------------------- proc macdnd::_GetDroppedData { time } { variable _dropped_data - return $_dropped_data + return $_dropped_data };# macdnd::_GetDroppedData proc xdnd::_GetDroppedData { time } { - return [::tkdnd::macdnd::_GetDroppedData $time] + ::tkdnd::macdnd::_GetDroppedData $time };# xdnd::_GetDroppedData # ---------------------------------------------------------------------------- # Command macdnd::_GetDragSource # ---------------------------------------------------------------------------- proc macdnd::_GetDragSource { } { - return [::tkdnd::xdnd::_GetDragSource] + ::tkdnd::xdnd::_GetDragSource };# macdnd::_GetDragSource # ---------------------------------------------------------------------------- # Command macdnd::_GetDropTarget # ---------------------------------------------------------------------------- proc macdnd::_GetDropTarget { } { - return [::tkdnd::xdnd::_GetDropTarget] + ::tkdnd::xdnd::_GetDropTarget };# macdnd::_GetDropTarget # ---------------------------------------------------------------------------- +# Command macdnd::_GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::_GetDragSourceCommonTypes { } { + ::tkdnd::xdnd::_GetDragSourceCommonTypes +};# macdnd::_GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command macdnd::_GetDropTargetCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::_GetDropTargetCommonTypes { } { + ::tkdnd::xdnd::_GetDropTargetCommonTypes +};# macdnd::_GetDropTargetCommonTypes + +# ---------------------------------------------------------------------------- # Command macdnd::_supported_types # ---------------------------------------------------------------------------- proc macdnd::_supported_types { types } { - return [::tkdnd::xdnd::_supported_types $types] + ::tkdnd::xdnd::_supported_types $types }; # macdnd::_supported_types # ---------------------------------------------------------------------------- # Command macdnd::_platform_specific_types # ---------------------------------------------------------------------------- proc macdnd::_platform_specific_types { types } { - return [::tkdnd::xdnd::_platform_specific_types $types] + ::tkdnd::xdnd::_platform_specific_types $types }; # macdnd::_platform_specific_types # ---------------------------------------------------------------------------- # Command macdnd::_normalise_data # ---------------------------------------------------------------------------- proc macdnd::_normalise_data { type data } { - return [::tkdnd::xdnd::_normalise_data $type $data] + ::tkdnd::xdnd::_normalise_data $type $data }; # macdnd::_normalise_data # ---------------------------------------------------------------------------- # Command macdnd::_platform_specific_type # ---------------------------------------------------------------------------- proc macdnd::_platform_specific_type { type } { - switch $type { - DND_Text {return [list NSStringPboardType]} - DND_Files {return [list NSFilenamesPboardType]} - default {return [list $type]} + variable _tkdnd2platform + if {[info exists _tkdnd2platform($type)]} { + return $_tkdnd2platform($type) } + list $type }; # macdnd::_platform_specific_type proc xdnd::_platform_specific_type { type } { - return [::tkdnd::macdnd::_platform_specific_type $type] + ::tkdnd::macdnd::_platform_specific_type $type }; # xdnd::_platform_specific_type # ---------------------------------------------------------------------------- # Command macdnd::_platform_independent_type # ---------------------------------------------------------------------------- proc macdnd::_platform_independent_type { type } { - switch $type { - NSStringPboardType {return DND_Text} - NSFilenamesPboardType {return DND_Files} - default {return [list $type]} + variable _platform2tkdnd + if {[info exists _platform2tkdnd($type)]} { + return $_platform2tkdnd($type) } + return $type }; # macdnd::_platform_independent_type proc xdnd::_platform_independent_type { type } { - return [::tkdnd::macdnd::_platform_independent_type $type] + ::tkdnd::macdnd::_platform_independent_type $type }; # xdnd::_platform_independent_type # ---------------------------------------------------------------------------- # Command macdnd::_supported_type # ---------------------------------------------------------------------------- proc macdnd::_supported_type { type } { - return 1 + variable _platform2tkdnd + if {[info exists _platform2tkdnd($type)]} { + return 1 + } + return 0 }; # macdnd::_supported_type proc xdnd::_supported_type { type } { - return [::tkdnd::macdnd::_supported_type $type] + ::tkdnd::macdnd::_supported_type $type }; # xdnd::_supported_type |