Cross Platform differences in Tcl/Tk

Purpose: Document (particularly core distribution) Tcl and Tk differences between supported platforms.

Features unique to X Windows versions of Tk

  1. -display support
  2. The send command (while Mac OS X using an X server supports send (what about Aqua MacOS X Tcl/Tk?), send still does not work out of the box in standard distributions of Windows yet)

Features unique to Microsoft Windows versions of Tk

  1. Windows specific Tcl commands
  2. [What are the Windows specific extensions - like registry, etc.]
  3. dde package

Features unique to Apple MacOS X versions of Tk

  1. Tclapplescript package for handling Applescript
  2. The ::tk::mac::ShowPreferences proc is used to set the Preferences menu item in the Application menu.
  3. The CFBundleHelpBookFolder item in a bundled app's Info.plist, when set, is used to automatically create a Help menu item which will open Helpbook.
  4. [What are the other MacOS X specific extensions]
  5. The resource command
  6. /usr/bin/wish - the one shipping with MacOS X is in fact a shell command. This means that it isn't usable in a tcl script's # exec magic line

Features which work differently

  1. Native widgets on Windows/MacOS X vs Unix Tcl and C widgets [is there a wiki page detailing which of these exist]
  2. menu unpost is documented to not work on windows
  3. [wm attributes] takes different values on Windows/MacOS, and does nothing on Unix (in Tcl/Tk 8.4.9.0, at least).
  4. Icon support in wm.
  5. Mouse wheel bindings.
  6. "Right" mouse button bindings - Mac users expect "context" menus to work with Control-Button-1; Button-3 seems to be the mouse wheel, if a three-button mouse is connected.
  7. The file command, especially with directory separators/network drives/etc.
  8. The exec command has different forms on different platforms, and works slightly differently
  9. glob (with regard to directory separators)
  10. The tcl_pkgPath variable is missing(!!!) in the Windows version of Tcl. I have no idea why people would intentionally do such a thing.

Something probably belongs on this page about key names and behaviors - keys like ` have different names on different platforms I believe. Perhaps there are other keys with the same issue?

LV I presume the writer is taking about the names that bind uses for specific keyboard keys (what is the term for that? Not key code; I can't remember the terminology here).