tkinterdnd2 0.5.0__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {tkinterdnd2-0.5.0/tkinterdnd2.egg-info → tkinterdnd2-0.6.0}/PKG-INFO +3 -9
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/README.md +2 -8
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/setup.py +9 -2
- tkinterdnd2-0.6.0/tests/test_tkinterdnd2.py +89 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2/TkinterDnD.py +6 -1
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64/libtkdnd2.10.0.so +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/pkgIndex.tcl +4 -4
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_unix.tcl +2 -2
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9/libtcl9tkdnd2.10.0.so +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/pkgIndex.tcl +4 -4
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_unix.tcl +2 -2
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64/libtkdnd2.10.0.so +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/pkgIndex.tcl +4 -4
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_unix.tcl +2 -2
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9/libtcl9tkdnd2.10.0.so +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9/pkgIndex.tcl +62 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_unix.tcl +2 -2
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64/libtcl9tkdnd2.9.5.dylib → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64/libtcl9tkdnd2.10.0.dylib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64/tkdnd_windows.tcl +167 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/libtkdnd2.10.0.dll +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd2.10.0.lib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_compat.tcl +160 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_utils.tcl +256 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_windows.tcl +167 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/libtkdnd2.10.0.dll +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd2.10.0.lib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_compat.tcl +160 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_utils.tcl +256 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64/tkdnd_windows.tcl +167 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/libtkdnd2.10.0.dll +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd2.10.0.lib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_compat.tcl +160 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_utils.tcl +256 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x64-tcl9/tkdnd_windows.tcl +167 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/libtkdnd2.10.0.dll +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd2.10.0.lib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_compat.tcl +160 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_utils.tcl +256 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86/tkdnd_windows.tcl +167 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/libtkdnd2.10.0.dll +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/pkgIndex.tcl +62 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd.tcl +554 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd2.10.0.lib +0 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_compat.tcl +160 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_generic.tcl +587 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_macosx.tcl +144 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_unix.tcl +883 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_utils.tcl +256 -0
- tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/win-x86-tcl9/tkdnd_windows.tcl +167 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0/tkinterdnd2.egg-info}/PKG-INFO +3 -9
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2.egg-info/SOURCES.txt +48 -10
- tkinterdnd2-0.5.0/tests/test_tkinterdnd2.py +0 -14
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64/libtkdnd2.9.3.so +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64/tkdnd.tcl +0 -539
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64/tkdnd_generic.tcl +0 -587
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64/tkdnd_macosx.tcl +0 -144
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64/libtkdnd2.9.5.so +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64/tkdnd_unix.tcl +0 -883
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64/tkdnd_windows.tcl +0 -167
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/libtkdnd2.9.3.dll +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/pkgIndex.tcl +0 -62
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd.tcl +0 -539
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd2.9.3.lib +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_generic.tcl +0 -587
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_macosx.tcl +0 -144
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_unix.tcl +0 -883
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64/tkdnd_windows.tcl +0 -167
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64/libtkdnd2.9.5.dll +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64/pkgIndex.tcl +0 -62
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64/tkdnd2.9.5.lib +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86/libtkdnd2.9.5.dll +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86/pkgIndex.tcl +0 -62
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86/tkdnd2.9.5.lib +0 -0
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86/tkdnd_compat.tcl +0 -160
- tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86/tkdnd_utils.tcl +0 -256
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/LICENSE +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/setup.cfg +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2/__init__.py +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_generic.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_macosx.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64}/tkdnd_windows.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_generic.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_macosx.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-arm64-tcl9}/tkdnd_windows.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_generic.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_macosx.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64}/tkdnd_windows.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_generic.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_macosx.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/osx-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/linux-x64-tcl9}/tkdnd_windows.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64}/tkdnd_generic.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x86 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64}/tkdnd_macosx.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-arm64}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2/tkdnd/osx-x64/libtkdnd2.9.4.dylib +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2/tkdnd/osx-x64/pkgIndex.tcl +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2/tkdnd/osx-x64/tkdnd.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64}/tkdnd_compat.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64}/tkdnd_unix.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/win-x64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64}/tkdnd_utils.tcl +0 -0
- {tkinterdnd2-0.5.0/tkinterdnd2/tkdnd/linux-arm64 → tkinterdnd2-0.6.0/tkinterdnd2/tkdnd/osx-x64}/tkdnd_windows.tcl +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2.egg-info/dependency_links.txt +0 -0
- {tkinterdnd2-0.5.0 → tkinterdnd2-0.6.0}/tkinterdnd2.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tkinterdnd2
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2
|
|
5
5
|
Home-page: https://github.com/Eliav2/tkinterdnd2
|
|
6
6
|
Author: petasis\pmgagne\eliav2\squiblydoo
|
|
@@ -28,17 +28,11 @@ This repo was originally forked and edited for the purpose of publishing to pypi
|
|
|
28
28
|
This repository is being maintained to ensure availability of `tkinterdnd2` into the future, providing Tkinter native drag and drop support for windows, unix and Mac OSX.
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
### What is
|
|
31
|
+
### What is TkDnD
|
|
32
32
|
|
|
33
33
|
[tkDnD2](https://github.com/petasis/tkdnd) is a tcl/Tk extension adding native drag and drop support.
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
This repo package TkinterDnD2 and tkdnd2 into a standard python module.
|
|
38
|
-
|
|
39
|
-
When the extension is imported in python its location will be automatically added to the Tk search path.
|
|
40
|
-
|
|
41
|
-
This repository contains the compiled binaries from https://github.com/petasis/tkdnd/releases/tag/tkdnd-release-test-v2.9.4. In order to provide support on ARM, we include built binaries from the now defunct [tkinterdnd2-universal](https://pypi.org/project/tkinterdnd2-universal/#files) which added ARM support.
|
|
35
|
+
This repository contains the compiled binaries from https://github.com/petasis/tkdnd/releases/tag/tkdnd-release-test-v2.9.5 and my own compiled binaries for full Tcl 9 support: https://github.com/Squiblydoo/tkdnd.
|
|
42
36
|
|
|
43
37
|
|
|
44
38
|
## Install
|
|
@@ -7,17 +7,11 @@ This repo was originally forked and edited for the purpose of publishing to pypi
|
|
|
7
7
|
This repository is being maintained to ensure availability of `tkinterdnd2` into the future, providing Tkinter native drag and drop support for windows, unix and Mac OSX.
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
### What is
|
|
10
|
+
### What is TkDnD
|
|
11
11
|
|
|
12
12
|
[tkDnD2](https://github.com/petasis/tkdnd) is a tcl/Tk extension adding native drag and drop support.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
This repo package TkinterDnD2 and tkdnd2 into a standard python module.
|
|
17
|
-
|
|
18
|
-
When the extension is imported in python its location will be automatically added to the Tk search path.
|
|
19
|
-
|
|
20
|
-
This repository contains the compiled binaries from https://github.com/petasis/tkdnd/releases/tag/tkdnd-release-test-v2.9.4. In order to provide support on ARM, we include built binaries from the now defunct [tkinterdnd2-universal](https://pypi.org/project/tkinterdnd2-universal/#files) which added ARM support.
|
|
14
|
+
This repository contains the compiled binaries from https://github.com/petasis/tkdnd/releases/tag/tkdnd-release-test-v2.9.5 and my own compiled binaries for full Tcl 9 support: https://github.com/Squiblydoo/tkdnd.
|
|
21
15
|
|
|
22
16
|
|
|
23
17
|
## Install
|
|
@@ -5,7 +5,7 @@ with open("README.md", "r") as fh:
|
|
|
5
5
|
|
|
6
6
|
setuptools.setup(
|
|
7
7
|
name="tkinterdnd2",
|
|
8
|
-
version="0.
|
|
8
|
+
version="0.6.0",
|
|
9
9
|
author="petasis\\pmgagne\\eliav2\\squiblydoo",
|
|
10
10
|
description="TkinterDnD2 is a python wrapper for George Petasis'' tkDnD Tk extension version 2",
|
|
11
11
|
long_description=long_description,
|
|
@@ -15,7 +15,14 @@ setuptools.setup(
|
|
|
15
15
|
include_package_data=True,
|
|
16
16
|
package_data={
|
|
17
17
|
# Include tkdnd extension files.
|
|
18
|
-
"tkinterdnd2": [
|
|
18
|
+
"tkinterdnd2": [
|
|
19
|
+
"tkdnd/linux-x64/*.*", "tkdnd/linux-x64-tcl9/*.*",
|
|
20
|
+
"tkdnd/linux-arm64/*.*", "tkdnd/linux-arm64-tcl9/*.*",
|
|
21
|
+
"tkdnd/osx-x64/*.*", "tkdnd/osx-arm64/*.*",
|
|
22
|
+
"tkdnd/win-x64/*.*", "tkdnd/win-x64-tcl9/*.*",
|
|
23
|
+
"tkdnd/win-x86/*.*", "tkdnd/win-x86-tcl9/*.*",
|
|
24
|
+
"tkdnd/win-arm64/*.*",
|
|
25
|
+
],
|
|
19
26
|
},
|
|
20
27
|
classifiers=[
|
|
21
28
|
"Development Status :: 2 - Pre-Alpha",
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import platform
|
|
3
|
+
import unittest
|
|
4
|
+
import tkinterdnd2
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TestTkinterDnD2(unittest.TestCase):
|
|
8
|
+
|
|
9
|
+
@classmethod
|
|
10
|
+
def setUpClass(cls):
|
|
11
|
+
cls.root = tkinterdnd2.Tk()
|
|
12
|
+
cls.root.withdraw()
|
|
13
|
+
|
|
14
|
+
cls.tcl_version_str = cls.root.tk.call('info', 'tclversion')
|
|
15
|
+
cls.tcl_major = int(cls.tcl_version_str.split('.')[0])
|
|
16
|
+
|
|
17
|
+
system = platform.system()
|
|
18
|
+
if system == "Windows":
|
|
19
|
+
machine = os.environ.get('PROCESSOR_ARCHITECTURE', platform.machine())
|
|
20
|
+
else:
|
|
21
|
+
machine = platform.machine()
|
|
22
|
+
|
|
23
|
+
platform_map = {
|
|
24
|
+
("Darwin", "arm64"): "osx-arm64",
|
|
25
|
+
("Darwin", "x86_64"): "osx-x64",
|
|
26
|
+
("Linux", "aarch64"): "linux-arm64",
|
|
27
|
+
("Linux", "x86_64"): "linux-x64",
|
|
28
|
+
("Windows", "ARM64"): "win-arm64",
|
|
29
|
+
("Windows", "AMD64"): "win-x64",
|
|
30
|
+
("Windows", "x86"): "win-x86",
|
|
31
|
+
}
|
|
32
|
+
cls.base_dir = platform_map.get((system, machine), "unknown")
|
|
33
|
+
cls.tkdnd_root = os.path.join(os.path.dirname(tkinterdnd2.__file__), 'tkdnd')
|
|
34
|
+
tcl9_path = os.path.join(cls.tkdnd_root, cls.base_dir + '-tcl9')
|
|
35
|
+
cls.chosen_dir = (
|
|
36
|
+
cls.base_dir + '-tcl9'
|
|
37
|
+
if cls.tcl_major >= 9 and os.path.isdir(tcl9_path)
|
|
38
|
+
else cls.base_dir
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
print(
|
|
42
|
+
f"\nPlatform: {system}/{machine} "
|
|
43
|
+
f"Tcl: {cls.tcl_version_str} "
|
|
44
|
+
f"dir: {cls.chosen_dir} "
|
|
45
|
+
f"tkdnd: {tkinterdnd2.TkinterDnD.TkdndVersion}"
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def tearDownClass(cls):
|
|
50
|
+
cls.root.destroy()
|
|
51
|
+
|
|
52
|
+
def test_version_is_set(self):
|
|
53
|
+
"""Binary loaded and TkdndVersion is populated."""
|
|
54
|
+
self.assertIsNotNone(tkinterdnd2.TkinterDnD.TkdndVersion)
|
|
55
|
+
|
|
56
|
+
def test_expected_version(self):
|
|
57
|
+
"""Loaded tkdnd version matches what is shipped for this platform."""
|
|
58
|
+
# osx-x64 still ships the old 2.9.4 binary; all others are 2.10.0
|
|
59
|
+
if self.base_dir == 'osx-x64':
|
|
60
|
+
self.assertEqual(tkinterdnd2.TkinterDnD.TkdndVersion, '2.9.4')
|
|
61
|
+
else:
|
|
62
|
+
self.assertEqual(tkinterdnd2.TkinterDnD.TkdndVersion, '2.10.0')
|
|
63
|
+
|
|
64
|
+
def test_binary_directory_exists(self):
|
|
65
|
+
"""The directory that was selected exists inside the installed package."""
|
|
66
|
+
path = os.path.join(self.tkdnd_root, self.chosen_dir)
|
|
67
|
+
self.assertTrue(os.path.isdir(path), f"tkdnd directory not found: {path}")
|
|
68
|
+
|
|
69
|
+
def test_tcl9_routing(self):
|
|
70
|
+
"""When Tcl 9 is active and a -tcl9 directory is present, it must be chosen."""
|
|
71
|
+
tcl9_dir = os.path.join(self.tkdnd_root, self.base_dir + '-tcl9')
|
|
72
|
+
if self.tcl_major >= 9 and os.path.isdir(tcl9_dir):
|
|
73
|
+
self.assertTrue(
|
|
74
|
+
self.chosen_dir.endswith('-tcl9'),
|
|
75
|
+
f"Tcl {self.tcl_major} active but -tcl9 directory not chosen; got '{self.chosen_dir}'"
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
def test_tcl8_fallback(self):
|
|
79
|
+
"""When Tcl 8 is active (or no -tcl9 directory exists), base directory must be chosen."""
|
|
80
|
+
tcl9_dir = os.path.join(self.tkdnd_root, self.base_dir + '-tcl9')
|
|
81
|
+
if self.tcl_major < 9 or not os.path.isdir(tcl9_dir):
|
|
82
|
+
self.assertFalse(
|
|
83
|
+
self.chosen_dir.endswith('-tcl9'),
|
|
84
|
+
f"Expected base directory but got '{self.chosen_dir}'"
|
|
85
|
+
)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
if __name__ == '__main__':
|
|
89
|
+
unittest.main()
|
|
@@ -64,7 +64,12 @@ def _require(tkroot):
|
|
|
64
64
|
else:
|
|
65
65
|
raise RuntimeError('Plaform not supported.')
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
tcl_major = int(tkroot.tk.call('info', 'tclversion').split('.')[0])
|
|
68
|
+
if tcl_major >= 9:
|
|
69
|
+
tcl9_path = os.path.join(os.path.dirname(__file__), 'tkdnd', tkdnd_platform_rep + '-tcl9')
|
|
70
|
+
module_path = tcl9_path if os.path.isdir(tcl9_path) else os.path.join(os.path.dirname(__file__), 'tkdnd', tkdnd_platform_rep)
|
|
71
|
+
else:
|
|
72
|
+
module_path = os.path.join(os.path.dirname(__file__), 'tkdnd', tkdnd_platform_rep)
|
|
68
73
|
tkroot.tk.call('lappend', 'auto_path', module_path)
|
|
69
74
|
TkdndVersion = tkroot.tk.call('package', 'require', 'tkdnd')
|
|
70
75
|
except tkinter.TclError:
|
|
Binary file
|
|
@@ -53,10 +53,10 @@ namespace eval ::tkdnd {
|
|
|
53
53
|
|
|
54
54
|
}; # namespace ::tkdnd
|
|
55
55
|
|
|
56
|
-
package ifneeded tkdnd 2.
|
|
56
|
+
package ifneeded tkdnd 2.10.0 \
|
|
57
57
|
"tkdnd::source \{$dir/tkdnd.tcl\} ; \
|
|
58
|
-
tkdnd::initialise \{$dir\} libtkdnd2.
|
|
58
|
+
tkdnd::initialise \{$dir\} libtkdnd2.10.0.so tkdnd"
|
|
59
59
|
|
|
60
|
-
package ifneeded tkdnd::utils 2.
|
|
60
|
+
package ifneeded tkdnd::utils 2.10.0 \
|
|
61
61
|
"tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
|
|
62
|
-
package provide tkdnd::utils 2.
|
|
62
|
+
package provide tkdnd::utils 2.10.0"
|
|
@@ -231,7 +231,7 @@ proc xdnd::normalise_data { type data } {
|
|
|
231
231
|
STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data}
|
|
232
232
|
text/html {
|
|
233
233
|
if {[catch {
|
|
234
|
-
::tkdnd::from_encoding
|
|
234
|
+
::tkdnd::from_encoding utf-16 $data
|
|
235
235
|
} string]} {
|
|
236
236
|
set string $data
|
|
237
237
|
}
|
|
@@ -838,7 +838,7 @@ proc xdnd::_SendData {type offset bytes args} {
|
|
|
838
838
|
}
|
|
839
839
|
default {
|
|
840
840
|
set format 32
|
|
841
|
-
binary scan $typed_data c* _dodragdrop_transfer_data
|
|
841
|
+
binary scan [encoding convertto utf-8 $typed_data] c* _dodragdrop_transfer_data
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
}
|
|
@@ -53,10 +53,10 @@ namespace eval ::tkdnd {
|
|
|
53
53
|
|
|
54
54
|
}; # namespace ::tkdnd
|
|
55
55
|
|
|
56
|
-
package ifneeded tkdnd 2.
|
|
56
|
+
package ifneeded tkdnd 2.10.0 \
|
|
57
57
|
"tkdnd::source \{$dir/tkdnd.tcl\} ; \
|
|
58
|
-
tkdnd::initialise \{$dir\}
|
|
58
|
+
tkdnd::initialise \{$dir\} libtcl9tkdnd2.10.0.so tkdnd"
|
|
59
59
|
|
|
60
|
-
package ifneeded tkdnd::utils 2.
|
|
60
|
+
package ifneeded tkdnd::utils 2.10.0 \
|
|
61
61
|
"tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
|
|
62
|
-
package provide tkdnd::utils 2.
|
|
62
|
+
package provide tkdnd::utils 2.10.0"
|
|
@@ -231,7 +231,7 @@ proc xdnd::normalise_data { type data } {
|
|
|
231
231
|
STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data}
|
|
232
232
|
text/html {
|
|
233
233
|
if {[catch {
|
|
234
|
-
::tkdnd::from_encoding
|
|
234
|
+
::tkdnd::from_encoding utf-16 $data
|
|
235
235
|
} string]} {
|
|
236
236
|
set string $data
|
|
237
237
|
}
|
|
@@ -838,7 +838,7 @@ proc xdnd::_SendData {type offset bytes args} {
|
|
|
838
838
|
}
|
|
839
839
|
default {
|
|
840
840
|
set format 32
|
|
841
|
-
binary scan $typed_data c* _dodragdrop_transfer_data
|
|
841
|
+
binary scan [encoding convertto utf-8 $typed_data] c* _dodragdrop_transfer_data
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
}
|
|
Binary file
|
|
@@ -53,10 +53,10 @@ namespace eval ::tkdnd {
|
|
|
53
53
|
|
|
54
54
|
}; # namespace ::tkdnd
|
|
55
55
|
|
|
56
|
-
package ifneeded tkdnd 2.
|
|
56
|
+
package ifneeded tkdnd 2.10.0 \
|
|
57
57
|
"tkdnd::source \{$dir/tkdnd.tcl\} ; \
|
|
58
|
-
tkdnd::initialise \{$dir\}
|
|
58
|
+
tkdnd::initialise \{$dir\} libtkdnd2.10.0.so tkdnd"
|
|
59
59
|
|
|
60
|
-
package ifneeded tkdnd::utils 2.
|
|
60
|
+
package ifneeded tkdnd::utils 2.10.0 \
|
|
61
61
|
"tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
|
|
62
|
-
package provide tkdnd::utils 2.
|
|
62
|
+
package provide tkdnd::utils 2.10.0"
|
|
@@ -231,7 +231,7 @@ proc xdnd::normalise_data { type data } {
|
|
|
231
231
|
STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data}
|
|
232
232
|
text/html {
|
|
233
233
|
if {[catch {
|
|
234
|
-
::tkdnd::from_encoding
|
|
234
|
+
::tkdnd::from_encoding utf-16 $data
|
|
235
235
|
} string]} {
|
|
236
236
|
set string $data
|
|
237
237
|
}
|
|
@@ -838,7 +838,7 @@ proc xdnd::_SendData {type offset bytes args} {
|
|
|
838
838
|
}
|
|
839
839
|
default {
|
|
840
840
|
set format 32
|
|
841
|
-
binary scan $typed_data c* _dodragdrop_transfer_data
|
|
841
|
+
binary scan [encoding convertto utf-8 $typed_data] c* _dodragdrop_transfer_data
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
}
|
|
Binary file
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tcl package index file
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
namespace eval ::tkdnd {
|
|
6
|
+
## Check if a debug level must be set...
|
|
7
|
+
if {[info exists ::TKDND_DEBUG_LEVEL]} {
|
|
8
|
+
variable _debug_level $::TKDND_DEBUG_LEVEL
|
|
9
|
+
} elseif {[info exists ::env(TKDND_DEBUG_LEVEL)]} {
|
|
10
|
+
variable _debug_level $::env(TKDND_DEBUG_LEVEL)
|
|
11
|
+
} else {
|
|
12
|
+
variable _debug_level 0
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
# ----------------------------------------------------------------------------
|
|
16
|
+
# Command tkdnd::debug_enabled: returns the requested debug level (0 = no debug).
|
|
17
|
+
# ----------------------------------------------------------------------------
|
|
18
|
+
proc debug_enabled { {level {}} } {
|
|
19
|
+
variable _debug_level
|
|
20
|
+
if {$level != {}} {
|
|
21
|
+
if {[string is integer -strict $level]} {
|
|
22
|
+
set _debug_level $level
|
|
23
|
+
} elseif {[string is true $level]} {
|
|
24
|
+
set _debug_level 1
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return $_debug_level
|
|
28
|
+
};# debug_enabled
|
|
29
|
+
|
|
30
|
+
# ----------------------------------------------------------------------------
|
|
31
|
+
# Command tkdnd::source: source a Tcl fileInitialise the TkDND package.
|
|
32
|
+
# ----------------------------------------------------------------------------
|
|
33
|
+
proc source { filename { encoding utf-8 } } {
|
|
34
|
+
variable _package_dir
|
|
35
|
+
# If in debug mode, enable debug statements...
|
|
36
|
+
set dbg_lvl [debug_enabled]
|
|
37
|
+
if {$dbg_lvl} {
|
|
38
|
+
puts "tkdnd::source (debug level $dbg_lvl) $filename"
|
|
39
|
+
set fd [open $filename r]
|
|
40
|
+
fconfigure $fd -encoding $encoding
|
|
41
|
+
set script [read $fd]
|
|
42
|
+
close $fd
|
|
43
|
+
set map {}
|
|
44
|
+
for {set lvl 0} {$lvl <= $dbg_lvl} {incr lvl} {
|
|
45
|
+
lappend map "#DBG$lvl " {}
|
|
46
|
+
}
|
|
47
|
+
lappend map {#DBG } {}
|
|
48
|
+
set script [string map $map $script]
|
|
49
|
+
return [eval $script]
|
|
50
|
+
}
|
|
51
|
+
::source -encoding $encoding $filename
|
|
52
|
+
};# source
|
|
53
|
+
|
|
54
|
+
}; # namespace ::tkdnd
|
|
55
|
+
|
|
56
|
+
package ifneeded tkdnd 2.10.0 \
|
|
57
|
+
"tkdnd::source \{$dir/tkdnd.tcl\} ; \
|
|
58
|
+
tkdnd::initialise \{$dir\} libtcl9tkdnd2.10.0.so tkdnd"
|
|
59
|
+
|
|
60
|
+
package ifneeded tkdnd::utils 2.10.0 \
|
|
61
|
+
"tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
|
|
62
|
+
package provide tkdnd::utils 2.10.0"
|
|
@@ -231,7 +231,7 @@ proc xdnd::normalise_data { type data } {
|
|
|
231
231
|
STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data}
|
|
232
232
|
text/html {
|
|
233
233
|
if {[catch {
|
|
234
|
-
::tkdnd::from_encoding
|
|
234
|
+
::tkdnd::from_encoding utf-16 $data
|
|
235
235
|
} string]} {
|
|
236
236
|
set string $data
|
|
237
237
|
}
|
|
@@ -838,7 +838,7 @@ proc xdnd::_SendData {type offset bytes args} {
|
|
|
838
838
|
}
|
|
839
839
|
default {
|
|
840
840
|
set format 32
|
|
841
|
-
binary scan $typed_data c* _dodragdrop_transfer_data
|
|
841
|
+
binary scan [encoding convertto utf-8 $typed_data] c* _dodragdrop_transfer_data
|
|
842
842
|
}
|
|
843
843
|
}
|
|
844
844
|
}
|
|
Binary file
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Tcl package index file
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
namespace eval ::tkdnd {
|
|
6
|
+
## Check if a debug level must be set...
|
|
7
|
+
if {[info exists ::TKDND_DEBUG_LEVEL]} {
|
|
8
|
+
variable _debug_level $::TKDND_DEBUG_LEVEL
|
|
9
|
+
} elseif {[info exists ::env(TKDND_DEBUG_LEVEL)]} {
|
|
10
|
+
variable _debug_level $::env(TKDND_DEBUG_LEVEL)
|
|
11
|
+
} else {
|
|
12
|
+
variable _debug_level 0
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
# ----------------------------------------------------------------------------
|
|
16
|
+
# Command tkdnd::debug_enabled: returns the requested debug level (0 = no debug).
|
|
17
|
+
# ----------------------------------------------------------------------------
|
|
18
|
+
proc debug_enabled { {level {}} } {
|
|
19
|
+
variable _debug_level
|
|
20
|
+
if {$level != {}} {
|
|
21
|
+
if {[string is integer -strict $level]} {
|
|
22
|
+
set _debug_level $level
|
|
23
|
+
} elseif {[string is true $level]} {
|
|
24
|
+
set _debug_level 1
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return $_debug_level
|
|
28
|
+
};# debug_enabled
|
|
29
|
+
|
|
30
|
+
# ----------------------------------------------------------------------------
|
|
31
|
+
# Command tkdnd::source: source a Tcl fileInitialise the TkDND package.
|
|
32
|
+
# ----------------------------------------------------------------------------
|
|
33
|
+
proc source { filename { encoding utf-8 } } {
|
|
34
|
+
variable _package_dir
|
|
35
|
+
# If in debug mode, enable debug statements...
|
|
36
|
+
set dbg_lvl [debug_enabled]
|
|
37
|
+
if {$dbg_lvl} {
|
|
38
|
+
puts "tkdnd::source (debug level $dbg_lvl) $filename"
|
|
39
|
+
set fd [open $filename r]
|
|
40
|
+
fconfigure $fd -encoding $encoding
|
|
41
|
+
set script [read $fd]
|
|
42
|
+
close $fd
|
|
43
|
+
set map {}
|
|
44
|
+
for {set lvl 0} {$lvl <= $dbg_lvl} {incr lvl} {
|
|
45
|
+
lappend map "#DBG$lvl " {}
|
|
46
|
+
}
|
|
47
|
+
lappend map {#DBG } {}
|
|
48
|
+
set script [string map $map $script]
|
|
49
|
+
return [eval $script]
|
|
50
|
+
}
|
|
51
|
+
::source -encoding $encoding $filename
|
|
52
|
+
};# source
|
|
53
|
+
|
|
54
|
+
}; # namespace ::tkdnd
|
|
55
|
+
|
|
56
|
+
package ifneeded tkdnd 2.10.0 \
|
|
57
|
+
"tkdnd::source \{$dir/tkdnd.tcl\} ; \
|
|
58
|
+
tkdnd::initialise \{$dir\} libtcl9tkdnd2.10.0.dylib tkdnd"
|
|
59
|
+
|
|
60
|
+
package ifneeded tkdnd::utils 2.10.0 \
|
|
61
|
+
"tkdnd::source \{$dir/tkdnd_utils.tcl\} ; \
|
|
62
|
+
package provide tkdnd::utils 2.10.0"
|