tk::mac(3tk) Tk Built-In Commands tk::mac(3tk)
______________________________________________________________________________
NAME
tk::mac - Access Mac-Specific Functionality on OS X from Tk
SYNOPSIS
::tk::mac::DoScriptFile
::tk::mac::DoScriptText
::tk::mac::ShowPreferences
::tk::mac::OpenApplication
::tk::mac::ReopenApplication
::tk::mac::OpenDocument file...
::tk::mac::PrintDocument file...
::tk::mac::Quit
::tk::mac::OnHide
::tk::mac::OnShow
::tk::mac::ShowHelp
::tk::mac::PerformService
::tk::mac::LaunchURL URL...
::tk::mac::GetAppPath
::tk::mac::standardAboutPanel
::tk::mac::useCompatibilityMetrics boolean
::tk::mac::CGAntialiasLimit limit
::tk::mac::antialiasedtext number
::tk::mac::useThemedToplevel boolean
::tk::mac::iconBitmap name width height -kind value
______________________________________________________________________________
EVENT HANDLER CALLBACKS
The Aqua/Mac OS X application environment defines a number of addi-
tional events that applications should respond to. These events are
mapped by Tk to calls to commands in the ::tk::mac namespace; unless
otherwise noted, if the command is absent, no action will be taken.
::tk::mac::DoScriptFile
The default Apple Event handler for AEDoScriptHandler. This com-
mand executes a Tcl file when an AppleScript sends a “do script”
command to Wish with a file path as a parameter.
::tk::mac::DoScriptText
The default Apple Event handler for AEDoScriptHandler. This com-
mand executes Tcl code when an AppleScript sends a “do script”
command to Wish with Tcl code or a Tcl procedure as a parameter.
::tk::mac::ShowPreferences
The default Apple Event handler for kAEShowPreferences, “pref”.
The application menu “Preferences” menu item is only enabled
when this proc is defined. Typically this command is used to
wrap a specific own preferences command, which pops up a prefer-
ences window. Something like:
proc ::tk::mac::ShowPreferences {} {
setPref
}
::tk::mac::OpenApplication
If a proc of this name is defined, this proc fill fire when your
application is initially opened. It is the default Apple Event
handler for kAEOpenApplication, “oapp”.
::tk::mac::ReopenApplication
If a proc of this name is defined it is the default Apple Event
handler for kAEReopenApplication, “rapp”, the Apple Event sent
when your application is opened when it is already running (e.g.
by clicking its icon in the Dock). Here is a sample that raises
a minimized window when the Dock icon is clicked:
proc ::tk::mac::ReopenApplication {} {
if {[wm state .] eq "withdrawn"} {
wm state . normal
} else {
wm deiconify .
}
raise .
}
::tk::mac::OpenDocument file...
If a proc of this name is defined it is the default Apple Event
handler for kAEOpenDocuments, “odoc”, the Apple Event sent when
your application is asked to open one or more documents (e.g.,
by drag & drop onto the app or by opening a document of a type
associated to the app). The proc should take as arguments paths
to the files to be opened, like so:
proc ::tk::mac::OpenDocument {args} {
foreach f $args {my_open_document $f}
}
::tk::mac::PrintDocument file...
If a proc of this name is defined it is the default Apple Event
handler for kAEPrintDocuments, “pdoc”, the Apple Event sent when
your application is asked to print a document. It takes a sin-
gle absolute file path as an argument.
::tk::mac::Quit
If a proc of this name is defined it is the default Apple Event
handler for kAEQuitApplication, “quit”, the Apple Event sent
when your application is asked to be quit, e.g. via the quit
menu item in the application menu, the quit menu item in the
Dock menu, or during a logout/restart/shutdown etc. If this is
not defined, exit is called instead.
::tk::mac::OnHide
If defined, this is called when your application receives a
kEventAppHidden event, e.g. via the hide menu item in the appli-
cation or Dock menus.
::tk::mac::OnShow
If defined, this is called when your application receives a
kEventAppShown event, e.g. via the show all menu item in the ap-
plication menu, or by clicking the Dock icon of a hidden appli-
cation.
::tk::mac::ShowHelp
Customizes behavior of Apple Help menu; if this procedure is not
defined, the platform-specific standard Help menu item “YourApp
Help” performs the default Cocoa action of showing the Help Book
configured in the application's Info.plist (or displaying an
alert if no Help Book is set).
::tk::mac::PerformService
Executes a Tcl procedure called from the macOS “Services” menu
in the Application menu item. The “Services” menu item allows
for inter-application communication; data from one application,
such as selected text, can be sent to another application for
processing, for example to Safari as a search item for Google,
or to TextEdit to be appended to a file. An example of the proc
is below, and should be rewritten in an application script for
customization:
proc ::tk::mac::PerformService {} {
set data [clipboard get]
$w insert end $data
}
Note that the mechanism for retrieving the data is from the clipboard;
there is no other supported way to obtain the data. If the Services
process is not desired, the NSServices keys can be deleted from the ap-
plication's Info.plist file. The underlying code supporting this com-
mand also allows the text, entry and ttk::entry widgets to access ser-
vices from other applications via the Services menu. The NSPortName key
in Wish's Info.plist file is currently set as “Wish” ; if a developer
changes the name of the Wish executable to something
else, this key should be modified with the same name.
::tk::mac::LaunchURL URL...
If defined, launches a URL within Tk. This would be used if a Tk
application wants to handle a URL itself, such as displaying
data from an RSS feed, rather than launching a default applica-
tion to handle the URL, although it can defined as such. Wish
includes a stub URL scheme of “foo://” in the CFBundleURLSchemes
key of its Info.plist file; this should be customized for the
specific URL scheme the developer wants to support.
::tk::mac::GetAppPath
Returns the current applications's file path.
ADDITIONAL DIALOGS
The Aqua/Mac OS X defines additional dialogs that applications should
support.
::tk::mac::standardAboutPanel
Brings the standard Cocoa about panel to the front with informa-
tion filled in from the application bundle files. The panel dis-
plays the application icon and the values associated to the
info.plist keys named CFBundleName, CFBundleShortVersionString,
NSAboutPanelOptionVersion and NSHumanReadableCopyright. If a
file named Credits.html or Credits.rtf exists in the bundle's
Resources directory then its contents will be displayed in a
scrolling text box at the bottom of the dialog. See the documen-
tation for -[NSApplication orderFrontStandardAboutPanelWithOp-
tions:] for more details. A hook is also provided for a custom
About dialog. If a Tcl proc named tkAboutDialog is defined in
the main interpreter then that procedure will be called instead
of opening the standardAboutPanel.
SYSTEM CONFIGURATION
There are a number of additional global configuration options that con-
trol the details of how Tk renders by default.
::tk::mac::useCompatibilityMetrics boolean
Preserves compatibility with older Tk/Aqua metrics; set to false
for more native spacing.
::tk::mac::CGAntialiasLimit limit
Sets the antialiasing limit; lines thinner that limit pixels
will not be antialiased. Integer, set to 0 by default, making
all lines be antialiased.
::tk::mac::antialiasedtext number
Sets anti-aliased text. Controls text antialiasing, possible
values for number are -1 (default, use system default for text
AA), 0 (no text AA), 1 (use text AA).
::tk::mac::useThemedToplevel boolean
Sets toplevel windows to draw with the modern grayish/ pinstripe
Mac background. Equivalent to configuring the toplevel with
“-background systemWindowHeaderBackground”, or to using a
ttk::frame.
SUPPORT COMMANDS
::tk::mac::iconBitmap name width height -kind value
Renders native icons and bitmaps in Tk applications (including
any image file readable by NSImage). A native bitmap name is in-
terpreted as follows (in order):
• predefined builtin 32x32 icon name (stop, caution, document,
etc.)
• name, as defined by tk::mac::iconBitmap
• NSImage named image name
• NSImage url string
• 4-char OSType of IconServices icon
The width and height arguments to tk::mac::iconBitmap define the
dimensions of the image to create, and -kind must be one of:
-file icon of file at given path
-fileType
icon of given file type
-osType
icon of given 4-char OSType file type
-systemType
icon for given IconServices 4-char OSType
-namedImage
named NSImage for given name
-imageFile
image at given path
SEE ALSO
bind(3tk), wm(3tk)
KEYWORDS
about dialog, antialiasing, Apple event, icon, NSImage
Tk 8.6 tk::mac(3tk)
Generated by dwww version 1.14 on Sat Jun 13 12:05:06 CEST 2026.