diff options
Diffstat (limited to 'macosx')
55 files changed, 6166 insertions, 9342 deletions
diff --git a/macosx/GNUmakefile b/macosx/GNUmakefile index dd4c025..42c0067 100644 --- a/macosx/GNUmakefile +++ b/macosx/GNUmakefile @@ -4,7 +4,7 @@ # uses the standard unix build system in tk/unix (which can be used directly instead of this # if you are not using the tk/macosx projects). # -# Copyright (c) 2002-2008 Daniel A. Steffen <das@users.sourceforge.net> +# Copyright © 2002-2008 Daniel A. Steffen <das@users.sourceforge.net> # # See the file "license.terms" for information on usage and redistribution of # this file, and for a DISCLAIMER OF ALL WARRANTIES. @@ -109,7 +109,7 @@ PROJECT := tk PRODUCT_NAME := Tk UNIX_DIR := ${CURDIR}/../unix -VERSION := $(shell awk -F= '/^TK_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.in) +VERSION := $(shell awk -F= '/^TK_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.ac) TCL_VERSION := ${VERSION} wish := wish WISH = wish${VERSION} @@ -187,7 +187,7 @@ ${objdir}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure \ mkdir -p "${OBJ_DIR}" && cd "${OBJ_DIR}" && \ if [ ${UNIX_DIR}/configure -nt config.status ]; then ${UNIX_DIR}/configure -C \ --prefix="${PREFIX}" --bindir="${BINDIR}" --libdir="${LIBDIR}" \ - --mandir="${MANDIR}" --enable-threads --enable-framework \ + --mandir="${MANDIR}" --enable-framework --disable-zipfs \ --with-tcl="${TCL_DIR}" \ ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}; else ./config.status; fi ifneq (${VERSION},${TCL_VERSION}) diff --git a/macosx/README b/macosx/README index af6a65e..64be140 100644 --- a/macosx/README +++ b/macosx/README @@ -169,12 +169,12 @@ newAppearance option: "aqua", "darkaqua", or "auto". If the appearance is set to aqua or darkaqua then the window will be displayed with the corresponding appearance independent of any preferences settings. If it is set to "auto" the appearance will be determined by the preferences. This command can be -used to opt out of Dark Mode on a per-window basis. It may be best to run the "update" command before setting the appearance property, to allow the event loop to run. +used to opt out of Dark Mode on a per-window basis. It may be best to run the "update" command before setting the appearance property, to allow the event loop to run. - To determine the current appearance of a window in macOS 10.14 (Mojave) and higher, one can use the command: - tk::unsupported::MacWindowStyle isdark window? + tk::unsupported::MacWindowStyle isdark The boolean return value is true if the window is currently displayed with the dark appearance. @@ -272,20 +272,24 @@ appearance. Part of the implementation of the Dark Mode was to make some of the named NSColors have dynamic values. Apple calls these "semantic colors" because the name does not specify a specific color, but rather refers to the context in which the color should be used. -Tk now provides the following semantic colors as system colors: -systemTextColor, systemTextBackgroundColor, systemSelectedTextColor, -systemSelectedTextBackgroundColor, systemControlTextColor, -systemDisabledControlTextColor, systemLabelColor, systemLinkColor, and -systemControlAccentColor. All of these except the last three were -present in OSX 10.0 (and those three are simulated in systems where they -do not exist). The change in 10.14 was that the RGB color value of -these colors became dynamic, meaning that the color value can change -when the application appearance changes. In particular, when a user -selects Dark Mode in the system preferences these colors change -appearance. For example systemTextColor is dark in Aqua and light in -DarkAqua. One additional color, systemSelectedTabTextColor, does not -exist in macOS but is used by Tk to match the different colors used -for Notebook tab text in different OS versions. +In particular, when a user selects Dark Mode in the system preferences +these colors change appearance. For example systemTextColor is dark in +Aqua and light in DarkAqua. + +Tk now provides colors corresponding to all of the NSColors in Apple's System +ColorList. The convention for naming these colors is that the Tk name is +generated by capitalizing the macOS name and adding the prefix "system". The +System ColorList differs between releases of macOS and some colors, such as +systemLinkColor and systemControlAccentColor, are simulated on older systems +which did not provide them. The following colors are available on all +supported macOS releases, although newer systems will support additional +colors: systemControlAccentColor, systemControlTextColor, +systemDisabledControlTextColor, systemLabelColor, systemLinkColor, +systemPlaceholderTextColor, systemSelectedTextBackgroundColor, +systemSelectedTextColor, systemSeparatorColor, systemTextBackgroundColor, and +systemTextColor. One additional color, systemSelectedTabTextColor, does not +exist in macOS but is used by Tk to match the different colors used for +Notebook tab titles in different OS versions. The default background and foreground colors of most of the Tk widgets have been set to semantic colors, which means that the widgets will change @@ -323,10 +327,9 @@ The macOS specific configure flags are --enable-aqua, --enable-framework and select based notifier). Note that --enable-aqua is incompatible with --disable-corefoundation (for both Tcl and Tk configure). -- It was once possible to build with the Xcode IDE via the projects in +- It was once possible to build with the Xcode IDE via the project in tk/macosx, but this has not been tested recently. Take care to use the project matching your DevTools and OS version: - Tk.xcode: for Xcode 3.1 on 10.5 Tk.xcodeproj: for Xcode 3.2 on 10.6 These have the following targets: Tk: calls through to tk/macosx/GNUMakefile, @@ -342,14 +345,10 @@ The following build configurations are available: Debug gcc40: use gcc 4.0 compiler. DebugNoGC: disable Objective-C garbage collection. DebugNoFixAndContinue: disable Fix & Continue. - DebugUnthreaded: disable threading. DebugNoCF: disable corefoundation (X11 only). - DebugNoCFUnthreaded: disable corefoundation an threading. DebugMemCompile: enable memory and bytecode debugging. DebugLeaks: define PURIFY. DebugGCov: enable generation of gcov data files. - Debug64bit: configure with --enable-64bit (requires - building on a 64bit capable processor). Release: release build for the active architecture. ReleaseUniversal: 32/64-bit universal build. ReleaseUniversal clang: use clang compiler. @@ -358,11 +357,11 @@ The following build configurations are available: ReleaseUniversal10.5SDK: build against the 10.5 SDK (with 10.5 deployment target). Note that the non-SDK configurations have their deployment target set to - 10.5 (Tk.xcode) resp. 10.6 (Tk.xcodeproj). + 10.6 (Tk.xcodeproj). The Xcode projects refer to the toplevel tcl and tk source directories via the the TCL_SRCROOT and TK_SRCROOT user build settings, by default these are set to the project-relative paths '../../tcl' and '../../tk', if your source -directories are named differently, e.g. '../../tcl8.6' and '../../tk8.6', you +directories are named differently, e.g. '../../tcl8.7' and '../../tk8.7', you need to manually change the TCL_SRCROOT and TK_SRCROOT settings by editing your ${USER}.pbxuser file (located inside the Tk.xcodeproj bundle directory) with a text editor. @@ -387,14 +386,12 @@ trees in a common parent directory. - The following instructions assume the Tcl and Tk source trees are named "tcl${ver}" and "tk${ver}" (where ${ver} is a shell variable containing the -Tcl/Tk version number, e.g. '8.6'). +Tcl/Tk version number, e.g. '8.7'). Setup this shell variable as follows: - ver="8.6" -If you are building from CVS, omit this step (CVS source tree names usually do -not contain a version number). + ver="8.7" - Setup environment variables as desired, e.g. for a universal build on 10.5: - CFLAGS="-arch i386 -arch x86_64 -arch ppc -mmacosx-version-min=10.5" + CFLAGS="-arch x86_64 -arch arm64 -mmacosx-version-min=10.5" export CFLAGS - Change to the directory containing the Tcl and Tk source trees and build: @@ -462,7 +459,7 @@ the shared library and set the DESTDIR variable to the pathname of a staging directory where the frameworks will be written. The Tcl framework must be built first. For example, running the commands: - make -C ../tcl8.6/macosx install-embedded SUBFRAMEWORK=1 DESTDIR=/tmp/tcltk \ + make -C ../tcl8.7/macosx install-embedded SUBFRAMEWORK=1 DESTDIR=/tmp/tcltk \ DYLIB_INSTALL_DIR=/Library/Frameworks/Some.framework/Versions/X.Y/Frameworks/Tcl.framework make -C macosx install-embedded SUBFRAMEWORK=1 DESTDIR=/tmp/tcltk \ DYLIB_INSTALL_DIR=/Library/Frameworks/Some.framework/Versions/X.Y/Frameworks/Tk.framework @@ -681,7 +678,7 @@ conditional code which is only used for macOS. The 10.14 release added support for system appearance changes, including a "Dark Mode" that renders all window frames and menus in -dark colors. Tk 8.6 provides three virtual events <<LightAqua>>, +dark colors. Tk 8.7 provides three virtual events <<LightAqua>>, <<DarkAqua>> and <<AppearanceChanged>>, to allow you to update your Tk app's appearance when the system appearance changes. These events are generated in [NSView effectiveAppearanceChanged], which is called by diff --git a/macosx/Tk-Common.xcconfig b/macosx/Tk-Common.xcconfig index 4ec1a52..9eaa384 100644 --- a/macosx/Tk-Common.xcconfig +++ b/macosx/Tk-Common.xcconfig @@ -4,8 +4,8 @@ // This file contains the Xcode build settings comon to all // project configurations in Wish.xcodeproj. // -// Copyright (c) 2007-2009 Daniel A. Steffen <das@users.sourceforge.net> -// Copyright 2008-2009, Apple Inc. +// Copyright © 2007-2009 Daniel A. Steffen <das@users.sourceforge.net> +// Copyright © 2008-2009 Apple Inc. // // See the file "license.terms" for information on usage and redistribution // of this file, and for a DISCLAIMER OF ALL WARRANTIES. @@ -23,7 +23,7 @@ GCC_NO_COMMON_BLOCKS = YES GCC_DYNAMIC_NO_PIC = YES GCC_VERSION = 4.2 GCC = gcc-$(GCC_VERSION) -WARNING_CFLAGS = -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-value -Winit-self -Wpointer-arith -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS) +WARNING_CFLAGS = -Wall -Wextra -Wshadow -Wundef -Wwrite-strings -Wpointer-arith -Winit-self -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS) REZ_RESOURCE_MAP_READ_ONLY = YES APPLICATION_INSTALL_PATH = /Applications/Utilities BINDIR = $(PREFIX)/bin @@ -33,14 +33,13 @@ FRAMEWORK_INSTALL_PATH = /Library/Frameworks INCLUDEDIR = $(PREFIX)/include LIBDIR = $(PREFIX)/lib MANDIR = $(PREFIX)/man -PER_ARCH_CFLAGS_ppc = -mcpu=G3 -mtune=G4 $(PER_ARCH_CFLAGS_ppc) PREFIX = /usr/local TCL_BUILD_DIR = $(OBJROOT)/../tcl/Tcl.build/$(CONFIGURATION)/Tcl.build/Objects -TCL_CONFIGURE_ARGS = --enable-threads --enable-dtrace +TCL_CONFIGURE_ARGS = --enable-dtrace TCL_FRAMEWORK_DIR = $(SYMROOT)/../tcl/$(CONFIGURATION) TCL_LIBRARY = $(LIBDIR)/tcl$(VERSION) TCL_PACKAGE_PATH = "$(LIBDIR)" TCL_DEFS = HAVE_TCL_CONFIG_H TK_LIBRARY = $(LIBDIR)/tk$(VERSION) TK_DEFS = HAVE_TK_CONFIG_H -VERSION = 8.6 +VERSION = 8.7 diff --git a/macosx/Tk-Debug.xcconfig b/macosx/Tk-Debug.xcconfig index 2382661..eedc3aa 100644 --- a/macosx/Tk-Debug.xcconfig +++ b/macosx/Tk-Debug.xcconfig @@ -4,7 +4,7 @@ // This file contains the Xcode build settings for all Debug // project configurations in Wish.xcodeproj. // -// Copyright (c) 2007 Daniel A. Steffen <das@users.sourceforge.net> +// Copyright © 2007 Daniel A. Steffen <das@users.sourceforge.net> // // See the file "license.terms" for information on usage and redistribution // of this file, and for a DISCLAIMER OF ALL WARRANTIES. diff --git a/macosx/Tk-Info.plist.in b/macosx/Tk-Info.plist.in index 7b0c305..47f8d69 100644 --- a/macosx/Tk-Info.plist.in +++ b/macosx/Tk-Info.plist.in @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!-- - Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> - Copyright 2008-2009, Apple Inc. + Copyright © 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> + Copyright © 2008-2009 Apple Inc. See the file "license.terms" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. diff --git a/macosx/Tk-Release.xcconfig b/macosx/Tk-Release.xcconfig index 07287da..75270ff 100644 --- a/macosx/Tk-Release.xcconfig +++ b/macosx/Tk-Release.xcconfig @@ -4,7 +4,7 @@ // This file contains the Xcode build settings for all Release // project configurations in Wish.xcodeproj. // -// Copyright (c) 2007 Daniel A. Steffen <das@users.sourceforge.net> +// Copyright © 2007 Daniel A. Steffen <das@users.sourceforge.net> // // See the file "license.terms" for information on usage and redistribution // of this file, and for a DISCLAIMER OF ALL WARRANTIES. diff --git a/macosx/Tk.xcode/default.pbxuser b/macosx/Tk.xcode/default.pbxuser deleted file mode 100644 index c8456e8..0000000 --- a/macosx/Tk.xcode/default.pbxuser +++ /dev/null @@ -1,384 +0,0 @@ -// !$*UTF8*$! -{ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - activeBuildConfigurationName = Debug; - activeExecutable = F9E61D1C090A4282002B3151 /* Wish */; - activeTarget = F9E61D16090A3E94002B3151 /* Tk */; - codeSenseManager = F944EB9D08F798180049FDD4 /* Code sense */; - executables = ( - F9E61D1C090A4282002B3151 /* Wish */, - F944EB8F08F798100049FDD4 /* tktest */, - F9FD31F50CC1AD070073837D /* tktest-X11 */, - ); - perUserDictionary = { - com.apple.ide.smrt.PBXUserSmartGroupsKey.Rev10 = <040b73747265616d747970656481e8038401408484840e4e534d757461626c654172726179008484074e534172726179008484084e534f626a65637400858401690192848484134e534d757461626c6544696374696f6e6172790084840c4e5344696374696f6e6172790095960792848484084e53537472696e67019584012b046e616d658692849a9a14496d706c656d656e746174696f6e2046696c65738692849a9a146162736f6c75746550617468546f42756e646c658692849a9a008692849a9a195042585472616e7369656e744c6f636174696f6e4174546f708692849a9a06626f74746f6d8692849a9a03636c7a8692849a9a1550425846696c656e616d65536d61727447726f75708692849a9a0b6465736372697074696f6e8692849a9a103c6e6f206465736372697074696f6e3e8692849a9a0b707265666572656e63657386928497960892849a9a07666e6d617463688692849a9a008692849a9a05696d6167658692849a9a0b536d617274466f6c6465728692849a9a04726f6f748692849a9a093c50524f4a4543543e8692849a9a0572656765788692849a9a065c2e286329248692849a9a097265637572736976658692848484084e534e756d626572008484074e5356616c7565009584012a849696018692849a9a0669734c656166869284b09db296008692849a9a0763616e536176658692af92849a9a1250425850726f6a65637453636f70654b65798692849a9a03594553868692849a9a08676c6f62616c49448692849a9a18314343304541343030343335304546393030343434313042868686>; - }; - sourceControlManager = F944EB9C08F798180049FDD4 /* Source Control */; - userBuildSettings = { - SYMROOT = "${SRCROOT}/../../build/tk"; - TCL_SRCROOT = "${SRCROOT}/../../tcl"; - TK_SRCROOT = "${SRCROOT}/../../tk"; - }; - }; - 8DD76FA90486AB0100D96B5E /* tktest */ = { - activeExec = 0; - executables = ( - F944EB8F08F798100049FDD4 /* tktest */, - ); - }; - F944EB8F08F798100049FDD4 /* tktest */ = { - isa = PBXExecutable; - activeArgIndices = ( - YES, - NO, - NO, - NO, - NO, - NO, - NO, - ); - argumentStrings = ( - "${TK_SRCROOT}/library/demos/widget", - "${TK_SRCROOT}/tests/all.tcl", - "${TK_SRCROOT}/tests/ttk/all.tcl", - "-geometry +0+0", - "-singleproc 1", - "-verbose \"bet\"", - "-skip window-2.9", - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 1; - configStateDict = { - "PBXLSLaunchAction-0" = { - PBXLSLaunchAction = 0; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXLSRunLaunchConfig; - displayName = "Executable Runner"; - identifier = com.apple.Xcode.launch.runConfig; - remoteHostInfo = ""; - startActionInfo = ""; - }; - "PBXLSLaunchAction-1" = { - PBXLSLaunchAction = 1; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXGDB_LaunchConfig; - displayName = GDB; - identifier = com.apple.Xcode.launch.GDBMI_Config; - remoteHostInfo = ""; - startActionInfo = ""; - }; - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 0; - environmentEntries = ( - { - active = YES; - name = TCL_LIBRARY; - value = "${TCL_SRCROOT}/library"; - }, - { - active = YES; - name = TK_LIBRARY; - value = "${TK_SRCROOT}/library"; - }, - { - active = YES; - name = TCLLIBPATH; - value = /Library/Tcl; - }, - { - active = YES; - name = TK_SRCROOT; - value = "${TK_SRCROOT}"; - }, - { - active = NO; - name = TK_CONSOLE; - value = 1; - }, - { - active = NO; - name = DYLD_PRINT_LIBRARIES; - }, - { - active = NO; - name = NSTraceEvents; - value = YES; - }, - { - active = NO; - name = MallocBadFreeAbort; - value = 1; - }, - { - active = NO; - name = MallocLogFile; - value = /tmp/malloc.log; - }, - { - active = NO; - name = MallocStackLogging; - value = 1; - }, - { - active = NO; - name = MallocStackLoggingNoCompact; - value = 1; - }, - { - active = NO; - name = MallocPreScribble; - value = 1; - }, - { - active = NO; - name = MallocScribble; - value = 1; - }, - { - active = NO; - name = NSZombieEnabled; - value = YES; - }, - { - active = NO; - name = NSDeallocateZombies; - value = YES; - }, - { - active = NO; - name = NSAutoreleaseFreedObjectCheckEnabled; - value = YES; - }, - { - active = NO; - name = NSEnableAutoreleasePool; - value = NO; - }, - { - active = NO; - name = AUTO_LOG_ALL; - value = YES; - }, - { - active = NO; - name = AUTO_LOG_NOISY; - value = YES; - }, - { - active = NO; - name = AUTO_REFERENCE_COUNT_LOGGING; - value = YES; - }, - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = tktest; - sourceDirectories = ( - ); - }; - F944EB9C08F798180049FDD4 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - CVSToolPath = /usr/bin/cvs; - CVSUseSSH = NO; - SubversionToolPath = /usr/bin/svn; - repositoryNamesForRoots = { - .. = ""; - }; - }; - scmType = scm.cvs; - }; - F944EB9D08F798180049FDD4 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - F97258A50A86873C00096C78 /* tktest-X11 */ = { - activeExec = 0; - executables = ( - F9FD31F50CC1AD070073837D /* tktest-X11 */, - ); - }; - F9E61D16090A3E94002B3151 /* Tk */ = { - activeExec = 0; - executables = ( - F9E61D1C090A4282002B3151 /* Wish */, - ); - }; - F9E61D1C090A4282002B3151 /* Wish */ = { - isa = PBXExecutable; - activeArgIndices = ( - YES, - ); - argumentStrings = ( - "${TK_SRCROOT}/library/demos/widget", - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 1; - configStateDict = { - "PBXLSLaunchAction-0" = { - PBXLSLaunchAction = 0; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXLSRunLaunchConfig; - displayName = "Executable Runner"; - identifier = com.apple.Xcode.launch.runConfig; - remoteHostInfo = ""; - startActionInfo = ""; - }; - "PBXLSLaunchAction-1" = { - PBXLSLaunchAction = 1; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXGDB_LaunchConfig; - displayName = GDB; - identifier = com.apple.Xcode.launch.GDBMI_Config; - remoteHostInfo = ""; - startActionInfo = ""; - }; - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 0; - environmentEntries = ( - { - active = NO; - name = DYLD_PRINT_LIBRARIES; - }, - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = Wish; - sourceDirectories = ( - ); - }; - F9FD31F50CC1AD070073837D /* tktest-X11 */ = { - isa = PBXExecutable; - activeArgIndices = ( - YES, - NO, - NO, - NO, - NO, - NO, - NO, - ); - argumentStrings = ( - "${TK_SRCROOT}/library/demos/widget", - "${TK_SRCROOT}/tests/all.tcl", - "${TK_SRCROOT}/tests/ttk/all.tcl", - "-geometry +0+0", - "-singleproc 1", - "-verbose \"bet\"", - "-skip window-2.9", - ); - autoAttachOnCrash = 1; - breakpointsEnabled = 1; - configStateDict = { - "PBXLSLaunchAction-0" = { - PBXLSLaunchAction = 0; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXLSRunLaunchConfig; - displayName = "Executable Runner"; - identifier = com.apple.Xcode.launch.runConfig; - remoteHostInfo = ""; - startActionInfo = ""; - }; - "PBXLSLaunchAction-1" = { - PBXLSLaunchAction = 1; - PBXLSLaunchStartAction = 1; - PBXLSLaunchStdioStyle = 2; - PBXLSLaunchStyle = 0; - class = PBXGDB_LaunchConfig; - displayName = GDB; - identifier = com.apple.Xcode.launch.GDBMI_Config; - remoteHostInfo = ""; - startActionInfo = ""; - }; - }; - customDataFormattersEnabled = 1; - debuggerPlugin = GDBDebugging; - disassemblyDisplayState = 0; - dylibVariantSuffix = ""; - enableDebugStr = 0; - environmentEntries = ( - { - active = YES; - name = TCL_LIBRARY; - value = "${TCL_SRCROOT}/library"; - }, - { - active = YES; - name = TK_LIBRARY; - value = "${TK_SRCROOT}/library"; - }, - { - active = YES; - name = TCLLIBPATH; - value = /Library/Tcl; - }, - { - active = YES; - name = DISPLAY; - value = ":0"; - }, - { - active = NO; - name = DYLD_PRINT_LIBRARIES; - }, - { - active = NO; - name = MallocBadFreeAbort; - value = 1; - }, - { - active = NO; - name = MallocLogFile; - value = /tmp/malloc.log; - }, - { - active = NO; - name = MallocStackLogging; - value = 1; - }, - { - active = NO; - name = MallocStackLoggingNoCompact; - value = 1; - }, - { - active = NO; - name = MallocPreScribble; - value = 1; - }, - { - active = NO; - name = MallocScribble; - value = 1; - }, - ); - executableSystemSymbolLevel = 0; - executableUserSymbolLevel = 0; - libgmallocEnabled = 0; - name = "tktest-X11"; - sourceDirectories = ( - ); - }; -} diff --git a/macosx/Tk.xcode/project.pbxproj b/macosx/Tk.xcode/project.pbxproj deleted file mode 100644 index 8aa4c1f..0000000 --- a/macosx/Tk.xcode/project.pbxproj +++ /dev/null @@ -1,5775 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - F9067BCD0BFBA2900074F726 /* tkOldTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFE08F27A39005CB29B /* tkOldTest.c */; }; - F9152B090EAF8A5000CD5C7B /* tkBusy.c in Sources */ = {isa = PBXBuildFile; fileRef = F9152B080EAF8A5000CD5C7B /* tkBusy.c */; }; - F9152B0A0EAF8A5700CD5C7B /* tkBusy.c in Sources */ = {isa = PBXBuildFile; fileRef = F9152B080EAF8A5000CD5C7B /* tkBusy.c */; }; - F92EE8BF0E62F846001A6E80 /* tkImgPhInstance.c in Sources */ = {isa = PBXBuildFile; fileRef = F92EE8BE0E62F846001A6E80 /* tkImgPhInstance.c */; }; - F92EE8D30E62F939001A6E80 /* tkImgPhInstance.c in Sources */ = {isa = PBXBuildFile; fileRef = F92EE8BE0E62F846001A6E80 /* tkImgPhInstance.c */; }; - F93599B30DF1F75400E04F67 /* tclOO.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B20DF1F75400E04F67 /* tclOO.c */; }; - F93599B70DF1F76100E04F67 /* tclOOBasic.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B60DF1F76100E04F67 /* tclOOBasic.c */; }; - F93599B90DF1F76600E04F67 /* tclOOCall.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B80DF1F76600E04F67 /* tclOOCall.c */; }; - F93599BC0DF1F77000E04F67 /* tclOODefineCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599BB0DF1F77000E04F67 /* tclOODefineCmds.c */; }; - F93599BE0DF1F77400E04F67 /* tclOOInfo.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599BD0DF1F77400E04F67 /* tclOOInfo.c */; }; - F93599C20DF1F78300E04F67 /* tclOOMethod.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C10DF1F78300E04F67 /* tclOOMethod.c */; }; - F93599C40DF1F78800E04F67 /* tclOOStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C30DF1F78800E04F67 /* tclOOStubInit.c */; }; - F93599C60DF1F78D00E04F67 /* tclOOStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C50DF1F78D00E04F67 /* tclOOStubLib.c */; }; - F94523A20E6FC2AC00C1D987 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F94523A10E6FC2AC00C1D987 /* Cocoa.framework */; }; - F95D77EA0DFD820D00A8BF6F /* tclIORTrans.c in Sources */ = {isa = PBXBuildFile; fileRef = F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */; }; - F96437CA0EF0D4B2003F468E /* tclZlib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96437C90EF0D4B2003F468E /* tclZlib.c */; }; - F96437CB0EF0D4B2003F468E /* tclZlib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96437C90EF0D4B2003F468E /* tclZlib.c */; }; - F96437E70EF0D652003F468E /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F96437E60EF0D652003F468E /* libz.dylib */; }; - F96437E80EF0D652003F468E /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F96437E60EF0D652003F468E /* libz.dylib */; }; - F966BDCF08F27A3F005CB29B /* tk3d.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAC08F27A39005CB29B /* tk3d.c */; }; - F966BDD108F27A3F005CB29B /* tkArgv.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAE08F27A39005CB29B /* tkArgv.c */; }; - F966BDD208F27A3F005CB29B /* tkAtom.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAF08F27A39005CB29B /* tkAtom.c */; }; - F966BDD308F27A3F005CB29B /* tkBind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB008F27A39005CB29B /* tkBind.c */; }; - F966BDD408F27A3F005CB29B /* tkBitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB108F27A39005CB29B /* tkBitmap.c */; }; - F966BDD508F27A3F005CB29B /* tkButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB208F27A39005CB29B /* tkButton.c */; }; - F966BDD708F27A3F005CB29B /* tkCanvArc.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB408F27A39005CB29B /* tkCanvArc.c */; }; - F966BDD808F27A3F005CB29B /* tkCanvas.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB508F27A39005CB29B /* tkCanvas.c */; }; - F966BDDA08F27A3F005CB29B /* tkCanvBmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB708F27A39005CB29B /* tkCanvBmap.c */; }; - F966BDDB08F27A3F005CB29B /* tkCanvImg.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB808F27A39005CB29B /* tkCanvImg.c */; }; - F966BDDC08F27A3F005CB29B /* tkCanvLine.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB908F27A39005CB29B /* tkCanvLine.c */; }; - F966BDDD08F27A3F005CB29B /* tkCanvPoly.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABA08F27A39005CB29B /* tkCanvPoly.c */; }; - F966BDDE08F27A3F005CB29B /* tkCanvPs.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABB08F27A39005CB29B /* tkCanvPs.c */; }; - F966BDE008F27A3F005CB29B /* tkCanvText.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABD08F27A39005CB29B /* tkCanvText.c */; }; - F966BDE108F27A3F005CB29B /* tkCanvUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABE08F27A39005CB29B /* tkCanvUtil.c */; }; - F966BDE208F27A3F005CB29B /* tkCanvWind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABF08F27A39005CB29B /* tkCanvWind.c */; }; - F966BDE308F27A3F005CB29B /* tkClipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC008F27A39005CB29B /* tkClipboard.c */; }; - F966BDE408F27A3F005CB29B /* tkCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC108F27A39005CB29B /* tkCmds.c */; }; - F966BDE508F27A3F005CB29B /* tkColor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC208F27A39005CB29B /* tkColor.c */; }; - F966BDE708F27A3F005CB29B /* tkConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC408F27A39005CB29B /* tkConfig.c */; }; - F966BDE808F27A3F005CB29B /* tkConsole.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC508F27A39005CB29B /* tkConsole.c */; }; - F966BDE908F27A3F005CB29B /* tkCursor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC608F27A39005CB29B /* tkCursor.c */; }; - F966BDEB08F27A3F005CB29B /* tkEntry.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC808F27A39005CB29B /* tkEntry.c */; }; - F966BDED08F27A3F005CB29B /* tkError.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACA08F27A39005CB29B /* tkError.c */; }; - F966BDEE08F27A3F005CB29B /* tkEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACB08F27A39005CB29B /* tkEvent.c */; }; - F966BDEF08F27A3F005CB29B /* tkFileFilter.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACC08F27A39005CB29B /* tkFileFilter.c */; }; - F966BDF108F27A3F005CB29B /* tkFocus.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACE08F27A39005CB29B /* tkFocus.c */; }; - F966BDF208F27A3F005CB29B /* tkFont.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACF08F27A39005CB29B /* tkFont.c */; }; - F966BDF408F27A3F005CB29B /* tkFrame.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD108F27A39005CB29B /* tkFrame.c */; }; - F966BDF508F27A3F005CB29B /* tkGC.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD208F27A39005CB29B /* tkGC.c */; }; - F966BDF608F27A3F005CB29B /* tkGeometry.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD308F27A39005CB29B /* tkGeometry.c */; }; - F966BDF708F27A3F005CB29B /* tkGet.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD408F27A39005CB29B /* tkGet.c */; }; - F966BDF808F27A3F005CB29B /* tkGrab.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD508F27A39005CB29B /* tkGrab.c */; }; - F966BDF908F27A3F005CB29B /* tkGrid.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD608F27A39005CB29B /* tkGrid.c */; }; - F966BDFA08F27A3F005CB29B /* tkImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD708F27A39005CB29B /* tkImage.c */; }; - F966BDFB08F27A3F005CB29B /* tkImgBmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD808F27A39005CB29B /* tkImgBmap.c */; }; - F966BDFC08F27A3F005CB29B /* tkImgGIF.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD908F27A39005CB29B /* tkImgGIF.c */; }; - F966BDFD08F27A3F005CB29B /* tkImgPhoto.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BADA08F27A39005CB29B /* tkImgPhoto.c */; }; - F966BDFE08F27A3F005CB29B /* tkImgPPM.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BADB08F27A39005CB29B /* tkImgPPM.c */; }; - F966BE0708F27A3F005CB29B /* tkListbox.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE408F27A39005CB29B /* tkListbox.c */; }; - F966BE0808F27A3F005CB29B /* tkMacWinMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE508F27A39005CB29B /* tkMacWinMenu.c */; }; - F966BE0908F27A3F005CB29B /* tkMain.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE608F27A39005CB29B /* tkMain.c */; }; - F966BE0A08F27A3F005CB29B /* tkMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE708F27A39005CB29B /* tkMenu.c */; }; - F966BE0C08F27A3F005CB29B /* tkMenubutton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE908F27A39005CB29B /* tkMenubutton.c */; }; - F966BE0E08F27A3F005CB29B /* tkMenuDraw.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEB08F27A39005CB29B /* tkMenuDraw.c */; }; - F966BE0F08F27A3F005CB29B /* tkMessage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEC08F27A39005CB29B /* tkMessage.c */; }; - F966BE1008F27A3F005CB29B /* tkObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAED08F27A39005CB29B /* tkObj.c */; }; - F966BE1108F27A3F005CB29B /* tkOldConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEE08F27A39005CB29B /* tkOldConfig.c */; }; - F966BE1208F27A3F005CB29B /* tkOption.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEF08F27A39005CB29B /* tkOption.c */; }; - F966BE1308F27A3F005CB29B /* tkPack.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF008F27A39005CB29B /* tkPack.c */; }; - F966BE1408F27A3F005CB29B /* tkPanedWindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF108F27A39005CB29B /* tkPanedWindow.c */; }; - F966BE1508F27A3F005CB29B /* tkPlace.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF208F27A39005CB29B /* tkPlace.c */; }; - F966BE1708F27A3F005CB29B /* tkPointer.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF408F27A39005CB29B /* tkPointer.c */; }; - F966BE1908F27A3F005CB29B /* tkRectOval.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF608F27A39005CB29B /* tkRectOval.c */; }; - F966BE1A08F27A3F005CB29B /* tkScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF708F27A39005CB29B /* tkScale.c */; }; - F966BE1C08F27A40005CB29B /* tkScrollbar.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF908F27A39005CB29B /* tkScrollbar.c */; }; - F966BE1E08F27A40005CB29B /* tkSelect.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFB08F27A39005CB29B /* tkSelect.c */; }; - F966BE2008F27A40005CB29B /* tkSquare.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFD08F27A39005CB29B /* tkSquare.c */; }; - F966BE2208F27A40005CB29B /* tkStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFF08F27A39005CB29B /* tkStubInit.c */; }; - F966BE2308F27A40005CB29B /* tkStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0008F27A39005CB29B /* tkStubLib.c */; }; - F966BE2408F27A40005CB29B /* tkStyle.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0108F27A39005CB29B /* tkStyle.c */; }; - F966BE2508F27A40005CB29B /* tkTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0208F27A39005CB29B /* tkTest.c */; }; - F966BE2608F27A40005CB29B /* tkText.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0308F27A39005CB29B /* tkText.c */; }; - F966BE2808F27A40005CB29B /* tkTextBTree.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0508F27A39005CB29B /* tkTextBTree.c */; }; - F966BE2908F27A40005CB29B /* tkTextDisp.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0608F27A39005CB29B /* tkTextDisp.c */; }; - F966BE2B08F27A40005CB29B /* tkTextImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0808F27A39005CB29B /* tkTextImage.c */; }; - F966BE2C08F27A40005CB29B /* tkTextIndex.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0908F27A39005CB29B /* tkTextIndex.c */; }; - F966BE2D08F27A40005CB29B /* tkTextMark.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0A08F27A39005CB29B /* tkTextMark.c */; }; - F966BE2E08F27A40005CB29B /* tkTextTag.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0B08F27A39005CB29B /* tkTextTag.c */; }; - F966BE2F08F27A40005CB29B /* tkTextWind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0C08F27A39005CB29B /* tkTextWind.c */; }; - F966BE3008F27A40005CB29B /* tkTrig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0D08F27A39005CB29B /* tkTrig.c */; }; - F966BE3108F27A40005CB29B /* tkUndo.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0E08F27A39005CB29B /* tkUndo.c */; }; - F966BE3308F27A40005CB29B /* tkUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1008F27A39005CB29B /* tkUtil.c */; }; - F966BE3408F27A40005CB29B /* tkVisual.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1108F27A39005CB29B /* tkVisual.c */; }; - F966BE3508F27A40005CB29B /* tkWindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1208F27A39005CB29B /* tkWindow.c */; }; - F966BEDB08F27A40005CB29B /* tkMacOSXBitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */; }; - F966BEDC08F27A40005CB29B /* tkMacOSXButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */; }; - F966BEDE08F27A40005CB29B /* tkMacOSXClipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */; }; - F966BEDF08F27A40005CB29B /* tkMacOSXColor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */; }; - F966BEE008F27A40005CB29B /* tkMacOSXConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */; }; - F966BEE108F27A40005CB29B /* tkMacOSXCursor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */; }; - F966BEE308F27A40005CB29B /* tkMacOSXDebug.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBCD08F27A3B005CB29B /* tkMacOSXDebug.c */; }; - F966BEE608F27A40005CB29B /* tkMacOSXDialog.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD008F27A3B005CB29B /* tkMacOSXDialog.c */; }; - F966BEE708F27A40005CB29B /* tkMacOSXDraw.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD108F27A3B005CB29B /* tkMacOSXDraw.c */; }; - F966BEE808F27A40005CB29B /* tkMacOSXEmbed.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */; }; - F966BEE908F27A40005CB29B /* tkMacOSXEntry.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */; }; - F966BEEA08F27A40005CB29B /* tkMacOSXEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */; }; - F966BEEC08F27A40005CB29B /* tkMacOSXFont.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD608F27A3B005CB29B /* tkMacOSXFont.c */; }; - F966BEED08F27A40005CB29B /* tkMacOSXHLEvents.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */; }; - F966BEEE08F27A40005CB29B /* tkMacOSXInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */; settings = {COMPILER_FLAGS = "-DTK_LIBRARY=\\\"$(TK_LIBRARY)\\\""; }; }; - F966BEF108F27A40005CB29B /* tkMacOSXKeyboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBDB08F27A3B005CB29B /* tkMacOSXKeyboard.c */; }; - F966BEF208F27A40005CB29B /* tkMacOSXKeyEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBDC08F27A3B005CB29B /* tkMacOSXKeyEvent.c */; }; - F966BEF308F27A40005CB29B /* tkMacOSXMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBDD08F27A3B005CB29B /* tkMacOSXMenu.c */; }; - F966BEF608F27A40005CB29B /* tkMacOSXMenubutton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBE008F27A3B005CB29B /* tkMacOSXMenubutton.c */; }; - F966BEF708F27A40005CB29B /* tkMacOSXMenus.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBE108F27A3B005CB29B /* tkMacOSXMenus.c */; }; - F966BEF808F27A40005CB29B /* tkMacOSXMouseEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBE208F27A3B005CB29B /* tkMacOSXMouseEvent.c */; }; - F966BEF908F27A40005CB29B /* tkMacOSXNotify.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBE308F27A3B005CB29B /* tkMacOSXNotify.c */; }; - F966BF0108F27A40005CB29B /* tkMacOSXRegion.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBEB08F27A3C005CB29B /* tkMacOSXRegion.c */; }; - F966BF0308F27A40005CB29B /* tkMacOSXScrlbr.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBED08F27A3C005CB29B /* tkMacOSXScrlbr.c */; }; - F966BF0408F27A40005CB29B /* tkMacOSXSend.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBEE08F27A3C005CB29B /* tkMacOSXSend.c */; }; - F966BF0508F27A40005CB29B /* tkMacOSXSubwindows.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBEF08F27A3C005CB29B /* tkMacOSXSubwindows.c */; }; - F966BF0608F27A40005CB29B /* tkMacOSXTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBF008F27A3C005CB29B /* tkMacOSXTest.c */; }; - F966BF0708F27A40005CB29B /* tkMacOSXWindowEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBF108F27A3C005CB29B /* tkMacOSXWindowEvent.c */; }; - F966BF0808F27A40005CB29B /* tkMacOSXWm.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBF208F27A3C005CB29B /* tkMacOSXWm.c */; }; - F966BF0B08F27A40005CB29B /* tkMacOSXXStubs.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */; }; - F966BF7F08F27A41005CB29B /* tkAppInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7508F27A3D005CB29B /* tkAppInit.c */; settings = {COMPILER_FLAGS = "-DTK_TEST"; }; }; - F966BF8308F27A41005CB29B /* tkUnix3d.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7908F27A3D005CB29B /* tkUnix3d.c */; }; - F966BF9608F27A41005CB29B /* tkUnixScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8C08F27A3D005CB29B /* tkUnixScale.c */; }; - F966C02A08F27A42005CB29B /* xcolors.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BD2408F27A3F005CB29B /* xcolors.c */; }; - F966C02B08F27A42005CB29B /* xdraw.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BD2508F27A3F005CB29B /* xdraw.c */; }; - F966C02C08F27A42005CB29B /* xgc.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BD2608F27A3F005CB29B /* xgc.c */; }; - F966C02D08F27A42005CB29B /* ximage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BD2708F27A3F005CB29B /* ximage.c */; }; - F966C02E08F27A42005CB29B /* xutil.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BD2808F27A3F005CB29B /* xutil.c */; }; - F966C07508F2820D005CB29B /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F966C07408F2820D005CB29B /* CoreFoundation.framework */; }; - F966C07708F2821B005CB29B /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F966C07608F2821B005CB29B /* Carbon.framework */; }; - F966C07908F28233005CB29B /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F966C07808F28233005CB29B /* IOKit.framework */; }; - F96888050AF786D5000797B5 /* ttkBlink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E10AF786D5000797B5 /* ttkBlink.c */; }; - F96888060AF786D5000797B5 /* ttkButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E20AF786D5000797B5 /* ttkButton.c */; }; - F96888070AF786D5000797B5 /* ttkCache.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E30AF786D5000797B5 /* ttkCache.c */; }; - F96888080AF786D5000797B5 /* ttkClamTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E40AF786D5000797B5 /* ttkClamTheme.c */; }; - F96888090AF786D5000797B5 /* ttkClassicTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E50AF786D5000797B5 /* ttkClassicTheme.c */; }; - F968880A0AF786D5000797B5 /* ttkDefaultTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E70AF786D5000797B5 /* ttkDefaultTheme.c */; }; - F968880B0AF786D5000797B5 /* ttkElements.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E80AF786D5000797B5 /* ttkElements.c */; }; - F968880C0AF786D5000797B5 /* ttkEntry.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E90AF786D5000797B5 /* ttkEntry.c */; }; - F968880D0AF786D5000797B5 /* ttkFrame.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EA0AF786D5000797B5 /* ttkFrame.c */; }; - F968880E0AF786D5000797B5 /* ttkImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EB0AF786D5000797B5 /* ttkImage.c */; }; - F968880F0AF786D5000797B5 /* ttkInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EC0AF786D5000797B5 /* ttkInit.c */; }; - F96888100AF786D5000797B5 /* ttkLabel.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887ED0AF786D5000797B5 /* ttkLabel.c */; }; - F96888110AF786D5000797B5 /* ttkLayout.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EE0AF786D5000797B5 /* ttkLayout.c */; }; - F96888120AF786D5000797B5 /* ttkManager.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EF0AF786D5000797B5 /* ttkManager.c */; }; - F96888130AF786D5000797B5 /* ttkNotebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F10AF786D5000797B5 /* ttkNotebook.c */; }; - F96888140AF786D5000797B5 /* ttkPanedwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F20AF786D5000797B5 /* ttkPanedwindow.c */; }; - F96888150AF786D5000797B5 /* ttkProgress.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F30AF786D5000797B5 /* ttkProgress.c */; }; - F96888160AF786D5000797B5 /* ttkScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F40AF786D5000797B5 /* ttkScale.c */; }; - F96888170AF786D5000797B5 /* ttkScroll.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F50AF786D5000797B5 /* ttkScroll.c */; }; - F96888180AF786D5000797B5 /* ttkScrollbar.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F60AF786D5000797B5 /* ttkScrollbar.c */; }; - F96888190AF786D5000797B5 /* ttkSeparator.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F70AF786D5000797B5 /* ttkSeparator.c */; }; - F968881A0AF786D5000797B5 /* ttkSquare.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F80AF786D5000797B5 /* ttkSquare.c */; }; - F968881B0AF786D5000797B5 /* ttkState.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F90AF786D5000797B5 /* ttkState.c */; }; - F968881C0AF786D5000797B5 /* ttkStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FA0AF786D5000797B5 /* ttkStubInit.c */; }; - F968881D0AF786D5000797B5 /* ttkStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FB0AF786D5000797B5 /* ttkStubLib.c */; }; - F968881E0AF786D5000797B5 /* ttkTagSet.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FC0AF786D5000797B5 /* ttkTagSet.c */; }; - F968881F0AF786D5000797B5 /* ttkTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FD0AF786D5000797B5 /* ttkTheme.c */; }; - F96888200AF786D5000797B5 /* ttkTrace.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888000AF786D5000797B5 /* ttkTrace.c */; }; - F96888210AF786D5000797B5 /* ttkTrack.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888010AF786D5000797B5 /* ttkTrack.c */; }; - F96888220AF786D5000797B5 /* ttkTreeview.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888020AF786D5000797B5 /* ttkTreeview.c */; }; - F96888230AF786D5000797B5 /* ttkWidget.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888030AF786D5000797B5 /* ttkWidget.c */; }; - F96888850AF78938000797B5 /* ttkMacOSXTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888840AF78938000797B5 /* ttkMacOSXTheme.c */; }; - F96D456F08F272BB004A47F5 /* regcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED008F272A7004A47F5 /* regcomp.c */; }; - F96D457208F272BB004A47F5 /* regerror.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED308F272A7004A47F5 /* regerror.c */; }; - F96D457508F272BB004A47F5 /* regexec.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED608F272A7004A47F5 /* regexec.c */; }; - F96D457608F272BB004A47F5 /* regfree.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED708F272A7004A47F5 /* regfree.c */; }; - F96D457B08F272BB004A47F5 /* tclAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDC08F272A7004A47F5 /* tclAlloc.c */; settings = {COMPILER_FLAGS = "-DUSE_TCLALLOC=0"; }; }; - F96D457C08F272BB004A47F5 /* tclAsync.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDD08F272A7004A47F5 /* tclAsync.c */; }; - F96D457D08F272BB004A47F5 /* tclBasic.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDE08F272A7004A47F5 /* tclBasic.c */; }; - F96D457E08F272BC004A47F5 /* tclBinary.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDF08F272A7004A47F5 /* tclBinary.c */; }; - F96D457F08F272BC004A47F5 /* tclCkalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE008F272A7004A47F5 /* tclCkalloc.c */; }; - F96D458008F272BC004A47F5 /* tclClock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE108F272A7004A47F5 /* tclClock.c */; }; - F96D458108F272BC004A47F5 /* tclCmdAH.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE208F272A7004A47F5 /* tclCmdAH.c */; }; - F96D458208F272BC004A47F5 /* tclCmdIL.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE308F272A7004A47F5 /* tclCmdIL.c */; }; - F96D458308F272BC004A47F5 /* tclCmdMZ.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE408F272A7004A47F5 /* tclCmdMZ.c */; }; - F96D458408F272BC004A47F5 /* tclCompCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE508F272A7004A47F5 /* tclCompCmds.c */; }; - F96D458508F272BC004A47F5 /* tclCompExpr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE608F272A7004A47F5 /* tclCompExpr.c */; }; - F96D458608F272BC004A47F5 /* tclCompile.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE708F272A7004A47F5 /* tclCompile.c */; }; - F96D458808F272BC004A47F5 /* tclConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE908F272A7004A47F5 /* tclConfig.c */; }; - F96D458908F272BC004A47F5 /* tclDate.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEA08F272A7004A47F5 /* tclDate.c */; }; - F96D458B08F272BC004A47F5 /* tclDictObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEC08F272A7004A47F5 /* tclDictObj.c */; }; - F96D458C08F272BC004A47F5 /* tclEncoding.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EED08F272A7004A47F5 /* tclEncoding.c */; }; - F96D458D08F272BC004A47F5 /* tclEnv.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEE08F272A7004A47F5 /* tclEnv.c */; }; - F96D458E08F272BC004A47F5 /* tclEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEF08F272A7004A47F5 /* tclEvent.c */; }; - F96D458F08F272BC004A47F5 /* tclExecute.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF008F272A7004A47F5 /* tclExecute.c */; }; - F96D459008F272BC004A47F5 /* tclFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF108F272A7004A47F5 /* tclFCmd.c */; }; - F96D459108F272BC004A47F5 /* tclFileName.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF208F272A7004A47F5 /* tclFileName.c */; }; - F96D459308F272BC004A47F5 /* tclGet.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF408F272A7004A47F5 /* tclGet.c */; }; - F96D459508F272BC004A47F5 /* tclHash.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF608F272A7004A47F5 /* tclHash.c */; }; - F96D459608F272BC004A47F5 /* tclHistory.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF708F272A7004A47F5 /* tclHistory.c */; }; - F96D459708F272BC004A47F5 /* tclIndexObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF808F272A7004A47F5 /* tclIndexObj.c */; }; - F96D459B08F272BC004A47F5 /* tclInterp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EFC08F272A7004A47F5 /* tclInterp.c */; }; - F96D459D08F272BC004A47F5 /* tclIO.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EFE08F272A7004A47F5 /* tclIO.c */; }; - F96D459F08F272BC004A47F5 /* tclIOCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0008F272A7004A47F5 /* tclIOCmd.c */; }; - F96D45A008F272BC004A47F5 /* tclIOGT.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0108F272A7004A47F5 /* tclIOGT.c */; }; - F96D45A108F272BC004A47F5 /* tclIORChan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0208F272A7004A47F5 /* tclIORChan.c */; }; - F96D45A208F272BC004A47F5 /* tclIOSock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0308F272A7004A47F5 /* tclIOSock.c */; }; - F96D45A308F272BC004A47F5 /* tclIOUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0408F272A7004A47F5 /* tclIOUtil.c */; }; - F96D45A408F272BC004A47F5 /* tclLink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0508F272A7004A47F5 /* tclLink.c */; }; - F96D45A508F272BC004A47F5 /* tclListObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0608F272A7004A47F5 /* tclListObj.c */; }; - F96D45A608F272BC004A47F5 /* tclLiteral.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0708F272A7004A47F5 /* tclLiteral.c */; }; - F96D45A708F272BC004A47F5 /* tclLoad.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0808F272A7004A47F5 /* tclLoad.c */; }; - F96D45A908F272BC004A47F5 /* tclMain.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0A08F272A7004A47F5 /* tclMain.c */; }; - F96D45AA08F272BC004A47F5 /* tclNamesp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0B08F272A7004A47F5 /* tclNamesp.c */; }; - F96D45AB08F272BC004A47F5 /* tclNotify.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0C08F272A7004A47F5 /* tclNotify.c */; }; - F96D45AC08F272BC004A47F5 /* tclObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0D08F272A7004A47F5 /* tclObj.c */; }; - F96D45AD08F272BC004A47F5 /* tclPanic.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0E08F272A7004A47F5 /* tclPanic.c */; }; - F96D45AE08F272BC004A47F5 /* tclParse.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0F08F272A7004A47F5 /* tclParse.c */; }; - F96D45B008F272BC004A47F5 /* tclPathObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1108F272A7004A47F5 /* tclPathObj.c */; }; - F96D45B108F272BC004A47F5 /* tclPipe.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1208F272A7004A47F5 /* tclPipe.c */; }; - F96D45B208F272BC004A47F5 /* tclPkg.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1308F272A7004A47F5 /* tclPkg.c */; }; - F96D45B308F272BC004A47F5 /* tclPkgConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1408F272A7004A47F5 /* tclPkgConfig.c */; settings = {COMPILER_FLAGS = "-DCFG_INSTALL_LIBDIR=\\\"$(LIBDIR)\\\" -DCFG_INSTALL_BINDIR=\\\"$(BINDIR)\\\" -DCFG_INSTALL_SCRDIR=\\\"$(TCL_LIBRARY)\\\" -DCFG_INSTALL_INCDIR=\\\"$(INCLUDEDIR)\\\" -DCFG_INSTALL_DOCDIR=\\\"$(MANDIR)\\\" -DCFG_RUNTIME_LIBDIR=\\\"$(LIBDIR)\\\" -DCFG_RUNTIME_BINDIR=\\\"$(BINDIR)\\\" -DCFG_RUNTIME_SCRDIR=\\\"$(TCL_LIBRARY)\\\" -DCFG_RUNTIME_INCDIR=\\\"$(INCLUDEDIR)\\\" -DCFG_RUNTIME_DOCDIR=\\\"$(MANDIR)\\\""; }; }; - F96D45B608F272BC004A47F5 /* tclPosixStr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1708F272A7004A47F5 /* tclPosixStr.c */; }; - F96D45B708F272BC004A47F5 /* tclPreserve.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1808F272A7004A47F5 /* tclPreserve.c */; }; - F96D45B808F272BC004A47F5 /* tclProc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1908F272A7004A47F5 /* tclProc.c */; }; - F96D45B908F272BC004A47F5 /* tclRegexp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1A08F272A7004A47F5 /* tclRegexp.c */; }; - F96D45BB08F272BC004A47F5 /* tclResolve.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1C08F272A7004A47F5 /* tclResolve.c */; }; - F96D45BC08F272BC004A47F5 /* tclResult.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1D08F272A7004A47F5 /* tclResult.c */; }; - F96D45BD08F272BC004A47F5 /* tclScan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1E08F272A7004A47F5 /* tclScan.c */; }; - F96D45BE08F272BC004A47F5 /* tclStringObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1F08F272A7004A47F5 /* tclStringObj.c */; }; - F96D45C308F272BC004A47F5 /* tclStrToD.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2408F272A7004A47F5 /* tclStrToD.c */; }; - F96D45C408F272BC004A47F5 /* tclStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2508F272A7004A47F5 /* tclStubInit.c */; }; - F96D45C508F272BC004A47F5 /* tclStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2608F272A7004A47F5 /* tclStubLib.c */; }; - F96D45C908F272BC004A47F5 /* tclThread.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2A08F272A7004A47F5 /* tclThread.c */; }; - F96D45CA08F272BC004A47F5 /* tclThreadAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2B08F272A7004A47F5 /* tclThreadAlloc.c */; }; - F96D45CB08F272BC004A47F5 /* tclThreadJoin.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2C08F272A7004A47F5 /* tclThreadJoin.c */; }; - F96D45CC08F272BC004A47F5 /* tclThreadStorage.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2D08F272A7004A47F5 /* tclThreadStorage.c */; }; - F96D45CE08F272BC004A47F5 /* tclTimer.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2F08F272A7004A47F5 /* tclTimer.c */; }; - F96D45D008F272BC004A47F5 /* tclTomMathInterface.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3108F272A7004A47F5 /* tclTomMathInterface.c */; }; - F96D45D108F272BC004A47F5 /* tclTrace.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3208F272A7004A47F5 /* tclTrace.c */; }; - F96D45D308F272BC004A47F5 /* tclUtf.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3408F272A7004A47F5 /* tclUtf.c */; }; - F96D45D408F272BC004A47F5 /* tclUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3508F272A7004A47F5 /* tclUtil.c */; }; - F96D45D508F272BC004A47F5 /* tclVar.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3608F272A7004A47F5 /* tclVar.c */; }; - F96D48E208F272C3004A47F5 /* bn_fast_s_mp_mul_digs.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */; }; - F96D48E408F272C3004A47F5 /* bn_fast_s_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */; }; - F96D48E708F272C3004A47F5 /* bn_mp_add.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426908F272B3004A47F5 /* bn_mp_add.c */; }; - F96D48E808F272C3004A47F5 /* bn_mp_add_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */; }; - F96D48EB08F272C3004A47F5 /* bn_mp_clamp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426D08F272B3004A47F5 /* bn_mp_clamp.c */; }; - F96D48EC08F272C3004A47F5 /* bn_mp_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426E08F272B3004A47F5 /* bn_mp_clear.c */; }; - F96D48ED08F272C3004A47F5 /* bn_mp_clear_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426F08F272B3004A47F5 /* bn_mp_clear_multi.c */; }; - F96D48EE08F272C3004A47F5 /* bn_mp_cmp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427008F272B3004A47F5 /* bn_mp_cmp.c */; }; - F96D48F008F272C3004A47F5 /* bn_mp_cmp_mag.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427208F272B3004A47F5 /* bn_mp_cmp_mag.c */; }; - F96D48F208F272C3004A47F5 /* bn_mp_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427408F272B3004A47F5 /* bn_mp_copy.c */; }; - F96D48F308F272C3004A47F5 /* bn_mp_count_bits.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427508F272B3004A47F5 /* bn_mp_count_bits.c */; }; - F96D48F408F272C3004A47F5 /* bn_mp_div.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427608F272B3004A47F5 /* bn_mp_div.c */; }; - F96D48F508F272C3004A47F5 /* bn_mp_div_2.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427708F272B3004A47F5 /* bn_mp_div_2.c */; }; - F96D48F608F272C3004A47F5 /* bn_mp_div_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427808F272B3004A47F5 /* bn_mp_div_2d.c */; }; - F96D48F708F272C3004A47F5 /* bn_mp_div_3.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427908F272B3004A47F5 /* bn_mp_div_3.c */; }; - F96D48F808F272C3004A47F5 /* bn_mp_div_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427A08F272B3004A47F5 /* bn_mp_div_d.c */; }; - F96D48FC08F272C3004A47F5 /* bn_mp_exch.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427E08F272B3004A47F5 /* bn_mp_exch.c */; }; - F96D490508F272C3004A47F5 /* bn_mp_grow.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428708F272B3004A47F5 /* bn_mp_grow.c */; }; - F96D490608F272C3004A47F5 /* bn_mp_init.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428808F272B3004A47F5 /* bn_mp_init.c */; }; - F96D490708F272C3004A47F5 /* bn_mp_init_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428908F272B3004A47F5 /* bn_mp_init_copy.c */; }; - F96D490808F272C3004A47F5 /* bn_mp_init_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428A08F272B3004A47F5 /* bn_mp_init_multi.c */; }; - F96D490908F272C3004A47F5 /* bn_mp_init_set.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428B08F272B3004A47F5 /* bn_mp_init_set.c */; }; - F96D490B08F272C3004A47F5 /* bn_mp_init_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */; }; - F96D491008F272C3004A47F5 /* bn_mp_karatsuba_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */; }; - F96D491108F272C3004A47F5 /* bn_mp_karatsuba_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */; }; - F96D491308F272C3004A47F5 /* bn_mp_lshd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429508F272B3004A47F5 /* bn_mp_lshd.c */; }; - F96D491408F272C3004A47F5 /* bn_mp_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429608F272B3004A47F5 /* bn_mp_mod.c */; }; - F96D491508F272C3004A47F5 /* bn_mp_mod_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */; }; - F96D491A08F272C3004A47F5 /* bn_mp_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429C08F272B3004A47F5 /* bn_mp_mul.c */; }; - F96D491B08F272C3004A47F5 /* bn_mp_mul_2.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */; }; - F96D491C08F272C3004A47F5 /* bn_mp_mul_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */; }; - F96D491D08F272C3004A47F5 /* bn_mp_mul_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */; }; - F96D492908F272C3004A47F5 /* bn_mp_radix_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */; }; - F96D492A08F272C3004A47F5 /* bn_mp_radix_smap.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */; }; - F96D492C08F272C3004A47F5 /* bn_mp_read_radix.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */; }; - F96D493708F272C3004A47F5 /* bn_mp_rshd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */; }; - F96D493808F272C3004A47F5 /* bn_mp_set.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BA08F272B3004A47F5 /* bn_mp_set.c */; }; - F96D493C08F272C3004A47F5 /* bn_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */; }; - F96D493F08F272C3004A47F5 /* bn_mp_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C108F272B3004A47F5 /* bn_mp_sub.c */; }; - F96D494008F272C3004A47F5 /* bn_mp_sub_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */; }; - F96D494608F272C3004A47F5 /* bn_mp_toom_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C808F272B3004A47F5 /* bn_mp_toom_mul.c */; }; - F96D494708F272C3004A47F5 /* bn_mp_toom_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C908F272B3004A47F5 /* bn_mp_toom_sqr.c */; }; - F96D494908F272C3004A47F5 /* bn_mp_toradix_n.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */; }; - F96D494C08F272C3004A47F5 /* bn_mp_zero.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */; }; - F96D494E08F272C3004A47F5 /* bn_reverse.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D008F272B3004A47F5 /* bn_reverse.c */; }; - F96D494F08F272C3004A47F5 /* bn_s_mp_add.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */; }; - F96D495108F272C3004A47F5 /* bn_s_mp_mul_digs.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */; }; - F96D495308F272C3004A47F5 /* bn_s_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */; }; - F96D495408F272C3004A47F5 /* bn_s_mp_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */; }; - F96D495508F272C3004A47F5 /* bncore.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D708F272B3004A47F5 /* bncore.c */; }; - F96D49A908F272C4004A47F5 /* tclMacOSXBundle.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433908F272B5004A47F5 /* tclMacOSXBundle.c */; }; - F96D49AD08F272C4004A47F5 /* tclMacOSXFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433D08F272B5004A47F5 /* tclMacOSXFCmd.c */; }; - F96D49AE08F272C4004A47F5 /* tclMacOSXNotify.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433E08F272B5004A47F5 /* tclMacOSXNotify.c */; }; - F96D4AC608F272C9004A47F5 /* tclLoadDyld.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D445B08F272B9004A47F5 /* tclLoadDyld.c */; settings = {COMPILER_FLAGS = "-Wno-deprecated-declarations"; }; }; - F96D4ACA08F272C9004A47F5 /* tclUnixChan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D445F08F272B9004A47F5 /* tclUnixChan.c */; }; - F96D4ACB08F272C9004A47F5 /* tclUnixEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446008F272B9004A47F5 /* tclUnixEvent.c */; }; - F96D4ACC08F272C9004A47F5 /* tclUnixFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446108F272B9004A47F5 /* tclUnixFCmd.c */; }; - F96D4ACD08F272C9004A47F5 /* tclUnixFile.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446208F272B9004A47F5 /* tclUnixFile.c */; }; - F96D4ACE08F272C9004A47F5 /* tclUnixInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446308F272B9004A47F5 /* tclUnixInit.c */; settings = {COMPILER_FLAGS = "-DTCL_LIBRARY=\\\"$(TCL_LIBRARY)\\\" -DTCL_PACKAGE_PATH=\\\"$(TCL_PACKAGE_PATH)\\\""; }; }; - F96D4ACF08F272C9004A47F5 /* tclUnixNotfy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446408F272B9004A47F5 /* tclUnixNotfy.c */; }; - F96D4AD008F272C9004A47F5 /* tclUnixPipe.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446508F272B9004A47F5 /* tclUnixPipe.c */; }; - F96D4AD208F272CA004A47F5 /* tclUnixSock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446708F272B9004A47F5 /* tclUnixSock.c */; }; - F96D4AD408F272CA004A47F5 /* tclUnixThrd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446908F272B9004A47F5 /* tclUnixThrd.c */; }; - F96D4AD608F272CA004A47F5 /* tclUnixTime.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446B08F272B9004A47F5 /* tclUnixTime.c */; }; - F9C9CC000E84059800E00935 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C9CBFF0E84059800E00935 /* ApplicationServices.framework */; }; - F9DD99BD0F07DF850018B2E4 /* tkImgPNG.c in Sources */ = {isa = PBXBuildFile; fileRef = F9DD99BC0F07DF850018B2E4 /* tkImgPNG.c */; }; - F9DD99BE0F07DF850018B2E4 /* tkImgPNG.c in Sources */ = {isa = PBXBuildFile; fileRef = F9DD99BC0F07DF850018B2E4 /* tkImgPNG.c */; }; - F9E61D28090A481F002B3151 /* bn_mp_cmp_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427108F272B3004A47F5 /* bn_mp_cmp_d.c */; }; - F9E61D29090A486C002B3151 /* bn_mp_neg.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42A208F272B3004A47F5 /* bn_mp_neg.c */; }; - F9E61D2A090A4891002B3151 /* bn_mp_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */; }; - F9E61D2B090A48A4002B3151 /* bn_mp_and.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426C08F272B3004A47F5 /* bn_mp_and.c */; }; - F9E61D2C090A48AC002B3151 /* bn_mp_expt_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */; }; - F9E61D2D090A48BB002B3151 /* bn_mp_xor.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */; }; - F9E61D2E090A48BF002B3151 /* bn_mp_or.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42A308F272B3004A47F5 /* bn_mp_or.c */; }; - F9E61D2F090A48C7002B3151 /* bn_mp_shrink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */; }; - F9E61D30090A48E2002B3151 /* bn_mp_to_unsigned_bin_n.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C708F272B3004A47F5 /* bn_mp_to_unsigned_bin_n.c */; }; - F9E61D31090A48F9002B3151 /* bn_mp_to_unsigned_bin.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C608F272B3004A47F5 /* bn_mp_to_unsigned_bin.c */; }; - F9E61D32090A48FA002B3151 /* bn_mp_unsigned_bin_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */; }; - F9F4415E0C8BAE6F00BCCD67 /* tclDTrace.d in Sources */ = {isa = PBXBuildFile; fileRef = F9F4415D0C8BAE6F00BCCD67 /* tclDTrace.d */; }; - F9FC77B80AB29E9100B7077D /* tclUnixCompat.c in Sources */ = {isa = PBXBuildFile; fileRef = F9FC77B70AB29E9100B7077D /* tclUnixCompat.c */; }; - F9FD30BC0CC1AD070073837D /* regcomp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED008F272A7004A47F5 /* regcomp.c */; }; - F9FD30BD0CC1AD070073837D /* regerror.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED308F272A7004A47F5 /* regerror.c */; }; - F9FD30BE0CC1AD070073837D /* regexec.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED608F272A7004A47F5 /* regexec.c */; }; - F9FD30BF0CC1AD070073837D /* regfree.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3ED708F272A7004A47F5 /* regfree.c */; }; - F9FD30C00CC1AD070073837D /* tclAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDC08F272A7004A47F5 /* tclAlloc.c */; settings = {COMPILER_FLAGS = "-DUSE_TCLALLOC=0"; }; }; - F9FD30C10CC1AD070073837D /* tclAsync.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDD08F272A7004A47F5 /* tclAsync.c */; }; - F9FD30C20CC1AD070073837D /* tclBasic.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDE08F272A7004A47F5 /* tclBasic.c */; }; - F9FD30C30CC1AD070073837D /* tclBinary.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EDF08F272A7004A47F5 /* tclBinary.c */; }; - F9FD30C40CC1AD070073837D /* tclCkalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE008F272A7004A47F5 /* tclCkalloc.c */; }; - F9FD30C50CC1AD070073837D /* tclClock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE108F272A7004A47F5 /* tclClock.c */; }; - F9FD30C60CC1AD070073837D /* tclCmdAH.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE208F272A7004A47F5 /* tclCmdAH.c */; }; - F9FD30C70CC1AD070073837D /* tclCmdIL.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE308F272A7004A47F5 /* tclCmdIL.c */; }; - F9FD30C80CC1AD070073837D /* tclCmdMZ.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE408F272A7004A47F5 /* tclCmdMZ.c */; }; - F9FD30C90CC1AD070073837D /* tclCompCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE508F272A7004A47F5 /* tclCompCmds.c */; }; - F9FD30CA0CC1AD070073837D /* tclCompExpr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE608F272A7004A47F5 /* tclCompExpr.c */; }; - F9FD30CB0CC1AD070073837D /* tclCompile.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE708F272A7004A47F5 /* tclCompile.c */; }; - F9FD30CC0CC1AD070073837D /* tclConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EE908F272A7004A47F5 /* tclConfig.c */; }; - F9FD30CD0CC1AD070073837D /* tclDate.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEA08F272A7004A47F5 /* tclDate.c */; }; - F9FD30CE0CC1AD070073837D /* tclDictObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEC08F272A7004A47F5 /* tclDictObj.c */; }; - F9FD30CF0CC1AD070073837D /* tclEncoding.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EED08F272A7004A47F5 /* tclEncoding.c */; }; - F9FD30D00CC1AD070073837D /* tclEnv.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEE08F272A7004A47F5 /* tclEnv.c */; }; - F9FD30D10CC1AD070073837D /* tclEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EEF08F272A7004A47F5 /* tclEvent.c */; }; - F9FD30D20CC1AD070073837D /* tclExecute.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF008F272A7004A47F5 /* tclExecute.c */; }; - F9FD30D30CC1AD070073837D /* tclFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF108F272A7004A47F5 /* tclFCmd.c */; }; - F9FD30D40CC1AD070073837D /* tclFileName.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF208F272A7004A47F5 /* tclFileName.c */; }; - F9FD30D50CC1AD070073837D /* tclGet.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF408F272A7004A47F5 /* tclGet.c */; }; - F9FD30D60CC1AD070073837D /* tclHash.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF608F272A7004A47F5 /* tclHash.c */; }; - F9FD30D70CC1AD070073837D /* tclHistory.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF708F272A7004A47F5 /* tclHistory.c */; }; - F9FD30D80CC1AD070073837D /* tclIndexObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EF808F272A7004A47F5 /* tclIndexObj.c */; }; - F9FD30D90CC1AD070073837D /* tclInterp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EFC08F272A7004A47F5 /* tclInterp.c */; }; - F9FD30DA0CC1AD070073837D /* tclIO.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3EFE08F272A7004A47F5 /* tclIO.c */; }; - F9FD30DB0CC1AD070073837D /* tclIOCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0008F272A7004A47F5 /* tclIOCmd.c */; }; - F9FD30DC0CC1AD070073837D /* tclIOGT.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0108F272A7004A47F5 /* tclIOGT.c */; }; - F9FD30DD0CC1AD070073837D /* tclIORChan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0208F272A7004A47F5 /* tclIORChan.c */; }; - F9FD30DE0CC1AD070073837D /* tclIOSock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0308F272A7004A47F5 /* tclIOSock.c */; }; - F9FD30DF0CC1AD070073837D /* tclIOUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0408F272A7004A47F5 /* tclIOUtil.c */; }; - F9FD30E00CC1AD070073837D /* tclLink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0508F272A7004A47F5 /* tclLink.c */; }; - F9FD30E10CC1AD070073837D /* tclListObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0608F272A7004A47F5 /* tclListObj.c */; }; - F9FD30E20CC1AD070073837D /* tclLiteral.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0708F272A7004A47F5 /* tclLiteral.c */; }; - F9FD30E30CC1AD070073837D /* tclLoad.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0808F272A7004A47F5 /* tclLoad.c */; }; - F9FD30E40CC1AD070073837D /* tclMain.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0A08F272A7004A47F5 /* tclMain.c */; }; - F9FD30E50CC1AD070073837D /* tclNamesp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0B08F272A7004A47F5 /* tclNamesp.c */; }; - F9FD30E60CC1AD070073837D /* tclNotify.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0C08F272A7004A47F5 /* tclNotify.c */; }; - F9FD30E70CC1AD070073837D /* tclObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0D08F272A7004A47F5 /* tclObj.c */; }; - F9FD30E80CC1AD070073837D /* tclPanic.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0E08F272A7004A47F5 /* tclPanic.c */; }; - F9FD30E90CC1AD070073837D /* tclParse.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F0F08F272A7004A47F5 /* tclParse.c */; }; - F9FD30EA0CC1AD070073837D /* tclPathObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1108F272A7004A47F5 /* tclPathObj.c */; }; - F9FD30EB0CC1AD070073837D /* tclPipe.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1208F272A7004A47F5 /* tclPipe.c */; }; - F9FD30EC0CC1AD070073837D /* tclPkg.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1308F272A7004A47F5 /* tclPkg.c */; }; - F9FD30ED0CC1AD070073837D /* tclPkgConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1408F272A7004A47F5 /* tclPkgConfig.c */; settings = {COMPILER_FLAGS = "-DCFG_INSTALL_LIBDIR=\\\"$(LIBDIR)\\\" -DCFG_INSTALL_BINDIR=\\\"$(BINDIR)\\\" -DCFG_INSTALL_SCRDIR=\\\"$(TCL_LIBRARY)\\\" -DCFG_INSTALL_INCDIR=\\\"$(INCLUDEDIR)\\\" -DCFG_INSTALL_DOCDIR=\\\"$(MANDIR)\\\" -DCFG_RUNTIME_LIBDIR=\\\"$(LIBDIR)\\\" -DCFG_RUNTIME_BINDIR=\\\"$(BINDIR)\\\" -DCFG_RUNTIME_SCRDIR=\\\"$(TCL_LIBRARY)\\\" -DCFG_RUNTIME_INCDIR=\\\"$(INCLUDEDIR)\\\" -DCFG_RUNTIME_DOCDIR=\\\"$(MANDIR)\\\""; }; }; - F9FD30EE0CC1AD070073837D /* tclPosixStr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1708F272A7004A47F5 /* tclPosixStr.c */; }; - F9FD30EF0CC1AD070073837D /* tclPreserve.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1808F272A7004A47F5 /* tclPreserve.c */; }; - F9FD30F00CC1AD070073837D /* tclProc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1908F272A7004A47F5 /* tclProc.c */; }; - F9FD30F10CC1AD070073837D /* tclRegexp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1A08F272A7004A47F5 /* tclRegexp.c */; }; - F9FD30F20CC1AD070073837D /* tclResolve.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1C08F272A7004A47F5 /* tclResolve.c */; }; - F9FD30F30CC1AD070073837D /* tclResult.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1D08F272A7004A47F5 /* tclResult.c */; }; - F9FD30F40CC1AD070073837D /* tclScan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1E08F272A7004A47F5 /* tclScan.c */; }; - F9FD30F50CC1AD070073837D /* tclStringObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F1F08F272A7004A47F5 /* tclStringObj.c */; }; - F9FD30F60CC1AD070073837D /* tclStrToD.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2408F272A7004A47F5 /* tclStrToD.c */; }; - F9FD30F70CC1AD070073837D /* tclStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2508F272A7004A47F5 /* tclStubInit.c */; }; - F9FD30F80CC1AD070073837D /* tclStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2608F272A7004A47F5 /* tclStubLib.c */; }; - F9FD30F90CC1AD070073837D /* tclThread.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2A08F272A7004A47F5 /* tclThread.c */; }; - F9FD30FA0CC1AD070073837D /* tclThreadAlloc.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2B08F272A7004A47F5 /* tclThreadAlloc.c */; }; - F9FD30FB0CC1AD070073837D /* tclThreadJoin.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2C08F272A7004A47F5 /* tclThreadJoin.c */; }; - F9FD30FC0CC1AD070073837D /* tclThreadStorage.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2D08F272A7004A47F5 /* tclThreadStorage.c */; }; - F9FD30FD0CC1AD070073837D /* tclTimer.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F2F08F272A7004A47F5 /* tclTimer.c */; }; - F9FD30FE0CC1AD070073837D /* tclTomMathInterface.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3108F272A7004A47F5 /* tclTomMathInterface.c */; }; - F9FD30FF0CC1AD070073837D /* tclTrace.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3208F272A7004A47F5 /* tclTrace.c */; }; - F9FD31000CC1AD070073837D /* tclUtf.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3408F272A7004A47F5 /* tclUtf.c */; }; - F9FD31010CC1AD070073837D /* tclUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3508F272A7004A47F5 /* tclUtil.c */; }; - F9FD31020CC1AD070073837D /* tclVar.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D3F3608F272A7004A47F5 /* tclVar.c */; }; - F9FD31030CC1AD070073837D /* bn_fast_s_mp_mul_digs.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */; }; - F9FD31040CC1AD070073837D /* bn_fast_s_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */; }; - F9FD31050CC1AD070073837D /* bn_mp_add.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426908F272B3004A47F5 /* bn_mp_add.c */; }; - F9FD31060CC1AD070073837D /* bn_mp_add_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */; }; - F9FD31070CC1AD070073837D /* bn_mp_and.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426C08F272B3004A47F5 /* bn_mp_and.c */; }; - F9FD31080CC1AD070073837D /* bn_mp_clamp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426D08F272B3004A47F5 /* bn_mp_clamp.c */; }; - F9FD31090CC1AD070073837D /* bn_mp_clear.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426E08F272B3004A47F5 /* bn_mp_clear.c */; }; - F9FD310A0CC1AD070073837D /* bn_mp_clear_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D426F08F272B3004A47F5 /* bn_mp_clear_multi.c */; }; - F9FD310B0CC1AD070073837D /* bn_mp_cmp.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427008F272B3004A47F5 /* bn_mp_cmp.c */; }; - F9FD310C0CC1AD070073837D /* bn_mp_cmp_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427108F272B3004A47F5 /* bn_mp_cmp_d.c */; }; - F9FD310D0CC1AD070073837D /* bn_mp_cmp_mag.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427208F272B3004A47F5 /* bn_mp_cmp_mag.c */; }; - F9FD310E0CC1AD070073837D /* bn_mp_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427408F272B3004A47F5 /* bn_mp_copy.c */; }; - F9FD310F0CC1AD070073837D /* bn_mp_count_bits.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427508F272B3004A47F5 /* bn_mp_count_bits.c */; }; - F9FD31100CC1AD070073837D /* bn_mp_div.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427608F272B3004A47F5 /* bn_mp_div.c */; }; - F9FD31110CC1AD070073837D /* bn_mp_div_2.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427708F272B3004A47F5 /* bn_mp_div_2.c */; }; - F9FD31120CC1AD070073837D /* bn_mp_div_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427808F272B3004A47F5 /* bn_mp_div_2d.c */; }; - F9FD31130CC1AD070073837D /* bn_mp_div_3.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427908F272B3004A47F5 /* bn_mp_div_3.c */; }; - F9FD31140CC1AD070073837D /* bn_mp_div_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427A08F272B3004A47F5 /* bn_mp_div_d.c */; }; - F9FD31150CC1AD070073837D /* bn_mp_exch.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427E08F272B3004A47F5 /* bn_mp_exch.c */; }; - F9FD31160CC1AD070073837D /* bn_mp_expt_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */; }; - F9FD31170CC1AD070073837D /* bn_mp_grow.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428708F272B3004A47F5 /* bn_mp_grow.c */; }; - F9FD31180CC1AD070073837D /* bn_mp_init.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428808F272B3004A47F5 /* bn_mp_init.c */; }; - F9FD31190CC1AD070073837D /* bn_mp_init_copy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428908F272B3004A47F5 /* bn_mp_init_copy.c */; }; - F9FD311A0CC1AD070073837D /* bn_mp_init_multi.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428A08F272B3004A47F5 /* bn_mp_init_multi.c */; }; - F9FD311B0CC1AD070073837D /* bn_mp_init_set.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428B08F272B3004A47F5 /* bn_mp_init_set.c */; }; - F9FD311C0CC1AD070073837D /* bn_mp_init_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */; }; - F9FD311D0CC1AD070073837D /* bn_mp_karatsuba_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */; }; - F9FD311E0CC1AD070073837D /* bn_mp_karatsuba_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */; }; - F9FD311F0CC1AD070073837D /* bn_mp_lshd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429508F272B3004A47F5 /* bn_mp_lshd.c */; }; - F9FD31200CC1AD070073837D /* bn_mp_mod.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429608F272B3004A47F5 /* bn_mp_mod.c */; }; - F9FD31210CC1AD070073837D /* bn_mp_mod_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */; }; - F9FD31220CC1AD070073837D /* bn_mp_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429C08F272B3004A47F5 /* bn_mp_mul.c */; }; - F9FD31230CC1AD070073837D /* bn_mp_mul_2.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */; }; - F9FD31240CC1AD070073837D /* bn_mp_mul_2d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */; }; - F9FD31250CC1AD070073837D /* bn_mp_mul_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */; }; - F9FD31260CC1AD070073837D /* bn_mp_neg.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42A208F272B3004A47F5 /* bn_mp_neg.c */; }; - F9FD31270CC1AD070073837D /* bn_mp_or.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42A308F272B3004A47F5 /* bn_mp_or.c */; }; - F9FD31280CC1AD070073837D /* bn_mp_radix_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */; }; - F9FD31290CC1AD070073837D /* bn_mp_radix_smap.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */; }; - F9FD312A0CC1AD070073837D /* bn_mp_read_radix.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */; }; - F9FD312B0CC1AD070073837D /* bn_mp_rshd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */; }; - F9FD312C0CC1AD070073837D /* bn_mp_set.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BA08F272B3004A47F5 /* bn_mp_set.c */; }; - F9FD312D0CC1AD070073837D /* bn_mp_shrink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */; }; - F9FD312E0CC1AD070073837D /* bn_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */; }; - F9FD312F0CC1AD070073837D /* bn_mp_sqrt.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */; }; - F9FD31300CC1AD070073837D /* bn_mp_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C108F272B3004A47F5 /* bn_mp_sub.c */; }; - F9FD31310CC1AD070073837D /* bn_mp_sub_d.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */; }; - F9FD31320CC1AD070073837D /* bn_mp_to_unsigned_bin_n.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C708F272B3004A47F5 /* bn_mp_to_unsigned_bin_n.c */; }; - F9FD31330CC1AD070073837D /* bn_mp_to_unsigned_bin.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C608F272B3004A47F5 /* bn_mp_to_unsigned_bin.c */; }; - F9FD31340CC1AD070073837D /* bn_mp_toom_mul.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C808F272B3004A47F5 /* bn_mp_toom_mul.c */; }; - F9FD31350CC1AD070073837D /* bn_mp_toom_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42C908F272B3004A47F5 /* bn_mp_toom_sqr.c */; }; - F9FD31360CC1AD070073837D /* bn_mp_toradix_n.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */; }; - F9FD31370CC1AD070073837D /* bn_mp_unsigned_bin_size.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */; }; - F9FD31380CC1AD070073837D /* bn_mp_xor.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */; }; - F9FD31390CC1AD070073837D /* bn_mp_zero.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */; }; - F9FD313A0CC1AD070073837D /* bn_reverse.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D008F272B3004A47F5 /* bn_reverse.c */; }; - F9FD313B0CC1AD070073837D /* bn_s_mp_add.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */; }; - F9FD313C0CC1AD070073837D /* bn_s_mp_mul_digs.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */; }; - F9FD313D0CC1AD070073837D /* bn_s_mp_sqr.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */; }; - F9FD313E0CC1AD070073837D /* bn_s_mp_sub.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */; }; - F9FD313F0CC1AD070073837D /* bncore.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D42D708F272B3004A47F5 /* bncore.c */; }; - F9FD31400CC1AD070073837D /* tclMacOSXBundle.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433908F272B5004A47F5 /* tclMacOSXBundle.c */; }; - F9FD31410CC1AD070073837D /* tclMacOSXFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433D08F272B5004A47F5 /* tclMacOSXFCmd.c */; }; - F9FD31420CC1AD070073837D /* tclMacOSXNotify.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D433E08F272B5004A47F5 /* tclMacOSXNotify.c */; }; - F9FD31430CC1AD070073837D /* tclLoadDyld.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D445B08F272B9004A47F5 /* tclLoadDyld.c */; settings = {COMPILER_FLAGS = "-Wno-deprecated-declarations"; }; }; - F9FD31440CC1AD070073837D /* tclUnixChan.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D445F08F272B9004A47F5 /* tclUnixChan.c */; }; - F9FD31450CC1AD070073837D /* tclUnixCompat.c in Sources */ = {isa = PBXBuildFile; fileRef = F9FC77B70AB29E9100B7077D /* tclUnixCompat.c */; }; - F9FD31460CC1AD070073837D /* tclUnixEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446008F272B9004A47F5 /* tclUnixEvent.c */; }; - F9FD31470CC1AD070073837D /* tclUnixFCmd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446108F272B9004A47F5 /* tclUnixFCmd.c */; }; - F9FD31480CC1AD070073837D /* tclUnixFile.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446208F272B9004A47F5 /* tclUnixFile.c */; }; - F9FD31490CC1AD070073837D /* tclUnixInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446308F272B9004A47F5 /* tclUnixInit.c */; settings = {COMPILER_FLAGS = "-DTCL_LIBRARY=\\\"$(TCL_LIBRARY)\\\" -DTCL_PACKAGE_PATH=\\\"$(TCL_PACKAGE_PATH)\\\""; }; }; - F9FD314A0CC1AD070073837D /* tclUnixNotfy.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446408F272B9004A47F5 /* tclUnixNotfy.c */; }; - F9FD314B0CC1AD070073837D /* tclUnixPipe.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446508F272B9004A47F5 /* tclUnixPipe.c */; }; - F9FD314C0CC1AD070073837D /* tclUnixSock.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446708F272B9004A47F5 /* tclUnixSock.c */; }; - F9FD314D0CC1AD070073837D /* tclUnixThrd.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446908F272B9004A47F5 /* tclUnixThrd.c */; }; - F9FD314E0CC1AD070073837D /* tclUnixTime.c in Sources */ = {isa = PBXBuildFile; fileRef = F96D446B08F272B9004A47F5 /* tclUnixTime.c */; }; - F9FD314F0CC1AD070073837D /* tk3d.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAC08F27A39005CB29B /* tk3d.c */; }; - F9FD31500CC1AD070073837D /* tkArgv.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAE08F27A39005CB29B /* tkArgv.c */; }; - F9FD31510CC1AD070073837D /* tkAtom.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAAF08F27A39005CB29B /* tkAtom.c */; }; - F9FD31520CC1AD070073837D /* tkBind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB008F27A39005CB29B /* tkBind.c */; }; - F9FD31530CC1AD070073837D /* tkBitmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB108F27A39005CB29B /* tkBitmap.c */; }; - F9FD31540CC1AD070073837D /* tkButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB208F27A39005CB29B /* tkButton.c */; }; - F9FD31550CC1AD070073837D /* tkCanvArc.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB408F27A39005CB29B /* tkCanvArc.c */; }; - F9FD31560CC1AD070073837D /* tkCanvas.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB508F27A39005CB29B /* tkCanvas.c */; }; - F9FD31570CC1AD070073837D /* tkCanvBmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB708F27A39005CB29B /* tkCanvBmap.c */; }; - F9FD31580CC1AD070073837D /* tkCanvImg.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB808F27A39005CB29B /* tkCanvImg.c */; }; - F9FD31590CC1AD070073837D /* tkCanvLine.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAB908F27A39005CB29B /* tkCanvLine.c */; }; - F9FD315A0CC1AD070073837D /* tkCanvPoly.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABA08F27A39005CB29B /* tkCanvPoly.c */; }; - F9FD315B0CC1AD070073837D /* tkCanvPs.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABB08F27A39005CB29B /* tkCanvPs.c */; }; - F9FD315C0CC1AD070073837D /* tkCanvText.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABD08F27A39005CB29B /* tkCanvText.c */; }; - F9FD315D0CC1AD070073837D /* tkCanvUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABE08F27A39005CB29B /* tkCanvUtil.c */; }; - F9FD315E0CC1AD070073837D /* tkCanvWind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BABF08F27A39005CB29B /* tkCanvWind.c */; }; - F9FD315F0CC1AD070073837D /* tkClipboard.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC008F27A39005CB29B /* tkClipboard.c */; }; - F9FD31600CC1AD070073837D /* tkCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC108F27A39005CB29B /* tkCmds.c */; }; - F9FD31610CC1AD070073837D /* tkColor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC208F27A39005CB29B /* tkColor.c */; }; - F9FD31620CC1AD070073837D /* tkConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC408F27A39005CB29B /* tkConfig.c */; }; - F9FD31630CC1AD070073837D /* tkConsole.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC508F27A39005CB29B /* tkConsole.c */; }; - F9FD31640CC1AD070073837D /* tkCursor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC608F27A39005CB29B /* tkCursor.c */; }; - F9FD31650CC1AD070073837D /* tkEntry.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAC808F27A39005CB29B /* tkEntry.c */; }; - F9FD31660CC1AD070073837D /* tkError.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACA08F27A39005CB29B /* tkError.c */; }; - F9FD31670CC1AD070073837D /* tkEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACB08F27A39005CB29B /* tkEvent.c */; }; - F9FD31680CC1AD070073837D /* tkFileFilter.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACC08F27A39005CB29B /* tkFileFilter.c */; }; - F9FD31690CC1AD070073837D /* tkFocus.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACE08F27A39005CB29B /* tkFocus.c */; }; - F9FD316A0CC1AD070073837D /* tkFont.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BACF08F27A39005CB29B /* tkFont.c */; }; - F9FD316B0CC1AD070073837D /* tkFrame.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD108F27A39005CB29B /* tkFrame.c */; }; - F9FD316C0CC1AD070073837D /* tkGC.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD208F27A39005CB29B /* tkGC.c */; }; - F9FD316D0CC1AD070073837D /* tkGeometry.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD308F27A39005CB29B /* tkGeometry.c */; }; - F9FD316E0CC1AD070073837D /* tkGet.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD408F27A39005CB29B /* tkGet.c */; }; - F9FD316F0CC1AD070073837D /* tkGrab.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD508F27A39005CB29B /* tkGrab.c */; }; - F9FD31700CC1AD070073837D /* tkGrid.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD608F27A39005CB29B /* tkGrid.c */; }; - F9FD31710CC1AD070073837D /* tkImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD708F27A39005CB29B /* tkImage.c */; }; - F9FD31720CC1AD070073837D /* tkImgBmap.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD808F27A39005CB29B /* tkImgBmap.c */; }; - F9FD31730CC1AD070073837D /* tkImgGIF.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAD908F27A39005CB29B /* tkImgGIF.c */; }; - F9FD31740CC1AD070073837D /* tkImgPhoto.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BADA08F27A39005CB29B /* tkImgPhoto.c */; }; - F9FD31750CC1AD070073837D /* tkImgPPM.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BADB08F27A39005CB29B /* tkImgPPM.c */; }; - F9FD31760CC1AD070073837D /* tkListbox.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE408F27A39005CB29B /* tkListbox.c */; }; - F9FD31770CC1AD070073837D /* tkMacWinMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE508F27A39005CB29B /* tkMacWinMenu.c */; }; - F9FD31780CC1AD070073837D /* tkMain.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE608F27A39005CB29B /* tkMain.c */; }; - F9FD31790CC1AD070073837D /* tkMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE708F27A39005CB29B /* tkMenu.c */; }; - F9FD317A0CC1AD070073837D /* tkMenubutton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAE908F27A39005CB29B /* tkMenubutton.c */; }; - F9FD317B0CC1AD070073837D /* tkMenuDraw.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEB08F27A39005CB29B /* tkMenuDraw.c */; }; - F9FD317C0CC1AD070073837D /* tkMessage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEC08F27A39005CB29B /* tkMessage.c */; }; - F9FD317D0CC1AD070073837D /* tkObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAED08F27A39005CB29B /* tkObj.c */; }; - F9FD317E0CC1AD070073837D /* tkOldConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEE08F27A39005CB29B /* tkOldConfig.c */; }; - F9FD317F0CC1AD070073837D /* tkOldTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFE08F27A39005CB29B /* tkOldTest.c */; }; - F9FD31800CC1AD070073837D /* tkOption.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEF08F27A39005CB29B /* tkOption.c */; }; - F9FD31810CC1AD070073837D /* tkPack.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF008F27A39005CB29B /* tkPack.c */; }; - F9FD31820CC1AD070073837D /* tkPanedWindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF108F27A39005CB29B /* tkPanedWindow.c */; }; - F9FD31830CC1AD070073837D /* tkPlace.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF208F27A39005CB29B /* tkPlace.c */; }; - F9FD31850CC1AD070073837D /* tkRectOval.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF608F27A39005CB29B /* tkRectOval.c */; }; - F9FD31860CC1AD070073837D /* tkScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF708F27A39005CB29B /* tkScale.c */; }; - F9FD31870CC1AD070073837D /* tkScrollbar.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF908F27A39005CB29B /* tkScrollbar.c */; }; - F9FD31880CC1AD070073837D /* tkSelect.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFB08F27A39005CB29B /* tkSelect.c */; }; - F9FD31890CC1AD070073837D /* tkSquare.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFD08F27A39005CB29B /* tkSquare.c */; }; - F9FD318A0CC1AD070073837D /* tkStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFF08F27A39005CB29B /* tkStubInit.c */; }; - F9FD318B0CC1AD070073837D /* tkStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0008F27A39005CB29B /* tkStubLib.c */; }; - F9FD318C0CC1AD070073837D /* tkStyle.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0108F27A39005CB29B /* tkStyle.c */; }; - F9FD318D0CC1AD070073837D /* tkTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0208F27A39005CB29B /* tkTest.c */; }; - F9FD318E0CC1AD070073837D /* tkText.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0308F27A39005CB29B /* tkText.c */; }; - F9FD318F0CC1AD070073837D /* tkTextBTree.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0508F27A39005CB29B /* tkTextBTree.c */; }; - F9FD31900CC1AD070073837D /* tkTextDisp.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0608F27A39005CB29B /* tkTextDisp.c */; }; - F9FD31910CC1AD070073837D /* tkTextImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0808F27A39005CB29B /* tkTextImage.c */; }; - F9FD31920CC1AD070073837D /* tkTextIndex.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0908F27A39005CB29B /* tkTextIndex.c */; }; - F9FD31930CC1AD070073837D /* tkTextMark.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0A08F27A39005CB29B /* tkTextMark.c */; }; - F9FD31940CC1AD070073837D /* tkTextTag.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0B08F27A39005CB29B /* tkTextTag.c */; }; - F9FD31950CC1AD070073837D /* tkTextWind.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0C08F27A39005CB29B /* tkTextWind.c */; }; - F9FD31960CC1AD070073837D /* tkTrig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0D08F27A39005CB29B /* tkTrig.c */; }; - F9FD31970CC1AD070073837D /* tkUndo.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB0E08F27A39005CB29B /* tkUndo.c */; }; - F9FD31980CC1AD070073837D /* tkUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1008F27A39005CB29B /* tkUtil.c */; }; - F9FD31990CC1AD070073837D /* tkVisual.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1108F27A39005CB29B /* tkVisual.c */; }; - F9FD319A0CC1AD070073837D /* tkWindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BB1208F27A39005CB29B /* tkWindow.c */; }; - F9FD319B0CC1AD070073837D /* ttkBlink.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E10AF786D5000797B5 /* ttkBlink.c */; }; - F9FD319C0CC1AD070073837D /* ttkButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E20AF786D5000797B5 /* ttkButton.c */; }; - F9FD319D0CC1AD070073837D /* ttkCache.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E30AF786D5000797B5 /* ttkCache.c */; }; - F9FD319E0CC1AD070073837D /* ttkClamTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E40AF786D5000797B5 /* ttkClamTheme.c */; }; - F9FD319F0CC1AD070073837D /* ttkClassicTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E50AF786D5000797B5 /* ttkClassicTheme.c */; }; - F9FD31A00CC1AD070073837D /* ttkDefaultTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E70AF786D5000797B5 /* ttkDefaultTheme.c */; }; - F9FD31A10CC1AD070073837D /* ttkElements.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E80AF786D5000797B5 /* ttkElements.c */; }; - F9FD31A20CC1AD070073837D /* ttkEntry.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887E90AF786D5000797B5 /* ttkEntry.c */; }; - F9FD31A30CC1AD070073837D /* ttkFrame.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EA0AF786D5000797B5 /* ttkFrame.c */; }; - F9FD31A40CC1AD070073837D /* ttkImage.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EB0AF786D5000797B5 /* ttkImage.c */; }; - F9FD31A50CC1AD070073837D /* ttkInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EC0AF786D5000797B5 /* ttkInit.c */; }; - F9FD31A60CC1AD070073837D /* ttkLabel.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887ED0AF786D5000797B5 /* ttkLabel.c */; }; - F9FD31A70CC1AD070073837D /* ttkLayout.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EE0AF786D5000797B5 /* ttkLayout.c */; }; - F9FD31A80CC1AD070073837D /* ttkManager.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887EF0AF786D5000797B5 /* ttkManager.c */; }; - F9FD31A90CC1AD070073837D /* ttkNotebook.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F10AF786D5000797B5 /* ttkNotebook.c */; }; - F9FD31AA0CC1AD070073837D /* ttkPanedwindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F20AF786D5000797B5 /* ttkPanedwindow.c */; }; - F9FD31AB0CC1AD070073837D /* ttkProgress.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F30AF786D5000797B5 /* ttkProgress.c */; }; - F9FD31AC0CC1AD070073837D /* ttkScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F40AF786D5000797B5 /* ttkScale.c */; }; - F9FD31AD0CC1AD070073837D /* ttkScroll.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F50AF786D5000797B5 /* ttkScroll.c */; }; - F9FD31AE0CC1AD070073837D /* ttkScrollbar.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F60AF786D5000797B5 /* ttkScrollbar.c */; }; - F9FD31AF0CC1AD070073837D /* ttkSeparator.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F70AF786D5000797B5 /* ttkSeparator.c */; }; - F9FD31B00CC1AD070073837D /* ttkSquare.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F80AF786D5000797B5 /* ttkSquare.c */; }; - F9FD31B10CC1AD070073837D /* ttkState.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887F90AF786D5000797B5 /* ttkState.c */; }; - F9FD31B20CC1AD070073837D /* ttkStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FA0AF786D5000797B5 /* ttkStubInit.c */; }; - F9FD31B30CC1AD070073837D /* ttkStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FB0AF786D5000797B5 /* ttkStubLib.c */; }; - F9FD31B40CC1AD070073837D /* ttkTagSet.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FC0AF786D5000797B5 /* ttkTagSet.c */; }; - F9FD31B50CC1AD070073837D /* ttkTheme.c in Sources */ = {isa = PBXBuildFile; fileRef = F96887FD0AF786D5000797B5 /* ttkTheme.c */; }; - F9FD31B60CC1AD070073837D /* ttkTrace.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888000AF786D5000797B5 /* ttkTrace.c */; }; - F9FD31B70CC1AD070073837D /* ttkTrack.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888010AF786D5000797B5 /* ttkTrack.c */; }; - F9FD31B80CC1AD070073837D /* ttkTreeview.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888020AF786D5000797B5 /* ttkTreeview.c */; }; - F9FD31B90CC1AD070073837D /* ttkWidget.c in Sources */ = {isa = PBXBuildFile; fileRef = F96888030AF786D5000797B5 /* ttkWidget.c */; }; - F9FD31DA0CC1AD070073837D /* tkAppInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7508F27A3D005CB29B /* tkAppInit.c */; settings = {COMPILER_FLAGS = "-DTK_TEST"; }; }; - F9FD31DB0CC1AD070073837D /* tkUnix3d.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7908F27A3D005CB29B /* tkUnix3d.c */; }; - F9FD31DC0CC1AD070073837D /* tkUnixScale.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8C08F27A3D005CB29B /* tkUnixScale.c */; }; - F9FD31E20CC1AD070073837D /* tclDTrace.d in Sources */ = {isa = PBXBuildFile; fileRef = F9F4415D0C8BAE6F00BCCD67 /* tclDTrace.d */; }; - F9FD31E40CC1AD070073837D /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F966C07408F2820D005CB29B /* CoreFoundation.framework */; }; - F9FD31F80CC1ADB70073837D /* tkUnixCursor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7D08F27A3D005CB29B /* tkUnixCursor.c */; }; - F9FD31FA0CC1ADB70073837D /* tkUnixKey.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8708F27A3D005CB29B /* tkUnixKey.c */; }; - F9FD31FB0CC1ADB70073837D /* tkUnixXId.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC9108F27A3D005CB29B /* tkUnixXId.c */; }; - F9FD31FC0CC1ADB70073837D /* tkUnixInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8508F27A3D005CB29B /* tkUnixInit.c */; }; - F9FD31FD0CC1ADB70073837D /* tkUnixEmbed.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8108F27A3D005CB29B /* tkUnixEmbed.c */; }; - F9FD31FE0CC1ADB70073837D /* tkUnixSend.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8F08F27A3D005CB29B /* tkUnixSend.c */; }; - F9FD31FF0CC1ADB70073837D /* tkUnixFocus.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8308F27A3D005CB29B /* tkUnixFocus.c */; }; - F9FD32000CC1ADB70073837D /* tkUnixWm.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC9008F27A3D005CB29B /* tkUnixWm.c */; }; - F9FD32010CC1ADB70073837D /* tkUnixRFont.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8B08F27A3D005CB29B /* tkUnixRFont.c */; }; - F9FD32020CC1ADB70073837D /* tkUnix.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7808F27A3D005CB29B /* tkUnix.c */; }; - F9FD32030CC1ADB70073837D /* tkUnixMenu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8808F27A3D005CB29B /* tkUnixMenu.c */; }; - F9FD32040CC1ADB70073837D /* tkUnixConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7C08F27A3D005CB29B /* tkUnixConfig.c */; }; - F9FD32050CC1ADB70073837D /* tkUnixDraw.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8008F27A3D005CB29B /* tkUnixDraw.c */; }; - F9FD32070CC1ADB70073837D /* tkUnixSelect.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8E08F27A3D005CB29B /* tkUnixSelect.c */; }; - F9FD32080CC1ADB70073837D /* tkUnixEvent.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8208F27A3D005CB29B /* tkUnixEvent.c */; }; - F9FD32090CC1ADB70073837D /* tkUnixColor.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7B08F27A3D005CB29B /* tkUnixColor.c */; }; - F9FD320A0CC1ADB70073837D /* tkUnixButton.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7A08F27A3D005CB29B /* tkUnixButton.c */; }; - F9FD320B0CC1ADB70073837D /* tkUnixMenubu.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8908F27A3D005CB29B /* tkUnixMenubu.c */; }; - F9FD320C0CC1ADB70073837D /* tkUnixScrlbr.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC8D08F27A3D005CB29B /* tkUnixScrlbr.c */; }; - F9FD32170CC1AF170073837D /* libX11.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD32140CC1AF170073837D /* libX11.dylib */; }; - F9FD32180CC1AF170073837D /* libXext.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD32150CC1AF170073837D /* libXext.dylib */; }; - F9FD32190CC1AF170073837D /* libXss.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD32160CC1AF170073837D /* libXss.dylib */; }; - F9FD349B0CC1BB0D0073837D /* libfreetype.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD34990CC1BB0D0073837D /* libfreetype.dylib */; }; - F9FD349C0CC1BB0D0073837D /* libXft.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD349A0CC1BB0D0073837D /* libXft.dylib */; }; - F9FD34C40CC1BBD70073837D /* libfontconfig.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F9FD34C30CC1BBD70073837D /* libfontconfig.dylib */; }; - F9FFAF1D0DFDDB26007F8A6A /* tclIORTrans.c in Sources */ = {isa = PBXBuildFile; fileRef = F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */; }; - F9FFAF1F0DFDDB2F007F8A6A /* tclOO.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B20DF1F75400E04F67 /* tclOO.c */; }; - F9FFAF200DFDDB32007F8A6A /* tclOOBasic.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B60DF1F76100E04F67 /* tclOOBasic.c */; }; - F9FFAF210DFDDB32007F8A6A /* tclOOCall.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599B80DF1F76600E04F67 /* tclOOCall.c */; }; - F9FFAF220DFDDB34007F8A6A /* tclOODefineCmds.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599BB0DF1F77000E04F67 /* tclOODefineCmds.c */; }; - F9FFAF230DFDDB35007F8A6A /* tclOOInfo.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599BD0DF1F77400E04F67 /* tclOOInfo.c */; }; - F9FFAF240DFDDB36007F8A6A /* tclOOMethod.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C10DF1F78300E04F67 /* tclOOMethod.c */; }; - F9FFAF250DFDDB37007F8A6A /* tclOOStubInit.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C30DF1F78800E04F67 /* tclOOStubInit.c */; }; - F9FFAF260DFDDB38007F8A6A /* tclOOStubLib.c in Sources */ = {isa = PBXBuildFile; fileRef = F93599C50DF1F78D00E04F67 /* tclOOStubLib.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 8DD76FB20486AB0100D96B5E /* tktest */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tktest; sourceTree = BUILT_PRODUCTS_DIR; }; - F9099B8A0CC67D30005A9580 /* textpeer.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textpeer.tcl; sourceTree = "<group>"; }; - F9099B8B0CC67D3E005A9580 /* ttkbut.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttkbut.tcl; sourceTree = "<group>"; }; - F9152B080EAF8A5000CD5C7B /* tkBusy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkBusy.c; sourceTree = "<group>"; }; - F91543270EF201A90032D1E8 /* fontchoose.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fontchoose.tcl; sourceTree = "<group>"; }; - F915432A0EF201CF0032D1E8 /* zlib.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = zlib.test; sourceTree = "<group>"; }; - F915432D0EF201EE0032D1E8 /* zlib.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = zlib.n; sourceTree = "<group>"; }; - F9183E640EFC80CD0030B814 /* throw.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = throw.n; sourceTree = "<group>"; }; - F9183E650EFC80D70030B814 /* try.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = try.n; sourceTree = "<group>"; }; - F9183E6A0EFC81560030B814 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F9183E8F0EFC817B0030B814 /* tdbc */ = {isa = PBXFileReference; lastKnownFileType = folder; path = tdbc; sourceTree = "<group>"; }; - F91DC23C0E44C51B002CB8D1 /* nre.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = nre.test; sourceTree = "<group>"; }; - F91E62260C1AE686006C9D96 /* Tclsh-Info.plist.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "Tclsh-Info.plist.in"; sourceTree = "<group>"; }; - F92240290D7C620F005EC715 /* knightstour.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = knightstour.tcl; sourceTree = "<group>"; }; - F92D7F100DE777240033A13A /* tsdPerf.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tsdPerf.tcl; sourceTree = "<group>"; }; - F92EE8BE0E62F846001A6E80 /* tkImgPhInstance.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgPhInstance.c; sourceTree = "<group>"; }; - F93599B20DF1F75400E04F67 /* tclOO.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOO.c; sourceTree = "<group>"; }; - F93599B40DF1F75900E04F67 /* tclOO.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclOO.decls; sourceTree = "<group>"; }; - F93599B50DF1F75D00E04F67 /* tclOO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclOO.h; sourceTree = "<group>"; }; - F93599B60DF1F76100E04F67 /* tclOOBasic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOBasic.c; sourceTree = "<group>"; }; - F93599B80DF1F76600E04F67 /* tclOOCall.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOCall.c; sourceTree = "<group>"; }; - F93599BA0DF1F76A00E04F67 /* tclOODecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclOODecls.h; sourceTree = "<group>"; }; - F93599BB0DF1F77000E04F67 /* tclOODefineCmds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOODefineCmds.c; sourceTree = "<group>"; }; - F93599BD0DF1F77400E04F67 /* tclOOInfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOInfo.c; sourceTree = "<group>"; }; - F93599BF0DF1F77900E04F67 /* tclOOInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclOOInt.h; sourceTree = "<group>"; }; - F93599C00DF1F77D00E04F67 /* tclOOIntDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclOOIntDecls.h; sourceTree = "<group>"; }; - F93599C10DF1F78300E04F67 /* tclOOMethod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOMethod.c; sourceTree = "<group>"; }; - F93599C30DF1F78800E04F67 /* tclOOStubInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOStubInit.c; sourceTree = "<group>"; }; - F93599C50DF1F78D00E04F67 /* tclOOStubLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclOOStubLib.c; sourceTree = "<group>"; }; - F93599C80DF1F81900E04F67 /* oo.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = oo.test; sourceTree = "<group>"; }; - F93599CF0DF1F87F00E04F67 /* Class.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Class.3; sourceTree = "<group>"; }; - F93599D00DF1F89E00E04F67 /* class.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = class.n; sourceTree = "<group>"; }; - F93599D20DF1F8DF00E04F67 /* copy.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = copy.n; sourceTree = "<group>"; }; - F93599D30DF1F8F500E04F67 /* define.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = define.n; sourceTree = "<group>"; }; - F93599D40DF1F91900E04F67 /* Method.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Method.3; sourceTree = "<group>"; }; - F93599D50DF1F93700E04F67 /* my.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = my.n; sourceTree = "<group>"; }; - F93599D60DF1F95000E04F67 /* next.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = next.n; sourceTree = "<group>"; }; - F93599D70DF1F96800E04F67 /* object.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = object.n; sourceTree = "<group>"; }; - F93599D80DF1F98300E04F67 /* self.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = self.n; sourceTree = "<group>"; }; - F936FCD70CCD984500716967 /* ttkprogress.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttkprogress.tcl; sourceTree = "<group>"; }; - F936FCD80CCD984600716967 /* tree.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tree.tcl; sourceTree = "<group>"; }; - F936FCD90CCD984600716967 /* toolbar.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = toolbar.tcl; sourceTree = "<group>"; }; - F936FCDA0CCD984600716967 /* ttknote.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttknote.tcl; sourceTree = "<group>"; }; - F936FCDB0CCD984600716967 /* combo.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = combo.tcl; sourceTree = "<group>"; }; - F93E5EFD09CF8711008FA367 /* tkMacOSXFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXFont.h; sourceTree = "<group>"; }; - F94523A10E6FC2AC00C1D987 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; - F946FB8B0FBE3AED00CD6495 /* itcl */ = {isa = PBXFileReference; lastKnownFileType = folder; path = itcl; sourceTree = "<group>"; }; - F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIORTrans.c; sourceTree = "<group>"; }; - F95D8D4B0F1715610006B020 /* Tk.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Tk.icns; sourceTree = "<group>"; }; - F95D8D4C0F1715610006B020 /* Tk.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Tk.tiff; sourceTree = "<group>"; }; - F95FAFF90B34F1130072E431 /* macOSXLoad.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = macOSXLoad.test; sourceTree = "<group>"; }; - F962F7C60DADC26200648DB8 /* vsapi.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = vsapi.test; sourceTree = "<group>"; }; - F96437C90EF0D4B2003F468E /* tclZlib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclZlib.c; sourceTree = "<group>"; }; - F96437E60EF0D652003F468E /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = /usr/lib/libz.dylib; sourceTree = "<absolute>"; }; - F966BA0408F27A37005CB29B /* error.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = error.xbm; sourceTree = "<group>"; }; - F966BA0508F27A37005CB29B /* gray12.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = gray12.xbm; sourceTree = "<group>"; }; - F966BA0608F27A37005CB29B /* gray25.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = gray25.xbm; sourceTree = "<group>"; }; - F966BA0708F27A37005CB29B /* gray50.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = gray50.xbm; sourceTree = "<group>"; }; - F966BA0808F27A37005CB29B /* gray75.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = gray75.xbm; sourceTree = "<group>"; }; - F966BA0908F27A37005CB29B /* hourglass.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = hourglass.xbm; sourceTree = "<group>"; }; - F966BA0A08F27A37005CB29B /* info.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = info.xbm; sourceTree = "<group>"; }; - F966BA0B08F27A37005CB29B /* questhead.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = questhead.xbm; sourceTree = "<group>"; }; - F966BA0C08F27A37005CB29B /* question.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = question.xbm; sourceTree = "<group>"; }; - F966BA0D08F27A37005CB29B /* warning.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = warning.xbm; sourceTree = "<group>"; }; - F966BA0E08F27A37005CB29B /* ChangeLog */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = ChangeLog; sourceTree = "<group>"; }; - F966BA0F08F27A37005CB29B /* changes */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes; sourceTree = "<group>"; }; - F966BA1108F27A37005CB29B /* 3DBorder.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = 3DBorder.3; sourceTree = "<group>"; }; - F966BA1208F27A37005CB29B /* AddOption.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AddOption.3; sourceTree = "<group>"; }; - F966BA1308F27A37005CB29B /* bell.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bell.n; sourceTree = "<group>"; }; - F966BA1408F27A37005CB29B /* bind.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bind.n; sourceTree = "<group>"; }; - F966BA1508F27A37005CB29B /* BindTable.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = BindTable.3; sourceTree = "<group>"; }; - F966BA1608F27A37005CB29B /* bindtags.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bindtags.n; sourceTree = "<group>"; }; - F966BA1708F27A37005CB29B /* bitmap.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bitmap.n; sourceTree = "<group>"; }; - F966BA1808F27A37005CB29B /* button.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = button.n; sourceTree = "<group>"; }; - F966BA1908F27A37005CB29B /* canvas.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = canvas.n; sourceTree = "<group>"; }; - F966BA1A08F27A37005CB29B /* CanvPsY.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CanvPsY.3; sourceTree = "<group>"; }; - F966BA1B08F27A37005CB29B /* CanvTkwin.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CanvTkwin.3; sourceTree = "<group>"; }; - F966BA1C08F27A37005CB29B /* CanvTxtInfo.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CanvTxtInfo.3; sourceTree = "<group>"; }; - F966BA1D08F27A37005CB29B /* checkbutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = checkbutton.n; sourceTree = "<group>"; }; - F966BA1E08F27A37005CB29B /* chooseColor.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = chooseColor.n; sourceTree = "<group>"; }; - F966BA1F08F27A37005CB29B /* chooseDirectory.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = chooseDirectory.n; sourceTree = "<group>"; }; - F966BA2008F27A37005CB29B /* Clipboard.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Clipboard.3; sourceTree = "<group>"; }; - F966BA2108F27A37005CB29B /* clipboard.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = clipboard.n; sourceTree = "<group>"; }; - F966BA2208F27A37005CB29B /* ClrSelect.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ClrSelect.3; sourceTree = "<group>"; }; - F966BA2308F27A37005CB29B /* colors.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = colors.n; sourceTree = "<group>"; }; - F966BA2408F27A37005CB29B /* ConfigWidg.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ConfigWidg.3; sourceTree = "<group>"; }; - F966BA2508F27A37005CB29B /* ConfigWind.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ConfigWind.3; sourceTree = "<group>"; }; - F966BA2608F27A37005CB29B /* console.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = console.n; sourceTree = "<group>"; }; - F966BA2708F27A37005CB29B /* CoordToWin.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CoordToWin.3; sourceTree = "<group>"; }; - F966BA2808F27A37005CB29B /* CrtCmHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtCmHdlr.3; sourceTree = "<group>"; }; - F966BA2908F27A37005CB29B /* CrtErrHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtErrHdlr.3; sourceTree = "<group>"; }; - F966BA2A08F27A37005CB29B /* CrtGenHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtGenHdlr.3; sourceTree = "<group>"; }; - F966BA2B08F27A37005CB29B /* CrtImgType.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtImgType.3; sourceTree = "<group>"; }; - F966BA2C08F27A37005CB29B /* CrtItemType.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtItemType.3; sourceTree = "<group>"; }; - F966BA2D08F27A37005CB29B /* CrtPhImgFmt.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtPhImgFmt.3; sourceTree = "<group>"; }; - F966BA2E08F27A37005CB29B /* CrtSelHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtSelHdlr.3; sourceTree = "<group>"; }; - F966BA2F08F27A37005CB29B /* CrtWindow.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtWindow.3; sourceTree = "<group>"; }; - F966BA3008F27A37005CB29B /* cursors.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = cursors.n; sourceTree = "<group>"; }; - F966BA3108F27A37005CB29B /* DeleteImg.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DeleteImg.3; sourceTree = "<group>"; }; - F966BA3208F27A37005CB29B /* destroy.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = destroy.n; sourceTree = "<group>"; }; - F966BA3308F27A37005CB29B /* dialog.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = dialog.n; sourceTree = "<group>"; }; - F966BA3408F27A37005CB29B /* DrawFocHlt.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DrawFocHlt.3; sourceTree = "<group>"; }; - F966BA3508F27A37005CB29B /* entry.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = entry.n; sourceTree = "<group>"; }; - F966BA3608F27A37005CB29B /* event.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = event.n; sourceTree = "<group>"; }; - F966BA3708F27A37005CB29B /* EventHndlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = EventHndlr.3; sourceTree = "<group>"; }; - F966BA3808F27A37005CB29B /* FindPhoto.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = FindPhoto.3; sourceTree = "<group>"; }; - F966BA3908F27A37005CB29B /* focus.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = focus.n; sourceTree = "<group>"; }; - F966BA3A08F27A37005CB29B /* focusNext.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = focusNext.n; sourceTree = "<group>"; }; - F966BA3B08F27A37005CB29B /* font.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = font.n; sourceTree = "<group>"; }; - F966BA3C08F27A37005CB29B /* FontId.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = FontId.3; sourceTree = "<group>"; }; - F966BA3D08F27A37005CB29B /* frame.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = frame.n; sourceTree = "<group>"; }; - F966BA3E08F27A37005CB29B /* FreeXId.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = FreeXId.3; sourceTree = "<group>"; }; - F966BA3F08F27A37005CB29B /* GeomReq.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GeomReq.3; sourceTree = "<group>"; }; - F966BA4008F27A37005CB29B /* GetAnchor.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetAnchor.3; sourceTree = "<group>"; }; - F966BA4108F27A37005CB29B /* GetBitmap.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetBitmap.3; sourceTree = "<group>"; }; - F966BA4208F27A37005CB29B /* GetCapStyl.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetCapStyl.3; sourceTree = "<group>"; }; - F966BA4308F27A37005CB29B /* GetClrmap.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetClrmap.3; sourceTree = "<group>"; }; - F966BA4408F27A37005CB29B /* GetColor.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetColor.3; sourceTree = "<group>"; }; - F966BA4508F27A37005CB29B /* GetCursor.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetCursor.3; sourceTree = "<group>"; }; - F966BA4608F27A37005CB29B /* GetDash.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetDash.3; sourceTree = "<group>"; }; - F966BA4708F27A37005CB29B /* GetFont.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetFont.3; sourceTree = "<group>"; }; - F966BA4808F27A37005CB29B /* GetGC.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetGC.3; sourceTree = "<group>"; }; - F966BA4908F27A37005CB29B /* GetHINSTANCE.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetHINSTANCE.3; sourceTree = "<group>"; }; - F966BA4A08F27A37005CB29B /* GetHWND.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetHWND.3; sourceTree = "<group>"; }; - F966BA4B08F27A37005CB29B /* GetImage.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetImage.3; sourceTree = "<group>"; }; - F966BA4C08F27A37005CB29B /* GetJoinStl.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetJoinStl.3; sourceTree = "<group>"; }; - F966BA4D08F27A37005CB29B /* GetJustify.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetJustify.3; sourceTree = "<group>"; }; - F966BA4E08F27A37005CB29B /* getOpenFile.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = getOpenFile.n; sourceTree = "<group>"; }; - F966BA4F08F27A37005CB29B /* GetOption.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetOption.3; sourceTree = "<group>"; }; - F966BA5008F27A38005CB29B /* GetPixels.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetPixels.3; sourceTree = "<group>"; }; - F966BA5108F27A38005CB29B /* GetPixmap.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetPixmap.3; sourceTree = "<group>"; }; - F966BA5208F27A38005CB29B /* GetRelief.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetRelief.3; sourceTree = "<group>"; }; - F966BA5308F27A38005CB29B /* GetRootCrd.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetRootCrd.3; sourceTree = "<group>"; }; - F966BA5408F27A38005CB29B /* GetScroll.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetScroll.3; sourceTree = "<group>"; }; - F966BA5508F27A38005CB29B /* GetSelect.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetSelect.3; sourceTree = "<group>"; }; - F966BA5608F27A38005CB29B /* GetUid.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetUid.3; sourceTree = "<group>"; }; - F966BA5708F27A38005CB29B /* GetVisual.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetVisual.3; sourceTree = "<group>"; }; - F966BA5808F27A38005CB29B /* GetVRoot.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetVRoot.3; sourceTree = "<group>"; }; - F966BA5908F27A38005CB29B /* Grab.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Grab.3; sourceTree = "<group>"; }; - F966BA5A08F27A38005CB29B /* grab.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = grab.n; sourceTree = "<group>"; }; - F966BA5B08F27A38005CB29B /* grid.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = grid.n; sourceTree = "<group>"; }; - F966BA5C08F27A38005CB29B /* HandleEvent.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = HandleEvent.3; sourceTree = "<group>"; }; - F966BA5D08F27A38005CB29B /* HWNDToWindow.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = HWNDToWindow.3; sourceTree = "<group>"; }; - F966BA5E08F27A38005CB29B /* IdToWindow.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = IdToWindow.3; sourceTree = "<group>"; }; - F966BA5F08F27A38005CB29B /* image.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = image.n; sourceTree = "<group>"; }; - F966BA6008F27A38005CB29B /* ImgChanged.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ImgChanged.3; sourceTree = "<group>"; }; - F966BA6108F27A38005CB29B /* Inactive.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Inactive.3; sourceTree = "<group>"; }; - F966BA6208F27A38005CB29B /* InternAtom.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = InternAtom.3; sourceTree = "<group>"; }; - F966BA6308F27A38005CB29B /* keysyms.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = keysyms.n; sourceTree = "<group>"; }; - F966BA6408F27A38005CB29B /* label.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = label.n; sourceTree = "<group>"; }; - F966BA6508F27A38005CB29B /* labelframe.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = labelframe.n; sourceTree = "<group>"; }; - F966BA6608F27A38005CB29B /* listbox.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = listbox.n; sourceTree = "<group>"; }; - F966BA6708F27A38005CB29B /* loadTk.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = loadTk.n; sourceTree = "<group>"; }; - F966BA6808F27A38005CB29B /* lower.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lower.n; sourceTree = "<group>"; }; - F966BA6908F27A38005CB29B /* MainLoop.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MainLoop.3; sourceTree = "<group>"; }; - F966BA6A08F27A38005CB29B /* MaintGeom.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MaintGeom.3; sourceTree = "<group>"; }; - F966BA6B08F27A38005CB29B /* MainWin.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MainWin.3; sourceTree = "<group>"; }; - F966BA6D08F27A38005CB29B /* ManageGeom.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ManageGeom.3; sourceTree = "<group>"; }; - F966BA6E08F27A38005CB29B /* MapWindow.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MapWindow.3; sourceTree = "<group>"; }; - F966BA6F08F27A38005CB29B /* MeasureChar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MeasureChar.3; sourceTree = "<group>"; }; - F966BA7008F27A38005CB29B /* menu.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menu.n; sourceTree = "<group>"; }; - F966BA7108F27A38005CB29B /* menubar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menubar.n; sourceTree = "<group>"; }; - F966BA7208F27A38005CB29B /* menubutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menubutton.n; sourceTree = "<group>"; }; - F966BA7308F27A38005CB29B /* message.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = message.n; sourceTree = "<group>"; }; - F966BA7408F27A38005CB29B /* messageBox.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = messageBox.n; sourceTree = "<group>"; }; - F966BA7508F27A38005CB29B /* MoveToplev.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MoveToplev.3; sourceTree = "<group>"; }; - F966BA7608F27A38005CB29B /* Name.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Name.3; sourceTree = "<group>"; }; - F966BA7708F27A38005CB29B /* NameOfImg.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = NameOfImg.3; sourceTree = "<group>"; }; - F966BA7808F27A38005CB29B /* option.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = option.n; sourceTree = "<group>"; }; - F966BA7908F27A38005CB29B /* optionMenu.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = optionMenu.n; sourceTree = "<group>"; }; - F966BA7A08F27A38005CB29B /* options.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = options.n; sourceTree = "<group>"; }; - F966BA7B08F27A38005CB29B /* OwnSelect.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = OwnSelect.3; sourceTree = "<group>"; }; - F966BA7C08F27A38005CB29B /* pack-old.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = "pack-old.n"; sourceTree = "<group>"; }; - F966BA7D08F27A38005CB29B /* pack.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = pack.n; sourceTree = "<group>"; }; - F966BA7E08F27A38005CB29B /* palette.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = palette.n; sourceTree = "<group>"; }; - F966BA7F08F27A38005CB29B /* panedwindow.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = panedwindow.n; sourceTree = "<group>"; }; - F966BA8008F27A38005CB29B /* ParseArgv.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ParseArgv.3; sourceTree = "<group>"; }; - F966BA8108F27A38005CB29B /* photo.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = photo.n; sourceTree = "<group>"; }; - F966BA8208F27A38005CB29B /* place.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = place.n; sourceTree = "<group>"; }; - F966BA8308F27A38005CB29B /* popup.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = popup.n; sourceTree = "<group>"; }; - F966BA8408F27A38005CB29B /* QWinEvent.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = QWinEvent.3; sourceTree = "<group>"; }; - F966BA8508F27A38005CB29B /* radiobutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = radiobutton.n; sourceTree = "<group>"; }; - F966BA8608F27A38005CB29B /* raise.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = raise.n; sourceTree = "<group>"; }; - F966BA8708F27A38005CB29B /* Restack.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Restack.3; sourceTree = "<group>"; }; - F966BA8808F27A38005CB29B /* RestrictEv.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = RestrictEv.3; sourceTree = "<group>"; }; - F966BA8908F27A38005CB29B /* scale.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = scale.n; sourceTree = "<group>"; }; - F966BA8A08F27A38005CB29B /* scrollbar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = scrollbar.n; sourceTree = "<group>"; }; - F966BA8B08F27A38005CB29B /* selection.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = selection.n; sourceTree = "<group>"; }; - F966BA8C08F27A38005CB29B /* send.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = send.n; sourceTree = "<group>"; }; - F966BA8D08F27A38005CB29B /* SetAppName.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetAppName.3; sourceTree = "<group>"; }; - F966BA8E08F27A38005CB29B /* SetCaret.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetCaret.3; sourceTree = "<group>"; }; - F966BA8F08F27A38005CB29B /* SetClass.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetClass.3; sourceTree = "<group>"; }; - F966BA9008F27A38005CB29B /* SetClassProcs.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetClassProcs.3; sourceTree = "<group>"; }; - F966BA9108F27A38005CB29B /* SetGrid.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetGrid.3; sourceTree = "<group>"; }; - F966BA9208F27A38005CB29B /* SetOptions.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetOptions.3; sourceTree = "<group>"; }; - F966BA9308F27A38005CB29B /* SetVisual.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetVisual.3; sourceTree = "<group>"; }; - F966BA9408F27A38005CB29B /* spinbox.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = spinbox.n; sourceTree = "<group>"; }; - F966BA9508F27A38005CB29B /* StrictMotif.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = StrictMotif.3; sourceTree = "<group>"; }; - F966BA9608F27A38005CB29B /* text.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = text.n; sourceTree = "<group>"; }; - F966BA9708F27A38005CB29B /* TextLayout.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TextLayout.3; sourceTree = "<group>"; }; - F966BA9808F27A38005CB29B /* tk.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tk.n; sourceTree = "<group>"; }; - F966BA9A08F27A38005CB29B /* Tk_Init.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Tk_Init.3; sourceTree = "<group>"; }; - F966BA9B08F27A38005CB29B /* Tk_Main.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Tk_Main.3; sourceTree = "<group>"; }; - F966BA9C08F27A38005CB29B /* tkerror.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tkerror.n; sourceTree = "<group>"; }; - F966BA9D08F27A38005CB29B /* TkInitStubs.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TkInitStubs.3; sourceTree = "<group>"; }; - F966BA9E08F27A38005CB29B /* tkvars.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tkvars.n; sourceTree = "<group>"; }; - F966BA9F08F27A38005CB29B /* tkwait.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tkwait.n; sourceTree = "<group>"; }; - F966BAA008F27A38005CB29B /* toplevel.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = toplevel.n; sourceTree = "<group>"; }; - F966BAA108F27A38005CB29B /* WindowId.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = WindowId.3; sourceTree = "<group>"; }; - F966BAA208F27A38005CB29B /* winfo.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = winfo.n; sourceTree = "<group>"; }; - F966BAA308F27A38005CB29B /* wish.1 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = wish.1; sourceTree = "<group>"; }; - F966BAA408F27A38005CB29B /* wm.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = wm.n; sourceTree = "<group>"; }; - F966BAA608F27A38005CB29B /* default.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = default.h; sourceTree = "<group>"; }; - F966BAA708F27A38005CB29B /* ks_names.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ks_names.h; sourceTree = "<group>"; }; - F966BAA908F27A39005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BAAA08F27A39005CB29B /* tk.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tk.decls; sourceTree = "<group>"; }; - F966BAAB08F27A39005CB29B /* tk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tk.h; sourceTree = "<group>"; }; - F966BAAC08F27A39005CB29B /* tk3d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tk3d.c; sourceTree = "<group>"; }; - F966BAAD08F27A39005CB29B /* tk3d.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tk3d.h; sourceTree = "<group>"; }; - F966BAAE08F27A39005CB29B /* tkArgv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkArgv.c; sourceTree = "<group>"; }; - F966BAAF08F27A39005CB29B /* tkAtom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkAtom.c; sourceTree = "<group>"; }; - F966BAB008F27A39005CB29B /* tkBind.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkBind.c; sourceTree = "<group>"; }; - F966BAB108F27A39005CB29B /* tkBitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkBitmap.c; sourceTree = "<group>"; }; - F966BAB208F27A39005CB29B /* tkButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkButton.c; sourceTree = "<group>"; }; - F966BAB308F27A39005CB29B /* tkButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkButton.h; sourceTree = "<group>"; }; - F966BAB408F27A39005CB29B /* tkCanvArc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvArc.c; sourceTree = "<group>"; }; - F966BAB508F27A39005CB29B /* tkCanvas.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvas.c; sourceTree = "<group>"; }; - F966BAB608F27A39005CB29B /* tkCanvas.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkCanvas.h; sourceTree = "<group>"; }; - F966BAB708F27A39005CB29B /* tkCanvBmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvBmap.c; sourceTree = "<group>"; }; - F966BAB808F27A39005CB29B /* tkCanvImg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvImg.c; sourceTree = "<group>"; }; - F966BAB908F27A39005CB29B /* tkCanvLine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvLine.c; sourceTree = "<group>"; }; - F966BABA08F27A39005CB29B /* tkCanvPoly.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvPoly.c; sourceTree = "<group>"; }; - F966BABB08F27A39005CB29B /* tkCanvPs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvPs.c; sourceTree = "<group>"; }; - F966BABD08F27A39005CB29B /* tkCanvText.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvText.c; sourceTree = "<group>"; }; - F966BABE08F27A39005CB29B /* tkCanvUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvUtil.c; sourceTree = "<group>"; }; - F966BABF08F27A39005CB29B /* tkCanvWind.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCanvWind.c; sourceTree = "<group>"; }; - F966BAC008F27A39005CB29B /* tkClipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkClipboard.c; sourceTree = "<group>"; }; - F966BAC108F27A39005CB29B /* tkCmds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCmds.c; sourceTree = "<group>"; }; - F966BAC208F27A39005CB29B /* tkColor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkColor.c; sourceTree = "<group>"; }; - F966BAC308F27A39005CB29B /* tkColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkColor.h; sourceTree = "<group>"; }; - F966BAC408F27A39005CB29B /* tkConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkConfig.c; sourceTree = "<group>"; }; - F966BAC508F27A39005CB29B /* tkConsole.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkConsole.c; sourceTree = "<group>"; }; - F966BAC608F27A39005CB29B /* tkCursor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkCursor.c; sourceTree = "<group>"; }; - F966BAC708F27A39005CB29B /* tkDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkDecls.h; sourceTree = "<group>"; }; - F966BAC808F27A39005CB29B /* tkEntry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkEntry.c; sourceTree = "<group>"; }; - F966BAC908F27A39005CB29B /* tkEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkEntry.h; sourceTree = "<group>"; }; - F966BACA08F27A39005CB29B /* tkError.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkError.c; sourceTree = "<group>"; }; - F966BACB08F27A39005CB29B /* tkEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkEvent.c; sourceTree = "<group>"; }; - F966BACC08F27A39005CB29B /* tkFileFilter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkFileFilter.c; sourceTree = "<group>"; }; - F966BACD08F27A39005CB29B /* tkFileFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkFileFilter.h; sourceTree = "<group>"; }; - F966BACE08F27A39005CB29B /* tkFocus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkFocus.c; sourceTree = "<group>"; }; - F966BACF08F27A39005CB29B /* tkFont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkFont.c; sourceTree = "<group>"; }; - F966BAD008F27A39005CB29B /* tkFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkFont.h; sourceTree = "<group>"; }; - F966BAD108F27A39005CB29B /* tkFrame.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkFrame.c; sourceTree = "<group>"; }; - F966BAD208F27A39005CB29B /* tkGC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkGC.c; sourceTree = "<group>"; }; - F966BAD308F27A39005CB29B /* tkGeometry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkGeometry.c; sourceTree = "<group>"; }; - F966BAD408F27A39005CB29B /* tkGet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkGet.c; sourceTree = "<group>"; }; - F966BAD508F27A39005CB29B /* tkGrab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkGrab.c; sourceTree = "<group>"; }; - F966BAD608F27A39005CB29B /* tkGrid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkGrid.c; sourceTree = "<group>"; }; - F966BAD708F27A39005CB29B /* tkImage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImage.c; sourceTree = "<group>"; }; - F966BAD808F27A39005CB29B /* tkImgBmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgBmap.c; sourceTree = "<group>"; }; - F966BAD908F27A39005CB29B /* tkImgGIF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgGIF.c; sourceTree = "<group>"; }; - F966BADA08F27A39005CB29B /* tkImgPhoto.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgPhoto.c; sourceTree = "<group>"; }; - F966BADB08F27A39005CB29B /* tkImgPPM.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgPPM.c; sourceTree = "<group>"; }; - F966BADC08F27A39005CB29B /* tkImgUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgUtil.c; sourceTree = "<group>"; }; - F966BADE08F27A39005CB29B /* tkInt.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tkInt.decls; sourceTree = "<group>"; }; - F966BADF08F27A39005CB29B /* tkInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkInt.h; sourceTree = "<group>"; }; - F966BAE108F27A39005CB29B /* tkIntDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkIntDecls.h; sourceTree = "<group>"; }; - F966BAE208F27A39005CB29B /* tkIntPlatDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkIntPlatDecls.h; sourceTree = "<group>"; }; - F966BAE308F27A39005CB29B /* tkIntXlibDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkIntXlibDecls.h; sourceTree = "<group>"; }; - F966BAE408F27A39005CB29B /* tkListbox.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkListbox.c; sourceTree = "<group>"; }; - F966BAE508F27A39005CB29B /* tkMacWinMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacWinMenu.c; sourceTree = "<group>"; }; - F966BAE608F27A39005CB29B /* tkMain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMain.c; sourceTree = "<group>"; }; - F966BAE708F27A39005CB29B /* tkMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMenu.c; sourceTree = "<group>"; }; - F966BAE808F27A39005CB29B /* tkMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMenu.h; sourceTree = "<group>"; }; - F966BAE908F27A39005CB29B /* tkMenubutton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMenubutton.c; sourceTree = "<group>"; }; - F966BAEA08F27A39005CB29B /* tkMenubutton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMenubutton.h; sourceTree = "<group>"; }; - F966BAEB08F27A39005CB29B /* tkMenuDraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMenuDraw.c; sourceTree = "<group>"; }; - F966BAEC08F27A39005CB29B /* tkMessage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMessage.c; sourceTree = "<group>"; }; - F966BAED08F27A39005CB29B /* tkObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkObj.c; sourceTree = "<group>"; }; - F966BAEE08F27A39005CB29B /* tkOldConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkOldConfig.c; sourceTree = "<group>"; }; - F966BAEF08F27A39005CB29B /* tkOption.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkOption.c; sourceTree = "<group>"; }; - F966BAF008F27A39005CB29B /* tkPack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkPack.c; sourceTree = "<group>"; }; - F966BAF108F27A39005CB29B /* tkPanedWindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkPanedWindow.c; sourceTree = "<group>"; }; - F966BAF208F27A39005CB29B /* tkPlace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkPlace.c; sourceTree = "<group>"; }; - F966BAF308F27A39005CB29B /* tkPlatDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkPlatDecls.h; sourceTree = "<group>"; }; - F966BAF408F27A39005CB29B /* tkPointer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkPointer.c; sourceTree = "<group>"; }; - F966BAF508F27A39005CB29B /* tkPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkPort.h; sourceTree = "<group>"; }; - F966BAF608F27A39005CB29B /* tkRectOval.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkRectOval.c; sourceTree = "<group>"; }; - F966BAF708F27A39005CB29B /* tkScale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkScale.c; sourceTree = "<group>"; }; - F966BAF808F27A39005CB29B /* tkScale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkScale.h; sourceTree = "<group>"; }; - F966BAF908F27A39005CB29B /* tkScrollbar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkScrollbar.c; sourceTree = "<group>"; }; - F966BAFA08F27A39005CB29B /* tkScrollbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkScrollbar.h; sourceTree = "<group>"; }; - F966BAFB08F27A39005CB29B /* tkSelect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkSelect.c; sourceTree = "<group>"; }; - F966BAFC08F27A39005CB29B /* tkSelect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkSelect.h; sourceTree = "<group>"; }; - F966BAFD08F27A39005CB29B /* tkSquare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkSquare.c; sourceTree = "<group>"; }; - F966BAFE08F27A39005CB29B /* tkOldTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkOldTest.c; sourceTree = "<group>"; }; - F966BAFF08F27A39005CB29B /* tkStubInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStubInit.c; sourceTree = "<group>"; }; - F966BB0008F27A39005CB29B /* tkStubLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStubLib.c; sourceTree = "<group>"; }; - F966BB0108F27A39005CB29B /* tkStyle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStyle.c; sourceTree = "<group>"; }; - F966BB0208F27A39005CB29B /* tkTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTest.c; sourceTree = "<group>"; }; - F966BB0308F27A39005CB29B /* tkText.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkText.c; sourceTree = "<group>"; }; - F966BB0408F27A39005CB29B /* tkText.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkText.h; sourceTree = "<group>"; }; - F966BB0508F27A39005CB29B /* tkTextBTree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextBTree.c; sourceTree = "<group>"; }; - F966BB0608F27A39005CB29B /* tkTextDisp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextDisp.c; sourceTree = "<group>"; }; - F966BB0808F27A39005CB29B /* tkTextImage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextImage.c; sourceTree = "<group>"; }; - F966BB0908F27A39005CB29B /* tkTextIndex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextIndex.c; sourceTree = "<group>"; }; - F966BB0A08F27A39005CB29B /* tkTextMark.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextMark.c; sourceTree = "<group>"; }; - F966BB0B08F27A39005CB29B /* tkTextTag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextTag.c; sourceTree = "<group>"; }; - F966BB0C08F27A39005CB29B /* tkTextWind.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTextWind.c; sourceTree = "<group>"; }; - F966BB0D08F27A39005CB29B /* tkTrig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkTrig.c; sourceTree = "<group>"; }; - F966BB0E08F27A39005CB29B /* tkUndo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUndo.c; sourceTree = "<group>"; }; - F966BB0F08F27A39005CB29B /* tkUndo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkUndo.h; sourceTree = "<group>"; }; - F966BB1008F27A39005CB29B /* tkUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUtil.c; sourceTree = "<group>"; }; - F966BB1108F27A39005CB29B /* tkVisual.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkVisual.c; sourceTree = "<group>"; }; - F966BB1208F27A39005CB29B /* tkWindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWindow.c; sourceTree = "<group>"; }; - F966BB1408F27A39005CB29B /* bgerror.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bgerror.tcl; sourceTree = "<group>"; }; - F966BB1508F27A39005CB29B /* button.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = button.tcl; sourceTree = "<group>"; }; - F966BB1608F27A39005CB29B /* choosedir.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = choosedir.tcl; sourceTree = "<group>"; }; - F966BB1708F27A39005CB29B /* clrpick.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clrpick.tcl; sourceTree = "<group>"; }; - F966BB1808F27A39005CB29B /* comdlg.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = comdlg.tcl; sourceTree = "<group>"; }; - F966BB1908F27A39005CB29B /* console.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = console.tcl; sourceTree = "<group>"; }; - F966BB1B08F27A39005CB29B /* anilabel.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = anilabel.tcl; sourceTree = "<group>"; }; - F966BB1C08F27A39005CB29B /* aniwave.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = aniwave.tcl; sourceTree = "<group>"; }; - F966BB1D08F27A39005CB29B /* arrow.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = arrow.tcl; sourceTree = "<group>"; }; - F966BB1E08F27A39005CB29B /* bind.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bind.tcl; sourceTree = "<group>"; }; - F966BB1F08F27A39005CB29B /* bitmap.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bitmap.tcl; sourceTree = "<group>"; }; - F966BB2008F27A39005CB29B /* browse */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = browse; sourceTree = "<group>"; }; - F966BB2108F27A39005CB29B /* button.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = button.tcl; sourceTree = "<group>"; }; - F966BB2208F27A39005CB29B /* check.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = check.tcl; sourceTree = "<group>"; }; - F966BB2308F27A39005CB29B /* clrpick.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clrpick.tcl; sourceTree = "<group>"; }; - F966BB2408F27A39005CB29B /* colors.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = colors.tcl; sourceTree = "<group>"; }; - F966BB2508F27A39005CB29B /* cscroll.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cscroll.tcl; sourceTree = "<group>"; }; - F966BB2608F27A39005CB29B /* ctext.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ctext.tcl; sourceTree = "<group>"; }; - F966BB2708F27A39005CB29B /* dialog1.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dialog1.tcl; sourceTree = "<group>"; }; - F966BB2808F27A39005CB29B /* dialog2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dialog2.tcl; sourceTree = "<group>"; }; - F966BB2A08F27A39005CB29B /* entry1.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry1.tcl; sourceTree = "<group>"; }; - F966BB2B08F27A39005CB29B /* entry2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry2.tcl; sourceTree = "<group>"; }; - F966BB2C08F27A39005CB29B /* entry3.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry3.tcl; sourceTree = "<group>"; }; - F966BB2D08F27A39005CB29B /* filebox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = filebox.tcl; sourceTree = "<group>"; }; - F966BB2E08F27A39005CB29B /* floor.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = floor.tcl; sourceTree = "<group>"; }; - F966BB2F08F27A39005CB29B /* form.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = form.tcl; sourceTree = "<group>"; }; - F966BB3008F27A39005CB29B /* goldberg.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = goldberg.tcl; sourceTree = "<group>"; }; - F966BB3108F27A39005CB29B /* hello */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = hello; sourceTree = "<group>"; }; - F966BB3208F27A39005CB29B /* hscale.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = hscale.tcl; sourceTree = "<group>"; }; - F966BB3308F27A39005CB29B /* icon.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = icon.tcl; sourceTree = "<group>"; }; - F966BB3408F27A39005CB29B /* image1.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = image1.tcl; sourceTree = "<group>"; }; - F966BB3508F27A39005CB29B /* image2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = image2.tcl; sourceTree = "<group>"; }; - F966BB4208F27A3A005CB29B /* items.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = items.tcl; sourceTree = "<group>"; }; - F966BB4308F27A3A005CB29B /* ixset */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = ixset; sourceTree = "<group>"; }; - F966BB4408F27A3A005CB29B /* label.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = label.tcl; sourceTree = "<group>"; }; - F966BB4508F27A3A005CB29B /* labelframe.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = labelframe.tcl; sourceTree = "<group>"; }; - F966BB4608F27A3A005CB29B /* menu.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menu.tcl; sourceTree = "<group>"; }; - F966BB4708F27A3A005CB29B /* menubu.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menubu.tcl; sourceTree = "<group>"; }; - F966BB4808F27A3A005CB29B /* msgbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgbox.tcl; sourceTree = "<group>"; }; - F966BB4A08F27A3A005CB29B /* paned1.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = paned1.tcl; sourceTree = "<group>"; }; - F966BB4B08F27A3A005CB29B /* paned2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = paned2.tcl; sourceTree = "<group>"; }; - F966BB4C08F27A3A005CB29B /* pendulum.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pendulum.tcl; sourceTree = "<group>"; }; - F966BB4D08F27A3A005CB29B /* plot.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = plot.tcl; sourceTree = "<group>"; }; - F966BB4E08F27A3A005CB29B /* puzzle.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = puzzle.tcl; sourceTree = "<group>"; }; - F966BB4F08F27A3A005CB29B /* radio.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = radio.tcl; sourceTree = "<group>"; }; - F966BB5008F27A3A005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BB5108F27A3A005CB29B /* rmt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = rmt; sourceTree = "<group>"; }; - F966BB5208F27A3A005CB29B /* rolodex */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = rolodex; sourceTree = "<group>"; }; - F966BB5308F27A3A005CB29B /* ruler.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ruler.tcl; sourceTree = "<group>"; }; - F966BB5408F27A3A005CB29B /* sayings.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = sayings.tcl; sourceTree = "<group>"; }; - F966BB5508F27A3A005CB29B /* search.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = search.tcl; sourceTree = "<group>"; }; - F966BB5608F27A3A005CB29B /* spin.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = spin.tcl; sourceTree = "<group>"; }; - F966BB5708F27A3A005CB29B /* square */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = square; sourceTree = "<group>"; }; - F966BB5808F27A3A005CB29B /* states.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = states.tcl; sourceTree = "<group>"; }; - F966BB5908F27A3A005CB29B /* style.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = style.tcl; sourceTree = "<group>"; }; - F966BB5A08F27A3A005CB29B /* tclIndex */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclIndex; sourceTree = "<group>"; }; - F966BB5B08F27A3A005CB29B /* tcolor */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = tcolor; sourceTree = "<group>"; }; - F966BB5C08F27A3A005CB29B /* text.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = text.tcl; sourceTree = "<group>"; }; - F966BB5D08F27A3A005CB29B /* timer */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = timer; sourceTree = "<group>"; }; - F966BB5E08F27A3A005CB29B /* twind.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = twind.tcl; sourceTree = "<group>"; }; - F966BB5F08F27A3A005CB29B /* unicodeout.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unicodeout.tcl; sourceTree = "<group>"; }; - F966BB6008F27A3A005CB29B /* vscale.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = vscale.tcl; sourceTree = "<group>"; }; - F966BB6108F27A3A005CB29B /* widget */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = widget; sourceTree = "<group>"; }; - F966BB6208F27A3A005CB29B /* dialog.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dialog.tcl; sourceTree = "<group>"; }; - F966BB6308F27A3A005CB29B /* entry.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry.tcl; sourceTree = "<group>"; }; - F966BB6408F27A3A005CB29B /* focus.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = focus.tcl; sourceTree = "<group>"; }; - F966BB7308F27A3A005CB29B /* listbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = listbox.tcl; sourceTree = "<group>"; }; - F966BB7408F27A3A005CB29B /* menu.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menu.tcl; sourceTree = "<group>"; }; - F966BB7508F27A3A005CB29B /* mkpsenc.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = mkpsenc.tcl; sourceTree = "<group>"; }; - F966BB7608F27A3A005CB29B /* msgbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgbox.tcl; sourceTree = "<group>"; }; - F966BB8608F27A3A005CB29B /* obsolete.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = obsolete.tcl; sourceTree = "<group>"; }; - F966BB8708F27A3A005CB29B /* optMenu.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = optMenu.tcl; sourceTree = "<group>"; }; - F966BB8808F27A3A005CB29B /* palette.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = palette.tcl; sourceTree = "<group>"; }; - F966BB8908F27A3B005CB29B /* panedwindow.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = panedwindow.tcl; sourceTree = "<group>"; }; - F966BB8B08F27A3B005CB29B /* safetk.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = safetk.tcl; sourceTree = "<group>"; }; - F966BB8C08F27A3B005CB29B /* scale.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scale.tcl; sourceTree = "<group>"; }; - F966BB8D08F27A3B005CB29B /* scrlbar.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scrlbar.tcl; sourceTree = "<group>"; }; - F966BB8E08F27A3B005CB29B /* spinbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = spinbox.tcl; sourceTree = "<group>"; }; - F966BB8F08F27A3B005CB29B /* tclIndex */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclIndex; sourceTree = "<group>"; }; - F966BB9008F27A3B005CB29B /* tearoff.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tearoff.tcl; sourceTree = "<group>"; }; - F966BB9108F27A3B005CB29B /* text.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = text.tcl; sourceTree = "<group>"; }; - F966BB9208F27A3B005CB29B /* tk.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tk.tcl; sourceTree = "<group>"; }; - F966BB9308F27A3B005CB29B /* tkfbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tkfbox.tcl; sourceTree = "<group>"; }; - F966BB9408F27A3B005CB29B /* unsupported.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unsupported.tcl; sourceTree = "<group>"; }; - F966BB9508F27A3B005CB29B /* xmfbox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = xmfbox.tcl; sourceTree = "<group>"; }; - F966BB9608F27A3B005CB29B /* license.terms */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = license.terms; sourceTree = "<group>"; }; - F966BBBA08F27A3B005CB29B /* configure.ac */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure.ac; sourceTree = "<group>"; }; - F966BBBB08F27A3B005CB29B /* GNUmakefile */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = GNUmakefile; sourceTree = "<group>"; }; - F966BBBE08F27A3B005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BBC008F27A3B005CB29B /* Tk-Info.plist.in */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = "Tk-Info.plist.in"; sourceTree = "<group>"; }; - F966BBC208F27A3B005CB29B /* tkMacOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSX.h; sourceTree = "<group>"; }; - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXBitmap.c; sourceTree = "<group>"; }; - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXButton.c; sourceTree = "<group>"; }; - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXClipboard.c; sourceTree = "<group>"; }; - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXColor.c; sourceTree = "<group>"; }; - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXConfig.c; sourceTree = "<group>"; }; - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXCursor.c; sourceTree = "<group>"; }; - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXCursors.h; sourceTree = "<group>"; }; - F966BBCD08F27A3B005CB29B /* tkMacOSXDebug.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXDebug.c; sourceTree = "<group>"; }; - F966BBCE08F27A3B005CB29B /* tkMacOSXDebug.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXDebug.h; sourceTree = "<group>"; }; - F966BBCF08F27A3B005CB29B /* tkMacOSXDefault.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXDefault.h; sourceTree = "<group>"; }; - F966BBD008F27A3B005CB29B /* tkMacOSXDialog.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXDialog.c; sourceTree = "<group>"; }; - F966BBD108F27A3B005CB29B /* tkMacOSXDraw.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXDraw.c; sourceTree = "<group>"; }; - F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEmbed.c; sourceTree = "<group>"; }; - F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEntry.c; sourceTree = "<group>"; }; - F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEvent.c; sourceTree = "<group>"; }; - F966BBD508F27A3B005CB29B /* tkMacOSXEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXEvent.h; sourceTree = "<group>"; }; - F966BBD608F27A3B005CB29B /* tkMacOSXFont.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXFont.c; sourceTree = "<group>"; }; - F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXHLEvents.c; sourceTree = "<group>"; }; - F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXInit.c; sourceTree = "<group>"; }; - F966BBDA08F27A3B005CB29B /* tkMacOSXInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXInt.h; sourceTree = "<group>"; }; - F966BBDB08F27A3B005CB29B /* tkMacOSXKeyboard.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXKeyboard.c; sourceTree = "<group>"; }; - F966BBDC08F27A3B005CB29B /* tkMacOSXKeyEvent.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXKeyEvent.c; sourceTree = "<group>"; }; - F966BBDD08F27A3B005CB29B /* tkMacOSXMenu.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXMenu.c; sourceTree = "<group>"; }; - F966BBE008F27A3B005CB29B /* tkMacOSXMenubutton.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXMenubutton.c; sourceTree = "<group>"; }; - F966BBE108F27A3B005CB29B /* tkMacOSXMenus.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXMenus.c; sourceTree = "<group>"; }; - F966BBE208F27A3B005CB29B /* tkMacOSXMouseEvent.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXMouseEvent.c; sourceTree = "<group>"; }; - F966BBE308F27A3B005CB29B /* tkMacOSXNotify.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXNotify.c; sourceTree = "<group>"; }; - F966BBEA08F27A3C005CB29B /* tkMacOSXPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXPort.h; sourceTree = "<group>"; }; - F966BBEB08F27A3C005CB29B /* tkMacOSXRegion.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXRegion.c; sourceTree = "<group>"; }; - F966BBEC08F27A3C005CB29B /* tkMacOSXScale.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXScale.c; sourceTree = "<group>"; }; - F966BBED08F27A3C005CB29B /* tkMacOSXScrlbr.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXScrlbr.c; sourceTree = "<group>"; }; - F966BBEE08F27A3C005CB29B /* tkMacOSXSend.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXSend.c; sourceTree = "<group>"; }; - F966BBEF08F27A3C005CB29B /* tkMacOSXSubwindows.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXSubwindows.c; sourceTree = "<group>"; }; - F966BBF008F27A3C005CB29B /* tkMacOSXTest.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXTest.c; sourceTree = "<group>"; }; - F966BBF108F27A3C005CB29B /* tkMacOSXWindowEvent.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXWindowEvent.c; sourceTree = "<group>"; }; - F966BBF208F27A3C005CB29B /* tkMacOSXWm.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXWm.c; sourceTree = "<group>"; }; - F966BBF308F27A3C005CB29B /* tkMacOSXWm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXWm.h; sourceTree = "<group>"; }; - F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXXCursors.h; sourceTree = "<group>"; }; - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXXStubs.c; sourceTree = "<group>"; }; - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = "Wish-Info.plist.in"; sourceTree = "<group>"; }; - F966BC0308F27A3C005CB29B /* README */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = README; sourceTree = "<group>"; }; - F966BC0508F27A3C005CB29B /* all.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = all.tcl; sourceTree = "<group>"; }; - F966BC0608F27A3C005CB29B /* arc.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = arc.tcl; sourceTree = "<group>"; }; - F966BC0708F27A3C005CB29B /* bell.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bell.test; sourceTree = "<group>"; }; - F966BC0808F27A3C005CB29B /* bevel.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bevel.tcl; sourceTree = "<group>"; }; - F966BC0908F27A3C005CB29B /* bgerror.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bgerror.test; sourceTree = "<group>"; }; - F966BC0A08F27A3C005CB29B /* bind.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bind.test; sourceTree = "<group>"; }; - F966BC0B08F27A3C005CB29B /* bitmap.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bitmap.test; sourceTree = "<group>"; }; - F966BC0C08F27A3C005CB29B /* border.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = border.test; sourceTree = "<group>"; }; - F966BC0D08F27A3C005CB29B /* bugs.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = bugs.tcl; sourceTree = "<group>"; }; - F966BC0E08F27A3C005CB29B /* butGeom.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = butGeom.tcl; sourceTree = "<group>"; }; - F966BC0F08F27A3C005CB29B /* butGeom2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = butGeom2.tcl; sourceTree = "<group>"; }; - F966BC1008F27A3C005CB29B /* button.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = button.test; sourceTree = "<group>"; }; - F966BC1108F27A3C005CB29B /* canvas.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvas.test; sourceTree = "<group>"; }; - F966BC1208F27A3C005CB29B /* canvImg.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvImg.test; sourceTree = "<group>"; }; - F966BC1308F27A3C005CB29B /* canvPs.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPs.test; sourceTree = "<group>"; }; - F966BC1408F27A3C005CB29B /* canvPsArc.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPsArc.tcl; sourceTree = "<group>"; }; - F966BC1508F27A3C005CB29B /* canvPsBmap.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPsBmap.tcl; sourceTree = "<group>"; }; - F966BC1608F27A3C005CB29B /* canvPsGrph.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPsGrph.tcl; sourceTree = "<group>"; }; - F966BC1708F27A3C005CB29B /* canvPsImg.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPsImg.tcl; sourceTree = "<group>"; }; - F966BC1808F27A3C005CB29B /* canvPsText.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvPsText.tcl; sourceTree = "<group>"; }; - F966BC1908F27A3C005CB29B /* canvRect.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvRect.test; sourceTree = "<group>"; }; - F966BC1A08F27A3C005CB29B /* canvText.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvText.test; sourceTree = "<group>"; }; - F966BC1B08F27A3C005CB29B /* canvWind.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = canvWind.test; sourceTree = "<group>"; }; - F966BC1C08F27A3C005CB29B /* choosedir.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = choosedir.test; sourceTree = "<group>"; }; - F966BC1D08F27A3C005CB29B /* clipboard.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clipboard.test; sourceTree = "<group>"; }; - F966BC1E08F27A3C005CB29B /* clrpick.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clrpick.test; sourceTree = "<group>"; }; - F966BC1F08F27A3C005CB29B /* cmap.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmap.tcl; sourceTree = "<group>"; }; - F966BC2008F27A3C005CB29B /* cmds.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmds.test; sourceTree = "<group>"; }; - F966BC2108F27A3C005CB29B /* color.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = color.test; sourceTree = "<group>"; }; - F966BC2208F27A3C005CB29B /* config.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = config.test; sourceTree = "<group>"; }; - F966BC2308F27A3C005CB29B /* constraints.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = constraints.tcl; sourceTree = "<group>"; }; - F966BC2408F27A3C005CB29B /* cursor.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cursor.test; sourceTree = "<group>"; }; - F966BC2508F27A3C005CB29B /* dialog.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dialog.test; sourceTree = "<group>"; }; - F966BC2608F27A3C005CB29B /* embed.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = embed.test; sourceTree = "<group>"; }; - F966BC2708F27A3C005CB29B /* entry.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry.test; sourceTree = "<group>"; }; - F966BC2808F27A3C005CB29B /* event.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = event.test; sourceTree = "<group>"; }; - F966BC2908F27A3C005CB29B /* filebox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = filebox.test; sourceTree = "<group>"; }; - F966BC2A08F27A3C005CB29B /* focus.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = focus.test; sourceTree = "<group>"; }; - F966BC2B08F27A3C005CB29B /* focusTcl.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = focusTcl.test; sourceTree = "<group>"; }; - F966BC2C08F27A3C005CB29B /* font.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = font.test; sourceTree = "<group>"; }; - F966BC2D08F27A3C005CB29B /* frame.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = frame.test; sourceTree = "<group>"; }; - F966BC2E08F27A3C005CB29B /* geometry.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = geometry.test; sourceTree = "<group>"; }; - F966BC2F08F27A3C005CB29B /* get.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = get.test; sourceTree = "<group>"; }; - F966BC3008F27A3C005CB29B /* grab.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = grab.test; sourceTree = "<group>"; }; - F966BC3108F27A3C005CB29B /* grid.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = grid.test; sourceTree = "<group>"; }; - F966BC3308F27A3C005CB29B /* image.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = image.test; sourceTree = "<group>"; }; - F966BC3408F27A3C005CB29B /* imgBmap.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = imgBmap.test; sourceTree = "<group>"; }; - F966BC3508F27A3C005CB29B /* imgPhoto.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = imgPhoto.test; sourceTree = "<group>"; }; - F966BC3608F27A3C005CB29B /* imgPPM.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = imgPPM.test; sourceTree = "<group>"; }; - F966BC3708F27A3C005CB29B /* listbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = listbox.test; sourceTree = "<group>"; }; - F966BC3808F27A3C005CB29B /* main.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = main.test; sourceTree = "<group>"; }; - F966BC3908F27A3C005CB29B /* menu.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menu.test; sourceTree = "<group>"; }; - F966BC3A08F27A3C005CB29B /* menubut.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menubut.test; sourceTree = "<group>"; }; - F966BC3B08F27A3C005CB29B /* menuDraw.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menuDraw.test; sourceTree = "<group>"; }; - F966BC3C08F27A3C005CB29B /* message.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = message.test; sourceTree = "<group>"; }; - F966BC3D08F27A3C005CB29B /* msgbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgbox.test; sourceTree = "<group>"; }; - F966BC3E08F27A3C005CB29B /* obj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = obj.test; sourceTree = "<group>"; }; - F966BC3F08F27A3C005CB29B /* oldpack.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = oldpack.test; sourceTree = "<group>"; }; - F966BC4008F27A3C005CB29B /* option.file1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = option.file1; sourceTree = "<group>"; }; - F966BC4108F27A3C005CB29B /* option.file2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = option.file2; sourceTree = "<group>"; }; - F966BC4208F27A3C005CB29B /* option.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = option.test; sourceTree = "<group>"; }; - F966BC4308F27A3C005CB29B /* pack.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pack.test; sourceTree = "<group>"; }; - F966BC4408F27A3C005CB29B /* panedwindow.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = panedwindow.test; sourceTree = "<group>"; }; - F966BC4508F27A3D005CB29B /* place.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = place.test; sourceTree = "<group>"; }; - F966BC4608F27A3D005CB29B /* raise.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = raise.test; sourceTree = "<group>"; }; - F966BC4708F27A3D005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BC4808F27A3D005CB29B /* safe.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = safe.test; sourceTree = "<group>"; }; - F966BC4908F27A3D005CB29B /* scale.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scale.test; sourceTree = "<group>"; }; - F966BC4A08F27A3D005CB29B /* scrollbar.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scrollbar.test; sourceTree = "<group>"; }; - F966BC4B08F27A3D005CB29B /* select.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = select.test; sourceTree = "<group>"; }; - F966BC4C08F27A3D005CB29B /* send.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = send.test; sourceTree = "<group>"; }; - F966BC4D08F27A3D005CB29B /* spinbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = spinbox.test; sourceTree = "<group>"; }; - F966BC4E08F27A3D005CB29B /* text.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = text.test; sourceTree = "<group>"; }; - F966BC4F08F27A3D005CB29B /* textBTree.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textBTree.test; sourceTree = "<group>"; }; - F966BC5008F27A3D005CB29B /* textDisp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textDisp.test; sourceTree = "<group>"; }; - F966BC5108F27A3D005CB29B /* textImage.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textImage.test; sourceTree = "<group>"; }; - F966BC5208F27A3D005CB29B /* textIndex.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textIndex.test; sourceTree = "<group>"; }; - F966BC5308F27A3D005CB29B /* textMark.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textMark.test; sourceTree = "<group>"; }; - F966BC5408F27A3D005CB29B /* textTag.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textTag.test; sourceTree = "<group>"; }; - F966BC5508F27A3D005CB29B /* textWind.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = textWind.test; sourceTree = "<group>"; }; - F966BC5608F27A3D005CB29B /* tk.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tk.test; sourceTree = "<group>"; }; - F966BC5708F27A3D005CB29B /* unixButton.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixButton.test; sourceTree = "<group>"; }; - F966BC5808F27A3D005CB29B /* unixEmbed.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixEmbed.test; sourceTree = "<group>"; }; - F966BC5908F27A3D005CB29B /* unixFont.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixFont.test; sourceTree = "<group>"; }; - F966BC5A08F27A3D005CB29B /* unixMenu.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixMenu.test; sourceTree = "<group>"; }; - F966BC5B08F27A3D005CB29B /* unixSelect.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixSelect.test; sourceTree = "<group>"; }; - F966BC5C08F27A3D005CB29B /* unixWm.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixWm.test; sourceTree = "<group>"; }; - F966BC5D08F27A3D005CB29B /* util.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = util.test; sourceTree = "<group>"; }; - F966BC5E08F27A3D005CB29B /* visual.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = visual.test; sourceTree = "<group>"; }; - F966BC5F08F27A3D005CB29B /* visual_bb.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = visual_bb.test; sourceTree = "<group>"; }; - F966BC6008F27A3D005CB29B /* winButton.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winButton.test; sourceTree = "<group>"; }; - F966BC6108F27A3D005CB29B /* winClipboard.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winClipboard.test; sourceTree = "<group>"; }; - F966BC6208F27A3D005CB29B /* winDialog.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winDialog.test; sourceTree = "<group>"; }; - F966BC6308F27A3D005CB29B /* window.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = window.test; sourceTree = "<group>"; }; - F966BC6408F27A3D005CB29B /* winfo.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winfo.test; sourceTree = "<group>"; }; - F966BC6508F27A3D005CB29B /* winFont.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winFont.test; sourceTree = "<group>"; }; - F966BC6608F27A3D005CB29B /* winMenu.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winMenu.test; sourceTree = "<group>"; }; - F966BC6708F27A3D005CB29B /* winSend.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winSend.test; sourceTree = "<group>"; }; - F966BC6808F27A3D005CB29B /* winWm.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winWm.test; sourceTree = "<group>"; }; - F966BC6908F27A3D005CB29B /* wm.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = wm.test; sourceTree = "<group>"; }; - F966BC6A08F27A3D005CB29B /* xmfbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = xmfbox.test; sourceTree = "<group>"; }; - F966BC6C08F27A3D005CB29B /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; - F966BC6D08F27A3D005CB29B /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F966BC6E08F27A3D005CB29B /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; - F966BC6F08F27A3D005CB29B /* install-sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "install-sh"; sourceTree = "<group>"; }; - F966BC7008F27A3D005CB29B /* installManPage */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = installManPage; sourceTree = "<group>"; }; - F966BC7108F27A3D005CB29B /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F966BC7208F27A3D005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BC7308F27A3D005CB29B /* tcl.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tcl.m4; sourceTree = "<group>"; }; - F966BC7408F27A3D005CB29B /* tk.spec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk.spec; sourceTree = "<group>"; }; - F966BC7508F27A3D005CB29B /* tkAppInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkAppInit.c; sourceTree = "<group>"; }; - F966BC7608F27A3D005CB29B /* tkConfig.h.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = tkConfig.h.in; sourceTree = "<group>"; }; - F966BC7708F27A3D005CB29B /* tkConfig.sh.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tkConfig.sh.in; sourceTree = "<group>"; }; - F966BC7808F27A3D005CB29B /* tkUnix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnix.c; sourceTree = "<group>"; }; - F966BC7908F27A3D005CB29B /* tkUnix3d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnix3d.c; sourceTree = "<group>"; }; - F966BC7A08F27A3D005CB29B /* tkUnixButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixButton.c; sourceTree = "<group>"; }; - F966BC7B08F27A3D005CB29B /* tkUnixColor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixColor.c; sourceTree = "<group>"; }; - F966BC7C08F27A3D005CB29B /* tkUnixConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixConfig.c; sourceTree = "<group>"; }; - F966BC7D08F27A3D005CB29B /* tkUnixCursor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixCursor.c; sourceTree = "<group>"; }; - F966BC7E08F27A3D005CB29B /* tkUnixDefault.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkUnixDefault.h; sourceTree = "<group>"; }; - F966BC8008F27A3D005CB29B /* tkUnixDraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixDraw.c; sourceTree = "<group>"; }; - F966BC8108F27A3D005CB29B /* tkUnixEmbed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixEmbed.c; sourceTree = "<group>"; }; - F966BC8208F27A3D005CB29B /* tkUnixEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixEvent.c; sourceTree = "<group>"; }; - F966BC8308F27A3D005CB29B /* tkUnixFocus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixFocus.c; sourceTree = "<group>"; }; - F966BC8408F27A3D005CB29B /* tkUnixFont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixFont.c; sourceTree = "<group>"; }; - F966BC8508F27A3D005CB29B /* tkUnixInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixInit.c; sourceTree = "<group>"; }; - F966BC8608F27A3D005CB29B /* tkUnixInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkUnixInt.h; sourceTree = "<group>"; }; - F966BC8708F27A3D005CB29B /* tkUnixKey.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixKey.c; sourceTree = "<group>"; }; - F966BC8808F27A3D005CB29B /* tkUnixMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixMenu.c; sourceTree = "<group>"; }; - F966BC8908F27A3D005CB29B /* tkUnixMenubu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixMenubu.c; sourceTree = "<group>"; }; - F966BC8A08F27A3D005CB29B /* tkUnixPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkUnixPort.h; sourceTree = "<group>"; }; - F966BC8B08F27A3D005CB29B /* tkUnixRFont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixRFont.c; sourceTree = "<group>"; }; - F966BC8C08F27A3D005CB29B /* tkUnixScale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixScale.c; sourceTree = "<group>"; }; - F966BC8D08F27A3D005CB29B /* tkUnixScrlbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixScrlbr.c; sourceTree = "<group>"; }; - F966BC8E08F27A3D005CB29B /* tkUnixSelect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixSelect.c; sourceTree = "<group>"; }; - F966BC8F08F27A3D005CB29B /* tkUnixSend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixSend.c; sourceTree = "<group>"; }; - F966BC9008F27A3D005CB29B /* tkUnixWm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixWm.c; sourceTree = "<group>"; }; - F966BC9108F27A3D005CB29B /* tkUnixXId.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixXId.c; sourceTree = "<group>"; }; - F966BC9408F27A3D005CB29B /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; - F966BC9508F27A3D005CB29B /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; - F966BC9608F27A3E005CB29B /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F966BC9708F27A3E005CB29B /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; - F966BC9908F27A3E005CB29B /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F966BC9A08F27A3E005CB29B /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; - F966BC9B08F27A3E005CB29B /* mkd.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mkd.bat; sourceTree = "<group>"; }; - F966BC9C08F27A3E005CB29B /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; - F966BCEE08F27A3E005CB29B /* tk.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk.rc; sourceTree = "<group>"; }; - F966BCEF08F27A3E005CB29B /* tk_base.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk_base.rc; sourceTree = "<group>"; }; - F966BCF208F27A3E005CB29B /* wish.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wish.rc; sourceTree = "<group>"; }; - F966BCF308F27A3E005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BCF408F27A3E005CB29B /* rmd.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rmd.bat; sourceTree = "<group>"; }; - F966BCF508F27A3F005CB29B /* rules.vc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.vc; sourceTree = "<group>"; }; - F966BCF608F27A3F005CB29B /* stubs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stubs.c; sourceTree = "<group>"; }; - F966BCF708F27A3F005CB29B /* tcl.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tcl.m4; sourceTree = "<group>"; }; - F966BCF808F27A3F005CB29B /* tkConfig.sh.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tkConfig.sh.in; sourceTree = "<group>"; }; - F966BCF908F27A3F005CB29B /* tkWin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkWin.h; sourceTree = "<group>"; }; - F966BCFA08F27A3F005CB29B /* tkWin32Dll.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWin32Dll.c; sourceTree = "<group>"; }; - F966BCFB08F27A3F005CB29B /* tkWin3d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWin3d.c; sourceTree = "<group>"; }; - F966BCFC08F27A3F005CB29B /* tkWinButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinButton.c; sourceTree = "<group>"; }; - F966BCFD08F27A3F005CB29B /* tkWinClipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinClipboard.c; sourceTree = "<group>"; }; - F966BCFE08F27A3F005CB29B /* tkWinColor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinColor.c; sourceTree = "<group>"; }; - F966BCFF08F27A3F005CB29B /* tkWinConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinConfig.c; sourceTree = "<group>"; }; - F966BD0008F27A3F005CB29B /* tkWinCursor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinCursor.c; sourceTree = "<group>"; }; - F966BD0108F27A3F005CB29B /* tkWinDefault.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkWinDefault.h; sourceTree = "<group>"; }; - F966BD0208F27A3F005CB29B /* tkWinDialog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinDialog.c; sourceTree = "<group>"; }; - F966BD0308F27A3F005CB29B /* tkWinDraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinDraw.c; sourceTree = "<group>"; }; - F966BD0408F27A3F005CB29B /* tkWinEmbed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinEmbed.c; sourceTree = "<group>"; }; - F966BD0508F27A3F005CB29B /* tkWinFont.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinFont.c; sourceTree = "<group>"; }; - F966BD0708F27A3F005CB29B /* tkWinImage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinImage.c; sourceTree = "<group>"; }; - F966BD0808F27A3F005CB29B /* tkWinInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinInit.c; sourceTree = "<group>"; }; - F966BD0908F27A3F005CB29B /* tkWinInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkWinInt.h; sourceTree = "<group>"; }; - F966BD0A08F27A3F005CB29B /* tkWinKey.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinKey.c; sourceTree = "<group>"; }; - F966BD0B08F27A3F005CB29B /* tkWinMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinMenu.c; sourceTree = "<group>"; }; - F966BD0C08F27A3F005CB29B /* tkWinPixmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinPixmap.c; sourceTree = "<group>"; }; - F966BD0D08F27A3F005CB29B /* tkWinPointer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinPointer.c; sourceTree = "<group>"; }; - F966BD0E08F27A3F005CB29B /* tkWinPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkWinPort.h; sourceTree = "<group>"; }; - F966BD0F08F27A3F005CB29B /* tkWinRegion.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinRegion.c; sourceTree = "<group>"; }; - F966BD1008F27A3F005CB29B /* tkWinScrlbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinScrlbr.c; sourceTree = "<group>"; }; - F966BD1108F27A3F005CB29B /* tkWinSend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinSend.c; sourceTree = "<group>"; }; - F966BD1208F27A3F005CB29B /* tkWinSendCom.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinSendCom.c; sourceTree = "<group>"; }; - F966BD1308F27A3F005CB29B /* tkWinSendCom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkWinSendCom.h; sourceTree = "<group>"; }; - F966BD1408F27A3F005CB29B /* tkWinTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinTest.c; sourceTree = "<group>"; }; - F966BD1508F27A3F005CB29B /* tkWinWindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinWindow.c; sourceTree = "<group>"; }; - F966BD1608F27A3F005CB29B /* tkWinWm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinWm.c; sourceTree = "<group>"; }; - F966BD1708F27A3F005CB29B /* tkWinX.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkWinX.c; sourceTree = "<group>"; }; - F966BD1808F27A3F005CB29B /* winMain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = winMain.c; sourceTree = "<group>"; }; - F966BD1B08F27A3F005CB29B /* cursorfont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cursorfont.h; sourceTree = "<group>"; }; - F966BD1C08F27A3F005CB29B /* keysym.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keysym.h; sourceTree = "<group>"; }; - F966BD1D08F27A3F005CB29B /* keysymdef.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = keysymdef.h; sourceTree = "<group>"; }; - F966BD1E08F27A3F005CB29B /* X.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = X.h; sourceTree = "<group>"; }; - F966BD1F08F27A3F005CB29B /* Xatom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Xatom.h; sourceTree = "<group>"; }; - F966BD2008F27A3F005CB29B /* Xfuncproto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Xfuncproto.h; sourceTree = "<group>"; }; - F966BD2108F27A3F005CB29B /* Xlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Xlib.h; sourceTree = "<group>"; }; - F966BD2208F27A3F005CB29B /* Xutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Xutil.h; sourceTree = "<group>"; }; - F966BD2308F27A3F005CB29B /* xbytes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xbytes.h; sourceTree = "<group>"; }; - F966BD2408F27A3F005CB29B /* xcolors.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xcolors.c; sourceTree = "<group>"; }; - F966BD2508F27A3F005CB29B /* xdraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xdraw.c; sourceTree = "<group>"; }; - F966BD2608F27A3F005CB29B /* xgc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xgc.c; sourceTree = "<group>"; }; - F966BD2708F27A3F005CB29B /* ximage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ximage.c; sourceTree = "<group>"; }; - F966BD2808F27A3F005CB29B /* xutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xutil.c; sourceTree = "<group>"; }; - F966C07408F2820D005CB29B /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; }; - F966C07608F2821B005CB29B /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; - F966C07808F28233005CB29B /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; }; - F96887E00AF786D5000797B5 /* ttk.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttk.decls; sourceTree = "<group>"; }; - F96887E10AF786D5000797B5 /* ttkBlink.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkBlink.c; sourceTree = "<group>"; }; - F96887E20AF786D5000797B5 /* ttkButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkButton.c; sourceTree = "<group>"; }; - F96887E30AF786D5000797B5 /* ttkCache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkCache.c; sourceTree = "<group>"; }; - F96887E40AF786D5000797B5 /* ttkClamTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkClamTheme.c; sourceTree = "<group>"; }; - F96887E50AF786D5000797B5 /* ttkClassicTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkClassicTheme.c; sourceTree = "<group>"; }; - F96887E60AF786D5000797B5 /* ttkDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ttkDecls.h; sourceTree = "<group>"; }; - F96887E70AF786D5000797B5 /* ttkDefaultTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkDefaultTheme.c; sourceTree = "<group>"; }; - F96887E80AF786D5000797B5 /* ttkElements.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkElements.c; sourceTree = "<group>"; }; - F96887E90AF786D5000797B5 /* ttkEntry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkEntry.c; sourceTree = "<group>"; }; - F96887EA0AF786D5000797B5 /* ttkFrame.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkFrame.c; sourceTree = "<group>"; }; - F96887EB0AF786D5000797B5 /* ttkImage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkImage.c; sourceTree = "<group>"; }; - F96887EC0AF786D5000797B5 /* ttkInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkInit.c; sourceTree = "<group>"; }; - F96887ED0AF786D5000797B5 /* ttkLabel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkLabel.c; sourceTree = "<group>"; }; - F96887EE0AF786D5000797B5 /* ttkLayout.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkLayout.c; sourceTree = "<group>"; }; - F96887EF0AF786D5000797B5 /* ttkManager.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkManager.c; sourceTree = "<group>"; }; - F96887F00AF786D5000797B5 /* ttkManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ttkManager.h; sourceTree = "<group>"; }; - F96887F10AF786D5000797B5 /* ttkNotebook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkNotebook.c; sourceTree = "<group>"; }; - F96887F20AF786D5000797B5 /* ttkPanedwindow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkPanedwindow.c; sourceTree = "<group>"; }; - F96887F30AF786D5000797B5 /* ttkProgress.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkProgress.c; sourceTree = "<group>"; }; - F96887F40AF786D5000797B5 /* ttkScale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkScale.c; sourceTree = "<group>"; }; - F96887F50AF786D5000797B5 /* ttkScroll.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkScroll.c; sourceTree = "<group>"; }; - F96887F60AF786D5000797B5 /* ttkScrollbar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkScrollbar.c; sourceTree = "<group>"; }; - F96887F70AF786D5000797B5 /* ttkSeparator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkSeparator.c; sourceTree = "<group>"; }; - F96887F80AF786D5000797B5 /* ttkSquare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkSquare.c; sourceTree = "<group>"; }; - F96887F90AF786D5000797B5 /* ttkState.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkState.c; sourceTree = "<group>"; }; - F96887FA0AF786D5000797B5 /* ttkStubInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkStubInit.c; sourceTree = "<group>"; }; - F96887FB0AF786D5000797B5 /* ttkStubLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkStubLib.c; sourceTree = "<group>"; }; - F96887FC0AF786D5000797B5 /* ttkTagSet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkTagSet.c; sourceTree = "<group>"; }; - F96887FD0AF786D5000797B5 /* ttkTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkTheme.c; sourceTree = "<group>"; }; - F96887FE0AF786D5000797B5 /* ttkTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ttkTheme.h; sourceTree = "<group>"; }; - F96887FF0AF786D5000797B5 /* ttkThemeInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ttkThemeInt.h; sourceTree = "<group>"; }; - F96888000AF786D5000797B5 /* ttkTrace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkTrace.c; sourceTree = "<group>"; }; - F96888010AF786D5000797B5 /* ttkTrack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkTrack.c; sourceTree = "<group>"; }; - F96888020AF786D5000797B5 /* ttkTreeview.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkTreeview.c; sourceTree = "<group>"; }; - F96888030AF786D5000797B5 /* ttkWidget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWidget.c; sourceTree = "<group>"; }; - F96888040AF786D5000797B5 /* ttkWidget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ttkWidget.h; sourceTree = "<group>"; }; - F96888370AF787B3000797B5 /* altTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = altTheme.tcl; sourceTree = "<group>"; }; - F96888380AF787B3000797B5 /* aquaTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = aquaTheme.tcl; sourceTree = "<group>"; }; - F96888390AF787B3000797B5 /* button.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = button.tcl; sourceTree = "<group>"; }; - F968883A0AF787B3000797B5 /* clamTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clamTheme.tcl; sourceTree = "<group>"; }; - F968883B0AF787B3000797B5 /* classicTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = classicTheme.tcl; sourceTree = "<group>"; }; - F968883C0AF787B3000797B5 /* combobox.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = combobox.tcl; sourceTree = "<group>"; }; - F968883D0AF787B3000797B5 /* cursors.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cursors.tcl; sourceTree = "<group>"; }; - F968883E0AF787B3000797B5 /* defaults.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = defaults.tcl; sourceTree = "<group>"; }; - F96888400AF787B3000797B5 /* entry.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry.tcl; sourceTree = "<group>"; }; - F96888410AF787B3000797B5 /* fonts.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fonts.tcl; sourceTree = "<group>"; }; - F96888440AF787B3000797B5 /* menubutton.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = menubutton.tcl; sourceTree = "<group>"; }; - F96888450AF787B3000797B5 /* notebook.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = notebook.tcl; sourceTree = "<group>"; }; - F96888460AF787B3000797B5 /* panedwindow.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = panedwindow.tcl; sourceTree = "<group>"; }; - F96888470AF787B3000797B5 /* progress.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = progress.tcl; sourceTree = "<group>"; }; - F96888480AF787B3000797B5 /* scale.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scale.tcl; sourceTree = "<group>"; }; - F96888490AF787B3000797B5 /* scrollbar.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scrollbar.tcl; sourceTree = "<group>"; }; - F968884A0AF787B3000797B5 /* sizegrip.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = sizegrip.tcl; sourceTree = "<group>"; }; - F968884B0AF787B3000797B5 /* treeview.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = treeview.tcl; sourceTree = "<group>"; }; - F968884C0AF787B3000797B5 /* ttk.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttk.tcl; sourceTree = "<group>"; }; - F968884D0AF787B3000797B5 /* utils.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = utils.tcl; sourceTree = "<group>"; }; - F968884E0AF787B3000797B5 /* winTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winTheme.tcl; sourceTree = "<group>"; }; - F968884F0AF787B3000797B5 /* xpTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = xpTheme.tcl; sourceTree = "<group>"; }; - F96888540AF7880C000797B5 /* all.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = all.tcl; sourceTree = "<group>"; }; - F96888560AF7880C000797B5 /* combobox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = combobox.test; sourceTree = "<group>"; }; - F96888570AF7880C000797B5 /* entry.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = entry.test; sourceTree = "<group>"; }; - F96888580AF7880C000797B5 /* image.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = image.test; sourceTree = "<group>"; }; - F96888590AF7880C000797B5 /* labelframe.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = labelframe.test; sourceTree = "<group>"; }; - F968885A0AF7880C000797B5 /* layout.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = layout.test; sourceTree = "<group>"; }; - F968885C0AF7880C000797B5 /* notebook.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = notebook.test; sourceTree = "<group>"; }; - F968885D0AF7880C000797B5 /* panedwindow.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = panedwindow.test; sourceTree = "<group>"; }; - F968885E0AF7880C000797B5 /* progressbar.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = progressbar.test; sourceTree = "<group>"; }; - F968885F0AF7880C000797B5 /* scrollbar.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scrollbar.test; sourceTree = "<group>"; }; - F96888600AF7880C000797B5 /* treetags.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = treetags.test; sourceTree = "<group>"; }; - F96888610AF7880C000797B5 /* treeview.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = treeview.test; sourceTree = "<group>"; }; - F96888620AF7880C000797B5 /* ttk.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ttk.test; sourceTree = "<group>"; }; - F96888630AF7880C000797B5 /* validate.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = validate.test; sourceTree = "<group>"; }; - F968886B0AF788F6000797B5 /* ttk_button.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_button.n; sourceTree = "<group>"; }; - F968886C0AF788F6000797B5 /* ttk_checkbutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_checkbutton.n; sourceTree = "<group>"; }; - F968886D0AF788F6000797B5 /* ttk_combobox.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_combobox.n; sourceTree = "<group>"; }; - F968886F0AF788F6000797B5 /* ttk_entry.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_entry.n; sourceTree = "<group>"; }; - F96888700AF788F6000797B5 /* ttk_frame.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_frame.n; sourceTree = "<group>"; }; - F96888710AF788F6000797B5 /* ttk_Geometry.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_Geometry.3; sourceTree = "<group>"; }; - F96888720AF788F6000797B5 /* ttk_image.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_image.n; sourceTree = "<group>"; }; - F96888730AF788F6000797B5 /* ttk_intro.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_intro.n; sourceTree = "<group>"; }; - F96888740AF788F6000797B5 /* ttk_label.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_label.n; sourceTree = "<group>"; }; - F96888750AF788F6000797B5 /* ttk_labelframe.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_labelframe.n; sourceTree = "<group>"; }; - F96888760AF788F6000797B5 /* ttk_menubutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_menubutton.n; sourceTree = "<group>"; }; - F96888770AF788F6000797B5 /* ttk_notebook.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_notebook.n; sourceTree = "<group>"; }; - F96888780AF788F6000797B5 /* ttk_panedwindow.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_panedwindow.n; sourceTree = "<group>"; }; - F96888790AF788F6000797B5 /* ttk_progressbar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_progressbar.n; sourceTree = "<group>"; }; - F968887A0AF788F6000797B5 /* ttk_radiobutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_radiobutton.n; sourceTree = "<group>"; }; - F968887B0AF788F6000797B5 /* ttk_scrollbar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_scrollbar.n; sourceTree = "<group>"; }; - F968887C0AF788F6000797B5 /* ttk_separator.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_separator.n; sourceTree = "<group>"; }; - F968887D0AF788F6000797B5 /* ttk_sizegrip.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_sizegrip.n; sourceTree = "<group>"; }; - F968887E0AF788F6000797B5 /* ttk_style.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_style.n; sourceTree = "<group>"; }; - F968887F0AF788F6000797B5 /* ttk_Theme.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_Theme.3; sourceTree = "<group>"; }; - F96888800AF788F6000797B5 /* ttk_treeview.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_treeview.n; sourceTree = "<group>"; }; - F96888810AF788F6000797B5 /* ttk_widget.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ttk_widget.n; sourceTree = "<group>"; }; - F96888840AF78938000797B5 /* ttkMacOSXTheme.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = ttkMacOSXTheme.c; sourceTree = "<group>"; }; - F96888860AF78953000797B5 /* ttkWinMonitor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinMonitor.c; sourceTree = "<group>"; }; - F96888870AF78953000797B5 /* ttkWinTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinTheme.c; sourceTree = "<group>"; }; - F96888880AF78953000797B5 /* ttkWinXPTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinXPTheme.c; sourceTree = "<group>"; }; - F96D3DFA08F272A4004A47F5 /* ChangeLog */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = ChangeLog; sourceTree = "<group>"; }; - F96D3DFB08F272A4004A47F5 /* changes */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes; sourceTree = "<group>"; }; - F96D3DFD08F272A4004A47F5 /* Access.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Access.3; sourceTree = "<group>"; }; - F96D3DFE08F272A4004A47F5 /* AddErrInfo.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AddErrInfo.3; sourceTree = "<group>"; }; - F96D3DFF08F272A4004A47F5 /* after.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = after.n; sourceTree = "<group>"; }; - F96D3E0008F272A4004A47F5 /* Alloc.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Alloc.3; sourceTree = "<group>"; }; - F96D3E0108F272A4004A47F5 /* AllowExc.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AllowExc.3; sourceTree = "<group>"; }; - F96D3E0208F272A4004A47F5 /* append.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = append.n; sourceTree = "<group>"; }; - F96D3E0308F272A4004A47F5 /* AppInit.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AppInit.3; sourceTree = "<group>"; }; - F96D3E0408F272A5004A47F5 /* array.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = array.n; sourceTree = "<group>"; }; - F96D3E0508F272A5004A47F5 /* AssocData.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AssocData.3; sourceTree = "<group>"; }; - F96D3E0608F272A5004A47F5 /* Async.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Async.3; sourceTree = "<group>"; }; - F96D3E0708F272A5004A47F5 /* BackgdErr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = BackgdErr.3; sourceTree = "<group>"; }; - F96D3E0808F272A5004A47F5 /* Backslash.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Backslash.3; sourceTree = "<group>"; }; - F96D3E0908F272A5004A47F5 /* bgerror.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bgerror.n; sourceTree = "<group>"; }; - F96D3E0A08F272A5004A47F5 /* binary.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = binary.n; sourceTree = "<group>"; }; - F96D3E0B08F272A5004A47F5 /* BoolObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = BoolObj.3; sourceTree = "<group>"; }; - F96D3E0C08F272A5004A47F5 /* break.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = break.n; sourceTree = "<group>"; }; - F96D3E0D08F272A5004A47F5 /* ByteArrObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ByteArrObj.3; sourceTree = "<group>"; }; - F96D3E0E08F272A5004A47F5 /* CallDel.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CallDel.3; sourceTree = "<group>"; }; - F96D3E0F08F272A5004A47F5 /* case.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = case.n; sourceTree = "<group>"; }; - F96D3E1008F272A5004A47F5 /* catch.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = catch.n; sourceTree = "<group>"; }; - F96D3E1108F272A5004A47F5 /* cd.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = cd.n; sourceTree = "<group>"; }; - F96D3E1208F272A5004A47F5 /* chan.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = chan.n; sourceTree = "<group>"; }; - F96D3E1308F272A5004A47F5 /* ChnlStack.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ChnlStack.3; sourceTree = "<group>"; }; - F96D3E1408F272A5004A47F5 /* clock.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = clock.n; sourceTree = "<group>"; }; - F96D3E1508F272A5004A47F5 /* close.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = close.n; sourceTree = "<group>"; }; - F96D3E1608F272A5004A47F5 /* CmdCmplt.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CmdCmplt.3; sourceTree = "<group>"; }; - F96D3E1708F272A5004A47F5 /* Concat.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Concat.3; sourceTree = "<group>"; }; - F96D3E1808F272A5004A47F5 /* concat.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = concat.n; sourceTree = "<group>"; }; - F96D3E1908F272A5004A47F5 /* continue.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = continue.n; sourceTree = "<group>"; }; - F96D3E1A08F272A5004A47F5 /* CrtChannel.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtChannel.3; sourceTree = "<group>"; }; - F96D3E1B08F272A5004A47F5 /* CrtChnlHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtChnlHdlr.3; sourceTree = "<group>"; }; - F96D3E1C08F272A5004A47F5 /* CrtCloseHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtCloseHdlr.3; sourceTree = "<group>"; }; - F96D3E1D08F272A5004A47F5 /* CrtCommand.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtCommand.3; sourceTree = "<group>"; }; - F96D3E1E08F272A5004A47F5 /* CrtFileHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtFileHdlr.3; sourceTree = "<group>"; }; - F96D3E1F08F272A5004A47F5 /* CrtInterp.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtInterp.3; sourceTree = "<group>"; }; - F96D3E2008F272A5004A47F5 /* CrtMathFnc.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtMathFnc.3; sourceTree = "<group>"; }; - F96D3E2108F272A5004A47F5 /* CrtObjCmd.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtObjCmd.3; sourceTree = "<group>"; }; - F96D3E2208F272A5004A47F5 /* CrtAlias.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtAlias.3; sourceTree = "<group>"; }; - F96D3E2308F272A5004A47F5 /* CrtTimerHdlr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtTimerHdlr.3; sourceTree = "<group>"; }; - F96D3E2408F272A5004A47F5 /* CrtTrace.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtTrace.3; sourceTree = "<group>"; }; - F96D3E2508F272A5004A47F5 /* dde.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = dde.n; sourceTree = "<group>"; }; - F96D3E2608F272A5004A47F5 /* DetachPids.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DetachPids.3; sourceTree = "<group>"; }; - F96D3E2708F272A5004A47F5 /* dict.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = dict.n; sourceTree = "<group>"; }; - F96D3E2808F272A5004A47F5 /* DictObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DictObj.3; sourceTree = "<group>"; }; - F96D3E2908F272A5004A47F5 /* DoOneEvent.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DoOneEvent.3; sourceTree = "<group>"; }; - F96D3E2A08F272A5004A47F5 /* DoubleObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DoubleObj.3; sourceTree = "<group>"; }; - F96D3E2B08F272A5004A47F5 /* DoWhenIdle.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DoWhenIdle.3; sourceTree = "<group>"; }; - F96D3E2C08F272A5004A47F5 /* DString.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DString.3; sourceTree = "<group>"; }; - F96D3E2D08F272A5004A47F5 /* DumpActiveMemory.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = DumpActiveMemory.3; sourceTree = "<group>"; }; - F96D3E2E08F272A5004A47F5 /* Encoding.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Encoding.3; sourceTree = "<group>"; }; - F96D3E2F08F272A5004A47F5 /* encoding.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = encoding.n; sourceTree = "<group>"; }; - F96D3E3008F272A5004A47F5 /* Ensemble.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Ensemble.3; sourceTree = "<group>"; }; - F96D3E3108F272A5004A47F5 /* Environment.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Environment.3; sourceTree = "<group>"; }; - F96D3E3208F272A5004A47F5 /* eof.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = eof.n; sourceTree = "<group>"; }; - F96D3E3308F272A5004A47F5 /* error.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = error.n; sourceTree = "<group>"; }; - F96D3E3408F272A5004A47F5 /* Eval.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Eval.3; sourceTree = "<group>"; }; - F96D3E3508F272A5004A47F5 /* eval.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = eval.n; sourceTree = "<group>"; }; - F96D3E3608F272A5004A47F5 /* exec.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = exec.n; sourceTree = "<group>"; }; - F96D3E3708F272A5004A47F5 /* Exit.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Exit.3; sourceTree = "<group>"; }; - F96D3E3808F272A5004A47F5 /* exit.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = exit.n; sourceTree = "<group>"; }; - F96D3E3908F272A5004A47F5 /* expr.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = expr.n; sourceTree = "<group>"; }; - F96D3E3A08F272A5004A47F5 /* ExprLong.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ExprLong.3; sourceTree = "<group>"; }; - F96D3E3B08F272A5004A47F5 /* ExprLongObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ExprLongObj.3; sourceTree = "<group>"; }; - F96D3E3C08F272A5004A47F5 /* fblocked.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = fblocked.n; sourceTree = "<group>"; }; - F96D3E3D08F272A5004A47F5 /* fconfigure.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = fconfigure.n; sourceTree = "<group>"; }; - F96D3E3E08F272A5004A47F5 /* fcopy.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = fcopy.n; sourceTree = "<group>"; }; - F96D3E3F08F272A5004A47F5 /* file.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = file.n; sourceTree = "<group>"; }; - F96D3E4008F272A5004A47F5 /* fileevent.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = fileevent.n; sourceTree = "<group>"; }; - F96D3E4108F272A5004A47F5 /* filename.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = filename.n; sourceTree = "<group>"; }; - F96D3E4208F272A5004A47F5 /* FileSystem.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = FileSystem.3; sourceTree = "<group>"; }; - F96D3E4308F272A5004A47F5 /* FindExec.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = FindExec.3; sourceTree = "<group>"; }; - F96D3E4408F272A5004A47F5 /* flush.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = flush.n; sourceTree = "<group>"; }; - F96D3E4508F272A5004A47F5 /* for.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = for.n; sourceTree = "<group>"; }; - F96D3E4608F272A5004A47F5 /* foreach.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = foreach.n; sourceTree = "<group>"; }; - F96D3E4708F272A5004A47F5 /* format.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = format.n; sourceTree = "<group>"; }; - F96D3E4808F272A5004A47F5 /* GetCwd.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetCwd.3; sourceTree = "<group>"; }; - F96D3E4908F272A5004A47F5 /* GetHostName.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetHostName.3; sourceTree = "<group>"; }; - F96D3E4A08F272A5004A47F5 /* GetIndex.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetIndex.3; sourceTree = "<group>"; }; - F96D3E4B08F272A5004A47F5 /* GetInt.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetInt.3; sourceTree = "<group>"; }; - F96D3E4C08F272A5004A47F5 /* GetOpnFl.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetOpnFl.3; sourceTree = "<group>"; }; - F96D3E4D08F272A5004A47F5 /* gets.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = gets.n; sourceTree = "<group>"; }; - F96D3E4E08F272A5004A47F5 /* GetStdChan.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetStdChan.3; sourceTree = "<group>"; }; - F96D3E4F08F272A5004A47F5 /* GetTime.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetTime.3; sourceTree = "<group>"; }; - F96D3E5008F272A5004A47F5 /* GetVersion.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = GetVersion.3; sourceTree = "<group>"; }; - F96D3E5108F272A5004A47F5 /* glob.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = glob.n; sourceTree = "<group>"; }; - F96D3E5208F272A6004A47F5 /* global.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = global.n; sourceTree = "<group>"; }; - F96D3E5308F272A6004A47F5 /* Hash.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Hash.3; sourceTree = "<group>"; }; - F96D3E5408F272A6004A47F5 /* history.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = history.n; sourceTree = "<group>"; }; - F96D3E5508F272A6004A47F5 /* http.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = http.n; sourceTree = "<group>"; }; - F96D3E5608F272A6004A47F5 /* if.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = if.n; sourceTree = "<group>"; }; - F96D3E5708F272A6004A47F5 /* incr.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = incr.n; sourceTree = "<group>"; }; - F96D3E5808F272A6004A47F5 /* info.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = info.n; sourceTree = "<group>"; }; - F96D3E5908F272A6004A47F5 /* Init.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Init.3; sourceTree = "<group>"; }; - F96D3E5A08F272A6004A47F5 /* InitStubs.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = InitStubs.3; sourceTree = "<group>"; }; - F96D3E5B08F272A6004A47F5 /* Interp.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Interp.3; sourceTree = "<group>"; }; - F96D3E5C08F272A6004A47F5 /* interp.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = interp.n; sourceTree = "<group>"; }; - F96D3E5D08F272A6004A47F5 /* IntObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = IntObj.3; sourceTree = "<group>"; }; - F96D3E5E08F272A6004A47F5 /* join.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = join.n; sourceTree = "<group>"; }; - F96D3E5F08F272A6004A47F5 /* lappend.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lappend.n; sourceTree = "<group>"; }; - F96D3E6008F272A6004A47F5 /* lassign.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lassign.n; sourceTree = "<group>"; }; - F96D3E6108F272A6004A47F5 /* library.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = library.n; sourceTree = "<group>"; }; - F96D3E6208F272A6004A47F5 /* Limit.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Limit.3; sourceTree = "<group>"; }; - F96D3E6308F272A6004A47F5 /* lindex.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lindex.n; sourceTree = "<group>"; }; - F96D3E6408F272A6004A47F5 /* LinkVar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = LinkVar.3; sourceTree = "<group>"; }; - F96D3E6508F272A6004A47F5 /* linsert.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = linsert.n; sourceTree = "<group>"; }; - F96D3E6608F272A6004A47F5 /* list.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = list.n; sourceTree = "<group>"; }; - F96D3E6708F272A6004A47F5 /* ListObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ListObj.3; sourceTree = "<group>"; }; - F96D3E6808F272A6004A47F5 /* llength.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = llength.n; sourceTree = "<group>"; }; - F96D3E6908F272A6004A47F5 /* load.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = load.n; sourceTree = "<group>"; }; - F96D3E6A08F272A6004A47F5 /* lrange.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lrange.n; sourceTree = "<group>"; }; - F96D3E6B08F272A6004A47F5 /* lrepeat.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lrepeat.n; sourceTree = "<group>"; }; - F96D3E6C08F272A6004A47F5 /* lreplace.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lreplace.n; sourceTree = "<group>"; }; - F96D3E6D08F272A6004A47F5 /* lsearch.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lsearch.n; sourceTree = "<group>"; }; - F96D3E6E08F272A6004A47F5 /* lset.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lset.n; sourceTree = "<group>"; }; - F96D3E6F08F272A6004A47F5 /* lsort.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = lsort.n; sourceTree = "<group>"; }; - F96D3E7008F272A6004A47F5 /* man.macros */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = man.macros; sourceTree = "<group>"; }; - F96D3E7108F272A6004A47F5 /* mathfunc.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = mathfunc.n; sourceTree = "<group>"; }; - F96D3E7208F272A6004A47F5 /* memory.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = memory.n; sourceTree = "<group>"; }; - F96D3E7308F272A6004A47F5 /* msgcat.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = msgcat.n; sourceTree = "<group>"; }; - F96D3E7408F272A6004A47F5 /* Namespace.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Namespace.3; sourceTree = "<group>"; }; - F96D3E7508F272A6004A47F5 /* namespace.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = namespace.n; sourceTree = "<group>"; }; - F96D3E7608F272A6004A47F5 /* Notifier.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Notifier.3; sourceTree = "<group>"; }; - F96D3E7708F272A6004A47F5 /* Object.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Object.3; sourceTree = "<group>"; }; - F96D3E7808F272A6004A47F5 /* ObjectType.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ObjectType.3; sourceTree = "<group>"; }; - F96D3E7908F272A6004A47F5 /* open.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = open.n; sourceTree = "<group>"; }; - F96D3E7A08F272A6004A47F5 /* OpenFileChnl.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = OpenFileChnl.3; sourceTree = "<group>"; }; - F96D3E7B08F272A6004A47F5 /* OpenTcp.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = OpenTcp.3; sourceTree = "<group>"; }; - F96D3E7C08F272A6004A47F5 /* package.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = package.n; sourceTree = "<group>"; }; - F96D3E7D08F272A6004A47F5 /* packagens.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = packagens.n; sourceTree = "<group>"; }; - F96D3E7E08F272A6004A47F5 /* Panic.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Panic.3; sourceTree = "<group>"; }; - F96D3E7F08F272A6004A47F5 /* ParseCmd.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ParseCmd.3; sourceTree = "<group>"; }; - F96D3E8008F272A6004A47F5 /* pid.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = pid.n; sourceTree = "<group>"; }; - F96D3E8108F272A6004A47F5 /* pkgMkIndex.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = pkgMkIndex.n; sourceTree = "<group>"; }; - F96D3E8208F272A6004A47F5 /* PkgRequire.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = PkgRequire.3; sourceTree = "<group>"; }; - F96D3E8308F272A6004A47F5 /* Preserve.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Preserve.3; sourceTree = "<group>"; }; - F96D3E8408F272A6004A47F5 /* PrintDbl.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = PrintDbl.3; sourceTree = "<group>"; }; - F96D3E8508F272A6004A47F5 /* proc.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = proc.n; sourceTree = "<group>"; }; - F96D3E8608F272A6004A47F5 /* puts.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = puts.n; sourceTree = "<group>"; }; - F96D3E8708F272A6004A47F5 /* pwd.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = pwd.n; sourceTree = "<group>"; }; - F96D3E8808F272A6004A47F5 /* re_syntax.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = re_syntax.n; sourceTree = "<group>"; }; - F96D3E8908F272A6004A47F5 /* read.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = read.n; sourceTree = "<group>"; }; - F96D3E8A08F272A6004A47F5 /* RecEvalObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = RecEvalObj.3; sourceTree = "<group>"; }; - F96D3E8B08F272A6004A47F5 /* RecordEval.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = RecordEval.3; sourceTree = "<group>"; }; - F96D3E8C08F272A6004A47F5 /* RegConfig.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = RegConfig.3; sourceTree = "<group>"; }; - F96D3E8D08F272A6004A47F5 /* RegExp.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = RegExp.3; sourceTree = "<group>"; }; - F96D3E8E08F272A6004A47F5 /* regexp.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = regexp.n; sourceTree = "<group>"; }; - F96D3E8F08F272A6004A47F5 /* registry.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = registry.n; sourceTree = "<group>"; }; - F96D3E9008F272A6004A47F5 /* regsub.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = regsub.n; sourceTree = "<group>"; }; - F96D3E9108F272A6004A47F5 /* rename.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = rename.n; sourceTree = "<group>"; }; - F96D3E9208F272A6004A47F5 /* return.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = return.n; sourceTree = "<group>"; }; - F96D3E9308F272A6004A47F5 /* safe.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = safe.n; sourceTree = "<group>"; }; - F96D3E9408F272A6004A47F5 /* SaveResult.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SaveResult.3; sourceTree = "<group>"; }; - F96D3E9508F272A6004A47F5 /* scan.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = scan.n; sourceTree = "<group>"; }; - F96D3E9608F272A6004A47F5 /* seek.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = seek.n; sourceTree = "<group>"; }; - F96D3E9708F272A6004A47F5 /* set.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = set.n; sourceTree = "<group>"; }; - F96D3E9808F272A6004A47F5 /* SetChanErr.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetChanErr.3; sourceTree = "<group>"; }; - F96D3E9908F272A6004A47F5 /* SetErrno.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetErrno.3; sourceTree = "<group>"; }; - F96D3E9A08F272A6004A47F5 /* SetRecLmt.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetRecLmt.3; sourceTree = "<group>"; }; - F96D3E9B08F272A7004A47F5 /* SetResult.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetResult.3; sourceTree = "<group>"; }; - F96D3E9C08F272A7004A47F5 /* SetVar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SetVar.3; sourceTree = "<group>"; }; - F96D3E9D08F272A7004A47F5 /* Signal.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Signal.3; sourceTree = "<group>"; }; - F96D3E9E08F272A7004A47F5 /* Sleep.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Sleep.3; sourceTree = "<group>"; }; - F96D3E9F08F272A7004A47F5 /* socket.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = socket.n; sourceTree = "<group>"; }; - F96D3EA008F272A7004A47F5 /* source.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = source.n; sourceTree = "<group>"; }; - F96D3EA108F272A7004A47F5 /* SourceRCFile.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SourceRCFile.3; sourceTree = "<group>"; }; - F96D3EA208F272A7004A47F5 /* split.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = split.n; sourceTree = "<group>"; }; - F96D3EA308F272A7004A47F5 /* SplitList.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SplitList.3; sourceTree = "<group>"; }; - F96D3EA408F272A7004A47F5 /* SplitPath.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SplitPath.3; sourceTree = "<group>"; }; - F96D3EA508F272A7004A47F5 /* StaticPkg.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = StaticPkg.3; sourceTree = "<group>"; }; - F96D3EA608F272A7004A47F5 /* StdChannels.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = StdChannels.3; sourceTree = "<group>"; }; - F96D3EA708F272A7004A47F5 /* string.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = string.n; sourceTree = "<group>"; }; - F96D3EA808F272A7004A47F5 /* StringObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = StringObj.3; sourceTree = "<group>"; }; - F96D3EA908F272A7004A47F5 /* StrMatch.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = StrMatch.3; sourceTree = "<group>"; }; - F96D3EAA08F272A7004A47F5 /* subst.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = subst.n; sourceTree = "<group>"; }; - F96D3EAB08F272A7004A47F5 /* SubstObj.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = SubstObj.3; sourceTree = "<group>"; }; - F96D3EAC08F272A7004A47F5 /* switch.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = switch.n; sourceTree = "<group>"; }; - F96D3EAD08F272A7004A47F5 /* Tcl.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Tcl.n; sourceTree = "<group>"; }; - F96D3EAE08F272A7004A47F5 /* Tcl_Main.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Tcl_Main.3; sourceTree = "<group>"; }; - F96D3EAF08F272A7004A47F5 /* TCL_MEM_DEBUG.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TCL_MEM_DEBUG.3; sourceTree = "<group>"; }; - F96D3EB008F272A7004A47F5 /* tclsh.1 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tclsh.1; sourceTree = "<group>"; }; - F96D3EB108F272A7004A47F5 /* tcltest.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tcltest.n; sourceTree = "<group>"; }; - F96D3EB208F272A7004A47F5 /* tclvars.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tclvars.n; sourceTree = "<group>"; }; - F96D3EB308F272A7004A47F5 /* tell.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tell.n; sourceTree = "<group>"; }; - F96D3EB408F272A7004A47F5 /* Thread.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Thread.3; sourceTree = "<group>"; }; - F96D3EB508F272A7004A47F5 /* time.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = time.n; sourceTree = "<group>"; }; - F96D3EB608F272A7004A47F5 /* tm.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tm.n; sourceTree = "<group>"; }; - F96D3EB708F272A7004A47F5 /* ToUpper.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = ToUpper.3; sourceTree = "<group>"; }; - F96D3EB808F272A7004A47F5 /* trace.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = trace.n; sourceTree = "<group>"; }; - F96D3EB908F272A7004A47F5 /* TraceCmd.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TraceCmd.3; sourceTree = "<group>"; }; - F96D3EBA08F272A7004A47F5 /* TraceVar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TraceVar.3; sourceTree = "<group>"; }; - F96D3EBB08F272A7004A47F5 /* Translate.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Translate.3; sourceTree = "<group>"; }; - F96D3EBC08F272A7004A47F5 /* UniCharIsAlpha.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = UniCharIsAlpha.3; sourceTree = "<group>"; }; - F96D3EBD08F272A7004A47F5 /* unknown.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = unknown.n; sourceTree = "<group>"; }; - F96D3EBE08F272A7004A47F5 /* unload.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = unload.n; sourceTree = "<group>"; }; - F96D3EBF08F272A7004A47F5 /* unset.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = unset.n; sourceTree = "<group>"; }; - F96D3EC008F272A7004A47F5 /* update.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = update.n; sourceTree = "<group>"; }; - F96D3EC108F272A7004A47F5 /* uplevel.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = uplevel.n; sourceTree = "<group>"; }; - F96D3EC208F272A7004A47F5 /* UpVar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = UpVar.3; sourceTree = "<group>"; }; - F96D3EC308F272A7004A47F5 /* upvar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = upvar.n; sourceTree = "<group>"; }; - F96D3EC408F272A7004A47F5 /* Utf.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Utf.3; sourceTree = "<group>"; }; - F96D3EC508F272A7004A47F5 /* variable.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = variable.n; sourceTree = "<group>"; }; - F96D3EC608F272A7004A47F5 /* vwait.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = vwait.n; sourceTree = "<group>"; }; - F96D3EC708F272A7004A47F5 /* while.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = while.n; sourceTree = "<group>"; }; - F96D3EC808F272A7004A47F5 /* WrongNumArgs.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = WrongNumArgs.3; sourceTree = "<group>"; }; - F96D3ECA08F272A7004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D3ECB08F272A7004A47F5 /* regc_color.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regc_color.c; sourceTree = "<group>"; }; - F96D3ECC08F272A7004A47F5 /* regc_cvec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regc_cvec.c; sourceTree = "<group>"; }; - F96D3ECD08F272A7004A47F5 /* regc_lex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regc_lex.c; sourceTree = "<group>"; }; - F96D3ECE08F272A7004A47F5 /* regc_locale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regc_locale.c; sourceTree = "<group>"; }; - F96D3ECF08F272A7004A47F5 /* regc_nfa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regc_nfa.c; sourceTree = "<group>"; }; - F96D3ED008F272A7004A47F5 /* regcomp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regcomp.c; sourceTree = "<group>"; }; - F96D3ED108F272A7004A47F5 /* regcustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regcustom.h; sourceTree = "<group>"; }; - F96D3ED208F272A7004A47F5 /* rege_dfa.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = rege_dfa.c; sourceTree = "<group>"; }; - F96D3ED308F272A7004A47F5 /* regerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regerror.c; sourceTree = "<group>"; }; - F96D3ED408F272A7004A47F5 /* regerrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regerrs.h; sourceTree = "<group>"; }; - F96D3ED508F272A7004A47F5 /* regex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regex.h; sourceTree = "<group>"; }; - F96D3ED608F272A7004A47F5 /* regexec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regexec.c; sourceTree = "<group>"; }; - F96D3ED708F272A7004A47F5 /* regfree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regfree.c; sourceTree = "<group>"; }; - F96D3ED808F272A7004A47F5 /* regfronts.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = regfronts.c; sourceTree = "<group>"; }; - F96D3ED908F272A7004A47F5 /* regguts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = regguts.h; sourceTree = "<group>"; }; - F96D3EDA08F272A7004A47F5 /* tcl.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tcl.decls; sourceTree = "<group>"; }; - F96D3EDB08F272A7004A47F5 /* tcl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tcl.h; sourceTree = "<group>"; }; - F96D3EDC08F272A7004A47F5 /* tclAlloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclAlloc.c; sourceTree = "<group>"; }; - F96D3EDD08F272A7004A47F5 /* tclAsync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclAsync.c; sourceTree = "<group>"; }; - F96D3EDE08F272A7004A47F5 /* tclBasic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclBasic.c; sourceTree = "<group>"; }; - F96D3EDF08F272A7004A47F5 /* tclBinary.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclBinary.c; sourceTree = "<group>"; }; - F96D3EE008F272A7004A47F5 /* tclCkalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCkalloc.c; sourceTree = "<group>"; }; - F96D3EE108F272A7004A47F5 /* tclClock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclClock.c; sourceTree = "<group>"; }; - F96D3EE208F272A7004A47F5 /* tclCmdAH.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCmdAH.c; sourceTree = "<group>"; }; - F96D3EE308F272A7004A47F5 /* tclCmdIL.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCmdIL.c; sourceTree = "<group>"; }; - F96D3EE408F272A7004A47F5 /* tclCmdMZ.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCmdMZ.c; sourceTree = "<group>"; }; - F96D3EE508F272A7004A47F5 /* tclCompCmds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCompCmds.c; sourceTree = "<group>"; }; - F96D3EE608F272A7004A47F5 /* tclCompExpr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCompExpr.c; sourceTree = "<group>"; }; - F96D3EE708F272A7004A47F5 /* tclCompile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclCompile.c; sourceTree = "<group>"; }; - F96D3EE808F272A7004A47F5 /* tclCompile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclCompile.h; sourceTree = "<group>"; }; - F96D3EE908F272A7004A47F5 /* tclConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclConfig.c; sourceTree = "<group>"; }; - F96D3EEA08F272A7004A47F5 /* tclDate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclDate.c; sourceTree = "<group>"; }; - F96D3EEB08F272A7004A47F5 /* tclDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclDecls.h; sourceTree = "<group>"; }; - F96D3EEC08F272A7004A47F5 /* tclDictObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclDictObj.c; sourceTree = "<group>"; }; - F96D3EED08F272A7004A47F5 /* tclEncoding.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclEncoding.c; sourceTree = "<group>"; }; - F96D3EEE08F272A7004A47F5 /* tclEnv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclEnv.c; sourceTree = "<group>"; }; - F96D3EEF08F272A7004A47F5 /* tclEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclEvent.c; sourceTree = "<group>"; }; - F96D3EF008F272A7004A47F5 /* tclExecute.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclExecute.c; sourceTree = "<group>"; }; - F96D3EF108F272A7004A47F5 /* tclFCmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclFCmd.c; sourceTree = "<group>"; }; - F96D3EF208F272A7004A47F5 /* tclFileName.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclFileName.c; sourceTree = "<group>"; }; - F96D3EF308F272A7004A47F5 /* tclFileSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclFileSystem.h; sourceTree = "<group>"; }; - F96D3EF408F272A7004A47F5 /* tclGet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclGet.c; sourceTree = "<group>"; }; - F96D3EF508F272A7004A47F5 /* tclGetDate.y */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.yacc; path = tclGetDate.y; sourceTree = "<group>"; }; - F96D3EF608F272A7004A47F5 /* tclHash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclHash.c; sourceTree = "<group>"; }; - F96D3EF708F272A7004A47F5 /* tclHistory.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclHistory.c; sourceTree = "<group>"; }; - F96D3EF808F272A7004A47F5 /* tclIndexObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIndexObj.c; sourceTree = "<group>"; }; - F96D3EF908F272A7004A47F5 /* tclInt.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclInt.decls; sourceTree = "<group>"; }; - F96D3EFA08F272A7004A47F5 /* tclInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclInt.h; sourceTree = "<group>"; }; - F96D3EFB08F272A7004A47F5 /* tclIntDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclIntDecls.h; sourceTree = "<group>"; }; - F96D3EFC08F272A7004A47F5 /* tclInterp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclInterp.c; sourceTree = "<group>"; }; - F96D3EFD08F272A7004A47F5 /* tclIntPlatDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclIntPlatDecls.h; sourceTree = "<group>"; }; - F96D3EFE08F272A7004A47F5 /* tclIO.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIO.c; sourceTree = "<group>"; }; - F96D3EFF08F272A7004A47F5 /* tclIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclIO.h; sourceTree = "<group>"; }; - F96D3F0008F272A7004A47F5 /* tclIOCmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIOCmd.c; sourceTree = "<group>"; }; - F96D3F0108F272A7004A47F5 /* tclIOGT.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIOGT.c; sourceTree = "<group>"; }; - F96D3F0208F272A7004A47F5 /* tclIORChan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIORChan.c; sourceTree = "<group>"; }; - F96D3F0308F272A7004A47F5 /* tclIOSock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIOSock.c; sourceTree = "<group>"; }; - F96D3F0408F272A7004A47F5 /* tclIOUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIOUtil.c; sourceTree = "<group>"; }; - F96D3F0508F272A7004A47F5 /* tclLink.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLink.c; sourceTree = "<group>"; }; - F96D3F0608F272A7004A47F5 /* tclListObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclListObj.c; sourceTree = "<group>"; }; - F96D3F0708F272A7004A47F5 /* tclLiteral.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLiteral.c; sourceTree = "<group>"; }; - F96D3F0808F272A7004A47F5 /* tclLoad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoad.c; sourceTree = "<group>"; }; - F96D3F0908F272A7004A47F5 /* tclLoadNone.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadNone.c; sourceTree = "<group>"; }; - F96D3F0A08F272A7004A47F5 /* tclMain.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclMain.c; sourceTree = "<group>"; }; - F96D3F0B08F272A7004A47F5 /* tclNamesp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclNamesp.c; sourceTree = "<group>"; }; - F96D3F0C08F272A7004A47F5 /* tclNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclNotify.c; sourceTree = "<group>"; }; - F96D3F0D08F272A7004A47F5 /* tclObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclObj.c; sourceTree = "<group>"; }; - F96D3F0E08F272A7004A47F5 /* tclPanic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPanic.c; sourceTree = "<group>"; }; - F96D3F0F08F272A7004A47F5 /* tclParse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclParse.c; sourceTree = "<group>"; }; - F96D3F1108F272A7004A47F5 /* tclPathObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPathObj.c; sourceTree = "<group>"; }; - F96D3F1208F272A7004A47F5 /* tclPipe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPipe.c; sourceTree = "<group>"; }; - F96D3F1308F272A7004A47F5 /* tclPkg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPkg.c; sourceTree = "<group>"; }; - F96D3F1408F272A7004A47F5 /* tclPkgConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPkgConfig.c; sourceTree = "<group>"; }; - F96D3F1508F272A7004A47F5 /* tclPlatDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclPlatDecls.h; sourceTree = "<group>"; }; - F96D3F1608F272A7004A47F5 /* tclPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclPort.h; sourceTree = "<group>"; }; - F96D3F1708F272A7004A47F5 /* tclPosixStr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPosixStr.c; sourceTree = "<group>"; }; - F96D3F1808F272A7004A47F5 /* tclPreserve.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclPreserve.c; sourceTree = "<group>"; }; - F96D3F1908F272A7004A47F5 /* tclProc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclProc.c; sourceTree = "<group>"; }; - F96D3F1A08F272A7004A47F5 /* tclRegexp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclRegexp.c; sourceTree = "<group>"; }; - F96D3F1B08F272A7004A47F5 /* tclRegexp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclRegexp.h; sourceTree = "<group>"; }; - F96D3F1C08F272A7004A47F5 /* tclResolve.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclResolve.c; sourceTree = "<group>"; }; - F96D3F1D08F272A7004A47F5 /* tclResult.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclResult.c; sourceTree = "<group>"; }; - F96D3F1E08F272A7004A47F5 /* tclScan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclScan.c; sourceTree = "<group>"; }; - F96D3F1F08F272A7004A47F5 /* tclStringObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclStringObj.c; sourceTree = "<group>"; }; - F96D3F2408F272A7004A47F5 /* tclStrToD.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclStrToD.c; sourceTree = "<group>"; }; - F96D3F2508F272A7004A47F5 /* tclStubInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclStubInit.c; sourceTree = "<group>"; }; - F96D3F2608F272A7004A47F5 /* tclStubLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclStubLib.c; sourceTree = "<group>"; }; - F96D3F2708F272A7004A47F5 /* tclTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTest.c; sourceTree = "<group>"; }; - F96D3F2808F272A7004A47F5 /* tclTestObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTestObj.c; sourceTree = "<group>"; }; - F96D3F2908F272A7004A47F5 /* tclTestProcBodyObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTestProcBodyObj.c; sourceTree = "<group>"; }; - F96D3F2A08F272A7004A47F5 /* tclThread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclThread.c; sourceTree = "<group>"; }; - F96D3F2B08F272A7004A47F5 /* tclThreadAlloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclThreadAlloc.c; sourceTree = "<group>"; }; - F96D3F2C08F272A7004A47F5 /* tclThreadJoin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclThreadJoin.c; sourceTree = "<group>"; }; - F96D3F2D08F272A7004A47F5 /* tclThreadStorage.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclThreadStorage.c; sourceTree = "<group>"; }; - F96D3F2E08F272A7004A47F5 /* tclThreadTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclThreadTest.c; sourceTree = "<group>"; }; - F96D3F2F08F272A7004A47F5 /* tclTimer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTimer.c; sourceTree = "<group>"; }; - F96D3F3008F272A7004A47F5 /* tclTomMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclTomMath.h; sourceTree = "<group>"; }; - F96D3F3108F272A7004A47F5 /* tclTomMathInterface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTomMathInterface.c; sourceTree = "<group>"; }; - F96D3F3208F272A7004A47F5 /* tclTrace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclTrace.c; sourceTree = "<group>"; }; - F96D3F3308F272A7004A47F5 /* tclUniData.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUniData.c; sourceTree = "<group>"; }; - F96D3F3408F272A7004A47F5 /* tclUtf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUtf.c; sourceTree = "<group>"; }; - F96D3F3508F272A7004A47F5 /* tclUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUtil.c; sourceTree = "<group>"; }; - F96D3F3608F272A7004A47F5 /* tclVar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclVar.c; sourceTree = "<group>"; }; - F96D3F3708F272A7004A47F5 /* tommath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tommath.h; sourceTree = "<group>"; }; - F96D3F3908F272A8004A47F5 /* auto.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = auto.tcl; sourceTree = "<group>"; }; - F96D3F3A08F272A8004A47F5 /* clock.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clock.tcl; sourceTree = "<group>"; }; - F96D3F3C08F272A8004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D3F8C08F272A8004A47F5 /* history.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = history.tcl; sourceTree = "<group>"; }; - F96D3F8E08F272A8004A47F5 /* http.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = http.tcl; sourceTree = "<group>"; }; - F96D3F8F08F272A8004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D3F9108F272A8004A47F5 /* http.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = http.tcl; sourceTree = "<group>"; }; - F96D3F9208F272A8004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D3F9308F272A8004A47F5 /* init.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = init.tcl; sourceTree = "<group>"; }; - F96D3F9508F272A8004A47F5 /* msgcat.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgcat.tcl; sourceTree = "<group>"; }; - F96D3F9608F272A8004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D401808F272AA004A47F5 /* optparse.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = optparse.tcl; sourceTree = "<group>"; }; - F96D401908F272AA004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D401A08F272AA004A47F5 /* package.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = package.tcl; sourceTree = "<group>"; }; - F96D401B08F272AA004A47F5 /* parray.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = parray.tcl; sourceTree = "<group>"; }; - F96D401D08F272AA004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D401E08F272AA004A47F5 /* safe.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = safe.tcl; sourceTree = "<group>"; }; - F96D401F08F272AA004A47F5 /* tclIndex */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclIndex; sourceTree = "<group>"; }; - F96D402108F272AA004A47F5 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F96D402208F272AA004A47F5 /* tcltest.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tcltest.tcl; sourceTree = "<group>"; }; - F96D402308F272AA004A47F5 /* tm.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tm.tcl; sourceTree = "<group>"; }; - F96D425B08F272B2004A47F5 /* word.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = word.tcl; sourceTree = "<group>"; }; - F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_s_mp_mul_digs.c; sourceTree = "<group>"; }; - F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_s_mp_sqr.c; sourceTree = "<group>"; }; - F96D426908F272B3004A47F5 /* bn_mp_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_add.c; sourceTree = "<group>"; }; - F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_add_d.c; sourceTree = "<group>"; }; - F96D426C08F272B3004A47F5 /* bn_mp_and.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_and.c; sourceTree = "<group>"; }; - F96D426D08F272B3004A47F5 /* bn_mp_clamp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_clamp.c; sourceTree = "<group>"; }; - F96D426E08F272B3004A47F5 /* bn_mp_clear.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_clear.c; sourceTree = "<group>"; }; - F96D426F08F272B3004A47F5 /* bn_mp_clear_multi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_clear_multi.c; sourceTree = "<group>"; }; - F96D427008F272B3004A47F5 /* bn_mp_cmp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_cmp.c; sourceTree = "<group>"; }; - F96D427108F272B3004A47F5 /* bn_mp_cmp_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_cmp_d.c; sourceTree = "<group>"; }; - F96D427208F272B3004A47F5 /* bn_mp_cmp_mag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_cmp_mag.c; sourceTree = "<group>"; }; - F96D427408F272B3004A47F5 /* bn_mp_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_copy.c; sourceTree = "<group>"; }; - F96D427508F272B3004A47F5 /* bn_mp_count_bits.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_count_bits.c; sourceTree = "<group>"; }; - F96D427608F272B3004A47F5 /* bn_mp_div.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_div.c; sourceTree = "<group>"; }; - F96D427708F272B3004A47F5 /* bn_mp_div_2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_div_2.c; sourceTree = "<group>"; }; - F96D427808F272B3004A47F5 /* bn_mp_div_2d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_div_2d.c; sourceTree = "<group>"; }; - F96D427908F272B3004A47F5 /* bn_mp_div_3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_div_3.c; sourceTree = "<group>"; }; - F96D427A08F272B3004A47F5 /* bn_mp_div_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_div_d.c; sourceTree = "<group>"; }; - F96D427E08F272B3004A47F5 /* bn_mp_exch.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exch.c; sourceTree = "<group>"; }; - F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_expt_d.c; sourceTree = "<group>"; }; - F96D428708F272B3004A47F5 /* bn_mp_grow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_grow.c; sourceTree = "<group>"; }; - F96D428808F272B3004A47F5 /* bn_mp_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init.c; sourceTree = "<group>"; }; - F96D428908F272B3004A47F5 /* bn_mp_init_copy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_copy.c; sourceTree = "<group>"; }; - F96D428A08F272B3004A47F5 /* bn_mp_init_multi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_multi.c; sourceTree = "<group>"; }; - F96D428B08F272B3004A47F5 /* bn_mp_init_set.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_set.c; sourceTree = "<group>"; }; - F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_size.c; sourceTree = "<group>"; }; - F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_karatsuba_mul.c; sourceTree = "<group>"; }; - F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_karatsuba_sqr.c; sourceTree = "<group>"; }; - F96D429508F272B3004A47F5 /* bn_mp_lshd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_lshd.c; sourceTree = "<group>"; }; - F96D429608F272B3004A47F5 /* bn_mp_mod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mod.c; sourceTree = "<group>"; }; - F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mod_2d.c; sourceTree = "<group>"; }; - F96D429C08F272B3004A47F5 /* bn_mp_mul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mul.c; sourceTree = "<group>"; }; - F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mul_2.c; sourceTree = "<group>"; }; - F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mul_2d.c; sourceTree = "<group>"; }; - F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mul_d.c; sourceTree = "<group>"; }; - F96D42A208F272B3004A47F5 /* bn_mp_neg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_neg.c; sourceTree = "<group>"; }; - F96D42A308F272B3004A47F5 /* bn_mp_or.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_or.c; sourceTree = "<group>"; }; - F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_radix_size.c; sourceTree = "<group>"; }; - F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_radix_smap.c; sourceTree = "<group>"; }; - F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_read_radix.c; sourceTree = "<group>"; }; - F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_rshd.c; sourceTree = "<group>"; }; - F96D42BA08F272B3004A47F5 /* bn_mp_set.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_set.c; sourceTree = "<group>"; }; - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_shrink.c; sourceTree = "<group>"; }; - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqr.c; sourceTree = "<group>"; }; - F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqrt.c; sourceTree = "<group>"; }; - F96D42C108F272B3004A47F5 /* bn_mp_sub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sub.c; sourceTree = "<group>"; }; - F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sub_d.c; sourceTree = "<group>"; }; - F96D42C608F272B3004A47F5 /* bn_mp_to_unsigned_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_unsigned_bin.c; sourceTree = "<group>"; }; - F96D42C708F272B3004A47F5 /* bn_mp_to_unsigned_bin_n.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_unsigned_bin_n.c; sourceTree = "<group>"; }; - F96D42C808F272B3004A47F5 /* bn_mp_toom_mul.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_toom_mul.c; sourceTree = "<group>"; }; - F96D42C908F272B3004A47F5 /* bn_mp_toom_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_toom_sqr.c; sourceTree = "<group>"; }; - F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_toradix_n.c; sourceTree = "<group>"; }; - F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_unsigned_bin_size.c; sourceTree = "<group>"; }; - F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_xor.c; sourceTree = "<group>"; }; - F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_zero.c; sourceTree = "<group>"; }; - F96D42D008F272B3004A47F5 /* bn_reverse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_reverse.c; sourceTree = "<group>"; }; - F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_add.c; sourceTree = "<group>"; }; - F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_mul_digs.c; sourceTree = "<group>"; }; - F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_sqr.c; sourceTree = "<group>"; }; - F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_sub.c; sourceTree = "<group>"; }; - F96D42D708F272B3004A47F5 /* bncore.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bncore.c; sourceTree = "<group>"; }; - F96D432908F272B4004A47F5 /* tommath_class.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tommath_class.h; sourceTree = "<group>"; }; - F96D432A08F272B4004A47F5 /* tommath_superclass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tommath_superclass.h; sourceTree = "<group>"; }; - F96D432B08F272B4004A47F5 /* license.terms */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = license.terms; sourceTree = "<group>"; }; - F96D432E08F272B5004A47F5 /* configure.ac */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure.ac; sourceTree = "<group>"; }; - F96D432F08F272B5004A47F5 /* GNUmakefile */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = GNUmakefile; sourceTree = "<group>"; }; - F96D433108F272B5004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D433208F272B5004A47F5 /* Tcl-Info.plist.in */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = "Tcl-Info.plist.in"; sourceTree = "<group>"; }; - F96D433908F272B5004A47F5 /* tclMacOSXBundle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclMacOSXBundle.c; sourceTree = "<group>"; }; - F96D433D08F272B5004A47F5 /* tclMacOSXFCmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclMacOSXFCmd.c; sourceTree = "<group>"; }; - F96D433E08F272B5004A47F5 /* tclMacOSXNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclMacOSXNotify.c; sourceTree = "<group>"; }; - F96D434308F272B5004A47F5 /* README */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = README; sourceTree = "<group>"; }; - F96D434508F272B5004A47F5 /* all.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = all.tcl; sourceTree = "<group>"; }; - F96D434608F272B5004A47F5 /* append.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = append.test; sourceTree = "<group>"; }; - F96D434708F272B5004A47F5 /* appendComp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = appendComp.test; sourceTree = "<group>"; }; - F96D434808F272B5004A47F5 /* assocd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = assocd.test; sourceTree = "<group>"; }; - F96D434908F272B5004A47F5 /* async.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = async.test; sourceTree = "<group>"; }; - F96D434A08F272B5004A47F5 /* autoMkindex.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = autoMkindex.test; sourceTree = "<group>"; }; - F96D434B08F272B5004A47F5 /* basic.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = basic.test; sourceTree = "<group>"; }; - F96D434C08F272B5004A47F5 /* binary.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = binary.test; sourceTree = "<group>"; }; - F96D434D08F272B5004A47F5 /* case.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = case.test; sourceTree = "<group>"; }; - F96D434E08F272B5004A47F5 /* chan.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = chan.test; sourceTree = "<group>"; }; - F96D434F08F272B5004A47F5 /* clock.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = clock.test; sourceTree = "<group>"; }; - F96D435008F272B5004A47F5 /* cmdAH.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmdAH.test; sourceTree = "<group>"; }; - F96D435108F272B5004A47F5 /* cmdIL.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmdIL.test; sourceTree = "<group>"; }; - F96D435208F272B5004A47F5 /* cmdInfo.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmdInfo.test; sourceTree = "<group>"; }; - F96D435308F272B5004A47F5 /* cmdMZ.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = cmdMZ.test; sourceTree = "<group>"; }; - F96D435408F272B5004A47F5 /* compExpr-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "compExpr-old.test"; sourceTree = "<group>"; }; - F96D435508F272B5004A47F5 /* compExpr.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = compExpr.test; sourceTree = "<group>"; }; - F96D435608F272B5004A47F5 /* compile.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = compile.test; sourceTree = "<group>"; }; - F96D435708F272B5004A47F5 /* concat.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = concat.test; sourceTree = "<group>"; }; - F96D435808F272B5004A47F5 /* config.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = config.test; sourceTree = "<group>"; }; - F96D435908F272B5004A47F5 /* dcall.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dcall.test; sourceTree = "<group>"; }; - F96D435A08F272B5004A47F5 /* dict.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dict.test; sourceTree = "<group>"; }; - F96D435C08F272B5004A47F5 /* dstring.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = dstring.test; sourceTree = "<group>"; }; - F96D435E08F272B5004A47F5 /* encoding.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = encoding.test; sourceTree = "<group>"; }; - F96D435F08F272B5004A47F5 /* env.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = env.test; sourceTree = "<group>"; }; - F96D436008F272B5004A47F5 /* error.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = error.test; sourceTree = "<group>"; }; - F96D436108F272B5004A47F5 /* eval.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = eval.test; sourceTree = "<group>"; }; - F96D436208F272B5004A47F5 /* event.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = event.test; sourceTree = "<group>"; }; - F96D436308F272B5004A47F5 /* exec.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = exec.test; sourceTree = "<group>"; }; - F96D436408F272B5004A47F5 /* execute.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = execute.test; sourceTree = "<group>"; }; - F96D436508F272B5004A47F5 /* expr-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "expr-old.test"; sourceTree = "<group>"; }; - F96D436608F272B5004A47F5 /* expr.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = expr.test; sourceTree = "<group>"; }; - F96D436708F272B6004A47F5 /* fCmd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fCmd.test; sourceTree = "<group>"; }; - F96D436808F272B6004A47F5 /* fileName.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fileName.test; sourceTree = "<group>"; }; - F96D436908F272B6004A47F5 /* fileSystem.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fileSystem.test; sourceTree = "<group>"; }; - F96D436A08F272B6004A47F5 /* for-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "for-old.test"; sourceTree = "<group>"; }; - F96D436B08F272B6004A47F5 /* for.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = for.test; sourceTree = "<group>"; }; - F96D436C08F272B6004A47F5 /* foreach.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = foreach.test; sourceTree = "<group>"; }; - F96D436D08F272B6004A47F5 /* format.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = format.test; sourceTree = "<group>"; }; - F96D436E08F272B6004A47F5 /* get.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = get.test; sourceTree = "<group>"; }; - F96D436F08F272B6004A47F5 /* history.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = history.test; sourceTree = "<group>"; }; - F96D437008F272B6004A47F5 /* http.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = http.test; sourceTree = "<group>"; }; - F96D437108F272B6004A47F5 /* httpd */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = httpd; sourceTree = "<group>"; }; - F96D437208F272B6004A47F5 /* httpold.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = httpold.test; sourceTree = "<group>"; }; - F96D437308F272B6004A47F5 /* if-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "if-old.test"; sourceTree = "<group>"; }; - F96D437408F272B6004A47F5 /* if.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = if.test; sourceTree = "<group>"; }; - F96D437508F272B6004A47F5 /* incr-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "incr-old.test"; sourceTree = "<group>"; }; - F96D437608F272B6004A47F5 /* incr.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = incr.test; sourceTree = "<group>"; }; - F96D437708F272B6004A47F5 /* indexObj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = indexObj.test; sourceTree = "<group>"; }; - F96D437808F272B6004A47F5 /* info.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = info.test; sourceTree = "<group>"; }; - F96D437908F272B6004A47F5 /* init.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = init.test; sourceTree = "<group>"; }; - F96D437A08F272B6004A47F5 /* interp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = interp.test; sourceTree = "<group>"; }; - F96D437B08F272B6004A47F5 /* io.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = io.test; sourceTree = "<group>"; }; - F96D437C08F272B6004A47F5 /* ioCmd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = ioCmd.test; sourceTree = "<group>"; }; - F96D437D08F272B6004A47F5 /* iogt.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = iogt.test; sourceTree = "<group>"; }; - F96D437F08F272B6004A47F5 /* join.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = join.test; sourceTree = "<group>"; }; - F96D438008F272B6004A47F5 /* lindex.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lindex.test; sourceTree = "<group>"; }; - F96D438108F272B6004A47F5 /* link.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = link.test; sourceTree = "<group>"; }; - F96D438208F272B6004A47F5 /* linsert.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = linsert.test; sourceTree = "<group>"; }; - F96D438308F272B6004A47F5 /* list.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = list.test; sourceTree = "<group>"; }; - F96D438408F272B6004A47F5 /* listObj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = listObj.test; sourceTree = "<group>"; }; - F96D438508F272B6004A47F5 /* llength.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = llength.test; sourceTree = "<group>"; }; - F96D438608F272B6004A47F5 /* load.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = load.test; sourceTree = "<group>"; }; - F96D438708F272B6004A47F5 /* lrange.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lrange.test; sourceTree = "<group>"; }; - F96D438808F272B6004A47F5 /* lrepeat.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lrepeat.test; sourceTree = "<group>"; }; - F96D438908F272B6004A47F5 /* lreplace.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lreplace.test; sourceTree = "<group>"; }; - F96D438A08F272B6004A47F5 /* lsearch.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lsearch.test; sourceTree = "<group>"; }; - F96D438B08F272B6004A47F5 /* lset.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lset.test; sourceTree = "<group>"; }; - F96D438C08F272B6004A47F5 /* lsetComp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = lsetComp.test; sourceTree = "<group>"; }; - F96D438D08F272B6004A47F5 /* macOSXFCmd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = macOSXFCmd.test; sourceTree = "<group>"; }; - F96D438E08F272B6004A47F5 /* main.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = main.test; sourceTree = "<group>"; }; - F96D438F08F272B6004A47F5 /* misc.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = misc.test; sourceTree = "<group>"; }; - F96D439008F272B6004A47F5 /* msgcat.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgcat.test; sourceTree = "<group>"; }; - F96D439108F272B6004A47F5 /* namespace-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "namespace-old.test"; sourceTree = "<group>"; }; - F96D439208F272B7004A47F5 /* namespace.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = namespace.test; sourceTree = "<group>"; }; - F96D439308F272B7004A47F5 /* notify.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = notify.test; sourceTree = "<group>"; }; - F96D439408F272B7004A47F5 /* obj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = obj.test; sourceTree = "<group>"; }; - F96D439508F272B7004A47F5 /* opt.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = opt.test; sourceTree = "<group>"; }; - F96D439608F272B7004A47F5 /* package.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = package.test; sourceTree = "<group>"; }; - F96D439708F272B7004A47F5 /* parse.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = parse.test; sourceTree = "<group>"; }; - F96D439808F272B7004A47F5 /* parseExpr.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = parseExpr.test; sourceTree = "<group>"; }; - F96D439908F272B7004A47F5 /* parseOld.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = parseOld.test; sourceTree = "<group>"; }; - F96D439A08F272B7004A47F5 /* pid.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pid.test; sourceTree = "<group>"; }; - F96D439B08F272B7004A47F5 /* pkg.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkg.test; sourceTree = "<group>"; }; - F96D439C08F272B7004A47F5 /* pkgMkIndex.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgMkIndex.test; sourceTree = "<group>"; }; - F96D439D08F272B7004A47F5 /* platform.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = platform.test; sourceTree = "<group>"; }; - F96D439E08F272B7004A47F5 /* proc-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "proc-old.test"; sourceTree = "<group>"; }; - F96D439F08F272B7004A47F5 /* proc.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = proc.test; sourceTree = "<group>"; }; - F96D43A008F272B7004A47F5 /* pwd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pwd.test; sourceTree = "<group>"; }; - F96D43A108F272B7004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D43A208F272B7004A47F5 /* reg.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = reg.test; sourceTree = "<group>"; }; - F96D43A308F272B7004A47F5 /* regexp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = regexp.test; sourceTree = "<group>"; }; - F96D43A408F272B7004A47F5 /* regexpComp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = regexpComp.test; sourceTree = "<group>"; }; - F96D43A508F272B7004A47F5 /* registry.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = registry.test; sourceTree = "<group>"; }; - F96D43A608F272B7004A47F5 /* remote.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = remote.tcl; sourceTree = "<group>"; }; - F96D43A708F272B7004A47F5 /* rename.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = rename.test; sourceTree = "<group>"; }; - F96D43A808F272B7004A47F5 /* result.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = result.test; sourceTree = "<group>"; }; - F96D43A908F272B7004A47F5 /* safe.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = safe.test; sourceTree = "<group>"; }; - F96D43AA08F272B7004A47F5 /* scan.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = scan.test; sourceTree = "<group>"; }; - F96D43AB08F272B7004A47F5 /* security.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = security.test; sourceTree = "<group>"; }; - F96D43AC08F272B7004A47F5 /* set-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "set-old.test"; sourceTree = "<group>"; }; - F96D43AD08F272B7004A47F5 /* set.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = set.test; sourceTree = "<group>"; }; - F96D43AE08F272B7004A47F5 /* socket.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = socket.test; sourceTree = "<group>"; }; - F96D43AF08F272B7004A47F5 /* source.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = source.test; sourceTree = "<group>"; }; - F96D43B008F272B7004A47F5 /* split.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = split.test; sourceTree = "<group>"; }; - F96D43B108F272B7004A47F5 /* stack.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = stack.test; sourceTree = "<group>"; }; - F96D43B208F272B7004A47F5 /* string.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = string.test; sourceTree = "<group>"; }; - F96D43B308F272B7004A47F5 /* stringComp.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = stringComp.test; sourceTree = "<group>"; }; - F96D43B408F272B7004A47F5 /* stringObj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = stringObj.test; sourceTree = "<group>"; }; - F96D43B508F272B7004A47F5 /* subst.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = subst.test; sourceTree = "<group>"; }; - F96D43B608F272B7004A47F5 /* switch.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = switch.test; sourceTree = "<group>"; }; - F96D43B708F272B7004A47F5 /* tcltest.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tcltest.test; sourceTree = "<group>"; }; - F96D43B808F272B7004A47F5 /* thread.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = thread.test; sourceTree = "<group>"; }; - F96D43B908F272B7004A47F5 /* timer.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = timer.test; sourceTree = "<group>"; }; - F96D43BA08F272B7004A47F5 /* tm.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tm.test; sourceTree = "<group>"; }; - F96D43BB08F272B7004A47F5 /* trace.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = trace.test; sourceTree = "<group>"; }; - F96D43BC08F272B7004A47F5 /* unixFCmd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixFCmd.test; sourceTree = "<group>"; }; - F96D43BD08F272B7004A47F5 /* unixFile.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixFile.test; sourceTree = "<group>"; }; - F96D43BE08F272B7004A47F5 /* unixInit.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixInit.test; sourceTree = "<group>"; }; - F96D43BF08F272B7004A47F5 /* unixNotfy.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unixNotfy.test; sourceTree = "<group>"; }; - F96D43C008F272B7004A47F5 /* unknown.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unknown.test; sourceTree = "<group>"; }; - F96D43C108F272B7004A47F5 /* unload.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = unload.test; sourceTree = "<group>"; }; - F96D43C208F272B7004A47F5 /* uplevel.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = uplevel.test; sourceTree = "<group>"; }; - F96D43C308F272B7004A47F5 /* upvar.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = upvar.test; sourceTree = "<group>"; }; - F96D43C408F272B7004A47F5 /* utf.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = utf.test; sourceTree = "<group>"; }; - F96D43C508F272B7004A47F5 /* util.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = util.test; sourceTree = "<group>"; }; - F96D43C608F272B7004A47F5 /* var.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = var.test; sourceTree = "<group>"; }; - F96D43C708F272B7004A47F5 /* while-old.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "while-old.test"; sourceTree = "<group>"; }; - F96D43C808F272B7004A47F5 /* while.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = while.test; sourceTree = "<group>"; }; - F96D43C908F272B7004A47F5 /* winConsole.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winConsole.test; sourceTree = "<group>"; }; - F96D43CA08F272B7004A47F5 /* winDde.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winDde.test; sourceTree = "<group>"; }; - F96D43CB08F272B7004A47F5 /* winFCmd.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winFCmd.test; sourceTree = "<group>"; }; - F96D43CC08F272B7004A47F5 /* winFile.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winFile.test; sourceTree = "<group>"; }; - F96D43CD08F272B7004A47F5 /* winNotify.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winNotify.test; sourceTree = "<group>"; }; - F96D43CE08F272B7004A47F5 /* winPipe.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winPipe.test; sourceTree = "<group>"; }; - F96D43CF08F272B7004A47F5 /* winTime.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winTime.test; sourceTree = "<group>"; }; - F96D43D108F272B8004A47F5 /* checkLibraryDoc.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = checkLibraryDoc.tcl; sourceTree = "<group>"; }; - F96D43D208F272B8004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D43D308F272B8004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; - F96D442208F272B8004A47F5 /* eolFix.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = eolFix.tcl; sourceTree = "<group>"; }; - F96D442408F272B8004A47F5 /* fix_tommath_h.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fix_tommath_h.tcl; sourceTree = "<group>"; }; - F96D442508F272B8004A47F5 /* genStubs.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = genStubs.tcl; sourceTree = "<group>"; }; - F96D442708F272B8004A47F5 /* index.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = index.tcl; sourceTree = "<group>"; }; - F96D442808F272B8004A47F5 /* installData.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = installData.tcl; sourceTree = "<group>"; }; - F96D442908F272B8004A47F5 /* loadICU.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = loadICU.tcl; sourceTree = "<group>"; }; - F96D442A08F272B8004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F96D442B08F272B8004A47F5 /* makeTestCases.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = makeTestCases.tcl; sourceTree = "<group>"; }; - F96D442C08F272B8004A47F5 /* man2help.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = man2help.tcl; sourceTree = "<group>"; }; - F96D442D08F272B8004A47F5 /* man2help2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = man2help2.tcl; sourceTree = "<group>"; }; - F96D442E08F272B8004A47F5 /* man2html.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = man2html.tcl; sourceTree = "<group>"; }; - F96D442F08F272B8004A47F5 /* man2html1.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = man2html1.tcl; sourceTree = "<group>"; }; - F96D443008F272B8004A47F5 /* man2html2.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = man2html2.tcl; sourceTree = "<group>"; }; - F96D443108F272B8004A47F5 /* man2tcl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = man2tcl.c; sourceTree = "<group>"; }; - F96D443208F272B8004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D443308F272B8004A47F5 /* regexpTestLib.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = regexpTestLib.tcl; sourceTree = "<group>"; }; - F96D443508F272B8004A47F5 /* tcl.hpj.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.hpj.in; sourceTree = "<group>"; }; - F96D443608F272B8004A47F5 /* tcl.wse.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.wse.in; sourceTree = "<group>"; }; - F96D443908F272B9004A47F5 /* tcltk-man2html.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = "tcltk-man2html.tcl"; sourceTree = "<group>"; }; - F96D443A08F272B9004A47F5 /* tclZIC.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclZIC.tcl; sourceTree = "<group>"; }; - F96D443B08F272B9004A47F5 /* uniClass.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = uniClass.tcl; sourceTree = "<group>"; }; - F96D443C08F272B9004A47F5 /* uniParse.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = uniParse.tcl; sourceTree = "<group>"; }; - F96D444008F272B9004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; - F96D444108F272B9004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D444208F272B9004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; - F96D444408F272B9004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F96D444508F272B9004A47F5 /* pkga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkga.c; sourceTree = "<group>"; }; - F96D444608F272B9004A47F5 /* pkgb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkgb.c; sourceTree = "<group>"; }; - F96D444708F272B9004A47F5 /* pkgc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkgc.c; sourceTree = "<group>"; }; - F96D444808F272B9004A47F5 /* pkgd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkgd.c; sourceTree = "<group>"; }; - F96D444908F272B9004A47F5 /* pkge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkge.c; sourceTree = "<group>"; }; - F96D444B08F272B9004A47F5 /* pkgua.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkgua.c; sourceTree = "<group>"; }; - F96D444C08F272B9004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D444D08F272B9004A47F5 /* install-sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "install-sh"; sourceTree = "<group>"; }; - F96D444E08F272B9004A47F5 /* installManPage */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = installManPage; sourceTree = "<group>"; }; - F96D444F08F272B9004A47F5 /* ldAix */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = ldAix; sourceTree = "<group>"; }; - F96D445008F272B9004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F96D445208F272B9004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D445308F272B9004A47F5 /* tcl.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tcl.m4; sourceTree = "<group>"; }; - F96D445408F272B9004A47F5 /* tcl.spec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.spec; sourceTree = "<group>"; }; - F96D445508F272B9004A47F5 /* tclAppInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclAppInit.c; sourceTree = "<group>"; }; - F96D445608F272B9004A47F5 /* tclConfig.h.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = tclConfig.h.in; sourceTree = "<group>"; }; - F96D445708F272B9004A47F5 /* tclConfig.sh.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tclConfig.sh.in; sourceTree = "<group>"; }; - F96D445808F272B9004A47F5 /* tclLoadAix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadAix.c; sourceTree = "<group>"; }; - F96D445908F272B9004A47F5 /* tclLoadDl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadDl.c; sourceTree = "<group>"; }; - F96D445B08F272B9004A47F5 /* tclLoadDyld.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadDyld.c; sourceTree = "<group>"; }; - F96D445C08F272B9004A47F5 /* tclLoadNext.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadNext.c; sourceTree = "<group>"; }; - F96D445D08F272B9004A47F5 /* tclLoadOSF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadOSF.c; sourceTree = "<group>"; }; - F96D445E08F272B9004A47F5 /* tclLoadShl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclLoadShl.c; sourceTree = "<group>"; }; - F96D445F08F272B9004A47F5 /* tclUnixChan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixChan.c; sourceTree = "<group>"; }; - F96D446008F272B9004A47F5 /* tclUnixEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixEvent.c; sourceTree = "<group>"; }; - F96D446108F272B9004A47F5 /* tclUnixFCmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixFCmd.c; sourceTree = "<group>"; }; - F96D446208F272B9004A47F5 /* tclUnixFile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixFile.c; sourceTree = "<group>"; }; - F96D446308F272B9004A47F5 /* tclUnixInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixInit.c; sourceTree = "<group>"; }; - F96D446408F272B9004A47F5 /* tclUnixNotfy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixNotfy.c; sourceTree = "<group>"; }; - F96D446508F272B9004A47F5 /* tclUnixPipe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixPipe.c; sourceTree = "<group>"; }; - F96D446608F272B9004A47F5 /* tclUnixPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclUnixPort.h; sourceTree = "<group>"; }; - F96D446708F272B9004A47F5 /* tclUnixSock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixSock.c; sourceTree = "<group>"; }; - F96D446808F272B9004A47F5 /* tclUnixTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixTest.c; sourceTree = "<group>"; }; - F96D446908F272B9004A47F5 /* tclUnixThrd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixThrd.c; sourceTree = "<group>"; }; - F96D446A08F272B9004A47F5 /* tclUnixThrd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclUnixThrd.h; sourceTree = "<group>"; }; - F96D446B08F272B9004A47F5 /* tclUnixTime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixTime.c; sourceTree = "<group>"; }; - F96D446C08F272B9004A47F5 /* tclXtNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtNotify.c; sourceTree = "<group>"; }; - F96D446D08F272B9004A47F5 /* tclXtTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclXtTest.c; sourceTree = "<group>"; }; - F96D447008F272BA004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; - F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; - F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; - F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D447508F272BA004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; - F96D447708F272BA004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; - F96D447808F272BA004A47F5 /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; - F96D447908F272BA004A47F5 /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; - F96D447A08F272BA004A47F5 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F96D447C08F272BA004A47F5 /* rules.vc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.vc; sourceTree = "<group>"; }; - F96D447D08F272BA004A47F5 /* stub16.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stub16.c; sourceTree = "<group>"; }; - F96D447E08F272BA004A47F5 /* tcl.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.dsp; sourceTree = "<group>"; }; - F96D447F08F272BA004A47F5 /* tcl.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.dsw; sourceTree = "<group>"; }; - F96D448008F272BA004A47F5 /* tcl.hpj.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.hpj.in; sourceTree = "<group>"; }; - F96D448108F272BA004A47F5 /* tcl.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tcl.m4; sourceTree = "<group>"; }; - F96D448208F272BA004A47F5 /* tcl.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.rc; sourceTree = "<group>"; }; - F96D448308F272BA004A47F5 /* tclAppInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclAppInit.c; sourceTree = "<group>"; }; - F96D448408F272BA004A47F5 /* tclConfig.sh.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tclConfig.sh.in; sourceTree = "<group>"; }; - F96D448608F272BA004A47F5 /* tclsh.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tclsh.rc; sourceTree = "<group>"; }; - F96D448708F272BA004A47F5 /* tclWin32Dll.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWin32Dll.c; sourceTree = "<group>"; }; - F96D448808F272BA004A47F5 /* tclWinChan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinChan.c; sourceTree = "<group>"; }; - F96D448908F272BA004A47F5 /* tclWinConsole.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinConsole.c; sourceTree = "<group>"; }; - F96D448A08F272BA004A47F5 /* tclWinDde.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinDde.c; sourceTree = "<group>"; }; - F96D448B08F272BA004A47F5 /* tclWinError.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinError.c; sourceTree = "<group>"; }; - F96D448C08F272BA004A47F5 /* tclWinFCmd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinFCmd.c; sourceTree = "<group>"; }; - F96D448D08F272BA004A47F5 /* tclWinFile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinFile.c; sourceTree = "<group>"; }; - F96D448E08F272BA004A47F5 /* tclWinInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinInit.c; sourceTree = "<group>"; }; - F96D448F08F272BA004A47F5 /* tclWinInt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclWinInt.h; sourceTree = "<group>"; }; - F96D449008F272BA004A47F5 /* tclWinLoad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinLoad.c; sourceTree = "<group>"; }; - F96D449108F272BA004A47F5 /* tclWinNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinNotify.c; sourceTree = "<group>"; }; - F96D449208F272BA004A47F5 /* tclWinPipe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinPipe.c; sourceTree = "<group>"; }; - F96D449308F272BA004A47F5 /* tclWinPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclWinPort.h; sourceTree = "<group>"; }; - F96D449408F272BA004A47F5 /* tclWinReg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinReg.c; sourceTree = "<group>"; }; - F96D449508F272BA004A47F5 /* tclWinSerial.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinSerial.c; sourceTree = "<group>"; }; - F96D449608F272BA004A47F5 /* tclWinSock.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinSock.c; sourceTree = "<group>"; }; - F96D449708F272BA004A47F5 /* tclWinTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinTest.c; sourceTree = "<group>"; }; - F96D449808F272BA004A47F5 /* tclWinThrd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinThrd.c; sourceTree = "<group>"; }; - F96D449908F272BA004A47F5 /* tclWinThrd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclWinThrd.h; sourceTree = "<group>"; }; - F96D449A08F272BA004A47F5 /* tclWinTime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclWinTime.c; sourceTree = "<group>"; }; - F973E5960EE99384001A648E /* vistaTheme.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = vistaTheme.tcl; sourceTree = "<group>"; }; - F974D56C0FBE7D6300BF728B /* http11.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = http11.test; sourceTree = "<group>"; }; - F974D56D0FBE7D6300BF728B /* httpd11.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = httpd11.tcl; sourceTree = "<group>"; }; - F974D5720FBE7DC600BF728B /* coroutine.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = coroutine.n; sourceTree = "<group>"; }; - F974D5760FBE7E1900BF728B /* tailcall.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = tailcall.n; sourceTree = "<group>"; }; - F974D5770FBE7E6100BF728B /* coroutine.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = coroutine.test; sourceTree = "<group>"; }; - F974D5780FBE7E6100BF728B /* tailcall.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tailcall.test; sourceTree = "<group>"; }; - F974D5790FBE7E9C00BF728B /* tcl.pc.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tcl.pc.in; sourceTree = "<group>"; }; - F974D57B0FBE7EC000BF728B /* tk.pc.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk.pc.in; sourceTree = "<group>"; }; - F974D57C0FBE7EFF00BF728B /* iconlist.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = iconlist.tcl; sourceTree = "<group>"; }; - F974D57D0FBE7EFF00BF728B /* icons.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = icons.tcl; sourceTree = "<group>"; }; - F97590AE1039A96200558A9A /* Wish.sdef */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.sdef; path = Wish.sdef; sourceTree = "<group>"; }; - F976F6A70C325FB6005066D9 /* tkMacOSXPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXPrivate.h; sourceTree = "<group>"; }; - F97AE7F10B65C1E900310EA2 /* Tk-Common.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tk-Common.xcconfig"; sourceTree = "<group>"; }; - F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tk-Release.xcconfig"; sourceTree = "<group>"; }; - F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Tk-Debug.xcconfig"; sourceTree = "<group>"; }; - F98383650F0FA43900171CA6 /* checkbutton.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = checkbutton.test; sourceTree = "<group>"; }; - F98383680F0FA44700171CA6 /* radiobutton.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = radiobutton.test; sourceTree = "<group>"; }; - F9903CAF094FAADA004613E9 /* tclTomMath.decls */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = tclTomMath.decls; sourceTree = "<group>"; }; - F9903CB0094FAADA004613E9 /* tclTomMathDecls.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tclTomMathDecls.h; sourceTree = "<group>"; }; - F99388380EE0114B0065FE6B /* fontchooser.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fontchooser.tcl; sourceTree = "<group>"; }; - F99388950EE02D980065FE6B /* fontchooser.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fontchooser.test; sourceTree = "<group>"; }; - F99D61180EF5573A00BBFE01 /* TclZlib.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = TclZlib.3; sourceTree = "<group>"; }; - F9A3082D08F2D4AB00BAE1AB /* Tk.framework */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.framework; path = Tk.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F9A3084B08F2D4CE00BAE1AB /* Wish.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Wish.app; sourceTree = BUILT_PRODUCTS_DIR; }; - F9A3084E08F2D4F400BAE1AB /* Tcl.framework */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.framework; path = Tcl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F9A493240CEBF38300B78AE2 /* chanio.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = chanio.test; sourceTree = "<group>"; }; - F9C888C20EEF6571003F63AD /* fontchooser.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = fontchooser.n; sourceTree = "<group>"; }; - F9C9CBFF0E84059800E00935 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; }; - F9D1360A0CDC252C00DBE0B5 /* mclist.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = mclist.tcl; sourceTree = "<group>"; }; - F9DD99BC0F07DF850018B2E4 /* tkImgPNG.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkImgPNG.c; sourceTree = "<group>"; }; - F9DD99BF0F07DFCD0018B2E4 /* imgPNG.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = imgPNG.test; sourceTree = "<group>"; }; - F9ECB1120B26521500A28025 /* pkgIndex.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = pkgIndex.tcl; sourceTree = "<group>"; }; - F9ECB1130B26521500A28025 /* platform.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = platform.tcl; sourceTree = "<group>"; }; - F9ECB1140B26521500A28025 /* shell.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = shell.tcl; sourceTree = "<group>"; }; - F9ECB1CA0B2652D300A28025 /* apply.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = apply.test; sourceTree = "<group>"; }; - F9ECB1CB0B26534C00A28025 /* mathop.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = mathop.test; sourceTree = "<group>"; }; - F9ECB1E10B26543C00A28025 /* platform_shell.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = platform_shell.n; sourceTree = "<group>"; }; - F9ECB1E20B26543C00A28025 /* platform.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = platform.n; sourceTree = "<group>"; }; - F9F4415D0C8BAE6F00BCCD67 /* tclDTrace.d */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.dtrace; path = tclDTrace.d; sourceTree = "<group>"; }; - F9F4EFDC0CC7B3CA00378A27 /* ttkpane.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; languageSpecificationIdentifier = shell; path = ttkpane.tcl; sourceTree = "<group>"; }; - F9F4EFDD0CC7B3CB00378A27 /* ttkmenu.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; languageSpecificationIdentifier = shell; path = ttkmenu.tcl; sourceTree = "<group>"; }; - F9FC77B70AB29E9100B7077D /* tclUnixCompat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclUnixCompat.c; sourceTree = "<group>"; }; - F9FD31F40CC1AD070073837D /* tktest-X11 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "tktest-X11"; sourceTree = BUILT_PRODUCTS_DIR; }; - F9FD32140CC1AF170073837D /* libX11.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libX11.dylib; path = /usr/X11R6/lib/libX11.dylib; sourceTree = "<absolute>"; }; - F9FD32150CC1AF170073837D /* libXext.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libXext.dylib; path = /usr/X11R6/lib/libXext.dylib; sourceTree = "<absolute>"; }; - F9FD32160CC1AF170073837D /* libXss.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libXss.dylib; path = /usr/X11R6/lib/libXss.dylib; sourceTree = "<absolute>"; }; - F9FD34990CC1BB0D0073837D /* libfreetype.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libfreetype.dylib; path = /usr/X11R6/lib/libfreetype.dylib; sourceTree = "<absolute>"; }; - F9FD349A0CC1BB0D0073837D /* libXft.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libXft.dylib; path = /usr/X11R6/lib/libXft.dylib; sourceTree = "<absolute>"; }; - F9FD34C30CC1BBD70073837D /* libfontconfig.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libfontconfig.dylib; path = /usr/X11R6/lib/libfontconfig.dylib; sourceTree = "<absolute>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8DD76FAD0486AB0100D96B5E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F966C07508F2820D005CB29B /* CoreFoundation.framework in Frameworks */, - F96437E70EF0D652003F468E /* libz.dylib in Frameworks */, - F966C07708F2821B005CB29B /* Carbon.framework in Frameworks */, - F966C07908F28233005CB29B /* IOKit.framework in Frameworks */, - F94523A20E6FC2AC00C1D987 /* Cocoa.framework in Frameworks */, - F9C9CC000E84059800E00935 /* ApplicationServices.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F9FD31E30CC1AD070073837D /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F9FD31E40CC1AD070073837D /* CoreFoundation.framework in Frameworks */, - F96437E80EF0D652003F468E /* libz.dylib in Frameworks */, - F9FD32170CC1AF170073837D /* libX11.dylib in Frameworks */, - F9FD32180CC1AF170073837D /* libXext.dylib in Frameworks */, - F9FD32190CC1AF170073837D /* libXss.dylib in Frameworks */, - F9FD349C0CC1BB0D0073837D /* libXft.dylib in Frameworks */, - F9FD349B0CC1BB0D0073837D /* libfreetype.dylib in Frameworks */, - F9FD34C40CC1BBD70073837D /* libfontconfig.dylib in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08FB7794FE84155DC02AAC07 /* Tk */ = { - isa = PBXGroup; - children = ( - F96D3DF708F271BE004A47F5 /* Tk Sources */, - F96D3DF608F27169004A47F5 /* Tcl Sources */, - F966C06F08F281DC005CB29B /* Frameworks */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - comments = "Copyright (c) 2004-2009 Daniel A. Steffen <das@users.sourceforge.net>\nCopyright 2008-2009, Apple Inc.\n\nSee the file \"license.terms\" for information on usage and redistribution of\nthis file, and for a DISCLAIMER OF ALL WARRANTIES.\n"; - name = Tk; - path = .; - sourceTree = SOURCE_ROOT; - }; - 1AB674ADFE9D54B511CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - F9A3084B08F2D4CE00BAE1AB /* Wish.app */, - F9A3082D08F2D4AB00BAE1AB /* Tk.framework */, - F9A3084E08F2D4F400BAE1AB /* Tcl.framework */, - 8DD76FB20486AB0100D96B5E /* tktest */, - F9FD31F40CC1AD070073837D /* tktest-X11 */, - ); - includeInIndex = 0; - name = Products; - sourceTree = "<group>"; - }; - F9183E690EFC81560030B814 /* pkgs */ = { - isa = PBXGroup; - children = ( - F9183E6A0EFC81560030B814 /* README */, - F946FB8B0FBE3AED00CD6495 /* itcl */, - F9183E8F0EFC817B0030B814 /* tdbc */, - ); - path = pkgs; - sourceTree = "<group>"; - }; - F966BA0308F27A37005CB29B /* bitmaps */ = { - isa = PBXGroup; - children = ( - F966BA0408F27A37005CB29B /* error.xbm */, - F966BA0508F27A37005CB29B /* gray12.xbm */, - F966BA0608F27A37005CB29B /* gray25.xbm */, - F966BA0708F27A37005CB29B /* gray50.xbm */, - F966BA0808F27A37005CB29B /* gray75.xbm */, - F966BA0908F27A37005CB29B /* hourglass.xbm */, - F966BA0A08F27A37005CB29B /* info.xbm */, - F966BA0B08F27A37005CB29B /* questhead.xbm */, - F966BA0C08F27A37005CB29B /* question.xbm */, - F966BA0D08F27A37005CB29B /* warning.xbm */, - ); - path = bitmaps; - sourceTree = "<group>"; - }; - F966BA1008F27A37005CB29B /* doc */ = { - isa = PBXGroup; - children = ( - F966BA1108F27A37005CB29B /* 3DBorder.3 */, - F966BA1208F27A37005CB29B /* AddOption.3 */, - F966BA1308F27A37005CB29B /* bell.n */, - F966BA1408F27A37005CB29B /* bind.n */, - F966BA1508F27A37005CB29B /* BindTable.3 */, - F966BA1608F27A37005CB29B /* bindtags.n */, - F966BA1708F27A37005CB29B /* bitmap.n */, - F966BA1808F27A37005CB29B /* button.n */, - F966BA1908F27A37005CB29B /* canvas.n */, - F966BA1A08F27A37005CB29B /* CanvPsY.3 */, - F966BA1B08F27A37005CB29B /* CanvTkwin.3 */, - F966BA1C08F27A37005CB29B /* CanvTxtInfo.3 */, - F966BA1D08F27A37005CB29B /* checkbutton.n */, - F966BA1E08F27A37005CB29B /* chooseColor.n */, - F966BA1F08F27A37005CB29B /* chooseDirectory.n */, - F966BA2008F27A37005CB29B /* Clipboard.3 */, - F966BA2108F27A37005CB29B /* clipboard.n */, - F966BA2208F27A37005CB29B /* ClrSelect.3 */, - F966BA2308F27A37005CB29B /* colors.n */, - F966BA2408F27A37005CB29B /* ConfigWidg.3 */, - F966BA2508F27A37005CB29B /* ConfigWind.3 */, - F966BA2608F27A37005CB29B /* console.n */, - F966BA2708F27A37005CB29B /* CoordToWin.3 */, - F966BA2808F27A37005CB29B /* CrtCmHdlr.3 */, - F966BA2908F27A37005CB29B /* CrtErrHdlr.3 */, - F966BA2A08F27A37005CB29B /* CrtGenHdlr.3 */, - F966BA2B08F27A37005CB29B /* CrtImgType.3 */, - F966BA2C08F27A37005CB29B /* CrtItemType.3 */, - F966BA2D08F27A37005CB29B /* CrtPhImgFmt.3 */, - F966BA2E08F27A37005CB29B /* CrtSelHdlr.3 */, - F966BA2F08F27A37005CB29B /* CrtWindow.3 */, - F966BA3008F27A37005CB29B /* cursors.n */, - F966BA3108F27A37005CB29B /* DeleteImg.3 */, - F966BA3208F27A37005CB29B /* destroy.n */, - F966BA3308F27A37005CB29B /* dialog.n */, - F966BA3408F27A37005CB29B /* DrawFocHlt.3 */, - F966BA3508F27A37005CB29B /* entry.n */, - F966BA3608F27A37005CB29B /* event.n */, - F966BA3708F27A37005CB29B /* EventHndlr.3 */, - F966BA3808F27A37005CB29B /* FindPhoto.3 */, - F966BA3908F27A37005CB29B /* focus.n */, - F966BA3A08F27A37005CB29B /* focusNext.n */, - F966BA3B08F27A37005CB29B /* font.n */, - F9C888C20EEF6571003F63AD /* fontchooser.n */, - F966BA3C08F27A37005CB29B /* FontId.3 */, - F966BA3D08F27A37005CB29B /* frame.n */, - F966BA3E08F27A37005CB29B /* FreeXId.3 */, - F966BA3F08F27A37005CB29B /* GeomReq.3 */, - F966BA4008F27A37005CB29B /* GetAnchor.3 */, - F966BA4108F27A37005CB29B /* GetBitmap.3 */, - F966BA4208F27A37005CB29B /* GetCapStyl.3 */, - F966BA4308F27A37005CB29B /* GetClrmap.3 */, - F966BA4408F27A37005CB29B /* GetColor.3 */, - F966BA4508F27A37005CB29B /* GetCursor.3 */, - F966BA4608F27A37005CB29B /* GetDash.3 */, - F966BA4708F27A37005CB29B /* GetFont.3 */, - F966BA4808F27A37005CB29B /* GetGC.3 */, - F966BA4908F27A37005CB29B /* GetHINSTANCE.3 */, - F966BA4A08F27A37005CB29B /* GetHWND.3 */, - F966BA4B08F27A37005CB29B /* GetImage.3 */, - F966BA4C08F27A37005CB29B /* GetJoinStl.3 */, - F966BA4D08F27A37005CB29B /* GetJustify.3 */, - F966BA4E08F27A37005CB29B /* getOpenFile.n */, - F966BA4F08F27A37005CB29B /* GetOption.3 */, - F966BA5008F27A38005CB29B /* GetPixels.3 */, - F966BA5108F27A38005CB29B /* GetPixmap.3 */, - F966BA5208F27A38005CB29B /* GetRelief.3 */, - F966BA5308F27A38005CB29B /* GetRootCrd.3 */, - F966BA5408F27A38005CB29B /* GetScroll.3 */, - F966BA5508F27A38005CB29B /* GetSelect.3 */, - F966BA5608F27A38005CB29B /* GetUid.3 */, - F966BA5708F27A38005CB29B /* GetVisual.3 */, - F966BA5808F27A38005CB29B /* GetVRoot.3 */, - F966BA5908F27A38005CB29B /* Grab.3 */, - F966BA5A08F27A38005CB29B /* grab.n */, - F966BA5B08F27A38005CB29B /* grid.n */, - F966BA5C08F27A38005CB29B /* HandleEvent.3 */, - F966BA5D08F27A38005CB29B /* HWNDToWindow.3 */, - F966BA5E08F27A38005CB29B /* IdToWindow.3 */, - F966BA5F08F27A38005CB29B /* image.n */, - F966BA6008F27A38005CB29B /* ImgChanged.3 */, - F966BA6108F27A38005CB29B /* Inactive.3 */, - F966BA6208F27A38005CB29B /* InternAtom.3 */, - F966BA6308F27A38005CB29B /* keysyms.n */, - F966BA6408F27A38005CB29B /* label.n */, - F966BA6508F27A38005CB29B /* labelframe.n */, - F966BA6608F27A38005CB29B /* listbox.n */, - F966BA6708F27A38005CB29B /* loadTk.n */, - F966BA6808F27A38005CB29B /* lower.n */, - F966BA6908F27A38005CB29B /* MainLoop.3 */, - F966BA6A08F27A38005CB29B /* MaintGeom.3 */, - F966BA6B08F27A38005CB29B /* MainWin.3 */, - F966BA6D08F27A38005CB29B /* ManageGeom.3 */, - F966BA6E08F27A38005CB29B /* MapWindow.3 */, - F966BA6F08F27A38005CB29B /* MeasureChar.3 */, - F966BA7008F27A38005CB29B /* menu.n */, - F966BA7108F27A38005CB29B /* menubar.n */, - F966BA7208F27A38005CB29B /* menubutton.n */, - F966BA7308F27A38005CB29B /* message.n */, - F966BA7408F27A38005CB29B /* messageBox.n */, - F966BA7508F27A38005CB29B /* MoveToplev.3 */, - F966BA7608F27A38005CB29B /* Name.3 */, - F966BA7708F27A38005CB29B /* NameOfImg.3 */, - F966BA7808F27A38005CB29B /* option.n */, - F966BA7908F27A38005CB29B /* optionMenu.n */, - F966BA7A08F27A38005CB29B /* options.n */, - F966BA7B08F27A38005CB29B /* OwnSelect.3 */, - F966BA7C08F27A38005CB29B /* pack-old.n */, - F966BA7D08F27A38005CB29B /* pack.n */, - F966BA7E08F27A38005CB29B /* palette.n */, - F966BA7F08F27A38005CB29B /* panedwindow.n */, - F966BA8008F27A38005CB29B /* ParseArgv.3 */, - F966BA8108F27A38005CB29B /* photo.n */, - F966BA8208F27A38005CB29B /* place.n */, - F966BA8308F27A38005CB29B /* popup.n */, - F966BA8408F27A38005CB29B /* QWinEvent.3 */, - F966BA8508F27A38005CB29B /* radiobutton.n */, - F966BA8608F27A38005CB29B /* raise.n */, - F966BA8708F27A38005CB29B /* Restack.3 */, - F966BA8808F27A38005CB29B /* RestrictEv.3 */, - F966BA8908F27A38005CB29B /* scale.n */, - F966BA8A08F27A38005CB29B /* scrollbar.n */, - F966BA8B08F27A38005CB29B /* selection.n */, - F966BA8C08F27A38005CB29B /* send.n */, - F966BA8D08F27A38005CB29B /* SetAppName.3 */, - F966BA8E08F27A38005CB29B /* SetCaret.3 */, - F966BA8F08F27A38005CB29B /* SetClass.3 */, - F966BA9008F27A38005CB29B /* SetClassProcs.3 */, - F966BA9108F27A38005CB29B /* SetGrid.3 */, - F966BA9208F27A38005CB29B /* SetOptions.3 */, - F966BA9308F27A38005CB29B /* SetVisual.3 */, - F966BA9408F27A38005CB29B /* spinbox.n */, - F966BA9508F27A38005CB29B /* StrictMotif.3 */, - F966BA9608F27A38005CB29B /* text.n */, - F966BA9708F27A38005CB29B /* TextLayout.3 */, - F966BA9808F27A38005CB29B /* tk.n */, - F966BA9A08F27A38005CB29B /* Tk_Init.3 */, - F966BA9B08F27A38005CB29B /* Tk_Main.3 */, - F966BA9C08F27A38005CB29B /* tkerror.n */, - F966BA9D08F27A38005CB29B /* TkInitStubs.3 */, - F966BA9E08F27A38005CB29B /* tkvars.n */, - F966BA9F08F27A38005CB29B /* tkwait.n */, - F966BAA008F27A38005CB29B /* toplevel.n */, - F968886B0AF788F6000797B5 /* ttk_button.n */, - F968886C0AF788F6000797B5 /* ttk_checkbutton.n */, - F968886D0AF788F6000797B5 /* ttk_combobox.n */, - F968886F0AF788F6000797B5 /* ttk_entry.n */, - F96888700AF788F6000797B5 /* ttk_frame.n */, - F96888710AF788F6000797B5 /* ttk_Geometry.3 */, - F96888720AF788F6000797B5 /* ttk_image.n */, - F96888730AF788F6000797B5 /* ttk_intro.n */, - F96888740AF788F6000797B5 /* ttk_label.n */, - F96888750AF788F6000797B5 /* ttk_labelframe.n */, - F96888760AF788F6000797B5 /* ttk_menubutton.n */, - F96888770AF788F6000797B5 /* ttk_notebook.n */, - F96888780AF788F6000797B5 /* ttk_panedwindow.n */, - F96888790AF788F6000797B5 /* ttk_progressbar.n */, - F968887A0AF788F6000797B5 /* ttk_radiobutton.n */, - F968887B0AF788F6000797B5 /* ttk_scrollbar.n */, - F968887C0AF788F6000797B5 /* ttk_separator.n */, - F968887D0AF788F6000797B5 /* ttk_sizegrip.n */, - F968887E0AF788F6000797B5 /* ttk_style.n */, - F968887F0AF788F6000797B5 /* ttk_Theme.3 */, - F96888800AF788F6000797B5 /* ttk_treeview.n */, - F96888810AF788F6000797B5 /* ttk_widget.n */, - F966BAA108F27A38005CB29B /* WindowId.3 */, - F966BAA208F27A38005CB29B /* winfo.n */, - F966BAA308F27A38005CB29B /* wish.1 */, - F966BAA408F27A38005CB29B /* wm.n */, - ); - path = doc; - sourceTree = "<group>"; - }; - F966BAA508F27A38005CB29B /* generic */ = { - isa = PBXGroup; - children = ( - F966BAA608F27A38005CB29B /* default.h */, - F966BAA708F27A38005CB29B /* ks_names.h */, - F966BAA908F27A39005CB29B /* README */, - F966BAAA08F27A39005CB29B /* tk.decls */, - F966BAAB08F27A39005CB29B /* tk.h */, - F966BAAC08F27A39005CB29B /* tk3d.c */, - F966BAAD08F27A39005CB29B /* tk3d.h */, - F966BAAE08F27A39005CB29B /* tkArgv.c */, - F966BAAF08F27A39005CB29B /* tkAtom.c */, - F966BAB008F27A39005CB29B /* tkBind.c */, - F966BAB108F27A39005CB29B /* tkBitmap.c */, - F9152B080EAF8A5000CD5C7B /* tkBusy.c */, - F966BAB208F27A39005CB29B /* tkButton.c */, - F966BAB308F27A39005CB29B /* tkButton.h */, - F966BAB408F27A39005CB29B /* tkCanvArc.c */, - F966BAB508F27A39005CB29B /* tkCanvas.c */, - F966BAB608F27A39005CB29B /* tkCanvas.h */, - F966BAB708F27A39005CB29B /* tkCanvBmap.c */, - F966BAB808F27A39005CB29B /* tkCanvImg.c */, - F966BAB908F27A39005CB29B /* tkCanvLine.c */, - F966BABA08F27A39005CB29B /* tkCanvPoly.c */, - F966BABB08F27A39005CB29B /* tkCanvPs.c */, - F966BABD08F27A39005CB29B /* tkCanvText.c */, - F966BABE08F27A39005CB29B /* tkCanvUtil.c */, - F966BABF08F27A39005CB29B /* tkCanvWind.c */, - F966BAC008F27A39005CB29B /* tkClipboard.c */, - F966BAC108F27A39005CB29B /* tkCmds.c */, - F966BAC208F27A39005CB29B /* tkColor.c */, - F966BAC308F27A39005CB29B /* tkColor.h */, - F966BAC408F27A39005CB29B /* tkConfig.c */, - F966BAC508F27A39005CB29B /* tkConsole.c */, - F966BAC608F27A39005CB29B /* tkCursor.c */, - F966BAC708F27A39005CB29B /* tkDecls.h */, - F966BAC808F27A39005CB29B /* tkEntry.c */, - F966BAC908F27A39005CB29B /* tkEntry.h */, - F966BACA08F27A39005CB29B /* tkError.c */, - F966BACB08F27A39005CB29B /* tkEvent.c */, - F966BACC08F27A39005CB29B /* tkFileFilter.c */, - F966BACD08F27A39005CB29B /* tkFileFilter.h */, - F966BACE08F27A39005CB29B /* tkFocus.c */, - F966BACF08F27A39005CB29B /* tkFont.c */, - F966BAD008F27A39005CB29B /* tkFont.h */, - F966BAD108F27A39005CB29B /* tkFrame.c */, - F966BAD208F27A39005CB29B /* tkGC.c */, - F966BAD308F27A39005CB29B /* tkGeometry.c */, - F966BAD408F27A39005CB29B /* tkGet.c */, - F966BAD508F27A39005CB29B /* tkGrab.c */, - F966BAD608F27A39005CB29B /* tkGrid.c */, - F966BAD708F27A39005CB29B /* tkImage.c */, - F966BAD808F27A39005CB29B /* tkImgBmap.c */, - F966BAD908F27A39005CB29B /* tkImgGIF.c */, - F92EE8BE0E62F846001A6E80 /* tkImgPhInstance.c */, - F966BADA08F27A39005CB29B /* tkImgPhoto.c */, - F9DD99BC0F07DF850018B2E4 /* tkImgPNG.c */, - F966BADB08F27A39005CB29B /* tkImgPPM.c */, - F966BADC08F27A39005CB29B /* tkImgUtil.c */, - F966BADE08F27A39005CB29B /* tkInt.decls */, - F966BADF08F27A39005CB29B /* tkInt.h */, - F966BAE108F27A39005CB29B /* tkIntDecls.h */, - F966BAE208F27A39005CB29B /* tkIntPlatDecls.h */, - F966BAE308F27A39005CB29B /* tkIntXlibDecls.h */, - F966BAE408F27A39005CB29B /* tkListbox.c */, - F966BAE508F27A39005CB29B /* tkMacWinMenu.c */, - F966BAE608F27A39005CB29B /* tkMain.c */, - F966BAE708F27A39005CB29B /* tkMenu.c */, - F966BAE808F27A39005CB29B /* tkMenu.h */, - F966BAE908F27A39005CB29B /* tkMenubutton.c */, - F966BAEA08F27A39005CB29B /* tkMenubutton.h */, - F966BAEB08F27A39005CB29B /* tkMenuDraw.c */, - F966BAEC08F27A39005CB29B /* tkMessage.c */, - F966BAED08F27A39005CB29B /* tkObj.c */, - F966BAEE08F27A39005CB29B /* tkOldConfig.c */, - F966BAEF08F27A39005CB29B /* tkOption.c */, - F966BAF008F27A39005CB29B /* tkPack.c */, - F966BAF108F27A39005CB29B /* tkPanedWindow.c */, - F966BAF208F27A39005CB29B /* tkPlace.c */, - F966BAF308F27A39005CB29B /* tkPlatDecls.h */, - F966BAF408F27A39005CB29B /* tkPointer.c */, - F966BAF508F27A39005CB29B /* tkPort.h */, - F966BAF608F27A39005CB29B /* tkRectOval.c */, - F966BAF708F27A39005CB29B /* tkScale.c */, - F966BAF808F27A39005CB29B /* tkScale.h */, - F966BAF908F27A39005CB29B /* tkScrollbar.c */, - F966BAFA08F27A39005CB29B /* tkScrollbar.h */, - F966BAFB08F27A39005CB29B /* tkSelect.c */, - F966BAFC08F27A39005CB29B /* tkSelect.h */, - F966BAFD08F27A39005CB29B /* tkSquare.c */, - F966BAFE08F27A39005CB29B /* tkOldTest.c */, - F966BAFF08F27A39005CB29B /* tkStubInit.c */, - F966BB0008F27A39005CB29B /* tkStubLib.c */, - F966BB0108F27A39005CB29B /* tkStyle.c */, - F966BB0208F27A39005CB29B /* tkTest.c */, - F966BB0308F27A39005CB29B /* tkText.c */, - F966BB0408F27A39005CB29B /* tkText.h */, - F966BB0508F27A39005CB29B /* tkTextBTree.c */, - F966BB0608F27A39005CB29B /* tkTextDisp.c */, - F966BB0808F27A39005CB29B /* tkTextImage.c */, - F966BB0908F27A39005CB29B /* tkTextIndex.c */, - F966BB0A08F27A39005CB29B /* tkTextMark.c */, - F966BB0B08F27A39005CB29B /* tkTextTag.c */, - F966BB0C08F27A39005CB29B /* tkTextWind.c */, - F966BB0D08F27A39005CB29B /* tkTrig.c */, - F966BB0E08F27A39005CB29B /* tkUndo.c */, - F966BB0F08F27A39005CB29B /* tkUndo.h */, - F966BB1008F27A39005CB29B /* tkUtil.c */, - F966BB1108F27A39005CB29B /* tkVisual.c */, - F966BB1208F27A39005CB29B /* tkWindow.c */, - F96887DF0AF786D5000797B5 /* ttk */, - ); - path = generic; - sourceTree = "<group>"; - }; - F966BB1308F27A39005CB29B /* library */ = { - isa = PBXGroup; - children = ( - F966BB1408F27A39005CB29B /* bgerror.tcl */, - F966BB1508F27A39005CB29B /* button.tcl */, - F966BB1608F27A39005CB29B /* choosedir.tcl */, - F966BB1708F27A39005CB29B /* clrpick.tcl */, - F966BB1808F27A39005CB29B /* comdlg.tcl */, - F966BB1908F27A39005CB29B /* console.tcl */, - F966BB1A08F27A39005CB29B /* demos */, - F966BB6208F27A3A005CB29B /* dialog.tcl */, - F966BB6308F27A3A005CB29B /* entry.tcl */, - F966BB6408F27A3A005CB29B /* focus.tcl */, - F99388380EE0114B0065FE6B /* fontchooser.tcl */, - F974D57C0FBE7EFF00BF728B /* iconlist.tcl */, - F974D57D0FBE7EFF00BF728B /* icons.tcl */, - F966BB7308F27A3A005CB29B /* listbox.tcl */, - F966BB7408F27A3A005CB29B /* menu.tcl */, - F966BB7508F27A3A005CB29B /* mkpsenc.tcl */, - F966BB7608F27A3A005CB29B /* msgbox.tcl */, - F966BB8608F27A3A005CB29B /* obsolete.tcl */, - F966BB8708F27A3A005CB29B /* optMenu.tcl */, - F966BB8808F27A3A005CB29B /* palette.tcl */, - F966BB8908F27A3B005CB29B /* panedwindow.tcl */, - F966BB8B08F27A3B005CB29B /* safetk.tcl */, - F966BB8C08F27A3B005CB29B /* scale.tcl */, - F966BB8D08F27A3B005CB29B /* scrlbar.tcl */, - F966BB8E08F27A3B005CB29B /* spinbox.tcl */, - F966BB8F08F27A3B005CB29B /* tclIndex */, - F966BB9008F27A3B005CB29B /* tearoff.tcl */, - F966BB9108F27A3B005CB29B /* text.tcl */, - F966BB9208F27A3B005CB29B /* tk.tcl */, - F966BB9308F27A3B005CB29B /* tkfbox.tcl */, - F96888360AF787B3000797B5 /* ttk */, - F966BB9408F27A3B005CB29B /* unsupported.tcl */, - F966BB9508F27A3B005CB29B /* xmfbox.tcl */, - ); - path = library; - sourceTree = "<group>"; - }; - F966BB1A08F27A39005CB29B /* demos */ = { - isa = PBXGroup; - children = ( - F966BB1B08F27A39005CB29B /* anilabel.tcl */, - F966BB1C08F27A39005CB29B /* aniwave.tcl */, - F966BB1D08F27A39005CB29B /* arrow.tcl */, - F966BB1E08F27A39005CB29B /* bind.tcl */, - F966BB1F08F27A39005CB29B /* bitmap.tcl */, - F966BB2008F27A39005CB29B /* browse */, - F966BB2108F27A39005CB29B /* button.tcl */, - F966BB2208F27A39005CB29B /* check.tcl */, - F966BB2308F27A39005CB29B /* clrpick.tcl */, - F966BB2408F27A39005CB29B /* colors.tcl */, - F936FCDB0CCD984600716967 /* combo.tcl */, - F966BB2508F27A39005CB29B /* cscroll.tcl */, - F966BB2608F27A39005CB29B /* ctext.tcl */, - F966BB2708F27A39005CB29B /* dialog1.tcl */, - F966BB2808F27A39005CB29B /* dialog2.tcl */, - F966BB2A08F27A39005CB29B /* entry1.tcl */, - F966BB2B08F27A39005CB29B /* entry2.tcl */, - F966BB2C08F27A39005CB29B /* entry3.tcl */, - F966BB2D08F27A39005CB29B /* filebox.tcl */, - F966BB2E08F27A39005CB29B /* floor.tcl */, - F91543270EF201A90032D1E8 /* fontchoose.tcl */, - F966BB2F08F27A39005CB29B /* form.tcl */, - F966BB3008F27A39005CB29B /* goldberg.tcl */, - F966BB3108F27A39005CB29B /* hello */, - F966BB3208F27A39005CB29B /* hscale.tcl */, - F966BB3308F27A39005CB29B /* icon.tcl */, - F966BB3408F27A39005CB29B /* image1.tcl */, - F966BB3508F27A39005CB29B /* image2.tcl */, - F966BB4208F27A3A005CB29B /* items.tcl */, - F966BB4308F27A3A005CB29B /* ixset */, - F92240290D7C620F005EC715 /* knightstour.tcl */, - F966BB4408F27A3A005CB29B /* label.tcl */, - F966BB4508F27A3A005CB29B /* labelframe.tcl */, - F9D1360A0CDC252C00DBE0B5 /* mclist.tcl */, - F966BB4608F27A3A005CB29B /* menu.tcl */, - F966BB4708F27A3A005CB29B /* menubu.tcl */, - F966BB4808F27A3A005CB29B /* msgbox.tcl */, - F966BB4A08F27A3A005CB29B /* paned1.tcl */, - F966BB4B08F27A3A005CB29B /* paned2.tcl */, - F966BB4C08F27A3A005CB29B /* pendulum.tcl */, - F966BB4D08F27A3A005CB29B /* plot.tcl */, - F966BB4E08F27A3A005CB29B /* puzzle.tcl */, - F966BB4F08F27A3A005CB29B /* radio.tcl */, - F966BB5008F27A3A005CB29B /* README */, - F966BB5108F27A3A005CB29B /* rmt */, - F966BB5208F27A3A005CB29B /* rolodex */, - F966BB5308F27A3A005CB29B /* ruler.tcl */, - F966BB5408F27A3A005CB29B /* sayings.tcl */, - F966BB5508F27A3A005CB29B /* search.tcl */, - F966BB5608F27A3A005CB29B /* spin.tcl */, - F966BB5708F27A3A005CB29B /* square */, - F966BB5808F27A3A005CB29B /* states.tcl */, - F966BB5908F27A3A005CB29B /* style.tcl */, - F966BB5A08F27A3A005CB29B /* tclIndex */, - F966BB5B08F27A3A005CB29B /* tcolor */, - F966BB5C08F27A3A005CB29B /* text.tcl */, - F9099B8A0CC67D30005A9580 /* textpeer.tcl */, - F966BB5D08F27A3A005CB29B /* timer */, - F936FCD90CCD984600716967 /* toolbar.tcl */, - F936FCD80CCD984600716967 /* tree.tcl */, - F9099B8B0CC67D3E005A9580 /* ttkbut.tcl */, - F9F4EFDD0CC7B3CB00378A27 /* ttkmenu.tcl */, - F936FCDA0CCD984600716967 /* ttknote.tcl */, - F9F4EFDC0CC7B3CA00378A27 /* ttkpane.tcl */, - F936FCD70CCD984500716967 /* ttkprogress.tcl */, - F966BB5E08F27A3A005CB29B /* twind.tcl */, - F966BB5F08F27A3A005CB29B /* unicodeout.tcl */, - F966BB6008F27A3A005CB29B /* vscale.tcl */, - F966BB6108F27A3A005CB29B /* widget */, - ); - path = demos; - sourceTree = "<group>"; - }; - F966BB9708F27A3B005CB29B /* macosx */ = { - isa = PBXGroup; - children = ( - F966BBBA08F27A3B005CB29B /* configure.ac */, - F966BBBB08F27A3B005CB29B /* GNUmakefile */, - F966BBBE08F27A3B005CB29B /* README */, - F966BBC008F27A3B005CB29B /* Tk-Info.plist.in */, - F966BBC208F27A3B005CB29B /* tkMacOSX.h */, - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */, - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */, - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */, - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */, - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */, - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */, - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.h */, - F966BBCD08F27A3B005CB29B /* tkMacOSXDebug.c */, - F966BBCE08F27A3B005CB29B /* tkMacOSXDebug.h */, - F966BBCF08F27A3B005CB29B /* tkMacOSXDefault.h */, - F966BBD008F27A3B005CB29B /* tkMacOSXDialog.c */, - F966BBD108F27A3B005CB29B /* tkMacOSXDraw.c */, - F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */, - F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */, - F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */, - F966BBD508F27A3B005CB29B /* tkMacOSXEvent.h */, - F966BBD608F27A3B005CB29B /* tkMacOSXFont.c */, - F93E5EFD09CF8711008FA367 /* tkMacOSXFont.h */, - F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */, - F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */, - F966BBDA08F27A3B005CB29B /* tkMacOSXInt.h */, - F966BBDB08F27A3B005CB29B /* tkMacOSXKeyboard.c */, - F966BBDC08F27A3B005CB29B /* tkMacOSXKeyEvent.c */, - F966BBDD08F27A3B005CB29B /* tkMacOSXMenu.c */, - F966BBE008F27A3B005CB29B /* tkMacOSXMenubutton.c */, - F966BBE108F27A3B005CB29B /* tkMacOSXMenus.c */, - F966BBE208F27A3B005CB29B /* tkMacOSXMouseEvent.c */, - F966BBE308F27A3B005CB29B /* tkMacOSXNotify.c */, - F966BBEA08F27A3C005CB29B /* tkMacOSXPort.h */, - F976F6A70C325FB6005066D9 /* tkMacOSXPrivate.h */, - F966BBEB08F27A3C005CB29B /* tkMacOSXRegion.c */, - F966BBEC08F27A3C005CB29B /* tkMacOSXScale.c */, - F966BBED08F27A3C005CB29B /* tkMacOSXScrlbr.c */, - F966BBEE08F27A3C005CB29B /* tkMacOSXSend.c */, - F966BBEF08F27A3C005CB29B /* tkMacOSXSubwindows.c */, - F966BBF008F27A3C005CB29B /* tkMacOSXTest.c */, - F966BBF108F27A3C005CB29B /* tkMacOSXWindowEvent.c */, - F966BBF208F27A3C005CB29B /* tkMacOSXWm.c */, - F966BBF308F27A3C005CB29B /* tkMacOSXWm.h */, - F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.h */, - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */, - F96888840AF78938000797B5 /* ttkMacOSXTheme.c */, - F95D8D4B0F1715610006B020 /* Tk.icns */, - F95D8D4C0F1715610006B020 /* Tk.tiff */, - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */, - F97590AE1039A96200558A9A /* Wish.sdef */, - F97AE7F10B65C1E900310EA2 /* Tk-Common.xcconfig */, - F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */, - F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */, - ); - path = macosx; - sourceTree = "<group>"; - }; - F966BC0408F27A3C005CB29B /* tests */ = { - isa = PBXGroup; - children = ( - F966BC0508F27A3C005CB29B /* all.tcl */, - F966BC0608F27A3C005CB29B /* arc.tcl */, - F966BC0708F27A3C005CB29B /* bell.test */, - F966BC0808F27A3C005CB29B /* bevel.tcl */, - F966BC0908F27A3C005CB29B /* bgerror.test */, - F966BC0A08F27A3C005CB29B /* bind.test */, - F966BC0B08F27A3C005CB29B /* bitmap.test */, - F966BC0C08F27A3C005CB29B /* border.test */, - F966BC0D08F27A3C005CB29B /* bugs.tcl */, - F966BC0E08F27A3C005CB29B /* butGeom.tcl */, - F966BC0F08F27A3C005CB29B /* butGeom2.tcl */, - F966BC1008F27A3C005CB29B /* button.test */, - F966BC1108F27A3C005CB29B /* canvas.test */, - F966BC1208F27A3C005CB29B /* canvImg.test */, - F966BC1308F27A3C005CB29B /* canvPs.test */, - F966BC1408F27A3C005CB29B /* canvPsArc.tcl */, - F966BC1508F27A3C005CB29B /* canvPsBmap.tcl */, - F966BC1608F27A3C005CB29B /* canvPsGrph.tcl */, - F966BC1708F27A3C005CB29B /* canvPsImg.tcl */, - F966BC1808F27A3C005CB29B /* canvPsText.tcl */, - F966BC1908F27A3C005CB29B /* canvRect.test */, - F966BC1A08F27A3C005CB29B /* canvText.test */, - F966BC1B08F27A3C005CB29B /* canvWind.test */, - F966BC1C08F27A3C005CB29B /* choosedir.test */, - F966BC1D08F27A3C005CB29B /* clipboard.test */, - F966BC1E08F27A3C005CB29B /* clrpick.test */, - F966BC1F08F27A3C005CB29B /* cmap.tcl */, - F966BC2008F27A3C005CB29B /* cmds.test */, - F966BC2108F27A3C005CB29B /* color.test */, - F966BC2208F27A3C005CB29B /* config.test */, - F966BC2308F27A3C005CB29B /* constraints.tcl */, - F966BC2408F27A3C005CB29B /* cursor.test */, - F966BC2508F27A3C005CB29B /* dialog.test */, - F966BC2608F27A3C005CB29B /* embed.test */, - F966BC2708F27A3C005CB29B /* entry.test */, - F966BC2808F27A3C005CB29B /* event.test */, - F966BC2908F27A3C005CB29B /* filebox.test */, - F966BC2A08F27A3C005CB29B /* focus.test */, - F966BC2B08F27A3C005CB29B /* focusTcl.test */, - F966BC2C08F27A3C005CB29B /* font.test */, - F99388950EE02D980065FE6B /* fontchooser.test */, - F966BC2D08F27A3C005CB29B /* frame.test */, - F966BC2E08F27A3C005CB29B /* geometry.test */, - F966BC2F08F27A3C005CB29B /* get.test */, - F966BC3008F27A3C005CB29B /* grab.test */, - F966BC3108F27A3C005CB29B /* grid.test */, - F966BC3308F27A3C005CB29B /* image.test */, - F966BC3408F27A3C005CB29B /* imgBmap.test */, - F966BC3508F27A3C005CB29B /* imgPhoto.test */, - F9DD99BF0F07DFCD0018B2E4 /* imgPNG.test */, - F966BC3608F27A3C005CB29B /* imgPPM.test */, - F966BC3708F27A3C005CB29B /* listbox.test */, - F966BC3808F27A3C005CB29B /* main.test */, - F966BC3908F27A3C005CB29B /* menu.test */, - F966BC3A08F27A3C005CB29B /* menubut.test */, - F966BC3B08F27A3C005CB29B /* menuDraw.test */, - F966BC3C08F27A3C005CB29B /* message.test */, - F966BC3D08F27A3C005CB29B /* msgbox.test */, - F966BC3E08F27A3C005CB29B /* obj.test */, - F966BC3F08F27A3C005CB29B /* oldpack.test */, - F966BC4008F27A3C005CB29B /* option.file1 */, - F966BC4108F27A3C005CB29B /* option.file2 */, - F966BC4208F27A3C005CB29B /* option.test */, - F966BC4308F27A3C005CB29B /* pack.test */, - F966BC4408F27A3C005CB29B /* panedwindow.test */, - F966BC4508F27A3D005CB29B /* place.test */, - F966BC4608F27A3D005CB29B /* raise.test */, - F966BC4708F27A3D005CB29B /* README */, - F966BC4808F27A3D005CB29B /* safe.test */, - F966BC4908F27A3D005CB29B /* scale.test */, - F966BC4A08F27A3D005CB29B /* scrollbar.test */, - F966BC4B08F27A3D005CB29B /* select.test */, - F966BC4C08F27A3D005CB29B /* send.test */, - F966BC4D08F27A3D005CB29B /* spinbox.test */, - F966BC4E08F27A3D005CB29B /* text.test */, - F966BC4F08F27A3D005CB29B /* textBTree.test */, - F966BC5008F27A3D005CB29B /* textDisp.test */, - F966BC5108F27A3D005CB29B /* textImage.test */, - F966BC5208F27A3D005CB29B /* textIndex.test */, - F966BC5308F27A3D005CB29B /* textMark.test */, - F966BC5408F27A3D005CB29B /* textTag.test */, - F966BC5508F27A3D005CB29B /* textWind.test */, - F966BC5608F27A3D005CB29B /* tk.test */, - F96888530AF7880C000797B5 /* ttk */, - F966BC5708F27A3D005CB29B /* unixButton.test */, - F966BC5808F27A3D005CB29B /* unixEmbed.test */, - F966BC5908F27A3D005CB29B /* unixFont.test */, - F966BC5A08F27A3D005CB29B /* unixMenu.test */, - F966BC5B08F27A3D005CB29B /* unixSelect.test */, - F966BC5C08F27A3D005CB29B /* unixWm.test */, - F966BC5D08F27A3D005CB29B /* util.test */, - F966BC5E08F27A3D005CB29B /* visual.test */, - F966BC5F08F27A3D005CB29B /* visual_bb.test */, - F966BC6008F27A3D005CB29B /* winButton.test */, - F966BC6108F27A3D005CB29B /* winClipboard.test */, - F966BC6208F27A3D005CB29B /* winDialog.test */, - F966BC6308F27A3D005CB29B /* window.test */, - F966BC6408F27A3D005CB29B /* winfo.test */, - F966BC6508F27A3D005CB29B /* winFont.test */, - F966BC6608F27A3D005CB29B /* winMenu.test */, - F966BC6708F27A3D005CB29B /* winSend.test */, - F966BC6808F27A3D005CB29B /* winWm.test */, - F966BC6908F27A3D005CB29B /* wm.test */, - F966BC6A08F27A3D005CB29B /* xmfbox.test */, - ); - path = tests; - sourceTree = "<group>"; - }; - F966BC6B08F27A3D005CB29B /* unix */ = { - isa = PBXGroup; - children = ( - F966BC6C08F27A3D005CB29B /* aclocal.m4 */, - F966BC6D08F27A3D005CB29B /* configure */, - F966BC6E08F27A3D005CB29B /* configure.in */, - F966BC6F08F27A3D005CB29B /* install-sh */, - F966BC7008F27A3D005CB29B /* installManPage */, - F966BC7108F27A3D005CB29B /* Makefile.in */, - F966BC7208F27A3D005CB29B /* README */, - F966BC7308F27A3D005CB29B /* tcl.m4 */, - F974D57B0FBE7EC000BF728B /* tk.pc.in */, - F966BC7408F27A3D005CB29B /* tk.spec */, - F966BC7508F27A3D005CB29B /* tkAppInit.c */, - F966BC7608F27A3D005CB29B /* tkConfig.h.in */, - F966BC7708F27A3D005CB29B /* tkConfig.sh.in */, - F966BC7808F27A3D005CB29B /* tkUnix.c */, - F966BC7908F27A3D005CB29B /* tkUnix3d.c */, - F966BC7A08F27A3D005CB29B /* tkUnixButton.c */, - F966BC7B08F27A3D005CB29B /* tkUnixColor.c */, - F966BC7C08F27A3D005CB29B /* tkUnixConfig.c */, - F966BC7D08F27A3D005CB29B /* tkUnixCursor.c */, - F966BC7E08F27A3D005CB29B /* tkUnixDefault.h */, - F966BC8008F27A3D005CB29B /* tkUnixDraw.c */, - F966BC8108F27A3D005CB29B /* tkUnixEmbed.c */, - F966BC8208F27A3D005CB29B /* tkUnixEvent.c */, - F966BC8308F27A3D005CB29B /* tkUnixFocus.c */, - F966BC8408F27A3D005CB29B /* tkUnixFont.c */, - F966BC8508F27A3D005CB29B /* tkUnixInit.c */, - F966BC8608F27A3D005CB29B /* tkUnixInt.h */, - F966BC8708F27A3D005CB29B /* tkUnixKey.c */, - F966BC8808F27A3D005CB29B /* tkUnixMenu.c */, - F966BC8908F27A3D005CB29B /* tkUnixMenubu.c */, - F966BC8A08F27A3D005CB29B /* tkUnixPort.h */, - F966BC8B08F27A3D005CB29B /* tkUnixRFont.c */, - F966BC8C08F27A3D005CB29B /* tkUnixScale.c */, - F966BC8D08F27A3D005CB29B /* tkUnixScrlbr.c */, - F966BC8E08F27A3D005CB29B /* tkUnixSelect.c */, - F966BC8F08F27A3D005CB29B /* tkUnixSend.c */, - F966BC9008F27A3D005CB29B /* tkUnixWm.c */, - F966BC9108F27A3D005CB29B /* tkUnixXId.c */, - ); - path = unix; - sourceTree = "<group>"; - }; - F966BC9208F27A3D005CB29B /* win */ = { - isa = PBXGroup; - children = ( - F966BC9408F27A3D005CB29B /* aclocal.m4 */, - F966BC9508F27A3D005CB29B /* buildall.vc.bat */, - F966BC9608F27A3E005CB29B /* configure */, - F966BC9708F27A3E005CB29B /* configure.in */, - F966BC9908F27A3E005CB29B /* Makefile.in */, - F966BC9A08F27A3E005CB29B /* makefile.vc */, - F966BC9B08F27A3E005CB29B /* mkd.bat */, - F966BC9C08F27A3E005CB29B /* nmakehlp.c */, - F966BC9D08F27A3E005CB29B /* rc */, - F966BCF308F27A3E005CB29B /* README */, - F966BCF408F27A3E005CB29B /* rmd.bat */, - F966BCF508F27A3F005CB29B /* rules.vc */, - F966BCF608F27A3F005CB29B /* stubs.c */, - F966BCF708F27A3F005CB29B /* tcl.m4 */, - F966BCF808F27A3F005CB29B /* tkConfig.sh.in */, - F966BCF908F27A3F005CB29B /* tkWin.h */, - F966BCFA08F27A3F005CB29B /* tkWin32Dll.c */, - F966BCFB08F27A3F005CB29B /* tkWin3d.c */, - F966BCFC08F27A3F005CB29B /* tkWinButton.c */, - F966BCFD08F27A3F005CB29B /* tkWinClipboard.c */, - F966BCFE08F27A3F005CB29B /* tkWinColor.c */, - F966BCFF08F27A3F005CB29B /* tkWinConfig.c */, - F966BD0008F27A3F005CB29B /* tkWinCursor.c */, - F966BD0108F27A3F005CB29B /* tkWinDefault.h */, - F966BD0208F27A3F005CB29B /* tkWinDialog.c */, - F966BD0308F27A3F005CB29B /* tkWinDraw.c */, - F966BD0408F27A3F005CB29B /* tkWinEmbed.c */, - F966BD0508F27A3F005CB29B /* tkWinFont.c */, - F966BD0708F27A3F005CB29B /* tkWinImage.c */, - F966BD0808F27A3F005CB29B /* tkWinInit.c */, - F966BD0908F27A3F005CB29B /* tkWinInt.h */, - F966BD0A08F27A3F005CB29B /* tkWinKey.c */, - F966BD0B08F27A3F005CB29B /* tkWinMenu.c */, - F966BD0C08F27A3F005CB29B /* tkWinPixmap.c */, - F966BD0D08F27A3F005CB29B /* tkWinPointer.c */, - F966BD0E08F27A3F005CB29B /* tkWinPort.h */, - F966BD0F08F27A3F005CB29B /* tkWinRegion.c */, - F966BD1008F27A3F005CB29B /* tkWinScrlbr.c */, - F966BD1108F27A3F005CB29B /* tkWinSend.c */, - F966BD1208F27A3F005CB29B /* tkWinSendCom.c */, - F966BD1308F27A3F005CB29B /* tkWinSendCom.h */, - F966BD1408F27A3F005CB29B /* tkWinTest.c */, - F966BD1508F27A3F005CB29B /* tkWinWindow.c */, - F966BD1608F27A3F005CB29B /* tkWinWm.c */, - F966BD1708F27A3F005CB29B /* tkWinX.c */, - F96888860AF78953000797B5 /* ttkWinMonitor.c */, - F96888870AF78953000797B5 /* ttkWinTheme.c */, - F96888880AF78953000797B5 /* ttkWinXPTheme.c */, - F966BD1808F27A3F005CB29B /* winMain.c */, - ); - path = win; - sourceTree = "<group>"; - }; - F966BC9D08F27A3E005CB29B /* rc */ = { - isa = PBXGroup; - children = ( - F966BCEE08F27A3E005CB29B /* tk.rc */, - F966BCEF08F27A3E005CB29B /* tk_base.rc */, - F966BCF208F27A3E005CB29B /* wish.rc */, - ); - path = rc; - sourceTree = "<group>"; - }; - F966BD1908F27A3F005CB29B /* xlib */ = { - isa = PBXGroup; - children = ( - F966BD1A08F27A3F005CB29B /* X11 */, - F966BD2308F27A3F005CB29B /* xbytes.h */, - F966BD2408F27A3F005CB29B /* xcolors.c */, - F966BD2508F27A3F005CB29B /* xdraw.c */, - F966BD2608F27A3F005CB29B /* xgc.c */, - F966BD2708F27A3F005CB29B /* ximage.c */, - F966BD2808F27A3F005CB29B /* xutil.c */, - ); - path = xlib; - sourceTree = "<group>"; - }; - F966BD1A08F27A3F005CB29B /* X11 */ = { - isa = PBXGroup; - children = ( - F966BD1B08F27A3F005CB29B /* cursorfont.h */, - F966BD1C08F27A3F005CB29B /* keysym.h */, - F966BD1D08F27A3F005CB29B /* keysymdef.h */, - F966BD1E08F27A3F005CB29B /* X.h */, - F966BD1F08F27A3F005CB29B /* Xatom.h */, - F966BD2008F27A3F005CB29B /* Xfuncproto.h */, - F966BD2108F27A3F005CB29B /* Xlib.h */, - F966BD2208F27A3F005CB29B /* Xutil.h */, - ); - path = X11; - sourceTree = "<group>"; - }; - F966C06F08F281DC005CB29B /* Frameworks */ = { - isa = PBXGroup; - children = ( - F9C9CBFF0E84059800E00935 /* ApplicationServices.framework */, - F966C07408F2820D005CB29B /* CoreFoundation.framework */, - F96437E60EF0D652003F468E /* libz.dylib */, - F966C07608F2821B005CB29B /* Carbon.framework */, - F94523A10E6FC2AC00C1D987 /* Cocoa.framework */, - F966C07808F28233005CB29B /* IOKit.framework */, - F9FD32140CC1AF170073837D /* libX11.dylib */, - F9FD32150CC1AF170073837D /* libXext.dylib */, - F9FD32160CC1AF170073837D /* libXss.dylib */, - F9FD349A0CC1BB0D0073837D /* libXft.dylib */, - F9FD34990CC1BB0D0073837D /* libfreetype.dylib */, - F9FD34C30CC1BBD70073837D /* libfontconfig.dylib */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - F96887DF0AF786D5000797B5 /* ttk */ = { - isa = PBXGroup; - children = ( - F96887E00AF786D5000797B5 /* ttk.decls */, - F96887E10AF786D5000797B5 /* ttkBlink.c */, - F96887E20AF786D5000797B5 /* ttkButton.c */, - F96887E30AF786D5000797B5 /* ttkCache.c */, - F96887E40AF786D5000797B5 /* ttkClamTheme.c */, - F96887E50AF786D5000797B5 /* ttkClassicTheme.c */, - F96887E60AF786D5000797B5 /* ttkDecls.h */, - F96887E70AF786D5000797B5 /* ttkDefaultTheme.c */, - F96887E80AF786D5000797B5 /* ttkElements.c */, - F96887E90AF786D5000797B5 /* ttkEntry.c */, - F96887EA0AF786D5000797B5 /* ttkFrame.c */, - F96887EB0AF786D5000797B5 /* ttkImage.c */, - F96887EC0AF786D5000797B5 /* ttkInit.c */, - F96887ED0AF786D5000797B5 /* ttkLabel.c */, - F96887EE0AF786D5000797B5 /* ttkLayout.c */, - F96887EF0AF786D5000797B5 /* ttkManager.c */, - F96887F00AF786D5000797B5 /* ttkManager.h */, - F96887F10AF786D5000797B5 /* ttkNotebook.c */, - F96887F20AF786D5000797B5 /* ttkPanedwindow.c */, - F96887F30AF786D5000797B5 /* ttkProgress.c */, - F96887F40AF786D5000797B5 /* ttkScale.c */, - F96887F50AF786D5000797B5 /* ttkScroll.c */, - F96887F60AF786D5000797B5 /* ttkScrollbar.c */, - F96887F70AF786D5000797B5 /* ttkSeparator.c */, - F96887F80AF786D5000797B5 /* ttkSquare.c */, - F96887F90AF786D5000797B5 /* ttkState.c */, - F96887FA0AF786D5000797B5 /* ttkStubInit.c */, - F96887FB0AF786D5000797B5 /* ttkStubLib.c */, - F96887FC0AF786D5000797B5 /* ttkTagSet.c */, - F96887FD0AF786D5000797B5 /* ttkTheme.c */, - F96887FE0AF786D5000797B5 /* ttkTheme.h */, - F96887FF0AF786D5000797B5 /* ttkThemeInt.h */, - F96888000AF786D5000797B5 /* ttkTrace.c */, - F96888010AF786D5000797B5 /* ttkTrack.c */, - F96888020AF786D5000797B5 /* ttkTreeview.c */, - F96888030AF786D5000797B5 /* ttkWidget.c */, - F96888040AF786D5000797B5 /* ttkWidget.h */, - ); - path = ttk; - sourceTree = "<group>"; - }; - F96888360AF787B3000797B5 /* ttk */ = { - isa = PBXGroup; - children = ( - F96888370AF787B3000797B5 /* altTheme.tcl */, - F96888380AF787B3000797B5 /* aquaTheme.tcl */, - F96888390AF787B3000797B5 /* button.tcl */, - F968883A0AF787B3000797B5 /* clamTheme.tcl */, - F968883B0AF787B3000797B5 /* classicTheme.tcl */, - F968883C0AF787B3000797B5 /* combobox.tcl */, - F968883D0AF787B3000797B5 /* cursors.tcl */, - F968883E0AF787B3000797B5 /* defaults.tcl */, - F96888400AF787B3000797B5 /* entry.tcl */, - F96888410AF787B3000797B5 /* fonts.tcl */, - F96888440AF787B3000797B5 /* menubutton.tcl */, - F96888450AF787B3000797B5 /* notebook.tcl */, - F96888460AF787B3000797B5 /* panedwindow.tcl */, - F96888470AF787B3000797B5 /* progress.tcl */, - F96888480AF787B3000797B5 /* scale.tcl */, - F96888490AF787B3000797B5 /* scrollbar.tcl */, - F968884A0AF787B3000797B5 /* sizegrip.tcl */, - F968884B0AF787B3000797B5 /* treeview.tcl */, - F968884C0AF787B3000797B5 /* ttk.tcl */, - F968884D0AF787B3000797B5 /* utils.tcl */, - F968884E0AF787B3000797B5 /* winTheme.tcl */, - F973E5960EE99384001A648E /* vistaTheme.tcl */, - F968884F0AF787B3000797B5 /* xpTheme.tcl */, - ); - path = ttk; - sourceTree = "<group>"; - }; - F96888530AF7880C000797B5 /* ttk */ = { - isa = PBXGroup; - children = ( - F96888540AF7880C000797B5 /* all.tcl */, - F98383650F0FA43900171CA6 /* checkbutton.test */, - F96888560AF7880C000797B5 /* combobox.test */, - F96888570AF7880C000797B5 /* entry.test */, - F96888580AF7880C000797B5 /* image.test */, - F96888590AF7880C000797B5 /* labelframe.test */, - F968885A0AF7880C000797B5 /* layout.test */, - F968885C0AF7880C000797B5 /* notebook.test */, - F968885D0AF7880C000797B5 /* panedwindow.test */, - F968885E0AF7880C000797B5 /* progressbar.test */, - F98383680F0FA44700171CA6 /* radiobutton.test */, - F968885F0AF7880C000797B5 /* scrollbar.test */, - F96888600AF7880C000797B5 /* treetags.test */, - F96888610AF7880C000797B5 /* treeview.test */, - F96888620AF7880C000797B5 /* ttk.test */, - F96888630AF7880C000797B5 /* validate.test */, - F962F7C60DADC26200648DB8 /* vsapi.test */, - ); - path = ttk; - sourceTree = "<group>"; - }; - F96D3DF608F27169004A47F5 /* Tcl Sources */ = { - isa = PBXGroup; - children = ( - F96D3EC908F272A7004A47F5 /* generic */, - F96D432C08F272B4004A47F5 /* macosx */, - F96D443E08F272B9004A47F5 /* unix */, - F96D425C08F272B2004A47F5 /* libtommath */, - F96D446E08F272B9004A47F5 /* win */, - F96D3F3808F272A7004A47F5 /* library */, - F96D434408F272B5004A47F5 /* tests */, - F96D3DFC08F272A4004A47F5 /* doc */, - F96D43D008F272B8004A47F5 /* tools */, - F9183E690EFC81560030B814 /* pkgs */, - F96D3DFA08F272A4004A47F5 /* ChangeLog */, - F96D3DFB08F272A4004A47F5 /* changes */, - F96D434308F272B5004A47F5 /* README */, - F96D432B08F272B4004A47F5 /* license.terms */, - ); - name = "Tcl Sources"; - sourceTree = TCL_SRCROOT; - }; - F96D3DF708F271BE004A47F5 /* Tk Sources */ = { - isa = PBXGroup; - children = ( - F966BAA508F27A38005CB29B /* generic */, - F966BB9708F27A3B005CB29B /* macosx */, - F966BC6B08F27A3D005CB29B /* unix */, - F966BD1908F27A3F005CB29B /* xlib */, - F966BA0308F27A37005CB29B /* bitmaps */, - F966BC9208F27A3D005CB29B /* win */, - F966BB1308F27A39005CB29B /* library */, - F966BC0408F27A3C005CB29B /* tests */, - F966BA1008F27A37005CB29B /* doc */, - F966BA0E08F27A37005CB29B /* ChangeLog */, - F966BA0F08F27A37005CB29B /* changes */, - F966BC0308F27A3C005CB29B /* README */, - F966BB9608F27A3B005CB29B /* license.terms */, - ); - name = "Tk Sources"; - sourceTree = TK_SRCROOT; - }; - F96D3DFC08F272A4004A47F5 /* doc */ = { - isa = PBXGroup; - children = ( - F96D3DFD08F272A4004A47F5 /* Access.3 */, - F96D3DFE08F272A4004A47F5 /* AddErrInfo.3 */, - F96D3DFF08F272A4004A47F5 /* after.n */, - F96D3E0008F272A4004A47F5 /* Alloc.3 */, - F96D3E0108F272A4004A47F5 /* AllowExc.3 */, - F96D3E0208F272A4004A47F5 /* append.n */, - F96D3E0308F272A4004A47F5 /* AppInit.3 */, - F96D3E0408F272A5004A47F5 /* array.n */, - F96D3E0508F272A5004A47F5 /* AssocData.3 */, - F96D3E0608F272A5004A47F5 /* Async.3 */, - F96D3E0708F272A5004A47F5 /* BackgdErr.3 */, - F96D3E0808F272A5004A47F5 /* Backslash.3 */, - F96D3E0908F272A5004A47F5 /* bgerror.n */, - F96D3E0A08F272A5004A47F5 /* binary.n */, - F96D3E0B08F272A5004A47F5 /* BoolObj.3 */, - F96D3E0C08F272A5004A47F5 /* break.n */, - F96D3E0D08F272A5004A47F5 /* ByteArrObj.3 */, - F96D3E0E08F272A5004A47F5 /* CallDel.3 */, - F96D3E0F08F272A5004A47F5 /* case.n */, - F96D3E1008F272A5004A47F5 /* catch.n */, - F96D3E1108F272A5004A47F5 /* cd.n */, - F96D3E1208F272A5004A47F5 /* chan.n */, - F96D3E1308F272A5004A47F5 /* ChnlStack.3 */, - F93599CF0DF1F87F00E04F67 /* Class.3 */, - F93599D00DF1F89E00E04F67 /* class.n */, - F96D3E1408F272A5004A47F5 /* clock.n */, - F96D3E1508F272A5004A47F5 /* close.n */, - F96D3E1608F272A5004A47F5 /* CmdCmplt.3 */, - F96D3E1708F272A5004A47F5 /* Concat.3 */, - F96D3E1808F272A5004A47F5 /* concat.n */, - F96D3E1908F272A5004A47F5 /* continue.n */, - F93599D20DF1F8DF00E04F67 /* copy.n */, - F974D5720FBE7DC600BF728B /* coroutine.n */, - F96D3E1A08F272A5004A47F5 /* CrtChannel.3 */, - F96D3E1B08F272A5004A47F5 /* CrtChnlHdlr.3 */, - F96D3E1C08F272A5004A47F5 /* CrtCloseHdlr.3 */, - F96D3E1D08F272A5004A47F5 /* CrtCommand.3 */, - F96D3E1E08F272A5004A47F5 /* CrtFileHdlr.3 */, - F96D3E1F08F272A5004A47F5 /* CrtInterp.3 */, - F96D3E2008F272A5004A47F5 /* CrtMathFnc.3 */, - F96D3E2108F272A5004A47F5 /* CrtObjCmd.3 */, - F96D3E2208F272A5004A47F5 /* CrtAlias.3 */, - F96D3E2308F272A5004A47F5 /* CrtTimerHdlr.3 */, - F96D3E2408F272A5004A47F5 /* CrtTrace.3 */, - F96D3E2508F272A5004A47F5 /* dde.n */, - F93599D30DF1F8F500E04F67 /* define.n */, - F96D3E2608F272A5004A47F5 /* DetachPids.3 */, - F96D3E2708F272A5004A47F5 /* dict.n */, - F96D3E2808F272A5004A47F5 /* DictObj.3 */, - F96D3E2908F272A5004A47F5 /* DoOneEvent.3 */, - F96D3E2A08F272A5004A47F5 /* DoubleObj.3 */, - F96D3E2B08F272A5004A47F5 /* DoWhenIdle.3 */, - F96D3E2C08F272A5004A47F5 /* DString.3 */, - F96D3E2D08F272A5004A47F5 /* DumpActiveMemory.3 */, - F96D3E2E08F272A5004A47F5 /* Encoding.3 */, - F96D3E2F08F272A5004A47F5 /* encoding.n */, - F96D3E3008F272A5004A47F5 /* Ensemble.3 */, - F96D3E3108F272A5004A47F5 /* Environment.3 */, - F96D3E3208F272A5004A47F5 /* eof.n */, - F96D3E3308F272A5004A47F5 /* error.n */, - F96D3E3408F272A5004A47F5 /* Eval.3 */, - F96D3E3508F272A5004A47F5 /* eval.n */, - F96D3E3608F272A5004A47F5 /* exec.n */, - F96D3E3708F272A5004A47F5 /* Exit.3 */, - F96D3E3808F272A5004A47F5 /* exit.n */, - F96D3E3908F272A5004A47F5 /* expr.n */, - F96D3E3A08F272A5004A47F5 /* ExprLong.3 */, - F96D3E3B08F272A5004A47F5 /* ExprLongObj.3 */, - F96D3E3C08F272A5004A47F5 /* fblocked.n */, - F96D3E3D08F272A5004A47F5 /* fconfigure.n */, - F96D3E3E08F272A5004A47F5 /* fcopy.n */, - F96D3E3F08F272A5004A47F5 /* file.n */, - F96D3E4008F272A5004A47F5 /* fileevent.n */, - F96D3E4108F272A5004A47F5 /* filename.n */, - F96D3E4208F272A5004A47F5 /* FileSystem.3 */, - F96D3E4308F272A5004A47F5 /* FindExec.3 */, - F96D3E4408F272A5004A47F5 /* flush.n */, - F96D3E4508F272A5004A47F5 /* for.n */, - F96D3E4608F272A5004A47F5 /* foreach.n */, - F96D3E4708F272A5004A47F5 /* format.n */, - F96D3E4808F272A5004A47F5 /* GetCwd.3 */, - F96D3E4908F272A5004A47F5 /* GetHostName.3 */, - F96D3E4A08F272A5004A47F5 /* GetIndex.3 */, - F96D3E4B08F272A5004A47F5 /* GetInt.3 */, - F96D3E4C08F272A5004A47F5 /* GetOpnFl.3 */, - F96D3E4D08F272A5004A47F5 /* gets.n */, - F96D3E4E08F272A5004A47F5 /* GetStdChan.3 */, - F96D3E4F08F272A5004A47F5 /* GetTime.3 */, - F96D3E5008F272A5004A47F5 /* GetVersion.3 */, - F96D3E5108F272A5004A47F5 /* glob.n */, - F96D3E5208F272A6004A47F5 /* global.n */, - F96D3E5308F272A6004A47F5 /* Hash.3 */, - F96D3E5408F272A6004A47F5 /* history.n */, - F96D3E5508F272A6004A47F5 /* http.n */, - F96D3E5608F272A6004A47F5 /* if.n */, - F96D3E5708F272A6004A47F5 /* incr.n */, - F96D3E5808F272A6004A47F5 /* info.n */, - F96D3E5908F272A6004A47F5 /* Init.3 */, - F96D3E5A08F272A6004A47F5 /* InitStubs.3 */, - F96D3E5B08F272A6004A47F5 /* Interp.3 */, - F96D3E5C08F272A6004A47F5 /* interp.n */, - F96D3E5D08F272A6004A47F5 /* IntObj.3 */, - F96D3E5E08F272A6004A47F5 /* join.n */, - F96D3E5F08F272A6004A47F5 /* lappend.n */, - F96D3E6008F272A6004A47F5 /* lassign.n */, - F96D3E6108F272A6004A47F5 /* library.n */, - F96D3E6208F272A6004A47F5 /* Limit.3 */, - F96D3E6308F272A6004A47F5 /* lindex.n */, - F96D3E6408F272A6004A47F5 /* LinkVar.3 */, - F96D3E6508F272A6004A47F5 /* linsert.n */, - F96D3E6608F272A6004A47F5 /* list.n */, - F96D3E6708F272A6004A47F5 /* ListObj.3 */, - F96D3E6808F272A6004A47F5 /* llength.n */, - F96D3E6908F272A6004A47F5 /* load.n */, - F96D3E6A08F272A6004A47F5 /* lrange.n */, - F96D3E6B08F272A6004A47F5 /* lrepeat.n */, - F96D3E6C08F272A6004A47F5 /* lreplace.n */, - F96D3E6D08F272A6004A47F5 /* lsearch.n */, - F96D3E6E08F272A6004A47F5 /* lset.n */, - F96D3E6F08F272A6004A47F5 /* lsort.n */, - F96D3E7008F272A6004A47F5 /* man.macros */, - F96D3E7108F272A6004A47F5 /* mathfunc.n */, - F96D3E7208F272A6004A47F5 /* memory.n */, - F93599D40DF1F91900E04F67 /* Method.3 */, - F96D3E7308F272A6004A47F5 /* msgcat.n */, - F93599D50DF1F93700E04F67 /* my.n */, - F96D3E7408F272A6004A47F5 /* Namespace.3 */, - F96D3E7508F272A6004A47F5 /* namespace.n */, - F93599D60DF1F95000E04F67 /* next.n */, - F96D3E7608F272A6004A47F5 /* Notifier.3 */, - F96D3E7708F272A6004A47F5 /* Object.3 */, - F93599D70DF1F96800E04F67 /* object.n */, - F96D3E7808F272A6004A47F5 /* ObjectType.3 */, - F96D3E7908F272A6004A47F5 /* open.n */, - F96D3E7A08F272A6004A47F5 /* OpenFileChnl.3 */, - F96D3E7B08F272A6004A47F5 /* OpenTcp.3 */, - F96D3E7C08F272A6004A47F5 /* package.n */, - F96D3E7D08F272A6004A47F5 /* packagens.n */, - F96D3E7E08F272A6004A47F5 /* Panic.3 */, - F96D3E7F08F272A6004A47F5 /* ParseCmd.3 */, - F96D3E8008F272A6004A47F5 /* pid.n */, - F96D3E8108F272A6004A47F5 /* pkgMkIndex.n */, - F96D3E8208F272A6004A47F5 /* PkgRequire.3 */, - F9ECB1E10B26543C00A28025 /* platform_shell.n */, - F9ECB1E20B26543C00A28025 /* platform.n */, - F96D3E8308F272A6004A47F5 /* Preserve.3 */, - F96D3E8408F272A6004A47F5 /* PrintDbl.3 */, - F96D3E8508F272A6004A47F5 /* proc.n */, - F96D3E8608F272A6004A47F5 /* puts.n */, - F96D3E8708F272A6004A47F5 /* pwd.n */, - F96D3E8808F272A6004A47F5 /* re_syntax.n */, - F96D3E8908F272A6004A47F5 /* read.n */, - F96D3E8A08F272A6004A47F5 /* RecEvalObj.3 */, - F96D3E8B08F272A6004A47F5 /* RecordEval.3 */, - F96D3E8C08F272A6004A47F5 /* RegConfig.3 */, - F96D3E8D08F272A6004A47F5 /* RegExp.3 */, - F96D3E8E08F272A6004A47F5 /* regexp.n */, - F96D3E8F08F272A6004A47F5 /* registry.n */, - F96D3E9008F272A6004A47F5 /* regsub.n */, - F96D3E9108F272A6004A47F5 /* rename.n */, - F96D3E9208F272A6004A47F5 /* return.n */, - F96D3E9308F272A6004A47F5 /* safe.n */, - F96D3E9408F272A6004A47F5 /* SaveResult.3 */, - F96D3E9508F272A6004A47F5 /* scan.n */, - F96D3E9608F272A6004A47F5 /* seek.n */, - F93599D80DF1F98300E04F67 /* self.n */, - F96D3E9708F272A6004A47F5 /* set.n */, - F96D3E9808F272A6004A47F5 /* SetChanErr.3 */, - F96D3E9908F272A6004A47F5 /* SetErrno.3 */, - F96D3E9A08F272A6004A47F5 /* SetRecLmt.3 */, - F96D3E9B08F272A7004A47F5 /* SetResult.3 */, - F96D3E9C08F272A7004A47F5 /* SetVar.3 */, - F96D3E9D08F272A7004A47F5 /* Signal.3 */, - F96D3E9E08F272A7004A47F5 /* Sleep.3 */, - F96D3E9F08F272A7004A47F5 /* socket.n */, - F96D3EA008F272A7004A47F5 /* source.n */, - F96D3EA108F272A7004A47F5 /* SourceRCFile.3 */, - F96D3EA208F272A7004A47F5 /* split.n */, - F96D3EA308F272A7004A47F5 /* SplitList.3 */, - F96D3EA408F272A7004A47F5 /* SplitPath.3 */, - F96D3EA508F272A7004A47F5 /* StaticPkg.3 */, - F96D3EA608F272A7004A47F5 /* StdChannels.3 */, - F96D3EA708F272A7004A47F5 /* string.n */, - F96D3EA808F272A7004A47F5 /* StringObj.3 */, - F96D3EA908F272A7004A47F5 /* StrMatch.3 */, - F96D3EAA08F272A7004A47F5 /* subst.n */, - F96D3EAB08F272A7004A47F5 /* SubstObj.3 */, - F96D3EAC08F272A7004A47F5 /* switch.n */, - F974D5760FBE7E1900BF728B /* tailcall.n */, - F96D3EAD08F272A7004A47F5 /* Tcl.n */, - F99D61180EF5573A00BBFE01 /* TclZlib.3 */, - F96D3EAE08F272A7004A47F5 /* Tcl_Main.3 */, - F96D3EAF08F272A7004A47F5 /* TCL_MEM_DEBUG.3 */, - F96D3EB008F272A7004A47F5 /* tclsh.1 */, - F96D3EB108F272A7004A47F5 /* tcltest.n */, - F96D3EB208F272A7004A47F5 /* tclvars.n */, - F96D3EB308F272A7004A47F5 /* tell.n */, - F96D3EB408F272A7004A47F5 /* Thread.3 */, - F9183E640EFC80CD0030B814 /* throw.n */, - F96D3EB508F272A7004A47F5 /* time.n */, - F96D3EB608F272A7004A47F5 /* tm.n */, - F96D3EB708F272A7004A47F5 /* ToUpper.3 */, - F96D3EB808F272A7004A47F5 /* trace.n */, - F96D3EB908F272A7004A47F5 /* TraceCmd.3 */, - F96D3EBA08F272A7004A47F5 /* TraceVar.3 */, - F96D3EBB08F272A7004A47F5 /* Translate.3 */, - F9183E650EFC80D70030B814 /* try.n */, - F96D3EBC08F272A7004A47F5 /* UniCharIsAlpha.3 */, - F96D3EBD08F272A7004A47F5 /* unknown.n */, - F96D3EBE08F272A7004A47F5 /* unload.n */, - F96D3EBF08F272A7004A47F5 /* unset.n */, - F96D3EC008F272A7004A47F5 /* update.n */, - F96D3EC108F272A7004A47F5 /* uplevel.n */, - F96D3EC208F272A7004A47F5 /* UpVar.3 */, - F96D3EC308F272A7004A47F5 /* upvar.n */, - F96D3EC408F272A7004A47F5 /* Utf.3 */, - F96D3EC508F272A7004A47F5 /* variable.n */, - F96D3EC608F272A7004A47F5 /* vwait.n */, - F96D3EC708F272A7004A47F5 /* while.n */, - F96D3EC808F272A7004A47F5 /* WrongNumArgs.3 */, - F915432D0EF201EE0032D1E8 /* zlib.n */, - ); - path = doc; - sourceTree = "<group>"; - }; - F96D3EC908F272A7004A47F5 /* generic */ = { - isa = PBXGroup; - children = ( - F96D3ECA08F272A7004A47F5 /* README */, - F96D3ECB08F272A7004A47F5 /* regc_color.c */, - F96D3ECC08F272A7004A47F5 /* regc_cvec.c */, - F96D3ECD08F272A7004A47F5 /* regc_lex.c */, - F96D3ECE08F272A7004A47F5 /* regc_locale.c */, - F96D3ECF08F272A7004A47F5 /* regc_nfa.c */, - F96D3ED008F272A7004A47F5 /* regcomp.c */, - F96D3ED108F272A7004A47F5 /* regcustom.h */, - F96D3ED208F272A7004A47F5 /* rege_dfa.c */, - F96D3ED308F272A7004A47F5 /* regerror.c */, - F96D3ED408F272A7004A47F5 /* regerrs.h */, - F96D3ED508F272A7004A47F5 /* regex.h */, - F96D3ED608F272A7004A47F5 /* regexec.c */, - F96D3ED708F272A7004A47F5 /* regfree.c */, - F96D3ED808F272A7004A47F5 /* regfronts.c */, - F96D3ED908F272A7004A47F5 /* regguts.h */, - F96D3EDA08F272A7004A47F5 /* tcl.decls */, - F96D3EDB08F272A7004A47F5 /* tcl.h */, - F96D3EDC08F272A7004A47F5 /* tclAlloc.c */, - F96D3EDD08F272A7004A47F5 /* tclAsync.c */, - F96D3EDE08F272A7004A47F5 /* tclBasic.c */, - F96D3EDF08F272A7004A47F5 /* tclBinary.c */, - F96D3EE008F272A7004A47F5 /* tclCkalloc.c */, - F96D3EE108F272A7004A47F5 /* tclClock.c */, - F96D3EE208F272A7004A47F5 /* tclCmdAH.c */, - F96D3EE308F272A7004A47F5 /* tclCmdIL.c */, - F96D3EE408F272A7004A47F5 /* tclCmdMZ.c */, - F96D3EE508F272A7004A47F5 /* tclCompCmds.c */, - F96D3EE608F272A7004A47F5 /* tclCompExpr.c */, - F96D3EE708F272A7004A47F5 /* tclCompile.c */, - F96D3EE808F272A7004A47F5 /* tclCompile.h */, - F96D3EE908F272A7004A47F5 /* tclConfig.c */, - F96D3EEA08F272A7004A47F5 /* tclDate.c */, - F96D3EEB08F272A7004A47F5 /* tclDecls.h */, - F96D3EEC08F272A7004A47F5 /* tclDictObj.c */, - F9F4415D0C8BAE6F00BCCD67 /* tclDTrace.d */, - F96D3EED08F272A7004A47F5 /* tclEncoding.c */, - F96D3EEE08F272A7004A47F5 /* tclEnv.c */, - F96D3EEF08F272A7004A47F5 /* tclEvent.c */, - F96D3EF008F272A7004A47F5 /* tclExecute.c */, - F96D3EF108F272A7004A47F5 /* tclFCmd.c */, - F96D3EF208F272A7004A47F5 /* tclFileName.c */, - F96D3EF308F272A7004A47F5 /* tclFileSystem.h */, - F96D3EF408F272A7004A47F5 /* tclGet.c */, - F96D3EF508F272A7004A47F5 /* tclGetDate.y */, - F96D3EF608F272A7004A47F5 /* tclHash.c */, - F96D3EF708F272A7004A47F5 /* tclHistory.c */, - F96D3EF808F272A7004A47F5 /* tclIndexObj.c */, - F96D3EF908F272A7004A47F5 /* tclInt.decls */, - F96D3EFA08F272A7004A47F5 /* tclInt.h */, - F96D3EFB08F272A7004A47F5 /* tclIntDecls.h */, - F96D3EFC08F272A7004A47F5 /* tclInterp.c */, - F96D3EFD08F272A7004A47F5 /* tclIntPlatDecls.h */, - F96D3EFE08F272A7004A47F5 /* tclIO.c */, - F96D3EFF08F272A7004A47F5 /* tclIO.h */, - F96D3F0008F272A7004A47F5 /* tclIOCmd.c */, - F96D3F0108F272A7004A47F5 /* tclIOGT.c */, - F96D3F0208F272A7004A47F5 /* tclIORChan.c */, - F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */, - F96D3F0308F272A7004A47F5 /* tclIOSock.c */, - F96D3F0408F272A7004A47F5 /* tclIOUtil.c */, - F96D3F0508F272A7004A47F5 /* tclLink.c */, - F96D3F0608F272A7004A47F5 /* tclListObj.c */, - F96D3F0708F272A7004A47F5 /* tclLiteral.c */, - F96D3F0808F272A7004A47F5 /* tclLoad.c */, - F96D3F0908F272A7004A47F5 /* tclLoadNone.c */, - F96D3F0A08F272A7004A47F5 /* tclMain.c */, - F96D3F0B08F272A7004A47F5 /* tclNamesp.c */, - F96D3F0C08F272A7004A47F5 /* tclNotify.c */, - F96D3F0D08F272A7004A47F5 /* tclObj.c */, - F93599B20DF1F75400E04F67 /* tclOO.c */, - F93599B40DF1F75900E04F67 /* tclOO.decls */, - F93599B50DF1F75D00E04F67 /* tclOO.h */, - F93599B60DF1F76100E04F67 /* tclOOBasic.c */, - F93599B80DF1F76600E04F67 /* tclOOCall.c */, - F93599BA0DF1F76A00E04F67 /* tclOODecls.h */, - F93599BB0DF1F77000E04F67 /* tclOODefineCmds.c */, - F93599BD0DF1F77400E04F67 /* tclOOInfo.c */, - F93599BF0DF1F77900E04F67 /* tclOOInt.h */, - F93599C00DF1F77D00E04F67 /* tclOOIntDecls.h */, - F93599C10DF1F78300E04F67 /* tclOOMethod.c */, - F93599C30DF1F78800E04F67 /* tclOOStubInit.c */, - F93599C50DF1F78D00E04F67 /* tclOOStubLib.c */, - F96D3F0E08F272A7004A47F5 /* tclPanic.c */, - F96D3F0F08F272A7004A47F5 /* tclParse.c */, - F96D3F1108F272A7004A47F5 /* tclPathObj.c */, - F96D3F1208F272A7004A47F5 /* tclPipe.c */, - F96D3F1308F272A7004A47F5 /* tclPkg.c */, - F96D3F1408F272A7004A47F5 /* tclPkgConfig.c */, - F96D3F1508F272A7004A47F5 /* tclPlatDecls.h */, - F96D3F1608F272A7004A47F5 /* tclPort.h */, - F96D3F1708F272A7004A47F5 /* tclPosixStr.c */, - F96D3F1808F272A7004A47F5 /* tclPreserve.c */, - F96D3F1908F272A7004A47F5 /* tclProc.c */, - F96D3F1A08F272A7004A47F5 /* tclRegexp.c */, - F96D3F1B08F272A7004A47F5 /* tclRegexp.h */, - F96D3F1C08F272A7004A47F5 /* tclResolve.c */, - F96D3F1D08F272A7004A47F5 /* tclResult.c */, - F96D3F1E08F272A7004A47F5 /* tclScan.c */, - F96D3F1F08F272A7004A47F5 /* tclStringObj.c */, - F96D3F2408F272A7004A47F5 /* tclStrToD.c */, - F96D3F2508F272A7004A47F5 /* tclStubInit.c */, - F96D3F2608F272A7004A47F5 /* tclStubLib.c */, - F96D3F2708F272A7004A47F5 /* tclTest.c */, - F96D3F2808F272A7004A47F5 /* tclTestObj.c */, - F96D3F2908F272A7004A47F5 /* tclTestProcBodyObj.c */, - F96D3F2A08F272A7004A47F5 /* tclThread.c */, - F96D3F2B08F272A7004A47F5 /* tclThreadAlloc.c */, - F96D3F2C08F272A7004A47F5 /* tclThreadJoin.c */, - F96D3F2D08F272A7004A47F5 /* tclThreadStorage.c */, - F96D3F2E08F272A7004A47F5 /* tclThreadTest.c */, - F96D3F2F08F272A7004A47F5 /* tclTimer.c */, - F9903CAF094FAADA004613E9 /* tclTomMath.decls */, - F96D3F3008F272A7004A47F5 /* tclTomMath.h */, - F9903CB0094FAADA004613E9 /* tclTomMathDecls.h */, - F96D3F3108F272A7004A47F5 /* tclTomMathInterface.c */, - F96D3F3208F272A7004A47F5 /* tclTrace.c */, - F96D3F3308F272A7004A47F5 /* tclUniData.c */, - F96D3F3408F272A7004A47F5 /* tclUtf.c */, - F96D3F3508F272A7004A47F5 /* tclUtil.c */, - F96D3F3608F272A7004A47F5 /* tclVar.c */, - F96437C90EF0D4B2003F468E /* tclZlib.c */, - F96D3F3708F272A7004A47F5 /* tommath.h */, - ); - path = generic; - sourceTree = "<group>"; - }; - F96D3F3808F272A7004A47F5 /* library */ = { - isa = PBXGroup; - children = ( - F96D3F3908F272A8004A47F5 /* auto.tcl */, - F96D3F3A08F272A8004A47F5 /* clock.tcl */, - F96D3F3B08F272A8004A47F5 /* dde */, - F96D3F8C08F272A8004A47F5 /* history.tcl */, - F96D3F8D08F272A8004A47F5 /* http */, - F96D3F9008F272A8004A47F5 /* http1.0 */, - F96D3F9308F272A8004A47F5 /* init.tcl */, - F96D3F9408F272A8004A47F5 /* msgcat */, - F96D401708F272AA004A47F5 /* opt */, - F96D401A08F272AA004A47F5 /* package.tcl */, - F96D401B08F272AA004A47F5 /* parray.tcl */, - F9ECB1110B26521500A28025 /* platform */, - F96D401C08F272AA004A47F5 /* reg */, - F96D401E08F272AA004A47F5 /* safe.tcl */, - F96D401F08F272AA004A47F5 /* tclIndex */, - F96D402008F272AA004A47F5 /* tcltest */, - F96D402308F272AA004A47F5 /* tm.tcl */, - F96D425B08F272B2004A47F5 /* word.tcl */, - ); - path = library; - sourceTree = "<group>"; - }; - F96D3F3B08F272A8004A47F5 /* dde */ = { - isa = PBXGroup; - children = ( - F96D3F3C08F272A8004A47F5 /* pkgIndex.tcl */, - ); - path = dde; - sourceTree = "<group>"; - }; - F96D3F8D08F272A8004A47F5 /* http */ = { - isa = PBXGroup; - children = ( - F96D3F8E08F272A8004A47F5 /* http.tcl */, - F96D3F8F08F272A8004A47F5 /* pkgIndex.tcl */, - ); - path = http; - sourceTree = "<group>"; - }; - F96D3F9008F272A8004A47F5 /* http1.0 */ = { - isa = PBXGroup; - children = ( - F96D3F9108F272A8004A47F5 /* http.tcl */, - F96D3F9208F272A8004A47F5 /* pkgIndex.tcl */, - ); - path = http1.0; - sourceTree = "<group>"; - }; - F96D3F9408F272A8004A47F5 /* msgcat */ = { - isa = PBXGroup; - children = ( - F96D3F9508F272A8004A47F5 /* msgcat.tcl */, - F96D3F9608F272A8004A47F5 /* pkgIndex.tcl */, - ); - path = msgcat; - sourceTree = "<group>"; - }; - F96D401708F272AA004A47F5 /* opt */ = { - isa = PBXGroup; - children = ( - F96D401808F272AA004A47F5 /* optparse.tcl */, - F96D401908F272AA004A47F5 /* pkgIndex.tcl */, - ); - path = opt; - sourceTree = "<group>"; - }; - F96D401C08F272AA004A47F5 /* reg */ = { - isa = PBXGroup; - children = ( - F96D401D08F272AA004A47F5 /* pkgIndex.tcl */, - ); - path = reg; - sourceTree = "<group>"; - }; - F96D402008F272AA004A47F5 /* tcltest */ = { - isa = PBXGroup; - children = ( - F96D402108F272AA004A47F5 /* pkgIndex.tcl */, - F96D402208F272AA004A47F5 /* tcltest.tcl */, - ); - path = tcltest; - sourceTree = "<group>"; - }; - F96D425C08F272B2004A47F5 /* libtommath */ = { - isa = PBXGroup; - children = ( - F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */, - F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */, - F96D426908F272B3004A47F5 /* bn_mp_add.c */, - F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */, - F96D426C08F272B3004A47F5 /* bn_mp_and.c */, - F96D426D08F272B3004A47F5 /* bn_mp_clamp.c */, - F96D426E08F272B3004A47F5 /* bn_mp_clear.c */, - F96D426F08F272B3004A47F5 /* bn_mp_clear_multi.c */, - F96D427008F272B3004A47F5 /* bn_mp_cmp.c */, - F96D427108F272B3004A47F5 /* bn_mp_cmp_d.c */, - F96D427208F272B3004A47F5 /* bn_mp_cmp_mag.c */, - F96D427408F272B3004A47F5 /* bn_mp_copy.c */, - F96D427508F272B3004A47F5 /* bn_mp_count_bits.c */, - F96D427608F272B3004A47F5 /* bn_mp_div.c */, - F96D427708F272B3004A47F5 /* bn_mp_div_2.c */, - F96D427808F272B3004A47F5 /* bn_mp_div_2d.c */, - F96D427908F272B3004A47F5 /* bn_mp_div_3.c */, - F96D427A08F272B3004A47F5 /* bn_mp_div_d.c */, - F96D427E08F272B3004A47F5 /* bn_mp_exch.c */, - F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */, - F96D428708F272B3004A47F5 /* bn_mp_grow.c */, - F96D428808F272B3004A47F5 /* bn_mp_init.c */, - F96D428908F272B3004A47F5 /* bn_mp_init_copy.c */, - F96D428A08F272B3004A47F5 /* bn_mp_init_multi.c */, - F96D428B08F272B3004A47F5 /* bn_mp_init_set.c */, - F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */, - F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */, - F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */, - F96D429508F272B3004A47F5 /* bn_mp_lshd.c */, - F96D429608F272B3004A47F5 /* bn_mp_mod.c */, - F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */, - F96D429C08F272B3004A47F5 /* bn_mp_mul.c */, - F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */, - F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */, - F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */, - F96D42A208F272B3004A47F5 /* bn_mp_neg.c */, - F96D42A308F272B3004A47F5 /* bn_mp_or.c */, - F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */, - F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */, - F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */, - F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */, - F96D42BA08F272B3004A47F5 /* bn_mp_set.c */, - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */, - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */, - F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */, - F96D42C108F272B3004A47F5 /* bn_mp_sub.c */, - F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */, - F96D42C608F272B3004A47F5 /* bn_mp_to_unsigned_bin.c */, - F96D42C708F272B3004A47F5 /* bn_mp_to_unsigned_bin_n.c */, - F96D42C808F272B3004A47F5 /* bn_mp_toom_mul.c */, - F96D42C908F272B3004A47F5 /* bn_mp_toom_sqr.c */, - F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */, - F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */, - F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */, - F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */, - F96D42D008F272B3004A47F5 /* bn_reverse.c */, - F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */, - F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */, - F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */, - F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */, - F96D42D708F272B3004A47F5 /* bncore.c */, - F96D432908F272B4004A47F5 /* tommath_class.h */, - F96D432A08F272B4004A47F5 /* tommath_superclass.h */, - ); - path = libtommath; - sourceTree = "<group>"; - }; - F96D432C08F272B4004A47F5 /* macosx */ = { - isa = PBXGroup; - children = ( - F96D432E08F272B5004A47F5 /* configure.ac */, - F96D432F08F272B5004A47F5 /* GNUmakefile */, - F96D433108F272B5004A47F5 /* README */, - F96D433908F272B5004A47F5 /* tclMacOSXBundle.c */, - F96D433D08F272B5004A47F5 /* tclMacOSXFCmd.c */, - F96D433E08F272B5004A47F5 /* tclMacOSXNotify.c */, - F96D433208F272B5004A47F5 /* Tcl-Info.plist.in */, - F91E62260C1AE686006C9D96 /* Tclsh-Info.plist.in */, - ); - path = macosx; - sourceTree = "<group>"; - }; - F96D434408F272B5004A47F5 /* tests */ = { - isa = PBXGroup; - children = ( - F96D434508F272B5004A47F5 /* all.tcl */, - F96D434608F272B5004A47F5 /* append.test */, - F96D434708F272B5004A47F5 /* appendComp.test */, - F9ECB1CA0B2652D300A28025 /* apply.test */, - F96D434808F272B5004A47F5 /* assocd.test */, - F96D434908F272B5004A47F5 /* async.test */, - F96D434A08F272B5004A47F5 /* autoMkindex.test */, - F96D434B08F272B5004A47F5 /* basic.test */, - F96D434C08F272B5004A47F5 /* binary.test */, - F96D434D08F272B5004A47F5 /* case.test */, - F96D434E08F272B5004A47F5 /* chan.test */, - F9A493240CEBF38300B78AE2 /* chanio.test */, - F96D434F08F272B5004A47F5 /* clock.test */, - F96D435008F272B5004A47F5 /* cmdAH.test */, - F96D435108F272B5004A47F5 /* cmdIL.test */, - F96D435208F272B5004A47F5 /* cmdInfo.test */, - F96D435308F272B5004A47F5 /* cmdMZ.test */, - F96D435408F272B5004A47F5 /* compExpr-old.test */, - F96D435508F272B5004A47F5 /* compExpr.test */, - F96D435608F272B5004A47F5 /* compile.test */, - F96D435708F272B5004A47F5 /* concat.test */, - F96D435808F272B5004A47F5 /* config.test */, - F974D5770FBE7E6100BF728B /* coroutine.test */, - F96D435908F272B5004A47F5 /* dcall.test */, - F96D435A08F272B5004A47F5 /* dict.test */, - F96D435C08F272B5004A47F5 /* dstring.test */, - F96D435E08F272B5004A47F5 /* encoding.test */, - F96D435F08F272B5004A47F5 /* env.test */, - F96D436008F272B5004A47F5 /* error.test */, - F96D436108F272B5004A47F5 /* eval.test */, - F96D436208F272B5004A47F5 /* event.test */, - F96D436308F272B5004A47F5 /* exec.test */, - F96D436408F272B5004A47F5 /* execute.test */, - F96D436508F272B5004A47F5 /* expr-old.test */, - F96D436608F272B5004A47F5 /* expr.test */, - F96D436708F272B6004A47F5 /* fCmd.test */, - F96D436808F272B6004A47F5 /* fileName.test */, - F96D436908F272B6004A47F5 /* fileSystem.test */, - F96D436A08F272B6004A47F5 /* for-old.test */, - F96D436B08F272B6004A47F5 /* for.test */, - F96D436C08F272B6004A47F5 /* foreach.test */, - F96D436D08F272B6004A47F5 /* format.test */, - F96D436E08F272B6004A47F5 /* get.test */, - F96D436F08F272B6004A47F5 /* history.test */, - F96D437008F272B6004A47F5 /* http.test */, - F974D56C0FBE7D6300BF728B /* http11.test */, - F96D437108F272B6004A47F5 /* httpd */, - F974D56D0FBE7D6300BF728B /* httpd11.tcl */, - F96D437208F272B6004A47F5 /* httpold.test */, - F96D437308F272B6004A47F5 /* if-old.test */, - F96D437408F272B6004A47F5 /* if.test */, - F96D437508F272B6004A47F5 /* incr-old.test */, - F96D437608F272B6004A47F5 /* incr.test */, - F96D437708F272B6004A47F5 /* indexObj.test */, - F96D437808F272B6004A47F5 /* info.test */, - F96D437908F272B6004A47F5 /* init.test */, - F96D437A08F272B6004A47F5 /* interp.test */, - F96D437B08F272B6004A47F5 /* io.test */, - F96D437C08F272B6004A47F5 /* ioCmd.test */, - F96D437D08F272B6004A47F5 /* iogt.test */, - F96D437F08F272B6004A47F5 /* join.test */, - F96D438008F272B6004A47F5 /* lindex.test */, - F96D438108F272B6004A47F5 /* link.test */, - F96D438208F272B6004A47F5 /* linsert.test */, - F96D438308F272B6004A47F5 /* list.test */, - F96D438408F272B6004A47F5 /* listObj.test */, - F96D438508F272B6004A47F5 /* llength.test */, - F96D438608F272B6004A47F5 /* load.test */, - F96D438708F272B6004A47F5 /* lrange.test */, - F96D438808F272B6004A47F5 /* lrepeat.test */, - F96D438908F272B6004A47F5 /* lreplace.test */, - F96D438A08F272B6004A47F5 /* lsearch.test */, - F96D438B08F272B6004A47F5 /* lset.test */, - F96D438C08F272B6004A47F5 /* lsetComp.test */, - F96D438D08F272B6004A47F5 /* macOSXFCmd.test */, - F95FAFF90B34F1130072E431 /* macOSXLoad.test */, - F96D438E08F272B6004A47F5 /* main.test */, - F9ECB1CB0B26534C00A28025 /* mathop.test */, - F96D438F08F272B6004A47F5 /* misc.test */, - F96D439008F272B6004A47F5 /* msgcat.test */, - F96D439108F272B6004A47F5 /* namespace-old.test */, - F96D439208F272B7004A47F5 /* namespace.test */, - F96D439308F272B7004A47F5 /* notify.test */, - F91DC23C0E44C51B002CB8D1 /* nre.test */, - F96D439408F272B7004A47F5 /* obj.test */, - F93599C80DF1F81900E04F67 /* oo.test */, - F96D439508F272B7004A47F5 /* opt.test */, - F96D439608F272B7004A47F5 /* package.test */, - F96D439708F272B7004A47F5 /* parse.test */, - F96D439808F272B7004A47F5 /* parseExpr.test */, - F96D439908F272B7004A47F5 /* parseOld.test */, - F96D439A08F272B7004A47F5 /* pid.test */, - F96D439B08F272B7004A47F5 /* pkg.test */, - F96D439C08F272B7004A47F5 /* pkgMkIndex.test */, - F96D439D08F272B7004A47F5 /* platform.test */, - F96D439E08F272B7004A47F5 /* proc-old.test */, - F96D439F08F272B7004A47F5 /* proc.test */, - F96D43A008F272B7004A47F5 /* pwd.test */, - F96D43A108F272B7004A47F5 /* README */, - F96D43A208F272B7004A47F5 /* reg.test */, - F96D43A308F272B7004A47F5 /* regexp.test */, - F96D43A408F272B7004A47F5 /* regexpComp.test */, - F96D43A508F272B7004A47F5 /* registry.test */, - F96D43A608F272B7004A47F5 /* remote.tcl */, - F96D43A708F272B7004A47F5 /* rename.test */, - F96D43A808F272B7004A47F5 /* result.test */, - F96D43A908F272B7004A47F5 /* safe.test */, - F96D43AA08F272B7004A47F5 /* scan.test */, - F96D43AB08F272B7004A47F5 /* security.test */, - F96D43AC08F272B7004A47F5 /* set-old.test */, - F96D43AD08F272B7004A47F5 /* set.test */, - F96D43AE08F272B7004A47F5 /* socket.test */, - F96D43AF08F272B7004A47F5 /* source.test */, - F96D43B008F272B7004A47F5 /* split.test */, - F96D43B108F272B7004A47F5 /* stack.test */, - F96D43B208F272B7004A47F5 /* string.test */, - F96D43B308F272B7004A47F5 /* stringComp.test */, - F96D43B408F272B7004A47F5 /* stringObj.test */, - F96D43B508F272B7004A47F5 /* subst.test */, - F96D43B608F272B7004A47F5 /* switch.test */, - F974D5780FBE7E6100BF728B /* tailcall.test */, - F96D43B708F272B7004A47F5 /* tcltest.test */, - F96D43B808F272B7004A47F5 /* thread.test */, - F96D43B908F272B7004A47F5 /* timer.test */, - F96D43BA08F272B7004A47F5 /* tm.test */, - F96D43BB08F272B7004A47F5 /* trace.test */, - F96D43BC08F272B7004A47F5 /* unixFCmd.test */, - F96D43BD08F272B7004A47F5 /* unixFile.test */, - F96D43BE08F272B7004A47F5 /* unixInit.test */, - F96D43BF08F272B7004A47F5 /* unixNotfy.test */, - F96D43C008F272B7004A47F5 /* unknown.test */, - F96D43C108F272B7004A47F5 /* unload.test */, - F96D43C208F272B7004A47F5 /* uplevel.test */, - F96D43C308F272B7004A47F5 /* upvar.test */, - F96D43C408F272B7004A47F5 /* utf.test */, - F96D43C508F272B7004A47F5 /* util.test */, - F96D43C608F272B7004A47F5 /* var.test */, - F96D43C708F272B7004A47F5 /* while-old.test */, - F96D43C808F272B7004A47F5 /* while.test */, - F96D43C908F272B7004A47F5 /* winConsole.test */, - F96D43CA08F272B7004A47F5 /* winDde.test */, - F96D43CB08F272B7004A47F5 /* winFCmd.test */, - F96D43CC08F272B7004A47F5 /* winFile.test */, - F96D43CD08F272B7004A47F5 /* winNotify.test */, - F96D43CE08F272B7004A47F5 /* winPipe.test */, - F96D43CF08F272B7004A47F5 /* winTime.test */, - F915432A0EF201CF0032D1E8 /* zlib.test */, - ); - path = tests; - sourceTree = "<group>"; - }; - F96D43D008F272B8004A47F5 /* tools */ = { - isa = PBXGroup; - children = ( - F96D43D108F272B8004A47F5 /* checkLibraryDoc.tcl */, - F96D43D208F272B8004A47F5 /* configure */, - F96D43D308F272B8004A47F5 /* configure.in */, - F96D442208F272B8004A47F5 /* eolFix.tcl */, - F96D442408F272B8004A47F5 /* fix_tommath_h.tcl */, - F96D442508F272B8004A47F5 /* genStubs.tcl */, - F96D442708F272B8004A47F5 /* index.tcl */, - F96D442808F272B8004A47F5 /* installData.tcl */, - F96D442908F272B8004A47F5 /* loadICU.tcl */, - F96D442A08F272B8004A47F5 /* Makefile.in */, - F96D442B08F272B8004A47F5 /* makeTestCases.tcl */, - F96D442C08F272B8004A47F5 /* man2help.tcl */, - F96D442D08F272B8004A47F5 /* man2help2.tcl */, - F96D442E08F272B8004A47F5 /* man2html.tcl */, - F96D442F08F272B8004A47F5 /* man2html1.tcl */, - F96D443008F272B8004A47F5 /* man2html2.tcl */, - F96D443108F272B8004A47F5 /* man2tcl.c */, - F96D443208F272B8004A47F5 /* README */, - F96D443308F272B8004A47F5 /* regexpTestLib.tcl */, - F96D443508F272B8004A47F5 /* tcl.hpj.in */, - F96D443608F272B8004A47F5 /* tcl.wse.in */, - F96D443908F272B9004A47F5 /* tcltk-man2html.tcl */, - F96D443A08F272B9004A47F5 /* tclZIC.tcl */, - F92D7F100DE777240033A13A /* tsdPerf.tcl */, - F96D443B08F272B9004A47F5 /* uniClass.tcl */, - F96D443C08F272B9004A47F5 /* uniParse.tcl */, - ); - path = tools; - sourceTree = "<group>"; - }; - F96D443E08F272B9004A47F5 /* unix */ = { - isa = PBXGroup; - children = ( - F96D444008F272B9004A47F5 /* aclocal.m4 */, - F96D444108F272B9004A47F5 /* configure */, - F96D444208F272B9004A47F5 /* configure.in */, - F96D444308F272B9004A47F5 /* dltest */, - F96D444D08F272B9004A47F5 /* install-sh */, - F96D444E08F272B9004A47F5 /* installManPage */, - F96D444F08F272B9004A47F5 /* ldAix */, - F96D445008F272B9004A47F5 /* Makefile.in */, - F96D445208F272B9004A47F5 /* README */, - F96D445308F272B9004A47F5 /* tcl.m4 */, - F974D5790FBE7E9C00BF728B /* tcl.pc.in */, - F96D445408F272B9004A47F5 /* tcl.spec */, - F96D445508F272B9004A47F5 /* tclAppInit.c */, - F96D445608F272B9004A47F5 /* tclConfig.h.in */, - F96D445708F272B9004A47F5 /* tclConfig.sh.in */, - F96D445808F272B9004A47F5 /* tclLoadAix.c */, - F96D445908F272B9004A47F5 /* tclLoadDl.c */, - F96D445B08F272B9004A47F5 /* tclLoadDyld.c */, - F96D445C08F272B9004A47F5 /* tclLoadNext.c */, - F96D445D08F272B9004A47F5 /* tclLoadOSF.c */, - F96D445E08F272B9004A47F5 /* tclLoadShl.c */, - F96D445F08F272B9004A47F5 /* tclUnixChan.c */, - F9FC77B70AB29E9100B7077D /* tclUnixCompat.c */, - F96D446008F272B9004A47F5 /* tclUnixEvent.c */, - F96D446108F272B9004A47F5 /* tclUnixFCmd.c */, - F96D446208F272B9004A47F5 /* tclUnixFile.c */, - F96D446308F272B9004A47F5 /* tclUnixInit.c */, - F96D446408F272B9004A47F5 /* tclUnixNotfy.c */, - F96D446508F272B9004A47F5 /* tclUnixPipe.c */, - F96D446608F272B9004A47F5 /* tclUnixPort.h */, - F96D446708F272B9004A47F5 /* tclUnixSock.c */, - F96D446808F272B9004A47F5 /* tclUnixTest.c */, - F96D446908F272B9004A47F5 /* tclUnixThrd.c */, - F96D446A08F272B9004A47F5 /* tclUnixThrd.h */, - F96D446B08F272B9004A47F5 /* tclUnixTime.c */, - F96D446C08F272B9004A47F5 /* tclXtNotify.c */, - F96D446D08F272B9004A47F5 /* tclXtTest.c */, - ); - path = unix; - sourceTree = "<group>"; - }; - F96D444308F272B9004A47F5 /* dltest */ = { - isa = PBXGroup; - children = ( - F96D444408F272B9004A47F5 /* Makefile.in */, - F96D444508F272B9004A47F5 /* pkga.c */, - F96D444608F272B9004A47F5 /* pkgb.c */, - F96D444708F272B9004A47F5 /* pkgc.c */, - F96D444808F272B9004A47F5 /* pkgd.c */, - F96D444908F272B9004A47F5 /* pkge.c */, - F96D444B08F272B9004A47F5 /* pkgua.c */, - F96D444C08F272B9004A47F5 /* README */, - ); - path = dltest; - sourceTree = "<group>"; - }; - F96D446E08F272B9004A47F5 /* win */ = { - isa = PBXGroup; - children = ( - F96D447008F272BA004A47F5 /* aclocal.m4 */, - F96D447108F272BA004A47F5 /* buildall.vc.bat */, - F96D447208F272BA004A47F5 /* cat.c */, - F96D447408F272BA004A47F5 /* configure */, - F96D447508F272BA004A47F5 /* configure.in */, - F96D447708F272BA004A47F5 /* Makefile.in */, - F96D447808F272BA004A47F5 /* makefile.vc */, - F96D447908F272BA004A47F5 /* nmakehlp.c */, - F96D447A08F272BA004A47F5 /* README */, - F96D447C08F272BA004A47F5 /* rules.vc */, - F96D447D08F272BA004A47F5 /* stub16.c */, - F96D447E08F272BA004A47F5 /* tcl.dsp */, - F96D447F08F272BA004A47F5 /* tcl.dsw */, - F96D448008F272BA004A47F5 /* tcl.hpj.in */, - F96D448108F272BA004A47F5 /* tcl.m4 */, - F96D448208F272BA004A47F5 /* tcl.rc */, - F96D448308F272BA004A47F5 /* tclAppInit.c */, - F96D448408F272BA004A47F5 /* tclConfig.sh.in */, - F96D448608F272BA004A47F5 /* tclsh.rc */, - F96D448708F272BA004A47F5 /* tclWin32Dll.c */, - F96D448808F272BA004A47F5 /* tclWinChan.c */, - F96D448908F272BA004A47F5 /* tclWinConsole.c */, - F96D448A08F272BA004A47F5 /* tclWinDde.c */, - F96D448B08F272BA004A47F5 /* tclWinError.c */, - F96D448C08F272BA004A47F5 /* tclWinFCmd.c */, - F96D448D08F272BA004A47F5 /* tclWinFile.c */, - F96D448E08F272BA004A47F5 /* tclWinInit.c */, - F96D448F08F272BA004A47F5 /* tclWinInt.h */, - F96D449008F272BA004A47F5 /* tclWinLoad.c */, - F96D449108F272BA004A47F5 /* tclWinNotify.c */, - F96D449208F272BA004A47F5 /* tclWinPipe.c */, - F96D449308F272BA004A47F5 /* tclWinPort.h */, - F96D449408F272BA004A47F5 /* tclWinReg.c */, - F96D449508F272BA004A47F5 /* tclWinSerial.c */, - F96D449608F272BA004A47F5 /* tclWinSock.c */, - F96D449708F272BA004A47F5 /* tclWinTest.c */, - F96D449808F272BA004A47F5 /* tclWinThrd.c */, - F96D449908F272BA004A47F5 /* tclWinThrd.h */, - F96D449A08F272BA004A47F5 /* tclWinTime.c */, - ); - path = win; - sourceTree = "<group>"; - }; - F9ECB1110B26521500A28025 /* platform */ = { - isa = PBXGroup; - children = ( - F9ECB1120B26521500A28025 /* pkgIndex.tcl */, - F9ECB1130B26521500A28025 /* platform.tcl */, - F9ECB1140B26521500A28025 /* shell.tcl */, - ); - path = platform; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8DD76FA90486AB0100D96B5E /* tktest */ = { - isa = PBXNativeTarget; - buildConfigurationList = F95CC8B009158F3100EA5ACE /* Build configuration list for PBXNativeTarget "tktest" */; - buildPhases = ( - F9A5C5F508F651A2008AE941 /* Configure Tcl */, - F9A5C5F608F651AB008AE941 /* Configure Tk */, - 8DD76FAB0486AB0100D96B5E /* Sources */, - 8DD76FAD0486AB0100D96B5E /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = tktest; - productInstallPath = "$(BINDIR)"; - productName = tktest; - productReference = 8DD76FB20486AB0100D96B5E /* tktest */; - productType = "com.apple.product-type.tool"; - }; - F97258A50A86873C00096C78 /* tktest-X11 */ = { - isa = PBXNativeTarget; - buildConfigurationList = F97258A80A86873D00096C78 /* Build configuration list for PBXNativeTarget "tktest-X11" */; - buildPhases = ( - F9FD30B40CC1AD070073837D /* Configure Tcl */, - F9FD30B50CC1AD070073837D /* Configure Tk */, - F9FD30BB0CC1AD070073837D /* Sources */, - F9FD31E30CC1AD070073837D /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "tktest-X11"; - productInstallPath = "$(BINDIR)"; - productName = tktest; - productReference = F9FD31F40CC1AD070073837D /* tktest-X11 */; - productType = "com.apple.product-type.tool"; - }; - F9E61D16090A3E94002B3151 /* Tk */ = { - isa = PBXNativeTarget; - buildConfigurationList = F95CC8AB09158F3100EA5ACE /* Build configuration list for PBXNativeTarget "Tk" */; - buildPhases = ( - F97AF02F0B665DA900310EA2 /* Build Tk */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Tk; - productName = Wish; - productReference = F9A3084B08F2D4CE00BAE1AB /* Wish.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 08FB7793FE84155DC02AAC07 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = YES; - }; - buildConfigurationList = F95CC8B509158F3100EA5ACE /* Build configuration list for PBXProject "Tk" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 08FB7794FE84155DC02AAC07 /* Tk */; - projectDirPath = ""; - projectRoot = ..; - targets = ( - F9E61D16090A3E94002B3151 /* Tk */, - 8DD76FA90486AB0100D96B5E /* tktest */, - F97258A50A86873C00096C78 /* tktest-X11 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXShellScriptBuildPhase section */ - F97AF02F0B665DA900310EA2 /* Build Tk */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_TEMP_DIR}/.none", - ); - name = "Build Tk"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${WRAPPER_NAME}", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "export CC=$(xcrun -find ${GCC} || echo ${GCC}); export LD=${CC}\ngnumake -C \"${TK_SRCROOT}/macosx\" -j \"$(sysctl -n hw.activecpu)\" \"$(echo \"${ACTION}\" | sed -e s/build// -e s/clean/distclean/ -e s/..\\*/\\&-/)${MAKE_TARGET}\" CFLAGS_WARNING=\"${WARNING_CFLAGS}\" CFLAGS_OPTIMIZE=\"-O${GCC_OPTIMIZATION_LEVEL}\" SYMROOT=\"${BUILT_PRODUCTS_DIR}\" OBJ_DIR=\"${OBJECT_FILE_DIR}\" INSTALL_ROOT=\"${DSTROOT}\" PREFIX=\"${PREFIX}\" BINDIR=\"${BINDIR}\" LIBDIR=\"${FRAMEWORK_INSTALL_PATH}\" MANDIR=\"${MANDIR}\" EXTRA_CONFIGURE_ARGS=\"${CONFIGURE_ARGS}\" APPLICATION_INSTALL_PATH=\"${APPLICATION_INSTALL_PATH}\" TCL_BUILD_DIR=\"${TCL_BUILD_DIR}\" TCL_FRAMEWORK_DIR=\"${TCL_FRAMEWORK_DIR}\" ${EXTRA_MAKE_FLAGS}\nresult=$?\nif [ -e \"${BUILT_PRODUCTS_DIR}/tktest\" ]; then\n\trm -f \"${BUILT_PRODUCTS_DIR}/tktest\"\nfi\necho \"Done\"\nrm -f \"${SCRIPT_INPUT_FILE_0}\"\nexit ${result}\n"; - showEnvVarsInLog = 0; - }; - F9A5C5F508F651A2008AE941 /* Configure Tcl */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TCL_SRCROOT)/macosx/configure.ac", - "$(TCL_SRCROOT)/unix/configure.in", - "$(TCL_SRCROOT)/unix/tcl.m4", - "$(TCL_SRCROOT)/unix/aclocal.m4", - "$(TCL_SRCROOT)/unix/tclConfig.sh.in", - "$(TCL_SRCROOT)/unix/Makefile.in", - "$(TCL_SRCROOT)/unix/dltest/Makefile.in", - ); - name = "Configure Tcl"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/tcl/tclConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - showEnvVarsInLog = 0; - }; - F9A5C5F608F651AB008AE941 /* Configure Tk */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/macosx/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - name = "Configure Tk"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-aqua --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - showEnvVarsInLog = 0; - }; - F9FD30B40CC1AD070073837D /* Configure Tcl */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TCL_SRCROOT)/macosx/configure.ac", - "$(TCL_SRCROOT)/unix/configure.in", - "$(TCL_SRCROOT)/unix/tcl.m4", - "$(TCL_SRCROOT)/unix/aclocal.m4", - "$(TCL_SRCROOT)/unix/tclConfig.sh.in", - "$(TCL_SRCROOT)/unix/Makefile.in", - "$(TCL_SRCROOT)/unix/dltest/Makefile.in", - ); - name = "Configure Tcl"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/tcl/tclConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - showEnvVarsInLog = 0; - }; - F9FD30B50CC1AD070073837D /* Configure Tk */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/macosx/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - name = "Configure Tk"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n PATH=\"${PATH}:/usr/X11R6/bin\" \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-xft --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8DD76FAB0486AB0100D96B5E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F96D456F08F272BB004A47F5 /* regcomp.c in Sources */, - F96D457208F272BB004A47F5 /* regerror.c in Sources */, - F96D457508F272BB004A47F5 /* regexec.c in Sources */, - F96D457608F272BB004A47F5 /* regfree.c in Sources */, - F96D457B08F272BB004A47F5 /* tclAlloc.c in Sources */, - F96D457C08F272BB004A47F5 /* tclAsync.c in Sources */, - F96D457D08F272BB004A47F5 /* tclBasic.c in Sources */, - F96D457E08F272BC004A47F5 /* tclBinary.c in Sources */, - F96D457F08F272BC004A47F5 /* tclCkalloc.c in Sources */, - F96D458008F272BC004A47F5 /* tclClock.c in Sources */, - F96D458108F272BC004A47F5 /* tclCmdAH.c in Sources */, - F96D458208F272BC004A47F5 /* tclCmdIL.c in Sources */, - F96D458308F272BC004A47F5 /* tclCmdMZ.c in Sources */, - F96D458408F272BC004A47F5 /* tclCompCmds.c in Sources */, - F96D458508F272BC004A47F5 /* tclCompExpr.c in Sources */, - F96D458608F272BC004A47F5 /* tclCompile.c in Sources */, - F96D458808F272BC004A47F5 /* tclConfig.c in Sources */, - F96D458908F272BC004A47F5 /* tclDate.c in Sources */, - F96D458B08F272BC004A47F5 /* tclDictObj.c in Sources */, - F96D458C08F272BC004A47F5 /* tclEncoding.c in Sources */, - F96D458D08F272BC004A47F5 /* tclEnv.c in Sources */, - F96D458E08F272BC004A47F5 /* tclEvent.c in Sources */, - F96D458F08F272BC004A47F5 /* tclExecute.c in Sources */, - F96D459008F272BC004A47F5 /* tclFCmd.c in Sources */, - F96D459108F272BC004A47F5 /* tclFileName.c in Sources */, - F96D459308F272BC004A47F5 /* tclGet.c in Sources */, - F96D459508F272BC004A47F5 /* tclHash.c in Sources */, - F96D459608F272BC004A47F5 /* tclHistory.c in Sources */, - F96D459708F272BC004A47F5 /* tclIndexObj.c in Sources */, - F96D459B08F272BC004A47F5 /* tclInterp.c in Sources */, - F96D459D08F272BC004A47F5 /* tclIO.c in Sources */, - F96D459F08F272BC004A47F5 /* tclIOCmd.c in Sources */, - F96D45A008F272BC004A47F5 /* tclIOGT.c in Sources */, - F96D45A108F272BC004A47F5 /* tclIORChan.c in Sources */, - F95D77EA0DFD820D00A8BF6F /* tclIORTrans.c in Sources */, - F96D45A208F272BC004A47F5 /* tclIOSock.c in Sources */, - F96D45A308F272BC004A47F5 /* tclIOUtil.c in Sources */, - F96D45A408F272BC004A47F5 /* tclLink.c in Sources */, - F96D45A508F272BC004A47F5 /* tclListObj.c in Sources */, - F96D45A608F272BC004A47F5 /* tclLiteral.c in Sources */, - F96D45A708F272BC004A47F5 /* tclLoad.c in Sources */, - F96D45A908F272BC004A47F5 /* tclMain.c in Sources */, - F96D45AA08F272BC004A47F5 /* tclNamesp.c in Sources */, - F96D45AB08F272BC004A47F5 /* tclNotify.c in Sources */, - F96D45AC08F272BC004A47F5 /* tclObj.c in Sources */, - F93599B30DF1F75400E04F67 /* tclOO.c in Sources */, - F93599B70DF1F76100E04F67 /* tclOOBasic.c in Sources */, - F93599B90DF1F76600E04F67 /* tclOOCall.c in Sources */, - F93599BC0DF1F77000E04F67 /* tclOODefineCmds.c in Sources */, - F93599BE0DF1F77400E04F67 /* tclOOInfo.c in Sources */, - F93599C20DF1F78300E04F67 /* tclOOMethod.c in Sources */, - F93599C40DF1F78800E04F67 /* tclOOStubInit.c in Sources */, - F93599C60DF1F78D00E04F67 /* tclOOStubLib.c in Sources */, - F96D45AD08F272BC004A47F5 /* tclPanic.c in Sources */, - F96D45AE08F272BC004A47F5 /* tclParse.c in Sources */, - F96D45B008F272BC004A47F5 /* tclPathObj.c in Sources */, - F96D45B108F272BC004A47F5 /* tclPipe.c in Sources */, - F96D45B208F272BC004A47F5 /* tclPkg.c in Sources */, - F96D45B308F272BC004A47F5 /* tclPkgConfig.c in Sources */, - F96D45B608F272BC004A47F5 /* tclPosixStr.c in Sources */, - F96D45B708F272BC004A47F5 /* tclPreserve.c in Sources */, - F96D45B808F272BC004A47F5 /* tclProc.c in Sources */, - F96D45B908F272BC004A47F5 /* tclRegexp.c in Sources */, - F96D45BB08F272BC004A47F5 /* tclResolve.c in Sources */, - F96D45BC08F272BC004A47F5 /* tclResult.c in Sources */, - F96D45BD08F272BC004A47F5 /* tclScan.c in Sources */, - F96D45BE08F272BC004A47F5 /* tclStringObj.c in Sources */, - F96D45C308F272BC004A47F5 /* tclStrToD.c in Sources */, - F96D45C408F272BC004A47F5 /* tclStubInit.c in Sources */, - F96D45C508F272BC004A47F5 /* tclStubLib.c in Sources */, - F96D45C908F272BC004A47F5 /* tclThread.c in Sources */, - F96D45CA08F272BC004A47F5 /* tclThreadAlloc.c in Sources */, - F96D45CB08F272BC004A47F5 /* tclThreadJoin.c in Sources */, - F96D45CC08F272BC004A47F5 /* tclThreadStorage.c in Sources */, - F96D45CE08F272BC004A47F5 /* tclTimer.c in Sources */, - F96D45D008F272BC004A47F5 /* tclTomMathInterface.c in Sources */, - F96D45D108F272BC004A47F5 /* tclTrace.c in Sources */, - F96D45D308F272BC004A47F5 /* tclUtf.c in Sources */, - F96D45D408F272BC004A47F5 /* tclUtil.c in Sources */, - F96D45D508F272BC004A47F5 /* tclVar.c in Sources */, - F96437CA0EF0D4B2003F468E /* tclZlib.c in Sources */, - F96D48E208F272C3004A47F5 /* bn_fast_s_mp_mul_digs.c in Sources */, - F96D48E408F272C3004A47F5 /* bn_fast_s_mp_sqr.c in Sources */, - F96D48E708F272C3004A47F5 /* bn_mp_add.c in Sources */, - F96D48E808F272C3004A47F5 /* bn_mp_add_d.c in Sources */, - F9E61D2B090A48A4002B3151 /* bn_mp_and.c in Sources */, - F96D48EB08F272C3004A47F5 /* bn_mp_clamp.c in Sources */, - F96D48EC08F272C3004A47F5 /* bn_mp_clear.c in Sources */, - F96D48ED08F272C3004A47F5 /* bn_mp_clear_multi.c in Sources */, - F96D48EE08F272C3004A47F5 /* bn_mp_cmp.c in Sources */, - F9E61D28090A481F002B3151 /* bn_mp_cmp_d.c in Sources */, - F96D48F008F272C3004A47F5 /* bn_mp_cmp_mag.c in Sources */, - F96D48F208F272C3004A47F5 /* bn_mp_copy.c in Sources */, - F96D48F308F272C3004A47F5 /* bn_mp_count_bits.c in Sources */, - F96D48F408F272C3004A47F5 /* bn_mp_div.c in Sources */, - F96D48F508F272C3004A47F5 /* bn_mp_div_2.c in Sources */, - F96D48F608F272C3004A47F5 /* bn_mp_div_2d.c in Sources */, - F96D48F708F272C3004A47F5 /* bn_mp_div_3.c in Sources */, - F96D48F808F272C3004A47F5 /* bn_mp_div_d.c in Sources */, - F96D48FC08F272C3004A47F5 /* bn_mp_exch.c in Sources */, - F9E61D2C090A48AC002B3151 /* bn_mp_expt_d.c in Sources */, - F96D490508F272C3004A47F5 /* bn_mp_grow.c in Sources */, - F96D490608F272C3004A47F5 /* bn_mp_init.c in Sources */, - F96D490708F272C3004A47F5 /* bn_mp_init_copy.c in Sources */, - F96D490808F272C3004A47F5 /* bn_mp_init_multi.c in Sources */, - F96D490908F272C3004A47F5 /* bn_mp_init_set.c in Sources */, - F96D490B08F272C3004A47F5 /* bn_mp_init_size.c in Sources */, - F96D491008F272C3004A47F5 /* bn_mp_karatsuba_mul.c in Sources */, - F96D491108F272C3004A47F5 /* bn_mp_karatsuba_sqr.c in Sources */, - F96D491308F272C3004A47F5 /* bn_mp_lshd.c in Sources */, - F96D491408F272C3004A47F5 /* bn_mp_mod.c in Sources */, - F96D491508F272C3004A47F5 /* bn_mp_mod_2d.c in Sources */, - F96D491A08F272C3004A47F5 /* bn_mp_mul.c in Sources */, - F96D491B08F272C3004A47F5 /* bn_mp_mul_2.c in Sources */, - F96D491C08F272C3004A47F5 /* bn_mp_mul_2d.c in Sources */, - F96D491D08F272C3004A47F5 /* bn_mp_mul_d.c in Sources */, - F9E61D29090A486C002B3151 /* bn_mp_neg.c in Sources */, - F9E61D2E090A48BF002B3151 /* bn_mp_or.c in Sources */, - F96D492908F272C3004A47F5 /* bn_mp_radix_size.c in Sources */, - F96D492A08F272C3004A47F5 /* bn_mp_radix_smap.c in Sources */, - F96D492C08F272C3004A47F5 /* bn_mp_read_radix.c in Sources */, - F96D493708F272C3004A47F5 /* bn_mp_rshd.c in Sources */, - F96D493808F272C3004A47F5 /* bn_mp_set.c in Sources */, - F9E61D2F090A48C7002B3151 /* bn_mp_shrink.c in Sources */, - F96D493C08F272C3004A47F5 /* bn_mp_sqr.c in Sources */, - F9E61D2A090A4891002B3151 /* bn_mp_sqrt.c in Sources */, - F96D493F08F272C3004A47F5 /* bn_mp_sub.c in Sources */, - F96D494008F272C3004A47F5 /* bn_mp_sub_d.c in Sources */, - F9E61D30090A48E2002B3151 /* bn_mp_to_unsigned_bin_n.c in Sources */, - F9E61D31090A48F9002B3151 /* bn_mp_to_unsigned_bin.c in Sources */, - F96D494608F272C3004A47F5 /* bn_mp_toom_mul.c in Sources */, - F96D494708F272C3004A47F5 /* bn_mp_toom_sqr.c in Sources */, - F96D494908F272C3004A47F5 /* bn_mp_toradix_n.c in Sources */, - F9E61D32090A48FA002B3151 /* bn_mp_unsigned_bin_size.c in Sources */, - F9E61D2D090A48BB002B3151 /* bn_mp_xor.c in Sources */, - F96D494C08F272C3004A47F5 /* bn_mp_zero.c in Sources */, - F96D494E08F272C3004A47F5 /* bn_reverse.c in Sources */, - F96D494F08F272C3004A47F5 /* bn_s_mp_add.c in Sources */, - F96D495108F272C3004A47F5 /* bn_s_mp_mul_digs.c in Sources */, - F96D495308F272C3004A47F5 /* bn_s_mp_sqr.c in Sources */, - F96D495408F272C3004A47F5 /* bn_s_mp_sub.c in Sources */, - F96D495508F272C3004A47F5 /* bncore.c in Sources */, - F96D49A908F272C4004A47F5 /* tclMacOSXBundle.c in Sources */, - F96D49AD08F272C4004A47F5 /* tclMacOSXFCmd.c in Sources */, - F96D49AE08F272C4004A47F5 /* tclMacOSXNotify.c in Sources */, - F96D4AC608F272C9004A47F5 /* tclLoadDyld.c in Sources */, - F96D4ACA08F272C9004A47F5 /* tclUnixChan.c in Sources */, - F9FC77B80AB29E9100B7077D /* tclUnixCompat.c in Sources */, - F96D4ACB08F272C9004A47F5 /* tclUnixEvent.c in Sources */, - F96D4ACC08F272C9004A47F5 /* tclUnixFCmd.c in Sources */, - F96D4ACD08F272C9004A47F5 /* tclUnixFile.c in Sources */, - F96D4ACE08F272C9004A47F5 /* tclUnixInit.c in Sources */, - F96D4ACF08F272C9004A47F5 /* tclUnixNotfy.c in Sources */, - F96D4AD008F272C9004A47F5 /* tclUnixPipe.c in Sources */, - F96D4AD208F272CA004A47F5 /* tclUnixSock.c in Sources */, - F96D4AD408F272CA004A47F5 /* tclUnixThrd.c in Sources */, - F96D4AD608F272CA004A47F5 /* tclUnixTime.c in Sources */, - F9F4415E0C8BAE6F00BCCD67 /* tclDTrace.d in Sources */, - F966BDCF08F27A3F005CB29B /* tk3d.c in Sources */, - F966BDD108F27A3F005CB29B /* tkArgv.c in Sources */, - F966BDD208F27A3F005CB29B /* tkAtom.c in Sources */, - F966BDD308F27A3F005CB29B /* tkBind.c in Sources */, - F966BDD408F27A3F005CB29B /* tkBitmap.c in Sources */, - F9152B090EAF8A5000CD5C7B /* tkBusy.c in Sources */, - F966BDD508F27A3F005CB29B /* tkButton.c in Sources */, - F966BDD708F27A3F005CB29B /* tkCanvArc.c in Sources */, - F966BDD808F27A3F005CB29B /* tkCanvas.c in Sources */, - F966BDDA08F27A3F005CB29B /* tkCanvBmap.c in Sources */, - F966BDDB08F27A3F005CB29B /* tkCanvImg.c in Sources */, - F966BDDC08F27A3F005CB29B /* tkCanvLine.c in Sources */, - F966BDDD08F27A3F005CB29B /* tkCanvPoly.c in Sources */, - F966BDDE08F27A3F005CB29B /* tkCanvPs.c in Sources */, - F966BDE008F27A3F005CB29B /* tkCanvText.c in Sources */, - F966BDE108F27A3F005CB29B /* tkCanvUtil.c in Sources */, - F966BDE208F27A3F005CB29B /* tkCanvWind.c in Sources */, - F966BDE308F27A3F005CB29B /* tkClipboard.c in Sources */, - F966BDE408F27A3F005CB29B /* tkCmds.c in Sources */, - F966BDE508F27A3F005CB29B /* tkColor.c in Sources */, - F966BDE708F27A3F005CB29B /* tkConfig.c in Sources */, - F966BDE808F27A3F005CB29B /* tkConsole.c in Sources */, - F966BDE908F27A3F005CB29B /* tkCursor.c in Sources */, - F966BDEB08F27A3F005CB29B /* tkEntry.c in Sources */, - F966BDED08F27A3F005CB29B /* tkError.c in Sources */, - F966BDEE08F27A3F005CB29B /* tkEvent.c in Sources */, - F966BDEF08F27A3F005CB29B /* tkFileFilter.c in Sources */, - F966BDF108F27A3F005CB29B /* tkFocus.c in Sources */, - F966BDF208F27A3F005CB29B /* tkFont.c in Sources */, - F966BDF408F27A3F005CB29B /* tkFrame.c in Sources */, - F966BDF508F27A3F005CB29B /* tkGC.c in Sources */, - F966BDF608F27A3F005CB29B /* tkGeometry.c in Sources */, - F966BDF708F27A3F005CB29B /* tkGet.c in Sources */, - F966BDF808F27A3F005CB29B /* tkGrab.c in Sources */, - F966BDF908F27A3F005CB29B /* tkGrid.c in Sources */, - F966BDFA08F27A3F005CB29B /* tkImage.c in Sources */, - F966BDFB08F27A3F005CB29B /* tkImgBmap.c in Sources */, - F966BDFC08F27A3F005CB29B /* tkImgGIF.c in Sources */, - F92EE8BF0E62F846001A6E80 /* tkImgPhInstance.c in Sources */, - F966BDFD08F27A3F005CB29B /* tkImgPhoto.c in Sources */, - F9DD99BD0F07DF850018B2E4 /* tkImgPNG.c in Sources */, - F966BDFE08F27A3F005CB29B /* tkImgPPM.c in Sources */, - F966BE0708F27A3F005CB29B /* tkListbox.c in Sources */, - F966BE0808F27A3F005CB29B /* tkMacWinMenu.c in Sources */, - F966BE0908F27A3F005CB29B /* tkMain.c in Sources */, - F966BE0A08F27A3F005CB29B /* tkMenu.c in Sources */, - F966BE0C08F27A3F005CB29B /* tkMenubutton.c in Sources */, - F966BE0E08F27A3F005CB29B /* tkMenuDraw.c in Sources */, - F966BE0F08F27A3F005CB29B /* tkMessage.c in Sources */, - F966BE1008F27A3F005CB29B /* tkObj.c in Sources */, - F966BE1108F27A3F005CB29B /* tkOldConfig.c in Sources */, - F9067BCD0BFBA2900074F726 /* tkOldTest.c in Sources */, - F966BE1208F27A3F005CB29B /* tkOption.c in Sources */, - F966BE1308F27A3F005CB29B /* tkPack.c in Sources */, - F966BE1408F27A3F005CB29B /* tkPanedWindow.c in Sources */, - F966BE1508F27A3F005CB29B /* tkPlace.c in Sources */, - F966BE1708F27A3F005CB29B /* tkPointer.c in Sources */, - F966BE1908F27A3F005CB29B /* tkRectOval.c in Sources */, - F966BE1A08F27A3F005CB29B /* tkScale.c in Sources */, - F966BE1C08F27A40005CB29B /* tkScrollbar.c in Sources */, - F966BE1E08F27A40005CB29B /* tkSelect.c in Sources */, - F966BE2008F27A40005CB29B /* tkSquare.c in Sources */, - F966BE2208F27A40005CB29B /* tkStubInit.c in Sources */, - F966BE2308F27A40005CB29B /* tkStubLib.c in Sources */, - F966BE2408F27A40005CB29B /* tkStyle.c in Sources */, - F966BE2508F27A40005CB29B /* tkTest.c in Sources */, - F966BE2608F27A40005CB29B /* tkText.c in Sources */, - F966BE2808F27A40005CB29B /* tkTextBTree.c in Sources */, - F966BE2908F27A40005CB29B /* tkTextDisp.c in Sources */, - F966BE2B08F27A40005CB29B /* tkTextImage.c in Sources */, - F966BE2C08F27A40005CB29B /* tkTextIndex.c in Sources */, - F966BE2D08F27A40005CB29B /* tkTextMark.c in Sources */, - F966BE2E08F27A40005CB29B /* tkTextTag.c in Sources */, - F966BE2F08F27A40005CB29B /* tkTextWind.c in Sources */, - F966BE3008F27A40005CB29B /* tkTrig.c in Sources */, - F966BE3108F27A40005CB29B /* tkUndo.c in Sources */, - F966BE3308F27A40005CB29B /* tkUtil.c in Sources */, - F966BE3408F27A40005CB29B /* tkVisual.c in Sources */, - F966BE3508F27A40005CB29B /* tkWindow.c in Sources */, - F96888050AF786D5000797B5 /* ttkBlink.c in Sources */, - F96888060AF786D5000797B5 /* ttkButton.c in Sources */, - F96888070AF786D5000797B5 /* ttkCache.c in Sources */, - F96888080AF786D5000797B5 /* ttkClamTheme.c in Sources */, - F96888090AF786D5000797B5 /* ttkClassicTheme.c in Sources */, - F968880A0AF786D5000797B5 /* ttkDefaultTheme.c in Sources */, - F968880B0AF786D5000797B5 /* ttkElements.c in Sources */, - F968880C0AF786D5000797B5 /* ttkEntry.c in Sources */, - F968880D0AF786D5000797B5 /* ttkFrame.c in Sources */, - F968880E0AF786D5000797B5 /* ttkImage.c in Sources */, - F968880F0AF786D5000797B5 /* ttkInit.c in Sources */, - F96888100AF786D5000797B5 /* ttkLabel.c in Sources */, - F96888110AF786D5000797B5 /* ttkLayout.c in Sources */, - F96888120AF786D5000797B5 /* ttkManager.c in Sources */, - F96888130AF786D5000797B5 /* ttkNotebook.c in Sources */, - F96888140AF786D5000797B5 /* ttkPanedwindow.c in Sources */, - F96888150AF786D5000797B5 /* ttkProgress.c in Sources */, - F96888160AF786D5000797B5 /* ttkScale.c in Sources */, - F96888170AF786D5000797B5 /* ttkScroll.c in Sources */, - F96888180AF786D5000797B5 /* ttkScrollbar.c in Sources */, - F96888190AF786D5000797B5 /* ttkSeparator.c in Sources */, - F968881A0AF786D5000797B5 /* ttkSquare.c in Sources */, - F968881B0AF786D5000797B5 /* ttkState.c in Sources */, - F968881C0AF786D5000797B5 /* ttkStubInit.c in Sources */, - F968881D0AF786D5000797B5 /* ttkStubLib.c in Sources */, - F968881E0AF786D5000797B5 /* ttkTagSet.c in Sources */, - F968881F0AF786D5000797B5 /* ttkTheme.c in Sources */, - F96888200AF786D5000797B5 /* ttkTrace.c in Sources */, - F96888210AF786D5000797B5 /* ttkTrack.c in Sources */, - F96888220AF786D5000797B5 /* ttkTreeview.c in Sources */, - F96888230AF786D5000797B5 /* ttkWidget.c in Sources */, - F966BEDB08F27A40005CB29B /* tkMacOSXBitmap.c in Sources */, - F966BEDC08F27A40005CB29B /* tkMacOSXButton.c in Sources */, - F966BEDE08F27A40005CB29B /* tkMacOSXClipboard.c in Sources */, - F966BEDF08F27A40005CB29B /* tkMacOSXColor.c in Sources */, - F966BEE008F27A40005CB29B /* tkMacOSXConfig.c in Sources */, - F966BEE108F27A40005CB29B /* tkMacOSXCursor.c in Sources */, - F966BEE308F27A40005CB29B /* tkMacOSXDebug.c in Sources */, - F966BEE608F27A40005CB29B /* tkMacOSXDialog.c in Sources */, - F966BEE708F27A40005CB29B /* tkMacOSXDraw.c in Sources */, - F966BEE808F27A40005CB29B /* tkMacOSXEmbed.c in Sources */, - F966BEE908F27A40005CB29B /* tkMacOSXEntry.c in Sources */, - F966BEEA08F27A40005CB29B /* tkMacOSXEvent.c in Sources */, - F966BEEC08F27A40005CB29B /* tkMacOSXFont.c in Sources */, - F966BEED08F27A40005CB29B /* tkMacOSXHLEvents.c in Sources */, - F966BEEE08F27A40005CB29B /* tkMacOSXInit.c in Sources */, - F966BEF108F27A40005CB29B /* tkMacOSXKeyboard.c in Sources */, - F966BEF208F27A40005CB29B /* tkMacOSXKeyEvent.c in Sources */, - F966BEF308F27A40005CB29B /* tkMacOSXMenu.c in Sources */, - F966BEF608F27A40005CB29B /* tkMacOSXMenubutton.c in Sources */, - F966BEF708F27A40005CB29B /* tkMacOSXMenus.c in Sources */, - F966BEF808F27A40005CB29B /* tkMacOSXMouseEvent.c in Sources */, - F966BEF908F27A40005CB29B /* tkMacOSXNotify.c in Sources */, - F966BF0108F27A40005CB29B /* tkMacOSXRegion.c in Sources */, - F966BF0308F27A40005CB29B /* tkMacOSXScrlbr.c in Sources */, - F966BF0408F27A40005CB29B /* tkMacOSXSend.c in Sources */, - F966BF0508F27A40005CB29B /* tkMacOSXSubwindows.c in Sources */, - F966BF0608F27A40005CB29B /* tkMacOSXTest.c in Sources */, - F966BF0708F27A40005CB29B /* tkMacOSXWindowEvent.c in Sources */, - F966BF0808F27A40005CB29B /* tkMacOSXWm.c in Sources */, - F966BF0B08F27A40005CB29B /* tkMacOSXXStubs.c in Sources */, - F96888850AF78938000797B5 /* ttkMacOSXTheme.c in Sources */, - F966BF7F08F27A41005CB29B /* tkAppInit.c in Sources */, - F966BF8308F27A41005CB29B /* tkUnix3d.c in Sources */, - F966BF9608F27A41005CB29B /* tkUnixScale.c in Sources */, - F966C02A08F27A42005CB29B /* xcolors.c in Sources */, - F966C02B08F27A42005CB29B /* xdraw.c in Sources */, - F966C02C08F27A42005CB29B /* xgc.c in Sources */, - F966C02D08F27A42005CB29B /* ximage.c in Sources */, - F966C02E08F27A42005CB29B /* xutil.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F9FD30BB0CC1AD070073837D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F9FD30BC0CC1AD070073837D /* regcomp.c in Sources */, - F9FD30BD0CC1AD070073837D /* regerror.c in Sources */, - F9FD30BE0CC1AD070073837D /* regexec.c in Sources */, - F9FD30BF0CC1AD070073837D /* regfree.c in Sources */, - F9FD30C00CC1AD070073837D /* tclAlloc.c in Sources */, - F9FD30C10CC1AD070073837D /* tclAsync.c in Sources */, - F9FD30C20CC1AD070073837D /* tclBasic.c in Sources */, - F9FD30C30CC1AD070073837D /* tclBinary.c in Sources */, - F9FD30C40CC1AD070073837D /* tclCkalloc.c in Sources */, - F9FD30C50CC1AD070073837D /* tclClock.c in Sources */, - F9FD30C60CC1AD070073837D /* tclCmdAH.c in Sources */, - F9FD30C70CC1AD070073837D /* tclCmdIL.c in Sources */, - F9FD30C80CC1AD070073837D /* tclCmdMZ.c in Sources */, - F9FD30C90CC1AD070073837D /* tclCompCmds.c in Sources */, - F9FD30CA0CC1AD070073837D /* tclCompExpr.c in Sources */, - F9FD30CB0CC1AD070073837D /* tclCompile.c in Sources */, - F9FD30CC0CC1AD070073837D /* tclConfig.c in Sources */, - F9FD30CD0CC1AD070073837D /* tclDate.c in Sources */, - F9FD30CE0CC1AD070073837D /* tclDictObj.c in Sources */, - F9FD30CF0CC1AD070073837D /* tclEncoding.c in Sources */, - F9FD30D00CC1AD070073837D /* tclEnv.c in Sources */, - F9FD30D10CC1AD070073837D /* tclEvent.c in Sources */, - F9FD30D20CC1AD070073837D /* tclExecute.c in Sources */, - F9FD30D30CC1AD070073837D /* tclFCmd.c in Sources */, - F9FD30D40CC1AD070073837D /* tclFileName.c in Sources */, - F9FD30D50CC1AD070073837D /* tclGet.c in Sources */, - F9FD30D60CC1AD070073837D /* tclHash.c in Sources */, - F9FD30D70CC1AD070073837D /* tclHistory.c in Sources */, - F9FD30D80CC1AD070073837D /* tclIndexObj.c in Sources */, - F9FD30D90CC1AD070073837D /* tclInterp.c in Sources */, - F9FD30DA0CC1AD070073837D /* tclIO.c in Sources */, - F9FD30DB0CC1AD070073837D /* tclIOCmd.c in Sources */, - F9FD30DC0CC1AD070073837D /* tclIOGT.c in Sources */, - F9FD30DD0CC1AD070073837D /* tclIORChan.c in Sources */, - F9FFAF1D0DFDDB26007F8A6A /* tclIORTrans.c in Sources */, - F9FD30DE0CC1AD070073837D /* tclIOSock.c in Sources */, - F9FD30DF0CC1AD070073837D /* tclIOUtil.c in Sources */, - F9FD30E00CC1AD070073837D /* tclLink.c in Sources */, - F9FD30E10CC1AD070073837D /* tclListObj.c in Sources */, - F9FD30E20CC1AD070073837D /* tclLiteral.c in Sources */, - F9FD30E30CC1AD070073837D /* tclLoad.c in Sources */, - F9FD30E40CC1AD070073837D /* tclMain.c in Sources */, - F9FD30E50CC1AD070073837D /* tclNamesp.c in Sources */, - F9FD30E60CC1AD070073837D /* tclNotify.c in Sources */, - F9FD30E70CC1AD070073837D /* tclObj.c in Sources */, - F9FFAF1F0DFDDB2F007F8A6A /* tclOO.c in Sources */, - F9FFAF200DFDDB32007F8A6A /* tclOOBasic.c in Sources */, - F9FFAF210DFDDB32007F8A6A /* tclOOCall.c in Sources */, - F9FFAF220DFDDB34007F8A6A /* tclOODefineCmds.c in Sources */, - F9FFAF230DFDDB35007F8A6A /* tclOOInfo.c in Sources */, - F9FFAF240DFDDB36007F8A6A /* tclOOMethod.c in Sources */, - F9FFAF250DFDDB37007F8A6A /* tclOOStubInit.c in Sources */, - F9FFAF260DFDDB38007F8A6A /* tclOOStubLib.c in Sources */, - F9FD30E80CC1AD070073837D /* tclPanic.c in Sources */, - F9FD30E90CC1AD070073837D /* tclParse.c in Sources */, - F9FD30EA0CC1AD070073837D /* tclPathObj.c in Sources */, - F9FD30EB0CC1AD070073837D /* tclPipe.c in Sources */, - F9FD30EC0CC1AD070073837D /* tclPkg.c in Sources */, - F9FD30ED0CC1AD070073837D /* tclPkgConfig.c in Sources */, - F9FD30EE0CC1AD070073837D /* tclPosixStr.c in Sources */, - F9FD30EF0CC1AD070073837D /* tclPreserve.c in Sources */, - F9FD30F00CC1AD070073837D /* tclProc.c in Sources */, - F9FD30F10CC1AD070073837D /* tclRegexp.c in Sources */, - F9FD30F20CC1AD070073837D /* tclResolve.c in Sources */, - F9FD30F30CC1AD070073837D /* tclResult.c in Sources */, - F9FD30F40CC1AD070073837D /* tclScan.c in Sources */, - F9FD30F50CC1AD070073837D /* tclStringObj.c in Sources */, - F9FD30F60CC1AD070073837D /* tclStrToD.c in Sources */, - F9FD30F70CC1AD070073837D /* tclStubInit.c in Sources */, - F9FD30F80CC1AD070073837D /* tclStubLib.c in Sources */, - F9FD30F90CC1AD070073837D /* tclThread.c in Sources */, - F9FD30FA0CC1AD070073837D /* tclThreadAlloc.c in Sources */, - F9FD30FB0CC1AD070073837D /* tclThreadJoin.c in Sources */, - F9FD30FC0CC1AD070073837D /* tclThreadStorage.c in Sources */, - F9FD30FD0CC1AD070073837D /* tclTimer.c in Sources */, - F9FD30FE0CC1AD070073837D /* tclTomMathInterface.c in Sources */, - F9FD30FF0CC1AD070073837D /* tclTrace.c in Sources */, - F9FD31000CC1AD070073837D /* tclUtf.c in Sources */, - F9FD31010CC1AD070073837D /* tclUtil.c in Sources */, - F9FD31020CC1AD070073837D /* tclVar.c in Sources */, - F96437CB0EF0D4B2003F468E /* tclZlib.c in Sources */, - F9FD31030CC1AD070073837D /* bn_fast_s_mp_mul_digs.c in Sources */, - F9FD31040CC1AD070073837D /* bn_fast_s_mp_sqr.c in Sources */, - F9FD31050CC1AD070073837D /* bn_mp_add.c in Sources */, - F9FD31060CC1AD070073837D /* bn_mp_add_d.c in Sources */, - F9FD31070CC1AD070073837D /* bn_mp_and.c in Sources */, - F9FD31080CC1AD070073837D /* bn_mp_clamp.c in Sources */, - F9FD31090CC1AD070073837D /* bn_mp_clear.c in Sources */, - F9FD310A0CC1AD070073837D /* bn_mp_clear_multi.c in Sources */, - F9FD310B0CC1AD070073837D /* bn_mp_cmp.c in Sources */, - F9FD310C0CC1AD070073837D /* bn_mp_cmp_d.c in Sources */, - F9FD310D0CC1AD070073837D /* bn_mp_cmp_mag.c in Sources */, - F9FD310E0CC1AD070073837D /* bn_mp_copy.c in Sources */, - F9FD310F0CC1AD070073837D /* bn_mp_count_bits.c in Sources */, - F9FD31100CC1AD070073837D /* bn_mp_div.c in Sources */, - F9FD31110CC1AD070073837D /* bn_mp_div_2.c in Sources */, - F9FD31120CC1AD070073837D /* bn_mp_div_2d.c in Sources */, - F9FD31130CC1AD070073837D /* bn_mp_div_3.c in Sources */, - F9FD31140CC1AD070073837D /* bn_mp_div_d.c in Sources */, - F9FD31150CC1AD070073837D /* bn_mp_exch.c in Sources */, - F9FD31160CC1AD070073837D /* bn_mp_expt_d.c in Sources */, - F9FD31170CC1AD070073837D /* bn_mp_grow.c in Sources */, - F9FD31180CC1AD070073837D /* bn_mp_init.c in Sources */, - F9FD31190CC1AD070073837D /* bn_mp_init_copy.c in Sources */, - F9FD311A0CC1AD070073837D /* bn_mp_init_multi.c in Sources */, - F9FD311B0CC1AD070073837D /* bn_mp_init_set.c in Sources */, - F9FD311C0CC1AD070073837D /* bn_mp_init_size.c in Sources */, - F9FD311D0CC1AD070073837D /* bn_mp_karatsuba_mul.c in Sources */, - F9FD311E0CC1AD070073837D /* bn_mp_karatsuba_sqr.c in Sources */, - F9FD311F0CC1AD070073837D /* bn_mp_lshd.c in Sources */, - F9FD31200CC1AD070073837D /* bn_mp_mod.c in Sources */, - F9FD31210CC1AD070073837D /* bn_mp_mod_2d.c in Sources */, - F9FD31220CC1AD070073837D /* bn_mp_mul.c in Sources */, - F9FD31230CC1AD070073837D /* bn_mp_mul_2.c in Sources */, - F9FD31240CC1AD070073837D /* bn_mp_mul_2d.c in Sources */, - F9FD31250CC1AD070073837D /* bn_mp_mul_d.c in Sources */, - F9FD31260CC1AD070073837D /* bn_mp_neg.c in Sources */, - F9FD31270CC1AD070073837D /* bn_mp_or.c in Sources */, - F9FD31280CC1AD070073837D /* bn_mp_radix_size.c in Sources */, - F9FD31290CC1AD070073837D /* bn_mp_radix_smap.c in Sources */, - F9FD312A0CC1AD070073837D /* bn_mp_read_radix.c in Sources */, - F9FD312B0CC1AD070073837D /* bn_mp_rshd.c in Sources */, - F9FD312C0CC1AD070073837D /* bn_mp_set.c in Sources */, - F9FD312D0CC1AD070073837D /* bn_mp_shrink.c in Sources */, - F9FD312E0CC1AD070073837D /* bn_mp_sqr.c in Sources */, - F9FD312F0CC1AD070073837D /* bn_mp_sqrt.c in Sources */, - F9FD31300CC1AD070073837D /* bn_mp_sub.c in Sources */, - F9FD31310CC1AD070073837D /* bn_mp_sub_d.c in Sources */, - F9FD31320CC1AD070073837D /* bn_mp_to_unsigned_bin_n.c in Sources */, - F9FD31330CC1AD070073837D /* bn_mp_to_unsigned_bin.c in Sources */, - F9FD31340CC1AD070073837D /* bn_mp_toom_mul.c in Sources */, - F9FD31350CC1AD070073837D /* bn_mp_toom_sqr.c in Sources */, - F9FD31360CC1AD070073837D /* bn_mp_toradix_n.c in Sources */, - F9FD31370CC1AD070073837D /* bn_mp_unsigned_bin_size.c in Sources */, - F9FD31380CC1AD070073837D /* bn_mp_xor.c in Sources */, - F9FD31390CC1AD070073837D /* bn_mp_zero.c in Sources */, - F9FD313A0CC1AD070073837D /* bn_reverse.c in Sources */, - F9FD313B0CC1AD070073837D /* bn_s_mp_add.c in Sources */, - F9FD313C0CC1AD070073837D /* bn_s_mp_mul_digs.c in Sources */, - F9FD313D0CC1AD070073837D /* bn_s_mp_sqr.c in Sources */, - F9FD313E0CC1AD070073837D /* bn_s_mp_sub.c in Sources */, - F9FD313F0CC1AD070073837D /* bncore.c in Sources */, - F9FD31400CC1AD070073837D /* tclMacOSXBundle.c in Sources */, - F9FD31410CC1AD070073837D /* tclMacOSXFCmd.c in Sources */, - F9FD31420CC1AD070073837D /* tclMacOSXNotify.c in Sources */, - F9FD31430CC1AD070073837D /* tclLoadDyld.c in Sources */, - F9FD31440CC1AD070073837D /* tclUnixChan.c in Sources */, - F9FD31450CC1AD070073837D /* tclUnixCompat.c in Sources */, - F9FD31460CC1AD070073837D /* tclUnixEvent.c in Sources */, - F9FD31470CC1AD070073837D /* tclUnixFCmd.c in Sources */, - F9FD31480CC1AD070073837D /* tclUnixFile.c in Sources */, - F9FD31490CC1AD070073837D /* tclUnixInit.c in Sources */, - F9FD314A0CC1AD070073837D /* tclUnixNotfy.c in Sources */, - F9FD314B0CC1AD070073837D /* tclUnixPipe.c in Sources */, - F9FD314C0CC1AD070073837D /* tclUnixSock.c in Sources */, - F9FD314D0CC1AD070073837D /* tclUnixThrd.c in Sources */, - F9FD314E0CC1AD070073837D /* tclUnixTime.c in Sources */, - F9FD31E20CC1AD070073837D /* tclDTrace.d in Sources */, - F9FD314F0CC1AD070073837D /* tk3d.c in Sources */, - F9FD31500CC1AD070073837D /* tkArgv.c in Sources */, - F9FD31510CC1AD070073837D /* tkAtom.c in Sources */, - F9FD31520CC1AD070073837D /* tkBind.c in Sources */, - F9FD31530CC1AD070073837D /* tkBitmap.c in Sources */, - F9152B0A0EAF8A5700CD5C7B /* tkBusy.c in Sources */, - F9FD31540CC1AD070073837D /* tkButton.c in Sources */, - F9FD31550CC1AD070073837D /* tkCanvArc.c in Sources */, - F9FD31560CC1AD070073837D /* tkCanvas.c in Sources */, - F9FD31570CC1AD070073837D /* tkCanvBmap.c in Sources */, - F9FD31580CC1AD070073837D /* tkCanvImg.c in Sources */, - F9FD31590CC1AD070073837D /* tkCanvLine.c in Sources */, - F9FD315A0CC1AD070073837D /* tkCanvPoly.c in Sources */, - F9FD315B0CC1AD070073837D /* tkCanvPs.c in Sources */, - F9FD315C0CC1AD070073837D /* tkCanvText.c in Sources */, - F9FD315D0CC1AD070073837D /* tkCanvUtil.c in Sources */, - F9FD315E0CC1AD070073837D /* tkCanvWind.c in Sources */, - F9FD315F0CC1AD070073837D /* tkClipboard.c in Sources */, - F9FD31600CC1AD070073837D /* tkCmds.c in Sources */, - F9FD31610CC1AD070073837D /* tkColor.c in Sources */, - F9FD31620CC1AD070073837D /* tkConfig.c in Sources */, - F9FD31630CC1AD070073837D /* tkConsole.c in Sources */, - F9FD31640CC1AD070073837D /* tkCursor.c in Sources */, - F9FD31650CC1AD070073837D /* tkEntry.c in Sources */, - F9FD31660CC1AD070073837D /* tkError.c in Sources */, - F9FD31670CC1AD070073837D /* tkEvent.c in Sources */, - F9FD31680CC1AD070073837D /* tkFileFilter.c in Sources */, - F9FD31690CC1AD070073837D /* tkFocus.c in Sources */, - F9FD316A0CC1AD070073837D /* tkFont.c in Sources */, - F9FD316B0CC1AD070073837D /* tkFrame.c in Sources */, - F9FD316C0CC1AD070073837D /* tkGC.c in Sources */, - F9FD316D0CC1AD070073837D /* tkGeometry.c in Sources */, - F9FD316E0CC1AD070073837D /* tkGet.c in Sources */, - F9FD316F0CC1AD070073837D /* tkGrab.c in Sources */, - F9FD31700CC1AD070073837D /* tkGrid.c in Sources */, - F9FD31710CC1AD070073837D /* tkImage.c in Sources */, - F9FD31720CC1AD070073837D /* tkImgBmap.c in Sources */, - F9FD31730CC1AD070073837D /* tkImgGIF.c in Sources */, - F92EE8D30E62F939001A6E80 /* tkImgPhInstance.c in Sources */, - F9FD31740CC1AD070073837D /* tkImgPhoto.c in Sources */, - F9DD99BE0F07DF850018B2E4 /* tkImgPNG.c in Sources */, - F9FD31750CC1AD070073837D /* tkImgPPM.c in Sources */, - F9FD31760CC1AD070073837D /* tkListbox.c in Sources */, - F9FD31770CC1AD070073837D /* tkMacWinMenu.c in Sources */, - F9FD31780CC1AD070073837D /* tkMain.c in Sources */, - F9FD31790CC1AD070073837D /* tkMenu.c in Sources */, - F9FD317A0CC1AD070073837D /* tkMenubutton.c in Sources */, - F9FD317B0CC1AD070073837D /* tkMenuDraw.c in Sources */, - F9FD317C0CC1AD070073837D /* tkMessage.c in Sources */, - F9FD317D0CC1AD070073837D /* tkObj.c in Sources */, - F9FD317E0CC1AD070073837D /* tkOldConfig.c in Sources */, - F9FD317F0CC1AD070073837D /* tkOldTest.c in Sources */, - F9FD31800CC1AD070073837D /* tkOption.c in Sources */, - F9FD31810CC1AD070073837D /* tkPack.c in Sources */, - F9FD31820CC1AD070073837D /* tkPanedWindow.c in Sources */, - F9FD31830CC1AD070073837D /* tkPlace.c in Sources */, - F9FD31850CC1AD070073837D /* tkRectOval.c in Sources */, - F9FD31860CC1AD070073837D /* tkScale.c in Sources */, - F9FD31870CC1AD070073837D /* tkScrollbar.c in Sources */, - F9FD31880CC1AD070073837D /* tkSelect.c in Sources */, - F9FD31890CC1AD070073837D /* tkSquare.c in Sources */, - F9FD318A0CC1AD070073837D /* tkStubInit.c in Sources */, - F9FD318B0CC1AD070073837D /* tkStubLib.c in Sources */, - F9FD318C0CC1AD070073837D /* tkStyle.c in Sources */, - F9FD318D0CC1AD070073837D /* tkTest.c in Sources */, - F9FD318E0CC1AD070073837D /* tkText.c in Sources */, - F9FD318F0CC1AD070073837D /* tkTextBTree.c in Sources */, - F9FD31900CC1AD070073837D /* tkTextDisp.c in Sources */, - F9FD31910CC1AD070073837D /* tkTextImage.c in Sources */, - F9FD31920CC1AD070073837D /* tkTextIndex.c in Sources */, - F9FD31930CC1AD070073837D /* tkTextMark.c in Sources */, - F9FD31940CC1AD070073837D /* tkTextTag.c in Sources */, - F9FD31950CC1AD070073837D /* tkTextWind.c in Sources */, - F9FD31960CC1AD070073837D /* tkTrig.c in Sources */, - F9FD31970CC1AD070073837D /* tkUndo.c in Sources */, - F9FD31980CC1AD070073837D /* tkUtil.c in Sources */, - F9FD31990CC1AD070073837D /* tkVisual.c in Sources */, - F9FD319A0CC1AD070073837D /* tkWindow.c in Sources */, - F9FD319B0CC1AD070073837D /* ttkBlink.c in Sources */, - F9FD319C0CC1AD070073837D /* ttkButton.c in Sources */, - F9FD319D0CC1AD070073837D /* ttkCache.c in Sources */, - F9FD319E0CC1AD070073837D /* ttkClamTheme.c in Sources */, - F9FD319F0CC1AD070073837D /* ttkClassicTheme.c in Sources */, - F9FD31A00CC1AD070073837D /* ttkDefaultTheme.c in Sources */, - F9FD31A10CC1AD070073837D /* ttkElements.c in Sources */, - F9FD31A20CC1AD070073837D /* ttkEntry.c in Sources */, - F9FD31A30CC1AD070073837D /* ttkFrame.c in Sources */, - F9FD31A40CC1AD070073837D /* ttkImage.c in Sources */, - F9FD31A50CC1AD070073837D /* ttkInit.c in Sources */, - F9FD31A60CC1AD070073837D /* ttkLabel.c in Sources */, - F9FD31A70CC1AD070073837D /* ttkLayout.c in Sources */, - F9FD31A80CC1AD070073837D /* ttkManager.c in Sources */, - F9FD31A90CC1AD070073837D /* ttkNotebook.c in Sources */, - F9FD31AA0CC1AD070073837D /* ttkPanedwindow.c in Sources */, - F9FD31AB0CC1AD070073837D /* ttkProgress.c in Sources */, - F9FD31AC0CC1AD070073837D /* ttkScale.c in Sources */, - F9FD31AD0CC1AD070073837D /* ttkScroll.c in Sources */, - F9FD31AE0CC1AD070073837D /* ttkScrollbar.c in Sources */, - F9FD31AF0CC1AD070073837D /* ttkSeparator.c in Sources */, - F9FD31B00CC1AD070073837D /* ttkSquare.c in Sources */, - F9FD31B10CC1AD070073837D /* ttkState.c in Sources */, - F9FD31B20CC1AD070073837D /* ttkStubInit.c in Sources */, - F9FD31B30CC1AD070073837D /* ttkStubLib.c in Sources */, - F9FD31B40CC1AD070073837D /* ttkTagSet.c in Sources */, - F9FD31B50CC1AD070073837D /* ttkTheme.c in Sources */, - F9FD31B60CC1AD070073837D /* ttkTrace.c in Sources */, - F9FD31B70CC1AD070073837D /* ttkTrack.c in Sources */, - F9FD31B80CC1AD070073837D /* ttkTreeview.c in Sources */, - F9FD31B90CC1AD070073837D /* ttkWidget.c in Sources */, - F9FD31DA0CC1AD070073837D /* tkAppInit.c in Sources */, - F9FD32020CC1ADB70073837D /* tkUnix.c in Sources */, - F9FD31DB0CC1AD070073837D /* tkUnix3d.c in Sources */, - F9FD320A0CC1ADB70073837D /* tkUnixButton.c in Sources */, - F9FD32090CC1ADB70073837D /* tkUnixColor.c in Sources */, - F9FD32040CC1ADB70073837D /* tkUnixConfig.c in Sources */, - F9FD31F80CC1ADB70073837D /* tkUnixCursor.c in Sources */, - F9FD32050CC1ADB70073837D /* tkUnixDraw.c in Sources */, - F9FD31FD0CC1ADB70073837D /* tkUnixEmbed.c in Sources */, - F9FD32080CC1ADB70073837D /* tkUnixEvent.c in Sources */, - F9FD31FF0CC1ADB70073837D /* tkUnixFocus.c in Sources */, - F9FD31FC0CC1ADB70073837D /* tkUnixInit.c in Sources */, - F9FD31FA0CC1ADB70073837D /* tkUnixKey.c in Sources */, - F9FD32030CC1ADB70073837D /* tkUnixMenu.c in Sources */, - F9FD320B0CC1ADB70073837D /* tkUnixMenubu.c in Sources */, - F9FD32010CC1ADB70073837D /* tkUnixRFont.c in Sources */, - F9FD31DC0CC1AD070073837D /* tkUnixScale.c in Sources */, - F9FD320C0CC1ADB70073837D /* tkUnixScrlbr.c in Sources */, - F9FD32070CC1ADB70073837D /* tkUnixSelect.c in Sources */, - F9FD31FE0CC1ADB70073837D /* tkUnixSend.c in Sources */, - F9FD32000CC1ADB70073837D /* tkUnixWm.c in Sources */, - F9FD31FB0CC1ADB70073837D /* tkUnixXId.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - F90E36D50F3B5C8400810A10 /* DebugNoGC */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = unsupported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugNoGC; - }; - F90E36D60F3B5C8400810A10 /* DebugNoGC */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoGC; - }; - F90E36D70F3B5C8400810A10 /* DebugNoGC */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoGC; - }; - F90E36D80F3B5C8400810A10 /* DebugNoGC */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_INPUT_FILETYPE = sourcecode.c.c; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugNoGC; - }; - F91BCC4F093152310042A6BF /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleaseUniversal; - }; - F91BCC50093152310042A6BF /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleaseUniversal; - }; - F91BCC51093152310042A6BF /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = ReleaseUniversal; - }; - F93084370BB93D2800CD0B9E /* DebugMemCompile */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugMemCompile; - }; - F93084380BB93D2800CD0B9E /* DebugMemCompile */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugMemCompile; - }; - F93084390BB93D2800CD0B9E /* DebugMemCompile */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugMemCompile; - }; - F930843A0BB93D2800CD0B9E /* DebugMemCompile */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-symbols=all"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugMemCompile; - }; - F9359B250DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS)", - "-lgcov", - ); - PREBINDING = NO; - }; - name = DebugGCov; - }; - F9359B260DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugGCov; - }; - F9359B270DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugGCov; - }; - F9359B280DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugGCov; - }; - F95CC8AC09158F3100EA5ACE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = Debug; - }; - F95CC8AD09158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = Release; - }; - F95CC8AE09158F3100EA5ACE /* DebugNoFixAndContinue */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoFixAndContinue; - }; - F95CC8B109158F3100EA5ACE /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = Debug; - }; - F95CC8B209158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = Release; - }; - F95CC8B309158F3100EA5ACE /* DebugNoFixAndContinue */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoFixAndContinue; - }; - F95CC8B609158F3100EA5ACE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = Debug; - }; - F95CC8B709158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = Release; - }; - F95CC8B809158F3100EA5ACE /* DebugNoFixAndContinue */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugNoFixAndContinue; - }; - F97258A90A86873D00096C78 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_INPUT_FILETYPE = sourcecode.c.c; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = Debug; - }; - F97258AA0A86873D00096C78 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = Release; - }; - F97258AB0A86873D00096C78 /* DebugNoFixAndContinue */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugNoFixAndContinue; - }; - F97258AC0A86873D00096C78 /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = ReleaseUniversal; - }; - F97AED1B0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = Debug64bit; - }; - F97AED1C0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = Debug64bit; - }; - F97AED1D0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = Debug64bit; - }; - F97AED1E0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_64_BIT)"; - CONFIGURE_ARGS = "--enable-64bit $(CONFIGURE_ARGS)"; - CPPFLAGS = "-arch $(NATIVE_ARCH_64_BIT) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = Debug64bit; - }; - F987512F0DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-corefoundation"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugNoCF; - }; - F98751300DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoCF; - }; - F98751310DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoCF; - }; - F98751320DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugNoCF; - }; - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads --disable-corefoundation"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugNoCFUnthreaded; - }; - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoCFUnthreaded; - }; - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoCFUnthreaded; - }; - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugNoCFUnthreaded; - }; - F9988AB10D814C6500B6B03B /* Debug gcc40 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = "Debug gcc40"; - }; - F9988AB20D814C6500B6B03B /* Debug gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "Debug gcc40"; - }; - F9988AB30D814C6500B6B03B /* Debug gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "Debug gcc40"; - }; - F9988AB40D814C6500B6B03B /* Debug gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_INPUT_FILETYPE = sourcecode.c.c; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = "Debug gcc40"; - }; - F9988AB50D814C7500B6B03B /* Debug llvm-gcc */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC = "llvm-gcc"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_VERSION = com.apple.compilers.llvmgcc42; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = "Debug llvm-gcc"; - }; - F9988AB60D814C7500B6B03B /* Debug llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "Debug llvm-gcc"; - }; - F9988AB70D814C7500B6B03B /* Debug llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "Debug llvm-gcc"; - }; - F9988AB80D814C7500B6B03B /* Debug llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "tcl_cv_cc_visibility_hidden=no $(CONFIGURE_ARGS)"; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_INPUT_FILETYPE = sourcecode.c.c; - GCC_PREPROCESSOR_DEFINITIONS = ( - "__private_extern__=extern", - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = "Debug llvm-gcc"; - }; - F9988BB10D81586D00B6B03B /* ReleaseUniversal gcc40 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_VERSION = 4.0; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = "ReleaseUniversal gcc40"; - }; - F9988BB20D81586D00B6B03B /* ReleaseUniversal gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "ReleaseUniversal gcc40"; - }; - F9988BB30D81586D00B6B03B /* ReleaseUniversal gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "ReleaseUniversal gcc40"; - }; - F9988BB40D81586D00B6B03B /* ReleaseUniversal gcc40 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = "ReleaseUniversal gcc40"; - }; - F9988BB50D81587400B6B03B /* ReleaseUniversal llvm-gcc */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC = "llvm-gcc"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_OPTIMIZATION_LEVEL = 4; - GCC_VERSION = com.apple.compilers.llvmgcc42; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = "ReleaseUniversal llvm-gcc"; - }; - F9988BB60D81587400B6B03B /* ReleaseUniversal llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "ReleaseUniversal llvm-gcc"; - }; - F9988BB70D81587400B6B03B /* ReleaseUniversal llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "ReleaseUniversal llvm-gcc"; - }; - F9988BB80D81587400B6B03B /* ReleaseUniversal llvm-gcc */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = "ReleaseUniversal llvm-gcc"; - }; - F99EE73B0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugUnthreaded; - }; - F99EE73C0BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugLeaks; - }; - F99EE73D0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugUnthreaded; - }; - F99EE73E0BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugLeaks; - }; - F99EE73F0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugUnthreaded; - }; - F99EE7400BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugLeaks; - }; - F99EE7410BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugUnthreaded; - }; - F99EE7420BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = unsupported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - GCC_PREPROCESSOR_DEFINITIONS = ( - PURIFY, - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugLeaks; - }; - F9EEED960C2FEFD300396116 /* ReleaseUniversal10.5SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleaseUniversal10.5SDK; - }; - F9EEED970C2FEFD300396116 /* ReleaseUniversal10.5SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleaseUniversal10.5SDK; - }; - F9EEED980C2FEFD300396116 /* ReleaseUniversal10.5SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = ReleaseUniversal10.5SDK; - }; - F9EEED990C2FEFD300396116 /* ReleaseUniversal10.5SDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; - CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - SDKROOT = macosx10.5; - }; - name = ReleaseUniversal10.5SDK; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F95CC8AB09158F3100EA5ACE /* Build configuration list for PBXNativeTarget "Tk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8AC09158F3100EA5ACE /* Debug */, - F9988AB60D814C7500B6B03B /* Debug llvm-gcc */, - F9988AB20D814C6500B6B03B /* Debug gcc40 */, - F90E36D60F3B5C8400810A10 /* DebugNoGC */, - F95CC8AE09158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE73B0BE835310060D4AF /* DebugUnthreaded */, - F98751300DE7B57E00B1C9EC /* DebugNoCF */, - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084370BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73C0BE835310060D4AF /* DebugLeaks */, - F9359B260DF212DA00E04F67 /* DebugGCov */, - F97AED1B0B660B2100310EA2 /* Debug64bit */, - F95CC8AD09158F3100EA5ACE /* Release */, - F91BCC4F093152310042A6BF /* ReleaseUniversal */, - F9988BB60D81587400B6B03B /* ReleaseUniversal llvm-gcc */, - F9988BB20D81586D00B6B03B /* ReleaseUniversal gcc40 */, - F9EEED960C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B009158F3100EA5ACE /* Build configuration list for PBXNativeTarget "tktest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B109158F3100EA5ACE /* Debug */, - F9988AB70D814C7500B6B03B /* Debug llvm-gcc */, - F9988AB30D814C6500B6B03B /* Debug gcc40 */, - F90E36D70F3B5C8400810A10 /* DebugNoGC */, - F95CC8B309158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE73D0BE835310060D4AF /* DebugUnthreaded */, - F98751310DE7B57E00B1C9EC /* DebugNoCF */, - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084380BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73E0BE835310060D4AF /* DebugLeaks */, - F9359B270DF212DA00E04F67 /* DebugGCov */, - F97AED1C0B660B2100310EA2 /* Debug64bit */, - F95CC8B209158F3100EA5ACE /* Release */, - F91BCC50093152310042A6BF /* ReleaseUniversal */, - F9988BB70D81587400B6B03B /* ReleaseUniversal llvm-gcc */, - F9988BB30D81586D00B6B03B /* ReleaseUniversal gcc40 */, - F9EEED970C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B509158F3100EA5ACE /* Build configuration list for PBXProject "Tk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B609158F3100EA5ACE /* Debug */, - F9988AB50D814C7500B6B03B /* Debug llvm-gcc */, - F9988AB10D814C6500B6B03B /* Debug gcc40 */, - F90E36D50F3B5C8400810A10 /* DebugNoGC */, - F95CC8B809158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE7410BE835310060D4AF /* DebugUnthreaded */, - F987512F0DE7B57E00B1C9EC /* DebugNoCF */, - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F930843A0BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7420BE835310060D4AF /* DebugLeaks */, - F9359B250DF212DA00E04F67 /* DebugGCov */, - F97AED1E0B660B2100310EA2 /* Debug64bit */, - F95CC8B709158F3100EA5ACE /* Release */, - F91BCC51093152310042A6BF /* ReleaseUniversal */, - F9988BB50D81587400B6B03B /* ReleaseUniversal llvm-gcc */, - F9988BB10D81586D00B6B03B /* ReleaseUniversal gcc40 */, - F9EEED990C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F97258A80A86873D00096C78 /* Build configuration list for PBXNativeTarget "tktest-X11" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F97258A90A86873D00096C78 /* Debug */, - F9988AB80D814C7500B6B03B /* Debug llvm-gcc */, - F9988AB40D814C6500B6B03B /* Debug gcc40 */, - F90E36D80F3B5C8400810A10 /* DebugNoGC */, - F97258AB0A86873D00096C78 /* DebugNoFixAndContinue */, - F99EE73F0BE835310060D4AF /* DebugUnthreaded */, - F98751320DE7B57E00B1C9EC /* DebugNoCF */, - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084390BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7400BE835310060D4AF /* DebugLeaks */, - F9359B280DF212DA00E04F67 /* DebugGCov */, - F97AED1D0B660B2100310EA2 /* Debug64bit */, - F97258AA0A86873D00096C78 /* Release */, - F97258AC0A86873D00096C78 /* ReleaseUniversal */, - F9988BB80D81587400B6B03B /* ReleaseUniversal llvm-gcc */, - F9988BB40D81586D00B6B03B /* ReleaseUniversal gcc40 */, - F9EEED980C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/macosx/Tk.xcodeproj/project.pbxproj b/macosx/Tk.xcodeproj/project.pbxproj index 31678d8..6aa8d2d 100644 --- a/macosx/Tk.xcodeproj/project.pbxproj +++ b/macosx/Tk.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - F9067BCD0BFBA2900074F726 /* tkOldTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFE08F27A39005CB29B /* tkOldTest.c */; }; F9152B090EAF8A5000CD5C7B /* tkBusy.c in Sources */ = {isa = PBXBuildFile; fileRef = F9152B080EAF8A5000CD5C7B /* tkBusy.c */; }; F9152B0A0EAF8A5700CD5C7B /* tkBusy.c in Sources */ = {isa = PBXBuildFile; fileRef = F9152B080EAF8A5000CD5C7B /* tkBusy.c */; }; F92EE8BF0E62F846001A6E80 /* tkImgPhInstance.c in Sources */ = {isa = PBXBuildFile; fileRef = F92EE8BE0E62F846001A6E80 /* tkImgPhInstance.c */; }; @@ -520,7 +519,6 @@ F9FD317C0CC1AD070073837D /* tkMessage.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEC08F27A39005CB29B /* tkMessage.c */; }; F9FD317D0CC1AD070073837D /* tkObj.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAED08F27A39005CB29B /* tkObj.c */; }; F9FD317E0CC1AD070073837D /* tkOldConfig.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEE08F27A39005CB29B /* tkOldConfig.c */; }; - F9FD317F0CC1AD070073837D /* tkOldTest.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAFE08F27A39005CB29B /* tkOldTest.c */; }; F9FD31800CC1AD070073837D /* tkOption.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAEF08F27A39005CB29B /* tkOption.c */; }; F9FD31810CC1AD070073837D /* tkPack.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF008F27A39005CB29B /* tkPack.c */; }; F9FD31820CC1AD070073837D /* tkPanedWindow.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BAF108F27A39005CB29B /* tkPanedWindow.c */; }; @@ -684,8 +682,7 @@ F966BA0B08F27A37005CB29B /* questhead.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = questhead.xbm; sourceTree = "<group>"; }; F966BA0C08F27A37005CB29B /* question.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = question.xbm; sourceTree = "<group>"; }; F966BA0D08F27A37005CB29B /* warning.xbm */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 4; path = warning.xbm; sourceTree = "<group>"; }; - F966BA0E08F27A37005CB29B /* ChangeLog */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = ChangeLog; sourceTree = "<group>"; }; - F966BA0F08F27A37005CB29B /* changes */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes; sourceTree = "<group>"; }; + F966BA0F08F27A37005CB29B /* changes.md */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes.md; sourceTree = "<group>"; }; F966BA1108F27A37005CB29B /* 3DBorder.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = 3DBorder.3; sourceTree = "<group>"; }; F966BA1208F27A37005CB29B /* AddOption.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AddOption.3; sourceTree = "<group>"; }; F966BA1308F27A37005CB29B /* bell.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = bell.n; sourceTree = "<group>"; }; @@ -781,7 +778,6 @@ F966BA6E08F27A38005CB29B /* MapWindow.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MapWindow.3; sourceTree = "<group>"; }; F966BA6F08F27A38005CB29B /* MeasureChar.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = MeasureChar.3; sourceTree = "<group>"; }; F966BA7008F27A38005CB29B /* menu.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menu.n; sourceTree = "<group>"; }; - F966BA7108F27A38005CB29B /* menubar.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menubar.n; sourceTree = "<group>"; }; F966BA7208F27A38005CB29B /* menubutton.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = menubutton.n; sourceTree = "<group>"; }; F966BA7308F27A38005CB29B /* message.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = message.n; sourceTree = "<group>"; }; F966BA7408F27A38005CB29B /* messageBox.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = messageBox.n; sourceTree = "<group>"; }; @@ -792,7 +788,6 @@ F966BA7908F27A38005CB29B /* optionMenu.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = optionMenu.n; sourceTree = "<group>"; }; F966BA7A08F27A38005CB29B /* options.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = options.n; sourceTree = "<group>"; }; F966BA7B08F27A38005CB29B /* OwnSelect.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = OwnSelect.3; sourceTree = "<group>"; }; - F966BA7C08F27A38005CB29B /* pack-old.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = "pack-old.n"; sourceTree = "<group>"; }; F966BA7D08F27A38005CB29B /* pack.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = pack.n; sourceTree = "<group>"; }; F966BA7E08F27A38005CB29B /* palette.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = palette.n; sourceTree = "<group>"; }; F966BA7F08F27A38005CB29B /* panedwindow.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = panedwindow.n; sourceTree = "<group>"; }; @@ -916,7 +911,6 @@ F966BAFB08F27A39005CB29B /* tkSelect.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkSelect.c; sourceTree = "<group>"; }; F966BAFC08F27A39005CB29B /* tkSelect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkSelect.h; sourceTree = "<group>"; }; F966BAFD08F27A39005CB29B /* tkSquare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkSquare.c; sourceTree = "<group>"; }; - F966BAFE08F27A39005CB29B /* tkOldTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkOldTest.c; sourceTree = "<group>"; }; F966BAFF08F27A39005CB29B /* tkStubInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStubInit.c; sourceTree = "<group>"; }; F966BB0008F27A39005CB29B /* tkStubLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStubLib.c; sourceTree = "<group>"; }; F966BB0108F27A39005CB29B /* tkStyle.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkStyle.c; sourceTree = "<group>"; }; @@ -1042,7 +1036,6 @@ F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEmbed.c; sourceTree = "<group>"; }; F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEntry.c; sourceTree = "<group>"; }; F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXEvent.c; sourceTree = "<group>"; }; - F966BBD508F27A3B005CB29B /* tkMacOSXEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXEvent.h; sourceTree = "<group>"; }; F966BBD608F27A3B005CB29B /* tkMacOSXFont.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXFont.c; sourceTree = "<group>"; }; F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXHLEvents.c; sourceTree = "<group>"; }; F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.objc; fileEncoding = 4; path = tkMacOSXInit.c; sourceTree = "<group>"; }; @@ -1125,7 +1118,6 @@ F966BC3C08F27A3C005CB29B /* message.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = message.test; sourceTree = "<group>"; }; F966BC3D08F27A3C005CB29B /* msgbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = msgbox.test; sourceTree = "<group>"; }; F966BC3E08F27A3C005CB29B /* obj.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = obj.test; sourceTree = "<group>"; }; - F966BC3F08F27A3C005CB29B /* oldpack.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = oldpack.test; sourceTree = "<group>"; }; F966BC4008F27A3C005CB29B /* option.file1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = option.file1; sourceTree = "<group>"; }; F966BC4108F27A3C005CB29B /* option.file2 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = option.file2; sourceTree = "<group>"; }; F966BC4208F27A3C005CB29B /* option.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = option.test; sourceTree = "<group>"; }; @@ -1171,7 +1163,7 @@ F966BC6A08F27A3D005CB29B /* xmfbox.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = xmfbox.test; sourceTree = "<group>"; }; F966BC6C08F27A3D005CB29B /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F966BC6D08F27A3D005CB29B /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F966BC6E08F27A3D005CB29B /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; + F966BC6E08F27A3D005CB29B /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F966BC6F08F27A3D005CB29B /* install-sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "install-sh"; sourceTree = "<group>"; }; F966BC7008F27A3D005CB29B /* installManPage */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = installManPage; sourceTree = "<group>"; }; F966BC7108F27A3D005CB29B /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; @@ -1209,16 +1201,14 @@ F966BC9408F27A3D005CB29B /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F966BC9508F27A3D005CB29B /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F966BC9608F27A3E005CB29B /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F966BC9708F27A3E005CB29B /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; + F966BC9708F27A3E005CB29B /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F966BC9908F27A3E005CB29B /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; F966BC9A08F27A3E005CB29B /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; - F966BC9B08F27A3E005CB29B /* mkd.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mkd.bat; sourceTree = "<group>"; }; F966BC9C08F27A3E005CB29B /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; F966BCEE08F27A3E005CB29B /* tk.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk.rc; sourceTree = "<group>"; }; F966BCEF08F27A3E005CB29B /* tk_base.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tk_base.rc; sourceTree = "<group>"; }; F966BCF208F27A3E005CB29B /* wish.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = wish.rc; sourceTree = "<group>"; }; F966BCF308F27A3E005CB29B /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; }; - F966BCF408F27A3E005CB29B /* rmd.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rmd.bat; sourceTree = "<group>"; }; F966BCF508F27A3F005CB29B /* rules.vc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = rules.vc; sourceTree = "<group>"; }; F966BCF608F27A3F005CB29B /* stubs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stubs.c; sourceTree = "<group>"; }; F966BCF708F27A3F005CB29B /* tcl.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = tcl.m4; sourceTree = "<group>"; }; @@ -1370,8 +1360,7 @@ F96888860AF78953000797B5 /* ttkWinMonitor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinMonitor.c; sourceTree = "<group>"; }; F96888870AF78953000797B5 /* ttkWinTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinTheme.c; sourceTree = "<group>"; }; F96888880AF78953000797B5 /* ttkWinXPTheme.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ttkWinXPTheme.c; sourceTree = "<group>"; }; - F96D3DFA08F272A4004A47F5 /* ChangeLog */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = ChangeLog; sourceTree = "<group>"; }; - F96D3DFB08F272A4004A47F5 /* changes */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes; sourceTree = "<group>"; }; + F96D3DFB08F272A4004A47F5 /* changes.md */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = changes.md; sourceTree = "<group>"; }; F96D3DFD08F272A4004A47F5 /* Access.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = Access.3; sourceTree = "<group>"; }; F96D3DFE08F272A4004A47F5 /* AddErrInfo.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = AddErrInfo.3; sourceTree = "<group>"; }; F96D3DFF08F272A4004A47F5 /* after.n */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = after.n; sourceTree = "<group>"; }; @@ -1913,7 +1902,7 @@ F96D43CF08F272B7004A47F5 /* winTime.test */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = winTime.test; sourceTree = "<group>"; }; F96D43D108F272B8004A47F5 /* checkLibraryDoc.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = checkLibraryDoc.tcl; sourceTree = "<group>"; }; F96D43D208F272B8004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D43D308F272B8004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; + F96D43D308F272B8004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F96D442208F272B8004A47F5 /* eolFix.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = eolFix.tcl; sourceTree = "<group>"; }; F96D442408F272B8004A47F5 /* fix_tommath_h.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = fix_tommath_h.tcl; sourceTree = "<group>"; }; F96D442508F272B8004A47F5 /* genStubs.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = genStubs.tcl; sourceTree = "<group>"; }; @@ -1938,7 +1927,7 @@ F96D443C08F272B9004A47F5 /* uniParse.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = uniParse.tcl; sourceTree = "<group>"; }; F96D444008F272B9004A47F5 /* aclocal.m4 */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = aclocal.m4; sourceTree = "<group>"; }; F96D444108F272B9004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D444208F272B9004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; + F96D444208F272B9004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F96D444408F272B9004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; F96D444508F272B9004A47F5 /* pkga.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkga.c; sourceTree = "<group>"; }; F96D444608F272B9004A47F5 /* pkgb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pkgb.c; sourceTree = "<group>"; }; @@ -1982,7 +1971,7 @@ F96D447108F272BA004A47F5 /* buildall.vc.bat */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = buildall.vc.bat; sourceTree = "<group>"; }; F96D447208F272BA004A47F5 /* cat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cat.c; sourceTree = "<group>"; }; F96D447408F272BA004A47F5 /* configure */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = configure; sourceTree = "<group>"; }; - F96D447508F272BA004A47F5 /* configure.in */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.in; sourceTree = "<group>"; }; + F96D447508F272BA004A47F5 /* configure.ac */ = {isa = PBXFileReference; explicitFileType = text.script.sh; fileEncoding = 4; path = configure.ac; sourceTree = "<group>"; }; F96D447708F272BA004A47F5 /* Makefile.in */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = Makefile.in; sourceTree = "<group>"; }; F96D447808F272BA004A47F5 /* makefile.vc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.vc; sourceTree = "<group>"; }; F96D447908F272BA004A47F5 /* nmakehlp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nmakehlp.c; sourceTree = "<group>"; }; @@ -2253,7 +2242,6 @@ F966BA6E08F27A38005CB29B /* MapWindow.3 */, F966BA6F08F27A38005CB29B /* MeasureChar.3 */, F966BA7008F27A38005CB29B /* menu.n */, - F966BA7108F27A38005CB29B /* menubar.n */, F966BA7208F27A38005CB29B /* menubutton.n */, F966BA7308F27A38005CB29B /* message.n */, F966BA7408F27A38005CB29B /* messageBox.n */, @@ -2264,7 +2252,6 @@ F966BA7908F27A38005CB29B /* optionMenu.n */, F966BA7A08F27A38005CB29B /* options.n */, F966BA7B08F27A38005CB29B /* OwnSelect.3 */, - F966BA7C08F27A38005CB29B /* pack-old.n */, F966BA7D08F27A38005CB29B /* pack.n */, F966BA7E08F27A38005CB29B /* palette.n */, F966BA7F08F27A38005CB29B /* panedwindow.n */, @@ -2420,7 +2407,6 @@ F966BAFB08F27A39005CB29B /* tkSelect.c */, F966BAFC08F27A39005CB29B /* tkSelect.h */, F966BAFD08F27A39005CB29B /* tkSquare.c */, - F966BAFE08F27A39005CB29B /* tkOldTest.c */, F966BAFF08F27A39005CB29B /* tkStubInit.c */, F966BB0008F27A39005CB29B /* tkStubLib.c */, F966BB0108F27A39005CB29B /* tkStyle.c */, @@ -2584,7 +2570,6 @@ F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */, F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */, F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */, - F966BBD508F27A3B005CB29B /* tkMacOSXEvent.h */, F966BBD608F27A3B005CB29B /* tkMacOSXFont.c */, F93E5EFD09CF8711008FA367 /* tkMacOSXFont.h */, F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */, @@ -2684,7 +2669,6 @@ F966BC3C08F27A3C005CB29B /* message.test */, F966BC3D08F27A3C005CB29B /* msgbox.test */, F966BC3E08F27A3C005CB29B /* obj.test */, - F966BC3F08F27A3C005CB29B /* oldpack.test */, F966BC4008F27A3C005CB29B /* option.file1 */, F966BC4108F27A3C005CB29B /* option.file2 */, F966BC4208F27A3C005CB29B /* option.test */, @@ -2738,7 +2722,7 @@ children = ( F966BC6C08F27A3D005CB29B /* aclocal.m4 */, F966BC6D08F27A3D005CB29B /* configure */, - F966BC6E08F27A3D005CB29B /* configure.in */, + F966BC6E08F27A3D005CB29B /* configure.ac */, F966BC6F08F27A3D005CB29B /* install-sh */, F966BC7008F27A3D005CB29B /* installManPage */, F966BC7108F27A3D005CB29B /* Makefile.in */, @@ -2784,14 +2768,12 @@ F966BC9408F27A3D005CB29B /* aclocal.m4 */, F966BC9508F27A3D005CB29B /* buildall.vc.bat */, F966BC9608F27A3E005CB29B /* configure */, - F966BC9708F27A3E005CB29B /* configure.in */, + F966BC9708F27A3E005CB29B /* configure.ac */, F966BC9908F27A3E005CB29B /* Makefile.in */, F966BC9A08F27A3E005CB29B /* makefile.vc */, - F966BC9B08F27A3E005CB29B /* mkd.bat */, F966BC9C08F27A3E005CB29B /* nmakehlp.c */, F966BC9D08F27A3E005CB29B /* rc */, F966BCF308F27A3E005CB29B /* README */, - F966BCF408F27A3E005CB29B /* rmd.bat */, F966BCF508F27A3F005CB29B /* rules.vc */, F966BCF608F27A3F005CB29B /* stubs.c */, F966BCF708F27A3F005CB29B /* tcl.m4 */, @@ -3003,8 +2985,7 @@ F96D3DFC08F272A4004A47F5 /* doc */, F96D43D008F272B8004A47F5 /* tools */, F9183E690EFC81560030B814 /* pkgs */, - F96D3DFA08F272A4004A47F5 /* ChangeLog */, - F96D3DFB08F272A4004A47F5 /* changes */, + F96D3DFB08F272A4004A47F5 /* changes.md */, F96D434308F272B5004A47F5 /* README */, F96D432B08F272B4004A47F5 /* license.terms */, ); @@ -3023,8 +3004,7 @@ F966BB1308F27A39005CB29B /* library */, F966BC0408F27A3C005CB29B /* tests */, F966BA1008F27A37005CB29B /* doc */, - F966BA0E08F27A37005CB29B /* ChangeLog */, - F966BA0F08F27A37005CB29B /* changes */, + F966BA0F08F27A37005CB29B /* changes.md */, F966BC0308F27A3C005CB29B /* README */, F966BB9608F27A3B005CB29B /* license.terms */, ); @@ -3719,7 +3699,7 @@ children = ( F96D43D108F272B8004A47F5 /* checkLibraryDoc.tcl */, F96D43D208F272B8004A47F5 /* configure */, - F96D43D308F272B8004A47F5 /* configure.in */, + F96D43D308F272B8004A47F5 /* configure.ac */, F96D442208F272B8004A47F5 /* eolFix.tcl */, F96D442408F272B8004A47F5 /* fix_tommath_h.tcl */, F96D442508F272B8004A47F5 /* genStubs.tcl */, @@ -3752,7 +3732,7 @@ children = ( F96D444008F272B9004A47F5 /* aclocal.m4 */, F96D444108F272B9004A47F5 /* configure */, - F96D444208F272B9004A47F5 /* configure.in */, + F96D444208F272B9004A47F5 /* configure.ac */, F96D444308F272B9004A47F5 /* dltest */, F96D444D08F272B9004A47F5 /* install-sh */, F96D444E08F272B9004A47F5 /* installManPage */, @@ -3813,7 +3793,7 @@ F96D447108F272BA004A47F5 /* buildall.vc.bat */, F96D447208F272BA004A47F5 /* cat.c */, F96D447408F272BA004A47F5 /* configure */, - F96D447508F272BA004A47F5 /* configure.in */, + F96D447508F272BA004A47F5 /* configure.ac */, F96D447708F272BA004A47F5 /* Makefile.in */, F96D447808F272BA004A47F5 /* makefile.vc */, F96D447908F272BA004A47F5 /* nmakehlp.c */, @@ -3968,7 +3948,7 @@ ); inputPaths = ( "$(TCL_SRCROOT)/macosx/configure.ac", - "$(TCL_SRCROOT)/unix/configure.in", + "$(TCL_SRCROOT)/unix/configure.ac", "$(TCL_SRCROOT)/unix/tcl.m4", "$(TCL_SRCROOT)/unix/aclocal.m4", "$(TCL_SRCROOT)/unix/tclConfig.sh.in", @@ -3981,7 +3961,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/bash; - shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; + shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.ac -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; showEnvVarsInLog = 0; }; F9A5C5F608F651AB008AE941 /* Configure Tk */ = { @@ -3991,7 +3971,7 @@ ); inputPaths = ( "$(TK_SRCROOT)/macosx/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", + "$(TK_SRCROOT)/unix/configure.ac", "$(TK_SRCROOT)/unix/tcl.m4", "$(TK_SRCROOT)/unix/aclocal.m4", "$(TK_SRCROOT)/unix/tkConfig.sh.in", @@ -4002,7 +3982,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-aqua --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; + shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.ac -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-aqua --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; showEnvVarsInLog = 0; }; F9FD30B40CC1AD070073837D /* Configure Tcl */ = { @@ -4012,7 +3992,7 @@ ); inputPaths = ( "$(TCL_SRCROOT)/macosx/configure.ac", - "$(TCL_SRCROOT)/unix/configure.in", + "$(TCL_SRCROOT)/unix/configure.ac", "$(TCL_SRCROOT)/unix/tcl.m4", "$(TCL_SRCROOT)/unix/aclocal.m4", "$(TCL_SRCROOT)/unix/tclConfig.sh.in", @@ -4025,7 +4005,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/bash; - shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; + shellScript = "## tcl configure shell script phase\n\ncd \"${TCL_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.ac -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tcl/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tcl && cd tcl &&\nif [ \"${TCL_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tcl\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; showEnvVarsInLog = 0; }; F9FD30B50CC1AD070073837D /* Configure Tk */ = { @@ -4035,7 +4015,7 @@ ); inputPaths = ( "$(TK_SRCROOT)/macosx/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", + "$(TK_SRCROOT)/unix/configure.ac", "$(TK_SRCROOT)/unix/tcl.m4", "$(TK_SRCROOT)/unix/aclocal.m4", "$(TK_SRCROOT)/unix/tkConfig.sh.in", @@ -4046,7 +4026,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.in -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n PATH=\"${PATH}:/usr/X11R6/bin\" \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-xft --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; + shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/macosx &&\nif [ configure.ac -nt configure -o ../unix/configure.ac -nt configure -o ../unix/tcl.m4 -nt configure -o ../unix/aclocal.m4 -nt configure ]; then\n echo \"Running autoconf & autoheader in tk/macosx\"\n rm -rf autom4te.cache\n ${AUTOCONF:-${DEVELOPER_DIR}/usr/bin/autoconf} && ${AUTOHEADER:-${DEVELOPER_DIR}/usr/bin/autoheader} || exit $?\n rm -rf autom4te.cache\nfi\n\ncd \"${DERIVED_FILE_DIR}\" && mkdir -p tk && cd tk &&\nif [ \"${TK_SRCROOT}\"/macosx/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n CC=$(xcrun -find ${GCC} || echo ${GCC})\n PATH=\"${PATH}:/usr/X11R6/bin\" \"${TK_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-xft --with-tcl=../tcl CC=${CC} LD=${CC} ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -4265,7 +4245,6 @@ F966BE0F08F27A3F005CB29B /* tkMessage.c in Sources */, F966BE1008F27A3F005CB29B /* tkObj.c in Sources */, F966BE1108F27A3F005CB29B /* tkOldConfig.c in Sources */, - F9067BCD0BFBA2900074F726 /* tkOldTest.c in Sources */, F966BE1208F27A3F005CB29B /* tkOption.c in Sources */, F966BE1308F27A3F005CB29B /* tkPack.c in Sources */, F966BE1408F27A3F005CB29B /* tkPanedWindow.c in Sources */, @@ -4579,7 +4558,6 @@ F9FD317C0CC1AD070073837D /* tkMessage.c in Sources */, F9FD317D0CC1AD070073837D /* tkObj.c in Sources */, F9FD317E0CC1AD070073837D /* tkOldConfig.c in Sources */, - F9FD317F0CC1AD070073837D /* tkOldTest.c in Sources */, F9FD31800CC1AD070073837D /* tkOption.c in Sources */, F9FD31810CC1AD070073837D /* tkPack.c in Sources */, F9FD31820CC1AD070073837D /* tkPanedWindow.c in Sources */, @@ -4751,8 +4729,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_GC = supported; GCC_ENABLE_PASCAL_STRINGS = NO; @@ -5063,8 +5041,8 @@ F97258AC0A86873D00096C78 /* ReleaseUniversal */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_INPUT_FILETYPE = sourcecode.c.c; HEADER_SEARCH_PATHS = ( /usr/X11R6/include, @@ -5079,58 +5057,6 @@ }; name = ReleaseUniversal; }; - F97AED1B0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = Debug64bit; - }; - F97AED1C0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = Debug64bit; - }; - F97AED1D0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = Debug64bit; - }; - F97AED1E0B660B2100310EA2 /* Debug64bit */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_64_BIT)"; - CONFIGURE_ARGS = "--enable-64bit $(CONFIGURE_ARGS)"; - CPPFLAGS = "-arch $(NATIVE_ARCH_64_BIT) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.6; - PREBINDING = NO; - }; - name = Debug64bit; - }; F987512F0DE7B57E00B1C9EC /* DebugNoCF */ = { isa = XCBuildConfiguration; baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; @@ -5189,64 +5115,6 @@ }; name = DebugNoCF; }; - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads --disable-corefoundation"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.6; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugNoCFUnthreaded; - }; - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoCFUnthreaded; - }; - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-corefoundation"; - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoCFUnthreaded; - }; - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugNoCFUnthreaded; - }; F9988AB10D814C6500B6B03B /* Debug gcc40 */ = { isa = XCBuildConfiguration; baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; @@ -5396,8 +5264,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_GC = supported; GCC_ENABLE_PASCAL_STRINGS = NO; @@ -5430,8 +5298,8 @@ F9988BB40D81586D00B6B03B /* ReleaseUniversal gcc40 */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_INPUT_FILETYPE = sourcecode.c.c; HEADER_SEARCH_PATHS = ( /usr/X11R6/include, @@ -5450,8 +5318,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC = "llvm-gcc"; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -5488,8 +5356,8 @@ F9988BB80D81587400B6B03B /* ReleaseUniversal llvm-gcc */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_INPUT_FILETYPE = sourcecode.c.c; HEADER_SEARCH_PATHS = ( /usr/X11R6/include, @@ -5504,14 +5372,6 @@ }; name = "ReleaseUniversal llvm-gcc"; }; - F99EE73B0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugUnthreaded; - }; F99EE73C0BE835310060D4AF /* DebugLeaks */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5520,17 +5380,6 @@ }; name = DebugLeaks; }; - F99EE73D0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugUnthreaded; - }; F99EE73E0BE835310060D4AF /* DebugLeaks */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5542,23 +5391,6 @@ }; name = DebugLeaks; }; - F99EE73F0BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_INPUT_FILETYPE = sourcecode.c.c; - HEADER_SEARCH_PATHS = ( - /usr/X11R6/include, - /usr/X11R6/include/freetype2, - "$(HEADER_SEARCH_PATHS)", - ); - LIBRARY_SEARCH_PATHS = ( - /usr/X11R6/lib, - "$(LIBRARY_SEARCH_PATHS)", - ); - PRODUCT_NAME = "tktest-X11"; - }; - name = DebugUnthreaded; - }; F99EE7400BE835310060D4AF /* DebugLeaks */ = { isa = XCBuildConfiguration; buildSettings = { @@ -5576,33 +5408,12 @@ }; name = DebugLeaks; }; - F99EE7410BE835310060D4AF /* DebugUnthreaded */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; - buildSettings = { - ARCHS = ( - "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", - ); - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads"; - CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_ENABLE_OBJC_GC = supported; - GCC_ENABLE_PASCAL_STRINGS = NO; - GCC_INPUT_FILETYPE = sourcecode.c.objc; - MACOSX_DEPLOYMENT_TARGET = 10.6; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - }; - name = DebugUnthreaded; - }; F99EE7420BE835310060D4AF /* DebugLeaks */ = { isa = XCBuildConfiguration; baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Tk-Debug.xcconfig */; buildSettings = { ARCHS = ( "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", ); CPPFLAGS = "-arch $(CURRENT_ARCH) $(CPPFLAGS)"; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -5698,9 +5509,8 @@ buildSettings = { ARCHS = ( "$(NATIVE_ARCH_64_BIT)", - "$(NATIVE_ARCH_32_BIT)", ); - CFLAGS = "-arch i386 -arch x86_64 $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC = clang; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -5736,8 +5546,8 @@ F9A9D1F60FC77799002A2BE3 /* ReleaseUniversal clang */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; HEADER_SEARCH_PATHS = ( /usr/X11R6/include, /usr/X11R6/include/freetype2, @@ -5773,8 +5583,8 @@ F9EEED980C2FEFD300396116 /* ReleaseUniversal10.5SDK */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_INPUT_FILETYPE = sourcecode.c.c; HEADER_SEARCH_PATHS = ( /usr/X11R6/include, @@ -5793,8 +5603,8 @@ isa = XCBuildConfiguration; baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tk-Release.xcconfig */; buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc $(CFLAGS)"; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_GC = supported; @@ -5818,13 +5628,10 @@ F9988AB20D814C6500B6B03B /* Debug gcc40 */, F90E36D60F3B5C8400810A10 /* DebugNoGC */, F95CC8AE09158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE73B0BE835310060D4AF /* DebugUnthreaded */, F98751300DE7B57E00B1C9EC /* DebugNoCF */, - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, F93084370BB93D2800CD0B9E /* DebugMemCompile */, F99EE73C0BE835310060D4AF /* DebugLeaks */, F9359B260DF212DA00E04F67 /* DebugGCov */, - F97AED1B0B660B2100310EA2 /* Debug64bit */, F95CC8AD09158F3100EA5ACE /* Release */, F91BCC4F093152310042A6BF /* ReleaseUniversal */, F9A9D1F40FC77799002A2BE3 /* ReleaseUniversal clang */, @@ -5844,13 +5651,10 @@ F9988AB30D814C6500B6B03B /* Debug gcc40 */, F90E36D70F3B5C8400810A10 /* DebugNoGC */, F95CC8B309158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE73D0BE835310060D4AF /* DebugUnthreaded */, F98751310DE7B57E00B1C9EC /* DebugNoCF */, - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, F93084380BB93D2800CD0B9E /* DebugMemCompile */, F99EE73E0BE835310060D4AF /* DebugLeaks */, F9359B270DF212DA00E04F67 /* DebugGCov */, - F97AED1C0B660B2100310EA2 /* Debug64bit */, F95CC8B209158F3100EA5ACE /* Release */, F91BCC50093152310042A6BF /* ReleaseUniversal */, F9A9D1F50FC77799002A2BE3 /* ReleaseUniversal clang */, @@ -5870,13 +5674,10 @@ F9988AB10D814C6500B6B03B /* Debug gcc40 */, F90E36D50F3B5C8400810A10 /* DebugNoGC */, F95CC8B809158F3100EA5ACE /* DebugNoFixAndContinue */, - F99EE7410BE835310060D4AF /* DebugUnthreaded */, F987512F0DE7B57E00B1C9EC /* DebugNoCF */, - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, F930843A0BB93D2800CD0B9E /* DebugMemCompile */, F99EE7420BE835310060D4AF /* DebugLeaks */, F9359B250DF212DA00E04F67 /* DebugGCov */, - F97AED1E0B660B2100310EA2 /* Debug64bit */, F95CC8B709158F3100EA5ACE /* Release */, F91BCC51093152310042A6BF /* ReleaseUniversal */, F9A9D1F30FC77799002A2BE3 /* ReleaseUniversal clang */, @@ -5896,13 +5697,10 @@ F9988AB40D814C6500B6B03B /* Debug gcc40 */, F90E36D80F3B5C8400810A10 /* DebugNoGC */, F97258AB0A86873D00096C78 /* DebugNoFixAndContinue */, - F99EE73F0BE835310060D4AF /* DebugUnthreaded */, F98751320DE7B57E00B1C9EC /* DebugNoCF */, - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, F93084390BB93D2800CD0B9E /* DebugMemCompile */, F99EE7400BE835310060D4AF /* DebugLeaks */, F9359B280DF212DA00E04F67 /* DebugGCov */, - F97AED1D0B660B2100310EA2 /* Debug64bit */, F97258AA0A86873D00096C78 /* Release */, F97258AC0A86873D00096C78 /* ReleaseUniversal */, F9A9D1F60FC77799002A2BE3 /* ReleaseUniversal clang */, diff --git a/macosx/Wish-Info.plist.in b/macosx/Wish-Info.plist.in index 59a6e1a..60e6046 100644 --- a/macosx/Wish-Info.plist.in +++ b/macosx/Wish-Info.plist.in @@ -1,8 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!-- - Copyright (c) 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> - Copyright 2008-2009, Apple Inc. + Copyright © 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> + Copyright © 2008-2009 Apple Inc. See the file "license.terms" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. diff --git a/macosx/Wish.sdef b/macosx/Wish.sdef index 6639f70..d5f1c74 100644 --- a/macosx/Wish.sdef +++ b/macosx/Wish.sdef @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd"> <!-- - Copyright (c) 1997 Sun Microsystems, Inc. - Copyright 2009 Kevin Walzer/WordTech Communications LLC. - Copyright (c) 2009 Daniel A. Steffen <das@users.sourceforge.net> + Copyright © 1997 Sun Microsystems, Inc. + Copyright © 2009 Kevin Walzer/WordTech Communications LLC. + Copyright © 2009 Daniel A. Steffen <das@users.sourceforge.net> See the file "license.terms" for information on usage and redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. diff --git a/macosx/configure.ac b/macosx/configure.ac index 69573c5..41f39d6 100644 --- a/macosx/configure.ac +++ b/macosx/configure.ac @@ -8,4 +8,4 @@ dnl include the configure sources from ../unix: m4_include(../unix/aclocal.m4) m4_define(SC_USE_CONFIG_HEADERS) -m4_include(../unix/configure.in) +m4_include(../unix/configure.ac) diff --git a/macosx/tkMacOSXBitmap.c b/macosx/tkMacOSXBitmap.c index 54b6c7e..39fd602 100644 --- a/macosx/tkMacOSXBitmap.c +++ b/macosx/tkMacOSXBitmap.c @@ -57,12 +57,12 @@ typedef struct { } IconBitmap; static const char *const iconBitmapOptionStrings[] = { - "-file", "-fileType", "-osType", "-systemType", "-namedImage", - "-imageFile", NULL + "-file", "-fileType", "-imageFile", "-namedImage", "-osType", + "-systemType", NULL }; enum iconBitmapOptions { - ICON_FILE, ICON_FILETYPE, ICON_OSTYPE, ICON_SYSTEMTYPE, ICON_NAMEDIMAGE, - ICON_IMAGEFILE, + ICON_FILE, ICON_FILETYPE, ICON_IMAGEFILE, ICON_NAMEDIMAGE, ICON_OSTYPE, + ICON_SYSTEMTYPE }; @@ -202,7 +202,7 @@ OSTypeFromString(const char *s, OSType *t) { Tcl_DString ds; Tcl_Encoding encoding = Tcl_GetEncoding(NULL, "macRoman"); - Tcl_UtfToExternalDString(encoding, s, -1, &ds); + (void)Tcl_UtfToExternalDString(encoding, s, TCL_INDEX_NONE, &ds); if (Tcl_DStringLength(&ds) <= 4) { char string[4] = {}; memcpy(string, Tcl_DStringValue(&ds), Tcl_DStringLength(&ds)); @@ -348,7 +348,7 @@ TkMacOSXIconBitmapObjCmd( { Tcl_HashEntry *hPtr; int isNew, result = TCL_ERROR; - int i = 1, len; + Tcl_Size i = 1, len; const char *name, *value; IconBitmap ib, *iconBitmap; @@ -360,7 +360,7 @@ TkMacOSXIconBitmapObjCmd( } name = Tcl_GetStringFromObj(objv[i++], &len); if (!len) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("empty bitmap name", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("empty bitmap name", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "MACBITMAP", "BAD", NULL); goto end; } @@ -376,7 +376,7 @@ TkMacOSXIconBitmapObjCmd( } value = Tcl_GetStringFromObj(objv[i++], &len); if (!len) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("empty bitmap value", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("empty bitmap value", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "MACBITMAP", "EMPTY", NULL); goto end; } @@ -385,13 +385,13 @@ TkMacOSXIconBitmapObjCmd( Tcl_DString ds; Tcl_Encoding encoding = Tcl_GetEncoding(NULL, "macRoman"); - Tcl_UtfToExternalDString(encoding, value, -1, &ds); + (void)Tcl_UtfToExternalDString(encoding, value, TCL_INDEX_NONE, &ds); len = Tcl_DStringLength(&ds); Tcl_DStringFree(&ds); Tcl_FreeEncoding(encoding); if (len > 4) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "invalid bitmap value", -1)); + "invalid bitmap value", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "MACBITMAP", "INVALID", NULL); goto end; } diff --git a/macosx/tkMacOSXButton.c b/macosx/tkMacOSXButton.c index 3c91fc8..c825920 100644 --- a/macosx/tkMacOSXButton.c +++ b/macosx/tkMacOSXButton.c @@ -76,7 +76,7 @@ static void ButtonContentDrawCB(const HIRect *bounds, ThemeButtonKind kind, const HIThemeButtonDrawInfo *info, MacButton *ptr, SInt16 depth, Boolean isColorDev); -static void ButtonEventProc(ClientData clientData, +static void ButtonEventProc(void *clientData, XEvent *eventPtr); static void TkMacOSXComputeButtonParams(TkButton *butPtr, ThemeButtonKind *btnkind, @@ -86,7 +86,7 @@ static int TkMacOSXComputeButtonDrawParams(TkButton *butPtr, static void TkMacOSXDrawButton(MacButton *butPtr, GC gc, Pixmap pixmap); static void DrawButtonImageAndText(TkButton *butPtr); -static void PulseDefaultButtonProc(ClientData clientData); +static void PulseDefaultButtonProc(void *clientData); /* * The class procedure table for the button widgets. @@ -179,7 +179,7 @@ TkpCreateButton( void TkpDisplayButton( - ClientData clientData) /* Information about widget. */ + void *clientData) /* Information about widget. */ { MacButton *macButtonPtr = (MacButton *)clientData; TkButton *butPtr = (TkButton *)clientData; @@ -194,6 +194,8 @@ TkpDisplayButton( } pixmap = (Pixmap) Tk_WindowId(tkwin); + Tk_GetPixelsFromObj(NULL, tkwin, butPtr->highlightWidthPtr, &butPtr->highlightWidth); + if (TkMacOSXComputeButtonDrawParams(butPtr, dpPtr)) { macButtonPtr->useTkText = 0; } else { @@ -208,26 +210,26 @@ TkpDisplayButton( Tk_Width(tkwin), Tk_Height(tkwin), 0, TK_RELIEF_FLAT); } - /* + /* * Display image or bitmap or text for labels or custom controls. */ DrawButtonImageAndText(butPtr); - needhighlight = 1; + needhighlight = 1; } else { - /* + /* * Draw the native portion of the buttons. */ - TkMacOSXDrawButton(macButtonPtr, dpPtr->gc, pixmap); + TkMacOSXDrawButton(macButtonPtr, dpPtr->gc, pixmap); - /* + /* * Ask for the highlight border, if needed. */ - if (butPtr->highlightWidth < 3) { - needhighlight = 1; - } + if (butPtr->highlightWidth < 3) { + needhighlight = 1; + } } /* @@ -236,7 +238,7 @@ TkpDisplayButton( if (needhighlight) { GC gc = NULL; - if ((butPtr->flags & GOT_FOCUS) && butPtr->highlightColorPtr) { + if ((butPtr->flags & GOT_FOCUS) && butPtr->highlightColorPtr) { gc = Tk_GCForColor(butPtr->highlightColorPtr, pixmap); } else if (butPtr->type == TYPE_LABEL) { gc = Tk_GCForColor(Tk_3DBorderColor(butPtr->highlightBorder), pixmap); @@ -313,14 +315,17 @@ TkpComputeButtonGeometry( haveImage = 1; } + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->padXPtr, &butPtr->padX); + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->padYPtr, &butPtr->padY); + if (haveImage == 0 || butPtr->compound != COMPOUND_NONE) { Tk_FreeTextLayout(butPtr->textLayout); butPtr->textLayout = Tk_ComputeTextLayout(butPtr->tkfont, - text, -1, butPtr->wrapLength, butPtr->justify, 0, + text, TCL_INDEX_NONE, butPtr->wrapLength, butPtr->justify, 0, &butPtr->textWidth, &butPtr->textHeight); - txtWidth = butPtr->textWidth + 2*butPtr->padX; - txtHeight = butPtr->textHeight + 2*butPtr->padY; + txtWidth = butPtr->textWidth + 2 * butPtr->padX; + txtHeight = butPtr->textHeight + 2 * butPtr->padY; haveText = 1; } @@ -342,7 +347,7 @@ TkpComputeButtonGeometry( * Image is left or right of text. */ - width += txtWidth + 2*butPtr->padX; + width += txtWidth + 2 * butPtr->padX; height = (height > txtHeight ? height : txtHeight); break; case COMPOUND_CENTER: @@ -368,15 +373,15 @@ TkpComputeButtonGeometry( height += 2; } } else { /* Text only */ - width = txtWidth + butPtr->indicatorSpace; + width = txtWidth + butPtr->indicatorSpace; height = txtHeight; if (butPtr->width > 0) { charWidth = Tk_TextWidth(butPtr->tkfont, "0", 1); - width = butPtr->width * charWidth + 2*butPtr->padX; + width = butPtr->width * charWidth + 2 * butPtr->padX; } if (butPtr->height > 0) { Tk_GetFontMetrics(butPtr->tkfont, &fm); - height = butPtr->height * fm.linespace + 2*butPtr->padY; + height = butPtr->height * fm.linespace + 2 * butPtr->padY; } } @@ -384,19 +389,18 @@ TkpComputeButtonGeometry( * Now figure out the size of the border decorations for the button. */ - if (butPtr->highlightWidth < 0) { - butPtr->highlightWidth = 0; - } + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->borderWidthPtr, &butPtr->borderWidth); + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->highlightWidthPtr, &butPtr->highlightWidth); butPtr->inset = butPtr->borderWidth + butPtr->highlightWidth; - width += butPtr->inset*2; - height += butPtr->inset*2; + width += butPtr->inset * 2; + height += butPtr->inset * 2; if ([NSApp macOSVersion] == 100600) { width += 12; } if (mbPtr->btnkind == kThemePushButton) { - HIRect tmpRect; + HIRect tmpRect; HIRect contBounds; /* @@ -406,16 +410,16 @@ TkpComputeButtonGeometry( * standard padding. */ - tmpRect = CGRectMake(0, 0, width + 2*HI_PADX, height + 2*HI_PADY); - HIThemeGetButtonContentBounds(&tmpRect, &mbPtr->drawinfo, &contBounds); - if (height < contBounds.size.height) { + tmpRect = CGRectMake(0, 0, width + 2 * HI_PADX, height + 2 * HI_PADY); + HIThemeGetButtonContentBounds(&tmpRect, &mbPtr->drawinfo, &contBounds); + if (height < contBounds.size.height) { height = (int)contBounds.size.height; - } - if (width < contBounds.size.width) { + } + if (width < contBounds.size.width) { width = (int)contBounds.size.width; - } - height += 2*HI_PADY; - width += 2*HI_PADX; + } + height += 2 * HI_PADY; + width += 2 * HI_PADX; } Tk_GeometryRequest(butPtr->tkwin, width, height); Tk_SetInternalBorder(butPtr->tkwin, butPtr->inset); @@ -453,31 +457,36 @@ DrawButtonImageAndText( DrawParams *dpPtr = &mbPtr->drawParams; if (tkwin == NULL || !Tk_IsMapped(tkwin)) { - return; + return; } pixmap = (Pixmap) Tk_WindowId(tkwin); if (butPtr->image != NULL) { - Tk_SizeOfImage(butPtr->image, &width, &height); - haveImage = 1; + Tk_SizeOfImage(butPtr->image, &width, &height); + haveImage = 1; } else if (butPtr->bitmap != None) { - Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); - haveImage = 1; + Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); + haveImage = 1; } imageWidth = width; imageHeight = height; if (mbPtr->drawinfo.state == kThemeStatePressed) { - pressed = 1; + pressed = 1; } + Tk_GetPixelsFromObj(NULL, tkwin, butPtr->padXPtr, &butPtr->padX); + Tk_GetPixelsFromObj(NULL, tkwin, butPtr->padYPtr, &butPtr->padY); + Tk_GetPixelsFromObj(NULL, tkwin, butPtr->borderWidthPtr, &butPtr->borderWidth); + Tk_GetPixelsFromObj(NULL, tkwin, butPtr->highlightWidthPtr, &butPtr->highlightWidth); + haveText = (butPtr->textWidth != 0 && butPtr->textHeight != 0); if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) { /* Image and Text */ - int x, y; + int x, y; - switch ((enum compound) butPtr->compound) { + switch ((enum compound) butPtr->compound) { case COMPOUND_TOP: case COMPOUND_BOTTOM: /* Image is above or below text */ @@ -526,27 +535,27 @@ DrawButtonImageAndText( break; } - TkComputeAnchor(butPtr->anchor, tkwin, - butPtr->padX + butPtr->borderWidth, - butPtr->padY + butPtr->borderWidth, - fullWidth + butPtr->indicatorSpace, fullHeight, &x, &y); + TkComputeAnchor(butPtr->anchor, tkwin, + butPtr->padX + butPtr->borderWidth, + butPtr->padY + butPtr->borderWidth, + fullWidth + butPtr->indicatorSpace, fullHeight, &x, &y); x += butPtr->indicatorSpace; - if (dpPtr->relief == TK_RELIEF_SUNKEN) { - x += dpPtr->offset; - y += dpPtr->offset; - } else if (dpPtr->relief == TK_RELIEF_RAISED) { - x -= dpPtr->offset; - y -= dpPtr->offset; - } - if (pressed) { - x += dpPtr->offset; - y += dpPtr->offset; - } - imageXOffset += x; - imageYOffset += y; - - if (butPtr->image != NULL) { + if (dpPtr->relief == TK_RELIEF_SUNKEN) { + x += dpPtr->offset; + y += dpPtr->offset; + } else if (dpPtr->relief == TK_RELIEF_RAISED) { + x -= dpPtr->offset; + y -= dpPtr->offset; + } + if (pressed) { + x += dpPtr->offset; + y += dpPtr->offset; + } + imageXOffset += x; + imageYOffset += y; + + if (butPtr->image != NULL) { if ((butPtr->selectImage != NULL) && (butPtr->flags & SELECTED)) { Tk_RedrawImage(butPtr->selectImage, 0, 0, @@ -559,29 +568,29 @@ DrawButtonImageAndText( Tk_RedrawImage(butPtr->image, 0, 0, width, height, pixmap, imageXOffset, imageYOffset); } - } else { + } else { XSetClipOrigin(butPtr->display, dpPtr->gc, imageXOffset, imageYOffset); XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, dpPtr->gc, 0, 0, (unsigned int) width, (unsigned int) height, imageXOffset, imageYOffset, 1); XSetClipOrigin(butPtr->display, dpPtr->gc, 0, 0); - } + } y += 1; /* Tweak to match native buttons. */ - Tk_DrawTextLayout(butPtr->display, pixmap, dpPtr->gc, butPtr->textLayout, + Tk_DrawTextLayout(butPtr->display, pixmap, dpPtr->gc, butPtr->textLayout, x + textXOffset, y + textYOffset, 0, -1); - Tk_UnderlineTextLayout(butPtr->display, pixmap, dpPtr->gc, - butPtr->textLayout, - x + textXOffset, y + textYOffset, - butPtr->underline); + Tk_UnderlineTextLayout(butPtr->display, pixmap, dpPtr->gc, + butPtr->textLayout, + x + textXOffset, y + textYOffset, + butPtr->underline); } else if (haveImage) { /* Image only */ - int x = 0, y; + int x = 0, y; TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX + butPtr->borderWidth, butPtr->padY + butPtr->borderWidth, width + butPtr->indicatorSpace, height, &x, &y); - x += butPtr->indicatorSpace; + x += butPtr->indicatorSpace; if (pressed) { x += dpPtr->offset; y += dpPtr->offset; @@ -610,7 +619,7 @@ DrawButtonImageAndText( XSetClipOrigin(butPtr->display, dpPtr->gc, 0, 0); } } else { /* Text only */ - int x, y; + int x, y; TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY, butPtr->textWidth + butPtr->indicatorSpace, @@ -629,46 +638,46 @@ DrawButtonImageAndText( */ if (mbPtr->useTkText) { - if ((butPtr->state == STATE_DISABLED) - && ((butPtr->disabledFg == NULL) || (butPtr->image != NULL))) { - if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn - && (butPtr->selectBorder != NULL)) { - XSetForeground(butPtr->display, butPtr->stippleGC, - Tk_3DBorderColor(butPtr->selectBorder)->pixel); - } - /* - * Stipple the whole button if no disabledFg was specified, - * otherwise restrict stippling only to displayed image - */ - if (butPtr->disabledFg == NULL) { - XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, - 0, 0, (unsigned) Tk_Width(tkwin), - (unsigned) Tk_Height(tkwin)); - } else { - XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, - imageXOffset, imageYOffset, - (unsigned) imageWidth, (unsigned) imageHeight); - } - if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn - && (butPtr->selectBorder != NULL) - ) { - XSetForeground(butPtr->display, butPtr->stippleGC, - Tk_3DBorderColor(butPtr->normalBorder)->pixel); - } - } - - /* - * Draw the border and traversal highlight last. This way, if the - * button's contents overflow they'll be covered up by the border. - */ - - if (dpPtr->relief != TK_RELIEF_FLAT) { + if ((butPtr->state == STATE_DISABLED) + && ((butPtr->disabledFg == NULL) || (butPtr->image != NULL))) { + if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn + && (butPtr->selectBorder != NULL)) { + XSetForeground(butPtr->display, butPtr->stippleGC, + Tk_3DBorderColor(butPtr->selectBorder)->pixel); + } + /* + * Stipple the whole button if no disabledFg was specified, + * otherwise restrict stippling only to displayed image + */ + if (butPtr->disabledFg == NULL) { + XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, + 0, 0, (unsigned) Tk_Width(tkwin), + (unsigned) Tk_Height(tkwin)); + } else { + XFillRectangle(butPtr->display, pixmap, butPtr->stippleGC, + imageXOffset, imageYOffset, + (unsigned) imageWidth, (unsigned) imageHeight); + } + if ((butPtr->flags & SELECTED) && !butPtr->indicatorOn + && (butPtr->selectBorder != NULL) + ) { + XSetForeground(butPtr->display, butPtr->stippleGC, + Tk_3DBorderColor(butPtr->normalBorder)->pixel); + } + } + + /* + * Draw the border and traversal highlight last. This way, if the + * button's contents overflow they'll be covered up by the border. + */ + + if (dpPtr->relief != TK_RELIEF_FLAT) { int inset = butPtr->highlightWidth; Tk_Draw3DRectangle(tkwin, pixmap, dpPtr->border, inset, inset, - Tk_Width(tkwin) - 2*inset, Tk_Height(tkwin) - 2*inset, + Tk_Width(tkwin) - 2 * inset, Tk_Height(tkwin) - 2 * inset, butPtr->borderWidth, dpPtr->relief); - } + } } } @@ -695,7 +704,7 @@ TkpDestroyButton( MacButton *mbPtr = (MacButton *) butPtr; /* Mac button. */ if (mbPtr->defaultPulseHandler) { - Tcl_DeleteTimerHandler(mbPtr->defaultPulseHandler); + Tcl_DeleteTimerHandler(mbPtr->defaultPulseHandler); } } @@ -704,11 +713,11 @@ TkpDestroyButton( * * TkMacOSXDrawButton -- * - * This function draws the tk button using Mac controls. In addition, - * this code may apply custom colors passed in the TkButton. + * This function draws the tk button using Mac controls. In addition, + * this code may apply custom colors passed in the TkButton. * * Results: - * None. + * None. * * Side effects: * The control is created, or reinitialised as needed @@ -720,9 +729,9 @@ static void TkMacOSXDrawButton( MacButton *mbPtr, /* Mac button. */ TCL_UNUSED(GC), /* The GC we are drawing into - needed for - * the bevel button */ + * the bevel button */ Pixmap pixmap) /* The pixmap we are drawing into - needed - * for the bevel button */ + * for the bevel button */ { TkButton *butPtr = (TkButton *) mbPtr; TkWindow *winPtr = (TkWindow *) butPtr->tkwin; @@ -739,24 +748,24 @@ TkMacOSXDrawButton( cntrRect = CGRectInset(cntrRect, butPtr->inset, butPtr->inset); if (useNewerHITools == 1) { - HIRect contHIRec; - static HIThemeButtonDrawInfo hiinfo; + HIRect contHIRec; + static HIThemeButtonDrawInfo hiinfo; - ButtonBackgroundDrawCB(&cntrRect, mbPtr, 32, true); + ButtonBackgroundDrawCB(&cntrRect, mbPtr, 32, true); if (!TkMacOSXSetupDrawingContext(pixmap, dpPtr->gc, &dc)) { return; } - hiinfo.version = 0; - hiinfo.state = mbPtr->drawinfo.state; - hiinfo.kind = mbPtr->btnkind; - hiinfo.value = mbPtr->drawinfo.value; - hiinfo.adornment = mbPtr->drawinfo.adornment; - hiinfo.animation.time.current = CFAbsoluteTimeGetCurrent(); - if (hiinfo.animation.time.start == 0) { - hiinfo.animation.time.start = hiinfo.animation.time.current; - } + hiinfo.version = 0; + hiinfo.state = mbPtr->drawinfo.state; + hiinfo.kind = mbPtr->btnkind; + hiinfo.value = mbPtr->drawinfo.value; + hiinfo.adornment = mbPtr->drawinfo.adornment; + hiinfo.animation.time.current = CFAbsoluteTimeGetCurrent(); + if (hiinfo.animation.time.start == 0) { + hiinfo.animation.time.start = hiinfo.animation.time.current; + } /* * To avoid buttons with white text on a white background, we set the @@ -776,7 +785,7 @@ TkMacOSXDrawButton( kHIThemeOrientationNormal, &contHIRec); TkMacOSXRestoreDrawingContext(&dc); - ButtonContentDrawCB(&contHIRec, mbPtr->btnkind, &mbPtr->drawinfo, + ButtonContentDrawCB(&contHIRec, mbPtr->btnkind, &mbPtr->drawinfo, (MacButton *) mbPtr, 32, true); } else { if (!TkMacOSXSetupDrawingContext(pixmap, dpPtr->gc, &dc)) { @@ -793,14 +802,14 @@ TkMacOSXDrawButton( * * ButtonBackgroundDrawCB -- * - * This function draws the background that lies under checkboxes and - * radiobuttons. + * This function draws the background that lies under checkboxes and + * radiobuttons. * * Results: - * None. + * None. * * Side effects: - * The background gets updated to the current color. + * The background gets updated to the current color. * *-------------------------------------------------------------- */ @@ -819,26 +828,26 @@ ButtonBackgroundDrawCB( int usehlborder = 0; if (tkwin == NULL || !Tk_IsMapped(tkwin)) { - return; + return; } pixmap = (Pixmap) Tk_WindowId(tkwin); if (butPtr->type != TYPE_LABEL) { - switch (mbPtr->btnkind) { + switch (mbPtr->btnkind) { case kThemeSmallBevelButton: case kThemeBevelButton: case kThemeRoundedBevelButton: case kThemePushButton: usehlborder = 1; break; - } + } } if (usehlborder) { - Tk_Fill3DRectangle(tkwin, pixmap, butPtr->highlightBorder, 0, 0, - Tk_Width(tkwin), Tk_Height(tkwin), 0, TK_RELIEF_FLAT); + Tk_Fill3DRectangle(tkwin, pixmap, butPtr->highlightBorder, 0, 0, + Tk_Width(tkwin), Tk_Height(tkwin), 0, TK_RELIEF_FLAT); } else { - Tk_Fill3DRectangle(tkwin, pixmap, butPtr->normalBorder, 0, 0, - Tk_Width(tkwin), Tk_Height(tkwin), 0, TK_RELIEF_FLAT); + Tk_Fill3DRectangle(tkwin, pixmap, butPtr->normalBorder, 0, 0, + Tk_Width(tkwin), Tk_Height(tkwin), 0, TK_RELIEF_FLAT); } } @@ -847,13 +856,13 @@ ButtonBackgroundDrawCB( * * ButtonContentDrawCB -- * - * This function draws the label and image for the button. + * This function draws the label and image for the button. * * Results: - * None. + * None. * * Side effects: - * The content of the button gets updated. + * The content of the button gets updated. * *-------------------------------------------------------------- */ @@ -870,7 +879,7 @@ ButtonContentDrawCB ( Tk_Window tkwin = butPtr->tkwin; if (tkwin == NULL || !Tk_IsMapped(tkwin)) { - return; + return; } /* @@ -900,7 +909,7 @@ ButtonContentDrawCB ( static void ButtonEventProc( - ClientData clientData, /* Information about window. */ + void *clientData, /* Information about window. */ XEvent *eventPtr) /* Information about event. */ { TkButton *buttonPtr = (TkButton *)clientData; @@ -936,7 +945,7 @@ ButtonEventProc( * None. * * Side effects: - * Sets the btnkind and drawinfo parameters + * Sets the btnkind and drawinfo parameters * *---------------------------------------------------------------------- */ @@ -949,18 +958,21 @@ TkMacOSXComputeButtonParams( { MacButton *mbPtr = (MacButton *) butPtr; + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->borderWidthPtr, &butPtr->borderWidth); + Tk_GetPixelsFromObj(NULL, butPtr->tkwin, butPtr->highlightWidthPtr, &butPtr->highlightWidth); + if (butPtr->borderWidth <= 2) { - *btnkind = kThemeSmallBevelButton; + *btnkind = kThemeSmallBevelButton; } else if (butPtr->borderWidth == 3) { - *btnkind = kThemeBevelButton; + *btnkind = kThemeBevelButton; } else if (butPtr->borderWidth == 4) { - *btnkind = kThemeRoundedBevelButton; + *btnkind = kThemeRoundedBevelButton; } else { - *btnkind = kThemePushButton; + *btnkind = kThemePushButton; } if ((butPtr->image == NULL) && (butPtr->bitmap == None)) { - switch (butPtr->type) { + switch (butPtr->type) { case TYPE_BUTTON: *btnkind = kThemePushButton; break; @@ -982,7 +994,7 @@ TkMacOSXComputeButtonParams( } if (butPtr->indicatorOn) { - switch (butPtr->type) { + switch (butPtr->type) { case TYPE_RADIO_BUTTON: if (butPtr->borderWidth <= 1) { *btnkind = kThemeSmallRadioButton; @@ -997,22 +1009,22 @@ TkMacOSXComputeButtonParams( *btnkind = kThemeCheckBox; } break; - } + } } else { - if (butPtr->type == TYPE_RADIO_BUTTON || + if (butPtr->type == TYPE_RADIO_BUTTON || butPtr->type == TYPE_CHECK_BUTTON) { if (*btnkind == kThemePushButton) { *btnkind = kThemeBevelButton; } - } + } } if (butPtr->flags & SELECTED) { - drawinfo->value = kThemeButtonOn; + drawinfo->value = kThemeButtonOn; } else if (butPtr->flags & TRISTATED) { - drawinfo->value = kThemeButtonMixed; + drawinfo->value = kThemeButtonMixed; } else { - drawinfo->value = kThemeButtonOff; + drawinfo->value = kThemeButtonOff; } if ((mbPtr->flags & FIRST_DRAW) != 0) { @@ -1024,17 +1036,17 @@ TkMacOSXComputeButtonParams( drawinfo->state = kThemeStateInactive; if ((mbPtr->flags & ACTIVE) == 0) { - if (butPtr->state == STATE_DISABLED) { - drawinfo->state = kThemeStateUnavailableInactive; - } else { - drawinfo->state = kThemeStateInactive; - } + if (butPtr->state == STATE_DISABLED) { + drawinfo->state = kThemeStateUnavailableInactive; + } else { + drawinfo->state = kThemeStateInactive; + } } else if (butPtr->state == STATE_DISABLED) { - drawinfo->state = kThemeStateUnavailable; + drawinfo->state = kThemeStateUnavailable; } else if (butPtr->state == STATE_ACTIVE) { - drawinfo->state = kThemeStatePressed; + drawinfo->state = kThemeStatePressed; } else { - drawinfo->state = kThemeStateActive; + drawinfo->state = kThemeStateActive; } drawinfo->adornment = kThemeAdornmentNone; @@ -1049,17 +1061,17 @@ TkMacOSXComputeButtonParams( * the button periodically. */ - if (!mbPtr->defaultPulseHandler && ([NSApp macOSVersion] <= 100900)) { - mbPtr->defaultPulseHandler = Tcl_CreateTimerHandler( - PULSE_TIMER_MSECS, PulseDefaultButtonProc, butPtr); - } + if (!mbPtr->defaultPulseHandler && ([NSApp macOSVersion] <= 100900)) { + mbPtr->defaultPulseHandler = Tcl_CreateTimerHandler( + PULSE_TIMER_MSECS, PulseDefaultButtonProc, butPtr); + } } else if (mbPtr->defaultPulseHandler) { - Tcl_DeleteTimerHandler(mbPtr->defaultPulseHandler); + Tcl_DeleteTimerHandler(mbPtr->defaultPulseHandler); } if (butPtr->highlightWidth >= 3) { - if ((butPtr->flags & GOT_FOCUS)) { - drawinfo->adornment |= kThemeAdornmentFocus; - } + if ((butPtr->flags & GOT_FOCUS)) { + drawinfo->adornment |= kThemeAdornmentFocus; + } } } @@ -1091,17 +1103,17 @@ TkMacOSXComputeButtonDrawParams( || (butPtr->bitmap != None)); if (butPtr->type != TYPE_LABEL) { - dpPtr->offset = 0; - if (dpPtr->hasImageOrBitmap) { - switch (mbPtr->btnkind) { + dpPtr->offset = 0; + if (dpPtr->hasImageOrBitmap) { + switch (mbPtr->btnkind) { case kThemeSmallBevelButton: case kThemeBevelButton: case kThemeRoundedBevelButton: case kThemePushButton: dpPtr->offset = 1; break; - } - } + } + } } dpPtr->border = butPtr->normalBorder; @@ -1174,7 +1186,7 @@ TkMacOSXComputeButtonDrawParams( */ static void -PulseDefaultButtonProc(ClientData clientData) +PulseDefaultButtonProc(void *clientData) { MacButton *mbPtr = (MacButton *)clientData; @@ -1187,7 +1199,7 @@ PulseDefaultButtonProc(ClientData clientData) */ Tcl_CancelIdleCall(TkpDisplayButton, clientData); mbPtr->defaultPulseHandler = Tcl_CreateTimerHandler( - PULSE_TIMER_MSECS, PulseDefaultButtonProc, clientData); + PULSE_TIMER_MSECS, PulseDefaultButtonProc, clientData); } /* diff --git a/macosx/tkMacOSXClipboard.c b/macosx/tkMacOSXClipboard.c index 126af47..f16ab0d 100644 --- a/macosx/tkMacOSXClipboard.c +++ b/macosx/tkMacOSXClipboard.c @@ -118,7 +118,7 @@ TkSelGetSelection( * returned. */ Tk_GetSelProc *proc, /* Procedure to call to process the selection, * once it has been retrieved. */ - ClientData clientData) /* Arbitrary value to pass to proc. */ + void *clientData) /* Arbitrary value to pass to proc. */ { int result = TCL_ERROR; TkDisplay *dispPtr = ((TkWindow *) tkwin)->dispPtr; diff --git a/macosx/tkMacOSXColor.c b/macosx/tkMacOSXColor.c index bafd310..978b9d6 100644 --- a/macosx/tkMacOSXColor.c +++ b/macosx/tkMacOSXColor.c @@ -20,12 +20,12 @@ #include "tkMacOSXColor.h" static Tcl_HashTable systemColors; -static int numSystemColors; -static int rgbColorIndex; -static int controlAccentIndex; -static int controlAlternatingRowIndex; -static int selectedTabTextIndex; -static int pressedButtonTextIndex; +static size_t numSystemColors; +static size_t rgbColorIndex; +static size_t controlAccentIndex; +static size_t controlAlternatingRowIndex; +static size_t selectedTabTextIndex; +static size_t pressedButtonTextIndex; static Bool useFakeAccentColor = NO; static SystemColorDatum **systemColorIndex; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 @@ -45,7 +45,7 @@ static void initColorTable() Tcl_HashSearch search; Tcl_HashEntry *hPtr; int newPtr; - int index = 0; + size_t index = 0; NSColorList *systemColorList = [NSColorList colorListNamed:@"System"]; NSString *key; @@ -249,7 +249,7 @@ GetEntryFromPixel( unsigned long pixel) { MacPixel p = {0}; - int index = rgbColorIndex; + size_t index = rgbColorIndex; p.ulong = pixel; if (p.pixel.colortype != rgbColor) { @@ -363,28 +363,6 @@ GetRGBA( } [color getComponents: rgba]; break; - case HIText: -#ifdef __LP64__ - color = [[NSColor textColor] colorUsingColorSpace:sRGB]; - [color getComponents: rgba]; -#else - { - OSStatus err = noErr; - RGBColor rgb; - err = GetThemeTextColor(kThemeTextColorPushButtonActive, 32, - true, &rgb); - if (err == noErr) { - rgba[0] = (CGFloat) rgb.red / 65535; - rgba[1] = (CGFloat) rgb.green / 65535; - rgba[2] = (CGFloat) rgb.blue / 65535; - } - } -#endif - break; - case HIBackground: - color = [[NSColor windowBackgroundColor] colorUsingColorSpace:sRGB]; - [color getComponents: rgba]; - break; default: break; } @@ -401,12 +379,6 @@ GetRGBA( * values are copied into the CGColorRef. Otherwise the components are * computed from the SystemColorDatum. * - * In 64 bit macOS systems there are no HITheme functions which convert - * HIText or HIBackground colors to CGColors. (GetThemeTextColor was - * removed, and it was never possible with backgrounds.) On 64-bit systems - * we replace all HIText colors by systemTextColor and all HIBackground - * colors by systemWindowBackgroundColor. - * * Results: * True if the function succeeds, false otherwise. * @@ -579,8 +551,6 @@ TkMacOSXSetColorInContext( OSStatus err = noErr; CGColorRef cgColor = NULL; SystemColorDatum *entry = GetEntryFromPixel(pixel); - CGRect rect; - HIThemeBackgroundDrawInfo info = {0, kThemeStateActive, 0}; if (entry) { switch (entry->type) { @@ -592,16 +562,6 @@ TkMacOSXSetColorInContext( kHIThemeOrientationNormal); } break; - case HIText: - err = ChkErr(HIThemeSetTextFill, entry->value, NULL, context, - kHIThemeOrientationNormal); - break; - case HIBackground: - info.kind = entry->value; - rect = CGContextGetClipBoundingBox(context); - err = ChkErr(HIThemeApplyBackground, &rect, &info, - context, kHIThemeOrientationNormal); - break; default: SetCGColorComponents(entry, pixel, &cgColor); break; diff --git a/macosx/tkMacOSXColor.h b/macosx/tkMacOSXColor.h index 785b089..fd4881c 100644 --- a/macosx/tkMacOSXColor.h +++ b/macosx/tkMacOSXColor.h @@ -38,8 +38,10 @@ enum colorType { rgbColor, /* The 24 bit value is an rgb color. */ clearColor, /* The unique rgba color with all channels 0. */ HIBrush, /* A HITheme brush color.*/ +#if TCL_MAJOR_VERSION < 9 HIText, /* A HITheme text color (32-bit only). */ HIBackground, /* A HITheme background color (32-bit only). */ +#endif ttkBackground, /* A background color which indicates nesting level.*/ semantic, /* A semantic NSColor.*/ }; @@ -73,10 +75,10 @@ enum macColormap { typedef struct { const char *name; enum colorType type; - int value; + ThemeBrush value; const char *macName; /* Fields below are filled in after or during construction of the hash table. */ - int index; + size_t index; NSString *selector; } SystemColorDatum; @@ -163,70 +165,6 @@ static SystemColorDatum systemColorData[] = { {"ListViewEvenRowBackground", HIBrush, kThemeBrushListViewEvenRowBackground, NULL, 0, NULL }, {"ListViewColumnDivider", HIBrush, kThemeBrushListViewColumnDivider, NULL, 0, NULL }, -{"ButtonText", HIText, kThemeTextColorPushButtonActive, NULL, 0, NULL }, -{"MenuActiveText", HIText, kThemeTextColorMenuItemSelected, NULL, 0, NULL }, -{"MenuDisabled", HIText, kThemeTextColorMenuItemDisabled, NULL, 0, NULL }, -{"MenuText", HIText, kThemeTextColorMenuItemActive, NULL, 0, NULL }, -{"BlackText", HIText, kThemeTextColorBlack, NULL, 0, NULL }, -{"DialogActiveText", HIText, kThemeTextColorDialogActive, NULL, 0, NULL }, -{"DialogInactiveText", HIText, kThemeTextColorDialogInactive, NULL, 0, NULL }, -{"AlertActiveText", HIText, kThemeTextColorAlertActive, NULL, 0, NULL }, -{"AlertInactiveText", HIText, kThemeTextColorAlertInactive, NULL, 0, NULL }, -{"ModelessDialogActiveText", HIText, kThemeTextColorModelessDialogActive, NULL, 0, NULL }, -{"ModelessDialogInactiveText", HIText, kThemeTextColorModelessDialogInactive, NULL, 0, NULL }, -{"WindowHeaderActiveText", HIText, kThemeTextColorWindowHeaderActive, NULL, 0, NULL }, -{"WindowHeaderInactiveText", HIText, kThemeTextColorWindowHeaderInactive, NULL, 0, NULL }, -{"PlacardActiveText", HIText, kThemeTextColorPlacardActive, NULL, 0, NULL }, -{"PlacardInactiveText", HIText, kThemeTextColorPlacardInactive, NULL, 0, NULL }, -{"PlacardPressedText", HIText, kThemeTextColorPlacardPressed, NULL, 0, NULL }, -{"PushButtonActiveText", HIText, kThemeTextColorPushButtonActive, NULL, 0, NULL }, -{"PushButtonInactiveText", HIText, kThemeTextColorPushButtonInactive, NULL, 0, NULL }, -{"PushButtonPressedText", HIText, kThemeTextColorPushButtonPressed, NULL, 0, NULL }, -{"BevelButtonActiveText", HIText, kThemeTextColorBevelButtonActive, NULL, 0, NULL }, -{"BevelButtonInactiveText", HIText, kThemeTextColorBevelButtonInactive, NULL, 0, NULL }, -{"BevelButtonPressedText", HIText, kThemeTextColorBevelButtonPressed, NULL, 0, NULL }, -{"PopupButtonActiveText", HIText, kThemeTextColorPopupButtonActive, NULL, 0, NULL }, -{"PopupButtonInactiveText", HIText, kThemeTextColorPopupButtonInactive, NULL, 0, NULL }, -{"PopupButtonPressedText", HIText, kThemeTextColorPopupButtonPressed, NULL, 0, NULL }, -{"IconLabelText", HIText, kThemeTextColorIconLabel, NULL, 0, NULL }, -{"ListViewText", HIText, kThemeTextColorListView, NULL, 0, NULL }, -{"DocumentWindowTitleActiveText", HIText, kThemeTextColorDocumentWindowTitleActive, NULL, 0, NULL }, -{"DocumentWindowTitleInactiveText", HIText, kThemeTextColorDocumentWindowTitleInactive, NULL, 0, NULL }, -{"MovableModalWindowTitleActiveText", HIText, kThemeTextColorMovableModalWindowTitleActive, NULL, 0, NULL }, -{"MovableModalWindowTitleInactiveText", HIText, kThemeTextColorMovableModalWindowTitleInactive, NULL, 0, NULL }, -{"UtilityWindowTitleActiveText", HIText, kThemeTextColorUtilityWindowTitleActive, NULL, 0, NULL }, -{"UtilityWindowTitleInactiveText", HIText, kThemeTextColorUtilityWindowTitleInactive, NULL, 0, NULL }, -{"PopupWindowTitleActiveText", HIText, kThemeTextColorPopupWindowTitleActive, NULL, 0, NULL }, -{"PopupWindowTitleInactiveText", HIText, kThemeTextColorPopupWindowTitleInactive, NULL, 0, NULL }, -{"RootMenuActiveText", HIText, kThemeTextColorRootMenuActive, NULL, 0, NULL }, -{"RootMenuSelectedText", HIText, kThemeTextColorRootMenuSelected, NULL, 0, NULL }, -{"RootMenuDisabledText", HIText, kThemeTextColorRootMenuDisabled, NULL, 0, NULL }, -{"MenuItemActiveText", HIText, kThemeTextColorMenuItemActive, NULL, 0, NULL }, -{"MenuItemSelectedText", HIText, kThemeTextColorMenuItemSelected, NULL, 0, NULL }, -{"MenuItemDisabledText", HIText, kThemeTextColorMenuItemDisabled, NULL, 0, NULL }, -{"PopupLabelActiveText", HIText, kThemeTextColorPopupLabelActive, NULL, 0, NULL }, -{"PopupLabelInactiveText", HIText, kThemeTextColorPopupLabelInactive, NULL, 0, NULL }, -{"TabFrontActiveText", HIText, kThemeTextColorTabFrontActive, NULL, 0, NULL }, -{"TabNonFrontActiveText", HIText, kThemeTextColorTabNonFrontActive, NULL, 0, NULL }, -{"TabNonFrontPressedText", HIText, kThemeTextColorTabNonFrontPressed, NULL, 0, NULL }, -{"TabFrontInactiveText", HIText, kThemeTextColorTabFrontInactive, NULL, 0, NULL }, -{"TabNonFrontInactiveText", HIText, kThemeTextColorTabNonFrontInactive, NULL, 0, NULL }, -{"IconLabelSelectedText", HIText, kThemeTextColorIconLabelSelected, NULL, 0, NULL }, -{"BevelButtonStickyActiveText", HIText, kThemeTextColorBevelButtonStickyActive, NULL, 0, NULL }, -{"BevelButtonStickyInactiveText", HIText, kThemeTextColorBevelButtonStickyInactive, NULL, 0, NULL }, -{"NotificationText", HIText, kThemeTextColorNotification, NULL, 0, NULL }, -{"SystemDetailText", HIText, kThemeTextColorSystemDetail, NULL, 0, NULL }, -{"PlacardBackground", HIBackground, kThemeBackgroundPlacard, NULL, 0, NULL }, -{"WindowHeaderBackground", HIBackground, kThemeBackgroundWindowHeader, NULL, 0, NULL }, -{"ListViewWindowHeaderBackground", HIBackground, kThemeBackgroundListViewWindowHeader, NULL, 0, NULL }, -{"MetalBackground", HIBackground, kThemeBackgroundMetal, NULL, 0, NULL }, - -{"SecondaryGroupBoxBackground", HIBackground, kThemeBackgroundSecondaryGroupBox, NULL, 0, NULL }, -{"TabPaneBackground", HIBackground, kThemeBackgroundTabPane, NULL, 0, NULL }, -{"WhiteText", HIText, kThemeTextColorWhite, NULL, 0, NULL }, -{"Black", HIBrush, kThemeBrushBlack, NULL, 0, NULL }, -{"White", HIBrush, kThemeBrushWhite, NULL, 0, NULL }, - /* * Dynamic Colors */ diff --git a/macosx/tkMacOSXConfig.c b/macosx/tkMacOSXConfig.c index c32876f..46efbe9 100644 --- a/macosx/tkMacOSXConfig.c +++ b/macosx/tkMacOSXConfig.c @@ -17,7 +17,7 @@ /* *---------------------------------------------------------------------- * - * TkpGetSystemDefault -- + * Tk_GetSystemDefault -- * * Given a dbName and className for a configuration option, * return a string representation of the option. @@ -34,15 +34,11 @@ */ Tcl_Obj * -TkpGetSystemDefault( - Tk_Window tkwin, /* A window to use. */ - const char *dbName, /* The option database name. */ - const char *className) /* The name of the option class. */ +Tk_GetSystemDefault( + TCL_UNUSED(Tk_Window), /* A window to use. */ + TCL_UNUSED(const char *), /* The option database name. */ + TCL_UNUSED(const char *)) /* The name of the option class. */ { - (void)tkwin; - (void)dbName; - (void)className; - return NULL; } diff --git a/macosx/tkMacOSXCursor.c b/macosx/tkMacOSXCursor.c index df87fd0..f235c75 100644 --- a/macosx/tkMacOSXCursor.c +++ b/macosx/tkMacOSXCursor.c @@ -187,15 +187,6 @@ static const struct CursorName cursorNames[] = { static TkMacOSXCursor *gCurrentCursor = NULL; /* A pointer to the current cursor. */ -static int gResizeOverride = false; - /* A boolean indicating whether we should use - * the resize cursor during installations. */ -static int gTkOwnsCursor = true;/* A boolean indicating whether Tk owns the - * cursor. If not (for instance, in the case - * where a Tk window is embedded in another - * app's window, and the cursor is out of the - * Tk window, we will not attempt to adjust - * the cursor. */ /* * Declarations of procedures local to this file @@ -240,7 +231,7 @@ FindCursorByName( macCursorPtr->type = IMAGEPATH; path = [NSString stringWithUTF8String:&name[1]]; } else { - Tcl_Obj *strPtr = Tcl_NewStringObj(name, -1); + Tcl_Obj *strPtr = Tcl_NewStringObj(name, TCL_INDEX_NONE); int idx; result = Tcl_GetIndexFromObjStruct(NULL, strPtr, cursorNames, @@ -381,7 +372,7 @@ TkGetCursorByName( { TkMacOSXCursor *macCursorPtr = NULL; const char **argv = NULL; - int argc; + Tcl_Size argc; /* * All cursor names are valid lists of one element (for @@ -489,17 +480,15 @@ TkpFreeCursor( *---------------------------------------------------------------------- */ -void +static void TkMacOSXInstallCursor( - int resizeOverride) + void) { TkMacOSXCursor *macCursorPtr = gCurrentCursor; static int cursorHidden = 0; int cursorNone = 0; - gResizeOverride = resizeOverride; - - if (resizeOverride || !macCursorPtr) { + if (!macCursorPtr) { [[NSCursor arrowCursor] set]; } else { switch (macCursorPtr->type) { @@ -547,10 +536,6 @@ TkpSetCursor( { int cursorChanged = 1; - if (!gTkOwnsCursor) { - return; - } - if (cursor == NULL) { /* * This is a little tricky. We can't really tell whether @@ -569,34 +554,11 @@ TkpSetCursor( } if (Tk_MacOSXIsAppInFront() && cursorChanged) { - TkMacOSXInstallCursor(gResizeOverride); + TkMacOSXInstallCursor(); } } /* - *---------------------------------------------------------------------- - * - * Tk_MacOSXTkOwnsCursor -- - * - * Sets whether Tk has the right to adjust the cursor. - * - * Results: - * None. - * - * Side effects: - * May keep Tk from changing the cursor. - * - *---------------------------------------------------------------------- - */ - -void -Tk_MacOSXTkOwnsCursor( - int tkOwnsIt) -{ - gTkOwnsCursor = tkOwnsIt; -} - -/* * Local Variables: * mode: objc * c-basic-offset: 4 diff --git a/macosx/tkMacOSXDefault.h b/macosx/tkMacOSXDefault.h index e126742..4bde36a 100644 --- a/macosx/tkMacOSXDefault.h +++ b/macosx/tkMacOSXDefault.h @@ -45,7 +45,7 @@ #define INACTIVE_SELECT_BG "systemUnemphasizedSelectedTextBackgroundColor" #define TROUGH "#c3c3c3" #define INDICATOR "#b03060" -#define DISABLED "#a3a3a3" +#define DISABLED "systemDisabledControlTextColor" #define IGNORED "#abcdef" /* @@ -106,7 +106,6 @@ #define DEF_BUTTON_TAKE_FOCUS NULL #define DEF_BUTTON_TEXT "" #define DEF_BUTTON_TEXT_VARIABLE "" -#define DEF_BUTTON_UNDERLINE "-1" #define DEF_BUTTON_VALUE "" #define DEF_BUTTON_WIDTH "0" #define DEF_BUTTON_WRAP_LENGTH "0" @@ -184,6 +183,8 @@ #define DEF_ENTRY_INSERT_ON_TIME "600" #define DEF_ENTRY_INSERT_WIDTH "1" #define DEF_ENTRY_JUSTIFY "left" +#define DEF_ENTRY_PLACEHOLDER "" +#define DEF_ENTRY_PLACEHOLDERFG "systemPlaceholderTextColor" #define DEF_ENTRY_READONLY_BG_COLOR NORMAL_BG #define DEF_ENTRY_READONLY_BG_MONO WHITE #define DEF_ENTRY_RELIEF "sunken" @@ -205,7 +206,9 @@ */ #define DEF_FRAME_BG_COLOR NORMAL_BG +#define DEF_FRAME_BG_IMAGE NULL #define DEF_FRAME_BG_MONO WHITE +#define DEF_FRAME_BG_TILE "0" #define DEF_FRAME_BORDER_WIDTH "0" #define DEF_FRAME_CLASS "Frame" #define DEF_FRAME_COLORMAP "" @@ -293,7 +296,6 @@ #define DEF_MENU_ENTRY_CHECK_VARIABLE NULL #define DEF_MENU_ENTRY_RADIO_VARIABLE "selectedButton" #define DEF_MENU_ENTRY_SELECT NULL -#define DEF_MENU_ENTRY_UNDERLINE "-1" /* * Defaults for menus overall: @@ -304,6 +306,7 @@ #define DEF_MENU_ACTIVE_BORDER_WIDTH "0" #define DEF_MENU_ACTIVE_FG_COLOR IGNORED #define DEF_MENU_ACTIVE_FG_MONO IGNORED +#define DEF_MENU_ACTIVE_RELIEF "flat" #define DEF_MENU_BG_COLOR "#000001" /* Detects custom bg. */ #define DEF_MENU_BG_MONO IGNORED #define DEF_MENU_BORDER_WIDTH "0" @@ -327,12 +330,12 @@ */ #define DEF_MENUBUTTON_ANCHOR "w" -#define DEF_MENUBUTTON_ACTIVE_BG_COLOR ACTIVE_BG -#define DEF_MENUBUTTON_ACTIVE_BG_MONO WHITE -#define DEF_MENUBUTTON_ACTIVE_FG_COLOR ACTIVE_FG -#define DEF_MENUBUTTON_ACTIVE_FG_MONO BLACK -#define DEF_MENUBUTTON_BG_COLOR NORMAL_BG -#define DEF_MENUBUTTON_BG_MONO WHITE +#define DEF_MENUBUTTON_ACTIVE_BG_COLOR NORMAL_BG /*ignored*/ +#define DEF_MENUBUTTON_ACTIVE_BG_MONO NORMAL_BG /*ignored*/ +#define DEF_MENUBUTTON_ACTIVE_FG_COLOR "systemTextColor" +#define DEF_MENUBUTTON_ACTIVE_FG_MONO "systemTextColor" +#define DEF_MENUBUTTON_BG_COLOR NORMAL_BG /*ignored*/ +#define DEF_MENUBUTTON_BG_MONO NORMAL_BG /*ignored*/ #define DEF_MENUBUTTON_BITMAP "" #define DEF_MENUBUTTON_BORDER_WIDTH "0" #define DEF_MENUBUTTON_CURSOR "" @@ -357,7 +360,6 @@ #define DEF_MENUBUTTON_TAKE_FOCUS "0" #define DEF_MENUBUTTON_TEXT "" #define DEF_MENUBUTTON_TEXT_VARIABLE "" -#define DEF_MENUBUTTON_UNDERLINE "-1" #define DEF_MENUBUTTON_WIDTH "0" #define DEF_MENUBUTTON_WRAP_LENGTH "0" @@ -429,7 +431,7 @@ #define DEF_SCALE_ACTIVE_BG_MONO BLACK #define DEF_SCALE_BG_COLOR NORMAL_BG #define DEF_SCALE_BG_MONO WHITE -#define DEF_SCALE_BIG_INCREMENT "0" +#define DEF_SCALE_BIG_INCREMENT "0.0" #define DEF_SCALE_BORDER_WIDTH "1" #define DEF_SCALE_COMMAND "" #define DEF_SCALE_CURSOR "" @@ -437,7 +439,7 @@ #define DEF_SCALE_FONT "TkDefaultFont" #define DEF_SCALE_FG_COLOR NORMAL_FG #define DEF_SCALE_FG_MONO BLACK -#define DEF_SCALE_FROM "0" +#define DEF_SCALE_FROM "0.0" #define DEF_SCALE_HIGHLIGHT_BG_COLOR DEF_SCALE_BG_COLOR #define DEF_SCALE_HIGHLIGHT_BG_MONO DEF_SCALE_BG_MONO #define DEF_SCALE_HIGHLIGHT NORMAL_FG @@ -448,7 +450,7 @@ #define DEF_SCALE_RELIEF "flat" #define DEF_SCALE_REPEAT_DELAY "300" #define DEF_SCALE_REPEAT_INTERVAL "100" -#define DEF_SCALE_RESOLUTION "1" +#define DEF_SCALE_RESOLUTION "1.0" #define DEF_SCALE_TROUGH_COLOR TROUGH #define DEF_SCALE_TROUGH_MONO WHITE #define DEF_SCALE_SHOW_VALUE "1" @@ -456,8 +458,8 @@ #define DEF_SCALE_SLIDER_RELIEF "raised" #define DEF_SCALE_STATE "normal" #define DEF_SCALE_TAKE_FOCUS NULL -#define DEF_SCALE_TICK_INTERVAL "0" -#define DEF_SCALE_TO "100" +#define DEF_SCALE_TICK_INTERVAL "0.0" +#define DEF_SCALE_TO "100.0" #define DEF_SCALE_VARIABLE "" #define DEF_SCALE_WIDTH "15" diff --git a/macosx/tkMacOSXDialog.c b/macosx/tkMacOSXDialog.c index a6d3c44..425919c 100644 --- a/macosx/tkMacOSXDialog.c +++ b/macosx/tkMacOSXDialog.c @@ -93,32 +93,32 @@ enum colorOptions { }; static const char *const openOptionStrings[] = { - "-defaultextension", "-filetypes", "-initialdir", "-initialfile", - "-message", "-multiple", "-parent", "-title", "-typevariable", - "-command", NULL + "-command", "-defaultextension", "-filetypes", "-initialdir", + "-initialfile", "-message", "-multiple", "-parent", "-title", + "-typevariable", NULL }; enum openOptions { - OPEN_DEFAULT, OPEN_FILETYPES, OPEN_INITDIR, OPEN_INITFILE, - OPEN_MESSAGE, OPEN_MULTIPLE, OPEN_PARENT, OPEN_TITLE, - OPEN_TYPEVARIABLE, OPEN_COMMAND, + OPEN_COMMAND, OPEN_DEFAULT, OPEN_FILETYPES, OPEN_INITDIR, + OPEN_INITFILE, OPEN_MESSAGE, OPEN_MULTIPLE, OPEN_PARENT, OPEN_TITLE, + OPEN_TYPEVARIABLE }; static const char *const saveOptionStrings[] = { - "-defaultextension", "-filetypes", "-initialdir", "-initialfile", - "-message", "-parent", "-title", "-typevariable", "-command", - "-confirmoverwrite", NULL + "-command", "-confirmoverwrite", "-defaultextension", "-filetypes", + "-initialdir", "-initialfile", "-message", "-parent", "-title", + "-typevariable", NULL }; enum saveOptions { - SAVE_DEFAULT, SAVE_FILETYPES, SAVE_INITDIR, SAVE_INITFILE, - SAVE_MESSAGE, SAVE_PARENT, SAVE_TITLE, SAVE_TYPEVARIABLE, SAVE_COMMAND, - SAVE_CONFIRMOW + SAVE_COMMAND, SAVE_CONFIRMOW, SAVE_DEFAULT, SAVE_FILETYPES, + SAVE_INITDIR, SAVE_INITFILE, SAVE_MESSAGE, SAVE_PARENT, SAVE_TITLE, + SAVE_TYPEVARIABLE }; static const char *const chooseOptionStrings[] = { - "-initialdir", "-message", "-mustexist", "-parent", "-title", "-command", + "-command", "-initialdir", "-message", "-mustexist", "-parent", "-title", NULL }; enum chooseOptions { - CHOOSE_INITDIR, CHOOSE_MESSAGE, CHOOSE_MUSTEXIST, CHOOSE_PARENT, - CHOOSE_TITLE, CHOOSE_COMMAND + CHOOSE_COMMAND, CHOOSE_INITDIR, CHOOSE_MESSAGE, CHOOSE_MUSTEXIST, + CHOOSE_PARENT, CHOOSE_TITLE }; typedef struct { Tcl_Interp *interp; @@ -233,11 +233,13 @@ getFileURL( } - (void)panel:(id)sender didChangeToDirectoryURL:(NSURL *)url { - (void)sender; (void)url; + (void)sender; + (void)url; } - (BOOL)panel:(id)sender validateURL:(NSURL *)url error:(NSError **)outError { - (void)sender; (void)url; + (void)sender; + (void)url; *outError = nil; return YES; } @@ -255,14 +257,14 @@ getFileURL( resultObj = Tcl_NewListObj(0, NULL); for (NSURL *url in [(NSOpenPanel*)panel URLs]) { Tcl_ListObjAppendElement(callbackInfo->interp, resultObj, - Tcl_NewStringObj([[url path] UTF8String], -1)); + Tcl_NewStringObj([[url path] UTF8String], TCL_INDEX_NONE)); } } else { - resultObj = Tcl_NewStringObj([[[panel URL]path] UTF8String], -1); + resultObj = Tcl_NewStringObj([[[panel URL]path] UTF8String], TCL_INDEX_NONE); } if (callbackInfo->cmdObj) { Tcl_Obj **objv, **tmpv; - int objc; + Tcl_Size objc; int result = Tcl_ListObjGetElements(callbackInfo->interp, callbackInfo->cmdObj, &objc, &objv); @@ -291,11 +293,11 @@ getFileURL( if (returnCode >= NSAlertFirstButtonReturn) { Tcl_Obj *resultObj = Tcl_NewStringObj(alertButtonStrings[ alertNativeButtonIndexAndTypeToButtonIndex[callbackInfo-> - typeIndex][returnCode - NSAlertFirstButtonReturn]], -1); + typeIndex][returnCode - NSAlertFirstButtonReturn]], TCL_INDEX_NONE); if (callbackInfo->cmdObj) { Tcl_Obj **objv, **tmpv; - int objc; + Tcl_Size objc; int result = Tcl_ListObjGetElements(callbackInfo->interp, callbackInfo->cmdObj, &objc, &objv); @@ -429,7 +431,7 @@ static NSInteger showOpenSavePanel( int Tk_ChooseColorObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -488,7 +490,7 @@ Tk_ChooseColorObjCmd( [colorPanel setShowsAlpha: NO]; [colorPanel _setUseModalAppearance:YES]; if (title) { - NSString *s = [[TKNSString alloc] initWithTclUtfBytes:title length:-1]; + NSString *s = [[TKNSString alloc] initWithTclUtfBytes:title length:TCL_INDEX_NONE]; [colorPanel setTitle:s]; [s release]; @@ -560,7 +562,7 @@ parseFileFilters( if (filterInfo.doFileTypes) { for (FileFilter *filterPtr = fl.filters; filterPtr; filterPtr = filterPtr->next) { - NSString *name = [[TKNSString alloc] initWithTclUtfBytes: filterPtr->name length:-1]; + NSString *name = [[TKNSString alloc] initWithTclUtfBytes: filterPtr->name length:TCL_INDEX_NONE]; [filterInfo.fileTypeNames addObject:name]; [name release]; @@ -578,7 +580,7 @@ parseFileFilters( str++; } if (*str) { - NSString *extension = [[TKNSString alloc] initWithTclUtfBytes:str length:-1]; + NSString *extension = [[TKNSString alloc] initWithTclUtfBytes:str length:TCL_INDEX_NONE]; if (![filterInfo.allowedExtensions containsObject:extension]) { [filterInfo.allowedExtensions addObject:extension]; } @@ -631,7 +633,7 @@ parseFileFilters( const char *selectedFileType = Tcl_GetString(selectedFileTypeObj); NSString *selectedFileTypeStr = - [[TKNSString alloc] initWithTclUtfBytes:selectedFileType length:-1]; + [[TKNSString alloc] initWithTclUtfBytes:selectedFileType length:TCL_INDEX_NONE]; NSUInteger index = [filterInfo.fileTypeNames indexOfObject:selectedFileTypeStr]; @@ -651,7 +653,7 @@ parseFileFilters( static bool filterCompatible( NSString *extension, - int filterIndex) + NSUInteger filterIndex) { NSMutableArray *allowedExtensions = [filterInfo.fileTypeExtensions objectAtIndex: filterIndex]; @@ -685,7 +687,7 @@ filterCompatible( int Tk_GetOpenFileObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -694,7 +696,7 @@ Tk_GetOpenFileObjCmd( char *str; int i, result = TCL_ERROR, haveParentOption = 0; int index, multiple = 0; - int len; + Tcl_Size len; Tcl_Obj *cmdObj = NULL, *typeVariablePtr = NULL, *fileTypesPtr = NULL; NSString *directory = nil, *filename = nil; NSString *message = nil, *title = nil; @@ -931,7 +933,7 @@ Tk_GetOpenFileObjCmd( } } Tcl_ObjSetVar2(interp, typeVariablePtr, NULL, - Tcl_NewStringObj([selectedFilter UTF8String], -1), + Tcl_NewStringObj([selectedFilter UTF8String], TCL_INDEX_NONE), TCL_GLOBAL_ONLY); } end: @@ -957,7 +959,7 @@ Tk_GetOpenFileObjCmd( int Tk_GetSaveFileObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -967,7 +969,7 @@ Tk_GetSaveFileObjCmd( int i, result = TCL_ERROR, haveParentOption = 0; int confirmOverwrite = 1; int index; - int len; + Tcl_Size len; Tcl_Obj *cmdObj = NULL, *typeVariablePtr = NULL, *fileTypesPtr = NULL; NSString *directory = nil, *filename = nil, *defaultType = nil; NSString *message = nil, *title = nil; @@ -1172,7 +1174,7 @@ Tk_GetSaveFileObjCmd( NSString *selectedFilter = [filterInfo.fileTypeNames objectAtIndex:filterInfo.fileTypeIndex]; Tcl_ObjSetVar2(interp, typeVariablePtr, NULL, - Tcl_NewStringObj([selectedFilter UTF8String], -1), + Tcl_NewStringObj([selectedFilter UTF8String], TCL_INDEX_NONE), TCL_GLOBAL_ONLY); } @@ -1200,7 +1202,7 @@ Tk_GetSaveFileObjCmd( int Tk_ChooseDirectoryObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -1209,7 +1211,7 @@ Tk_ChooseDirectoryObjCmd( char *str; int i, result = TCL_ERROR, haveParentOption = 0; int index, mustexist = 0; - int len; + Tcl_Size len; Tcl_Obj *cmdObj = NULL; NSString *directory = nil; NSString *message, *title; @@ -1381,7 +1383,7 @@ TkMacOSXStandardAboutPanelObjCmd( int Tk_MessageBoxObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -1426,7 +1428,7 @@ Tk_MessageBoxObjCmd( case ALERT_DETAIL: str = Tcl_GetString(objv[i + 1]); message = [[TKNSString alloc] initWithTclUtfBytes: - str length:-1]; + str length:TCL_INDEX_NONE]; [alert setInformativeText:message]; [message release]; break; @@ -1441,7 +1443,7 @@ Tk_MessageBoxObjCmd( case ALERT_MESSAGE: str = Tcl_GetString(objv[i + 1]); message = [[TKNSString alloc] initWithTclUtfBytes: - str length:-1]; + str length:TCL_INDEX_NONE]; [alert setMessageText:message]; [message release]; break; @@ -1458,7 +1460,7 @@ Tk_MessageBoxObjCmd( case ALERT_TITLE: str = Tcl_GetString(objv[i + 1]); title = [[TKNSString alloc] initWithTclUtfBytes: - str length:-1]; + str length:TCL_INDEX_NONE]; [[alert window] setTitle:title]; [title release]; break; @@ -1494,7 +1496,7 @@ Tk_MessageBoxObjCmd( alertButtonIndexAndTypeToNativeButtonIndex[typeIndex][index]; if (!defaultNativeButtonIndex) { Tcl_SetObjResult(interp, - Tcl_NewStringObj("Illegal default option", -1)); + Tcl_NewStringObj("Illegal default option", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "MSGBOX", "DEFAULT", NULL); goto end; } @@ -1569,7 +1571,7 @@ Tk_MessageBoxObjCmd( *---------------------------------------------------------------------- */ -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXFont.h" typedef struct FontchooserData { @@ -1586,18 +1588,12 @@ enum FontchooserEvent { static void FontchooserEvent(int kind); static Tcl_Obj * FontchooserCget(FontchooserData *fcdPtr, int optionIndex); -static int FontchooserConfigureCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int FontchooserShowCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int FontchooserHideCmd(ClientData clientData, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static void FontchooserParentEventHandler(ClientData clientData, +static Tcl_ObjCmdProc2 FontchooserConfigureCmd; +static Tcl_ObjCmdProc2 FontchooserShowCmd; +static Tcl_ObjCmdProc2 FontchooserHideCmd; +static void FontchooserParentEventHandler(void *clientData, XEvent *eventPtr); -static void DeleteFontchooserData(ClientData clientData, +static void DeleteFontchooserData(void *clientData, Tcl_Interp *interp); MODULE_SCOPE const TkEnsemble tkFontchooserEnsemble[]; @@ -1613,11 +1609,11 @@ static NSFont *fontPanelFont = nil; static NSMutableDictionary *fontPanelFontAttributes = nil; static const char *const fontchooserOptionStrings[] = { - "-parent", "-title", "-font", "-command", + "-command", "-font", "-parent", "-title", "-visible", NULL }; enum FontchooserOption { - FontchooserParent, FontchooserTitle, FontchooserFont, FontchooserCmd, + FontchooserCmd, FontchooserFont, FontchooserParent, FontchooserTitle, FontchooserVisible }; @@ -1702,7 +1698,7 @@ FontchooserEvent( switch (kind) { case FontchooserClosed: if (fcdPtr->parent != NULL) { - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility", NULL); + Tk_SendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility", NULL); fontchooserInterp = NULL; } break; @@ -1711,7 +1707,7 @@ FontchooserEvent( fontPanelFont, fontPanelFontAttributes); if (fontObj) { if (fcdPtr->cmdObj) { - int objc; + Tcl_Size objc; int result; Tcl_Obj **objv, **tmpv; @@ -1726,7 +1722,7 @@ FontchooserEvent( ckfree(tmpv); } } - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserFontChanged", NULL); + Tk_SendVirtualEvent(fcdPtr->parent, "TkFontchooserFontChanged", NULL); } break; } @@ -1760,7 +1756,7 @@ FontchooserCget( case FontchooserParent: if (fcdPtr->parent != NULL) { resObj = Tcl_NewStringObj( - ((TkWindow *)fcdPtr->parent)->pathName, -1); + ((TkWindow *)fcdPtr->parent)->pathName, TCL_INDEX_NONE); } else { resObj = Tcl_NewStringObj(".", 1); } @@ -1815,15 +1811,15 @@ FontchooserCget( static int FontchooserConfigureCmd( - ClientData clientData, /* Main window */ + void *clientData, /* Main window */ Tcl_Interp *interp, - int objc, + Tcl_Size objc, Tcl_Obj *const objv[]) { Tk_Window tkwin = (Tk_Window)clientData; FontchooserData *fcdPtr = (FontchooserData *)Tcl_GetAssocData(interp, "::tk::fontchooser", NULL); - int i; + Tcl_Size i; int r = TCL_OK; /* @@ -1835,8 +1831,8 @@ FontchooserConfigureCmd( Tcl_Obj *dictObj = Tcl_NewDictObj(); for (i = 0; r == TCL_OK && fontchooserOptionStrings[i] != NULL; ++i) { - keyObj = Tcl_NewStringObj(fontchooserOptionStrings[i], -1); - valueObj = FontchooserCget(fcdPtr, i); + keyObj = Tcl_NewStringObj(fontchooserOptionStrings[i], TCL_INDEX_NONE); + valueObj = FontchooserCget(fcdPtr, (int)i); r = Tcl_DictObjPut(interp, dictObj, keyObj, valueObj); } if (r == TCL_OK) { @@ -1847,7 +1843,7 @@ FontchooserConfigureCmd( for (i = 1; i < objc; i += 2) { int optionIndex; - int len; + Tcl_Size len; if (Tcl_GetIndexFromObjStruct(interp, objv[i], fontchooserOptionStrings, sizeof(char *), "option", 0, &optionIndex) != TCL_OK) { @@ -1872,7 +1868,7 @@ FontchooserConfigureCmd( const char *msg = "cannot change read-only option " "\"-visible\": use the show or hide command"; - Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "FONTDIALOG", "READONLY", NULL); return TCL_ERROR; } @@ -1937,7 +1933,7 @@ FontchooserConfigureCmd( [fm setSelectedAttributes:fontPanelFontAttributes isMultiple:NO]; if ([fp isVisible]) { - TkSendVirtualEvent(fcdPtr->parent, + Tk_SendVirtualEvent(fcdPtr->parent, "TkFontchooserFontChanged", NULL); } break; @@ -1982,9 +1978,9 @@ FontchooserConfigureCmd( static int FontchooserShowCmd( - ClientData clientData, /* Main window */ + void *clientData, /* Main window */ Tcl_Interp *interp, - TCL_UNUSED(int), + TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { FontchooserData *fcdPtr = (FontchooserData *)Tcl_GetAssocData(interp, "::tk::fontchooser", @@ -2004,7 +2000,7 @@ FontchooserShowCmd( } if (![fp isVisible]) { [fm orderFrontFontPanel:NSApp]; - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility", NULL); + Tk_SendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility", NULL); } fontchooserInterp = interp; @@ -2032,7 +2028,7 @@ static int FontchooserHideCmd( TCL_UNUSED(void *), /* Main window */ TCL_UNUSED(Tcl_Interp *), - TCL_UNUSED(int), + TCL_UNUSED(Tcl_Size), TCL_UNUSED(Tcl_Obj *const *)) { NSFontPanel *fp = [[NSFontManager sharedFontManager] fontPanel:NO]; @@ -2062,7 +2058,7 @@ FontchooserHideCmd( static void FontchooserParentEventHandler( - ClientData clientData, + void *clientData, XEvent *eventPtr) { FontchooserData *fcdPtr = (FontchooserData *)clientData; @@ -2094,7 +2090,7 @@ FontchooserParentEventHandler( static void DeleteFontchooserData( - ClientData clientData, + void *clientData, Tcl_Interp *interp) { FontchooserData *fcdPtr = (FontchooserData *)clientData; diff --git a/macosx/tkMacOSXDraw.c b/macosx/tkMacOSXDraw.c index 7092611..2aaf4ba 100644 --- a/macosx/tkMacOSXDraw.c +++ b/macosx/tkMacOSXDraw.c @@ -227,7 +227,7 @@ CreateNSImageFromPixmap( /* *---------------------------------------------------------------------- * - * TkMacOSXGetCGContextForDrawable -- + * Tk_MacOSXGetCGContextForDrawable -- * * Get CGContext for given Drawable, creating one if necessary. * @@ -240,8 +240,8 @@ CreateNSImageFromPixmap( *---------------------------------------------------------------------- */ -CGContextRef -TkMacOSXGetCGContextForDrawable( +void * +Tk_MacOSXGetCGContextForDrawable( Drawable drawable) { MacDrawable *macDraw = (MacDrawable *)drawable; @@ -611,7 +611,6 @@ XDrawRectangle( return Success; } -#ifdef TK_MACOSXDRAW_UNUSED /* *---------------------------------------------------------------------- * @@ -671,7 +670,6 @@ XDrawRectangles( TkMacOSXRestoreDrawingContext(&dc); return Success; } -#endif /* *---------------------------------------------------------------------- @@ -842,7 +840,6 @@ XDrawArc( return Success; } -#ifdef TK_MACOSXDRAW_UNUSED /* *---------------------------------------------------------------------- * @@ -923,7 +920,6 @@ XDrawArcs( TkMacOSXRestoreDrawingContext(&dc); return Success; } -#endif /* *---------------------------------------------------------------------- @@ -1004,7 +1000,6 @@ XFillArc( return Success; } -#ifdef TK_MACOSXDRAW_UNUSED /* *---------------------------------------------------------------------- * @@ -1086,24 +1081,6 @@ XFillArcs( TkMacOSXRestoreDrawingContext(&dc); return Success; } -#endif - -#ifdef TK_MACOSXDRAW_UNUSED -/* - *---------------------------------------------------------------------- - * - * XMaxRequestSize -- - * - *---------------------------------------------------------------------- - */ - -long -XMaxRequestSize( - Display *display) -{ - return (SHRT_MAX / 4); -} -#endif /* *---------------------------------------------------------------------- @@ -1130,7 +1107,7 @@ TkScrollWindow( int x, int y, /* Position rectangle to be scrolled. */ int width, int height, int dx, int dy, /* Distance rectangle should be moved. */ - TkRegion damageRgn) /* Region to accumulate damage in. */ + Region damageRgn) /* Region to accumulate damage in. */ { Drawable drawable = Tk_WindowId(tkwin); MacDrawable *macDraw = (MacDrawable *)drawable; @@ -1427,7 +1404,7 @@ TkMacOSXSetupDrawingContext( CGContextSetShouldAntialias(dc.context, shouldAntialias); CGContextSetLineWidth(dc.context, w); if (gc->line_style != LineSolid) { - int num = 0; + size_t num = 0; char *p = &gc->dashes; CGFloat dashOffset = gc->dash_offset; dashOffset -= (gc->line_width % 2) ? 0.5 : 0.0; @@ -1557,30 +1534,7 @@ TkMacOSXGetClipRgn( /* *---------------------------------------------------------------------- * - * TkMacOSXSetUpClippingRgn -- - * - * Set up the clipping region so that drawing only occurs on the specified - * X subwindow. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetUpClippingRgn( - Drawable drawable) /* Drawable to update. */ -{ -} - -/* - *---------------------------------------------------------------------- - * - * TkpClipDrawableToRect -- + * Tk_ClipDrawableToRect -- * * Clip all drawing into the drawable d to the given rectangle. If width * or height are negative, reset to no clipping. @@ -1595,7 +1549,7 @@ TkMacOSXSetUpClippingRgn( */ void -TkpClipDrawableToRect( +Tk_ClipDrawableToRect( TCL_UNUSED(Display *), Drawable d, int x, int y, @@ -1649,7 +1603,7 @@ ClipToGC( { if (gc && gc->clip_mask && ((TkpClipMask *)gc->clip_mask)->type == TKP_CLIP_REGION) { - TkRegion gcClip = ((TkpClipMask *)gc->clip_mask)->value.region; + Region gcClip = ((TkpClipMask *)gc->clip_mask)->value.region; int xOffset = ((MacDrawable *)d)->xOff + gc->clip_x_origin; int yOffset = ((MacDrawable *)d)->yOff + gc->clip_y_origin; HIShapeRef clipRgn = *clipRgnPtr, gcClipRgn; @@ -1696,7 +1650,7 @@ TkMacOSXMakeStippleMap( /* *---------------------------------------------------------------------- * - * TkpDrawHighlightBorder -- + * Tk_DrawHighlightBorder -- * * This procedure draws a rectangular ring around the outside of a widget * to indicate that it has received the input focus. @@ -1718,7 +1672,7 @@ TkMacOSXMakeStippleMap( */ void -TkpDrawHighlightBorder ( +Tk_DrawHighlightBorder ( Tk_Window tkwin, GC fgGC, GC bgGC, @@ -1739,7 +1693,7 @@ TkpDrawHighlightBorder ( /* *---------------------------------------------------------------------- * - * TkpDrawFrame -- + * TkpDrawFrameEx -- * * This procedure draws the rectangular frame area. If the user has * requested themeing, it draws with the background theme. @@ -1754,8 +1708,9 @@ TkpDrawHighlightBorder ( */ void -TkpDrawFrame( +TkpDrawFrameEx( Tk_Window tkwin, + Drawable drawable, Tk_3DBorder border, int highlightWidth, int borderWidth, @@ -1773,11 +1728,9 @@ TkpDrawFrame( } } - Tk_Fill3DRectangle(tkwin, Tk_WindowId(tkwin), - border, highlightWidth, highlightWidth, - Tk_Width(tkwin) - 2 * highlightWidth, - Tk_Height(tkwin) - 2 * highlightWidth, - borderWidth, relief); + Tk_Fill3DRectangle(tkwin, drawable, border, highlightWidth, + highlightWidth, Tk_Width(tkwin) - 2 * highlightWidth, + Tk_Height(tkwin) - 2 * highlightWidth, borderWidth, relief); } /* diff --git a/macosx/tkMacOSXEmbed.c b/macosx/tkMacOSXEmbed.c index 222cb35..ef4f44d 100644 --- a/macosx/tkMacOSXEmbed.c +++ b/macosx/tkMacOSXEmbed.c @@ -43,66 +43,25 @@ typedef struct Container { static Container *firstContainerPtr = NULL; /* First in list of all containers managed by * this process. */ -/* - * Globals defined in this file: - */ - -TkMacOSXEmbedHandler *tkMacOSXEmbedHandler = NULL; /* * Prototypes for static procedures defined in this file: */ -static void ContainerEventProc(ClientData clientData, XEvent *eventPtr); -static void EmbeddedEventProc(ClientData clientData, XEvent *eventPtr); -static void EmbedActivateProc(ClientData clientData, XEvent *eventPtr); -static void EmbedFocusProc(ClientData clientData, XEvent *eventPtr); +static void ContainerEventProc(void *clientData, XEvent *eventPtr); +static void EmbeddedEventProc(void *clientData, XEvent *eventPtr); +static void EmbedActivateProc(void *clientData, XEvent *eventPtr); +static void EmbedFocusProc(void *clientData, XEvent *eventPtr); static void EmbedGeometryRequest(Container *containerPtr, int width, int height); static void EmbedSendConfigure(Container *containerPtr); -static void EmbedStructureProc(ClientData clientData, XEvent *eventPtr); +static void EmbedStructureProc(void *clientData, XEvent *eventPtr); static void EmbedWindowDeleted(TkWindow *winPtr); /* *---------------------------------------------------------------------- * - * Tk_MacOSXSetEmbedHandler -- - * - * Registers a handler for an in process form of embedding, like Netscape - * plugins, where Tk is loaded into the process, but does not control the - * main window - * - * Results: - * None - * - * Side effects: - * The embed handler is set. - * - *---------------------------------------------------------------------- - */ - -void -Tk_MacOSXSetEmbedHandler( - Tk_MacOSXEmbedRegisterWinProc *registerWinProc, - Tk_MacOSXEmbedGetGrafPortProc *getPortProc, - Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc, - Tk_MacOSXEmbedGetClipProc *getClipProc, - Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc) -{ - if (tkMacOSXEmbedHandler == NULL) { - tkMacOSXEmbedHandler = ckalloc(sizeof(TkMacOSXEmbedHandler)); - } - tkMacOSXEmbedHandler->registerWinProc = registerWinProc; - tkMacOSXEmbedHandler->getPortProc = getPortProc; - tkMacOSXEmbedHandler->containerExistProc = containerExistProc; - tkMacOSXEmbedHandler->getClipProc = getClipProc; - tkMacOSXEmbedHandler->getOffsetProc = getOffsetProc; -} - -/* - *---------------------------------------------------------------------- - * - * TkpMakeWindow -- + * Tk_MakeWindow -- * * Creates an X Window (Mac subwindow). * @@ -116,15 +75,16 @@ Tk_MacOSXSetEmbedHandler( */ Window -TkpMakeWindow( - TkWindow *winPtr, - Window parent) +Tk_MakeWindow( + Tk_Window tkwin, + TCL_UNUSED(Window)) { MacDrawable *macWin; + TkWindow *winPtr = (TkWindow *)tkwin; /* * If this window is marked as embedded then the window structure should - * have already been created in the TkpUseWindow function. + * have already been created in the Tk_UseWindow function. */ if (Tk_IsEmbedded(winPtr)) { @@ -134,7 +94,7 @@ TkpMakeWindow( * Allocate sub window */ - macWin = ckalloc(sizeof(MacDrawable)); + macWin = (MacDrawable *)ckalloc(sizeof(MacDrawable)); if (macWin == NULL) { winPtr->privatePtr = NULL; return None; @@ -218,7 +178,7 @@ TkpScanWindowId( /* *---------------------------------------------------------------------- * - * TkpUseWindow -- + * Tk_UseWindow -- * * This procedure causes a Tk window to use a given X window as its * parent window, rather than the root window for the screen. It is @@ -238,7 +198,7 @@ TkpScanWindowId( */ int -TkpUseWindow( +Tk_UseWindow( Tcl_Interp *interp, /* If not NULL, used for error reporting if * string is bogus. */ Tk_Window tkwin, /* Tk window that does not yet have an @@ -253,7 +213,7 @@ TkpUseWindow( if (winPtr->window != None) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "can't modify container after widget is created", -1)); + "can't modify container after widget is created", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "EMBED", "POST_CREATE", NULL); return TCL_ERROR; } @@ -306,7 +266,7 @@ TkpUseWindow( * Make the embedded window. */ - macWin = ckalloc(sizeof(MacDrawable)); + macWin = (MacDrawable *)ckalloc(sizeof(MacDrawable)); if (macWin == NULL) { winPtr->privatePtr = NULL; return TCL_ERROR; @@ -362,7 +322,7 @@ TkpUseWindow( /* *---------------------------------------------------------------------- * - * TkpMakeContainer -- + * Tk_MakeContainer -- * * This procedure is called to indicate that a particular window will be * a container for an embedded application. This changes certain aspects @@ -379,7 +339,7 @@ TkpUseWindow( */ void -TkpMakeContainer( +Tk_MakeContainer( Tk_Window tkwin) /* Token for a window that is about to become * a container. */ { @@ -392,7 +352,7 @@ TkpMakeContainer( */ Tk_MakeWindowExist(tkwin); - containerPtr = ckalloc(sizeof(Container)); + containerPtr = (Container *)ckalloc(sizeof(Container)); containerPtr->parent = Tk_WindowId(tkwin); containerPtr->parentPtr = winPtr; containerPtr->embedded = None; @@ -484,7 +444,7 @@ TkMacOSXGetHostToplevel( if (!Tk_IsEmbedded(topWinPtr)) { return winPtr->privatePtr->toplevel; } - contWinPtr = TkpGetOtherWindow(topWinPtr); + contWinPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)topWinPtr); /* * TODO: Here we should handle out of process embedding. @@ -560,9 +520,9 @@ TkpClaimFocus( int TkpTestembedCmd( - ClientData clientData, /* Main window for application. */ + TCL_UNUSED(void *), /* Main window for application. */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument strings. */ { int all; @@ -597,7 +557,8 @@ TkpTestembedCmd( if (containerPtr->parent == None) { Tcl_DStringAppendElement(&dString, ""); } else if (all) { - snprintf(buffer, sizeof(buffer), "0x%lx", containerPtr->parent); + snprintf(buffer, sizeof(buffer), "0x%" TCL_Z_MODIFIER "x", + (size_t) containerPtr->parent); Tcl_DStringAppendElement(&dString, buffer); } else { Tcl_DStringAppendElement(&dString, "XXX"); @@ -662,9 +623,9 @@ TkpTestembedCmd( void TkpRedirectKeyEvent( - TkWindow *winPtr, /* Window to which the event was originally + TCL_UNUSED(TkWindow *), /* Window to which the event was originally * reported. */ - XEvent *eventPtr) /* X event to redirect (should be KeyPress or + TCL_UNUSED(XEvent *)) /* X event to redirect (should be KeyPress or * KeyRelease). */ { /* TODO: Implement this or decide it definitely needs no implementation */ @@ -673,13 +634,13 @@ TkpRedirectKeyEvent( /* *---------------------------------------------------------------------- * - * TkpGetOtherWindow -- + * Tk_GetOtherWindow -- * * If both the container and embedded window are in the same process, * this procedure will return either one, given the other. * * Results: - * If winPtr is a container, the return value is the token for the + * If tkwin is a container, the return value is the token for the * embedded window, and vice versa. If the "other" window isn't in this * process, NULL is returned. * @@ -689,28 +650,28 @@ TkpRedirectKeyEvent( *---------------------------------------------------------------------- */ -TkWindow * -TkpGetOtherWindow( - TkWindow *winPtr) /* Tk's structure for a container or embedded +Tk_Window +Tk_GetOtherWindow( + Tk_Window tkwin) /* Tk's structure for a container or embedded * window. */ { Container *containerPtr; /* - * TkpGetOtherWindow returns NULL if both windows are not in the same + * Tk_GetOtherWindow returns NULL if both windows are not in the same * process... */ - if (!(winPtr && (winPtr->flags & TK_BOTH_HALVES))) { + if (!(tkwin && (((TkWindow*)tkwin)->flags & TK_BOTH_HALVES))) { return NULL; } for (containerPtr = firstContainerPtr; containerPtr != NULL; containerPtr = containerPtr->nextPtr) { - if (containerPtr->embeddedPtr == winPtr) { - return containerPtr->parentPtr; - } else if (containerPtr->parentPtr == winPtr) { - return containerPtr->embeddedPtr; + if ((Tk_Window)containerPtr->embeddedPtr == tkwin) { + return (Tk_Window)containerPtr->parentPtr; + } else if ((Tk_Window)containerPtr->parentPtr == tkwin) { + return (Tk_Window)containerPtr->embeddedPtr; } } return NULL; @@ -737,7 +698,7 @@ TkpGetOtherWindow( static void EmbeddedEventProc( - ClientData clientData, /* Token for container window. */ + void *clientData, /* Token for container window. */ XEvent *eventPtr) /* ResizeRequest event. */ { TkWindow *winPtr = (TkWindow *)clientData; @@ -772,7 +733,7 @@ EmbeddedEventProc( static void ContainerEventProc( - ClientData clientData, /* Token for container window. */ + void *clientData, /* Token for container window. */ XEvent *eventPtr) /* ResizeRequest event. */ { TkWindow *winPtr = (TkWindow *)clientData; @@ -880,7 +841,7 @@ ContainerEventProc( static void EmbedStructureProc( - ClientData clientData, /* Token for container window. */ + void *clientData, /* Token for container window. */ XEvent *eventPtr) /* ResizeRequest event. */ { Container *containerPtr = (Container *)clientData; @@ -904,8 +865,8 @@ EmbedStructureProc( errHandler = Tk_CreateErrorHandler(eventPtr->xfocus.display, -1, -1, -1, NULL, NULL); Tk_MoveResizeWindow((Tk_Window)containerPtr->embeddedPtr, 0, 0, - (unsigned) Tk_Width((Tk_Window)containerPtr->parentPtr), - (unsigned) Tk_Height((Tk_Window)containerPtr->parentPtr)); + Tk_Width((Tk_Window)containerPtr->parentPtr), + Tk_Height((Tk_Window)containerPtr->parentPtr)); Tk_DeleteErrorHandler(errHandler); } } else if (eventPtr->type == DestroyNotify) { @@ -934,7 +895,7 @@ EmbedStructureProc( static void EmbedActivateProc( - ClientData clientData, /* Token for container window. */ + void *clientData, /* Token for container window. */ XEvent *eventPtr) /* ResizeRequest event. */ { Container *containerPtr = (Container *)clientData; @@ -969,7 +930,7 @@ EmbedActivateProc( static void EmbedFocusProc( - ClientData clientData, /* Token for container window. */ + void *clientData, /* Token for container window. */ XEvent *eventPtr) /* ResizeRequest event. */ { Container *containerPtr = (Container *)clientData; @@ -1080,7 +1041,7 @@ EmbedGeometryRequest( static void EmbedSendConfigure( - Container *containerPtr) /* Information about the embedding. */ + TCL_UNUSED(Container *)) /* Information about the embedding. */ { } @@ -1190,30 +1151,30 @@ EmbedWindowDeleted( void TkpShowBusyWindow( - TkBusy busy) + TCL_UNUSED(TkBusy)) { } void TkpHideBusyWindow( - TkBusy busy) + TCL_UNUSED(TkBusy)) { } void TkpMakeTransparentWindowExist( - Tk_Window tkwin, /* Token for window. */ - Window parent) /* Parent window. */ + TCL_UNUSED(Tk_Window), /* Token for window. */ + TCL_UNUSED(Window)) /* Parent window. */ { } void TkpCreateBusy( - Tk_FakeWin *winPtr, - Tk_Window tkRef, - Window* parentPtr, - Tk_Window tkParent, - TkBusy busy) + TCL_UNUSED(Tk_FakeWin *), + TCL_UNUSED(Tk_Window), + TCL_UNUSED(Window *), + TCL_UNUSED(Tk_Window), + TCL_UNUSED(TkBusy)) { } diff --git a/macosx/tkMacOSXEvent.c b/macosx/tkMacOSXEvent.c index c2a96bc..4f36915 100644 --- a/macosx/tkMacOSXEvent.c +++ b/macosx/tkMacOSXEvent.c @@ -12,7 +12,7 @@ */ #include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXDebug.h" #include "tkMacOSXConstants.h" @@ -106,6 +106,29 @@ enum { @end #pragma mark - +int +XSync( + Display *display, + TCL_UNUSED(Bool)) +{ + /* + * The main use of XSync is by the update command, which alternates + * between running an event loop to process all events without waiting and + * calling XSync on all displays until no events are left. On X11 the + * call to XSync might cause the window manager to generate more events + * which would then get processed. Apparently this process stabilizes on + * X11, leaving the window manager in a state where all events have been + * generated and no additional events can be genereated by updating widgets. + * + * It is not clear what the Aqua port should do when XSync is called, but + * currently the best option seems to be to do nothing. (See ticket + * [da5f2266df].) + */ + + LastKnownRequestProcessed(display)++; + return 0; +} + /* * Local Variables: * mode: objc diff --git a/macosx/tkMacOSXEvent.h b/macosx/tkMacOSXEvent.h deleted file mode 100644 index 3764415..0000000 --- a/macosx/tkMacOSXEvent.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * tkMacOSXEvent.h -- - * - * Declarations of Macintosh specific functions for implementing the - * Mac OS X Notifier. - * - * Copyright © 2001-2009 Apple Inc. - * Copyright © 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -#ifndef _TKMACEVENT -#define _TKMACEVENT - -#ifndef _TKMACINT -#include "tkMacOSXInt.h" -#endif - -/* - * Currently nothing needs to be declared here. - */ - -#endif diff --git a/macosx/tkMacOSXFont.c b/macosx/tkMacOSXFont.c index 88e3593..f9cd9bc 100644 --- a/macosx/tkMacOSXFont.c +++ b/macosx/tkMacOSXFont.c @@ -112,7 +112,7 @@ static int CreateNamedSystemFont(Tcl_Interp *interp, self = [self init]; if (self) { Tcl_DStringInit(&_ds); - Tcl_UtfToUniCharDString((const char *)bytes, len, &_ds); + Tcl_UtfToChar16DString((const char *)bytes, len, &_ds); _string = [[NSString alloc] initWithCharactersNoCopy:(unichar *)Tcl_DStringValue(&_ds) length:Tcl_DStringLength(&_ds)>>1 @@ -164,9 +164,9 @@ static int CreateNamedSystemFont(Tcl_Interp *interp, Tcl_DStringSetLength(&_ds, 3 * [_string length]); p = Tcl_DStringValue(&_ds); for (index = 0; index < [_string length]; index++) { - p += Tcl_UniCharToUtf([_string characterAtIndex: index], p); + p += Tcl_UniCharToUtf([_string characterAtIndex: index]|TCL_COMBINE, p); } - Tcl_DStringSetLength(&_ds, p - Tcl_DStringValue(&_ds)); + Tcl_DStringSetLength(&_ds, (Tcl_Size)(p - Tcl_DStringValue(&_ds))); } return _ds; } @@ -203,7 +203,8 @@ GetTkFontAttributesForNSFont( NSFontTraitMask traits = [[NSFontManager sharedFontManager] traitsOfFont:nsFont]; faPtr->family = Tk_GetUid([[nsFont familyName] UTF8String]); - faPtr->size = [nsFont pointSize]; +#define FACTOR 0.75 + faPtr->size = [nsFont pointSize] * FACTOR; faPtr->weight = (traits & NSBoldFontMask ? TK_FW_BOLD : TK_FW_NORMAL); faPtr->slant = (traits & NSItalicFontMask ? TK_FS_ITALIC : TK_FS_ROMAN); @@ -242,12 +243,12 @@ FindNSFont( NSString *family; if (familyName) { - family = [[[TKNSString alloc] initWithTclUtfBytes:familyName length:-1] autorelease]; + family = [[[TKNSString alloc] initWithTclUtfBytes:familyName length:TCL_INDEX_NONE] autorelease]; } else { family = [defaultFont familyName]; } if (size == 0.0) { - size = [defaultFont pointSize]; + size = [defaultFont pointSize] * FACTOR; } nsFont = [fm fontWithFamily:family traits:traits weight:weight size:size]; @@ -420,6 +421,139 @@ CreateNamedSystemFont( } #pragma mark - + +#pragma mark Grapheme Cluster indexing + +/* + *---------------------------------------------------------------------- + * + * startOfClusterObjCmd -- + * + * This function is invoked to process the startOfCluster command. + * + * Results: + * A standard Tcl result. + * + * Side effects: + * None + * + *---------------------------------------------------------------------- + */ + +static int +startOfClusterObjCmd( + TCL_UNUSED(void *), + Tcl_Interp *interp, /* Current interpreter. */ + int objc, /* Number of arguments. */ + Tcl_Obj *const objv[]) /* Argument objects. */ +{ + TKNSString *S; + const char *stringArg; + Tcl_Size len, idx; + if ((unsigned)(objc - 3) > 1) { + Tcl_WrongNumArgs(interp, 1 , objv, "str start ?locale?"); + return TCL_ERROR; + } + stringArg = Tcl_GetStringFromObj(objv[1], &len); + if (stringArg == NULL) { + return TCL_ERROR; + } + Tcl_Size ulen = TkGetCharLength(objv[1]); + S = [[TKNSString alloc] initWithTclUtfBytes:stringArg length:len]; + len = [S length]; + if (TkGetIntForIndex(objv[2], ulen - 1, 0, &idx) != TCL_OK) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "bad index \"%s\": must be integer?[+-]integer?, end?[+-]integer?, or \"\"", + Tcl_GetString(objv[2]))); + Tcl_SetErrorCode(interp, "TK", "VALUE", "INDEX", NULL); + return TCL_ERROR; + } + if (idx > 0 && len != ulen) { + /* The string contains codepoints > \uFFFF. Determine UTF-16 index */ + Tcl_Size newIdx = 0; + for (Tcl_Size i = 0; i < idx; i++) { + newIdx += 1 + (((newIdx < (Tcl_Size)len-1) && ([S characterAtIndex:newIdx]&0xFC00) == 0xD800) && (([S characterAtIndex:newIdx+1]&0xFC00) == 0xDC00)); + } + idx = newIdx; + } + if (idx >= 0) { + if (idx >= len) { + idx = len; + } else { + NSRange range = [S rangeOfComposedCharacterSequenceAtIndex:idx]; + idx = range.location; + } + if (idx > 0 && len != ulen) { + /* The string contains codepoints > \uFFFF. Determine UTF-32 index */ + Tcl_Size newIdx = 1; + for (Tcl_Size i = 1; i < idx; i++) { + if ((([S characterAtIndex:i-1]&0xFC00) != 0xD800) || (([S characterAtIndex:i]&0xFC00) != 0xDC00)) newIdx++; + } + idx = newIdx; + } + Tcl_SetObjResult(interp, TkNewIndexObj(idx)); + } + return TCL_OK; +} + +static int +endOfClusterObjCmd( + TCL_UNUSED(void *), + Tcl_Interp *interp, /* Current interpreter. */ + int objc, /* Number of arguments. */ + Tcl_Obj *const objv[]) /* Argument objects. */ +{ + TKNSString *S; + char *stringArg; + Tcl_Size idx, len; + + if ((unsigned)(objc - 3) > 1) { + Tcl_WrongNumArgs(interp, 1 , objv, "str start ?locale?"); + return TCL_ERROR; + } + stringArg = Tcl_GetStringFromObj(objv[1], &len); + if (stringArg == NULL) { + return TCL_ERROR; + } + Tcl_Size ulen = TkGetCharLength(objv[1]); + S = [[TKNSString alloc] initWithTclUtfBytes:stringArg length:len]; + len = [S length]; + if (TkGetIntForIndex(objv[2], ulen - 1, 0, &idx) != TCL_OK) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "bad index \"%s\": must be integer?[+-]integer?, end?[+-]integer?, or \"\"", + Tcl_GetString(objv[2]))); + Tcl_SetErrorCode(interp, "TK", "VALUE", "INDEX", NULL); + return TCL_ERROR; + } + if (idx > 0 && len != ulen) { + /* The string contains codepoints > \uFFFF. Determine UTF-16 index */ + Tcl_Size newIdx = 0; + for (Tcl_Size i = 0; i < idx; i++) { + newIdx += 1 + (((newIdx < len-1) && ([S characterAtIndex:newIdx]&0xFC00) == 0xD800) && (([S characterAtIndex:newIdx+1]&0xFC00) == 0xDC00)); + } + idx = newIdx; + } + if (idx + 1 <= len) { + if (idx < 0) { + idx = 0; + } else { + NSRange range = [S rangeOfComposedCharacterSequenceAtIndex:idx]; + idx = range.location + range.length; + if (idx > 0 && len != ulen) { + /* The string contains codepoints > \uFFFF. Determine UTF-32 index */ + Tcl_Size newIdx = 1; + for (Tcl_Size i = 1; i < idx; i++) { + if ((([S characterAtIndex:i-1]&0xFC00) != 0xD800) || (([S characterAtIndex:i]&0xFC00) != 0xDC00)) newIdx++; + } + idx = newIdx; + } + } + Tcl_SetObjResult(interp, TkNewIndexObj(idx)); + } + return TCL_OK; +} + +#pragma mark - #pragma mark Font handling: /* @@ -515,6 +649,8 @@ TkpFontPkgInit( [cs release]; } [pool drain]; + Tcl_CreateObjCommand(interp, "::tk::startOfCluster", startOfClusterObjCmd, NULL, NULL); + Tcl_CreateObjCommand(interp, "::tk::endOfCluster", endOfClusterObjCmd, NULL, NULL); } /* @@ -612,7 +748,7 @@ TkpGetFontFromAttributes( /* Set of attributes to match. */ { MacFont *fontPtr; - CGFloat points = floor(TkFontGetPoints(tkwin, faPtr->size) + 0.5); + CGFloat points = floor(TkFontGetPoints(tkwin, faPtr->size / FACTOR) + 0.5); NSFontTraitMask traits = GetNSFontTraitsFromTkFontAttributes(faPtr); NSInteger weight = (faPtr->weight == TK_FW_BOLD ? 9 : 5); NSFont *nsFont; @@ -701,7 +837,7 @@ TkpGetFontFamilies( for (NSString *family in list) { Tcl_ListObjAppendElement(NULL, resultPtr, - Tcl_NewStringObj([family UTF8String], -1)); + Tcl_NewStringObj([family UTF8String], TCL_INDEX_NONE)); } Tcl_SetObjResult(interp, resultPtr); } @@ -741,7 +877,7 @@ TkpGetSubFonts( if (family) { Tcl_ListObjAppendElement(NULL, resultPtr, - Tcl_NewStringObj([family UTF8String], -1)); + Tcl_NewStringObj([family UTF8String], TCL_INDEX_NONE)); } } } @@ -821,7 +957,7 @@ Tk_MeasureChars( Tk_Font tkfont, /* Font in which characters will be drawn. */ const char *source, /* UTF-8 string to be displayed. Need not be * '\0' terminated. */ - int numBytes, /* Maximum number of bytes to consider from + Tcl_Size numBytes, /* Maximum number of bytes to consider from * source string. */ int maxLength, /* If >= 0, maxLength specifies the longest * permissible line length; don't consider any @@ -871,10 +1007,10 @@ TkpMeasureCharsInContext( Tk_Font tkfont, /* Font in which characters will be drawn. */ const char * source, /* UTF-8 string to be displayed. Need not be * '\0' terminated. */ - int numBytes, /* Maximum number of bytes to consider from + Tcl_Size numBytes, /* Maximum number of bytes to consider from * source string in all. */ - int rangeStart, /* Index of first byte to measure. */ - int rangeLength, /* Length of range to measure in bytes. */ + Tcl_Size rangeStart, /* Index of first byte to measure. */ + Tcl_Size rangeLength, /* Length of range to measure in bytes. */ int maxLength, /* If >= 0, maxLength specifies the longest * permissible line length; don't consider any * character that would cross this x-position. @@ -1030,7 +1166,7 @@ TkpMeasureCharsInContext( [attributedString release]; [string release]; length = ceil(width - offset); - fit = (TkUtfAtIndex(source, index) - source) - rangeStart; + fit = (Tcl_UtfAtIndex(source, index) - source) - rangeStart; done: #ifdef TK_MAC_DEBUG_FONTS TkMacOSXDbgMsg("measure: source=\"%s\" range=\"%.*s\" maxLength=%d " @@ -1079,7 +1215,7 @@ Tk_DrawChars( * passed to this function. If they are not * stripped out, they will be displayed as * regular printing characters. */ - int numBytes, /* Number of bytes in string. */ + Tcl_Size numBytes, /* Number of bytes in string. */ int x, int y) /* Coordinates at which to place origin of the * string when drawing. */ { @@ -1101,7 +1237,7 @@ TkDrawAngledChars( * passed to this function. If they are not * stripped out, they will be displayed as * regular printing characters. */ - int numBytes, /* Number of bytes in string. */ + Tcl_Size numBytes, /* Number of bytes in string. */ double x, double y, /* Coordinates at which to place origin of * string when drawing. */ double angle) /* What angle to put text at, in degrees. */ @@ -1144,9 +1280,9 @@ TkpDrawCharsInContext( * passed to this function. If they are not * stripped out, they will be displayed as * regular printing characters. */ - int numBytes, /* Number of bytes in string. */ - int rangeStart, /* Index of first byte to draw. */ - int rangeLength, /* Length of range to draw in bytes. */ + Tcl_Size numBytes, /* Number of bytes in string. */ + Tcl_Size rangeStart, /* Index of first byte to draw. */ + Tcl_Size rangeLength, /* Length of range to draw in bytes. */ int x, int y) /* Coordinates at which to place origin of the * whole (not just the range) string when * drawing. */ @@ -1169,9 +1305,9 @@ TkpDrawAngledCharsInContext( * passed to this function. If they are not * stripped out, they will be displayed as * regular printing characters. */ - int numBytes, /* Number of bytes in string. */ - int rangeStart, /* Index of first byte to draw. */ - int rangeLength, /* Length of range to draw in bytes. */ + Tcl_Size numBytes, /* Number of bytes in string. */ + Tcl_Size rangeStart, /* Index of first byte to draw. */ + Tcl_Size rangeLength, /* Length of range to draw in bytes. */ double x, double y, /* Coordinates at which to place origin of the * whole (not just the range) string when * drawing. */ @@ -1305,32 +1441,6 @@ TkMacOSXNSFontAttributesForFont( } /* - *--------------------------------------------------------------------------- - * - * TkMacOSXIsCharacterMissing -- - * - * Given a tkFont and a character determine whether the character has - * a glyph defined in the font or not. - * - * Results: - * Returns a 1 if the character is missing, a 0 if it is not. - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -#undef TkMacOSXIsCharacterMissing -int -TkMacOSXIsCharacterMissing( - TCL_UNUSED(Tk_Font), /* The font we are looking in. */ - TCL_UNUSED(unsigned int)) /* The character we are looking for. */ -{ - return 0; -} - -/* *---------------------------------------------------------------------- * * TkMacOSXFontDescriptionForNSFontAndNSFontAttributes -- @@ -1363,8 +1473,8 @@ TkMacOSXFontDescriptionForNSFontAndNSFontAttributes( id strikethrough = [nsAttributes objectForKey: NSStrikethroughStyleAttributeName]; - objv[i++] = Tcl_NewStringObj(familyName, -1); - objv[i++] = Tcl_NewWideIntObj((Tcl_WideInt)floor([nsFont pointSize] + 0.5)); + objv[i++] = Tcl_NewStringObj(familyName, TCL_INDEX_NONE); + objv[i++] = Tcl_NewWideIntObj((Tcl_WideInt)floor([nsFont pointSize] * FACTOR + 0.5)); #define S(s) Tcl_NewStringObj(STRINGIFY(s), (sizeof(STRINGIFY(s))-1)) objv[i++] = (traits & NSBoldFontMask) ? S(bold) : S(normal); objv[i++] = (traits & NSItalicFontMask) ? S(italic) : S(roman); diff --git a/macosx/tkMacOSXHLEvents.c b/macosx/tkMacOSXHLEvents.c index 76af976..8e1fff5 100644 --- a/macosx/tkMacOSXHLEvents.c +++ b/macosx/tkMacOSXHLEvents.c @@ -48,7 +48,7 @@ typedef struct AppleEventInfo { static int MissedAnyParameters(const AppleEvent *theEvent); static int ReallyKillMe(Tcl_Event *eventPtr, int flags); -static void ProcessAppleEvent(ClientData clientData); +static void ProcessAppleEvent(void *clientData); /* * Names of the procedures which can be used to process AppleEvents. @@ -59,6 +59,7 @@ static const char launchURLProc[] = "::tk::mac::LaunchURL"; static const char printDocProc[] = "::tk::mac::PrintDocument"; static const char scriptFileProc[] = "::tk::mac::DoScriptFile"; static const char scriptTextProc[] = "::tk::mac::DoScriptText"; +static const char getSdefProc[] = "::tk::mac::GetDynamicSdef"; #pragma mark TKApplication(TKHLEvents) @@ -114,7 +115,7 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; if (_eventInterp && Tcl_FindCommand(_eventInterp, "::tk::mac::OpenApplication", NULL, 0)){ int code = Tcl_EvalEx(_eventInterp, "::tk::mac::OpenApplication", - -1, TCL_EVAL_GLOBAL); + TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { Tcl_BackgroundException(_eventInterp, code); } @@ -131,7 +132,7 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; if (_eventInterp && Tcl_FindCommand(_eventInterp, "::tk::mac::ReopenApplication", NULL, 0)) { int code = Tcl_EvalEx(_eventInterp, "::tk::mac::ReopenApplication", - -1, TCL_EVAL_GLOBAL); + TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK){ Tcl_BackgroundException(_eventInterp, code); } @@ -147,7 +148,7 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; if (_eventInterp && Tcl_FindCommand(_eventInterp, "::tk::mac::ShowPreferences", NULL, 0)){ int code = Tcl_EvalEx(_eventInterp, "::tk::mac::ShowPreferences", - -1, TCL_EVAL_GLOBAL); + TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { Tcl_BackgroundException(_eventInterp, code); } @@ -210,7 +211,7 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; AppleEventInfo *AEInfo = (AppleEventInfo *)ckalloc(sizeof(AppleEventInfo)); Tcl_DString *openCommand = &AEInfo->command; Tcl_DStringInit(openCommand); - Tcl_DStringAppend(openCommand, openDocumentProc, -1); + Tcl_DStringAppend(openCommand, openDocumentProc, TCL_INDEX_NONE); utf8 = Tcl_GetEncoding(NULL, "utf-8"); for (index = 1; index <= count; index++) { @@ -226,7 +227,8 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; if (fileURL == nil) { continue; } - Tcl_ExternalToUtfDString(utf8, [[fileURL path] UTF8String], -1, &pathName); + (void)Tcl_ExternalToUtfDString(utf8, [[fileURL path] UTF8String], TCL_INDEX_NONE, + &pathName); Tcl_DStringAppendElement(openCommand, Tcl_DStringValue(&pathName)); Tcl_DStringFree(&pathName); } @@ -237,11 +239,10 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; AEInfo->procedure = openDocumentProc; AEInfo->replyEvent = nil; AEInfo->retryCount = 0; - if (Tcl_FindCommand(_eventInterp, "::tk::mac::OpenDocuments", NULL, 0)){ - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent((void *)AEInfo); } else { - Tcl_CreateTimerHandler(500, ProcessAppleEvent, (ClientData)AEInfo); + Tcl_CreateTimerHandler(500, ProcessAppleEvent, (void *)AEInfo); } } @@ -256,13 +257,13 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; (void)replyEvent; Tcl_DStringInit(printCommand); - Tcl_DStringAppend(printCommand, printDocProc, -1); + Tcl_DStringAppend(printCommand, printDocProc, TCL_INDEX_NONE); Tcl_DStringAppendElement(printCommand, printFile); AEInfo->interp = _eventInterp; AEInfo->procedure = printDocProc; AEInfo->replyEvent = nil; AEInfo->retryCount = 0; - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent((void *)AEInfo); } - (void) handleDoScriptEvent: (NSAppleEventDescriptor *)event @@ -318,13 +319,13 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; AppleEventInfo *AEInfo = (AppleEventInfo *)ckalloc(sizeof(AppleEventInfo)); Tcl_DString *scriptFileCommand = &AEInfo->command; Tcl_DStringInit(scriptFileCommand); - Tcl_DStringAppend(scriptFileCommand, scriptFileProc, -1); + Tcl_DStringAppend(scriptFileCommand, scriptFileProc, TCL_INDEX_NONE); Tcl_DStringAppendElement(scriptFileCommand, [[fileURL path] UTF8String]); AEInfo->interp = _eventInterp; AEInfo->procedure = scriptFileProc; AEInfo->replyEvent = nil; AEInfo->retryCount = 0; - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent((void *)AEInfo); } } } else if (noErr == AEGetParamPtr(theDesc, keyDirectObject, typeUTF8Text, &type, @@ -344,17 +345,17 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; AppleEventInfo *AEInfo = (AppleEventInfo *)ckalloc(sizeof(AppleEventInfo)); Tcl_DString *scriptTextCommand = &AEInfo->command; Tcl_DStringInit(scriptTextCommand); - Tcl_DStringAppend(scriptTextCommand, scriptTextProc, -1); + Tcl_DStringAppend(scriptTextCommand, scriptTextProc, TCL_INDEX_NONE); Tcl_DStringAppendElement(scriptTextCommand, data); AEInfo->interp = _eventInterp; AEInfo->procedure = scriptTextProc; AEInfo->retryCount = 0; if (Tcl_FindCommand(AEInfo->interp, AEInfo->procedure, NULL, 0)) { AEInfo->replyEvent = replyEvent; - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent(AEInfo); } else { AEInfo->replyEvent = nil; - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent(AEInfo); } } } @@ -372,13 +373,29 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; (void)replyEvent; Tcl_DStringInit(launchCommand); - Tcl_DStringAppend(launchCommand, launchURLProc, -1); + Tcl_DStringAppend(launchCommand, launchURLProc, TCL_INDEX_NONE); Tcl_DStringAppendElement(launchCommand, cURL); AEInfo->interp = _eventInterp; AEInfo->procedure = launchURLProc; AEInfo->replyEvent = nil; AEInfo->retryCount = 0; - ProcessAppleEvent((ClientData)AEInfo); + ProcessAppleEvent((void *)AEInfo); +} + +- (void)handleGetSDEFEvent:(NSAppleEventDescriptor *)event withReplyEvent:(NSAppleEventDescriptor *)replyEvent { + AppleEventInfo *AEInfo = (AppleEventInfo *)ckalloc(sizeof(AppleEventInfo)); + Tcl_DString *sdefCommand = &AEInfo->command; + (void)event; + (void)replyEvent; + + Tcl_DStringInit(sdefCommand); + Tcl_DStringAppend(sdefCommand, getSdefProc, TCL_INDEX_NONE); + AEInfo->interp = _eventInterp; + AEInfo->procedure = getSdefProc; + AEInfo->replyEvent = nil; + AEInfo->retryCount = 0; + ProcessAppleEvent((void *)AEInfo); + } @end @@ -409,7 +426,7 @@ static const char scriptTextProc[] = "::tk::mac::DoScriptText"; */ static void ProcessAppleEvent( - ClientData clientData) + void *clientData) { int code; AppleEventInfo *AEInfo = (AppleEventInfo*) clientData; @@ -439,7 +456,7 @@ static void ProcessAppleEvent( Tcl_DStringLength(&AEInfo->command), TCL_EVAL_GLOBAL); if (AEInfo->replyEvent && code >= 0) { - int reslen; + Tcl_Size reslen; const char *result = Tcl_GetStringFromObj(Tcl_GetObjResult(AEInfo->interp), &reslen); if (code == TCL_OK) { @@ -518,6 +535,15 @@ TkMacOSXInitAppleEvents( andSelector:@selector(handleURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL]; + /* + * We do not load our sdef dynamically but this event handler + * is required to silence error messages from inline execution + * of AppleScript at the Objective-C level. + */ + [aeManager setEventHandler:NSApp + andSelector:@selector(handleGetSDEFEvent:withReplyEvent:) + forEventClass:'ascr' andEventID:'gsdf']; + } } @@ -597,7 +623,7 @@ ReallyKillMe( Tcl_Exit(0); } - int code = Tcl_EvalEx(interp, "::tk::mac::Quit", -1, TCL_EVAL_GLOBAL); + int code = Tcl_EvalEx(interp, "::tk::mac::Quit", TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { /* @@ -637,7 +663,7 @@ MissedAnyParameters( typeWildCard, &returnedType, NULL, 0, &actualSize); return (err != errAEDescNotFound); -} +} /* * Local Variables: diff --git a/macosx/tkMacOSXImage.c b/macosx/tkMacOSXImage.c index b3f04ca..30cfc60 100644 --- a/macosx/tkMacOSXImage.c +++ b/macosx/tkMacOSXImage.c @@ -1,7 +1,8 @@ /* * tkMacOSXImage.c -- * - * The code in this file provides an interface for XImages, + * The code in this file provides an interface for XImages, and + * implements the nsimage image type. * * Copyright © 1995-1997 Sun Microsystems, Inc. * Copyright © 2001-2009 Apple Inc. @@ -14,12 +15,10 @@ #include "tkMacOSXPrivate.h" #include "tkMacOSXConstants.h" +#include "tkMacOSXImage.h" +#include "tkColor.h" #include "xbytes.h" -static CGImageRef CreateCGImageFromPixmap(Drawable pixmap); -static CGImageRef CreateCGImageFromDrawableRect( Drawable drawable, - int x, int y, unsigned int width, unsigned int height); - /* Pixel formats * * Tk uses the XImage structure defined in Xlib.h for storing images. The @@ -458,15 +457,16 @@ XCreateImage( * TkPutImage, XPutImage, TkpPutRGBAImage -- * * These functions, which all have the same signature, copy a rectangular - * subimage of an XImage into a drawable. The first two are identical on - * macOS. They assume that the XImage data has the structure of a 32bpp - * ZPixmap in which the image data is an array of 32bit integers packed - * with 8 bit values for the Red Green and Blue channels. They ignore the - * fourth byte. The function TkpPutRGBAImage assumes that the XImage data - * has been extended by using the fourth byte to store an 8-bit Alpha - * value. (The Alpha data is assumed not to pre-multiplied). The image - * is then drawn into the drawable using standard Porter-Duff Source Atop - * Composition (kCGBlendModeSourceAtop in Apple's Core Graphics). + * subimage of an XImage into a drawable. TkPutImage is an alias for + * XPutImage, which assumes that the XImage data has the structure of a + * 32bpp ZPixmap in which the image data is an array of 32bit integers + * packed with 8 bit values for the Red Green and Blue channels. The + * fourth byte is ignored. The function TkpPutRGBAImage assumes that the + * XImage data has been extended by using the fourth byte to store an + * 8-bit Alpha value. (The Alpha data is assumed not to pre-multiplied). + * The image is then drawn into the drawable using standard Porter-Duff + * Source Atop Composition (kCGBlendModeSourceAtop in Apple's Core + * Graphics). * * The TkpPutRGBAImage function is used by TkImgPhotoDisplay to render photo * images if the compile-time variable TK_CAN_RENDER_RGBA is defined in @@ -555,23 +555,6 @@ int XPutImage( src_x, src_y, dest_x, dest_y, width, height); } -int TkPutImage( - TCL_UNUSED(unsigned long *), - TCL_UNUSED(int), - Display* display, - Drawable drawable, - GC gc, - XImage* image, - int src_x, - int src_y, - int dest_x, - int dest_y, - unsigned int width, - unsigned int height) { - return TkMacOSXPutImage(IGNORE_ALPHA, display, drawable, gc, image, - src_x, src_y, dest_x, dest_y, width, height); -} - int TkpPutRGBAImage( Display* display, Drawable drawable, @@ -688,6 +671,57 @@ CreateCGImageFromDrawableRect( } return result; } + +/* + *---------------------------------------------------------------------- + * + * CreatePDFFromDrawableRect + * + * Extract PDF data from a MacOSX drawable. + * + * Results: + * Returns a CFDataRef that can be written to a file. + * + * NOTE: The x,y coordinates should be relative to a coordinate system + * with origin at the bottom left as used by NSView, not top left + * as used by XImage and CGImage. + * + * Side effects: + * None + * + *---------------------------------------------------------------------- + */ + +CFDataRef +CreatePDFFromDrawableRect( + Drawable drawable, + int x, + int y, + unsigned int width, + unsigned int height) +{ + MacDrawable *mac_drawable = (MacDrawable *)drawable; + NSView *view = TkMacOSXGetNSViewForDrawable(mac_drawable); + if (view == nil) { + TkMacOSXDbgMsg("Invalid source drawable"); + return NULL; + } + NSRect bounds, viewSrcRect; + + /* + * Get the child window area in NSView coordinates + * (origin at bottom left). + */ + + bounds = [view bounds]; + viewSrcRect = NSMakeRect(mac_drawable->xOff + x, + bounds.size.height - height - (mac_drawable->yOff + y), + width, height); + NSData *viewData = [view dataWithPDFInsideRect:viewSrcRect]; + CFDataRef result = (CFDataRef)viewData; + return result; +} + /* *---------------------------------------------------------------------- @@ -1028,6 +1062,712 @@ XCopyPlane( } } +/* ---------------------------------------------------------------------------*/ + +/* + * Implementation of a Tk image type which provide access to NSImages + * for use in buttons etc. + */ + +/* + * Forward declarations. + */ + +typedef struct TkMacOSXNSImageInstance TkMacOSXNSImageInstance; +typedef struct TkMacOSXNSImageModel TkMacOSXNSImageModel; + +/* + * The following data structure represents a particular use of an nsimage + * in a widget. + */ + +struct TkMacOSXNSImageInstance { + TkMacOSXNSImageModel *modelPtr; /* Pointer to the model for the image. */ + NSImage *image; /* Pointer to an NSImage.*/ + TkMacOSXNSImageInstance *nextPtr; /* First in the list of instances associated + * with this model. */ +}; + +/* + * The following data structure represents the model for an nsimage: + */ + +struct TkMacOSXNSImageModel { + Tk_ImageModel tkModel; /* Tk's token for image model. */ + Tcl_Interp *interp; /* Interpreter for application. */ + int width, height; /* Dimensions of the image. */ + int radius; /* Radius for rounded corners. */ + int ring; /* Thickness of the focus ring. */ + double alpha; /* Transparency, between 0.0 and 1.0*/ + char *imageName ; /* Malloc'ed image name. */ + char *source; /* Malloc'ed string describing the image. */ + char *as; /* Malloc'ed interpretation of source */ + int flags; /* Sundry flags, defined below. */ + bool pressed; /* Image is for use in a pressed button.*/ + bool templ; /* Image is for use as a template.*/ + TkMacOSXNSImageInstance *instancePtr; /* Start of list of instances associated + * with this model. */ + NSImage *image; /* The underlying NSImage object. */ + NSImage *darkModeImage; /* A modified image to use in Dark Mode. */ +}; + +/* + * Bit definitions for the flags field of a TkMacOSXNSImageModel. + * IMAGE_CHANGED: 1 means that the instances of this image need + * to be redisplayed. + */ + +#define IMAGE_CHANGED 1 + +/* + * The type record for nsimage images: + */ + +static int TkMacOSXNSImageCreate(Tcl_Interp *interp, + const char *name, Tcl_Size objc, Tcl_Obj *const objv[], + const Tk_ImageType *typePtr, Tk_ImageModel model, + void **clientDataPtr); +static void *TkMacOSXNSImageGet(Tk_Window tkwin, void *clientData); +static void TkMacOSXNSImageDisplay(void *clientData, + Display *display, Drawable drawable, + int imageX, int imageY, int width, + int height, int drawableX, + int drawableY); +static void TkMacOSXNSImageFree(void *clientData, Display *display); +static void TkMacOSXNSImageDelete(void *clientData); + +static Tk_ImageType TkMacOSXNSImageType = { + "nsimage", /* name of image type */ + TkMacOSXNSImageCreate, /* createProc */ + TkMacOSXNSImageGet, /* getProc */ + TkMacOSXNSImageDisplay, /* displayProc */ + TkMacOSXNSImageFree, /* freeProc */ + TkMacOSXNSImageDelete, /* deleteProc */ + NULL, /* postscriptPtr */ + NULL, /* nextPtr */ + NULL +}; + +/* + * Default values used for parsing configuration specifications: + */ +#define DEF_SOURCE "" +#define DEF_AS "name" +#define DEF_HEIGHT "0" +#define DEF_WIDTH "0" +#define DEF_RADIUS "0" +#define DEF_RING "0" +#define DEF_ALPHA "1.0" +#define DEF_PRESSED "0" +#define DEF_TEMPLATE "0" + +static const Tk_OptionSpec systemImageOptions[] = { + {TK_OPTION_STRING, "-source", NULL, NULL, DEF_SOURCE, + -1, offsetof(TkMacOSXNSImageModel, source), 0, NULL, 0}, + {TK_OPTION_STRING, "-as", NULL, NULL, DEF_AS, + -1, offsetof(TkMacOSXNSImageModel, as), 0, NULL, 0}, + {TK_OPTION_INT, "-width", NULL, NULL, DEF_WIDTH, + -1, offsetof(TkMacOSXNSImageModel, width), 0, NULL, 0}, + {TK_OPTION_INT, "-height", NULL, NULL, DEF_HEIGHT, + -1, offsetof(TkMacOSXNSImageModel, height), 0, NULL, 0}, + {TK_OPTION_INT, "-radius", NULL, NULL, DEF_RADIUS, + -1, offsetof(TkMacOSXNSImageModel, radius), 0, NULL, 0}, + {TK_OPTION_INT, "-ring", NULL, NULL, DEF_RING, + -1, offsetof(TkMacOSXNSImageModel, ring), 0, NULL, 0}, + {TK_OPTION_DOUBLE, "-alpha", NULL, NULL, DEF_ALPHA, + -1, offsetof(TkMacOSXNSImageModel, alpha), 0, NULL, 0}, + {TK_OPTION_BOOLEAN, "-pressed", NULL, NULL, DEF_PRESSED, + -1, offsetof(TkMacOSXNSImageModel, pressed), TK_OPTION_VAR(bool), NULL, 0}, + {TK_OPTION_BOOLEAN, "-template", NULL, NULL, DEF_TEMPLATE, + -1, offsetof(TkMacOSXNSImageModel, templ), TK_OPTION_VAR(bool), NULL, 0}, + {TK_OPTION_END, NULL, NULL, NULL, NULL, 0, -1, 0, NULL, 0} +}; + +/* + * The -as option specifies how the string provided in the -source + * option should be interpreted as a description of an NSImage. + * Below are the possible values and their meanings. (The last two + * provide the macOS icon for a particular file type.) + */ + +static const char *sourceInterpretations[] = { + "name", /* A name for a named NSImage. */ + "file", /* A path to an image file. */ + "path", /* A path to a file whose type should be examined. */ + "filetype", /* A file extension or 4-byte OSCode. */ +}; + +enum {NAME_SOURCE, FILE_SOURCE, PATH_SOURCE, FILETYPE_SOURCE}; + + +/* + *---------------------------------------------------------------------- + * + * TintImage -- + * + * Modify an NSImage by blending it with a color. The transparent part of + * the image remains transparent. The opaque part of the image is painted + * with the color, using the specified alpha value for the transparency of + * the color. + * + * Results: + * None. + * + * Side effects: + * The appearance of the NSImage changes. + * + *---------------------------------------------------------------------- + */ + +static void TintImage( + NSImage *image, + NSColor *color, + double alpha) +{ + NSSize size = [image size]; + NSRect rect = {NSZeroPoint, size}; + NSImage *mask = [[[NSImage alloc] initWithSize:size] retain]; + [mask lockFocus]; + [color set]; + NSRectFillUsingOperation(rect, NSCompositeCopy); + [image drawInRect:rect + fromRect:rect + operation:NSCompositeDestinationIn + fraction:1.0]; + [mask unlockFocus]; + [image lockFocus]; + [mask drawInRect:rect + fromRect:rect + operation:NSCompositeSourceOver + fraction:alpha]; + [image unlockFocus]; + [mask release]; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageConfigureModel -- + * + * This function is called when an nsimage image is created or + * reconfigured. It processes configuration options and resets any + * instances of the image. + * + * Results: + * A standard Tcl return value. If TCL_ERROR is returned then an error + * message is left in the modelPtr->interp's result. + * + * Side effects: + * Existing instances of the image will be redisplayed to match the new + * configuration options. + * + *---------------------------------------------------------------------- + */ + +static int +TkMacOSXNSImageConfigureModel( + Tcl_Interp *interp, /* Interpreter to use for reporting errors. */ + TkMacOSXNSImageModel *modelPtr, /* Pointer to data structure describing + * overall photo image to (re)configure. */ + Tcl_Size objc, /* Number of entries in objv. */ + Tcl_Obj *const objv[]) /* Pairs of configuration options for image. */ +{ + Tk_OptionTable optionTable = Tk_CreateOptionTable(interp, systemImageOptions); + NSImage *newImage; + Tcl_Obj *objPtr; + static Tcl_Obj *asOption = NULL; + int sourceInterpretation; + NSString *source; + int oldWidth = modelPtr->width, oldHeight = modelPtr->height; + + if (asOption == NULL) { + asOption = Tcl_NewStringObj("-as", TCL_INDEX_NONE); + Tcl_IncrRefCount(asOption); + } + + modelPtr->width = 0; + modelPtr->height = 0; + if (Tk_SetOptions(interp, modelPtr, optionTable, objc, objv, + NULL, NULL, NULL) != TCL_OK){ + goto errorExit; + } + if (modelPtr->width == 0 && modelPtr->height == 0) { + modelPtr->width = oldWidth; + modelPtr->height = oldHeight; + } + + if (modelPtr->source == NULL || modelPtr->source[0] == '0') { + Tcl_SetObjResult(interp, Tcl_NewStringObj("-source is required.", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SYSTEM", "BAD_VALUE", NULL); + goto errorExit; + } + + objPtr = Tk_GetOptionValue(interp, (char *) modelPtr, optionTable, + asOption, NULL); + if (Tcl_GetIndexFromObj(interp, objPtr, sourceInterpretations, "option", + 0, &sourceInterpretation) != TCL_OK) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Unknown interpretation for source in -as option. " + "Should be name, file, path, or filetype.", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SYSTEM", "BAD_VALUE", NULL); + goto errorExit; + } + + source = [[NSString alloc] initWithUTF8String: modelPtr->source]; + switch (sourceInterpretation) { + case NAME_SOURCE: + newImage = [[NSImage imageNamed:source] copy]; + break; + case FILE_SOURCE: + newImage = [[NSImage alloc] initWithContentsOfFile:source]; + break; + case PATH_SOURCE: + newImage = [[NSWorkspace sharedWorkspace] iconForFile:source]; + break; + case FILETYPE_SOURCE: + newImage = TkMacOSXIconForFileType(source); + break; + default: + newImage = NULL; + break; + } + [source release]; + if (newImage) { + NSSize size = NSMakeSize(modelPtr->width - 2*modelPtr->ring, + modelPtr->height - 2*modelPtr->ring); + [modelPtr->image release]; + [modelPtr->darkModeImage release]; + newImage.size = size; + modelPtr->image = [newImage retain]; + if (modelPtr->templ) { + newImage.template = YES; + } + modelPtr->darkModeImage = [[newImage copy] retain]; + if ([modelPtr->darkModeImage isTemplate]) { + + /* + * For a template image the Dark Mode version should be white. + */ + + NSRect rect = {NSZeroPoint, size}; + [modelPtr->darkModeImage lockFocus]; + [[NSColor whiteColor] set]; + NSRectFillUsingOperation(rect, NSCompositeSourceAtop); + [modelPtr->darkModeImage unlockFocus]; + } else if (modelPtr->pressed) { + + /* + * Non-template pressed images are darker in Light Mode and lighter + * in Dark Mode. + */ + + TintImage(modelPtr->image, [NSColor blackColor], 0.2); + TintImage(modelPtr->darkModeImage, [NSColor whiteColor], 0.5); + } + } else { + switch(sourceInterpretation) { + case NAME_SOURCE: + Tcl_SetObjResult(interp, Tcl_NewStringObj("Unknown named NSImage.\n" + "Try omitting ImageName, " + "e.g. use NSCaution for NSImageNameCaution.", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SYSTEM", "BAD_VALUE", NULL); + goto errorExit; + case FILE_SOURCE: + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Failed to load image file.\n", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SYSTEM", "BAD_VALUE", NULL); + goto errorExit; + default: + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Unrecognized file type.\n" + "If using a filename extension, do not include the dot.\n", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "IMAGE", "SYSTEM", "BAD_VALUE", NULL); + goto errorExit; + } + } + + /* + * Set the width and height. If only one is specified, set the other one + * so as to preserve the aspect ratio. If neither is specified, match the + * size of the image. + */ + + if (modelPtr->width == 0 && modelPtr->height == 0) { + CGSize size = [modelPtr->image size]; + modelPtr->width = (int) size.width; + modelPtr->height = (int) size.height; + } else { + CGSize size = [modelPtr->image size], newsize; + CGFloat aspect = size.width && size.height ? + size.height / size.width : 1; + if (modelPtr->width == 0) { + modelPtr->width = (int) ((CGFloat)(modelPtr->height) / aspect); + } else if (modelPtr->height == 0) { + modelPtr->height = (int) ((CGFloat)(modelPtr->width) * aspect); + } + newsize = NSMakeSize(modelPtr->width, modelPtr->height); + modelPtr->image.size = newsize; + modelPtr->darkModeImage.size = newsize; + } + + /* + * Inform the generic image code that the image has (potentially) changed. + */ + + Tk_ImageChanged(modelPtr->tkModel, 0, 0, modelPtr->width, + modelPtr->height, modelPtr->width, modelPtr->height); + modelPtr->flags &= ~IMAGE_CHANGED; + + return TCL_OK; + + errorExit: + return TCL_ERROR; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageObjCmd -- + * + * This function implements the configure and cget commands for an + * nsimage instance. + * + * Results: + * A standard Tcl result. + * + * Side effects: + * The image may be reconfigured. + * + *---------------------------------------------------------------------- + */ + +int +TkMacOSXNSImageObjCmd( + void *clientData, /* Information about the image model. */ + Tcl_Interp *interp, /* Current interpreter. */ + int objc, /* Number of arguments. */ + Tcl_Obj *const objv[]) /* Argument objects. */ +{ + TkMacOSXNSImageModel *modelPtr = (TkMacOSXNSImageModel *)clientData; + Tk_OptionTable optionTable = Tk_CreateOptionTable(interp, systemImageOptions); + static const char *const options[] = {"cget", "configure", NULL}; + enum {CGET, CONFIGURE}; + Tcl_Obj *objPtr; + int index; + + if (objc < 2) { + Tcl_WrongNumArgs(interp, 1, objv, "option ?arg ...?"); + return TCL_ERROR; + } + if (Tcl_GetIndexFromObjStruct(interp, objv[1], options, + sizeof(char *), "option", 0, &index) != TCL_OK) { + return TCL_ERROR; + } + Tcl_Preserve(modelPtr); + switch (index) { + case CGET: + if (objc != 3) { + Tcl_WrongNumArgs(interp, 2, objv, "option"); + return TCL_ERROR; + } + objPtr = Tk_GetOptionValue(interp, (char *)modelPtr, optionTable, + objv[2], NULL); + if (objPtr == NULL) { + goto error; + } + Tcl_SetObjResult(interp, objPtr); + break; + case CONFIGURE: + if (objc == 2) { + objPtr = Tk_GetOptionInfo(interp, (char *)modelPtr, optionTable, + NULL, NULL); + if (objPtr == NULL) { + goto error; + } + Tcl_SetObjResult(interp, objPtr); + break; + } else if (objc == 3) { + objPtr = Tk_GetOptionInfo(interp, (char *)modelPtr, optionTable, + objv[2], NULL); + if (objPtr == NULL) { + goto error; + } + Tcl_SetObjResult(interp, objPtr); + break; + } else { + TkMacOSXNSImageConfigureModel(interp, modelPtr, objc - 2, objv + 2); + break; + } + default: + break; + } + + Tcl_Release(modelPtr); + return TCL_OK; + + error: + Tcl_Release(modelPtr); + return TCL_ERROR; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageCreate -- + * + * Allocate and initialize an nsimage model. + * + * Results: + * A standard Tcl result. + * + * Side effects: + * The data structure for a new image is allocated. + * + *---------------------------------------------------------------------- + */ + +static int +TkMacOSXNSImageCreate( + Tcl_Interp *interp, /* Interpreter for application using image. */ + const char *name, /* Name to use for image. */ + Tcl_Size objc, /* Number of arguments. */ + Tcl_Obj *const objv[], /* Argument strings for options (not + * including image name or type). */ + TCL_UNUSED(const Tk_ImageType *), /* typePtr */ + Tk_ImageModel model, /* Token for image, to be used in callbacks. */ + void **clientDataPtr) /* Store manager's token for image here; it + * will be returned in later callbacks. */ +{ + TkMacOSXNSImageModel *modelPtr; + Tk_OptionTable optionTable = Tk_CreateOptionTable(interp, systemImageOptions); + + modelPtr = (TkMacOSXNSImageModel *)ckalloc(sizeof(TkMacOSXNSImageModel)); + modelPtr->tkModel = model; + modelPtr->interp = interp; + modelPtr->imageName = (char *)ckalloc(strlen(name) + 1); + strcpy(modelPtr->imageName, name); + modelPtr->flags = 0; + modelPtr->instancePtr = NULL; + modelPtr->image = NULL; + modelPtr->darkModeImage = NULL; + modelPtr->source = NULL; + modelPtr->as = NULL; + + /* + * Process configuration options given in the image create command. + */ + + if (Tk_InitOptions(interp, (char *) modelPtr, optionTable, NULL) != TCL_OK + || TkMacOSXNSImageConfigureModel(interp, modelPtr, objc, objv) != TCL_OK) { + TkMacOSXNSImageDelete(modelPtr); + return TCL_ERROR; + } + Tcl_CreateObjCommand(interp, name, TkMacOSXNSImageObjCmd, modelPtr, NULL); + *clientDataPtr = modelPtr; + return TCL_OK; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageGet -- + * + * Allocate and initialize an nsimage instance. + * + * Results: + * The return value is a token for the image instance, which is used in + * future callbacks to ImageDisplay and ImageFree. + * + * Side effects: + * A new new nsimage instance is created. + * + *---------------------------------------------------------------------- + */ + +static void * +TkMacOSXNSImageGet( + TCL_UNUSED(Tk_Window), /* tkwin */ + void *clientData) /* Pointer to TkMacOSXNSImageModel for image. */ +{ + TkMacOSXNSImageModel *modelPtr = (TkMacOSXNSImageModel *) clientData; + TkMacOSXNSImageInstance *instPtr; + + instPtr = (TkMacOSXNSImageInstance *)ckalloc(sizeof(TkMacOSXNSImageInstance)); + instPtr->modelPtr = modelPtr; + return instPtr; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageDisplay -- + * + * Display or redisplay an nsimage in the given drawable. + * + * Results: + * None. + * + * Side effects: + * The image gets drawn. + * + *---------------------------------------------------------------------- + */ + +static void +TkMacOSXNSImageDisplay( + void *clientData, /* Pointer to TkMacOSXNSImageInstance for image. */ + TCL_UNUSED(Display *), /* display */ + Drawable drawable, /* Where to draw or redraw image. */ + int imageX, int imageY, /* Origin of area to redraw, relative to + * origin of image. */ + int width, int height, /* Dimensions of area to redraw. */ + int drawableX, int drawableY) + /* Coordinates in drawable corresponding to + * imageX and imageY. */ +{ + MacDrawable *macWin = (MacDrawable *) drawable; + Tk_Window tkwin = (Tk_Window) macWin->winPtr; + TkMacOSXNSImageInstance *instPtr = (TkMacOSXNSImageInstance *) clientData; + TkMacOSXNSImageModel *modelPtr = instPtr->modelPtr; + TkMacOSXDrawingContext dc; + NSRect dstRect = NSMakeRect(macWin->xOff + drawableX, + macWin->yOff + drawableY, width, height); + NSRect srcRect = NSMakeRect(imageX, imageY, width, height); + NSImage *image = TkMacOSXInDarkMode(tkwin) ? modelPtr->darkModeImage : + modelPtr->image; + int ring = modelPtr->ring; + int radius = modelPtr->radius; + + if (TkMacOSXSetupDrawingContext(drawable, NULL, &dc)) { + if (dc.context) { + CGRect clipRect = CGRectMake( + dstRect.origin.x - srcRect.origin.x + ring, + dstRect.origin.y - srcRect.origin.y + ring, + modelPtr->width - 2*ring, + modelPtr->height - 2*ring); + CGPathRef path = CGPathCreateWithRoundedRect(clipRect, radius, radius, NULL); + CGContextSaveGState(dc.context); + CGContextBeginPath(dc.context); + CGContextAddPath(dc.context, path); + CGContextClip(dc.context); + NSGraphicsContext *savedContext = NSGraphicsContext.currentContext; + NSGraphicsContext.currentContext = [NSGraphicsContext + graphicsContextWithCGContext:dc.context flipped:YES]; + [image drawInRect:clipRect + fromRect:srcRect + operation:NSCompositeSourceOver + fraction:modelPtr->alpha + respectFlipped:YES + hints:nil]; + CGContextRestoreGState(dc.context); + + /* + * Draw the focus ring. + */ + + if (ring) { + CGRect ringRect = CGRectInset(clipRect, -ring, -ring); + CGPathRef ringPath = CGPathCreateWithRoundedRect(ringRect, + radius + ring, radius + ring, NULL); + CGContextSaveGState(dc.context); + CGContextAddPath(dc.context, path); + CGContextAddPath(dc.context, ringPath); + CGContextSetFillColorWithColor(dc.context, + controlAccentColor().CGColor); + CGContextEOFillPath(dc.context); + CGContextRestoreGState(dc.context); + CFRelease(ringPath); + } + CFRelease(path); + NSGraphicsContext.currentContext = savedContext; + } + TkMacOSXRestoreDrawingContext(&dc); + } +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageFree -- + * + * Deallocate an instance of an nsimage. + * + * Results: + * None. + * + * Side effects: + * Information related to the instance is freed. + * + *---------------------------------------------------------------------- + */ + +static void +TkMacOSXNSImageFree( + void *clientData, /* Pointer to TkMacOSXNSImageInstance for instance. */ + TCL_UNUSED(Display *)) /* display */ +{ + TkMacOSXNSImageInstance *instPtr = (TkMacOSXNSImageInstance *) clientData; + ckfree(instPtr); +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImageDelete -- + * + * Deallocate an nsimage model. + * + * Results: + * None. + * + * Side effects: + * NSImages are released and memory is freed. + * + *---------------------------------------------------------------------- + */ + +static void +TkMacOSXNSImageDelete( + void *clientData) /* Pointer to TkMacOSXNSImageModel for image. When + * this function is called, no more instances + * exist. */ +{ + TkMacOSXNSImageModel *modelPtr = (TkMacOSXNSImageModel *) clientData; + + Tcl_DeleteCommand(modelPtr->interp, modelPtr->imageName); + ckfree(modelPtr->imageName); + ckfree(modelPtr->source); + ckfree(modelPtr->as); + [modelPtr->image release]; + [modelPtr->darkModeImage release]; + ckfree(modelPtr); +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXNSImage_Init -- + * + * Adds the TkMacOSXNSImage type to Tk. + * + * Results: + * Returns a standard Tcl completion code, and leaves an error message in + * the interp's result if an error occurs. + * + * Side effects: + * Creates the image create nsrect ... command. + * + *---------------------------------------------------------------------- + */ + +int +TkMacOSXNSImage_Init( + TCL_UNUSED(Tcl_Interp *)) /* interp */ +{ + Tk_CreateImageType(&TkMacOSXNSImageType); + return 1; +} + /* * Local Variables: * mode: objc diff --git a/macosx/tkMacOSXImage.h b/macosx/tkMacOSXImage.h new file mode 100644 index 0000000..f51593b --- /dev/null +++ b/macosx/tkMacOSXImage.h @@ -0,0 +1,22 @@ +/* + * tkMacOSXImage.h -- + * + * + * The code in this file provides an interface for XImages, and + * implements the nsimage image type. + * + * Copyright © 1995-1997 Sun Microsystems, Inc. + * Copyright © 2001-2009 Apple Inc. + * Copyright © 2005-2009 Daniel A. Steffen <das@users.sourceforge.net> + * Copyright © 2017-2021 Marc Culler. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +/* + * Function prototypes + */ + +MODULE_SCOPE CFDataRef CreatePDFFromDrawableRect( Drawable drawable, + int x, int y, unsigned int width, unsigned int height); diff --git a/macosx/tkMacOSXInit.c b/macosx/tkMacOSXInit.c index e6a6835..03a05fc 100644 --- a/macosx/tkMacOSXInit.c +++ b/macosx/tkMacOSXInit.c @@ -33,8 +33,8 @@ static char scriptPath[PATH_MAX + 1] = ""; * Forward declarations... */ -static int TkMacOSXGetAppPathCmd(ClientData cd, Tcl_Interp *ip, - int objc, Tcl_Obj *const objv[]); +static Tcl_ObjCmdProc TkMacOSXGetAppPathObjCmd; +static Tcl_ObjCmdProc TkMacOSVersionObjCmd; #pragma mark TKApplication(TKInit) @@ -42,7 +42,7 @@ static int TkMacOSXGetAppPathCmd(ClientData cd, Tcl_Interp *ip, @synthesize poolLock = _poolLock; @synthesize macOSVersion = _macOSVersion; @synthesize isDrawing = _isDrawing; -@synthesize needsToDraw = _needsToDraw; +@synthesize isSigned = _isSigned; @synthesize tkLiveResizeEnded = _tkLiveResizeEnded; @synthesize tkPointerWindow = _tkPointerWindow; - (void) setTkPointerWindow: (TkWindow *)winPtr @@ -200,6 +200,12 @@ static int TkMacOSXGetAppPathCmd(ClientData cd, Tcl_Interp *ip, [self _setupMenus]; /* + * Run initialization routines that depend on the OS version. + */ + + Ttk_MacOSXInit(); + + /* * It is not safe to force activation of the NSApp until this method is * called. Activating too early can cause the menu bar to be unresponsive. * The call to activateIgnoringOtherApps was moved here to avoid this. @@ -607,12 +613,13 @@ TkpInit( } /* - * Initialize the NSServices object here. Apple's docs say to do this - * in applicationDidFinishLaunching, but the Tcl interpreter is not - * initialized until this function call. + * Now we can run initialization routines which require that both the + * NSApplication and the Tcl interpreter have been created and + * initialized. */ TkMacOSXServices_Init(interp); + TkMacOSXNSImage_Init(interp); /* * The root window has been created and mapped, but XMapWindow deferred its @@ -648,7 +655,6 @@ TkpInit( signal(SIGHUP, TkMacOSXSignalHandler); signal(SIGTERM, TkMacOSXSignalHandler); } - /* * Initialization steps that are needed for all interpreters. */ @@ -660,12 +666,67 @@ TkpInit( Tcl_SetVar2(interp, "auto_path", NULL, scriptPath, TCL_GLOBAL_ONLY|TCL_LIST_ELEMENT|TCL_APPEND_VALUE); } + Tcl_CreateObjCommand(interp, "nsimage", + TkMacOSXNSImageObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "::tk::mac::standardAboutPanel", TkMacOSXStandardAboutPanelObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "::tk::mac::iconBitmap", TkMacOSXIconBitmapObjCmd, NULL, NULL); Tcl_CreateObjCommand(interp, "::tk::mac::GetAppPath", - TkMacOSXGetAppPathCmd, NULL, NULL); + TkMacOSXGetAppPathObjCmd, NULL, NULL); + Tcl_CreateObjCommand(interp, "::tk::mac::macOSVersion", + TkMacOSVersionObjCmd, NULL, NULL); + MacSystrayInit(interp); + MacPrint_Init(interp); + + return TCL_OK; +} + +/* + *---------------------------------------------------------------------- + * + * TkMacOSXGetAppPathObjCmd -- + * + * Returns the path of the Wish application bundle. + * + * Results: + * Returns the application path. + * + * Side effects: + * None. + * + *---------------------------------------------------------------------- + */ + +static int +TkMacOSXGetAppPathObjCmd( + TCL_UNUSED(void *), + Tcl_Interp *interp, + int objc, + Tcl_Obj *const objv[]) +{ + if (objc != 1) { + Tcl_WrongNumArgs(interp, 1, objv, NULL); + return TCL_ERROR; + } + + /* + * Get the application path URL and convert it to a string path reference. + */ + + CFURLRef mainBundleURL = CFBundleCopyBundleURL(CFBundleGetMainBundle()); + CFStringRef appPath = + CFURLCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle); + + /* + * Convert (and copy) the string reference into a Tcl result. + */ + + Tcl_SetObjResult(interp, Tcl_NewStringObj( + CFStringGetCStringPtr(appPath, CFStringGetSystemEncoding()), TCL_INDEX_NONE)); + + CFRelease(mainBundleURL); + CFRelease(appPath); return TCL_OK; } @@ -704,54 +765,43 @@ TkpGetAppName( name = p+1; } } - Tcl_DStringAppend(namePtr, name, -1); + Tcl_DStringAppend(namePtr, name, TCL_INDEX_NONE); } /* *---------------------------------------------------------------------- * - * TkMacOSXGetAppPathCmd -- + * TkMacOSVersionObjCmd -- * - * Returns the path of the Wish application bundle. + * Tcl command which returns an integer encoding the major and minor + * version numbers of the currently running operating system in the + * form 10000*majorVersion + 100*minorVersion. * * Results: - * Returns the application path. + * Returns the OS version. * * Side effects: * None. * *---------------------------------------------------------------------- */ - + static int -TkMacOSXGetAppPathCmd( +TkMacOSVersionObjCmd( TCL_UNUSED(void *), Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { - if (objc != 1) { + static char version[16] = ""; + if (objc > 1) { Tcl_WrongNumArgs(interp, 1, objv, NULL); return TCL_ERROR; } - - /* - * Get the application path URL and convert it to a string path reference. - */ - - CFURLRef mainBundleURL = CFBundleCopyBundleURL(CFBundleGetMainBundle()); - CFStringRef appPath = - CFURLCopyFileSystemPath(mainBundleURL, kCFURLPOSIXPathStyle); - - /* - * Convert (and copy) the string reference into a Tcl result. - */ - - Tcl_SetObjResult(interp, Tcl_NewStringObj( - CFStringGetCStringPtr(appPath, CFStringGetSystemEncoding()), -1)); - - CFRelease(mainBundleURL); - CFRelease(appPath); + if (version[0] == '\0') { + snprintf(version, 16, "%d", [NSApp macOSVersion]); + } + Tcl_SetResult(interp, version, NULL); return TCL_OK; } @@ -780,9 +830,9 @@ TkpDisplayWarning( Tcl_Channel errChannel = Tcl_GetStdChannel(TCL_STDERR); if (errChannel) { - Tcl_WriteChars(errChannel, title, -1); + Tcl_WriteChars(errChannel, title, TCL_INDEX_NONE); Tcl_WriteChars(errChannel, ": ", 2); - Tcl_WriteChars(errChannel, msg, -1); + Tcl_WriteChars(errChannel, msg, TCL_INDEX_NONE); Tcl_WriteChars(errChannel, "\n", 1); } } @@ -823,7 +873,7 @@ TkMacOSXDefaultStartupScript(void) if (CFURLGetFileSystemRepresentation(appMainURL, true, (unsigned char *) startupScript, PATH_MAX)) { - Tcl_SetStartupScript(Tcl_NewStringObj(startupScript,-1), NULL); + Tcl_SetStartupScript(Tcl_NewStringObj(startupScript, TCL_INDEX_NONE), NULL); scriptFldrURL = CFURLCreateCopyDeletingLastPathComponent(NULL, appMainURL); if (scriptFldrURL != NULL) { diff --git a/macosx/tkMacOSXInt.h b/macosx/tkMacOSXInt.h index 694308b..29b20f7 100644 --- a/macosx/tkMacOSXInt.h +++ b/macosx/tkMacOSXInt.h @@ -24,7 +24,9 @@ #ifndef _TKMAC #include "tkMacOSX.h" +#define Cursor QDCursor #import <Cocoa/Cocoa.h> +#undef Cursor #endif /* @@ -99,24 +101,6 @@ typedef struct TkWindowPrivate MacDrawable; */ /* - * This structure is for handling Netscape-type in process - * embedding where Tk does not control the top-level. It contains - * various functions that are needed by Mac specific routines, like - * TkMacOSXGetDrawablePort. The definitions of the function types - * are in tkMacOSX.h. - */ - -typedef struct { - Tk_MacOSXEmbedRegisterWinProc *registerWinProc; - Tk_MacOSXEmbedGetGrafPortProc *getPortProc; - Tk_MacOSXEmbedMakeContainerExistProc *containerExistProc; - Tk_MacOSXEmbedGetClipProc *getClipProc; - Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc; -} TkMacOSXEmbedHandler; - -MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler; - -/* * Undef compatibility platform types defined above. */ @@ -176,8 +160,6 @@ MODULE_SCOPE TkMacOSXEmbedHandler *tkMacOSXEmbedHandler; */ MODULE_SCOPE void TkMacOSXDefaultStartupScript(void); -MODULE_SCOPE void TkpClipDrawableToRect(Display *display, Drawable d, int x, - int y, int width, int height); MODULE_SCOPE Bool TkTestLogDisplay(Drawable drawable); /* diff --git a/macosx/tkMacOSXKeyEvent.c b/macosx/tkMacOSXKeyEvent.c index ea48923..a16eb42 100644 --- a/macosx/tkMacOSXKeyEvent.c +++ b/macosx/tkMacOSXKeyEvent.c @@ -344,7 +344,7 @@ static NSUInteger textInputModifiers; if (repRange.location == 0) { Tk_Window focusWin = (Tk_Window)winPtr->dispPtr->focusPtr; - TkSendVirtualEvent(focusWin, "TkAccentBackspace", NULL); + Tk_SendVirtualEvent(focusWin, "TkAccentBackspace", NULL); } /* @@ -456,12 +456,12 @@ static NSUInteger textInputModifiers; * Use our insertText method to display the marked text. */ - TkSendVirtualEvent(focusWin, "TkStartIMEMarkedText", NULL); + Tk_SendVirtualEvent(focusWin, "TkStartIMEMarkedText", NULL); processingCompose = YES; temp = [str copy]; [self insertText: temp replacementRange:repRange]; privateWorkingText = temp; - TkSendVirtualEvent(focusWin, "TkEndIMEMarkedText", NULL); + Tk_SendVirtualEvent(focusWin, "TkEndIMEMarkedText", NULL); } - (BOOL)hasMarkedText @@ -530,7 +530,7 @@ static NSUInteger textInputModifiers; if (aSelector == @selector (deleteBackward:)) { TkWindow *winPtr = TkMacOSXGetTkWindow([self window]); Tk_Window focusWin = (Tk_Window)winPtr->dispPtr->focusPtr; - TkSendVirtualEvent(focusWin, "TkAccentBackspace", NULL); + Tk_SendVirtualEvent(focusWin, "TkAccentBackspace", NULL); } } @@ -558,7 +558,6 @@ static NSUInteger textInputModifiers; - (NSUInteger)characterIndexForPoint: (NSPoint)thePoint { (void)thePoint; - if (NS_KEYLOG) { TKLog(@"characterIndexForPoint request"); } @@ -605,7 +604,7 @@ static NSUInteger textInputModifiers; privateWorkingText = nil; processingCompose = NO; if (composeWin) { - TkSendVirtualEvent(composeWin, "TkClearIMEMarkedText", NULL); + Tk_SendVirtualEvent(composeWin, "TkClearIMEMarkedText", NULL); } } } @@ -669,7 +668,7 @@ setXEventPoint( int win_x, win_y; if (Tk_IsEmbedded(winPtr)) { - TkWindow *contPtr = TkpGetOtherWindow(winPtr); + TkWindow *contPtr = (TkWindow *)Tk_GetOtherWindow(tkwin); if (Tk_IsTopLevel(contPtr)) { local.x -= contPtr->wmInfoPtr->xInParent; local.y -= contPtr->wmInfoPtr->yInParent; @@ -717,17 +716,13 @@ int XGrabKeyboard( Display* display, Window grab_window, - Bool owner_events, - int pointer_mode, - int keyboard_mode, - Time time) + TCL_UNUSED(Bool), + TCL_UNUSED(int), + TCL_UNUSED(int), + TCL_UNUSED(Time)) { keyboardGrabWinPtr = Tk_IdToWindow(display, grab_window); TkWindow *captureWinPtr = (TkWindow *) TkpGetCapture(); - (void)owner_events; - (void)pointer_mode; - (void)keyboard_mode; - (void)time; if (keyboardGrabWinPtr && captureWinPtr) { NSWindow *w = TkMacOSXGetNSWindowForDrawable(grab_window); @@ -767,12 +762,9 @@ XGrabKeyboard( int XUngrabKeyboard( - Display* display, - Time time) + TCL_UNUSED(Display *), + TCL_UNUSED(Time)) { - (void)display; - (void)time; - if (modalSession) { [NSApp endModalSession:modalSession]; modalSession = nil; diff --git a/macosx/tkMacOSXKeyboard.c b/macosx/tkMacOSXKeyboard.c index c92b67a..f02144f 100644 --- a/macosx/tkMacOSXKeyboard.c +++ b/macosx/tkMacOSXKeyboard.c @@ -13,7 +13,7 @@ */ #include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXConstants.h" #include "tkMacOSXKeysyms.h" @@ -464,7 +464,7 @@ XkbKeycodeToKeysym( KeySym XKeycodeToKeysym( TCL_UNUSED(Display *), - KeyCode keycode, + unsigned int keycode, int index) { return XkbKeycodeToKeysym(NULL, keycode, 0, index); diff --git a/macosx/tkMacOSXMenu.c b/macosx/tkMacOSXMenu.c index b510422..1908bb9 100644 --- a/macosx/tkMacOSXMenu.c +++ b/macosx/tkMacOSXMenu.c @@ -91,9 +91,6 @@ static const struct { #undef ACCEL #undef sl -static int gNoTkMenus = 0; /* This is used by Tk_MacOSXTurnOffMenus as - * the flag that Tk is not to draw any - * menus. */ static Bool inPostMenu = false; static SInt32 menuMarkColumnWidth = 0, menuIconTrailingEdgeMargin = 0; static SInt32 menuTextLeadingEdgeMargin = 0, menuTextTrailingEdgeMargin = 0; @@ -177,7 +174,7 @@ TKBackgroundLoop *backgroundLoop = nil; @interface TKMenu(TKMenuPrivate) - (id) initWithTkMenu: (TkMenu *) tkMenu; - (TkMenu *) tkMenu; -- (int) tkIndexOfItem: (NSMenuItem *) menuItem; +- (Tcl_Size) tkIndexOfItem: (NSMenuItem *) menuItem; - (void) insertItem: (NSMenuItem *) newItem atTkIndex: (NSInteger) index; @end @@ -250,7 +247,7 @@ static Bool runMenuCommand = true; - (id) initWithTkMenu: (TkMenu *) tkMenu { NSString *title = [[TKNSString alloc] initWithTclUtfBytes: - Tk_PathName(tkMenu->tkwin) length:-1]; + Tk_PathName(tkMenu->tkwin) length:TCL_INDEX_NONE]; self = [self initWithTitle:title]; [title release]; @@ -277,14 +274,18 @@ static Bool runMenuCommand = true; return (TkMenu *)_tkMenu; } -- (int) tkIndexOfItem: (NSMenuItem *) menuItem +- (Tcl_Size) tkIndexOfItem: (NSMenuItem *) menuItem { - return [self indexOfItem:menuItem] - _tkOffset; + NSInteger index = [self indexOfItem:menuItem]; + if (index < 0 || (NSUInteger) index < _tkOffset) { + return TCL_INDEX_NONE; + } + return ((Tcl_Size)index - (Tcl_Size)_tkOffset); } - (void) insertItem: (NSMenuItem *) newItem atTkIndex: (NSInteger) index { - [super insertItem:newItem atIndex:index + _tkOffset]; + [super insertItem:newItem atIndex:index + (NSInteger)_tkOffset]; _tkItemCount++; } @@ -535,10 +536,6 @@ static Bool runMenuCommand = true; - (void) tkSetMainMenu: (TKMenu *) menu { - if (gNoTkMenus) { - return; - } - TKMenu *applicationMenu = nil; if (menu) { @@ -736,8 +733,16 @@ TkpConfigureMenuEntry( NSMenu *submenu = nil; int imageWidth, imageHeight; GC gc = (mePtr->textGC ? mePtr->textGC : mePtr->menuPtr->textGC); - Tcl_Obj *fontPtr = (mePtr->fontPtr ? mePtr->fontPtr : - mePtr->menuPtr->fontPtr); + Tcl_Obj *fontPtr = (mePtr->fontPtr ? + mePtr->fontPtr : mePtr->menuPtr->fontPtr); + static int initialized = 0; + + if (!initialized) { + TkColor *tkColPtr = TkpGetColor(NULL, DEF_MENU_BG_COLOR); + ckfree(tkColPtr); + tkColPtr = TkpGetColor(NULL, DEF_MENU_FG); + ckfree(tkColPtr); + } if (mePtr->image) { Tk_SizeOfImage(mePtr->image, &imageWidth, &imageHeight); @@ -850,7 +855,7 @@ TkpConfigureMenuEntry( * have been added by the system. See [7185d26cf4]. */ - for (int i = 0; i < menuRefPtr->menuPtr->numEntries; i++) { + for (Tcl_Size i = 0; i < menuRefPtr->menuPtr->numEntries; i++) { TkMenuEntry *submePtr = menuRefPtr->menuPtr->entries[i]; NSMenuItem *item = (NSMenuItem *) submePtr->platformEntryData; [item setEnabled:(submePtr->state != ENTRY_DISABLED)]; @@ -930,7 +935,7 @@ TkpPostMenu( int x, int y, /* The screen coordinates where the top left * corner of the menu, or of the specified * entry, will be located. */ - int index) + Tcl_Size index) { int result; Tk_Window realWin = menuPtr->tkwin; @@ -1024,14 +1029,14 @@ int TkpPostTearoffMenu( TCL_UNUSED(Tcl_Interp *), /* The interpreter this menu lives in */ TkMenu *menuPtr, /* The menu we are posting */ - int x, int y, int index) /* The screen coordinates where the top left + int x, int y, Tcl_Size index) /* The screen coordinates where the top left * corner of the menu, or of the specified * entry, will be located. */ { int vRootX, vRootY, vRootWidth, vRootHeight; int result; - TkActivateMenuEntry(menuPtr, -1); + TkActivateMenuEntry(menuPtr, TCL_INDEX_NONE); TkRecomputeMenu(menuPtr); result = TkPostCommand(menuPtr); if (result != TCL_OK) { @@ -1132,7 +1137,7 @@ TkpSetWindowMenuBar( /* *---------------------------------------------------------------------- * - * TkpSetMainMenubar -- + * Tk_SetMainMenubar -- * * Puts the menu associated with a window into the menubar. Should only be * called when the window is in front. @@ -1152,7 +1157,7 @@ TkpSetWindowMenuBar( */ void -TkpSetMainMenubar( +Tk_SetMainMenubar( Tcl_Interp *interp, /* The interpreter of the application */ Tk_Window tkwin, /* The frame we are setting up */ const char *menuName) /* The name of the menu to put in front. */ @@ -1175,8 +1180,8 @@ TkpSetMainMenubar( if (winPtr->wmInfoPtr && winPtr->wmInfoPtr->menuPtr && - winPtr->wmInfoPtr->menuPtr->masterMenuPtr) { - menubar = winPtr->wmInfoPtr->menuPtr->masterMenuPtr->tkwin; + winPtr->wmInfoPtr->menuPtr->mainMenuPtr) { + menubar = winPtr->wmInfoPtr->menuPtr->mainMenuPtr->tkwin; } /* @@ -1230,25 +1235,25 @@ static void CheckForSpecialMenu( TkMenu *menuPtr) /* The menu we are checking */ { - if (!menuPtr->masterMenuPtr->tkwin) { + if (!menuPtr->mainMenuPtr->tkwin) { return; } for (TkMenuEntry *cascadeEntryPtr = menuPtr->menuRefPtr->parentEntryPtr; cascadeEntryPtr; cascadeEntryPtr = cascadeEntryPtr->nextCascadePtr) { if (cascadeEntryPtr->menuPtr->menuType == MENUBAR - && cascadeEntryPtr->menuPtr->masterMenuPtr->tkwin) { - TkMenu *mainMenuPtr = cascadeEntryPtr->menuPtr->masterMenuPtr; + && cascadeEntryPtr->menuPtr->mainMenuPtr->tkwin) { + TkMenu *mainMenuPtr = cascadeEntryPtr->menuPtr->mainMenuPtr; int i = 0; Tcl_DString ds; Tcl_DStringInit(&ds); - Tcl_DStringAppend(&ds, Tk_PathName(mainMenuPtr->tkwin), -1); + Tcl_DStringAppend(&ds, Tk_PathName(mainMenuPtr->tkwin), TCL_INDEX_NONE); while (specialMenus[i].name) { Tcl_DStringAppend(&ds, specialMenus[i].name, specialMenus[i].len); if (strcmp(Tcl_DStringValue(&ds), - Tk_PathName(menuPtr->masterMenuPtr->tkwin)) == 0) { + Tk_PathName(menuPtr->mainMenuPtr->tkwin)) == 0) { cascadeEntryPtr->entryFlags |= specialMenus[i].flag; } else { cascadeEntryPtr->entryFlags &= ~specialMenus[i].flag; @@ -1291,7 +1296,7 @@ ParseAccelerator( while (1) { i = 0; while (allModifiers[i].name) { - int l = allModifiers[i].len; + size_t l = allModifiers[i].len; if (!strncasecmp(accel, allModifiers[i].name, l) && (accel[l] == '-' || accel[l] == '+')) { @@ -1334,7 +1339,7 @@ ParseAccelerator( if (ch) { return [[[NSString alloc] initWithCharacters:&ch length:1] autorelease]; } else { - return [[[[TKNSString alloc] initWithTclUtfBytes:accel length:-1] autorelease] + return [[[[TKNSString alloc] initWithTclUtfBytes:accel length:TCL_INDEX_NONE] autorelease] lowercaseString]; } } @@ -1397,8 +1402,8 @@ TkpComputeStandardMenuGeometry( Tk_FontMetrics menuMetrics, entryMetrics; int modifierCharWidth, menuModifierCharWidth; int x, y, modifierWidth, labelWidth, indicatorSpace; - int windowWidth, windowHeight, accelWidth; - int i, maxWidth; + int windowWidth, maxWidth, windowHeight, accelWidth; + Tcl_Size i; int entryWidth, maxIndicatorSpace, borderWidth, activeBorderWidth; TkMenuEntry *mePtr; int haveAccel = 0; @@ -1407,7 +1412,7 @@ TkpComputeStandardMenuGeometry( * Do nothing if this menu is a clone. */ - if (menuPtr->tkwin == NULL || menuPtr->masterMenuPtr != menuPtr) { + if (menuPtr->tkwin == NULL || menuPtr->mainMenuPtr != menuPtr) { return; } @@ -1434,7 +1439,7 @@ TkpComputeStandardMenuGeometry( Tk_GetFontMetrics(menuFont, &menuMetrics); menuModifierCharWidth = ModifierCharWidth(menuFont); - for (i = 0; i < (int) menuPtr->numEntries; i++) { + for (i = 0; i < menuPtr->numEntries; i++) { mePtr = menuPtr->entries[i]; if (mePtr->type == CASCADE_ENTRY || mePtr->accelLength > 0) { haveAccel = 1; @@ -1442,7 +1447,7 @@ TkpComputeStandardMenuGeometry( } } - for (i = 0; i < (int) menuPtr->numEntries; i++) { + for (i = 0; i < menuPtr->numEntries; i++) { mePtr = menuPtr->entries[i]; if (mePtr->type == TEAROFF_ENTRY) { continue; @@ -1588,11 +1593,11 @@ GenerateMenuSelectEvent( TkMenu *menuPtr = [menu tkMenu]; if (menuPtr) { - int index = [menu tkIndexOfItem:menuItem]; + Tcl_Size index = [menu tkIndexOfItem:menuItem]; - if (index < 0 || index >= (int) menuPtr->numEntries || + if (index < 0 || index >= menuPtr->numEntries || (menuPtr->entries[index])->state == ENTRY_DISABLED) { - TkActivateMenuEntry(menuPtr, -1); + TkActivateMenuEntry(menuPtr, TCL_INDEX_NONE); } else { TkActivateMenuEntry(menuPtr, index); MenuSelectEvent(menuPtr); @@ -1666,10 +1671,10 @@ void RecursivelyClearActiveMenu( TkMenu *menuPtr) /* The menu to reset. */ { - int i; + Tcl_Size i; - TkActivateMenuEntry(menuPtr, -1); - for (i = 0; i < (int) menuPtr->numEntries; i++) { + TkActivateMenuEntry(menuPtr, TCL_INDEX_NONE); + for (i = 0; i < menuPtr->numEntries; i++) { TkMenuEntry *mePtr = menuPtr->entries[i]; if (mePtr->type == CASCADE_ENTRY @@ -1716,30 +1721,6 @@ TkMacOSXClearMenubarActive(void) /* *---------------------------------------------------------------------- * - * Tk_MacOSXTurnOffMenus -- - * - * Turns off all the menu drawing code. This is more than just disabling - * the "menu" command, this means that Tk will NEVER touch the menubar. - * It is needed in the Plugin, where Tk does not own the menubar. - * - * Results: - * None. - * - * Side effects: - * A flag is set which will disable all menu drawing. - * - *---------------------------------------------------------------------- - */ - -void -Tk_MacOSXTurnOffMenus(void) -{ - gNoTkMenus = 1; -} - -/* - *---------------------------------------------------------------------- - * * TkpMenuInit -- * * Initializes Mac-specific menu data. diff --git a/macosx/tkMacOSXMenubutton.c b/macosx/tkMacOSXMenubutton.c index b677523..ac7befd 100644 --- a/macosx/tkMacOSXMenubutton.c +++ b/macosx/tkMacOSXMenubutton.c @@ -49,7 +49,7 @@ typedef struct MacMenuButton { * Forward declarations for static functions defined later in this file: */ -static void MenuButtonEventProc(ClientData clientData, +static void MenuButtonEventProc(void *clientData, XEvent *eventPtr); static void MenuButtonBackgroundDrawCB(MacMenuButton *ptr, SInt16 depth, Boolean isColorDev); @@ -57,7 +57,7 @@ static void MenuButtonContentDrawCB(ThemeButtonKind kind, const HIThemeButtonDrawInfo *info, MacMenuButton *ptr, SInt16 depth, Boolean isColorDev); -static void MenuButtonEventProc(ClientData clientData, +static void MenuButtonEventProc(void *clientData, XEvent *eventPtr); static void TkMacOSXComputeMenuButtonParams(TkMenuButton *butPtr, ThemeButtonKind *btnkind, @@ -163,7 +163,7 @@ TkpCreateMenuButton( void TkpDisplayMenuButton( - ClientData clientData) /* Information about widget. */ + void *clientData) /* Information about widget. */ { MacMenuButton *mbPtr = (MacMenuButton *)clientData; TkMenuButton *butPtr = (TkMenuButton *)clientData; @@ -270,7 +270,7 @@ TkpComputeMenuButtonGeometry( haveText = 1; Tk_FreeTextLayout(butPtr->textLayout); butPtr->textLayout = Tk_ComputeTextLayout(butPtr->tkfont, - butPtr->text, -1, butPtr->wrapLength, + butPtr->text, TCL_INDEX_NONE, butPtr->wrapLength, butPtr->justify, 0, &butPtr->textWidth, &butPtr->textHeight); txtWidth = butPtr->textWidth; txtHeight = butPtr->textHeight; @@ -682,7 +682,7 @@ MenuButtonContentDrawCB ( static void MenuButtonEventProc( - ClientData clientData, /* Information about window. */ + void *clientData, /* Information about window. */ XEvent *eventPtr) /* Information about event. */ { TkMenuButton *buttonPtr = (TkMenuButton *)clientData; diff --git a/macosx/tkMacOSXMenus.c b/macosx/tkMacOSXMenus.c index 4985623..b1b8bad 100644 --- a/macosx/tkMacOSXMenus.c +++ b/macosx/tkMacOSXMenus.c @@ -199,11 +199,13 @@ static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); - (void) orderFrontStandardAboutPanel: (id) sender { + (void)sender; + if (!_eventInterp || !Tcl_FindCommand(_eventInterp, "tkAboutDialog", NULL, 0) || (GetCurrentEventKeyModifiers() & optionKey)) { [super orderFrontStandardAboutPanel:nil]; } else { - int code = Tcl_EvalEx(_eventInterp, "tkAboutDialog", -1, + int code = Tcl_EvalEx(_eventInterp, "tkAboutDialog", TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { @@ -219,7 +221,7 @@ static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); "::tk::mac::ShowHelp", NULL, 0)) { [super showHelp:sender]; } else { - int code = Tcl_EvalEx(_eventInterp, "::tk::mac::ShowHelp", -1, + int code = Tcl_EvalEx(_eventInterp, "::tk::mac::ShowHelp", TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { @@ -231,12 +233,14 @@ static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); - (void) tkSource: (id) sender { + (void)sender; + if (_eventInterp) { if (Tcl_EvalEx(_eventInterp, "tk_getOpenFile -filetypes {" "{{TCL Scripts} {.tcl} TEXT} {{Text Files} {} TEXT}}", - -1, TCL_EVAL_GLOBAL) == TCL_OK) { + TCL_INDEX_NONE, TCL_EVAL_GLOBAL) == TCL_OK) { Tcl_Obj *path = Tcl_GetObjResult(_eventInterp); - int len; + Tcl_Size len; Tcl_GetStringFromObj(path, &len); if (len) { @@ -256,6 +260,8 @@ static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); - (void) tkDemo: (id) sender { + (void)sender; + if (_eventInterp) { Tcl_Obj *path = GetWidgetDemoPath(_eventInterp); @@ -281,6 +287,8 @@ static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); - (BOOL) validateUserInterfaceItem: (id <NSValidatedUserInterfaceItem>) anItem { + (void)anItem; + return YES; } @@ -322,23 +330,20 @@ static Tcl_Obj * GetWidgetDemoPath( Tcl_Interp *interp) { - Tcl_Obj *libpath, *result = NULL; + Tcl_Obj *result = NULL; - libpath = Tcl_GetVar2Ex(interp, "tk_library", NULL, TCL_GLOBAL_ONLY); - if (libpath) { - Tcl_Obj *demo[2] = { Tcl_NewStringObj("demos", 5), - Tcl_NewStringObj("widget", 6) }; + if (Tcl_EvalEx(interp, "::tk::pkgconfig get demodir,runtime", + TCL_INDEX_NONE, TCL_EVAL_GLOBAL) == TCL_OK) { + Tcl_Obj *libpath, *demo[1] = { Tcl_NewStringObj("widget", 6) }; + libpath = Tcl_GetObjResult(interp); Tcl_IncrRefCount(libpath); Tcl_IncrRefCount(demo[0]); - Tcl_IncrRefCount(demo[1]); - result = Tcl_FSJoinToPath(libpath, 2, demo); - Tcl_DecrRefCount(demo[1]); + result = Tcl_FSJoinToPath(libpath, 1, demo); Tcl_DecrRefCount(demo[0]); Tcl_DecrRefCount(libpath); - } else { - Tcl_ResetResult(interp); } + Tcl_ResetResult(interp); return result; } @@ -360,9 +365,9 @@ GetWidgetDemoPath( void TkMacOSXHandleMenuSelect( - short theMenu, - unsigned short theItem, - int optionKeyPressed) + TCL_UNUSED(short), + TCL_UNUSED(unsigned short), + TCL_UNUSED(int)) { Tcl_Panic("TkMacOSXHandleMenuSelect: Obsolete, no more Carbon!"); } @@ -370,29 +375,6 @@ TkMacOSXHandleMenuSelect( /* *---------------------------------------------------------------------- * - * TkMacOSXInitMenus -- - * - * This procedure initializes the Macintosh menu bar. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInitMenus( - Tcl_Interp *interp) -{ - [NSApp _setupMenus]; -} - -/* - *---------------------------------------------------------------------- - * * GenerateEditEvent -- * * Takes an edit menu item and posts the corasponding a virtual event to diff --git a/macosx/tkMacOSXMouseEvent.c b/macosx/tkMacOSXMouseEvent.c index 9b88eb9..83d2cd2 100644 --- a/macosx/tkMacOSXMouseEvent.c +++ b/macosx/tkMacOSXMouseEvent.c @@ -13,7 +13,7 @@ #include "tkMacOSXPrivate.h" #include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXDebug.h" #include "tkMacOSXConstants.h" @@ -81,7 +81,7 @@ enum { NSEventType eventType = [theEvent type]; TKContentView *contentView = [eventWindow contentView]; NSPoint location = [theEvent locationInWindow]; - NSPoint viewLocation = [contentView convertPoint:location fromView:nil]; + //NSPoint viewLocation = [contentView convertPoint:location fromView:nil]; TkWindow *winPtr = NULL, *grabWinPtr, *scrollTarget = NULL; Tk_Window tkwin = NULL, capture, target; NSPoint local, global; @@ -110,7 +110,8 @@ enum { * window attribute set to nil. */ - if (![eventWindow isMemberOfClass:[TKWindow class]]) { + if (![eventWindow isMemberOfClass:[TKWindow class]] && + ![eventWindow isMemberOfClass:[TKPanel class]]) { if ([theEvent timestamp] == 0) { isTestingEvent = YES; eventWindow = [NSApp keyWindow]; @@ -123,17 +124,20 @@ enum { if (!isTestingEvent && !isMotionEvent) { return theEvent; } - } else if (!NSPointInRect(viewLocation, [contentView bounds])) { + } else if (!NSPointInRect(location, [contentView bounds])) { isOutside = YES; } button = [theEvent buttonNumber] + Button1; + if ((button & -2) == Button2) { + button ^= 1; /* Swap buttons 2/3 */ + } switch (eventType) { case NSRightMouseUp: case NSOtherMouseUp: - buttonState &= ~TkGetButtonMask(button); + buttonState &= ~Tk_GetButtonMask(button); break; case NSLeftMouseDragged: - buttonState |= TkGetButtonMask(button); + buttonState |= Tk_GetButtonMask(button); if (![NSApp tkDragTarget]) { if (isOutside) { ignoreDrags = YES; @@ -153,7 +157,7 @@ enum { isMotionEvent = YES; case NSRightMouseDown: case NSOtherMouseDown: - buttonState |= TkGetButtonMask(button); + buttonState |= Tk_GetButtonMask(button); break; case NSMouseEntered: if (![eventWindow isKeyWindow] || isOutside) { @@ -180,7 +184,7 @@ enum { ignoreDrags = NO; return theEvent; } - buttonState &= ~TkGetButtonMask(Button1); + buttonState &= ~Tk_GetButtonMask(Button1); break; case NSLeftMouseDown: @@ -195,8 +199,8 @@ enum { * Tk_UpdatePointer showing the button as up. */ - if ([NSApp tkButtonState] & TkGetButtonMask(Button1)) { - int fakeState = [NSApp tkButtonState] & ~TkGetButtonMask(Button1); + if ([NSApp tkButtonState] & Tk_GetButtonMask(Button1)) { + int fakeState = [NSApp tkButtonState] & ~Tk_GetButtonMask(Button1); int x = location.x; int y = floor(TkMacOSXZeroScreenHeight() - location.y); Tk_UpdatePointer((Tk_Window) [NSApp tkEventTarget], x, y, fakeState); @@ -236,10 +240,10 @@ enum { NSRect bounds = [contentView bounds]; NSRect grip = NSMakeRect(bounds.size.width - 10, 0, 10, 10); bounds = NSInsetRect(bounds, 2.0, 2.0); - if (!NSPointInRect(viewLocation, bounds)) { + if (!NSPointInRect(location, bounds)) { return theEvent; } - if (NSPointInRect(viewLocation, grip)) { + if (NSPointInRect(location, grip)) { return theEvent; } if ([NSApp tkLiveResizeEnded]) { @@ -272,7 +276,7 @@ enum { target = (Tk_Window) newFocus; } } - buttonState |= TkGetButtonMask(Button1); + buttonState |= Tk_GetButtonMask(Button1); break; case NSMouseMoved: if (eventWindow && eventWindow != [NSApp keyWindow]) { @@ -356,7 +360,7 @@ enum { local.x = floor(local.x); local.y = floor(eventWindow.frame.size.height - local.y); if (Tk_IsEmbedded(winPtr)) { - TkWindow *contPtr = TkpGetOtherWindow(winPtr); + TkWindow *contPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (Tk_IsTopLevel(contPtr)) { local.x -= contPtr->wmInfoPtr->xInParent; local.y -= contPtr->wmInfoPtr->yInParent; @@ -497,7 +501,7 @@ enum { * expects. */ - state |= TkGetButtonMask(Button1); + state |= Tk_GetButtonMask(Button1); } if (eventType == NSMouseEntered) { Tk_UpdatePointer((Tk_Window) [NSApp tkPointerWindow], @@ -539,11 +543,11 @@ enum { Tk_UpdatePointer(target, global.x, global.y, state); } } else { - CGFloat delta; - int coarseDelta; + static unsigned long scrollCounter = 0; + int delta; + CGFloat Delta; + Bool deltaIsPrecise = [theEvent hasPreciseScrollingDeltas]; XEvent xEvent = {0}; - - xEvent.type = MouseWheelEvent; xEvent.xbutton.x = win_x; xEvent.xbutton.y = win_y; xEvent.xbutton.x_root = global.x; @@ -551,24 +555,38 @@ enum { xEvent.xany.send_event = false; xEvent.xany.display = Tk_Display(target); xEvent.xany.window = Tk_WindowId(target); - - delta = [theEvent deltaY]; - if (delta != 0.0) { - coarseDelta = (delta > -1.0 && delta < 1.0) ? - (signbit(delta) ? -1 : 1) : lround(delta); - xEvent.xbutton.state = state; - xEvent.xkey.keycode = coarseDelta; - xEvent.xany.serial = LastKnownRequestProcessed(Tk_Display(tkwin)); - Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); - } - delta = [theEvent deltaX]; - if (delta != 0.0) { - coarseDelta = (delta > -1.0 && delta < 1.0) ? - (signbit(delta) ? -1 : 1) : lround(delta); - xEvent.xbutton.state = state | ShiftMask; - xEvent.xkey.keycode = coarseDelta; - xEvent.xany.serial = LastKnownRequestProcessed(Tk_Display(tkwin)); - Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); + if (deltaIsPrecise) { + int deltaX = [theEvent scrollingDeltaX]; + int deltaY = [theEvent scrollingDeltaY]; + delta = (deltaX << 16) | (deltaY & 0xffff); + if (delta != 0) { + xEvent.type = TouchpadScroll; + xEvent.xbutton.state = state; + xEvent.xkey.keycode = delta; + xEvent.xany.serial = scrollCounter++; + Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); + } + } else { + /* + * A low precision scroll is 120 or -120 wheel units per click. + * Each click generates one event. + */ + Delta = [theEvent scrollingDeltaY]; + if (Delta != 0.0) { + xEvent.type = MouseWheelEvent; + xEvent.xbutton.state = state; + xEvent.xkey.keycode = Delta > 0.0 ? 120 : -120; + xEvent.xany.serial = LastKnownRequestProcessed(Tk_Display(tkwin)); + Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); + } + Delta = [theEvent scrollingDeltaX]; + if (Delta != 0.0) { + xEvent.type = MouseWheelEvent; + xEvent.xbutton.state = state | ShiftMask; + xEvent.xkey.keycode = Delta > 0 ? 120 : -120; + xEvent.xany.serial = LastKnownRequestProcessed(Tk_Display(tkwin)); + Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); + } } } @@ -579,7 +597,7 @@ enum { * the mouse button outside of a posted combobox. See ticket [eb26d4ec8e]. */ - capture = TkMacOSXGetCapture(); + capture = TkpGetCapture(); if (capture && eventType == NSLeftMouseDown) { Tk_Window w; for (w = target; w != NULL; w = Tk_Parent(w)) { @@ -813,7 +831,7 @@ GenerateButtonEvent( if ((medPtr->activeNonFloating == NULL) || ((!(TkpIsWindowFloating(medPtr->whichWin)) && (medPtr->activeNonFloating != medPtr->whichWin)) - && TkMacOSXGetCapture() == NULL)) { + && TkpGetCapture() == NULL)) { return false; } #endif @@ -902,7 +920,7 @@ TkpSetCapture( /* *---------------------------------------------------------------------- * - * TkMacOSXGetCapture -- + * TkpGetCapture -- * * Results: * Returns the current grab window @@ -914,7 +932,7 @@ TkpSetCapture( */ Tk_Window -TkMacOSXGetCapture(void) +TkpGetCapture(void) { return captureWinPtr; } diff --git a/macosx/tkMacOSXNotify.c b/macosx/tkMacOSXNotify.c index 8a295c6..0927024 100644 --- a/macosx/tkMacOSXNotify.c +++ b/macosx/tkMacOSXNotify.c @@ -14,9 +14,10 @@ */ #include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXConstants.h" - +#if TCL_MAJOR_VERSION < 9 +#undef Tcl_MacOSXNotifierAddRunLoopMode #ifdef USE_TCL_STUBS #ifdef __cplusplus extern "C" { @@ -24,7 +25,7 @@ extern "C" { /* Little hack to eliminate the need for "tclInt.h" here: Just copy a small portion of TclIntPlatStubs, just enough to make it work. See [600b72bfbc] */ -typedef struct { +typedef struct TclIntPlatStubs { int magic; void *hooks; void (*dummy[19]) (void); /* dummy entries 0-18, not used */ @@ -34,13 +35,14 @@ extern const TclIntPlatStubs *tclIntPlatStubsPtr; #ifdef __cplusplus } #endif -#define TclMacOSXNotifierAddRunLoopMode \ +#define Tcl_MacOSXNotifierAddRunLoopMode \ (tclIntPlatStubsPtr->tclMacOSXNotifierAddRunLoopMode) /* 19 */ #elif TCL_MINOR_VERSION < 7 extern void TclMacOSXNotifierAddRunLoopMode(const void *runLoopMode); +# define Tcl_MacOSXNotifierAddRunLoopMode TclMacOSXNotifierAddRunLoopMode #else extern void Tcl_MacOSXNotifierAddRunLoopMode(const void *runLoopMode); -# define TclMacOSXNotifierAddRunLoopMode Tcl_MacOSXNotifierAddRunLoopMode +#endif #endif #import <objc/objc-auto.h> @@ -53,9 +55,9 @@ static Tcl_ThreadDataKey dataKey; #define TSD_INIT() ThreadSpecificData *tsdPtr = (ThreadSpecificData *) \ Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)) -static void TkMacOSXNotifyExitHandler(ClientData clientData); -static void TkMacOSXEventsSetupProc(ClientData clientData, int flags); -static void TkMacOSXEventsCheckProc(ClientData clientData, int flags); +static void TkMacOSXNotifyExitHandler(void *clientData); +static void TkMacOSXEventsSetupProc(void *clientData, int flags); +static void TkMacOSXEventsCheckProc(void *clientData, int flags); #ifdef TK_MAC_DEBUG_EVENTS static const char *Tk_EventName[39] = { @@ -102,7 +104,7 @@ static const char *Tk_EventName[39] = { static Tk_RestrictAction InspectQueueRestrictProc( - ClientData arg, + void *arg, XEvent *eventPtr) { XVirtualEvent* ve = (XVirtualEvent*) eventPtr; @@ -126,7 +128,7 @@ InspectQueueRestrictProc( void DebugPrintQueue(void) { - ClientData oldArg; + void *oldArg; Tk_RestrictProc *oldProc; oldProc = Tk_RestrictEvents(InspectQueueRestrictProc, NULL, &oldArg); @@ -181,7 +183,7 @@ void DebugPrintQueue(void) * this block should be removed. */ -# if MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101500 if ([theEvent type] == NSAppKitDefined) { static Bool aWindowIsMoving = NO; switch([theEvent subtype]) { @@ -294,8 +296,8 @@ Tk_MacOSXSetupTkNotifier(void) Tcl_CreateEventSource(TkMacOSXEventsSetupProc, TkMacOSXEventsCheckProc, NULL); TkCreateExitHandler(TkMacOSXNotifyExitHandler, NULL); - TclMacOSXNotifierAddRunLoopMode(NSEventTrackingRunLoopMode); - TclMacOSXNotifierAddRunLoopMode(NSModalPanelRunLoopMode); + Tcl_MacOSXNotifierAddRunLoopMode(NSEventTrackingRunLoopMode); + Tcl_MacOSXNotifierAddRunLoopMode(NSModalPanelRunLoopMode); } } } @@ -319,7 +321,7 @@ Tk_MacOSXSetupTkNotifier(void) static void TkMacOSXNotifyExitHandler( - ClientData clientData) /* Not used. */ + TCL_UNUSED(void *)) /* Not used. */ { TSD_INIT(); @@ -366,7 +368,7 @@ TkMacOSXNotifyExitHandler( void TkMacOSXDrawAllViews( - ClientData clientData) + void *clientData) { int count = 0, *dirtyCount = (int *)clientData; @@ -438,7 +440,7 @@ static Tcl_TimerToken ticker = NULL; static void Heartbeat( - ClientData clientData) + TCL_UNUSED(void *)) { if (ticker) { @@ -450,7 +452,7 @@ static const Tcl_Time zeroBlockTime = { 0, 0 }; static void TkMacOSXEventsSetupProc( - ClientData clientData, + TCL_UNUSED(void *), int flags) { NSString *runloopMode = [[NSRunLoop currentRunLoop] currentMode]; @@ -516,7 +518,7 @@ TkMacOSXEventsSetupProc( */ static void TkMacOSXEventsCheckProc( - ClientData clientData, + TCL_UNUSED(void *), int flags) { NSString *runloopMode = [[NSRunLoop currentRunLoop] currentMode]; diff --git a/macosx/tkMacOSXPort.h b/macosx/tkMacOSXPort.h index 2f4a6d3..c56e7cf 100644 --- a/macosx/tkMacOSXPort.h +++ b/macosx/tkMacOSXPort.h @@ -25,7 +25,6 @@ #include <math.h> #include <string.h> #include <limits.h> -#include <stdlib.h> #include <sys/types.h> #include <sys/file.h> #ifdef HAVE_SYS_SELECT_H @@ -39,9 +38,7 @@ # include <sys/time.h> #endif #include <time.h> -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif +#include <inttypes.h> #include <unistd.h> #if defined(__GNUC__) && !defined(__cplusplus) # pragma GCC diagnostic ignored "-Wc++-compat" @@ -118,26 +115,6 @@ #define REDO_KEYSYM_LOOKUP /* - * Defines for X functions that are used by Tk but are treated as - * no-op functions on the Macintosh. - */ - -#undef XFlush -#define XFlush(display) (0) -#undef XFree -#define XFree(data) (((data) != NULL) ? (ckfree(data),0) : 0) -#undef XGrabServer -#define XGrabServer(display) (0) -#undef XNoOp -#define XNoOp(display) (LastKnownRequestProcessed(display)++,0) -#undef XUngrabServer -#define XUngrabServer(display) (0) -#undef XSynchronize -#define XSynchronize(display, onoff) (LastKnownRequestProcessed(display)++,NULL) -#undef XVisualIDFromVisual -#define XVisualIDFromVisual(visual) (visual->visualid) - -/* * The following functions are not used on the Mac, so we stub them out. */ @@ -147,17 +124,6 @@ #define TkpSync(display) /* - * TkMacOSXGetCapture is a legacy function used on the Mac. When fixing - * [943d5ebe51], TkpGetCapture was added to the Windows port. Both - * are actually the same feature and should bear the same name. However, - * in order to avoid potential backwards incompatibilities, renaming - * TkMacOSXGetCapture into TkpGetCapture in *PlatDecls.h shall not be - * done in a patch release, therefore use a define here. - */ - -#define TkpGetCapture TkMacOSXGetCapture - -/* * This macro stores a representation of the window handle in a string. */ @@ -185,6 +151,12 @@ MODULE_SCOPE int TkpPutRGBAImage( unsigned int width, unsigned int height); /* + * Inform tkCanvas.c that our XGetImage returns a 32pp pixmap packed as 0xAABBGGRR + */ + +#define TK_XGETIMAGE_USES_ABGR32 + +/* * Used by xcolor.c */ diff --git a/macosx/tkMacOSXPrint.c b/macosx/tkMacOSXPrint.c new file mode 100644 index 0000000..ee30e1f --- /dev/null +++ b/macosx/tkMacOSXPrint.c @@ -0,0 +1,410 @@ +/* + * tkMacOSXPrint.c -- + * + * This module implements native printing dialogs for macOS. + * + * Copyright © 2006 Apple Inc. + * Copyright © 2011-2021 Kevin Walzer/WordTech Communications LLC. + * + * See the file "license.terms" for information on usage and redistribution of + * this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +#include <tcl.h> +#include <tk.h> +#include <tkInt.h> +#include <Cocoa/Cocoa.h> +#include <CoreFoundation/CoreFoundation.h> +#include <CoreServices/CoreServices.h> +#include <ApplicationServices/ApplicationServices.h> +#include <tkMacOSXInt.h> +#include <sys/types.h> +#include <unistd.h> +#include <stdio.h> +#include <fcntl.h> +#include "tkMacOSXImage.h" +#include "tkMacOSXPrivate.h" + +NSString * fileName = nil; +CFStringRef urlFile = NULL; + +/*Forward declaration of functions.*/ +static Tcl_ObjCmdProc StartPrint; +static OSStatus FinishPrint(NSString *file, int buttonValue); +static Tcl_ObjCmdProc MakePDF; +int MacPrint_Init(Tcl_Interp * interp); + +/* Delegate class for print dialogs. */ +@interface PrintDelegate: NSObject + - (id) init; + - (void) printPanelDidEnd: (NSPrintPanel *) printPanel + returnCode: (int) returnCode + contextInfo: (void *) contextInfo; +@end + +@implementation PrintDelegate +- (id) init { + self = [super init]; + return self; +} + +- (void) printPanelDidEnd: (NSPrintPanel *) printPanel + returnCode: (int) returnCode + contextInfo: (void *) contextInfo { + (void) printPanel; + (void) contextInfo; + + /* + * Pass returnCode to FinishPrint function to determine how to + * handle. + */ + + FinishPrint(fileName, returnCode); +} +@end + +/* + *---------------------------------------------------------------------- + * + * StartPrint -- + * + * Launch native print dialog. + * + * Results: + * Configures values and starts print process. + * + *---------------------------------------------------------------------- + */ + +int +StartPrint( + TCL_UNUSED(void *), + Tcl_Interp * interp, + int objc, + Tcl_Obj *const objv[]) +{ + NSPrintInfo * printInfo = [NSPrintInfo sharedPrintInfo]; + NSPrintPanel * printPanel = [NSPrintPanel printPanel]; + int accepted; + PMPrintSession printSession; + PMPrintSettings printSettings; + OSStatus status = noErr; + + /* Check for proper number of arguments. */ + if (objc < 2) { + Tcl_WrongNumArgs(interp, 1, objv, "file"); + return TCL_ERROR; + } + + fileName = [NSString stringWithUTF8String: Tcl_GetString(objv[1])]; + urlFile = (CFStringRef) fileName; + CFRetain(urlFile); + + /* Initialize the delegate for the callback from the page panel. */ + PrintDelegate * printDelegate = [[PrintDelegate alloc] init]; + + status = PMCreateSession( & printSession); + if (status != noErr) { + NSLog(@ "Error creating print session."); + return TCL_ERROR; + } + + status = PMCreatePrintSettings( & printSettings); + if (status != noErr) { + NSLog(@ "Error creating print settings."); + return TCL_ERROR; + } + + status = PMSessionDefaultPrintSettings(printSession, printSettings); + if (status != noErr) { + NSLog(@ "Error creating default print settings."); + return TCL_ERROR; + } + + printSession = (PMPrintSession)[printInfo PMPrintSession]; + (void)(PMPageFormat)[printInfo PMPageFormat]; + printSettings = (PMPrintSettings)[printInfo PMPrintSettings]; + + accepted = (int)[printPanel runModalWithPrintInfo: printInfo]; + [printDelegate printPanelDidEnd: printPanel + returnCode: accepted + contextInfo: printInfo]; + + return TCL_OK; +} + +/* + *---------------------------------------------------------------------- + * + * FinishPrint -- + * + * Handles print process based on input from dialog. + * + * Results: + * Completes print process. + * + *---------------------------------------------------------------------- + */ + +OSStatus +FinishPrint( + NSString *file, + int buttonValue) +{ + NSPrintInfo * printInfo = [NSPrintInfo sharedPrintInfo]; + PMPrintSession printSession; + PMPageFormat pageFormat; + PMPrintSettings printSettings; + OSStatus status = noErr; + CFStringRef mimeType = NULL; + + /* + * If value passed here is NSCancelButton, return noErr; + * otherwise printing will occur regardless of value. + */ + if (buttonValue == NSModalResponseCancel) { + return noErr; + } + + status = PMCreateSession( & printSession); + if (status != noErr) { + NSLog(@ "Error creating print session."); + return status; + } + + status = PMCreatePrintSettings( & printSettings); + if (status != noErr) { + NSLog(@ "Error creating print settings."); + return status; + } + + status = PMSessionDefaultPrintSettings(printSession, printSettings); + if (status != noErr) { + NSLog(@ "Error creating default print settings."); + return status; + } + + printSession = (PMPrintSession)[printInfo PMPrintSession]; + pageFormat = (PMPageFormat)[printInfo PMPageFormat]; + printSettings = (PMPrintSettings)[printInfo PMPrintSettings]; + + /*Handle print operation.*/ + if (buttonValue == NSModalResponseOK) { + + if (urlFile == NULL) { + NSLog(@ "Could not get file to print."); + return noErr; + } + + fileName = file; + + CFURLRef printURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, urlFile, kCFURLPOSIXPathStyle, false); + + PMPrinter currentPrinter; + PMDestinationType printDestination; + + /*Get the intended destination.*/ + status = PMSessionGetDestinationType(printSession, printSettings, & printDestination); + + /*Destination is printer. Send file to printer.*/ + if (status == noErr && printDestination == kPMDestinationPrinter) { + + status = PMSessionGetCurrentPrinter(printSession, & currentPrinter); + if (status == noErr) { + CFArrayRef mimeTypes; + status = PMPrinterGetMimeTypes(currentPrinter, printSettings, & mimeTypes); + if (status == noErr && mimeTypes != NULL) { + mimeType = CFSTR("application/pdf"); + if (CFArrayContainsValue(mimeTypes, CFRangeMake(0, CFArrayGetCount(mimeTypes)), mimeType)) { + status = PMPrinterPrintWithFile(currentPrinter, printSettings, pageFormat, mimeType, printURL); + CFRelease(urlFile); + return status; + } + } + } + } + + /* Destination is file. Determine how to handle. */ + if (status == noErr && printDestination == kPMDestinationFile) { + CFURLRef outputLocation = NULL; + + status = PMSessionCopyDestinationLocation(printSession, printSettings, & outputLocation); + if (status == noErr) { + /*Get the source file and target destination, convert to strings.*/ + CFStringRef sourceFile = CFURLCopyFileSystemPath(printURL, kCFURLPOSIXPathStyle); + CFStringRef savePath = CFURLCopyFileSystemPath(outputLocation, kCFURLPOSIXPathStyle); + NSString * sourcePath = (NSString * ) sourceFile; + NSString * finalPath = (NSString * ) savePath; + NSString * pathExtension = [finalPath pathExtension]; + NSFileManager * fileManager = [NSFileManager defaultManager]; + NSError * error = nil; + + /* + * Is the target file a PDF? If so, copy print file + * to output location. + */ + if ([pathExtension isEqualToString: @ "pdf"]) { + + /*Make sure no file conflict exists.*/ + if ([fileManager fileExistsAtPath: finalPath]) { + [fileManager removeItemAtPath: finalPath error: &error]; + } + if ([fileManager fileExistsAtPath: sourcePath]) { + error = nil; + [fileManager copyItemAtPath: sourcePath toPath: finalPath error: & error]; + } + return status; + } + + /* + * Is the target file PostScript? If so, run print file + * through CUPS filter to convert back to PostScript. + */ + + if ([pathExtension isEqualToString: @ "ps"]) { + char source[5012]; + char target[5012]; + [sourcePath getCString: source maxLength: (sizeof source) encoding: NSUTF8StringEncoding]; + [finalPath getCString: target maxLength: (sizeof target) encoding: NSUTF8StringEncoding]; + /*Make sure no file conflict exists.*/ + if ([fileManager fileExistsAtPath: finalPath]) { + [fileManager removeItemAtPath: finalPath error: &error]; + } + + /* + * Fork and start new process with command string. Thanks to Peter da Silva + * for assistance. + */ + pid_t pid; + if ((pid = fork()) == -1) { + return -1; + } else if (pid == 0) { + /* Redirect output to file and silence debugging output.*/ + dup2(open(target, O_RDWR | O_CREAT, 0777), 1); + dup2(open("/dev/null", O_WRONLY), 2); + execl("/usr/sbin/cupsfilter", "/usr/sbin/cupsfilter", "-m", "application/postscript", source, NULL); + exit(0); + } + return status; + } + } + } + + /* Destination is preview. Open file in default application for PDF. */ + if ((status == noErr) && (printDestination == kPMDestinationPreview)) { + CFStringRef urlpath = CFURLCopyFileSystemPath(printURL, kCFURLPOSIXPathStyle); + NSString * path = (NSString * ) urlpath; + NSURL * url = [NSURL fileURLWithPath: path]; + NSWorkspace * ws = [NSWorkspace sharedWorkspace]; + [ws openURL: url]; + status = noErr; + return status; + } + + /* + * If destination is not printer, file or preview, + * we do not support it. Display alert. + */ + + if (((status == noErr) && (printDestination != kPMDestinationPreview)) || ((status == noErr) && (printDestination != kPMDestinationFile)) || ((status == noErr) && (printDestination != kPMDestinationPrinter))) { + + NSAlert * alert = [[[NSAlert alloc] init] autorelease]; + [alert addButtonWithTitle: @ "OK"]; + + [alert setMessageText: @ "Unsupported Printing Operation"]; + [alert setInformativeText: @ "This printing operation is not supported."]; + [alert setAlertStyle: NSAlertStyleInformational]; + [alert runModal]; + return status; + } + } + + /* Return because cancel button was clicked. */ + if (buttonValue == NSModalResponseCancel) { + PMRelease(printSession); + return status; + } + + return status; +} + + +/* + *---------------------------------------------------------------------- + * + * MakePDF-- + * + * Converts a Tk canvas to PDF data. + * + * Results: + * Outputs PDF file. + * + *---------------------------------------------------------------------- + */ + +int MakePDF( + TCL_UNUSED(void *), + Tcl_Interp *ip, + int objc, + Tcl_Obj *const objv[]) +{ + Tk_Window path; + Drawable d; + unsigned int width, height; + CFDataRef pdfData; + + if (objc != 2) { + Tcl_WrongNumArgs(ip, 1, objv, "path?"); + return TCL_ERROR; + } + + /*Get window and render to PDF.*/ + + path = Tk_NameToWindow(ip, Tcl_GetString(objv[1]), Tk_MainWindow(ip)); + if (path == NULL) { + return TCL_ERROR; + } + + Tk_MakeWindowExist(path); + Tk_MapWindow(path); + d = Tk_WindowId(path); + width = Tk_Width(path); + height = Tk_Height(path); + + pdfData = CreatePDFFromDrawableRect(d, 0, 0, width, height); + + NSData *viewData = (NSData*)pdfData; + [viewData writeToFile:@"/tmp/tk_canvas.pdf" atomically:YES]; + return TCL_OK; + +} + +/* + *---------------------------------------------------------------------- + * + * MacPrint_Init-- + * + * Initializes the printing module. + * + * Results: + * Printing module initialized. + * + *---------------------------------------------------------------------- + */ + +int MacPrint_Init(Tcl_Interp * interp) { + NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; + Tcl_CreateObjCommand(interp, "::tk::print::_print", StartPrint, NULL, NULL); + Tcl_CreateObjCommand(interp, "::tk::print::_printcanvas", MakePDF, NULL, NULL); + [pool release]; + return TCL_OK; +} + +/* + * Local Variables: + * mode: objc + * c-basic-offset: 4 + * fill-column: 79 + * coding: utf-8 + * End: + */ diff --git a/macosx/tkMacOSXPrivate.h b/macosx/tkMacOSXPrivate.h index e490d32..de230da 100644 --- a/macosx/tkMacOSXPrivate.h +++ b/macosx/tkMacOSXPrivate.h @@ -25,7 +25,9 @@ #endif #define TextStyle MacTextStyle +#define Cursor QDCursor #import <ApplicationServices/ApplicationServices.h> +#undef Cursor #import <Cocoa/Cocoa.h> #import <QuartzCore/QuartzCore.h> #if MAC_OS_X_VERSION_MAX_ALLOWED >= 110000 @@ -214,8 +216,8 @@ typedef struct TkMacOSXDrawingContext { * Prototypes for TkMacOSXRegion.c. */ -MODULE_SCOPE HIShapeRef TkMacOSXGetNativeRegion(TkRegion r); -MODULE_SCOPE void TkMacOSXSetWithNativeRegion(TkRegion r, +MODULE_SCOPE HIShapeRef TkMacOSXGetNativeRegion(Region r); +MODULE_SCOPE void TkMacOSXSetWithNativeRegion(Region r, HIShapeRef rgn); MODULE_SCOPE OSStatus TkMacOSHIShapeDifferenceWithRect( HIMutableShapeRef inShape, const CGRect *inRect); @@ -247,9 +249,9 @@ MODULE_SCOPE void TkMacOSXRestoreDrawingContext( MODULE_SCOPE void TkMacOSXSetColorInContext(GC gc, unsigned long pixel, CGContextRef context); #define TkMacOSXGetTkWindow(window) ((TkWindow *)Tk_MacOSXGetTkWindow(window)) -#define TkMacOSXGetNSWindowForDrawable(drawable) ((NSWindow *)TkMacOSXDrawable(drawable)) +#define TkMacOSXGetNSWindowForDrawable(drawable) ((NSWindow *)Tk_MacOSXGetNSWindowForDrawable(drawable)) #define TkMacOSXGetNSViewForDrawable(macWin) ((NSView *)Tk_MacOSXGetNSViewForDrawable((Drawable)(macWin))) -MODULE_SCOPE CGContextRef TkMacOSXGetCGContextForDrawable(Drawable drawable); +#define TkMacOSXGetCGContextForDrawable(drawable) ((CGContextRef)Tk_MacOSXGetCGContextForDrawable(drawable)) MODULE_SCOPE void TkMacOSXWinCGBounds(TkWindow *winPtr, CGRect *bounds); MODULE_SCOPE HIShapeRef TkMacOSXGetClipRgn(Drawable drawable); MODULE_SCOPE void TkMacOSXInvalidateViewRegion(NSView *view, @@ -267,16 +269,22 @@ MODULE_SCOPE void TkMacOSXApplyWindowAttributes(TkWindow *winPtr, NSWindow *macWindow); MODULE_SCOPE Tcl_ObjCmdProc TkMacOSXStandardAboutPanelObjCmd; MODULE_SCOPE Tcl_ObjCmdProc TkMacOSXIconBitmapObjCmd; +MODULE_SCOPE Tcl_ObjCmdProc TkMacOSXNSImageObjCmd; MODULE_SCOPE void TkMacOSXDrawSolidBorder(Tk_Window tkwin, GC gc, int inset, int thickness); MODULE_SCOPE int TkMacOSXServices_Init(Tcl_Interp *interp); MODULE_SCOPE Tcl_ObjCmdProc TkMacOSXRegisterServiceWidgetObjCmd; MODULE_SCOPE unsigned TkMacOSXAddVirtual(unsigned int keycode); +MODULE_SCOPE int TkMacOSXNSImage_Init(Tcl_Interp *interp); MODULE_SCOPE void TkMacOSXWinNSBounds(TkWindow *winPtr, NSView *view, NSRect *bounds); MODULE_SCOPE Bool TkMacOSXInDarkMode(Tk_Window tkwin); MODULE_SCOPE void TkMacOSXDrawAllViews(void *clientData); +MODULE_SCOPE NSColor* controlAccentColor(void); +MODULE_SCOPE void Ttk_MacOSXInit(void); MODULE_SCOPE unsigned long TkMacOSXClearPixel(void); +MODULE_SCOPE int MacSystrayInit(Tcl_Interp *); +MODULE_SCOPE int MacPrint_Init(Tcl_Interp *); MODULE_SCOPE NSString* TkMacOSXOSTypeToUTI(OSType ostype); MODULE_SCOPE NSImage* TkMacOSXIconForFileType(NSString *filetype); @@ -309,26 +317,12 @@ VISIBILITY_HIDDEN NSArray *_defaultApplicationMenuItems, *_defaultWindowsMenuItems; NSArray *_defaultHelpMenuItems, *_defaultFileMenuItems; NSAutoreleasePool *_mainPool; - NSThread *_backgoundLoop; - -#ifdef __i386__ - /* The Objective C runtime used on i386 requires this. */ - int _poolLock; - int _macOSVersion; /* 10000 * major + 100*minor */ - Bool _isDrawing; - Bool _needsToDraw; - Bool _tkLiveResizeEnded; - TkWindow *_tkPointerWindow; - TkWindow *_tkEventTarget; - TkWindow *_tkDragTarget; - unsigned int _tkButtonState; -#endif - } @property int poolLock; @property int macOSVersion; @property Bool isDrawing; @property Bool needsToDraw; +@property Bool isSigned; @property Bool tkLiveResizeEnded; /* @@ -439,10 +433,6 @@ VISIBILITY_HIDDEN VISIBILITY_HIDDEN @interface TKWindow : NSWindow { -#ifdef __i386__ - /* The Objective C runtime used on i386 requires this. */ - Window _tkWindow; -#endif } @property Window tkWindow; @end @@ -454,24 +444,19 @@ VISIBILITY_HIDDEN @interface TKDrawerWindow : NSWindow { id _i1, _i2; -#ifdef __i386__ - /* The Objective C runtime used on i386 requires this. */ - Window _tkWindow; -#endif } @property Window tkWindow; @end @interface TKPanel : NSPanel { -#ifdef __i386__ - /* The Objective C runtime used on i386 requires this. */ - Window _tkWindow; -#endif } @property Window tkWindow; @end +@interface TKPanel(TKWm) +- (void) tkLayoutChanged; +@end #pragma mark NSMenu & NSMenuItem Utilities @interface NSMenu(TKUtils) @@ -547,8 +532,8 @@ VISIBILITY_HIDDEN * NSString class does not provide a constructor which accepts a CESU-8 encoded * byte sequence as initial data. So we add a new class which does provide * such a constructor. It also has a DString property which is a DString whose - * string pointer is a byte sequence encoding the NSString with the current Tk - * encoding, namely UTF-8 if TCL_UTF_MAX >= 4 or CESU-8 if TCL_UTF_MAX = 3. + * string pointer is a byte sequence encoding the NSString with the current Tcl + * internal encoding, namely UTF-8 for Tcl8.7+ or CESU-8 otherwise. * *--------------------------------------------------------------------------- */ diff --git a/macosx/tkMacOSXRegion.c b/macosx/tkMacOSXRegion.c index eaeabbb..d094aaf 100644 --- a/macosx/tkMacOSXRegion.c +++ b/macosx/tkMacOSXRegion.c @@ -26,7 +26,7 @@ static int totalRegionRetainCount = 0; /* *---------------------------------------------------------------------- * - * TkCreateRegion -- + * XCreateRegion -- * * Implements the equivalent of the X window function XCreateRegion. See * Xwindow documentation for more details. @@ -40,10 +40,10 @@ static int totalRegionRetainCount = 0; *---------------------------------------------------------------------- */ -TkRegion -TkCreateRegion(void) +Region +XCreateRegion(void) { - TkRegion region = (TkRegion) HIShapeCreateMutable(); + Region region = (Region) HIShapeCreateMutable(); DebugLog("Created region: total regions = %d, total count is %d\n", ++totalRegions, ++totalRegionRetainCount); return region; @@ -52,7 +52,7 @@ TkCreateRegion(void) /* *---------------------------------------------------------------------- * - * TkDestroyRegion -- + * XDestroyRegion -- * * Implements the equivalent of the X window function XDestroyRegion. See * Xwindow documentation for more details. @@ -67,8 +67,8 @@ TkCreateRegion(void) */ int -TkDestroyRegion( - TkRegion r) +XDestroyRegion( + Region r) { if (r) { DebugLog("Destroyed region: total regions = %d\n", --totalRegions); @@ -80,7 +80,7 @@ TkDestroyRegion( /* *---------------------------------------------------------------------- * - * TkIntersectRegion -- + * XIntersectRegion -- * * Implements the equivalent of the X window function XIntersectRegion. * See Xwindow documentation for more details. @@ -95,10 +95,10 @@ TkDestroyRegion( */ int -TkIntersectRegion( - TkRegion sra, - TkRegion srb, - TkRegion dr_return) +XIntersectRegion( + Region sra, + Region srb, + Region dr_return) { ChkErr(HIShapeIntersect, (HIShapeRef) sra, (HIShapeRef) srb, (HIMutableShapeRef) dr_return); @@ -108,7 +108,7 @@ TkIntersectRegion( /* *---------------------------------------------------------------------- * - * TkSubtractRegion -- + * XSubtractRegion -- * * Implements the equivalent of the X window function XSubtractRegion. * See X window documentation for more details. @@ -123,10 +123,10 @@ TkIntersectRegion( */ int -TkSubtractRegion( - TkRegion sra, - TkRegion srb, - TkRegion dr_return) +XSubtractRegion( + Region sra, + Region srb, + Region dr_return) { ChkErr(HIShapeDifference, (HIShapeRef) sra, (HIShapeRef) srb, (HIMutableShapeRef) dr_return); @@ -136,7 +136,7 @@ TkSubtractRegion( /* *---------------------------------------------------------------------- * - * TkUnionRectWithRegion -- + * XUnionRectWithRegion -- * * Implements the equivalent of the X window function * XUnionRectWithRegion. See Xwindow documentation for more details. @@ -151,10 +151,10 @@ TkSubtractRegion( */ int -TkUnionRectWithRegion( +XUnionRectWithRegion( XRectangle* rectangle, - TkRegion src_region, - TkRegion dest_region_return) + Region src_region, + Region dest_region_return) { const CGRect r = CGRectMake(rectangle->x, rectangle->y, rectangle->width, rectangle->height); @@ -190,7 +190,7 @@ TkUnionRectWithRegion( static int TkMacOSXIsEmptyRegion( - TkRegion r) + Region r) { return HIShapeIsEmpty((HIMutableShapeRef) r) ? 1 : 0; } @@ -198,7 +198,7 @@ TkMacOSXIsEmptyRegion( /* *---------------------------------------------------------------------- * - * TkRectInRegion -- + * XRectInRegion -- * * Implements the equivalent of the X window function XRectInRegion. See * Xwindow documentation for more details. @@ -214,8 +214,8 @@ TkMacOSXIsEmptyRegion( */ int -TkRectInRegion( - TkRegion region, +XRectInRegion( + Region region, int x, int y, unsigned int width, @@ -234,7 +234,7 @@ TkRectInRegion( /* *---------------------------------------------------------------------- * - * TkClipBox -- + * XClipBox -- * * Implements the equivalent of the X window function XClipBox. See * Xwindow documentation for more details. @@ -249,8 +249,8 @@ TkRectInRegion( */ int -TkClipBox( - TkRegion r, +XClipBox( + Region r, XRectangle *rect_return) { CGRect rect; @@ -282,7 +282,7 @@ TkClipBox( void TkpBuildRegionFromAlphaData( - TkRegion region, /* Region to update. */ + Region region, /* Region to update. */ unsigned int x, /* Where in region to update. */ unsigned int y, /* Where in region to update. */ unsigned int width, /* Size of rectangle to update. */ @@ -323,7 +323,7 @@ TkpBuildRegionFromAlphaData( rect.y = y + y1; rect.width = end - x1; rect.height = 1; - TkUnionRectWithRegion(&rect, region, region); + XUnionRectWithRegion(&rect, region, region); } } dataPtr += lineStride; @@ -348,7 +348,7 @@ TkpBuildRegionFromAlphaData( static void ReleaseRegion( - TkRegion r) + Region r) { CFRelease(r); DebugLog("Released region: total count is %d\n", --totalRegionRetainCount); @@ -372,7 +372,7 @@ ReleaseRegion( void TkMacOSXSetEmptyRegion( - TkRegion r) + Region r) { ChkErr(HIShapeSetEmpty, (HIMutableShapeRef) r); } @@ -395,7 +395,7 @@ TkMacOSXSetEmptyRegion( HIShapeRef TkMacOSXGetNativeRegion( - TkRegion r) + Region r) { return (HIShapeRef) CFRetain(r); } @@ -418,7 +418,7 @@ TkMacOSXGetNativeRegion( void TkMacOSXSetWithNativeRegion( - TkRegion r, + Region r, HIShapeRef rgn) { ChkErr(HIShapeSetWithShape, (HIMutableShapeRef) r, rgn); @@ -442,7 +442,7 @@ TkMacOSXSetWithNativeRegion( int XOffsetRegion( - void *r, + Region r, int dx, int dy) { @@ -500,9 +500,9 @@ TkMacOSHIShapeDifferenceWithRect( static OSStatus rectCounter( - int msg, + TCL_UNUSED(int), TCL_UNUSED(HIShapeRef), - const CGRect *rect, + TCL_UNUSED(const CGRect *), void *ref) { int *count = (int *)ref; @@ -512,10 +512,10 @@ rectCounter( static OSStatus rectPrinter( - int msg, + TCL_UNUSED(int), TCL_UNUSED(HIShapeRef), const CGRect *rect, - void *ref) + TCL_UNUSED(void *)) { if (rect) { fprintf(stderr, " %s\n", NSStringFromRect(*rect).UTF8String); @@ -529,9 +529,9 @@ TkMacOSXCountRectsInRegion( { int rect_count = 0; if (!HIShapeIsEmpty(shape)) { - ChkErr(HIShapeEnumerate, shape, - kHIShapeParseFromBottom|kHIShapeParseFromLeft, - rectCounter, &rect_count); + HIShapeEnumerate(shape, + kHIShapeParseFromBottom|kHIShapeParseFromLeft, + (HIShapeEnumerateProcPtr) rectCounter, (void *) &rect_count); } return rect_count; } @@ -541,9 +541,9 @@ TkMacOSXPrintRectsInRegion( HIShapeRef shape) { if (!HIShapeIsEmpty(shape)) { - ChkErr(HIShapeEnumerate, shape, - kHIShapeParseFromBottom|kHIShapeParseFromLeft, - rectPrinter, NULL); + HIShapeEnumerate( shape, + kHIShapeParseFromBottom|kHIShapeParseFromLeft, + (HIShapeEnumerateProcPtr) rectPrinter, NULL); } } diff --git a/macosx/tkMacOSXScale.c b/macosx/tkMacOSXScale.c index 9885199..96a61b8 100644 --- a/macosx/tkMacOSXScale.c +++ b/macosx/tkMacOSXScale.c @@ -51,7 +51,7 @@ static ControlActionUPP scaleActionProc = NULL; /* Pointer to func. */ * Forward declarations for procedures defined later in this file: */ -static void MacScaleEventProc(ClientData clientData, +static void MacScaleEventProc(void *clientData, XEvent *eventPtr); static pascal void ScaleActionProc(ControlRef theControl, ControlPartCode partCode); @@ -139,7 +139,7 @@ TkpDestroyScale( void TkpDisplayScale( - ClientData clientData) /* Widget record for scale. */ + void *clientData) /* Widget record for scale. */ { TkScale *scalePtr = clientData; Tk_Window tkwin = scalePtr->tkwin; @@ -174,10 +174,10 @@ TkpDisplayScale( string[TCL_DOUBLE_SPACE - 1] = '\0'; } Tcl_DStringInit(&buf); - Tcl_DStringAppend(&buf, scalePtr->command, -1); - Tcl_DStringAppend(&buf, " ", -1); - Tcl_DStringAppend(&buf, string, -1); - result = Tcl_EvalEx(interp, Tcl_DStringValue(&buf), -1, TCL_EVAL_GLOBAL); + Tcl_DStringAppend(&buf, scalePtr->command, TCL_INDEX_NONE); + Tcl_DStringAppend(&buf, " ", TCL_INDEX_NONE); + Tcl_DStringAppend(&buf, string, TCL_INDEX_NONE); + result = Tcl_EvalEx(interp, Tcl_DStringValue(&buf), TCL_INDEX_NONE, TCL_EVAL_GLOBAL); Tcl_DStringFree(&buf); if (result != TCL_OK) { Tcl_AddErrorInfo(interp, "\n (command executed by scale)"); @@ -197,7 +197,7 @@ TkpDisplayScale( * vertical scales: border and traversal highlight. */ - if (scalePtr->highlightWidth != 0) { + if (scalePtr->highlightWidth > 0) { GC gc = Tk_GCForColor(scalePtr->highlightColorPtr, Tk_WindowId(tkwin)); Tk_DrawFocusHighlight(tkwin, gc, scalePtr->highlightWidth, @@ -378,7 +378,7 @@ TkpScaleElement( static void MacScaleEventProc( - ClientData clientData, /* Information about window. */ + void *clientData, /* Information about window. */ XEvent *eventPtr) /* Information about event. */ { MacScale *macScalePtr = (MacScale *) clientData; @@ -390,10 +390,12 @@ MacScaleEventProc( fprintf(stderr,"MacScaleEventProc\n" ); #endif - TkMacOSXWinBounds((TkWindow *) macScalePtr->info.tkwin, &bounds); - where.h = eventPtr->xbutton.x + bounds.left; - where.v = eventPtr->xbutton.y + bounds.top; -#ifdef TK_MAC_DEBUG_SCALE + /* + * To call Macintosh control routines we must have the port set to the + * window containing the control. We will then test which part of the + * control was hit and act accordingly. + */ + TkMacOSXDbgMsg("calling TestControl"); #endif part = TestControl(macScalePtr->scaleHandle, where); diff --git a/macosx/tkMacOSXScrlbr.c b/macosx/tkMacOSXScrlbr.c index 8173e0a..f5b25f1 100644 --- a/macosx/tkMacOSXScrlbr.c +++ b/macosx/tkMacOSXScrlbr.c @@ -95,7 +95,7 @@ static ScrollbarMetrics metrics = { * Declarations of static functions defined later in this file: */ -static void ScrollbarEventProc(ClientData clientData, +static void ScrollbarEventProc(void *clientData, XEvent *eventPtr); static int ScrollbarEvent(TkScrollbar *scrollPtr, XEvent *eventPtr); @@ -244,7 +244,7 @@ static void drawMacScrollbar( void TkpDisplayScrollbar( - ClientData clientData) /* Information about window. */ + void *clientData) /* Information about window. */ { TkScrollbar *scrollPtr = (TkScrollbar *)clientData; MacScrollbar *msPtr = (MacScrollbar *) scrollPtr; @@ -284,7 +284,7 @@ TkpDisplayScrollbar( * Draw a 3D rectangle to provide a base for the native scrollbar. */ - if (scrollPtr->highlightWidth != 0) { + if (scrollPtr->highlightWidth > 0) { GC fgGC, bgGC; bgGC = Tk_GCForColor(scrollPtr->highlightBgColorPtr, (Pixmap) macWin); @@ -293,7 +293,7 @@ TkpDisplayScrollbar( } else { fgGC = bgGC; } - TkpDrawHighlightBorder(tkwin, fgGC, bgGC, scrollPtr->highlightWidth, + Tk_DrawHighlightBorder(tkwin, fgGC, bgGC, scrollPtr->highlightWidth, (Pixmap) macWin); } @@ -484,9 +484,8 @@ TkpDestroyScrollbar( void TkpConfigureScrollbar( - TkScrollbar *scrollPtr) + TCL_UNUSED(TkScrollbar *)) { - (void)scrollPtr; /* empty */ } @@ -650,8 +649,8 @@ UpdateControlValues( || height <= metrics.minHeight) { msPtr->info.enableState = kThemeTrackHideTrack; } else { - msPtr->info.enableState = kThemeTrackActive; - msPtr->info.attributes = + msPtr->info.enableState = kThemeTrackActive; + msPtr->info.attributes = kThemeTrackShowThumb | kThemeTrackThumbRgnIsNotGhost; } } @@ -766,7 +765,7 @@ ScrollbarEvent( static void ScrollbarEventProc( - ClientData clientData, /* Information about window. */ + void *clientData, /* Information about window. */ XEvent *eventPtr) /* Information about event. */ { TkScrollbar *scrollPtr = (TkScrollbar *)clientData; diff --git a/macosx/tkMacOSXSend.c b/macosx/tkMacOSXSend.c index b563817..9b18424 100644 --- a/macosx/tkMacOSXSend.c +++ b/macosx/tkMacOSXSend.c @@ -210,7 +210,7 @@ Tk_SetAppName( TkWindow *winPtr = (TkWindow *) tkwin; Tcl_Interp *interp = winPtr->mainPtr->interp; int suffix, result; - int i, offset; + Tcl_Size i, offset; RegisteredInterp *riPtr, *prevPtr; const char *actualName; Tcl_DString dString; @@ -261,7 +261,7 @@ Tk_SetAppName( interpName = Tcl_GetString(interpNamePtr); if (strcmp(actualName, interpName) == 0) { if (suffix == 1) { - Tcl_DStringAppend(&dString, name, -1); + Tcl_DStringAppend(&dString, name, TCL_INDEX_NONE); Tcl_DStringAppend(&dString, " #", 2); offset = Tcl_DStringLength(&dString); Tcl_DStringSetLength(&dString, offset + TCL_INTEGER_SPACE); @@ -321,33 +321,42 @@ Tk_SetAppName( int Tk_SendObjCmd( - TCL_UNUSED(void *), + TCL_UNUSED(void *), /* Not used */ Tcl_Interp *interp, /* The interp we are sending from */ int objc, /* Number of arguments */ Tcl_Obj *const objv[]) /* The arguments */ { - const char *const sendOptions[] = {"-async", "-displayof", "--", NULL}; - char *stringRep, *destName; + enum { + SEND_ASYNC, SEND_DISPLAYOF, SEND_LAST + }; + static const char *const sendOptions[] = { + "-async", "-displayof", "--", NULL + }; + const char *stringRep, *destName; /*int async = 0;*/ - int i, index, firstArg; + int i, firstArg, index; RegisteredInterp *riPtr; Tcl_Obj *listObjPtr; int result = TCL_OK; - for (i = 1; i < (objc - 1); ) { + /* + * Process the command options. + */ + + for (i = 1; i < (objc - 1); i++) { stringRep = Tcl_GetString(objv[i]); if (stringRep[0] == '-') { if (Tcl_GetIndexFromObjStruct(interp, objv[i], sendOptions, sizeof(char *), "option", 0, &index) != TCL_OK) { return TCL_ERROR; } - if (index == 0) { + if (index == SEND_ASYNC) { /*async = 1;*/ + } else if (index == SEND_DISPLAYOF) { i++; - } else if (index == 1) { - i += 2; - } else { + } else /* if (index == SEND_LAST) */ { i++; + break; } } else { break; @@ -472,7 +481,7 @@ TkGetInterpNames( riPtr = interpListPtr; while (riPtr != NULL) { Tcl_ListObjAppendElement(interp, listObjPtr, - Tcl_NewStringObj(riPtr->name, -1)); + Tcl_NewStringObj(riPtr->name, TCL_INDEX_NONE)); riPtr = riPtr->nextPtr; } @@ -499,7 +508,7 @@ TkGetInterpNames( static int SendInit( - TCL_UNUSED(Tcl_Interp *)) + TCL_UNUSED(Tcl_Interp *)) /* Not used */ { return TCL_OK; } diff --git a/macosx/tkMacOSXServices.c b/macosx/tkMacOSXServices.c index a2bbf9f..c9a46f5 100644 --- a/macosx/tkMacOSXServices.c +++ b/macosx/tkMacOSXServices.c @@ -134,6 +134,7 @@ ServicesEventProc( @end /* + * Instantiate a TkService object and register it with the NSApplication. * This is called exactly one time from TkpInit. */ diff --git a/macosx/tkMacOSXSubwindows.c b/macosx/tkMacOSXSubwindows.c index fb71a0c..a420898 100644 --- a/macosx/tkMacOSXSubwindows.c +++ b/macosx/tkMacOSXSubwindows.c @@ -200,14 +200,14 @@ XMapWindow( Tk_UpdatePointer((Tk_Window) winPtr, x, y, [NSApp tkButtonState]); } } else { - TkWindow *contWinPtr = TkpGetOtherWindow(winPtr); + Tk_Window contWinPtr = Tk_GetOtherWindow((Tk_Window)winPtr); /* * Rebuild the container's clipping region and display * the window. */ - TkMacOSXInvalClipRgns((Tk_Window)contWinPtr); + TkMacOSXInvalClipRgns(contWinPtr); TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); } TkMacOSXInvalClipRgns((Tk_Window)winPtr); @@ -360,7 +360,7 @@ XUnmapWindow( if (parentPtr && parentPtr->privatePtr->visRgn) { TkMacOSXInvalidateViewRegion( - TkMacOSXGetNSViewForDrawable(parentPtr->privatePtr), + TkMacOSXGetNSViewForDrawable(parentPtr->window), parentPtr->privatePtr->visRgn); } TkMacOSXInvalClipRgns((Tk_Window)parentPtr); @@ -405,7 +405,7 @@ XResizeWindow( if (w) { if ([w styleMask] & NSFullScreenWindowMask) { - [w tkLayoutChanged]; + [(TKWindow *)w tkLayoutChanged]; } else { NSRect r = [w contentRectForFrameRect:[w frame]]; @@ -544,7 +544,7 @@ MoveResizeWindow( */ if (Tk_IsEmbedded(macWin->winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(macWin->winPtr); + TkWindow *contWinPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)macWin->winPtr); if (contWinPtr) { macParent = contWinPtr->privatePtr; @@ -802,7 +802,7 @@ TkMacOSXSetDrawingEnabled( */ if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr) { TkMacOSXSetDrawingEnabled(childPtr, flag); @@ -883,20 +883,11 @@ TkMacOSXUpdateClipRgn( ChkErr(TkMacOSHIShapeDifferenceWithRect, rgn, &bounds); } } else if (Tk_IsEmbedded(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); + win2Ptr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (win2Ptr) { TkMacOSXUpdateClipRgn(win2Ptr); ChkErr(HIShapeIntersect, win2Ptr->privatePtr->aboveVisRgn, rgn, rgn); - } else if (tkMacOSXEmbedHandler != NULL) { - TkRegion r = TkCreateRegion(); - HIShapeRef visRgn; - - tkMacOSXEmbedHandler->getClipProc((Tk_Window)winPtr, r); - visRgn = TkMacOSXGetNativeRegion(r); - ChkErr(HIShapeIntersect, visRgn, rgn, rgn); - CFRelease(visRgn); - TkDestroyRegion(r); } /* @@ -925,7 +916,7 @@ TkMacOSXUpdateClipRgn( } if (Tk_IsContainer(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); + win2Ptr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (win2Ptr) { if (Tk_IsMapped(win2Ptr)) { TkMacOSXWinCGBounds(win2Ptr, &bounds); @@ -959,7 +950,7 @@ TkMacOSXUpdateClipRgn( if (!Tk_IsTopLevel(winPtr)) { TkMacOSXUpdateClipRgn(winPtr->parentPtr); } else if (Tk_IsEmbedded(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); + win2Ptr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (win2Ptr) { TkMacOSXUpdateClipRgn(win2Ptr); } @@ -980,7 +971,7 @@ TkMacOSXUpdateClipRgn( * * This function returns the Macintosh clipping region for the given * window. The caller is responsible for disposing of the returned region - * via TkDestroyRegion(). + * via XDestroyRegion(). * * Results: * The region. @@ -991,14 +982,14 @@ TkMacOSXUpdateClipRgn( *---------------------------------------------------------------------- */ -TkRegion +Region TkMacOSXVisableClipRgn( TkWindow *winPtr) { if (winPtr->privatePtr->flags & TK_CLIP_INVALID) { TkMacOSXUpdateClipRgn(winPtr); } - return (TkRegion) HIShapeCreateMutableCopy(winPtr->privatePtr->visRgn); + return (Region) HIShapeCreateMutableCopy(winPtr->privatePtr->visRgn); } /* @@ -1093,7 +1084,8 @@ TkMacOSXInvalidateWindow( * * TkMacOSXGetNSWindowForDrawable -- * - * This function returns the NSWindow for a given X drawable. + * This function returns the NSWindow for a given X drawable, if the + * drawable is a window. If the drawable is a pixmap it returns nil. * * Results: * A NSWindow, or nil for off screen pixmaps. @@ -1105,7 +1097,7 @@ TkMacOSXInvalidateWindow( */ void * -TkMacOSXDrawable( +Tk_MacOSXGetNSWindowForDrawable( Drawable drawable) { MacDrawable *macWin = (MacDrawable *)drawable; @@ -1121,7 +1113,7 @@ TkMacOSXDrawable( macWin->winPtr->wmInfoPtr->window) { result = macWin->winPtr->wmInfoPtr->window; } else if (macWin->toplevel && (macWin->toplevel->flags & TK_EMBEDDED)) { - TkWindow *contWinPtr = TkpGetOtherWindow(macWin->toplevel->winPtr); + TkWindow *contWinPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)macWin->toplevel->winPtr); if (contWinPtr) { result = TkMacOSXGetNSWindowForDrawable((Drawable)contWinPtr->privatePtr); @@ -1133,30 +1125,6 @@ TkMacOSXDrawable( /* *---------------------------------------------------------------------- * - * TkMacOSXGetDrawablePort -- - * - * This function only exists because it is listed in the stubs table. - * It is useless. - * - * Results: - * NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void * -TkMacOSXGetDrawablePort( - TCL_UNUSED(Drawable)) -{ - return NULL; -} - -/* - *---------------------------------------------------------------------- - * * TkMacOSXGetNSViewForDrawable/TkMacOSXGetRootControl -- * * The function name TkMacOSXGetRootControl is being preserved only @@ -1191,7 +1159,7 @@ TkMacOSXGetRootControl( } else if (!(macWin->toplevel->flags & TK_EMBEDDED)) { result = macWin->toplevel->view; } else { - TkWindow *contWinPtr = TkpGetOtherWindow(macWin->toplevel->winPtr); + TkWindow *contWinPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)macWin->toplevel->winPtr); if (contWinPtr) { result = TkMacOSXGetRootControl((Drawable)contWinPtr->privatePtr); @@ -1273,7 +1241,7 @@ TkMacOSXInvalClipRgns( */ if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr) { TkMacOSXInvalClipRgns((Tk_Window)childPtr); @@ -1428,7 +1396,7 @@ UpdateOffsets( } if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr != NULL) { UpdateOffsets(childPtr,deltaX,deltaY); } diff --git a/macosx/tkMacOSXSysTray.c b/macosx/tkMacOSXSysTray.c new file mode 100644 index 0000000..76186cc --- /dev/null +++ b/macosx/tkMacOSXSysTray.c @@ -0,0 +1,496 @@ +/* + * tkMacOSXSysTray.c -- + * + * tkMacOSXSysTray.c implements a "systray" Tcl command which allows + * one to change the system tray/taskbar icon of a Tk toplevel + * window and a "sysnotify" command to post system notifications. + * In macOS the icon appears on the right hand side of the menu bar. + * + * Copyright © 2020 Kevin Walzer/WordTech Communications LLC. + * Copyright © 2020 Jan Nijtmans. + * Copyright © 2020 Marc Culler. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +#include <tkInt.h> +#include <tkMacOSXInt.h> +#include "tkMacOSXPrivate.h" + +/* + * Class declaration for TkStatusItem. + */ + +@interface TkStatusItem: NSObject { + NSStatusItem * statusItem; + NSStatusBar * statusBar; + NSImage * icon; + NSString * tooltip; + Tcl_Interp * interp; + Tcl_Obj * b1_callback; + Tcl_Obj * b3_callback; +} + +- (id) init : (Tcl_Interp *) interp; +- (void) setImagewithImage : (NSImage *) image; +- (void) setTextwithString : (NSString *) string; +- (void) setB1Callback : (Tcl_Obj *) callback; +- (void) setB3Callback : (Tcl_Obj *) callback; +- (void) clickOnStatusItem; +- (void) dealloc; + +@end + + + +/* + * Class declaration for TkStatusItem. A TkStatusItem represents an icon posted + * on the status bar located on the right side of the MenuBar. Each interpreter + * may have at most one TkStatusItem. A pointer to the TkStatusItem belonging + * to an interpreter is stored as the clientData of the MacSystrayObjCmd instance + * in that interpreter. It will be NULL until the tk systray command is executed + * by the interpreter. + */ + +@implementation TkStatusItem : NSObject + +- (id) init : (Tcl_Interp *) interpreter { + [super init]; + statusBar = [NSStatusBar systemStatusBar]; + statusItem = [[statusBar statusItemWithLength:NSVariableStatusItemLength] retain]; + statusItem.button.target = self; + statusItem.button.action = @selector(clickOnStatusItem); + [statusItem.button sendActionOn : NSEventMaskLeftMouseUp | NSEventMaskRightMouseUp]; + statusItem.visible = YES; + interp = interpreter; + b1_callback = NULL; + b3_callback = NULL; + return self; +} + +- (void) setImagewithImage : (NSImage *) image +{ + icon = nil; + icon = image; + statusItem.button.image = icon; +} + +- (void) setTextwithString : (NSString *) string +{ + tooltip = nil; + tooltip = string; + statusItem.button.toolTip = tooltip; +} + +- (void) setB1Callback : (Tcl_Obj *) obj +{ + if (obj != NULL) { + Tcl_IncrRefCount(obj); + } + if (b1_callback != NULL) { + Tcl_DecrRefCount(b1_callback); + } + b1_callback = obj; +} + +- (void) setB3Callback : (Tcl_Obj *) obj +{ + if (obj != NULL) { + Tcl_IncrRefCount(obj); + } + if (b3_callback != NULL) { + Tcl_DecrRefCount(b3_callback); + } + b3_callback = obj; +} + +- (void) clickOnStatusItem +{ + NSEvent *event = [NSApp currentEvent]; + if (([event type] == NSEventTypeLeftMouseUp) && (b1_callback != NULL)) { + int result = Tcl_EvalObjEx(interp, b1_callback, TCL_EVAL_GLOBAL); + if (result != TCL_OK) { + Tcl_BackgroundException(interp, result); + } + } else { + if (([event type] == NSEventTypeRightMouseUp) && (b3_callback != NULL)) { + int result = Tcl_EvalObjEx(interp, b3_callback, TCL_EVAL_GLOBAL); + if (result != TCL_OK) { + Tcl_BackgroundException(interp, result); + } + } + } +} +- (void) dealloc +{ + [statusBar removeStatusItem: statusItem]; + if (b1_callback != NULL) { + Tcl_DecrRefCount(b1_callback); + } + if (b3_callback != NULL) { + Tcl_DecrRefCount(b3_callback); + } + [super dealloc]; +} + +@end + +/* + * Type used for the ClientData of a MacSystrayObjCmd instance. + */ + +typedef TkStatusItem** StatusItemInfo; + + + +/* + *---------------------------------------------------------------------- + * + * MacSystrayDestroy -- + * + * Removes an intepreters icon from the status bar. + * + * Results: + * None. + * + * Side effects: + * The icon is removed and memory is freed. + * + *---------------------------------------------------------------------- + */ + +static void +MacSystrayDestroy( + void *clientData) +{ + StatusItemInfo info = (StatusItemInfo)clientData; + if (info) { + [*info release]; + ckfree(info); + } +} + +/* + *---------------------------------------------------------------------- + * + * MacSystrayObjCmd -- + * + * Main command for creating, displaying, and removing icons from the + * status bar. + * + * Results: + * + * A standard Tcl result. + * + * Side effects: + * + * Management of icon display in the status bar. + * + *---------------------------------------------------------------------- + */ + +static int +MacSystrayObjCmd( + void *clientData, + Tcl_Interp * interp, + int objc, + Tcl_Obj *const *objv) +{ + Tk_Image tk_image; + int result, idx; + static const char *options[] = + {"create", "modify", "destroy", NULL}; + typedef enum {TRAY_CREATE, TRAY_MODIFY, TRAY_DESTROY} optionsEnum; + static const char *modifyOptions[] = + {"image", "text", "b1_callback", "b3_callback", NULL}; + typedef enum {TRAY_IMAGE, TRAY_TEXT, TRAY_B1_CALLBACK, TRAY_B3_CALLBACK + } modifyOptionsEnum; + + if ([NSApp macOSVersion] < 101000) { + Tcl_AppendResult(interp, + "StatusItem icons not supported on macOS versions lower than 10.10", + NULL); + return TCL_OK; + } + + StatusItemInfo info = (StatusItemInfo)clientData; + TkStatusItem *statusItem = *info; + + if (objc < 2) { + Tcl_WrongNumArgs(interp, 1, objv, "create | modify | destroy"); + return TCL_ERROR; + } + + result = Tcl_GetIndexFromObjStruct(interp, objv[1], options, + sizeof(char *), "command", 0, &idx); + + if (result != TCL_OK) { + return TCL_ERROR; + } + switch((optionsEnum)idx) { + case TRAY_CREATE: { + + if (objc < 3 || objc > 6) { + Tcl_WrongNumArgs(interp, 1, objv, "create -image -text -button1 -button3"); + return TCL_ERROR; + } + + if (statusItem == NULL) { + statusItem = [[TkStatusItem alloc] init: interp]; + *info = statusItem; + } else { + Tcl_AppendResult(interp, "Only one system tray icon supported per interpreter", NULL); + return TCL_ERROR; + } + + /* + * Create the icon. + */ + + int width, height; + Tk_Window tkwin = Tk_MainWindow(interp); + TkWindow *winPtr = (TkWindow *)tkwin; + Display *d = winPtr->display; + NSImage *icon; + + tk_image = Tk_GetImage(interp, tkwin, Tcl_GetString(objv[2]), NULL, NULL); + if (tk_image == NULL) { + return TCL_ERROR; + } + + Tk_SizeOfImage(tk_image, &width, &height); + if (width != 0 && height != 0) { + icon = TkMacOSXGetNSImageFromTkImage(d, tk_image, + width, height); + [statusItem setImagewithImage: icon]; + Tk_FreeImage(tk_image); + } + + /* + * Set the text for the tooltip. + */ + + NSString *tooltip = [NSString stringWithUTF8String: Tcl_GetString(objv[3])]; + if (tooltip == nil) { + Tcl_AppendResult(interp, " unable to set tooltip for systray icon", NULL); + return TCL_ERROR; + } + + [statusItem setTextwithString: tooltip]; + + /* + * Set the proc for the callback. + */ + + [statusItem setB1Callback : (objc > 4) ? objv[4] : NULL]; + [statusItem setB3Callback : (objc > 5) ? objv[5] : NULL]; + break; + + } + case TRAY_MODIFY: { + if (objc != 4) { + Tcl_WrongNumArgs(interp, 1, objv, "modify object item"); + return TCL_ERROR; + } + + /* + * Modify the icon. + */ + + result = Tcl_GetIndexFromObjStruct(interp, objv[2], modifyOptions, + sizeof(char *), "option", 0, &idx); + + if (result != TCL_OK) { + return TCL_ERROR; + } + switch ((modifyOptionsEnum)idx) { + case TRAY_IMAGE: { + Tk_Window tkwin = Tk_MainWindow(interp); + TkWindow *winPtr = (TkWindow *)tkwin; + Display *d = winPtr -> display; + NSImage *icon; + int width, height; + + tk_image = Tk_GetImage(interp, tkwin, Tcl_GetString(objv[3]), NULL, NULL); + if (tk_image == NULL) { + Tcl_AppendResult(interp, " unable to obtain image for systray icon", + NULL); + return TCL_ERROR; + } + + Tk_SizeOfImage(tk_image, &width, &height); + if (width != 0 && height != 0) { + icon = TkMacOSXGetNSImageFromTkImage(d, tk_image, + width, height); + [statusItem setImagewithImage: icon]; + } + Tk_FreeImage(tk_image); + break; + } + + /* + * Modify the text for the tooltip. + */ + + case TRAY_TEXT: { + NSString *tooltip = [NSString stringWithUTF8String:Tcl_GetString(objv[3])]; + if (tooltip == nil) { + Tcl_AppendResult(interp, "unable to set tooltip for systray icon", + NULL); + return TCL_ERROR; + } + + [statusItem setTextwithString: tooltip]; + break; + } + + /* + * Modify the proc for the callback. + */ + + case TRAY_B1_CALLBACK: { + [statusItem setB1Callback : objv[3]]; + break; + } + case TRAY_B3_CALLBACK: { + [statusItem setB3Callback : objv[3]]; + break; + } + } + break; + } + + case TRAY_DESTROY: { + /* + * Set all properties to nil, and release statusItem. + */ + [statusItem setImagewithImage: nil]; + [statusItem setTextwithString: nil]; + [statusItem setB1Callback : NULL]; + [statusItem setB3Callback : NULL]; + [statusItem release]; + *info = NULL; + statusItem = NULL; + break; + } + } + + return TCL_OK; +} + +/* + *---------------------------------------------------------------------- + * + * SysNotifyObjCmd -- + * + * Create system notification. + * + * Results: + * + * A standard Tcl result. + * + * Side effects: + * + * System notifications are posted. + * + *-------------------------------z--------------------------------------- + */ + +static int SysNotifyObjCmd( + TCL_UNUSED(void *), + Tcl_Interp * interp, + int objc, + Tcl_Obj *const *objv) +{ + if (objc < 3) { + Tcl_WrongNumArgs(interp, 1, objv, "title message"); + return TCL_ERROR; + } + + if ([NSApp macOSVersion] < 101000) { + Tcl_AppendResult(interp, + "Notifications not supported on macOS versions lower than 10.10", + NULL); + return TCL_OK; + } + + /* + * Using NSAppleScript API here allows us to use a single API rather + * than multiple, some deprecated, API's, and also allows notifications + * to work correctly without requiring Wish to be code-signed - an + * undocumented but apparently consistent requirement. And by calling + * NSAppleScript inline rather than shelling to out osascript, + * Wish shows correctly as the calling app rather than Script Editor. + */ + + NSString *title = [NSString stringWithUTF8String: Tcl_GetString(objv[1])]; + NSString *message = [NSString stringWithUTF8String: Tcl_GetString(objv[2])]; + NSMutableString *notify = [NSMutableString new]; + [notify appendString: @"display notification "]; + [notify appendString:@"\""]; + [notify appendString:message]; + [notify appendString:@"\""]; + [notify appendString:@" with title \""]; + [notify appendString:title]; + [notify appendString:@"\""]; + NSAppleScript *scpt = [[[NSAppleScript alloc] initWithSource:notify] autorelease]; + NSDictionary *errorInfo; + NSAppleEventDescriptor *result = [scpt executeAndReturnError:&errorInfo]; + NSString *info = [result stringValue]; + const char* output = [info UTF8String]; + + Tcl_AppendResult(interp, + output, + NULL); + + return TCL_OK; +} + + +/* + *---------------------------------------------------------------------- + * + * MacSystrayInit -- + * + * Initialize this package and create script-level commands. + * This is called from TkpInit for each interpreter. + * + * Results: + * + * A standard Tcl result. + * + * Side effects: + * + * The tk systray and tk sysnotify commands are installed in an + * interpreter + * + *---------------------------------------------------------------------- + */ + +int +MacSystrayInit(Tcl_Interp *interp) +{ + + /* + * Initialize the TkStatusItem for this interpreter. + */ + + StatusItemInfo info = (StatusItemInfo) ckalloc(sizeof(StatusItemInfo)); + *info = 0; + + Tcl_CreateObjCommand(interp, "::tk::systray::_systray", MacSystrayObjCmd, info, + MacSystrayDestroy); + Tcl_CreateObjCommand(interp, "::tk::sysnotify::_sysnotify", SysNotifyObjCmd, NULL, NULL); + return TCL_OK; +} + + +/* + * Local Variables: + * mode: objc + * c-basic-offset: 4 + * fill-column: 79 + * coding: utf-8 + * End: + */ diff --git a/macosx/tkMacOSXTest.c b/macosx/tkMacOSXTest.c index e7e2a7e..0e0b06b 100644 --- a/macosx/tkMacOSXTest.c +++ b/macosx/tkMacOSXTest.c @@ -21,7 +21,7 @@ * Forward declarations of procedures defined later in this file: */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1080 +#if !defined(NDEBUG) && MAC_OS_X_VERSION_MAX_ALLOWED < 1080 static Tcl_ObjCmdProc DebuggerObjCmd; #endif static Tcl_ObjCmdProc PressButtonObjCmd; @@ -55,7 +55,7 @@ TkplatformtestInit( * Add commands for platform specific tests on MacOS here. */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1080 +#if !defined(NDEBUG) && MAC_OS_X_VERSION_MAX_ALLOWED < 1080 Tcl_CreateObjCommand(interp, "debugger", DebuggerObjCmd, NULL, NULL); #endif Tcl_CreateObjCommand(interp, "pressbutton", PressButtonObjCmd, NULL, NULL); @@ -82,13 +82,13 @@ TkplatformtestInit( *---------------------------------------------------------------------- */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1080 +#if !defined(NDEBUG) && MAC_OS_X_VERSION_MAX_ALLOWED < 1080 static int DebuggerObjCmd( - TCL_UNUSED(void *), /* Not used. */ - TCL_UNUSED(Tcl_Interp *), /* Not used. */ - TCL_UNUSED(int), /* Not used. */ - TCL_UNUSED(Tcl_Obj *const *) /* Not used. */ + TCL_UNUSED(void *), + TCL_UNUSED(Tcl_Interp *), + TCL_UNUSED(int), + TCL_UNUSED(Tcl_Obj *const *)) { Debugger(); return TCL_OK; @@ -124,7 +124,7 @@ MenuBarHeightObjCmd( if (height == 0) { height = (int) [[NSApp mainMenu] menuBarHeight]; } - Tcl_SetObjResult(interp, Tcl_NewIntObj(height)); + Tcl_SetObjResult(interp, Tcl_NewWideIntObj(height)); return TCL_OK; } @@ -356,12 +356,12 @@ InjectKeyEventObjCmd( Tcl_Obj *const objv[]) { static const char *const optionStrings[] = { - "press", "release", "flagschanged", NULL}; - NSUInteger types[3] = {NSKeyDown, NSKeyUp, NSFlagsChanged}; + "flagschanged", "press", "release", NULL}; + NSUInteger types[3] = {NSFlagsChanged, NSKeyDown, NSKeyUp}; static const char *const argStrings[] = { - "-shift", "-control", "-option", "-command", "-function", "-x", "-y", NULL}; - enum args {KEYEVENT_SHIFT, KEYEVENT_CONTROL, KEYEVENT_OPTION, KEYEVENT_COMMAND, - KEYEVENT_FUNCTION, KEYEVENT_X, KEYEVENT_Y}; + "-command", "-control", "-function", "-option", "-shift", "-x", "-y", NULL}; + enum args {KEYEVENT_COMMAND, KEYEVENT_CONTROL, KEYEVENT_FUNCTION, KEYEVENT_OPTION, + KEYEVENT_SHIFT, KEYEVENT_X, KEYEVENT_Y}; int i, index, keysym, mods = 0, x = 0, y = 0; NSString *chars = nil, *unmod = nil, *upper, *lower; NSEvent *keyEvent; diff --git a/macosx/tkMacOSXWindowEvent.c b/macosx/tkMacOSXWindowEvent.c index 09112ee..e261bee 100644 --- a/macosx/tkMacOSXWindowEvent.c +++ b/macosx/tkMacOSXWindowEvent.c @@ -15,7 +15,7 @@ #include "tkMacOSXPrivate.h" #include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXDebug.h" #include "tkMacOSXConstants.h" @@ -422,7 +422,7 @@ static void RefocusGrabWindow(void *data) { "::tk::mac::OnShow" : "::tk::mac::OnHide"); if (_eventInterp && Tcl_FindCommand(_eventInterp, cmd, NULL, 0)) { - int code = Tcl_EvalEx(_eventInterp, cmd, -1, TCL_EVAL_GLOBAL); + int code = Tcl_EvalEx(_eventInterp, cmd, TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (code != TCL_OK) { Tcl_BackgroundException(_eventInterp, code); @@ -572,7 +572,7 @@ GenerateUpdates( */ if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr != NULL && Tk_IsMapped(childPtr)) { GenerateUpdates(updateBounds, childPtr); } @@ -871,7 +871,7 @@ TkWmProtocolEventProc( Tcl_Preserve(protPtr); interp = protPtr->interp; Tcl_Preserve(interp); - result = Tcl_EvalEx(interp, protPtr->command, -1, TCL_EVAL_GLOBAL); + result = Tcl_EvalEx(interp, protPtr->command, TCL_INDEX_NONE, TCL_EVAL_GLOBAL); if (result != TCL_OK) { Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( "\n (command for \"%s\" window manager protocol)", @@ -945,7 +945,7 @@ Tk_MacOSXIsAppInFront(void) static Tk_RestrictAction ExposeRestrictProc( - ClientData arg, + void *arg, XEvent *eventPtr) { return (eventPtr->type==Expose && eventPtr->xany.serial==PTR2UINT(arg) @@ -1089,7 +1089,7 @@ ConfigureRestrictProc( if (winPtr) { unsigned int width = (unsigned int)newsize.width; unsigned int height=(unsigned int)newsize.height; - ClientData oldArg; + void *oldArg; Tk_RestrictProc *oldProc; /* @@ -1154,7 +1154,7 @@ ConfigureRestrictProc( int updatesNeeded; CGRect updateBounds; TkWindow *winPtr = TkMacOSXGetTkWindow([self window]); - ClientData oldArg; + void *oldArg; Tk_RestrictProc *oldProc; if (!winPtr) { return; @@ -1233,9 +1233,9 @@ static const char *const accentNames[] = { static const char *defaultColor = NULL; if (effectiveAppearanceName == NSAppearanceNameAqua) { - TkSendVirtualEvent(tkwin, "LightAqua", NULL); + Tk_SendVirtualEvent(tkwin, "LightAqua", NULL); } else if (effectiveAppearanceName == NSAppearanceNameDarkAqua) { - TkSendVirtualEvent(tkwin, "DarkAqua", NULL); + Tk_SendVirtualEvent(tkwin, "DarkAqua", NULL); } if (!defaultColor) { defaultColor = [NSApp macOSVersion] < 110000 ? "Blue" : "Multicolor"; @@ -1250,7 +1250,7 @@ static const char *const accentNames[] = { snprintf(data, 256, "Appearance %s Accent %s Highlight %s", effectiveAppearanceName.UTF8String, accentName, highlightName); - TkSendVirtualEvent(tkwin, "AppearanceChanged", Tcl_NewStringObj(data, -1)); + Tk_SendVirtualEvent(tkwin, "AppearanceChanged", Tcl_NewStringObj(data, TCL_INDEX_NONE)); } - (void)observeValueForKeyPath:(NSString *)keyPath diff --git a/macosx/tkMacOSXWm.c b/macosx/tkMacOSXWm.c index 2fa9434..2f134f7 100644 --- a/macosx/tkMacOSXWm.c +++ b/macosx/tkMacOSXWm.c @@ -18,7 +18,7 @@ #include "tkMacOSXPrivate.h" #include "tkScrollbar.h" #include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include "tkMacOSXDebug.h" #include "tkMacOSXConstants.h" @@ -37,7 +37,7 @@ */ /* - * Window attributes and classes + * Carbon window attributes and classes. */ #define WM_NSMASK_SHIFT 36 @@ -111,7 +111,8 @@ static const struct { .defaultAttrs = kWindowHideOnSuspendAttribute, .forceOnAttrs = kWindowNoTitleBarAttribute | kWindowDoesNotCycleAttribute, - .flags = WM_TOPMOST, }, + .flags = WM_TOPMOST, + .styleMask = 0}, [kSheetWindowClass] = { .validAttrs = kWindowResizableAttribute, .forceOnAttrs = kWindowNoTitleBarAttribute | @@ -150,19 +151,161 @@ static const struct { (macClassAttrs[(class)].forceOnAttrs & ~kWindowResizableAttribute))) /* - * Data for [wm attributes] command: + * Structures and data for the wm attributes command (macOS 10.13 and later): + */ + +/* Hash tables for attributes which can be set before a window exists */ +static Tcl_HashTable pathnameToSubclass; +static Tcl_HashTable pathnameToTabbingId; +static Tcl_HashTable pathnameToTabbingMode; + +enum NSWindowSubclass { + subclassNSWindow = 0, + subclassNSPanel = 1 +}; +/* This array must be indexed by the enum above.*/ +static const char *subclassNames[] = {"nswindow", "nspanel", NULL}; + +typedef struct buttonField_t { + unsigned zoom: 1; + unsigned miniaturize: 1; + unsigned close: 1; +} buttonField; + +/* The order of these names must match the order of the bits above! */ +static const char *buttonNames[] = {"zoom", "miniaturize", "close", NULL}; + +typedef union windowButtonState_t { + int intvalue; + buttonField bits; +} windowButtonState; + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 +enum NSWindowClass { + NSWindowClass_any = 0, + NSWindowClass_window = 1, + NSWindowClass_panel = 2 +}; +typedef struct styleMaskBit_t { + const char *bitname; + unsigned long bitvalue; + enum NSWindowClass allowed; +} styleMaskBit; + +static const styleMaskBit styleMaskBits[] = { + /* Make the titlebar visible and use round corners. */ + {"titled", NSWindowStyleMaskTitled, NSWindowClass_window}, + /* Enable the close button. */ + {"closable", NSWindowStyleMaskClosable, NSWindowClass_window}, + /* Enable the miniaturize button. */ + {"miniaturizable", NSWindowStyleMaskMiniaturizable, NSWindowClass_window}, + /* Allow the user to resize the window. */ + {"resizable", NSWindowStyleMaskResizable, NSWindowClass_window}, + /* + * Make the content view extend under the titlebar. We force + * titlebarAppearsTransparent when this bit is set. Otherwise it is + * pretty useless. + */ + {"fullsizecontentview", NSWindowStyleMaskFullSizeContentView, NSWindowClass_window}, + /* Rounded corners, cannot have a titlebar (overrides titled bit). */ + {"docmodal", NSWindowStyleMaskDocModalWindow, NSWindowClass_any}, + /* ============================================ + * The following bits are only valid for panels. + */ + /* Make the title bar thinner. */ + {"utility", NSWindowStyleMaskUtilityWindow, NSWindowClass_panel}, + /* Do not activate the app when the window is activated. */ + {"nonactivatingpanel", NSWindowStyleMaskNonactivatingPanel, NSWindowClass_panel}, + /* + * Requires utility. Cannot be resizable. Close button is an X; no other buttons. + * Cannot be a docmodal. + */ + {"HUDwindow", NSWindowStyleMaskHUDWindow, NSWindowClass_panel}, + {NULL, 0, NSWindowClass_any} +}; + +typedef struct tabbingMode_t { + const char *modeName; + long modeValue; +} tabbingMode; + +static const tabbingMode tabbingModes[] = { + {"auto", NSWindowTabbingModeAutomatic}, + {"disallowed", NSWindowTabbingModeDisallowed}, + {"preferred", NSWindowTabbingModePreferred}, + {NULL, -1} +}; + +static const char *const appearanceStrings[] = { + "aqua", "auto", "darkaqua", NULL +}; +enum appearances { + APPEARANCE_AQUA, APPEARANCE_AUTO, APPEARANCE_DARKAQUA +}; + +static Bool wantsToBeTab(NSWindow *macWindow) { + Bool result; + switch ([macWindow tabbingMode]) { + case NSWindowTabbingModeDisallowed: + result = False; + break; + case NSWindowTabbingModePreferred: + result = True; + break; + case NSWindowTabbingModeAutomatic: + result = ([NSWindow userTabbingPreference] == + NSWindowUserTabbingPreferenceAlways); + break; + default: + result = False; + break; + } + return result; +} + +/* + * Helper for the tkLayoutChanged methods. Synchronizes Tk's understanding of + * the bounds of a contentView with the window's. It is needed because there + * are situations when the window manager can change the layout of an NSWindow + * without having been requested to do so by Tk. Examples are when a window + * goes FullScreen or shows a tab bar. NSWindow methods which involve such + * layout changes should be overridden or protected by methods which call this. */ +static void syncLayout(NSWindow *macWindow) +{ + TkWindow *winPtr = TkMacOSXGetTkWindow(macWindow); + + if (winPtr) { + // Using screen coordinates with origin at bottom left. + NSRect frameRect = [macWindow frame]; + // This accounts for the tab bar, if there is one. + NSRect contentRect = [macWindow contentRectForFrameRect: frameRect]; + WmInfo *wmPtr = winPtr->wmInfoPtr; + + // The parent includes the title bar, tab bar and window frame. + wmPtr->xInParent = frameRect.origin.x - contentRect.origin.x; + wmPtr->yInParent = (frameRect.origin.y + frameRect.size.height - + contentRect.origin.y - contentRect.size.height); + wmPtr->parentWidth = winPtr->changes.width + frameRect.size.width - + contentRect.size.width; + wmPtr->parentHeight = winPtr->changes.height + frameRect.size.height - + contentRect.size.height; + } +} +#endif + typedef enum { - WMATT_ALPHA, WMATT_FULLSCREEN, WMATT_MODIFIED, WMATT_NOTIFY, - WMATT_TITLEPATH, WMATT_TOPMOST, WMATT_TRANSPARENT, - WMATT_TYPE, _WMATT_LAST_ATTRIBUTE + WMATT_ALPHA, WMATT_APPEARANCE, WMATT_BUTTONS, WMATT_FULLSCREEN, + WMATT_ISDARK, WMATT_MODIFIED, WMATT_NOTIFY, WMATT_TITLEPATH, WMATT_TOPMOST, + WMATT_TRANSPARENT, WMATT_STYLEMASK, WMATT_CLASS, WMATT_TABBINGID, + WMATT_TABBINGMODE, WMATT_TYPE, _WMATT_LAST_ATTRIBUTE } WmAttribute; static const char *const WmAttributeNames[] = { - "-alpha", "-fullscreen", "-modified", "-notify", - "-titlepath", "-topmost", "-transparent", - "-type", NULL + "-alpha", "-appearance", "-buttons", "-fullscreen", "-isdark", "-modified", + "-notify", "-titlepath", "-topmost", "-transparent", "-stylemask", "-class", + "-tabbingid", "-tabbingmode", "-type", NULL }; /* @@ -178,12 +321,12 @@ static int wmTracing = 0; * of top-level windows. */ -static void TopLevelReqProc(ClientData dummy, Tk_Window tkwin); +static void TopLevelReqProc(void *dummy, Tk_Window tkwin); static const Tk_GeomMgr wmMgrType = { "wm", /* name */ TopLevelReqProc, /* requestProc */ - NULL, /* lostSlaveProc */ + NULL, /* lostContentProc */ }; /* @@ -193,123 +336,124 @@ static const Tk_GeomMgr wmMgrType = { static int tkMacOSXWmAttrNotifyVal = 0; /* - * Forward declarations for procedures defined in this file: + * Declarations of static functions defined in this file: */ static NSRect InitialWindowBounds(TkWindow *winPtr, NSWindow *macWindow); static int ParseGeometry(Tcl_Interp *interp, char *string, TkWindow *winPtr); -static void TopLevelEventProc(ClientData clientData, +static void TopLevelEventProc(void *clientData, XEvent *eventPtr); static void WmStackorderToplevelWrapperMap(TkWindow *winPtr, Display *display, Tcl_HashTable *table); -static void UpdateGeometryInfo(ClientData clientData); +static void UpdateGeometryInfo(void *clientData); static void UpdateSizeHints(TkWindow *winPtr); static void UpdateVRootGeometry(WmInfo *wmPtr); static int WmAspectCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmAttributesCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmClientCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmColormapwindowsCmd(Tk_Window tkwin, - TkWindow *winPtr, Tcl_Interp *interp, int objc, + TkWindow *winPtr, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmCommandCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmDeiconifyCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmFocusmodelCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmForgetCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmFrameCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmGeometryCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmGridCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmGroupCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, + Tcl_Obj *const objv[]); +static int WmIconbadgeCmd(Tk_Window tkwin, TkWindow *winPtr, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconbitmapCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconifyCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconmaskCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconnameCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconphotoCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconpositionCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmIconwindowCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmManageCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmMaxsizeCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmMinsizeCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmOverrideredirectCmd(Tk_Window tkwin, - TkWindow *winPtr, Tcl_Interp *interp, int objc, + TkWindow *winPtr, Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmPositionfromCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmProtocolCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmResizableCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmSizefromCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmStackorderCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmStateCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmTitleCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmTransientCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static int WmWithdrawCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, + Tcl_Interp *interp, Tcl_Size objc, Tcl_Obj *const objv[]); static void WmUpdateGeom(WmInfo *wmPtr, TkWindow *winPtr); static int WmWinStyle(Tcl_Interp *interp, TkWindow *winPtr, - int objc, Tcl_Obj *const objv[]); -static int WmWinTabbingId(Tcl_Interp *interp, TkWindow *winPtr, - int objc, Tcl_Obj *const objv[]); + Tcl_Size objc, Tcl_Obj *const objv[]); static int WmWinAppearance(Tcl_Interp *interp, TkWindow *winPtr, - int objc, Tcl_Obj *const objv[]); + Tcl_Size objc, Tcl_Obj *const objv[]); static void ApplyWindowAttributeFlagChanges(TkWindow *winPtr, NSWindow *macWindow, UInt64 oldAttributes, int oldFlags, int create, int initial); @@ -323,6 +467,90 @@ static void RemapWindows(TkWindow *winPtr, MacDrawable *parentWin); static void RemoveTransient(TkWindow *winPtr); +#if MAC_OS_X_VERSION_MAX_ALLOWED > 101300 + +/* + * Add a window as a tab in the group specified by its tabbingid, or + * make it a standalone window if it is the only window with that + * tabbingid. Adjust the window size if a tab bar appeared or + * disappeared. + */ + +static void placeAsTab(TKWindow *macWindow) { + TkWindow *winPtr = NULL, *winPtr2 = NULL; + TKWindow *target = NULL, *sibling = NULL; + NSString *identifier = [macWindow tabbingIdentifier]; + if (!wantsToBeTab(macWindow)) { + [macWindow moveTabToNewWindow:NSApp]; + [(TKWindow *)target tkLayoutChanged]; + return; + } + for (NSWindow *window in [NSApp windows]) { + if (window == macWindow) { + continue; + } + if ([identifier isEqualTo: [window tabbingIdentifier]] && + wantsToBeTab(window)) { + target = (TKWindow*) window; + syncLayout(target); + break; + } + } + syncLayout(macWindow); + NSArray<NSWindow *> *tabs = [macWindow tabbedWindows]; + if ([tabs count] == 2) { + sibling = tabs[0] == macWindow ? (TKWindow *)tabs[1] : (TKWindow *)tabs[0]; + syncLayout(sibling); + winPtr2 = TkMacOSXGetTkWindow(sibling); + } + if (target) { + CGFloat winHeight = [macWindow contentRectForFrameRect: + [macWindow frame]].size.height; + CGFloat winDelta = 0, targetHeight, targetDelta = 0; + targetHeight = [target contentRectForFrameRect: + [target frame]].size.height; + [target addTabbedWindow:macWindow ordered:NSWindowAbove]; + targetDelta = targetHeight - [target contentRectForFrameRect: + [target frame]].size.height; + winDelta = winHeight - [target contentRectForFrameRect: + [target frame]].size.height; + if (winDelta) { + winPtr = TkMacOSXGetTkWindow(macWindow); + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + winPtr->changes.width, winPtr->changes.height + winDelta ); + if (sibling) { + winPtr = TkMacOSXGetTkWindow(sibling); + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + winPtr->changes.width, winPtr->changes.height - winDelta ); + } + } + if (targetDelta) { + winPtr = TkMacOSXGetTkWindow(target); + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + winPtr->changes.width, winPtr->changes.height + targetDelta ); + } + } else { + CGFloat height = [macWindow contentRectForFrameRect: + [macWindow frame]].size.height; + [macWindow moveTabToNewWindow:NSApp]; + CGFloat delta = height - [macWindow contentRectForFrameRect: + [macWindow frame]].size.height; + winPtr = TkMacOSXGetTkWindow(macWindow); + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + winPtr->changes.width, winPtr->changes.height + delta); + if (winPtr2) { + XMoveResizeWindow(winPtr2->display, winPtr2->window, + winPtr2->changes.x, winPtr2->changes.y, + winPtr2->changes.width, winPtr2->changes.height + delta ); + } + } +} +#endif + #pragma mark NSWindow(TKWm) @implementation NSWindow(TKWm) @@ -349,13 +577,18 @@ static void RemoveTransient(TkWindow *winPtr); return [self convertRectFromScreen:pointrect].origin; } #endif - @end #pragma mark - @implementation TKPanel: NSPanel @synthesize tkWindow = _tkWindow; + +- (void) tkLayoutChanged +{ + syncLayout(self); +} + @end @implementation TKDrawerWindow: NSWindow @@ -370,44 +603,12 @@ static void RemoveTransient(TkWindow *winPtr); @implementation TKWindow(TKWm) -/* - * This method synchronizes Tk's understanding of the bounds of a contentView - * with the window's. It is needed because there are situations when the - * window manager can change the layout of an NSWindow without having been - * requested to do so by Tk. Examples are when a window goes FullScreen or - * shows a tab bar. NSWindow methods which involve such layout changes should - * be overridden or protected by methods which call this. - */ - - (void) tkLayoutChanged { - TkWindow *winPtr = TkMacOSXGetTkWindow(self); - - if (winPtr) { - NSRect frameRect; - - /* - * This avoids including the title bar for full screen windows - * but does include it for normal windows. - */ - - if ([self styleMask] & NSFullScreenWindowMask) { - frameRect = [NSWindow frameRectForContentRect:NSZeroRect - styleMask:[self styleMask]]; - } else { - frameRect = [self frameRectForContentRect:NSZeroRect]; - } - - WmInfo *wmPtr = winPtr->wmInfoPtr; - - wmPtr->xInParent = -frameRect.origin.x; - wmPtr->yInParent = frameRect.origin.y + frameRect.size.height; - wmPtr->parentWidth = winPtr->changes.width + frameRect.size.width; - wmPtr->parentHeight = winPtr->changes.height + frameRect.size.height; - } + syncLayout(self); } -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101200 +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 - (void)toggleTabBar:(id)sender { TkWindow *winPtr = TkMacOSXGetTkWindow(self); @@ -725,6 +926,8 @@ TkWmNewWindow( wmPtr->window = nil; winPtr->wmInfoPtr = wmPtr; + // initialize wmPtr->NSWindowSubclass here + UpdateVRootGeometry(wmPtr); /* @@ -1155,7 +1358,7 @@ TkWmSetClass( int Tk_WmObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ @@ -1164,7 +1367,7 @@ Tk_WmObjCmd( static const char *const optionStrings[] = { "aspect", "attributes", "client", "colormapwindows", "command", "deiconify", "focusmodel", "forget", - "frame", "geometry", "grid", "group", + "frame", "geometry", "grid", "group", "iconbadge", "iconbitmap", "iconify", "iconmask", "iconname", "iconphoto", "iconposition", "iconwindow", "manage", "maxsize", "minsize", "overrideredirect", @@ -1174,7 +1377,7 @@ Tk_WmObjCmd( enum options { WMOPT_ASPECT, WMOPT_ATTRIBUTES, WMOPT_CLIENT, WMOPT_COLORMAPWINDOWS, WMOPT_COMMAND, WMOPT_DEICONIFY, WMOPT_FOCUSMODEL, WMOPT_FORGET, - WMOPT_FRAME, WMOPT_GEOMETRY, WMOPT_GRID, WMOPT_GROUP, + WMOPT_FRAME, WMOPT_GEOMETRY, WMOPT_GRID, WMOPT_GROUP, WMOPT_ICONBADGE, WMOPT_ICONBITMAP, WMOPT_ICONIFY, WMOPT_ICONMASK, WMOPT_ICONNAME, WMOPT_ICONPHOTO, WMOPT_ICONPOSITION, WMOPT_ICONWINDOW, WMOPT_MANAGE, WMOPT_MAXSIZE, WMOPT_MINSIZE, WMOPT_OVERRIDEREDIRECT, @@ -1182,7 +1385,7 @@ Tk_WmObjCmd( WMOPT_STACKORDER, WMOPT_STATE, WMOPT_TITLE, WMOPT_TRANSIENT, WMOPT_WITHDRAW }; int index; - int length; + Tcl_Size length; char *argv1; TkWindow *winPtr; @@ -1210,13 +1413,36 @@ Tk_WmObjCmd( sizeof(char *), "option", 0, &index) != TCL_OK) { return TCL_ERROR; } - if (objc < 3) { goto wrongNumArgs; } - - if (TkGetWindowFromObj(interp, tkwin, objv[2], (Tk_Window *) &winPtr) - != TCL_OK) { + if (index == WMOPT_ATTRIBUTES && objc == 5 && + strcmp(Tcl_GetString(objv[3]), "-class") == 0) { + if (TkGetWindowFromObj(NULL, tkwin, objv[2], (Tk_Window *) &winPtr) + == TCL_OK) { + if (winPtr->wmInfoPtr->window != NULL) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Cannot change the class after the mac window is created.",-1)); + Tcl_SetErrorCode(interp, "TK", "CLASS_CHANGE", NULL); + return TCL_ERROR; + } + } else { + winPtr = NULL; + } + } else if (index == WMOPT_ATTRIBUTES && objc == 5 && + strcmp(Tcl_GetString(objv[3]), "-tabbingid") == 0) { + if (TkGetWindowFromObj(NULL, tkwin, objv[2], (Tk_Window *) &winPtr) + != TCL_OK) { + winPtr = NULL; + } + } else if (index == WMOPT_ATTRIBUTES && objc == 5 && + strcmp(Tcl_GetString(objv[3]), "-tabbingmode") == 0) { + if (TkGetWindowFromObj(NULL, tkwin, objv[2], (Tk_Window *) &winPtr) + != TCL_OK) { + winPtr = NULL; + } + } else if (TkGetWindowFromObj(interp, tkwin, objv[2], (Tk_Window *) &winPtr) + != TCL_OK) { return TCL_ERROR; } if (winPtr && !Tk_IsTopLevel(winPtr) @@ -1253,6 +1479,8 @@ Tk_WmObjCmd( return WmGridCmd(tkwin, winPtr, interp, objc, objv); case WMOPT_GROUP: return WmGroupCmd(tkwin, winPtr, interp, objc, objv); + case WMOPT_ICONBADGE: + return WmIconbadgeCmd(tkwin, winPtr, interp, objc, objv); case WMOPT_ICONBITMAP: return WmIconbitmapCmd(tkwin, winPtr, interp, objc, objv); case WMOPT_ICONIFY: @@ -1321,7 +1549,7 @@ WmAspectCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -1336,10 +1564,10 @@ WmAspectCmd( if (wmPtr->sizeHintsFlags & PAspect) { Tcl_Obj *results[4]; - results[0] = Tcl_NewIntObj(wmPtr->minAspect.x); - results[1] = Tcl_NewIntObj(wmPtr->minAspect.y); - results[2] = Tcl_NewIntObj(wmPtr->maxAspect.x); - results[3] = Tcl_NewIntObj(wmPtr->maxAspect.y); + results[0] = Tcl_NewWideIntObj(wmPtr->minAspect.x); + results[1] = Tcl_NewWideIntObj(wmPtr->minAspect.y); + results[2] = Tcl_NewWideIntObj(wmPtr->maxAspect.x); + results[3] = Tcl_NewWideIntObj(wmPtr->maxAspect.y); Tcl_SetObjResult(interp, Tcl_NewListObj(4, results)); } return TCL_OK; @@ -1356,7 +1584,7 @@ WmAspectCmd( if ((numer1 <= 0) || (denom1 <= 0) || (numer2 <= 0) || (denom2 <= 0)) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "aspect number can't be <= 0", -1)); + "aspect number can't be <= 0", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "WM", "ASPECT", NULL); return TCL_ERROR; } @@ -1396,7 +1624,8 @@ WmSetAttribute( Tcl_Obj *value) /* New value */ { WmInfo *wmPtr = winPtr->wmInfoPtr; - int boolean; + int boolValue; + NSString *identifier; switch (attribute) { case WMATT_ALPHA: { @@ -1418,11 +1647,63 @@ WmSetAttribute( [macWindow setAlphaValue:dval]; break; } + case WMATT_APPEARANCE: { + int index; + if (Tcl_GetIndexFromObjStruct(interp, value, appearanceStrings, + sizeof(char *), "appearancename", 0, &index) != TCL_OK) { + return TCL_ERROR; + } + switch ((enum appearances) index) { + case APPEARANCE_AQUA: + macWindow.appearance = [NSAppearance appearanceNamed: + NSAppearanceNameAqua]; + break; + case APPEARANCE_DARKAQUA: +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 + if (@available(macOS 10.14, *)) { + macWindow.appearance = [NSAppearance appearanceNamed: + NSAppearanceNameDarkAqua]; + } +#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 + break; + default: + macWindow.appearance = nil; + } + break; + } + case WMATT_BUTTONS: { + windowButtonState state = {0}; + Tcl_Obj **elements; + Tcl_Size nElements, i; + if (Tcl_ListObjGetElements(interp, value, &nElements, &elements) == TCL_OK) { + int index = 0; + for (i = 0; i < nElements; i++) { + if (Tcl_GetIndexFromObjStruct(interp, elements[i], buttonNames, + sizeof(char *), "window button name", 0, &index) != TCL_OK) { + return TCL_ERROR; + } else { + state.intvalue |= (1 << index); + } + } + } else if (Tcl_GetIntFromObj(interp, value, &state.intvalue) != TCL_OK) { + return TCL_ERROR; + } + NSButton *closer = [macWindow standardWindowButton: + NSWindowCloseButton]; + NSButton *miniaturizer = [macWindow standardWindowButton: + NSWindowMiniaturizeButton]; + NSButton *zoomer = [macWindow standardWindowButton: + NSWindowZoomButton]; + closer.enabled = (state.bits.close != 0); + miniaturizer.enabled = (state.bits.miniaturize != 0); + zoomer.enabled = (state.bits.zoom != 0); + break; + } case WMATT_FULLSCREEN: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, value, &boolValue) != TCL_OK) { return TCL_ERROR; } - if (boolean != (([macWindow styleMask] & NSFullScreenWindowMask) != 0)) { + if (boolValue != (([macWindow styleMask] & NSFullScreenWindowMask) != 0)) { #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 [macWindow toggleFullScreen:macWindow]; #else @@ -1431,30 +1712,145 @@ WmSetAttribute( } break; case WMATT_MODIFIED: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, value, &boolValue) != TCL_OK) { return TCL_ERROR; } - if (boolean != [macWindow isDocumentEdited]) { - [macWindow setDocumentEdited:(BOOL)boolean]; + if (boolValue != [macWindow isDocumentEdited]) { + [macWindow setDocumentEdited:(BOOL)boolValue]; } break; case WMATT_NOTIFY: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, value, &boolValue) != TCL_OK) { return TCL_ERROR; } - if (boolean == !tkMacOSXWmAttrNotifyVal) { + if (boolValue == !tkMacOSXWmAttrNotifyVal) { static NSInteger request = -1; if (request >= 0) { [NSApp cancelUserAttentionRequest:request]; request = -1; } - if (boolean) { + if (boolValue) { request = [NSApp requestUserAttention:NSCriticalRequest]; } - tkMacOSXWmAttrNotifyVal = boolean; + tkMacOSXWmAttrNotifyVal = boolValue; + } + break; + case WMATT_STYLEMASK: { + unsigned long styleMaskValue = 0; + Tcl_Obj **elements; + Tcl_Size nElements, i; + if (Tcl_ListObjGetElements(interp, value, &nElements, &elements) == TCL_OK) { + int index; + for (i = 0; i < nElements; i++) { + if (Tcl_GetIndexFromObjStruct(interp, elements[i], styleMaskBits, + sizeof(styleMaskBit), "styleMask bit", 0, &index) != TCL_OK) { + return TCL_ERROR; + } else if (![macWindow isKindOfClass: [NSPanel class]] && + styleMaskBits[index].allowed == NSWindowClass_panel) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "styleMask bit \"%s\" can only be used with an NSPanel", + styleMaskBits[index].bitname)); + Tcl_SetErrorCode(interp, "TK", "INVALID_STYLEMASK_BIT", NULL); + return TCL_ERROR; + } else { + styleMaskValue |= styleMaskBits[index].bitvalue; + } + /* + * Be sure not to change the fullscreen bit. + */ + styleMaskValue |= (NSWindowStyleMaskFullScreen & macWindow.styleMask); + } + /* + * A resizable docmodal NSWindow or NSPanel does not work + * correctly. It cannot be resized from the top edge. Other bits, + * such as titled are ignored for docmodals. To be safe, we clear + * all other bits when the docmodal bit is set. + */ + if (styleMaskValue & NSDocModalWindowMask) { + styleMaskValue &= ~NSWindowStyleMaskResizable; + } + if ([macWindow isKindOfClass: [NSPanel class]]) { + /* + * We always make NSPanels titled, nonactivating utility windows, + * even if these bits are not requested in the command. + */ + if (!(styleMaskValue & NSWindowStyleMaskTitled) ) { + styleMaskValue |= NSWindowStyleMaskTitled; + styleMaskValue |= NSWindowStyleMaskUtilityWindow; + styleMaskValue |= NSWindowStyleMaskNonactivatingPanel; + } + } + if (styleMaskValue & NSWindowStyleMaskFullSizeContentView) { + macWindow.titlebarAppearsTransparent = YES; + } else { + macWindow.titlebarAppearsTransparent = NO; + } + } else { + return TCL_ERROR; + } + NSRect oldFrame = [macWindow frame]; +#ifdef DEBUG + fprintf(stderr, "Current styleMask: %lx\n", [macWindow styleMask]); + fprintf(stderr, "Setting styleMask to %lx\n", styleMaskValue); +#endif + macWindow.styleMask = (unsigned long) styleMaskValue; + NSRect newFrame = [macWindow frame]; + int heightDiff = newFrame.size.height - oldFrame.size.height; + int newHeight = heightDiff < 0 ? newFrame.size.height : + newFrame.size.height - heightDiff; + [(TKWindow *)macWindow tkLayoutChanged]; + if (heightDiff) { + //Calling XMoveResizeWindow twice is a hack to force a relayout + //of the window. + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + newFrame.size.width, newHeight - 1); + XMoveResizeWindow(winPtr->display, winPtr->window, + winPtr->changes.x, winPtr->changes.y, + newFrame.size.width, newHeight); + } + break; + } + case WMATT_TABBINGID: { + NSString *oldId = [macWindow tabbingIdentifier]; + char *valueString; + Tcl_Size length; + if ([NSApp macOSVersion] < 101300) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Tabbing identifiers require macOS 10.13", TCL_INDEX_NONE)); + Tcl_SetErrorCode(interp, "TK", "WM", "TABBINGID", NULL); + return TCL_ERROR; + } + valueString = Tcl_GetStringFromObj(value, &length); + identifier = [NSString stringWithUTF8String:valueString]; + [macWindow setTabbingIdentifier: identifier]; + + /* + * If the tabbingIdentifier of a tab is changed we move it into + * the tab group with that identifier. + */ + + if ([oldId compare:identifier] != NSOrderedSame) { + placeAsTab((TKWindow *)macWindow); } break; + } + case WMATT_TABBINGMODE: { + int index; + tabbingMode mode; + if (Tcl_GetIndexFromObjStruct(interp, value, tabbingModes, + sizeof(tabbingMode), "NSWindow Tabbing Mode", 0, &index) != TCL_OK) { + return TCL_ERROR; + } + mode = tabbingModes[index]; + [macWindow setTabbingMode: mode.modeValue]; + placeAsTab((TKWindow *)macWindow); + break; + } + case WMATT_ISDARK: { + break; + } case WMATT_TITLEPATH: { const char *path = (const char *)Tcl_FSGetNativePath(value); NSString *filename = @""; @@ -1466,13 +1862,13 @@ WmSetAttribute( break; } case WMATT_TOPMOST: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, value, &boolValue) != TCL_OK) { return TCL_ERROR; } - if (boolean != ((wmPtr->flags & WM_TOPMOST) != 0)) { + if (boolValue != ((wmPtr->flags & WM_TOPMOST) != 0)) { int oldFlags = wmPtr->flags; - if (boolean) { + if (boolValue) { wmPtr->flags |= WM_TOPMOST; } else { wmPtr->flags &= ~WM_TOPMOST; @@ -1482,14 +1878,14 @@ WmSetAttribute( } break; case WMATT_TRANSPARENT: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, value, &boolValue) != TCL_OK) { return TCL_ERROR; } - if (boolean != ((wmPtr->flags & WM_TRANSPARENT) != 0)) { + if (boolValue != ((wmPtr->flags & WM_TRANSPARENT) != 0)) { UInt64 oldAttributes = wmPtr->attributes; int oldFlags = wmPtr->flags; - if (boolean) { + if (boolValue) { wmPtr->flags |= WM_TRANSPARENT; wmPtr->attributes |= kWindowNoShadowAttribute; } else { @@ -1498,12 +1894,14 @@ WmSetAttribute( } ApplyWindowAttributeFlagChanges(winPtr, macWindow, oldAttributes, oldFlags, 1, 0); - [macWindow setBackgroundColor:boolean ? [NSColor clearColor] : nil]; - [macWindow setOpaque:!boolean]; + [macWindow setBackgroundColor:boolValue ? [NSColor clearColor] : nil]; + [macWindow setOpaque:!boolValue]; TkMacOSXInvalidateWindow((MacDrawable *)winPtr->window, TK_PARENT_WINDOW); } break; + case WMATT_CLASS: + break; case WMATT_TYPE: TKLog(@"The type attribute is ignored on macOS."); break; @@ -1538,18 +1936,91 @@ WmGetAttribute( case WMATT_ALPHA: result = Tcl_NewDoubleObj([macWindow alphaValue]); break; + case WMATT_APPEARANCE: { +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 + NSAppearanceName appearance; +#else + NSString *appearance; +#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 + const char *resultString = "unrecognized"; + appearance = macWindow.appearance.name; + if (appearance == nil) { + resultString = appearanceStrings[APPEARANCE_AUTO]; + } else if (appearance == NSAppearanceNameAqua) { + resultString = appearanceStrings[APPEARANCE_AQUA]; +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 + } else if (@available(macOS 10.14, *)) { + if (appearance == NSAppearanceNameDarkAqua) { + resultString = appearanceStrings[APPEARANCE_DARKAQUA]; + } +#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 + } + result = Tcl_NewStringObj(resultString, TCL_INDEX_NONE); + break; + } + case WMATT_BUTTONS: { + result = Tcl_NewListObj(3, NULL); + if ([macWindow standardWindowButton:NSWindowCloseButton].enabled) { + Tcl_ListObjAppendElement(NULL, result, Tcl_NewStringObj("close", TCL_INDEX_NONE)); + } + if ([macWindow standardWindowButton:NSWindowMiniaturizeButton].enabled) { + Tcl_ListObjAppendElement(NULL, result, Tcl_NewStringObj("miniaturize", TCL_INDEX_NONE)); + } + if ([macWindow standardWindowButton:NSWindowZoomButton].enabled) { + Tcl_ListObjAppendElement(NULL, result, Tcl_NewStringObj("zoom", TCL_INDEX_NONE)); + } + break; + } + case WMATT_CLASS: + if ([macWindow isKindOfClass:[NSPanel class]]) { + result = Tcl_NewStringObj(subclassNames[subclassNSPanel], TCL_INDEX_NONE); + } else { + result = Tcl_NewStringObj(subclassNames[subclassNSWindow], TCL_INDEX_NONE); + } + break; case WMATT_FULLSCREEN: result = Tcl_NewBooleanObj([macWindow styleMask] & NSFullScreenWindowMask); break; + case WMATT_ISDARK: + result = Tcl_NewBooleanObj(TkMacOSXInDarkMode((Tk_Window)winPtr)); + break; case WMATT_MODIFIED: result = Tcl_NewBooleanObj([macWindow isDocumentEdited]); break; case WMATT_NOTIFY: result = Tcl_NewBooleanObj(tkMacOSXWmAttrNotifyVal); break; + case WMATT_STYLEMASK: { + unsigned long styleMaskValue = [macWindow styleMask]; + const styleMaskBit *bit; + result = Tcl_NewListObj(9, NULL); + for (bit = styleMaskBits; bit->bitname != NULL; bit++) { + if (styleMaskValue & bit->bitvalue) { + Tcl_ListObjAppendElement(NULL, result, + Tcl_NewStringObj(bit->bitname, TCL_INDEX_NONE)); + } + } + break; + } + case WMATT_TABBINGID: + result = Tcl_NewStringObj([[macWindow tabbingIdentifier] UTF8String], + -1); + break; + case WMATT_TABBINGMODE: { + long mode = [macWindow tabbingMode]; + const char *name = "unrecognized"; + for (const tabbingMode *m = tabbingModes; m->modeName != NULL; m++) { + if (m->modeValue == mode) { + name = m->modeName; + break; + } + } + result = Tcl_NewStringObj(name, TCL_INDEX_NONE); + break; + } case WMATT_TITLEPATH: result = Tcl_NewStringObj([[macWindow representedFilename] UTF8String], - -1); + TCL_INDEX_NONE); break; case WMATT_TOPMOST: result = Tcl_NewBooleanObj(wmPtr->flags & WM_TOPMOST); @@ -1558,7 +2029,7 @@ WmGetAttribute( result = Tcl_NewBooleanObj(wmPtr->flags & WM_TRANSPARENT); break; case WMATT_TYPE: - result = Tcl_NewStringObj("unsupported", -1); + result = Tcl_NewStringObj("unsupported", TCL_INDEX_NONE); break; case _WMATT_LAST_ATTRIBUTE: default: @@ -1589,13 +2060,64 @@ WmAttributesCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { int attribute = 0; NSWindow *macWindow; + if (winPtr == NULL && objc == 5) { + int index, isNew = 0; + Tcl_Size length; - if (winPtr->window == None) { + /* + * If we are setting an atttribute of a future window, save the value + * in a hash table so we can look it up when the window is actually + * created. + */ + + if (strcmp(Tcl_GetString(objv[3]), "-class") == 0) { + if (Tcl_GetIndexFromObjStruct(interp, objv[4], subclassNames, + sizeof(char *), "NSWindow subclass", 0, &index) != TCL_OK) { + return TCL_ERROR; + } + Tcl_HashEntry *hPtr = Tcl_CreateHashEntry(&pathnameToSubclass, + Tcl_GetString(objv[2]), &isNew); + if (hPtr) { + Tcl_SetHashValue(hPtr, INT2PTR(index)); + return TCL_OK; + } + } else if (strcmp(Tcl_GetString(objv[3]), "-tabbingid") == 0) { + char *identifier = Tcl_GetStringFromObj(objv[4], &length); + char *value = (char *)ckalloc(length + 1); + strncpy(value, identifier, length + 1); + Tcl_HashEntry *hPtr = Tcl_CreateHashEntry(&pathnameToTabbingId, + Tcl_GetString(objv[2]), &isNew); + if (hPtr) { + Tcl_SetHashValue(hPtr, value); + return TCL_OK; + } + } else if (strcmp(Tcl_GetString(objv[3]), "-tabbingmode") == 0) { + long value = NSWindowTabbingModeAutomatic; + int modeIndex; + if (Tcl_GetIndexFromObjStruct(interp, objv[4], tabbingModes, + sizeof(tabbingMode), "NSWindow Tabbing Mode", 0, &modeIndex) == TCL_OK) { + value = tabbingModes[modeIndex].modeValue; + } + Tcl_HashEntry *hPtr = Tcl_CreateHashEntry(&pathnameToTabbingMode, + Tcl_GetString(objv[2]), &isNew); + if (hPtr) { + Tcl_SetHashValue(hPtr, value); + return TCL_OK; + } + } + } + if (!winPtr) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "Only -class, -tabbingid, or -tabbingmode can be set before the window exists.")); + Tcl_SetErrorCode(interp, "TK", "NO_WINDOW", NULL); + return TCL_ERROR; + } + if (winPtr && winPtr->window == None) { Tk_MakeWindowExist((Tk_Window)winPtr); } if (!TkMacOSXHostToplevelExists(winPtr)) { @@ -1608,7 +2130,7 @@ WmAttributesCmd( for (attribute = 0; attribute < _WMATT_LAST_ATTRIBUTE; ++attribute) { Tcl_ListObjAppendElement(NULL, result, - Tcl_NewStringObj(WmAttributeNames[attribute], -1)); + Tcl_NewStringObj(WmAttributeNames[attribute], TCL_INDEX_NONE)); Tcl_ListObjAppendElement(NULL, result, WmGetAttribute(winPtr, macWindow, (WmAttribute)attribute)); } @@ -1620,7 +2142,7 @@ WmAttributesCmd( } Tcl_SetObjResult(interp, WmGetAttribute(winPtr, macWindow, (WmAttribute)attribute)); } else if ((objc - 3) % 2 == 0) { /* wm attributes $win -att value... */ - int i; + Tcl_Size i; for (i = 3; i < objc; i += 2) { if (Tcl_GetIndexFromObjStruct(interp, objv[i], WmAttributeNames, @@ -1661,12 +2183,12 @@ WmClientCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; char *argv3; - int length; + Tcl_Size length; if ((objc != 3) && (objc != 4)) { Tcl_WrongNumArgs(interp, 2, objv, "window ?name?"); @@ -1675,7 +2197,7 @@ WmClientCmd( if (objc == 3) { if (wmPtr->clientMachine != NULL) { Tcl_SetObjResult(interp, - Tcl_NewStringObj(wmPtr->clientMachine, -1)); + Tcl_NewStringObj(wmPtr->clientMachine, TCL_INDEX_NONE)); } return TCL_OK; } @@ -1717,12 +2239,12 @@ WmColormapwindowsCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; TkWindow **cmapList, *winPtr2; - int i, windowObjc; + Tcl_Size i, windowObjc; int gotToplevel = 0; Tcl_Obj **windowObjv, *resultObj; @@ -1739,7 +2261,7 @@ WmColormapwindowsCmd( break; } Tcl_ListObjAppendElement(NULL, resultObj, - TkNewWindowObj((Tk_Window)wmPtr->cmapList[i])); + Tk_NewWindowObj((Tk_Window)wmPtr->cmapList[i])); } Tcl_SetObjResult(interp, resultObj); return TCL_OK; @@ -1807,11 +2329,11 @@ WmCommandCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; - int len; + Tcl_Size len; if ((objc != 3) && (objc != 4)) { Tcl_WrongNumArgs(interp, 2, objv, "window ?value?"); @@ -1864,7 +2386,7 @@ WmDeiconifyCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -1944,7 +2466,7 @@ WmFocusmodelCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -1960,7 +2482,7 @@ WmFocusmodelCmd( } if (objc == 3) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - wmPtr->hints.input ? "passive" : "active", -1)); + wmPtr->hints.input ? "passive" : "active", TCL_INDEX_NONE)); return TCL_OK; } @@ -1998,7 +2520,7 @@ WmForgetCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel or Frame to work with */ TCL_UNUSED(Tcl_Interp *), /* Current interpreter. */ - TCL_UNUSED(int), /* Number of arguments. */ + TCL_UNUSED(Tcl_Size), /* Number of arguments. */ TCL_UNUSED(Tcl_Obj *const *)) /* Argument objects. */ { Tk_Window frameWin = (Tk_Window)winPtr; @@ -2064,7 +2586,7 @@ WmFrameCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2080,7 +2602,7 @@ WmFrameCmd( window = Tk_WindowId((Tk_Window)winPtr); } snprintf(buf, sizeof(buf), "0x%" TCL_Z_MODIFIER "x", (size_t)window); - Tcl_SetObjResult(interp, Tcl_NewStringObj(buf, -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj(buf, TCL_INDEX_NONE)); return TCL_OK; } @@ -2106,7 +2628,7 @@ WmGeometryCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2177,7 +2699,7 @@ WmGridCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2193,10 +2715,10 @@ WmGridCmd( if (wmPtr->sizeHintsFlags & PBaseSize) { Tcl_Obj *results[4]; - results[0] = Tcl_NewIntObj(wmPtr->reqGridWidth); - results[1] = Tcl_NewIntObj(wmPtr->reqGridHeight); - results[2] = Tcl_NewIntObj(wmPtr->widthInc); - results[3] = Tcl_NewIntObj(wmPtr->heightInc); + results[0] = Tcl_NewWideIntObj(wmPtr->reqGridWidth); + results[1] = Tcl_NewWideIntObj(wmPtr->reqGridHeight); + results[2] = Tcl_NewWideIntObj(wmPtr->widthInc); + results[3] = Tcl_NewWideIntObj(wmPtr->heightInc); Tcl_SetObjResult(interp, Tcl_NewListObj(4, results)); } return TCL_OK; @@ -2244,7 +2766,7 @@ WmGridCmd( return TCL_OK; error: - Tcl_SetObjResult(interp, Tcl_NewStringObj(errorMsg, -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj(errorMsg, TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "WM", "GRID", NULL); return TCL_ERROR; } @@ -2271,13 +2793,13 @@ WmGroupCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; Tk_Window tkwin2; char *argv3; - int length; + Tcl_Size length; if ((objc != 3) && (objc != 4)) { Tcl_WrongNumArgs(interp, 2, objv, "window ?pathName?"); @@ -2285,7 +2807,7 @@ WmGroupCmd( } if (objc == 3) { if (wmPtr->hints.flags & WindowGroupHint) { - Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->leaderName, -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->leaderName, TCL_INDEX_NONE)); } return TCL_OK; } @@ -2313,6 +2835,74 @@ WmGroupCmd( return TCL_OK; } + /*---------------------------------------------------------------------- + * + * WmIconbadgeCmd -- + * + * This procedure is invoked to process the "wm iconbadge" Tcl command. + * See the user documentation for details on what it does. + * + * Results: + * A standard Tcl result. + * + * Side effects: + * See the user documentation. + * + *---------------------------------------------------------------------- + */ + +static int +WmIconbadgeCmd( + TCL_UNUSED(Tk_Window), /* Main window of the application. */ + TkWindow *winPtr, /* Toplevel to work with */ + Tcl_Interp *interp, /* Current interpreter. */ + Tcl_Size objc, /* Number of arguments. */ + Tcl_Obj *const objv[]) /* Argument objects. */ +{ + (void) winPtr; + NSString *label; + + if (objc < 4) { + Tcl_WrongNumArgs(interp, 2, objv,"window badge"); + return TCL_ERROR; + } + + label = [NSString stringWithUTF8String:Tcl_GetString(objv[3])]; + + int number = [label intValue]; + NSDockTile *dockicon = [NSApp dockTile]; + + /* + * First, check that the label is not a decimal. If it is, + * return an error. + */ + + if ([label containsString:@"."]) { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "can't use \"%s\" as icon badge", Tcl_GetString(objv[3]))); + return TCL_ERROR; + } + + /* + * Next, check that label is an int, empty string, or exclamation + * point. If so, set the icon badge on the Dock icon. Otherwise, + * return an error. + */ + + NSArray *array = @[@"", @"!"]; + if ([array containsObject: label]) { + [dockicon setBadgeLabel:label]; + } else if (number > 0) { + NSString *str = [@(number) stringValue]; + [dockicon setBadgeLabel:str]; + } else { + Tcl_SetObjResult(interp, Tcl_ObjPrintf( + "can't use \"%s\" as icon badge", Tcl_GetString(objv[3]))); + return TCL_ERROR; + } + return TCL_OK; +} + /* *---------------------------------------------------------------------- * @@ -2335,13 +2925,13 @@ WmIconbitmapCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; Pixmap pixmap; char *str; - int len; + Tcl_Size len; if ((objc != 3) && (objc != 4)) { Tcl_WrongNumArgs(interp, 2, objv, "window ?bitmap?"); @@ -2404,7 +2994,7 @@ WmIconifyCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2427,13 +3017,13 @@ WmIconifyCmd( return TCL_ERROR; } else if (wmPtr->iconFor != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify %s: it is an icon for %s", + "can't iconify \"%s\": it is an icon for \"%s\"", winPtr->pathName, Tk_PathName(wmPtr->iconFor))); Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "ICON", NULL); return TCL_ERROR; } else if (winPtr->flags & TK_EMBEDDED) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify %s: it is an embedded window", + "can't iconify \"%s\": it is an embedded window", winPtr->pathName)); Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "EMBEDDED", NULL); return TCL_ERROR; @@ -2485,7 +3075,7 @@ WmIconmaskCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2545,12 +3135,12 @@ WmIconnameCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; const char *argv3; - int length; + Tcl_Size length; if (objc > 4) { Tcl_WrongNumArgs(interp, 2, objv, "window ?newName?"); @@ -2558,7 +3148,7 @@ WmIconnameCmd( } if (objc == 3) { if (wmPtr->iconName != NULL) { - Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->iconName, -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->iconName, TCL_INDEX_NONE)); } return TCL_OK; } @@ -2598,7 +3188,7 @@ WmIconphotoCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { Tk_Image tk_icon; @@ -2686,7 +3276,7 @@ WmIconpositionCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2701,8 +3291,8 @@ WmIconpositionCmd( if (wmPtr->hints.flags & IconPositionHint) { Tcl_Obj *results[2]; - results[0] = Tcl_NewIntObj(wmPtr->hints.icon_x); - results[1] = Tcl_NewIntObj(wmPtr->hints.icon_y); + results[0] = Tcl_NewWideIntObj(wmPtr->hints.icon_x); + results[1] = Tcl_NewWideIntObj(wmPtr->hints.icon_y); Tcl_SetObjResult(interp, Tcl_NewListObj(2, results)); } return TCL_OK; @@ -2744,7 +3334,7 @@ WmIconwindowCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2758,7 +3348,7 @@ WmIconwindowCmd( if (objc == 3) { if (wmPtr->icon != NULL) { - Tcl_SetObjResult(interp, TkNewWindowObj(wmPtr->icon)); + Tcl_SetObjResult(interp, Tk_NewWindowObj(wmPtr->icon)); } return TCL_OK; } @@ -2847,7 +3437,7 @@ WmManageCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel or Frame to work with */ Tcl_Interp *interp, /* Current interpreter. */ - TCL_UNUSED(int), /* Number of arguments. */ + TCL_UNUSED(Tcl_Size), /* Number of arguments. */ TCL_UNUSED(Tcl_Obj *const *)) /* Argument objects. */ { Tk_Window frameWin = (Tk_Window)winPtr; @@ -2920,10 +3510,10 @@ WmManageCmd( static int WmMaxsizeCmd( - TCL_UNUSED(Tk_Window), /* Main window of the application. */ + Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2938,14 +3528,14 @@ WmMaxsizeCmd( Tcl_Obj *results[2]; GetMaxSize(winPtr, &width, &height); - results[0] = Tcl_NewIntObj(width); - results[1] = Tcl_NewIntObj(height); + results[0] = Tcl_NewWideIntObj(width); + results[1] = Tcl_NewWideIntObj(height); Tcl_SetObjResult(interp, Tcl_NewListObj(2, results)); return TCL_OK; } - if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &height) != TCL_OK)) { + if ((Tk_GetPixelsFromObj(interp, tkwin, objv[3], &width) != TCL_OK) + || (Tk_GetPixelsFromObj(interp, tkwin, objv[4], &height) != TCL_OK)) { return TCL_ERROR; } wmPtr->maxWidth = width; @@ -2974,10 +3564,10 @@ WmMaxsizeCmd( static int WmMinsizeCmd( - TCL_UNUSED(Tk_Window), /* Main window of the application. */ + Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -2992,14 +3582,14 @@ WmMinsizeCmd( Tcl_Obj *results[2]; GetMinSize(winPtr, &width, &height); - results[0] = Tcl_NewIntObj(width); - results[1] = Tcl_NewIntObj(height); + results[0] = Tcl_NewWideIntObj(width); + results[1] = Tcl_NewWideIntObj(height); Tcl_SetObjResult(interp, Tcl_NewListObj(2, results)); return TCL_OK; } - if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &height) != TCL_OK)) { + if ((Tk_GetPixelsFromObj(interp, tkwin, objv[3], &width) != TCL_OK) + || (Tk_GetPixelsFromObj(interp, tkwin, objv[4], &height) != TCL_OK)) { return TCL_ERROR; } wmPtr->minWidth = width; @@ -3028,13 +3618,13 @@ WmMinsizeCmd( static int WmOverrideredirectCmd( - TCL_UNUSED(Tk_Window), /* Main window of the application. */ + TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { - int flag; + Bool boolValue; XSetWindowAttributes atts; TKWindow *win = (TKWindow *)TkMacOSXGetNSWindowForDrawable(winPtr->window); @@ -3049,12 +3639,20 @@ WmOverrideredirectCmd( return TCL_OK; } - if (Tcl_GetBooleanFromObj(interp, objv[3], &flag) != TCL_OK) { + if (Tcl_GetBooleanFromObj(interp, objv[3], &boolValue) != TCL_OK) { return TCL_ERROR; } - atts.override_redirect = flag ? True : False; + atts.override_redirect = boolValue; Tk_ChangeWindowAttributes((Tk_Window)winPtr, CWOverrideRedirect, &atts); - ApplyContainerOverrideChanges(winPtr, win); + if ([NSApp macOSVersion] >= 101300) { + if (boolValue) { + win.styleMask |= NSWindowStyleMaskDocModalWindow; + } else { + win.styleMask &= ~NSWindowStyleMaskDocModalWindow; + } + } else { + ApplyContainerOverrideChanges(winPtr, win); + } return TCL_OK; } @@ -3080,7 +3678,7 @@ WmPositionfromCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -3097,9 +3695,9 @@ WmPositionfromCmd( if (objc == 3) { if (wmPtr->sizeHintsFlags & USPosition) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("user", TCL_INDEX_NONE)); } else if (wmPtr->sizeHintsFlags & PPosition) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("program", TCL_INDEX_NONE)); } return TCL_OK; } @@ -3146,14 +3744,14 @@ WmProtocolCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; ProtocolHandler *protPtr, *prevPtr; Atom protocol; char *cmd; - int cmdLength; + Tcl_Size cmdLength; Tcl_Obj *resultObj; if ((objc < 3) || (objc > 5)) { @@ -3186,7 +3784,7 @@ WmProtocolCmd( protPtr = protPtr->nextPtr) { if (protPtr->protocol == protocol) { Tcl_SetObjResult(interp, - Tcl_NewStringObj(protPtr->command, -1)); + Tcl_NewStringObj(protPtr->command, TCL_INDEX_NONE)); return TCL_OK; } } @@ -3247,7 +3845,7 @@ WmResizableCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -3324,7 +3922,7 @@ WmSizefromCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -3341,9 +3939,9 @@ WmSizefromCmd( if (objc == 3) { if (wmPtr->sizeHintsFlags & USSize) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("user", TCL_INDEX_NONE)); } else if (wmPtr->sizeHintsFlags & PSize) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("program", TCL_INDEX_NONE)); } return TCL_OK; } @@ -3390,7 +3988,7 @@ WmStackorderCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { TkWindow **windows, **windowPtr; @@ -3414,7 +4012,7 @@ WmStackorderCmd( resultObj = Tcl_NewObj(); for (windowPtr = windows; *windowPtr ; windowPtr++) { Tcl_ListObjAppendElement(NULL, resultObj, - TkNewWindowObj((Tk_Window)*windowPtr)); + Tk_NewWindowObj((Tk_Window)*windowPtr)); } Tcl_SetObjResult(interp, resultObj); ckfree(windows); @@ -3459,7 +4057,7 @@ WmStackorderCmd( windows = TkWmStackorderToplevel(winPtr->mainPtr->winPtr); if (windows == NULL) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "TkWmStackorderToplevel failed", -1)); + "TkWmStackorderToplevel failed", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "FAIL", NULL); return TCL_ERROR; } @@ -3516,14 +4114,14 @@ WmStateCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; static const char *const optionStrings[] = { - "normal", "iconic", "withdrawn", "zoomed", NULL }; + "iconic", "normal", "withdrawn", "zoomed", NULL }; enum options { - OPT_NORMAL, OPT_ICONIC, OPT_WITHDRAWN, OPT_ZOOMED }; + OPT_ICONIC, OPT_NORMAL, OPT_WITHDRAWN, OPT_ZOOMED }; int index; if ((objc < 3) || (objc > 4)) { @@ -3534,14 +4132,14 @@ WmStateCmd( if (objc == 4) { if (wmPtr->iconFor != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't change state of %s: it is an icon for %s", + "can't change state of \"%s\": it is an icon for \"%s\"", Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor))); Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "ICON", NULL); return TCL_ERROR; } if (winPtr->flags & TK_EMBEDDED) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't change state of %s: it is an embedded window", + "can't change state of \"%s\": it is an embedded window", winPtr->pathName)); Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "EMBEDDED", NULL); return TCL_ERROR; @@ -3589,7 +4187,7 @@ WmStateCmd( break; } } else if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("icon", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("icon", TCL_INDEX_NONE)); } else { if (wmPtr->hints.initial_state == NormalState || wmPtr->hints.initial_state == ZoomState) { @@ -3598,16 +4196,16 @@ WmStateCmd( } switch (wmPtr->hints.initial_state) { case NormalState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("normal", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("normal", TCL_INDEX_NONE)); break; case IconicState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("iconic", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("iconic", TCL_INDEX_NONE)); break; case WithdrawnState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("withdrawn", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("withdrawn", TCL_INDEX_NONE)); break; case ZoomState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("zoomed", -1)); + Tcl_SetObjResult(interp, Tcl_NewStringObj("zoomed", TCL_INDEX_NONE)); break; } } @@ -3636,12 +4234,12 @@ WmTitleCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; char *argv3; - int length; + Tcl_Size length; if (objc > 4) { Tcl_WrongNumArgs(interp, 2, objv, "window ?newTitle?"); @@ -3650,7 +4248,7 @@ WmTitleCmd( if (objc == 3) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - wmPtr->titleUid ? wmPtr->titleUid : winPtr->nameUid, -1)); + wmPtr->titleUid ? wmPtr->titleUid : winPtr->nameUid, TCL_INDEX_NONE)); return TCL_OK; } @@ -3684,7 +4282,7 @@ WmTransientCmd( Tk_Window tkwin, /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -3694,13 +4292,13 @@ WmTransientCmd( Transient *transient; if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?master?"); + Tcl_WrongNumArgs(interp, 2, objv, "window ?window?"); return TCL_ERROR; } if (objc == 3) { if (wmPtr->container != NULL) { Tcl_SetObjResult(interp, - Tcl_NewStringObj(Tk_PathName(wmPtr->container), -1)); + Tcl_NewStringObj(Tk_PathName(wmPtr->container), TCL_INDEX_NONE)); } return TCL_OK; } @@ -3737,7 +4335,7 @@ WmTransientCmd( if (wmPtr2 != NULL && wmPtr2->iconFor != NULL) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't make \"%s\" a master: it is an icon for %s", + "can't make \"%s\" a container: it is an icon for %s", Tcl_GetString(objv[3]), Tk_PathName(wmPtr2->iconFor))); Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "ICON", NULL); return TCL_ERROR; @@ -3747,7 +4345,7 @@ WmTransientCmd( w = (TkWindow *)w->wmInfoPtr->container) { if (w == winPtr) { Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "setting \"%s\" as master creates a transient/master cycle", + "can't set \"%s\" as container: would cause management loop", Tk_PathName(containerPtr))); Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "SELF", NULL); return TCL_ERROR; @@ -3865,7 +4463,7 @@ WmWithdrawCmd( TCL_UNUSED(Tk_Window), /* Main window of the application. */ TkWindow *winPtr, /* Toplevel to work with */ Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -4101,7 +4699,7 @@ Tk_UnsetGrid( static void TopLevelEventProc( - ClientData clientData, /* Window for which event occurred. */ + void *clientData, /* Window for which event occurred. */ XEvent *eventPtr) /* Event that just happened. */ { TkWindow *winPtr = (TkWindow *)clientData; @@ -4188,7 +4786,7 @@ TopLevelReqProc( static void UpdateGeometryInfo( - ClientData clientData) /* Pointer to the window's record. */ + void *clientData) /* Pointer to the window's record. */ { TkWindow *winPtr = (TkWindow *)clientData; WmInfo *wmPtr = winPtr->wmInfoPtr; @@ -4317,7 +4915,7 @@ UpdateGeometryInfo( */ if (Tk_IsEmbedded(winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(winPtr); + Tk_Window contWinPtr = Tk_GetOtherWindow((Tk_Window)winPtr); /* * TODO: Here we should handle out of process embedding. @@ -4334,7 +4932,7 @@ UpdateGeometryInfo( wmPtr->x = wmPtr->y = 0; wmPtr->flags &= ~(WM_NEGATIVE_X|WM_NEGATIVE_Y); - Tk_GeometryRequest((Tk_Window)contWinPtr, width, height); + Tk_GeometryRequest(contWinPtr, width, height); } return; } @@ -4607,29 +5205,8 @@ Tk_GetRootCoords( break; } - otherPtr = TkpGetOtherWindow(winPtr); + otherPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (otherPtr == NULL) { - if (tkMacOSXEmbedHandler->getOffsetProc != NULL) { - Point theOffset; - - /* - * We do not require that the changes.x & changes.y for a - * non-Tk container window be kept up to date. So we - * first subtract off the possibly bogus values that have - * been added on at the top of this pass through the - * loop, and then call out to the getOffsetProc to give - * us the correct offset. - */ - - x -= winPtr->changes.x + winPtr->changes.border_width; - y -= winPtr->changes.y + winPtr->changes.border_width; - - tkMacOSXEmbedHandler->getOffsetProc((Tk_Window)winPtr, - &theOffset); - - x += theOffset.h; - y += theOffset.v; - } break; } @@ -4711,7 +5288,7 @@ Tk_CoordsToWindow( */ if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr != NULL) { if (Tk_IsMapped(childPtr)) { tmpx = x - childPtr->changes.x; @@ -4805,7 +5382,7 @@ Tk_TopCoordsToWindow( */ if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); + childPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (childPtr != NULL) { if (Tk_IsMapped(childPtr) && x > childPtr->changes.x && @@ -5424,7 +6001,7 @@ TkSetWMName( return; } - NSString *title = [[TKNSString alloc] initWithTclUtfBytes:titleUid length:-1]; + NSString *title = [[TKNSString alloc] initWithTclUtfBytes:titleUid length:TCL_INDEX_NONE]; [TkMacOSXGetNSWindowForDrawable(winPtr->window) setTitle:title]; [title release]; } @@ -5617,16 +6194,16 @@ TkMacOSXZoomToplevel( int TkUnsupported1ObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ + void *clientData, /* Main window associated with interpreter. */ Tcl_Interp *interp, /* Current interpreter. */ int objc, /* Number of arguments. */ Tcl_Obj *const objv[]) /* Argument objects. */ { static const char *const subcmds[] = { - "style", "tabbingid", "appearance", "isdark", NULL + "appearance", "isdark", "style", NULL }; enum SubCmds { - TKMWS_STYLE, TKMWS_TABID, TKMWS_APPEARANCE, TKMWS_ISDARK + TKMWS_APPEARANCE, TKMWS_ISDARK, TKMWS_STYLE }; Tk_Window tkwin = (Tk_Window)clientData; TkWindow *winPtr; @@ -5660,22 +6237,10 @@ TkUnsupported1ObjCmd( return TCL_ERROR; } return WmWinStyle(interp, winPtr, objc, objv); - case TKMWS_TABID: - if ([NSApp macOSVersion] < 101200) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "Tabbing identifiers did not exist until OSX 10.12.", -1)); - Tcl_SetErrorCode(interp, "TK", "WINDOWSTYLE", "TABBINGID", NULL); - return TCL_ERROR; - } - if ((objc < 3) || (objc > 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?newid?"); - return TCL_ERROR; - } - return WmWinTabbingId(interp, winPtr, objc, objv); case TKMWS_APPEARANCE: if ([NSApp macOSVersion] < 100900) { Tcl_SetObjResult(interp, Tcl_NewStringObj( - "Window appearances did not exist until OSX 10.9.", -1)); + "Window appearances did not exist until OSX 10.9.", TCL_INDEX_NONE)); Tcl_SetErrorCode(interp, "TK", "WINDOWSTYLE", "APPEARANCE", NULL); return TCL_ERROR; } @@ -5726,7 +6291,7 @@ static int WmWinStyle( Tcl_Interp *interp, /* Current interpreter. */ TkWindow *winPtr, /* Window to be manipulated. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj * const objv[]) /* Argument objects. */ { struct StrIntMap { @@ -5798,7 +6363,7 @@ WmWinStyle( }; int index; - int i; + Tcl_Size i; WmInfo *wmPtr = winPtr->wmInfoPtr; if (objc == 3) { @@ -5807,7 +6372,7 @@ WmWinStyle( for (i = 0; classMap[i].strValue != NULL; i++) { if (wmPtr->macClass == classMap[i].intValue) { - newResult = Tcl_NewStringObj(classMap[i].strValue, -1); + newResult = Tcl_NewStringObj(classMap[i].strValue, TCL_INDEX_NONE); break; } } @@ -5832,13 +6397,13 @@ WmWinStyle( for (i = 0; attrMap[i].strValue != NULL; i++) { if (attributes & attrMap[i].intValue) { Tcl_ListObjAppendElement(NULL, attributeList, - Tcl_NewStringObj(attrMap[i].strValue, -1)); + Tcl_NewStringObj(attrMap[i].strValue, TCL_INDEX_NONE)); } } Tcl_ListObjAppendElement(NULL, newResult, attributeList); Tcl_SetObjResult(interp, newResult); } else { - int attrObjc; + Tcl_Size attrObjc; Tcl_Obj **attrObjv = NULL; WindowClass macClass; UInt64 oldAttributes = wmPtr->attributes; @@ -5891,87 +6456,6 @@ WmWinStyle( /* *---------------------------------------------------------------------- * - * WmWinTabbingId -- - * - * This procedure is invoked to process the - * "::tk::unsupported::MacWindowStyle tabbingid" subcommand. The command - * allows you to get or set the tabbingIdentifier for the NSWindow - * associated with a Tk Window. The syntax is: - * - * tk::unsupported::MacWindowStyle tabbingid window ?newId? - * - * Results: - * Returns the tabbingIdentifier of the window prior to calling this - * function. If the optional newId argument is omitted, the window's - * tabbingIdentifier is not changed. - * - * Side effects: - * Windows may only be grouped together as tabs if they all have the same - * tabbingIdentifier. In particular, by giving a window a unique - * tabbingIdentifier one can prevent it from becoming a tab in any other - * window. Changing the tabbingIdentifier of a window which is already - * a tab causes it to become a separate window. - * - *---------------------------------------------------------------------- - */ - -static int -WmWinTabbingId( - Tcl_Interp *interp, /* Current interpreter. */ - TkWindow *winPtr, /* Window to be manipulated. */ - int objc, /* Number of arguments. */ - Tcl_Obj * const objv[]) /* Argument objects. */ -{ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 101200 - (void) interp; - (void) winPtr; - (void) objc; - (void) objv; - return TCL_OK; -#else - Tcl_Obj *result = NULL; - NSString *idString; - NSWindow *win = TkMacOSXGetNSWindowForDrawable(winPtr->window); - if (win) { - idString = win.tabbingIdentifier; - result = Tcl_NewStringObj(idString.UTF8String, [idString length]); - } - if (result == NULL) { - NSLog(@"Failed to read tabbing identifier; try calling update idletasks" - " before getting/setting the tabbing identifier of the window."); - return TCL_OK; - } - Tcl_SetObjResult(interp, result); - if (objc == 3) { - return TCL_OK; - } else if (objc == 4) { - int len; - char *newId = Tcl_GetStringFromObj(objv[3], &len); - NSString *newIdString = [NSString stringWithUTF8String:newId]; - [win setTabbingIdentifier: newIdString]; - - /* - * If the tabbingIdentifier of a tab is changed we also turn it into a - * separate window so we don't violate the rule that all tabs in the - * same frame must have the same tabbingIdentifier. - */ - - if ([idString compare:newIdString] != NSOrderedSame -#if MAC_OS_X_VERSION_MIN_REQUIRED > 101200 - && [win tab] -#endif - ) { - [win moveTabToNewWindow:nil]; - } - return TCL_OK; - } - return TCL_ERROR; -#endif -} - -/* - *---------------------------------------------------------------------- - * * WmWinAppearance -- * * This procedure is invoked to process the @@ -6004,7 +6488,7 @@ static int WmWinAppearance( Tcl_Interp *interp, /* Current interpreter. */ TkWindow *winPtr, /* Window to be manipulated. */ - int objc, /* Number of arguments. */ + Tcl_Size objc, /* Number of arguments. */ Tcl_Obj * const objv[]) /* Argument objects. */ { #if MAC_OS_X_VERSION_MAX_ALLOWED <= 1090 @@ -6014,12 +6498,6 @@ WmWinAppearance( (void) objv; return TCL_OK; #else - static const char *const appearanceStrings[] = { - "aqua", "darkaqua", "auto", NULL - }; - enum appearances { - APPEARANCE_AQUA, APPEARANCE_DARKAQUA, APPEARANCE_AUTO - }; Tcl_Obj *result = NULL; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101300 NSAppearanceName appearance; @@ -6138,7 +6616,14 @@ TkMacOSXMakeRealWindowExist( WmInfo *wmPtr = winPtr->wmInfoPtr; MacDrawable *macWin; WindowClass macClass; + Class winClass = nil; Bool overrideRedirect = Tk_Attributes((Tk_Window)winPtr)->override_redirect; + Tcl_HashEntry *hPtr = NULL; + NSUInteger styleMask; + NSString *identifier; + char *tabbingId = NULL; + long tabbingMode = NSWindowTabbingModeAutomatic; + static int initialized = 0; if (TkMacOSXHostToplevelExists(winPtr)) { return; @@ -6152,7 +6637,7 @@ TkMacOSXMakeRealWindowExist( */ if (Tk_IsEmbedded(winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(winPtr); + TkWindow *contWinPtr = (TkWindow *)Tk_GetOtherWindow((Tk_Window)winPtr); if (contWinPtr != NULL) { TkMacOSXMakeRealWindowExist( @@ -6161,14 +6646,7 @@ TkMacOSXMakeRealWindowExist( return; } - if (tkMacOSXEmbedHandler == NULL) { - Tcl_Panic("TkMacOSXMakeRealWindowExist could not find container"); - } - if (tkMacOSXEmbedHandler->containerExistProc && - tkMacOSXEmbedHandler->containerExistProc((Tk_Window)winPtr) - != TCL_OK) { - Tcl_Panic("ContainerExistProc could not make container"); - } + Tcl_Panic("TkMacOSXMakeRealWindowExist could not find container"); return; /* @@ -6176,51 +6654,119 @@ TkMacOSXMakeRealWindowExist( */ } - /* - * If this is an override-redirect window, the NSWindow is created first as - * a document window then converted to a simple window. - */ + if ([NSApp macOSVersion] >= 101300) { + /* + * Prior to macOS 10.12 the styleMask was readonly. From macOS 10.12 + * onward, the styleMask can replace the Carbon window classes and + * attributes. + */ + int index; + if (!initialized) { + Tcl_InitHashTable(&pathnameToSubclass, TCL_STRING_KEYS); + Tcl_InitHashTable(&pathnameToTabbingId, TCL_STRING_KEYS); + Tcl_InitHashTable(&pathnameToTabbingMode, TCL_STRING_KEYS); + initialized = 1; + } + hPtr = Tcl_FindHashEntry(&pathnameToSubclass, Tk_PathName(winPtr)); + index = hPtr ? PTR2INT(Tcl_GetHashValue(hPtr)) : subclassNSWindow; + switch(index) { + case subclassNSPanel: + winClass = [TKPanel class]; + styleMask = (NSWindowStyleMaskTitled | + NSWindowStyleMaskClosable | + NSWindowStyleMaskResizable | + NSWindowStyleMaskUtilityWindow | + NSWindowStyleMaskNonactivatingPanel ); + break; + default: + winClass = [TKWindow class]; + styleMask = (NSWindowStyleMaskTitled | + NSWindowStyleMaskClosable | + NSWindowStyleMaskMiniaturizable | + NSWindowStyleMaskResizable ); + break; + } + if (overrideRedirect) { + styleMask |= NSWindowStyleMaskDocModalWindow; + } + /* Help windows (used for tooltips) should have stylemask 0. */ + if (wmPtr->macClass == kHelpWindowClass) { + styleMask = 0; + } + if (hPtr) { + Tcl_DeleteHashEntry(hPtr); + } + hPtr = Tcl_FindHashEntry(&pathnameToTabbingId, Tk_PathName(winPtr)); + if (hPtr) { + tabbingId = (char *)Tcl_GetHashValue(hPtr); + Tcl_DeleteHashEntry(hPtr); + } + hPtr = Tcl_FindHashEntry(&pathnameToTabbingMode, Tk_PathName(winPtr)); + if (hPtr) { + tabbingMode = PTR2INT(Tcl_GetHashValue(hPtr)); + Tcl_DeleteHashEntry(hPtr); + } + } else { - if (overrideRedirect) { - wmPtr->macClass = kDocumentWindowClass; - } - macClass = wmPtr->macClass; - wmPtr->attributes &= (tkAlwaysValidAttributes | - macClassAttrs[macClass].validAttrs); - wmPtr->flags |= macClassAttrs[macClass].flags | + /* + * If this is an override-redirect window, the NSWindow is created first as + * a document window then converted to a simple window. + */ + + if (overrideRedirect) { + wmPtr->macClass = kDocumentWindowClass; + } + macClass = wmPtr->macClass; + wmPtr->attributes &= (tkAlwaysValidAttributes | + macClassAttrs[macClass].validAttrs); + wmPtr->flags |= macClassAttrs[macClass].flags | ((wmPtr->attributes & kWindowResizableAttribute) ? 0 : - WM_WIDTH_NOT_RESIZABLE|WM_HEIGHT_NOT_RESIZABLE); - UInt64 attributes = (wmPtr->attributes & - ~macClassAttrs[macClass].forceOffAttrs) | + WM_WIDTH_NOT_RESIZABLE|WM_HEIGHT_NOT_RESIZABLE); + UInt64 attributes = (wmPtr->attributes & + ~macClassAttrs[macClass].forceOffAttrs) | macClassAttrs[macClass].forceOnAttrs; - NSUInteger styleMask = macClassAttrs[macClass].styleMask | - ((attributes & kWindowNoTitleBarAttribute) ? 0 : NSTitledWindowMask) | - ((attributes & kWindowCloseBoxAttribute) ? NSClosableWindowMask : 0) | - ((attributes & kWindowCollapseBoxAttribute) ? - NSMiniaturizableWindowMask : 0) | - ((attributes & kWindowResizableAttribute) ? NSResizableWindowMask : 0) | - ((attributes & kWindowMetalAttribute) ? - NSTexturedBackgroundWindowMask : 0) | - ((attributes & kWindowUnifiedTitleAndToolbarAttribute) ? - NSUnifiedTitleAndToolbarWindowMask : 0) | - ((attributes & kWindowSideTitlebarAttribute) ? 1 << 9 : 0) | - (attributes >> WM_NSMASK_SHIFT); - Class winClass = (macClass == kDrawerWindowClass ? [TKDrawerWindow class] : - (styleMask & (NSUtilityWindowMask|NSDocModalWindowMask| - NSNonactivatingPanelMask|NSHUDWindowMask)) ? [TKPanel class] : - [TKWindow class]); + styleMask = macClassAttrs[macClass].styleMask | + ((attributes & kWindowNoTitleBarAttribute) ? 0 : NSTitledWindowMask) | + ((attributes & kWindowCloseBoxAttribute) ? NSClosableWindowMask : 0) | + ((attributes & kWindowCollapseBoxAttribute) ? + NSMiniaturizableWindowMask : 0) | + ((attributes & kWindowResizableAttribute) ? NSResizableWindowMask : 0) | + ((attributes & kWindowMetalAttribute) ? + NSTexturedBackgroundWindowMask : 0) | + ((attributes & kWindowUnifiedTitleAndToolbarAttribute) ? + NSUnifiedTitleAndToolbarWindowMask : 0) | + ((attributes & kWindowSideTitlebarAttribute) ? 1 << 9 : 0) | + (attributes >> WM_NSMASK_SHIFT); + winClass = (macClass == kDrawerWindowClass ? [TKDrawerWindow class] : + (styleMask & (NSUtilityWindowMask|NSDocModalWindowMask| + NSNonactivatingPanelMask|NSHUDWindowMask)) ? + [TKPanel class] : [TKWindow class]); + } NSRect structureRect = [winClass frameRectForContentRect:NSZeroRect styleMask:styleMask]; NSRect contentRect = NSMakeRect(5 - structureRect.origin.x, TkMacOSXZeroScreenHeight() - (TkMacOSXZeroScreenTop() + 5 + structureRect.origin.y + structureRect.size.height + 200), 200, 200); if (wmPtr->hints.initial_state == WithdrawnState) { + //// ??????? } TKWindow *window = [[winClass alloc] initWithContentRect:contentRect styleMask:styleMask backing:NSBackingStoreBuffered defer:YES]; if (!window) { Tcl_Panic("couldn't allocate new Mac window"); } +#if MAC_OS_X_VERSION_MAX_ALLOWED > 101200 + if (tabbingId) { + identifier = [NSString stringWithUTF8String:tabbingId]; + } else { + identifier = [NSString stringWithUTF8String:Tk_PathName(winPtr)]; + } + [window setTabbingIdentifier: identifier]; + [window setTabbingMode: tabbingMode]; +#endif + if (tabbingId) { + ckfree(tabbingId); + } TKContentView *contentView = [[TKContentView alloc] initWithFrame:NSZeroRect]; #if MAC_OS_X_VERSION_MAX_ALLOWED >= 101400 @@ -6272,7 +6818,11 @@ TkMacOSXMakeRealWindowExist( atts.override_redirect = True; Tk_ChangeWindowAttributes((Tk_Window)winPtr, CWOverrideRedirect, &atts); - ApplyContainerOverrideChanges(winPtr, NULL); + if ([NSApp macOSVersion] >= 101300) { + window.styleMask |= NSWindowStyleMaskDocModalWindow; + } else { + ApplyContainerOverrideChanges(winPtr, NULL); + } } [window display]; } diff --git a/macosx/tkMacOSXWm.h b/macosx/tkMacOSXWm.h index dfebe3f..12c4e8f 100644 --- a/macosx/tkMacOSXWm.h +++ b/macosx/tkMacOSXWm.h @@ -47,7 +47,6 @@ typedef struct Transient { } Transient; #define WITHDRAWN_BY_CONTAINER 0x1 -#define WITHDRAWN_BY_MASTER 0x1 /* * A data structure of the following type holds window-manager-related @@ -172,7 +171,7 @@ typedef struct TkWmInfo { */ TkWindow **cmapList; /* Array of window with private colormaps. */ - int cmapCount; /* Number of windows in array. */ + Tcl_Size cmapCount; /* Number of windows in array. */ /* * Miscellaneous information. diff --git a/macosx/tkMacOSXXStubs.c b/macosx/tkMacOSXXStubs.c index b5ff88a..5c29253 100644 --- a/macosx/tkMacOSXXStubs.c +++ b/macosx/tkMacOSXXStubs.c @@ -17,7 +17,7 @@ #define XLIB_ILLEGAL_ACCESS #include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" +#include "tkMacOSXInt.h" #include <IOKit/IOKitLib.h> #include <IOKit/hidsystem/IOHIDShared.h> @@ -94,8 +94,8 @@ TkMacOSXDisplayChanged( DefaultDepthOfScreen(screen) = NSBitsPerPixelFromDepth([s depth]); WidthOfScreen(screen) = bounds.size.width; HeightOfScreen(screen) = bounds.size.height; - WidthMMOfScreen(screen) = (bounds.size.width * 254 + 360) / 720; - HeightMMOfScreen(screen) = (bounds.size.height * 254 + 360) / 720; + WidthMMOfScreen(screen) = (bounds.size.width * 381 + 720) / 1440; /* = 3/4 * 254/720 */ + HeightMMOfScreen(screen) = (bounds.size.height * 381 + 720) / 1440; /* = 3/4 * 254/720 */ for (s in nsScreens) { maxBounds = NSUnionRect(maxBounds, [s visibleFrame]); @@ -168,7 +168,7 @@ TkMacOSXZeroScreenTop() /* *---------------------------------------------------------------------- * - * TkpOpenDisplay -- + * TkpOpenDisplay/XkbOpenDisplay -- * * Create the Display structure and fill it with device specific * information. @@ -187,11 +187,6 @@ TkpOpenDisplay( const char *display_name) { Display *display; - Screen *screen; - int fd = 0; - static NSRect maxBounds = {{0, 0}, {0, 0}}; - static char vendor[25] = ""; - NSArray *cgVers; if (gMacDisplay != NULL) { if (strcmp(DisplayString(gMacDisplay->display), display_name) == 0) { @@ -202,13 +197,55 @@ TkpOpenDisplay( } NSAutoreleasePool *pool = [NSAutoreleasePool new]; - display = (Display *)ckalloc(sizeof(Display)); - screen = (Screen *)ckalloc(sizeof(Screen)); + + display = XkbOpenDisplay(display_name, NULL, NULL, NULL, NULL, NULL); + + /* + * Initialize screen bits that may change + */ + + TkMacOSXDisplayChanged(display); + + gMacDisplay = (TkDisplay *)ckalloc(sizeof(TkDisplay)); + + /* + * This is the quickest way to make sure that all the *Init flags get + * properly initialized + */ + + bzero(gMacDisplay, sizeof(TkDisplay)); + gMacDisplay->display = display; + [pool drain]; + + /* + * Key map info must be available immediately, because of "send event". + */ + TkpInitKeymapInfo(gMacDisplay); + + return gMacDisplay; +} + +Display * +XkbOpenDisplay( + TCL_UNUSED(const char *), + int *ev_rtrn, + int *err_rtrn, + int *major_rtrn, + int *minor_rtrn, + int *reason) +{ + _XPrivDisplay display = (_XPrivDisplay)ckalloc(sizeof(Display)); + Screen *screen = (Screen *)ckalloc(sizeof(Screen)); + int fd = 0; + NSArray *cgVers; + static char vendor[25] = ""; + static NSRect maxBounds = {{0, 0}, {0, 0}}; + bzero(display, sizeof(Display)); bzero(screen, sizeof(Screen)); display->resource_alloc = MacXIdAlloc; - LastKnownRequestProcessed(display) = 0; + LastKnownRequestProcessed(display) = 1; display->qlen = 0; display->fd = fd; display->screens = screen; @@ -216,6 +253,24 @@ TkpOpenDisplay( display->default_screen = 0; display->display_name = (char *) macScreenName; + /* + * These screen bits never change + */ + screen->root = ROOT_ID; + screen->display = display; + screen->black_pixel = 0x00000000; + screen->white_pixel = 0x00FFFFFF; + screen->ext_data = (XExtData *) &maxBounds; + + screen->root_visual = (Visual *)ckalloc(sizeof(Visual)); + screen->root_visual->visualid = 0; + screen->root_visual->c_class = TrueColor; + screen->root_visual->red_mask = 0x00FF0000; + screen->root_visual->green_mask = 0x0000FF00; + screen->root_visual->blue_mask = 0x000000FF; + screen->root_visual->bits_per_rgb = 24; + screen->root_visual->map_entries = 256; + cgVers = [[[NSBundle bundleWithIdentifier:@"com.apple.CoreGraphics"] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] componentsSeparatedByString:@"."]; @@ -246,47 +301,14 @@ TkpOpenDisplay( display->release = major << 16 | minor << 8 | patch; } - /* - * These screen bits never change - */ - RootWindowOfScreen(screen) = ROOT_ID; - DisplayOfScreen(screen) = display; - BlackPixelOfScreen(screen) = 0x00000000; - WhitePixelOfScreen(screen) = 0x00FFFFFF; - screen->ext_data = (XExtData *) &maxBounds; - - DefaultVisualOfScreen(screen) = (Visual *)ckalloc(sizeof(Visual)); - DefaultVisualOfScreen(screen)->visualid = 0; - DefaultVisualOfScreen(screen)->c_class = TrueColor; - DefaultVisualOfScreen(screen)->red_mask = 0x00FF0000; - DefaultVisualOfScreen(screen)->green_mask = 0x0000FF00; - DefaultVisualOfScreen(screen)->blue_mask = 0x000000FF; - DefaultVisualOfScreen(screen)->bits_per_rgb = 24; - DefaultVisualOfScreen(screen)->map_entries = 256; - - /* - * Initialize screen bits that may change - */ - - TkMacOSXDisplayChanged(display); - - gMacDisplay = (TkDisplay *)ckalloc(sizeof(TkDisplay)); - - /* - * This is the quickest way to make sure that all the *Init flags get - * properly initialized - */ - bzero(gMacDisplay, sizeof(TkDisplay)); - gMacDisplay->display = display; - [pool drain]; + if (ev_rtrn) *ev_rtrn = 0; + if (err_rtrn) *err_rtrn = 0; + if (major_rtrn) *major_rtrn = 0; + if (minor_rtrn) *minor_rtrn = 0; + if (reason) *reason = 0; - /* - * Key map info must be available immediately, because of "send event". - */ - TkpInitKeymapInfo(gMacDisplay); - - return gMacDisplay; + return display; } /* @@ -524,6 +546,30 @@ XBell( return Success; } +#if 0 +void +XSetWMNormalHints( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(XSizeHints *)) +{ + /* + * Do nothing. Shouldn't even be called. + */ +} + +XSizeHints * +XAllocSizeHints(void) +{ + /* + * Always return NULL. Tk code checks to see if NULL is returned & does + * nothing if it is. + */ + + return NULL; +} +#endif + GContext XGContextFromGC( TCL_UNUSED(GC)) @@ -555,6 +601,31 @@ XClearWindow( return Success; } +/* +int +XDrawPoint( + Display* display, + Drawable d, + GC gc, + int x, + int y) +{ + return Success; +} + +int +XDrawPoints( + Display* display, + Drawable d, + GC gc, + XPoint* points, + int npoints, + int mode) +{ + return Success; +} +*/ + int XWarpPointer( TCL_UNUSED(Display *), @@ -592,6 +663,94 @@ XQueryColor( return Success; } +Bool +XTranslateCoordinates( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(Window), + TCL_UNUSED(int), + TCL_UNUSED(int), + TCL_UNUSED(int *), + TCL_UNUSED(int *), + TCL_UNUSED(Window *)) +{ + return 0; +} + +int +XSetCommand( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(char **), + TCL_UNUSED(int)) +{ + return Success; +} + +int +XGetWindowAttributes( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(XWindowAttributes *)) +{ + return Success; +} + +Status +XGetWMColormapWindows( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(Window **), + TCL_UNUSED(int *)) +{ + return Success; +} + +int +XIconifyWindow( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(int)) +{ + return Success; +} + +XHostAddress * +XListHosts( + TCL_UNUSED(Display *), + TCL_UNUSED(int *), + TCL_UNUSED(Bool *)) +{ + return NULL; +} + +int +XLookupColor( + TCL_UNUSED(Display *), + TCL_UNUSED(Colormap), + TCL_UNUSED(_Xconst char *), + TCL_UNUSED(XColor *), + TCL_UNUSED(XColor *)) +{ + return Success; +} + +int +XNextEvent( + TCL_UNUSED(Display *), + TCL_UNUSED(XEvent *)) +{ + return Success; +} + +int +XPutBackEvent( + TCL_UNUSED(Display *), + TCL_UNUSED(XEvent *)) +{ + return Success; +} + int XQueryColors( TCL_UNUSED(Display *), @@ -654,6 +813,37 @@ XGetWindowProperty( } int +XWindowEvent( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(long), + TCL_UNUSED(XEvent *)) +{ + return Success; +} + +int +XWithdrawWindow( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(int)) +{ + return Success; +} + +int +XmbLookupString( + TCL_UNUSED(XIC), + TCL_UNUSED(XKeyPressedEvent *), + TCL_UNUSED(char *), + TCL_UNUSED(int), + TCL_UNUSED(KeySym *), + TCL_UNUSED(Status *)) +{ + return Success; +} + +int XRefreshKeyboardMapping( TCL_UNUSED(XMappingEvent *)) { @@ -690,37 +880,6 @@ XForceScreenSaver( return Success; } -void -Tk_FreeXId( - TCL_UNUSED(Display *), - TCL_UNUSED(XID)) -{ - /* no-op function needed for stubs implementation. */ -} - -int -XSync( - Display *display, - TCL_UNUSED(Bool)) -{ - /* - * The main use of XSync is by the update command, which alternates - * between running an event loop to process all events without waiting and - * calling XSync on all displays until no events are left. On X11 the - * call to XSync might cause the window manager to generate more events - * which would then get processed. Apparently this process stabilizes on - * X11, leaving the window manager in a state where all events have been - * generated and no additional events can be genereated by updating widgets. - * - * It is not clear what the Aqua port should do when XSync is called, but - * currently the best option seems to be to do nothing. (See ticket - * [da5f2266df].) - */ - - LastKnownRequestProcessed(display)++; - return 0; -} - /* *---------------------------------------------------------------------- * @@ -868,7 +1027,25 @@ XCreateIC(TCL_UNUSED(XIM), ...) return (XIC) 0; } -#undef XVisualIDFromVisual +int +XDeleteProperty( + TCL_UNUSED(Display *), + TCL_UNUSED(Window), + TCL_UNUSED(Atom)) +{ + return Success; +} + +int +XGetInputFocus( + Display *display, + TCL_UNUSED(Window *), + TCL_UNUSED(int *)) +{ + LastKnownRequestProcessed(display)++; + return Success; +} + VisualID XVisualIDFromVisual( Visual *visual) @@ -876,7 +1053,6 @@ XVisualIDFromVisual( return visual->visualid; } -#undef XSynchronize XAfterFunction XSynchronize( Display *display, @@ -886,7 +1062,6 @@ XSynchronize( return NULL; } -#undef XUngrabServer int XUngrabServer( TCL_UNUSED(Display *)) @@ -894,7 +1069,14 @@ XUngrabServer( return 0; } -#undef XNoOp +int +XFreeCursor( + TCL_UNUSED(Display *), + TCL_UNUSED(Cursor)) +{ + return Success; +} + int XNoOp( Display *display) @@ -903,7 +1085,6 @@ XNoOp( return 0; } -#undef XGrabServer int XGrabServer( TCL_UNUSED(Display *)) @@ -911,7 +1092,6 @@ XGrabServer( return 0; } -#undef XFree int XFree( void *data) @@ -921,7 +1101,7 @@ XFree( } return 0; } -#undef XFlush + int XFlush( TCL_UNUSED(Display *)) diff --git a/macosx/ttkMacOSXTheme.c b/macosx/ttkMacOSXTheme.c index 5465bec..7a89fa7 100644 --- a/macosx/ttkMacOSXTheme.c +++ b/macosx/ttkMacOSXTheme.c @@ -30,134 +30,158 @@ */ #include "tkMacOSXPrivate.h" -#include "ttk/ttkTheme.h" +#include "ttk/ttkThemeInt.h" +#include "ttkMacOSXTheme.h" +#include "tkColor.h" +#include <math.h> + +MODULE_SCOPE NSColor *controlAccentColor(void) { + static int accentPixel = -1; + if (accentPixel == -1) { + TkColor *temp = TkpGetColor(NULL, "systemControlAccentColor"); + accentPixel = temp->color.pixel; + ckfree(temp); + } + return TkMacOSXGetNSColor(NULL, accentPixel); +} /* - * Macros for handling drawing contexts. + * Values which depend on the OS version. These are initialized + * in Ttk_MacOSXInit. */ -#define BEGIN_DRAWING(d) { \ - TkMacOSXDrawingContext dc; \ - if (!TkMacOSXSetupDrawingContext((d), NULL, &dc)) { \ - return; \ - } \ +static Ttk_Padding entryElementPadding; +static CGFloat Ttk_ContrastDelta; -#define END_DRAWING \ - TkMacOSXRestoreDrawingContext(&dc);} +/*---------------------------------------------------------------------- + * +++ ComputeButtonDrawInfo -- + * + * Fill in an appearance manager HIThemeButtonDrawInfo record + * from a Ttk state and the ThemeButtonParams used as the + * clientData. + */ -#define HIOrientation kHIThemeOrientationNormal -#define NoThemeMetric 0xFFFFFFFF +static inline HIThemeButtonDrawInfo ComputeButtonDrawInfo( + ThemeButtonParams *params, + Ttk_State state, + TCL_UNUSED(Tk_Window)) +{ + /* + * See ButtonElementDraw for the explanation of why we always draw + * some buttons in the active state. + */ -#ifdef __LP64__ -#define RangeToFactor(maximum) (((double) (INT_MAX >> 1)) / (maximum)) -#else -#define RangeToFactor(maximum) (((double) (LONG_MAX >> 1)) / (maximum)) -#endif /* __LP64__ */ + SInt32 HIThemeState; + int adornment = 0; -#define TTK_STATE_FIRST_TAB TTK_STATE_USER1 -#define TTK_STATE_LAST_TAB TTK_STATE_USER2 -#define TTK_TREEVIEW_STATE_SORTARROW TTK_STATE_USER1 + HIThemeState = Ttk_StateTableLookup(ThemeStateTable, state); -/* - * Colors and gradients used in Dark Mode. - */ + /* + * HITheme uses the adornment to decide the direction of the + * arrow on a Disclosure Button. Also HITheme draws inactive + * (TTK_STATE_BACKGROUND) buttons in a gray color but macOS + * no longer does that. So we adjust the HIThemeState. + */ -static CGFloat darkButtonFace[4] = { - 90.0 / 255, 86.0 / 255, 95.0 / 255, 1.0 -}; -static CGFloat darkPressedButtonFace[4] = { - 114.0 / 255, 110.0 / 255, 118.0 / 255, 1.0 -}; -static CGFloat darkPressedBevelFace[4] = { - 135.0 / 255, 136.0 / 255, 138.0 / 255, 1.0 -}; -static CGFloat darkSelectedBevelFace[4] = { - 162.0 / 255, 163.0 / 255, 165.0 / 255, 1.0 -}; -static CGFloat darkDisabledButtonFace[4] = { - 86.0 / 255, 87.0 / 255, 89.0 / 255, 1.0 -}; -static CGFloat darkInactiveSelectedTab[4] = { - 159.0 / 255, 160.0 / 255, 161.0 / 255, 1.0 -}; -static CGFloat darkSelectedTab[4] = { - 97.0 / 255, 94.0 / 255, 102.0 / 255, 1.0 -}; -static CGFloat darkTab[4] = { - 44.0 / 255, 41.0 / 255, 50.0 / 255, 1.0 -}; -static CGFloat darkFocusRing[4] = { - 38.0 / 255, 113.0 / 255, 159.0 / 255, 1.0 -}; -static CGFloat darkFocusRingTop[4] = { - 50.0 / 255, 124.0 / 255, 171.0 / 255, 1.0 -}; -static CGFloat darkFocusRingBottom[4] = { - 57.0 / 255, 130.0 / 255, 176.0 / 255, 1.0 -}; -static CGFloat darkTabSeparator[4] = {0.0, 0.0, 0.0, 0.25}; -static CGFloat darkTrack[4] = {1.0, 1.0, 1.0, 0.25}; -static CGFloat darkFrameTop[4] = {1.0, 1.0, 1.0, 0.0625}; -static CGFloat darkFrameBottom[4] = {1.0, 1.0, 1.0, 0.125}; -static CGFloat darkFrameAccent[4] = {0.0, 0.0, 0.0, 0.0625}; -static CGFloat darkTopGradient[8] = { - 1.0, 1.0, 1.0, 0.3, - 1.0, 1.0, 1.0, 0.0 -}; -static CGFloat darkBackgroundGradient[8] = { - 0.0, 0.0, 0.0, 0.1, - 0.0, 0.0, 0.0, 0.25 -}; -static CGFloat darkInactiveGradient[8] = { - 89.0 / 255, 90.0 / 255, 93.0 / 255, 1.0, - 119.0 / 255, 120.0 / 255, 122.0 / 255, 1.0 -}; -static CGFloat darkSelectedGradient[8] = { - 23.0 / 255, 111.0 / 255, 232.0 / 255, 1.0, - 20.0 / 255, 94.0 / 255, 206.0 / 255, 1.0 -}; -static CGFloat pressedPushButtonGradient[8] = { - 35.0 / 255, 123.0 / 255, 244.0 / 255, 1.0, - 30.0 / 255, 114.0 / 255, 235.0 / 255, 1.0 -}; + switch (params->kind) { + case kThemeArrowButton: + adornment = kThemeAdornmentDrawIndicatorOnly; + if (state & TTK_STATE_SELECTED) { + adornment |= kThemeAdornmentArrowUpArrow; + } + /* Fall through. */ + case kThemeRadioButton: + /* + * The gray color is better than the blue color for a + * background selected Radio Button. + */ + + if (state & TTK_STATE_SELECTED) { + break; + } + default: + if (state & TTK_STATE_BACKGROUND) { + HIThemeState |= kThemeStateActive; + } + break; + } + + const HIThemeButtonDrawInfo info = { + .version = 0, + .state = HIThemeState, + .kind = params ? params->kind : 0, + .value = Ttk_StateTableLookup(ButtonValueTable, state), + .adornment = Ttk_StateTableLookup(ButtonAdornmentTable, state) | adornment, + }; + return info; +} /* - * When building on systems earlier than 10.8 there is no reasonable way to - * convert an NSColor to a CGColor. We do run-time checking of the OS version, - * and never need the CGColor property on older systems, so we can use this - * CGCOLOR macro, which evaluates to NULL without raising compiler warnings. - * Similarly, we never draw rounded rectangles on older systems which did not - * have CGPathCreateWithRoundedRect, so we just redefine it to return NULL. + * When we draw simulated Apple widgets we use the Core Graphics framework. + * Core Graphics uses CGColorRefs, not NSColors. A CGColorRef must be retained + * and released explicitly while an NSColor is autoreleased. In version 10.8 + * of macOS Apple introduced a CGColor property of an NSColor which is guaranteed + * to be a valid CGColorRef for (approximately) the same color and is released + * when the NSColor is autoreleased. + * + * When building on systems earlier than 10.8 there is no painless way to + * convert an NSColor to a CGColor. On the other hand, on those systems we use + * the HIToolbox to draw all widgets, so we never need to call Core Graphics + * drawing routines directly. This means that the functions and macros below + * which construct CGColorRefs can be defined to return nil on systems before + * 10.8. + * + * Similarly, those older systems did not have CGPathCreateWithRoundedRect, but + * since we never need to draw rounded rectangles on those systems we can just + * define it to return nil. */ #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1080 +static CGColorRef +CGColorFromRGBA( + CGFloat *rgba) +{ + NSColorSpace *colorSpace = [NSColorSpace sRGBColorSpace]; + NSColor *nscolor = [NSColor colorWithColorSpace: colorSpace + components: rgba + count: 4]; + return nscolor.CGColor; +} + +static CGColorRef +CGColorFromGray( + GrayColor g) +{ + CGFloat rgba[4] = {g.grayscale, g.grayscale, g.grayscale, g.alpha}; + NSColorSpace *colorSpace = [NSColorSpace sRGBColorSpace]; + NSColor *nscolor = [NSColor colorWithColorSpace: colorSpace + components: rgba + count: 4]; + return nscolor.CGColor; +} + #define CGCOLOR(nscolor) (nscolor).CGColor + #else -#define CGCOLOR(nscolor) (0 ? (CGColorRef) (nscolor) : NULL) -#define CGPathCreateWithRoundedRect(w, x, y, z) NULL -#endif -/* - * If we try to draw a rounded rectangle with too large of a radius - * CoreGraphics will raise a fatal exception. This macro returns if - * the width or height is less than twice the radius. Presumably this - * only happens when a widget has not yet been configured and has size - * 1x1. - */ +#define CGCOLOR(nscolor) NULL +#define CGColorFromRGBA(rgba) NULL +#define CGColorFromGray(gray) NULL +#define CGPathCreateWithRoundedRect(w, x, y, z) NULL -#define CHECK_RADIUS(radius, bounds) \ - if ((radius) > (bounds).size.width / 2 || (radius) > (bounds).size.height / 2) { \ - return; \ - } +#endif /*---------------------------------------------------------------------- * +++ Utilities. */ -/* +/*---------------------------------------------------------------------- * BoxToRect -- - * Convert a Ttk_Box in Tk coordinates relative to the given Drawable - * to a native Rect relative to the containing port. + * + * Convert a Ttk_Box in Tk coordinates relative to the given Drawable to a + * native CGRect relative to the containing NSView. (The coordinate system + * is the one used by CGContextRef, which has origin at the upper left + * corner, and y increasing downward.) */ static inline CGRect BoxToRect( @@ -175,60 +199,88 @@ static inline CGRect BoxToRect( return rect; } -/* - * Table mapping Tk states to Appearance manager ThemeStates +/*---------------------------------------------------------------------- + * LookupGrayPalette + * + * Retrieves the palette of grayscale colors needed to draw a particular + * type of button, in a particular state, in light or dark mode. + * */ -static Ttk_StateTable ThemeStateTable[] = { - {kThemeStateActive, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, - {kThemeStateUnavailable, TTK_STATE_DISABLED, 0}, - {kThemeStatePressed, TTK_STATE_PRESSED, 0}, - {kThemeStateInactive, TTK_STATE_BACKGROUND, 0}, - {kThemeStateActive, 0, 0} - - /* Others: Not sure what these are supposed to mean. Up/Down have - * something to do with "little arrow" increment controls... Dunno what - * a "Rollover" is. - * NEM: Rollover is TTK_STATE_ACTIVE... but we don't handle that yet, by - * the looks of things - * - * {kThemeStateRollover, 0, 0}, - * {kThemeStateUnavailableInactive, 0, 0} - * {kThemeStatePressedUp, 0, 0}, - * {kThemeStatePressedDown, 0, 0} - */ -}; +static GrayPalette LookupGrayPalette( + const ButtonDesign *design, + Ttk_State state, + int isDark) +{ + const PaletteStateTable *entry = design->palettes; + while ((state & entry->onBits) != entry->onBits || + (~state & entry->offBits) != entry->offBits) + { + ++entry; + } + return isDark ? entry->dark : entry->light; +} /*---------------------------------------------------------------------- * NormalizeButtonBounds -- * - * Apple's Human Interface Guidelines only allow three specific heights - * for most buttons: Regular, small and mini. We always use the regular - * size. However, Ttk may provide an arbitrary bounding rectangle. We - * always draw the button centered vertically on the rectangle, and - * having the same width as the rectangle. This function returns the - * actual bounding rectangle that will be used in drawing the button. + * This function returns the actual bounding rectangle that will be used + * in drawing the button. + * + * Apple only allows three specific heights for most buttons: regular, + * small and mini. We always use the regular size. However, Ttk may + * provide a bounding rectangle with arbitrary height. We draw the Mac + * button centered vertically in the Ttk rectangle, with the same width as + * the rectangle. (But we take care to produce an integer y coordinate, + * to avoid unexpected anti-aliasing.) + * + * In addition, the button types which are not known to HIToolbox need some + * adjustments to their bounds. * - * The BevelButton is allowed to have arbitrary size, and also has - * external padding. This is handled separately here. */ static CGRect NormalizeButtonBounds( - SInt32 heightMetric, - CGRect bounds) + ThemeButtonParams *params, + CGRect bounds, + int isDark) { SInt32 height; - if (heightMetric != (SInt32) NoThemeMetric) { - ChkErr(GetThemeMetric, heightMetric, &height); - bounds.origin.y += (bounds.size.height - height) / 2; + if (params->heightMetric != NoThemeMetric) { + ChkErr(GetThemeMetric, params->heightMetric, &height); + height += 2; + bounds.origin.y += round(1 + (bounds.size.height - height) / 2); bounds.size.height = height; } + switch (params->kind) { + case TkRoundedRectButton: + bounds.size.height -= 1; + break; + case TkInlineButton: + bounds.size.height -= 4; + bounds.origin.y += 1; + break; + case TkRecessedButton: + bounds.size.height -= 2; + break; + case TkSidebarButton: + bounds.size.height += 8; + break; + case kThemeRoundButtonHelp: + if (isDark) { + bounds.size.height = bounds.size.width = 22; + } else { + bounds.size.height = bounds.size.width = 22; + } + break; + default: + break; + } return bounds; } /*---------------------------------------------------------------------- - * +++ Backgrounds + * +++ Background Colors * * Support for contrasting background colors when GroupBoxes or Tabbed * panes are nested inside each other. Early versions of macOS used ridged @@ -243,31 +295,31 @@ static CGRect NormalizeButtonBounds( * support Dark Mode anyway. */ -static const CGFloat WINDOWBACKGROUND[4] = { - 235.0 / 255, 235.0 / 255, 235.0 / 255, 1.0 -}; -static const CGFloat WHITERGBA[4] = {1.0, 1.0, 1.0, 1.0}; -static const CGFloat BLACKRGBA[4] = {0.0, 0.0, 0.0, 1.0}; +RGBACOLOR windowBackground[4] = RGBA256(235.0, 235.0, 235.0, 1.0); /*---------------------------------------------------------------------- * GetBackgroundColor -- * * Fills the array rgba with the color coordinates for a background color. - * Start with the background color of a window's geometry container, or - * the standard ttk window background if there is no container. If the + * Start with the background color of a window's container, or the + * standard ttk window background if there is no container. If the * contrast parameter is nonzero, modify this color to be darker, for the * aqua appearance, or lighter for the DarkAqua appearance. This is - * primarily used by the Fill and Background elements. + * primarily used by the Fill and Background elements. The save parameter + * is normally YES, so the contrasting color is saved in the private + * data of the widget. This behavior can be disabled in special cases, + * such as when drawing notebook tabs in macOS 11. */ -static void GetBackgroundColor( +static void GetBackgroundColorRGBA( TCL_UNUSED(CGContextRef), Tk_Window tkwin, int contrast, + Bool save, CGFloat *rgba) { - TkWindow *winPtr = (TkWindow *)tkwin; - TkWindow *containerPtr = (TkWindow *)TkGetContainer(tkwin); + TkWindow *winPtr = (TkWindow *) tkwin; + TkWindow *containerPtr = (TkWindow *) TkGetContainer(tkwin); while (containerPtr && containerPtr->privatePtr) { if (containerPtr->privatePtr->flags & TTK_HAS_CONTRASTING_BG) { @@ -287,23 +339,24 @@ static void GetBackgroundColor( [windowColor getComponents: rgba]; } else { for (int i = 0; i < 4; i++) { - rgba[i] = WINDOWBACKGROUND[i]; + rgba[i] = windowBackground[i]; } } } + if (contrast) { int isDark = (rgba[0] + rgba[1] + rgba[2] < 1.5); if (isDark) { for (int i = 0; i < 3; i++) { - rgba[i] += 8.0 / 255.0; + rgba[i] += Ttk_ContrastDelta*contrast / 255.0; } } else { for (int i = 0; i < 3; i++) { - rgba[i] -= 8.0 / 255.0; + rgba[i] -= Ttk_ContrastDelta*contrast / 255.0; } } - if (winPtr->privatePtr) { + if (save && winPtr->privatePtr) { winPtr->privatePtr->flags |= TTK_HAS_CONTRASTING_BG; for (int i = 0; i < 4; i++) { winPtr->privatePtr->fillRGBA[i] = rgba[i]; @@ -312,12 +365,313 @@ static void GetBackgroundColor( } } +static CGColorRef GetBackgroundCGColor( + CGContextRef context, + Tk_Window tkwin, + int contrast, + Bool save) +{ + CGFloat rgba[4]; + GetBackgroundColorRGBA(context, tkwin, contrast, save, rgba); + return CGColorFromRGBA(rgba); +} /*---------------------------------------------------------------------- - * +++ Single Arrow Images -- + * +++ Buttons + */ + +/*---------------------------------------------------------------------- + * FillRoundedRectangle -- * - * Used in ListHeaders and Comboboxes as well as disclosure triangles in - * macOS 11. + * Fill a rounded rectangle with a specified solid color. + */ + +static void FillRoundedRectangle( + CGContextRef context, + CGRect bounds, + CGFloat radius, + CGColorRef color) +{ + CGPathRef path; + CHECK_RADIUS(radius, bounds) + + path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); + if (!path) { + return; + } + CGContextSetFillColorWithColor(context, color); + CGContextBeginPath(context); + CGContextAddPath(context, path); + CGContextFillPath(context); + CFRelease(path); +} + +/*---------------------------------------------------------------------- + * FillBorder -- + * + * Draw a 1-pixel border around a rounded rectangle using a 3-step + * gradient of shades of gray. + */ + +static void FillBorder( + CGContextRef context, + CGRect bounds, + GrayPalette palette, + CGFloat radius) +{ + if (bounds.size.width < 2) { + return; + } + NSColorSpace *sRGB = [NSColorSpace sRGBColorSpace]; + CGPoint end = CGPointMake(bounds.origin.x, bounds.origin.y + bounds.size.height); + CGFloat corner = (radius > 0 ? radius : 2.0) / bounds.size.height; + CGFloat locations[4] = {0.0, corner, 1.0 - corner, 1.0}; + CGPathRef path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); + CGFloat colors[16]; + colors[0] = colors[1] = colors[2] = palette.top / 255.0; + colors[4] = colors[5] = colors[6] = palette.side / 255.0; + colors[8] = colors[9] = colors[10] = palette.side / 255.0; + colors[12] = colors[13] = colors[14] = palette.bottom / 255.0; + colors[3] = colors[7] = colors[11] = colors[15] = 1.0; + CGGradientRef gradient = CGGradientCreateWithColorComponents( + sRGB.CGColorSpace, colors, locations, 4); + if (!gradient) { + return; + } + CGContextSaveGState(context); + CGContextBeginPath(context); + CGContextAddPath(context, path); + CGContextClip(context); + CGContextDrawLinearGradient(context, gradient, bounds.origin, end, 0.0); + CGContextRestoreGState(context); + CFRelease(path); + CFRelease(gradient); +} + +/*---------------------------------------------------------------------- + * DrawFocusRing -- + * + * Draw a 4-pixel wide rounded focus ring enclosing a rounded + * rectangle, using the current system accent color. + */ + +static void DrawFocusRing( + CGContextRef context, + CGRect bounds, + const ButtonDesign *design) +{ + CGColorRef highlightColor; + CGFloat highlight[4] = {1.0, 1.0, 1.0, 0.2}; + CGColorRef focusColor; + + focusColor = CGCOLOR([controlAccentColor() colorWithAlphaComponent:0.6]); + FillRoundedRectangle(context, bounds, design->radius, focusColor); + bounds = CGRectInset(bounds, 3, 3); + highlightColor = CGColorFromRGBA(highlight); + CGContextSetFillColorWithColor(context, highlightColor); + CGContextFillRect(context, bounds); +} + +/*---------------------------------------------------------------------- + * DrawGrayButton -- + * + * Draw a button in normal gray colors. + * + * Aqua buttons are normally drawn in a grayscale color. The buttons, + * which are shaped as rounded rectangles have a 1-pixel border which is + * drawn in a 3-step gradient and a solid gray face. + * + * Note that this will produce a round button if length = width = + * 2*radius. + */ + +static void DrawGrayButton( + CGContextRef context, + CGRect bounds, + const ButtonDesign *design, + Ttk_State state, + Tk_Window tkwin) +{ + int isDark = TkMacOSXInDarkMode(tkwin); + GrayPalette palette = LookupGrayPalette(design, state, isDark); + GrayColor faceGray = {.grayscale = 0.0, .alpha = 1.0}; + CGFloat radius = 2 * design->radius <= bounds.size.height ? + design->radius : bounds.size.height / 2; + if (palette.top <= 255.0) { + FillBorder(context, bounds, palette, radius); + } + if (palette.face <= 255.0) { + faceGray.grayscale = palette.face / 255.0; + } else { + + /* + * Color values > 255 are "transparent" which really means that we + * fill with the background color. + */ + + CGFloat rgba[4], gray; + GetBackgroundColorRGBA(context, tkwin, 0, NO, rgba); + gray = (rgba[0] + rgba[1] + rgba[2]) / 3.0; + faceGray.grayscale = gray; + } + FillRoundedRectangle(context, CGRectInset(bounds, 1, 1), radius - 1, + CGColorFromGray(faceGray)); +} + +/*---------------------------------------------------------------------- + * DrawAccentedButton -- + * + * The accent color is only used when drawing buttons in the active + * window. Push Buttons and segmented Arrow Buttons are drawn in color + * when in the pressed state. Selected Check Buttons, Radio Buttons and + * notebook Tabs are also drawn in color. The color is based on the + * user's current choice for the controlAccentColor, but is actually a + * linear gradient with a 1-pixel darker line at the top and otherwise + * changing from lighter at the top to darker at the bottom. This + * function draws a colored rounded rectangular button. + */ + +static void DrawAccentedButton( + CGContextRef context, + CGRect bounds, + const ButtonDesign *design, + int state, + int isDark) +{ + NSColorSpace *sRGB = [NSColorSpace sRGBColorSpace]; + CGColorRef faceColor = CGCOLOR(controlAccentColor()); + CGFloat radius = design->radius; + CGPathRef path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); + // This gradient should only be used for PushButtons and Tabs, and it needs + // to be lighter at the top. + static CGFloat components[12] = {1.0, 1.0, 1.0, 0.05, + 1.0, 1.0, 1.0, 0.2, + 1.0, 1.0, 1.0, 0.0}; + CGFloat locations[3] = {0.0, 0.05, 1.0}; + CGGradientRef gradient = CGGradientCreateWithColorComponents( + sRGB.CGColorSpace, components, locations, 3); + CGPoint end; + if (bounds.size.height > 2*radius) { + bounds.size.height -= 1; + } + end = CGPointMake(bounds.origin.x, bounds.origin.y + bounds.size.height); + CGContextSaveGState(context); + CGContextBeginPath(context); + CGContextAddPath(context, path); + CGContextClip(context); + FillRoundedRectangle(context, bounds, radius, faceColor); + CGContextDrawLinearGradient(context, gradient, bounds.origin, end, 0.0); + if (state & TTK_STATE_PRESSED && + state & TTK_STATE_ALTERNATE) { + CGColorRef color = isDark ? + CGColorFromGray(darkPressedDefaultButton) : + CGColorFromGray(pressedDefaultButton); + FillRoundedRectangle(context, bounds, radius, color); + } + CGContextRestoreGState(context); + CFRelease(path); + CFRelease(gradient); +} + +/*---------------------------------------------------------------------- + * DrawAccentedSegment -- + * + * Draw the colored ends of widgets like popup buttons and combo buttons. + */ + +static void DrawAccentedSegment( + CGContextRef context, + CGRect bounds, + const ButtonDesign *design, + Ttk_State state, + Tk_Window tkwin) +{ + /* + * Clip to the bounds and then draw an accented button which is extended so + * that the rounded corners on the left will be clipped off. This assumes + * that the bounds include room for the focus ring. + */ + int isDark = TkMacOSXInDarkMode(tkwin); + GrayColor sepGray = isDark ? darkComboSeparator : lightComboSeparator; + CGColorRef sepColor = CGColorFromGray(sepGray); + CGRect clip = bounds; + clip.size.height += 10; + bounds.origin.x -= 10; + bounds.size.width += 10; + CGPoint separator[2] = { + CGPointMake(clip.origin.x - 1, bounds.origin.y + 5), + CGPointMake(clip.origin.x - 1, + bounds.origin.y + bounds.size.height - 3)}; + CGContextSaveGState(context); + CGContextSetStrokeColorWithColor(context, sepColor); + CGContextSetShouldAntialias(context, false); + CGContextSetLineWidth(context, 0.5); + CGContextAddLines(context, separator, 2); + CGContextStrokePath(context); + CGContextSetShouldAntialias(context, true); + if (state & TTK_STATE_FOCUS) { + CGRect focusClip = clip; + clip.size.width += 4; + CGContextClipToRect(context, focusClip); + bounds = CGRectInset(bounds, 0, 1); + DrawFocusRing(context, bounds, design); + } + bounds = CGRectInset(bounds, 4, 4); + if (state & TTK_STATE_BACKGROUND) { + bounds.size.height += 2; + } else { + bounds.size.height += 1; + } + CGContextClipToRect(context, clip); + if ((state & TTK_STATE_BACKGROUND) || (state & TTK_STATE_DISABLED)) { + DrawGrayButton(context, bounds, design, state, tkwin); + } else { + DrawAccentedButton(context, bounds, design, state | TTK_STATE_ALTERNATE, + isDark); + } + CGContextRestoreGState(context); +} + +/*---------------------------------------------------------------------- + * +++ Entry boxes + */ + +static void DrawEntry( + CGContextRef context, + CGRect bounds, + const ButtonDesign *design, + int state, + Tk_Window tkwin) +{ + int isDark = TkMacOSXInDarkMode(tkwin); + GrayPalette palette = LookupGrayPalette(design, state, isDark); + CGColorRef backgroundColor; + CGFloat bgRGBA[4]; + if (isDark) { + GetBackgroundColorRGBA(context, tkwin, 0, NO, bgRGBA); + + /* + * Lighten the entry background to provide contrast. + */ + + for (int i = 0; i < 3; i++) { + bgRGBA[i] += 8.0 / 255.0; + } + backgroundColor = CGColorFromRGBA(bgRGBA); + } else { + backgroundColor = CG_WHITE; + } + if (state & TTK_STATE_FOCUS) { + DrawFocusRing(context, bounds, design); + } else { + FillBorder(context, CGRectInset(bounds,3,3), palette, design->radius); + } + bounds = CGRectInset(bounds, 4, 4); + FillRoundedRectangle(context, bounds, design->radius, backgroundColor); +} + +/*---------------------------------------------------------------------- + * +++ Chevrons, CheckMarks, etc. -- */ static void DrawDownArrow( @@ -325,11 +679,20 @@ static void DrawDownArrow( CGRect bounds, CGFloat inset, CGFloat size, - const CGFloat *rgba) + int state) { + CGColorRef strokeColor; CGFloat x, y; - CGContextSetRGBStrokeColor(context, rgba[0], rgba[1], rgba[2], rgba[3]); + + if (state & TTK_STATE_DISABLED) { + strokeColor = CGCOLOR([NSColor disabledControlTextColor]); + } else if (state & TTK_STATE_IS_ACCENTED) { + strokeColor = CG_WHITE; + } else { + strokeColor = CGCOLOR([NSColor controlTextColor]); + } + CGContextSetStrokeColorWithColor(context, strokeColor); CGContextSetLineWidth(context, 1.5); x = bounds.origin.x + inset; y = bounds.origin.y + trunc(bounds.size.height / 2) + 1; @@ -342,16 +705,28 @@ static void DrawDownArrow( CGContextStrokePath(context); } +/*---------------------------------------------------------------------- + * DrawUpArrow -- + * + * Draws a single upward pointing arrow for ListHeaders and Disclosure Buttons. + */ + static void DrawUpArrow( CGContextRef context, CGRect bounds, CGFloat inset, CGFloat size, - const CGFloat *rgba) + int state) { + NSColor *strokeColor; CGFloat x, y; - CGContextSetRGBStrokeColor(context, rgba[0], rgba[1], rgba[2], rgba[3]); + if (state & TTK_STATE_DISABLED) { + strokeColor = [NSColor disabledControlTextColor]; + } else { + strokeColor = [NSColor controlTextColor]; + } + CGContextSetStrokeColorWithColor(context, CGCOLOR(strokeColor)); CGContextSetLineWidth(context, 1.5); x = bounds.origin.x + inset; y = bounds.origin.y + trunc(bounds.size.height / 2); @@ -364,28 +739,60 @@ static void DrawUpArrow( CGContextStrokePath(context); } -static void DrawClosedDisclosure( +/*---------------------------------------------------------------------- + * DrawUpDownArrows -- + * + * Draws the double arrows used in menu buttons and spin buttons. + */ + +static void DrawUpDownArrows( CGContextRef context, CGRect bounds, CGFloat inset, CGFloat size, - CGFloat *rgba) + CGFloat gap, + int state, + ThemeDrawState drawState) { CGFloat x, y; - - CGContextSetRGBStrokeColor(context, rgba[0], rgba[1], rgba[2], rgba[3]); + NSColor *topStrokeColor, *bottomStrokeColor; + if (drawState == BOTH_ARROWS && !(state & TTK_STATE_BACKGROUND)) { + topStrokeColor = bottomStrokeColor = [NSColor whiteColor]; + } else if (drawState == kThemeStatePressedDown) { + topStrokeColor = [NSColor controlTextColor]; + bottomStrokeColor = [NSColor whiteColor]; + } else if (drawState == kThemeStatePressedUp) { + topStrokeColor = [NSColor whiteColor]; + bottomStrokeColor = [NSColor controlTextColor]; + } else if (state & TTK_STATE_DISABLED) { + topStrokeColor = bottomStrokeColor = [NSColor disabledControlTextColor]; + } else { + topStrokeColor = bottomStrokeColor = [NSColor controlTextColor]; + } CGContextSetLineWidth(context, 1.5); x = bounds.origin.x + inset; y = bounds.origin.y + trunc(bounds.size.height / 2); CGContextBeginPath(context); - CGPoint arrow[3] = { - {x, y - size / 4 - 1}, {x + size / 2, y}, {x, y + size / 4 + 1} - }; - CGContextAddLines(context, arrow, 3); + CGPoint bottomArrow[3] = + {{x, y + gap}, {x + size / 2, y + gap + size / 2}, {x + size, y + gap}}; + CGContextAddLines(context, bottomArrow, 3); + CGContextSetStrokeColorWithColor(context, CGCOLOR(bottomStrokeColor)); + CGContextStrokePath(context); + CGContextBeginPath(context); + CGPoint topArrow[3] = + {{x, y - gap}, {x + size / 2, y - gap - size / 2}, {x + size, y - gap}}; + CGContextAddLines(context, topArrow, 3); + CGContextSetStrokeColorWithColor(context, CGCOLOR(topStrokeColor)); CGContextStrokePath(context); } -static void DrawOpenDisclosure( +/*---------------------------------------------------------------------- + * DrawClosedDisclosure -- + * + * Draws a disclosure chevron in the Big Sur style, for Treeviews. + */ + +static void DrawClosedDisclosure( CGContextRef context, CGRect bounds, CGFloat inset, @@ -400,24 +807,24 @@ static void DrawOpenDisclosure( y = bounds.origin.y + trunc(bounds.size.height / 2); CGContextBeginPath(context); CGPoint arrow[3] = { - {x, y - size / 4}, {x + size / 2, y + size / 2}, {x + size, y - size / 4} + {x, y - size / 4 - 1}, {x + size / 2, y}, {x, y + size / 4 + 1} }; CGContextAddLines(context, arrow, 3); CGContextStrokePath(context); } /*---------------------------------------------------------------------- - * +++ Double Arrow Buttons -- + * DrawOpenDisclosure -- * - * Used in MenuButtons and SpinButtons. + * Draws an open disclosure chevron in the Big Sur style, for Treeviews. */ -static void DrawUpDownArrows( +static void DrawOpenDisclosure( CGContextRef context, CGRect bounds, CGFloat inset, CGFloat size, - const CGFloat *rgba) + CGFloat *rgba) { CGFloat x, y; @@ -426,655 +833,687 @@ static void DrawUpDownArrows( x = bounds.origin.x + inset; y = bounds.origin.y + trunc(bounds.size.height / 2); CGContextBeginPath(context); - CGPoint bottomArrow[3] = - {{x, y + 2}, {x + size / 2, y + 2 + size / 2}, {x + size, y + 2}}; - CGContextAddLines(context, bottomArrow, 3); - CGPoint topArrow[3] = - {{x, y - 2}, {x + size / 2, y - 2 - size / 2}, {x + size, y - 2}}; - CGContextAddLines(context, topArrow, 3); + CGPoint arrow[3] = { + {x, y - size / 4}, {x + size / 2, y + size / 2}, {x + size, y - size / 4} + }; + CGContextAddLines(context, arrow, 3); CGContextStrokePath(context); } - /*---------------------------------------------------------------------- - * +++ FillButtonBackground -- + * IndicatorColor -- * - * Fills a rounded rectangle with a transparent black gradient. - * This is a no-op if building on 10.8 or older. + * Returns a CGColorRef of the appropriate shade for a check button or + * radio button in a given state. */ -static void FillButtonBackground( - CGContextRef context, - CGRect bounds, - CGFloat radius) +static CGColorRef IndicatorColor( + int state, + int isDark) { - CHECK_RADIUS(radius, bounds) - - CGPathRef path; - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - CGGradientRef backgroundGradient = CGGradientCreateWithColorComponents( - deviceRGB.CGColorSpace, darkBackgroundGradient, NULL, 2); - CGPoint backgroundEnd = { - bounds.origin.x, - bounds.origin.y + bounds.size.height - }; - CGContextBeginPath(context); - path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); - CGContextAddPath(context, path); - CGContextClip(context); - CGContextDrawLinearGradient(context, backgroundGradient, - bounds.origin, backgroundEnd, 0); - CFRelease(path); - CFRelease(backgroundGradient); + if (state & TTK_STATE_DISABLED) { + return isDark ? + CGColorFromGray(darkDisabledIndicator) : + CGColorFromGray(lightDisabledIndicator); + } else if ((state & TTK_STATE_SELECTED || state & TTK_STATE_ALTERNATE) && + !(state & TTK_STATE_BACKGROUND)) { + return CG_WHITE; + } else { + return CGCOLOR([NSColor controlTextColor]); + } } /*---------------------------------------------------------------------- - * +++ HighlightButtonBorder -- + * DrawCheckIndicator -- * - * Accent the top border of a rounded rectangle with a transparent - * white gradient. + * Draws the checkmark or horizontal bar in a check box. */ -static void HighlightButtonBorder( +static void DrawCheckIndicator( CGContextRef context, - CGRect bounds) -{ - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - CGPoint topEnd = {bounds.origin.x, bounds.origin.y + 3}; - CGGradientRef topGradient = CGGradientCreateWithColorComponents( - deviceRGB.CGColorSpace, darkTopGradient, NULL, 2); - - CGContextSaveGState(context); - CGContextBeginPath(context); - CGContextAddArc(context, bounds.origin.x + 4, bounds.origin.y + 4, - 4, PI, 3 * PI / 2, 0); - CGContextAddArc(context, bounds.origin.x + bounds.size.width - 4, - bounds.origin.y + 4, 4, 3 * PI / 2, 0, 0); - CGContextReplacePathWithStrokedPath(context); - CGContextClip(context); - CGContextDrawLinearGradient(context, topGradient, bounds.origin, topEnd, - 0.0); - CGContextRestoreGState(context); - CFRelease(topGradient); -} - -/*---------------------------------------------------------------------- - * DrawGroupBox -- - * - * This is a standalone drawing procedure which draws the contrasting - * rounded rectangular box for LabelFrames and Notebook panes used in - * more recent versions of macOS. - */ - -static void DrawGroupBox( CGRect bounds, - CGContextRef context, - Tk_Window tkwin) + int state, + int isDark) { - CHECK_RADIUS(4, bounds) - - CGPathRef path; - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *borderColor, *bgColor; - static CGFloat border[4] = {1.0, 1.0, 1.0, 0.25}; - CGFloat fill[4]; - - GetBackgroundColor(context, tkwin, 1, fill); - bgColor = [NSColor colorWithColorSpace: deviceRGB components: fill - count: 4]; - CGContextSetFillColorSpace(context, deviceRGB.CGColorSpace); - CGContextSetFillColorWithColor(context, CGCOLOR(bgColor)); - path = CGPathCreateWithRoundedRect(bounds, 4, 4, NULL); - CGContextClipToRect(context, bounds); - CGContextBeginPath(context); - CGContextAddPath(context, path); - CGContextFillPath(context); - borderColor = [NSColor colorWithColorSpace: deviceRGB components: border - count: 4]; - CGContextSetFillColorWithColor(context, CGCOLOR(borderColor)); - [borderColor getComponents: fill]; - CGContextSetRGBFillColor(context, fill[0], fill[1], fill[2], fill[3]); + CGFloat x = bounds.origin.x, y = bounds.origin.y; + CGColorRef strokeColor = IndicatorColor(state, isDark); - CGContextBeginPath(context); - CGContextAddPath(context, path); - CGContextReplacePathWithStrokedPath(context); - CGContextFillPath(context); - CFRelease(path); + CGContextSetStrokeColorWithColor(context, strokeColor); + if (state & TTK_STATE_SELECTED) { + CGContextSetLineWidth(context, 1.5); + CGContextBeginPath(context); + CGPoint check[3] = {{x + 3, y + 7}, {x + 6, y + 10}, {x + 10, y + 3}}; + CGContextAddLines(context, check, 3); + CGContextStrokePath(context); + } else if (state & TTK_STATE_ALTERNATE) { + CGContextSetLineWidth(context, 2.0); + CGContextBeginPath(context); + CGPoint bar[2] = {{x + 3, y + 7}, {x + 11, y + 7}}; + CGContextAddLines(context, bar, 2); + CGContextStrokePath(context); + } } /*---------------------------------------------------------------------- - * SolidFillRoundedRectangle -- + * DrawRadioIndicator -- * - * Fill a rounded rectangle with a specified solid color. + * Draws the dot in the middle of a selected radio button. */ -static void SolidFillRoundedRectangle( +static void DrawRadioIndicator( CGContextRef context, CGRect bounds, - CGFloat radius, - NSColor *color) + int state, + int isDark) { - CGPathRef path; + CGFloat x = bounds.origin.x, y = bounds.origin.y; + CGColorRef fillColor = IndicatorColor(state, isDark); - CHECK_RADIUS(radius, bounds) - path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); - if (!path) { - return; + CGContextSetFillColorWithColor(context, fillColor); + if (state & TTK_STATE_SELECTED) { + CGContextBeginPath(context); + CGRect dot = {{x + 5, y + 5}, {6, 6}}; + CGContextAddEllipseInRect(context, dot); + CGContextFillPath(context); + } else if (state & TTK_STATE_ALTERNATE) { + CGRect bar = {{x + 4, y + 7}, {8, 2}}; + CGContextFillRect(context, bar); } - CGContextSetFillColorWithColor(context, CGCOLOR(color)); - CGContextBeginPath(context); - CGContextAddPath(context, path); - CGContextFillPath(context); - CFRelease(path); } -/*---------------------------------------------------------------------- - * +++ DrawListHeader -- - * - * This is a standalone drawing procedure which draws column headers for - * a Treeview in the Aqua appearance. The HITheme headers have not - * matched the native ones since OSX 10.8. Note that the header image is - * ignored, but we draw arrows according to the state. - */ - -static void DrawListHeader( - CGRect bounds, +static void +DrawHelpSymbol( CGContextRef context, - Tk_Window tkwin, + CGRect bounds, int state) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *strokeColor, *bgColor; - static CGFloat borderRGBA[4] = { - 200.0 / 255, 200.0 / 255, 200.0 / 255, 1.0 - }; - static CGFloat separatorRGBA[4] = { - 220.0 / 255, 220.0 / 255, 220.0 / 255, 1.0 - }; - static CGFloat activeBgRGBA[4] = { - 238.0 / 255, 238.0 / 255, 238.0 / 255, 1.0 - }; - static CGFloat inactiveBgRGBA[4] = { - 246.0 / 255, 246.0 / 255, 246.0 / 255, 1.0 + NSFont *font = [NSFont controlContentFontOfSize:15]; + NSColor *foreground = state & TTK_STATE_DISABLED ? + [NSColor disabledControlTextColor] : [NSColor controlTextColor]; + NSDictionary *attrs = @{ + NSForegroundColorAttributeName : foreground, + NSFontAttributeName : font }; - - /* - * Apple changes the background of a list header when the window is not - * active. But Ttk does not indicate that in the state of a TreeHeader. - * So we have to query the Apple window manager. - */ - - NSWindow *win = TkMacOSXGetNSWindowForDrawable(Tk_WindowId(tkwin)); - CGFloat *bgRGBA = [win isKeyWindow] ? activeBgRGBA : inactiveBgRGBA; - CGFloat x = bounds.origin.x, y = bounds.origin.y; - CGFloat w = bounds.size.width, h = bounds.size.height; - CGPoint top[2] = {{x, y + 1}, {x + w, y + 1}}; - CGPoint bottom[2] = {{x, y + h}, {x + w, y + h}}; - CGPoint separator[2] = {{x + w - 1, y + 3}, {x + w - 1, y + h - 3}}; - - bgColor = [NSColor colorWithColorSpace: deviceRGB - components: bgRGBA - count: 4]; + NSAttributedString *attributedString = [[NSAttributedString alloc] + initWithString:@"?" + attributes:attrs]; + CTTypesetterRef typesetter = CTTypesetterCreateWithAttributedString( + (CFAttributedStringRef)attributedString); + CTLineRef line = CTTypesetterCreateLine(typesetter, CFRangeMake(0, 1)); + CGAffineTransform t = CGAffineTransformMake( + 1.0, 0.0, 0.0, -1.0, 0.0, bounds.size.height); CGContextSaveGState(context); - CGContextSetShouldAntialias(context, false); - CGContextSetFillColorSpace(context, deviceRGB.CGColorSpace); - CGContextSetStrokeColorSpace(context, deviceRGB.CGColorSpace); - CGContextBeginPath(context); - CGContextSetFillColorWithColor(context, CGCOLOR(bgColor)); - CGContextAddRect(context, bounds); - CGContextFillPath(context); - strokeColor = [NSColor colorWithColorSpace: deviceRGB - components: separatorRGBA - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(strokeColor)); - CGContextAddLines(context, separator, 2); - CGContextStrokePath(context); - strokeColor = [NSColor colorWithColorSpace: deviceRGB - components: borderRGBA - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(strokeColor)); - CGContextAddLines(context, top, 2); - CGContextStrokePath(context); - CGContextAddLines(context, bottom, 2); - CGContextStrokePath(context); + CGContextSetTextMatrix(context, t); + CGContextSetTextPosition(context, + bounds.origin.x + 6.5, + bounds.origin.y + bounds.size.height - 5); + CTLineDraw(line, context); CGContextRestoreGState(context); - - if (state & TTK_TREEVIEW_STATE_SORTARROW) { - CGRect arrowBounds = bounds; - arrowBounds.origin.x = bounds.origin.x + bounds.size.width - 16; - arrowBounds.size.width = 16; - if (state & TTK_STATE_ALTERNATE) { - DrawUpArrow(context, arrowBounds, 3, 8, BLACKRGBA); - } else if (state & TTK_STATE_SELECTED) { - DrawDownArrow(context, arrowBounds, 3, 8, BLACKRGBA); - } - } + CFRelease(line); + CFRelease(typesetter); + [attributedString release]; } + + /*---------------------------------------------------------------------- - * +++ Drawing procedures for widgets in Apple's "Dark Mode" (10.14 and up). - * - * The HIToolbox does not support Dark Mode, and apparently never will, - * so to make widgets look "native" we have to provide analogues of the - * HITheme drawing functions to be used in DarkAqua. We continue to use - * HITheme in Aqua, since it understands earlier versions of the OS. - * - * Drawing the dark widgets requires NSColors that were introduced in OSX - * 10.14, so we make some of these functions be no-ops when building on - * systems older than 10.14. + * +++ Progress bars. */ /*---------------------------------------------------------------------- - * GradientFillRoundedRectangle -- + * DrawProgressBar -- * - * Fill a rounded rectangle with a specified gradient. + * Draws a progress bar, with parameters supplied by a HIThemeTrackDrawInfo + * struct. Draws a rounded rectangular track overlayed by a colored + * rounded rectangular indicator. An indeterminate progress bar is + * animated. */ -static void GradientFillRoundedRectangle( +static void DrawProgressBar( CGContextRef context, CGRect bounds, - CGFloat radius, - CGFloat *colors, - int numColors) + HIThemeTrackDrawInfo info, + int state, + Tk_Window tkwin) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - CGPathRef path; - CHECK_RADIUS(radius, bounds) + CGRect colorBounds; + CGFloat rgba[4]; + CGColorRef trackColor, highlightColor, fillColor; + NSColor *accent; + CGFloat ratio = (CGFloat) info.value / (CGFloat) (info.max - info.min); - CGPoint end = { - bounds.origin.x, - bounds.origin.y + bounds.size.height - }; - CGGradientRef gradient = CGGradientCreateWithColorComponents( - deviceRGB.CGColorSpace, colors, NULL, numColors); - - path = CGPathCreateWithRoundedRect(bounds, radius, radius, NULL); - CGContextBeginPath(context); - CGContextAddPath(context, path); - CGContextClip(context); - CGContextDrawLinearGradient(context, gradient, bounds.origin, end, 0); - CFRelease(path); - CFRelease(gradient); -} - -/*---------------------------------------------------------------------- - * +++ DrawDarkButton -- - * - * This is a standalone drawing procedure which draws PushButtons and - * PopupButtons in the Dark Mode style. - */ - -static void DrawDarkButton( - CGRect bounds, - ThemeButtonKind kind, - Ttk_State state, - CGContextRef context) -{ - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *faceColor; + GetBackgroundColorRGBA(context, tkwin, 0, NO, rgba); /* - * To match the appearance of Apple's buttons we need to increase the - * height by 1 pixel. + * Compute the bounds for the track and indicator. The track is 6 pixels + * wide in the center of the widget bounds. */ - bounds.size.height += 1; - - CGContextClipToRect(context, bounds); - FillButtonBackground(context, bounds, 5); + if (info.attributes & kThemeTrackHorizontal) { + bounds = CGRectInset(bounds, 1, bounds.size.height / 2 - 3); + colorBounds = bounds; + if (info.kind == kThemeIndeterminateBar) { + CGFloat width = 0.25*bounds.size.width; + CGFloat travel = 0.75*bounds.size.width; + CGFloat center = bounds.origin.x + (width / 2) + ratio*travel; + colorBounds.origin.x = center - width / 2; + colorBounds.size.width = width; + } else { + colorBounds.size.width = ratio*bounds.size.width; + } + if (colorBounds.size.width > 0 && colorBounds.size.width < 6) { + colorBounds.size.width = 6; + } + } else { + bounds = CGRectInset(bounds, bounds.size.width / 2 - 3, 1); + colorBounds = bounds; + if (info.kind == kThemeIndeterminateBar) { + CGFloat height = 0.25*bounds.size.height; + CGFloat travel = 0.75*bounds.size.height; + CGFloat center = bounds.origin.y + (height / 2) + ratio*travel; + colorBounds.origin.y = center - height / 2; + colorBounds.size.height = height; + } else { + colorBounds.size.height = ratio*(bounds.size.height); + } + if (colorBounds.size.height > 0 && colorBounds.size.height < 6) { + colorBounds.size.height = 6; + } + colorBounds.origin.y += bounds.size.height - colorBounds.size.height; + } /* - * Fill the button face with the appropriate color. + * Compute the colors for the track and indicator. */ - bounds = CGRectInset(bounds, 1, 1); - if (kind == kThemePushButton && (state & TTK_STATE_PRESSED)) { - if ([NSApp macOSVersion] < 120000) { - GradientFillRoundedRectangle(context, bounds, 4, - pressedPushButtonGradient, 2); - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkPressedButtonFace - count: 4]; - SolidFillRoundedRectangle(context, bounds, 4, faceColor); + if (TkMacOSXInDarkMode(tkwin)) { + for(int i=0; i < 3; i++) { + rgba[i] += 30.0 / 255.0; } - } else if (kind == kThemePushButton && - (state & TTK_STATE_ALTERNATE) && - !(state & TTK_STATE_BACKGROUND)) { - GradientFillRoundedRectangle(context, bounds, 4, - darkSelectedGradient, 2); + trackColor = CGColorFromRGBA(rgba); + for(int i=0; i < 3; i++) { + rgba[i] -= 5.0 / 255.0; + } + highlightColor = CGColorFromRGBA(rgba); + FillRoundedRectangle(context, bounds, 3, trackColor); } else { - if (state & TTK_STATE_DISABLED) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkDisabledButtonFace - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkButtonFace - count: 4]; + for(int i=0; i < 3; i++) { + rgba[i] -= 14.0 / 255.0; + } + trackColor = CGColorFromRGBA(rgba); + for(int i=0; i < 3; i++) { + rgba[i] += 3.0 / 255.0; } - SolidFillRoundedRectangle(context, bounds, 4, faceColor); + highlightColor = CGColorFromRGBA(rgba); + bounds.size.height -= 1; + bounds = CGRectInset(bounds, 0, -1); + } + if (state & TTK_STATE_BACKGROUND) { + accent = [NSColor colorWithRed:0.72 green:0.72 blue:0.72 alpha:0.72]; + } else { + accent = controlAccentColor(); } /* - * If this is a popup, draw the arrow button. + * Draw the track, with highlighting around the edge. */ - if ((kind == kThemePopupButton) | (kind == kThemeComboBox)) { - CGRect arrowBounds = bounds; - arrowBounds.size.width = 16; - arrowBounds.origin.x += bounds.size.width - 16; + FillRoundedRectangle(context, bounds, 3, trackColor); + bounds = CGRectInset(bounds, 0, 0.5); + FillRoundedRectangle(context, bounds, 2.5, highlightColor); + bounds = CGRectInset(bounds, 0.5, 0.5); + FillRoundedRectangle(context, bounds, 2, trackColor); + bounds = CGRectInset(bounds, -0.5, -1); - /* - * If the toplevel is front, paint the button blue. - */ + /* + * Draw the indicator. Make it slightly transparent around the + * edge so the highlightng shows through. + */ - if (!(state & TTK_STATE_BACKGROUND) && - !(state & TTK_STATE_DISABLED)) { - GradientFillRoundedRectangle(context, arrowBounds, 4, - darkSelectedGradient, 2); - } - if (kind == kThemePopupButton) { - DrawUpDownArrows(context, arrowBounds, 3, 7, WHITERGBA); - } else { - DrawDownArrow(context, arrowBounds, 4, 8, WHITERGBA); - } + if (info.kind == kThemeIndeterminateBar && + (state & TTK_STATE_SELECTED) == 0) { + return; } - HighlightButtonBorder(context, bounds); + fillColor = CGCOLOR([accent colorWithAlphaComponent:0.9]); + FillRoundedRectangle(context, colorBounds, 3, fillColor); + colorBounds = CGRectInset(colorBounds, 1, 1); + fillColor = CGCOLOR([accent colorWithAlphaComponent:1.0]); + FillRoundedRectangle(context, colorBounds, 2.5, fillColor); } + +/*---------------------------------------------------------------------- + * +++ Sliders. + */ /*---------------------------------------------------------------------- - * +++ DrawDarkIncDecButton -- + * DrawSlider -- + * + * Draws a slider track and round thumb for a Ttk scale widget. The accent + * color is used on the left or top part of the track, so the fraction of + * the track which is colored is equal to (value - from) / (to - from). * - * This is a standalone drawing procedure which draws an IncDecButton - * (as used in a Spinbox) in the Dark Mode style. */ -static void DrawDarkIncDecButton( +static void DrawSlider( + CGContextRef context, CGRect bounds, - ThemeDrawState drawState, - Ttk_State state, - CGContextRef context) + HIThemeTrackDrawInfo info, + int state, + Tk_Window tkwin) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *faceColor; - - bounds = CGRectInset(bounds, 0, -1); - CGContextClipToRect(context, bounds); - FillButtonBackground(context, bounds, 6); + CGColorRef trackColor; + CGRect clipBounds, trackBounds, thumbBounds; + CGPoint thumbPoint; + CGFloat position; + CGColorRef accentColor; + Bool fromIsSmaller = info.reserved; + double from = info.min, to = fabs((double) info.max), value = info.value; /* - * Fill the button face with the appropriate color. + * info.min, info.max and info.value are integers. When this is called + * we will have arranged that min = 0 and max is a large positive integer. */ - bounds = CGRectInset(bounds, 1, 1); - if (state & TTK_STATE_DISABLED) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkDisabledButtonFace - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkButtonFace - count: 4]; - } - SolidFillRoundedRectangle(context, bounds, 4, faceColor); + double fraction = (from < to) ? (value - from) / (to - from) : 0.5; + int isDark = TkMacOSXInDarkMode(tkwin); - /* - * If pressed, paint the appropriate half blue. - */ - - if (state & TTK_STATE_PRESSED) { - CGRect clip = bounds; - clip.size.height /= 2; - CGContextSaveGState(context); - if (drawState == kThemeStatePressedDown) { - clip.origin.y += clip.size.height; + if (info.attributes & kThemeTrackHorizontal) { + trackBounds = CGRectInset(bounds, 0, bounds.size.height / 2 - 3); + trackBounds.size.height = 3; + position = 8 + fraction * (trackBounds.size.width - 16); + clipBounds = trackBounds; + if (fromIsSmaller) { + clipBounds.size.width = position; + } else { + clipBounds.origin.x += position; + clipBounds.size.width -= position; } - CGContextClipToRect(context, clip); - GradientFillRoundedRectangle(context, bounds, 5, - darkSelectedGradient, 2); - CGContextRestoreGState(context); + thumbPoint = CGPointMake(trackBounds.origin.x + position, + trackBounds.origin.y + 1); + } else { + trackBounds = CGRectInset(bounds, bounds.size.width / 2 - 3, 0); + trackBounds.size.width = 3; + position = 8 + fraction * (trackBounds.size.height - 16); + clipBounds = trackBounds; + if (fromIsSmaller) { + clipBounds.size.height = position; + } else { + clipBounds.origin.y += position; + clipBounds.size.height -= position; + } + thumbPoint = CGPointMake(trackBounds.origin.x + 1, + trackBounds.origin.y + position); + } + trackColor = isDark ? CGColorFromGray(darkTrack): + CGColorFromGray(lightTrack); + thumbBounds = CGRectMake(thumbPoint.x - 8, thumbPoint.y - 8, 17, 17); + CGContextSaveGState(context); + FillRoundedRectangle(context, trackBounds, 1.5, trackColor); + CGContextClipToRect(context, clipBounds); + if (state & (TTK_STATE_BACKGROUND | TTK_STATE_DISABLED)) { + accentColor = isDark ? CGColorFromGray(darkInactiveTrack) : + CGColorFromGray(lightInactiveTrack); + } else { + accentColor = CGCOLOR(controlAccentColor()); } - DrawUpDownArrows(context, bounds, 3, 5, WHITERGBA); - HighlightButtonBorder(context, bounds); + FillRoundedRectangle(context, trackBounds, 1.5, accentColor); + CGContextRestoreGState(context); + DrawGrayButton(context, thumbBounds, &sliderDesign, state, tkwin); } /*---------------------------------------------------------------------- - * +++ DrawDarkBevelButton -- + * +++ Drawing procedures for native widgets. + * + * The HIToolbox does not support Dark Mode, and apparently never will. + * It also draws some widgets in discontinued older styles even when used + * on new OS releases. So to make widgets look "native" we have to provide + * analogues of the HIToolbox drawing functions to be used on newer systems. + * We continue to use NIToolbox for older versions of the OS. + * + * Drawing the dark widgets requires NSColors that were introduced in OSX + * 10.14, so we make some of these functions be no-ops when building on + * systems older than 10.14. + */ + +/*---------------------------------------------------------------------- + * DrawButton -- * - * This is a standalone drawing procedure which draws RoundedBevelButtons - * in the Dark Mode style. + * This is a standalone drawing procedure which draws most types of macOS + * buttons for newer OS releases. The button style is specified in the + * "kind" field of a HIThemeButtonDrawInfo struct, although some of the + * identifiers are not recognized by HIToolbox. */ -static void DrawDarkBevelButton( +static void DrawButton( CGRect bounds, + HIThemeButtonDrawInfo info, Ttk_State state, - CGContextRef context) + CGContextRef context, + Tk_Window tkwin) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *faceColor; + ThemeButtonKind kind = info.kind; + ThemeDrawState drawState = info.state; + CGRect arrowBounds = bounds = CGRectInset(bounds, 1, 1); + int hasIndicator, isDark = TkMacOSXInDarkMode(tkwin); - CGContextClipToRect(context, bounds); - FillButtonBackground(context, bounds, 5); + switch (kind) { + case TkRoundedRectButton: + DrawGrayButton(context, bounds, &roundedrectDesign, state, tkwin); + break; + case TkInlineButton: + DrawGrayButton(context, bounds, &inlineDesign, state, tkwin); + break; + case TkRecessedButton: + DrawGrayButton(context, bounds, &recessedDesign, state, tkwin); + break; + case TkSidebarButton: + DrawGrayButton(context, bounds, &sidebarDesign, state, tkwin); + break; + case kThemeRoundedBevelButton: + DrawGrayButton(context, bounds, &bevelDesign, state, tkwin); + break; + case kThemePushButton: - /* - * Fill the button face with the appropriate color. - */ + /* + * The TTK_STATE_ALTERNATE bit means -default active. Apple only + * indicates the default state (which means that the key equivalent is + * "\n") for Push Buttons. + */ - bounds = CGRectInset(bounds, 1, 1); - if (state & TTK_STATE_PRESSED) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkPressedBevelFace - count: 4]; - } else if ((state & TTK_STATE_DISABLED) || - (state & TTK_STATE_ALTERNATE)) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkDisabledButtonFace - count: 4]; - } else if (state & TTK_STATE_SELECTED) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkSelectedBevelFace - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkButtonFace - count: 4]; + if ((state & TTK_STATE_PRESSED || state & TTK_STATE_ALTERNATE) && + !(state & TTK_STATE_BACKGROUND)) { + DrawAccentedButton(context, bounds, &pushbuttonDesign, state, isDark); + } else { + DrawGrayButton(context, bounds, &pushbuttonDesign, state, tkwin); + } + break; + case kThemeRoundButtonHelp: + DrawGrayButton(context, bounds, &helpDesign, state, tkwin); + DrawHelpSymbol(context, bounds, state); + break; + case kThemePopupButton: + drawState = 0; + DrawGrayButton(context, bounds, &popupDesign, state, tkwin); + arrowBounds.size.width = 17; + arrowBounds.origin.x += bounds.size.width - 17; + if (!(state & TTK_STATE_BACKGROUND) && + !(state & TTK_STATE_DISABLED)) { + CGRect popupBounds = arrowBounds; + + /* + * Allow room for nonexistent focus ring. + */ + + popupBounds.size.width += 4; + popupBounds.origin.y -= 4; + popupBounds.size.height += 8; + DrawAccentedSegment(context, popupBounds, &popupDesign, state, tkwin); + drawState = BOTH_ARROWS; + } + arrowBounds.origin.x += 2; + DrawUpDownArrows(context, arrowBounds, 3, 7, 2, state, drawState); + break; + case kThemeComboBox: + if (state & TTK_STATE_DISABLED) { + // Need to add the disabled case to entryDesign. + DrawEntry(context, bounds, &entryDesign, state, tkwin); + } else { + DrawEntry(context, bounds, &entryDesign, state, tkwin); + } + arrowBounds.size.width = 17; + if (state & TTK_STATE_BACKGROUND) { + arrowBounds.origin.x += bounds.size.width - 20; + arrowBounds.size.width += 4; + arrowBounds.origin.y -= 1; + } else { + arrowBounds.origin.y -= 1; + arrowBounds.origin.x += bounds.size.width - 20; + arrowBounds.size.width += 4; + arrowBounds.size.height += 2; + } + DrawAccentedSegment(context, arrowBounds, &comboDesign, state, tkwin); + if (!(state & TTK_STATE_BACKGROUND)) { + state |= TTK_STATE_IS_ACCENTED; + } + DrawDownArrow(context, arrowBounds, 6, 6, state); + break; + case kThemeCheckBox: + bounds = CGRectOffset(CGRectMake(0, bounds.size.height / 2 - 8, 16, 16), + bounds.origin.x, bounds.origin.y); + bounds = CGRectInset(bounds, 1, 1); + hasIndicator = state & TTK_STATE_SELECTED || state & TTK_STATE_ALTERNATE; + if (hasIndicator && + !(state & TTK_STATE_BACKGROUND) && + !(state & TTK_STATE_DISABLED)) { + DrawAccentedButton(context, bounds, &checkDesign, 0, isDark); + } else { + DrawGrayButton(context, bounds, &checkDesign, state, tkwin); + } + if (hasIndicator) { + DrawCheckIndicator(context, bounds, state, isDark); + } + break; + case kThemeRadioButton: + bounds = CGRectOffset(CGRectMake(0, bounds.size.height / 2 - 9, 18, 18), + bounds.origin.x, bounds.origin.y); + bounds = CGRectInset(bounds, 1, 1); + hasIndicator = state & TTK_STATE_SELECTED || state & TTK_STATE_ALTERNATE; + if (hasIndicator && + !(state & TTK_STATE_BACKGROUND) && + !(state & TTK_STATE_DISABLED)) { + DrawAccentedButton(context, bounds, &radioDesign, 0, isDark); + } else { + DrawGrayButton(context, bounds, &radioDesign, state, tkwin); + } + if (hasIndicator) { + DrawRadioIndicator(context, bounds, state, isDark); + } + break; + case kThemeArrowButton: + DrawGrayButton(context, bounds, &pushbuttonDesign, state, tkwin); + arrowBounds.origin.x = bounds.origin.x + bounds.size.width - 17; + arrowBounds.size.width = 16; + arrowBounds.origin.y -= 1; + if (state & TTK_STATE_SELECTED) { + DrawUpArrow(context, arrowBounds, 5, 6, state); + } else { + DrawDownArrow(context, arrowBounds, 5, 6, state); + } + break; + case kThemeIncDecButton: + DrawGrayButton(context, bounds, &incdecDesign, state, tkwin); + if (state & TTK_STATE_PRESSED) { + CGRect clip; + if (drawState == kThemeStatePressedDown) { + clip = bounds; + clip.size.height /= 2; + clip.origin.y += clip.size.height; + bounds.size.height += 1; + clip.size.height += 1; + } else { + clip = bounds; + clip.size.height /= 2; + } + CGContextSaveGState(context); + CGContextClipToRect(context, clip); + DrawAccentedButton(context, bounds, &incdecDesign, 0, isDark); + CGContextRestoreGState(context); + } + { + CGFloat inset = (bounds.size.width - 5) / 2; + DrawUpDownArrows(context, bounds, inset, 5, 3, state, drawState); + } + break; + default: + break; } - SolidFillRoundedRectangle(context, bounds, 4, faceColor); - HighlightButtonBorder(context, bounds); } - + /*---------------------------------------------------------------------- - * +++ DrawDarkCheckBox -- + * DrawGroupBox -- * - * This is a standalone drawing procedure which draws Checkboxes in the - * Dark Mode style. + * This is a standalone drawing procedure which draws the contrasting rounded + * rectangular box for LabelFrames and Notebook panes used in more recent + * versions of macOS. Normally the contrast is set to one, since the nesting + * level of the Group Box is higher by 1 compared to its container. But we + * allow higher contrast for special cases, notably notebook tabs in macOS 11. + * The save parameter is passed to GetBackgroundColor and should probably be + * NO in such special cases. */ -static void DrawDarkCheckBox( +static void DrawGroupBox( CGRect bounds, - Ttk_State state, - CGContextRef context) + CGContextRef context, + Tk_Window tkwin, + int contrast, + Bool save) { - CGRect checkbounds = {{0, bounds.size.height / 2 - 8}, {16, 16}}; - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *stroke; - CGFloat x, y; + CHECK_RADIUS(5, bounds) - bounds = CGRectOffset(checkbounds, bounds.origin.x, bounds.origin.y); - x = bounds.origin.x; - y = bounds.origin.y; + CGPathRef path; + CGColorRef backgroundColor, borderColor; + backgroundColor = GetBackgroundCGColor(context, tkwin, contrast, save); + borderColor = CGColorFromGray(boxBorder); + CGContextSetFillColorWithColor(context, backgroundColor); + path = CGPathCreateWithRoundedRect(bounds, 5, 5, NULL); CGContextClipToRect(context, bounds); - FillButtonBackground(context, bounds, 4); - bounds = CGRectInset(bounds, 1, 1); - if (!(state & TTK_STATE_BACKGROUND) && - !(state & TTK_STATE_DISABLED) && - ((state & TTK_STATE_SELECTED) || (state & TTK_STATE_ALTERNATE))) { - GradientFillRoundedRectangle(context, bounds, 3, - darkSelectedGradient, 2); - } else { - GradientFillRoundedRectangle(context, bounds, 3, - darkInactiveGradient, 2); - } - HighlightButtonBorder(context, bounds); - if ((state & TTK_STATE_SELECTED) || (state & TTK_STATE_ALTERNATE)) { - CGContextSetStrokeColorSpace(context, deviceRGB.CGColorSpace); - if (state & TTK_STATE_DISABLED) { - stroke = [NSColor disabledControlTextColor]; - } else { - stroke = [NSColor controlTextColor]; - } - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); - } - if (state & TTK_STATE_SELECTED) { - CGContextSetLineWidth(context, 1.5); - CGContextBeginPath(context); - CGPoint check[3] = {{x + 4, y + 8}, {x + 7, y + 11}, {x + 11, y + 4}}; - CGContextAddLines(context, check, 3); - CGContextStrokePath(context); - } else if (state & TTK_STATE_ALTERNATE) { - CGContextSetLineWidth(context, 2.0); - CGContextBeginPath(context); - CGPoint bar[2] = {{x + 4, y + 8}, {x + 12, y + 8}}; - CGContextAddLines(context, bar, 2); - CGContextStrokePath(context); - } + CGContextBeginPath(context); + CGContextAddPath(context, path); + CGContextFillPath(context); + CGContextSetFillColorWithColor(context, borderColor); + CGContextBeginPath(context); + CGContextAddPath(context, path); + CGContextReplacePathWithStrokedPath(context); + CGContextFillPath(context); + CFRelease(path); } - + /*---------------------------------------------------------------------- - * +++ DrawDarkRadioButton -- + * DrawListHeader -- * - * This is a standalone drawing procedure which draws RadioButtons - * in the Dark Mode style. + * This is a standalone drawing procedure which draws column headers for a + * Treeview in the Aqua appearance. (The HIToolbox headers have not matched the + * native ones since OSX 10.8) Note that the header image is ignored, but we + * draw arrows according to the state. */ -static void DrawDarkRadioButton( +static void DrawListHeader( CGRect bounds, - Ttk_State state, - CGContextRef context) + CGContextRef context, + Tk_Window tkwin, + int state) { - CGRect checkbounds = {{0, bounds.size.height / 2 - 9}, {18, 18}}; - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *fill; - CGFloat x, y; + int isDark = TkMacOSXInDarkMode(tkwin); + CGFloat x = bounds.origin.x, y = bounds.origin.y; + CGFloat w = bounds.size.width, h = bounds.size.height; + CGPoint top[2] = {{x, y + 1}, {x + w, y + 1}}; + CGPoint bottom[2] = {{x, y + h}, {x + w, y + h}}; + CGPoint separator[2] = {{x + w - 1, y + 3}, {x + w - 1, y + h - 3}}; + CGColorRef strokeColor, backgroundColor; - bounds = CGRectOffset(checkbounds, bounds.origin.x, bounds.origin.y); - x = bounds.origin.x; - y = bounds.origin.y; + /* + * Apple changes the background color of a list header when the window is + * not active. But Ttk does not indicate that in the state of a + * TreeHeader. So we have to query the Apple window manager. + */ - CGContextClipToRect(context, bounds); - FillButtonBackground(context, bounds, 9); - bounds = CGRectInset(bounds, 1, 1); - if (!(state & TTK_STATE_BACKGROUND) && - !(state & TTK_STATE_DISABLED) && - ((state & TTK_STATE_SELECTED) || (state & TTK_STATE_ALTERNATE))) { - GradientFillRoundedRectangle(context, bounds, 8, - darkSelectedGradient, 2); - } else { - GradientFillRoundedRectangle(context, bounds, 8, - darkInactiveGradient, 2); - } - HighlightButtonBorder(context, bounds); - if ((state & TTK_STATE_SELECTED) || (state & TTK_STATE_ALTERNATE)) { - CGContextSetStrokeColorSpace(context, deviceRGB.CGColorSpace); - if (state & TTK_STATE_DISABLED) { - fill = [NSColor disabledControlTextColor]; - } else { - fill = [NSColor controlTextColor]; - } - CGContextSetFillColorWithColor(context, CGCOLOR(fill)); + NSWindow *win = TkMacOSXGetNSWindowForDrawable(Tk_WindowId(tkwin)); + if (!isDark) { + GrayColor bgGray = [win isKeyWindow] ? + listheaderActiveBG : listheaderInactiveBG; + backgroundColor = CGColorFromGray(bgGray); } - if (state & TTK_STATE_SELECTED) { + + CGContextSaveGState(context); + CGContextSetShouldAntialias(context, false); + if (!isDark) { CGContextBeginPath(context); - CGRect dot = {{x + 6, y + 6}, {6, 6}}; - CGContextAddEllipseInRect(context, dot); + CGContextSetFillColorWithColor(context, backgroundColor); + CGContextAddRect(context, bounds); CGContextFillPath(context); - } else if (state & TTK_STATE_ALTERNATE) { - CGRect bar = {{x + 5, y + 8}, {8, 2}}; - CGContextFillRect(context, bar); } -} + strokeColor = isDark ? + CGColorFromGray(darkListheaderBorder) : + CGColorFromGray(listheaderSeparator); + CGContextSetStrokeColorWithColor(context, strokeColor); + CGContextAddLines(context, separator, 2); + CGContextStrokePath(context); + strokeColor = isDark ? + CGColorFromGray(darkListheaderBorder) : + CGColorFromGray(lightListheaderBorder); + CGContextSetStrokeColorWithColor(context, strokeColor); + CGContextAddLines(context, top, 2); + CGContextStrokePath(context); + CGContextAddLines(context, bottom, 2); + CGContextStrokePath(context); + CGContextRestoreGState(context); + if (state & TTK_TREEVIEW_STATE_SORTARROW) { + CGRect arrowBounds = bounds; + arrowBounds.origin.x = bounds.origin.x + bounds.size.width - 16; + arrowBounds.size.width = 16; + if (state & TTK_STATE_ALTERNATE) { + DrawUpArrow(context, arrowBounds, 3, 8, state); + } else if (state & TTK_STATE_SELECTED) { + DrawDownArrow(context, arrowBounds, 3, 8, state); + } + } +} + /*---------------------------------------------------------------------- - * +++ DrawDarkTab -- + * DrawTab -- * - * This is a standalone drawing procedure which draws Tabbed Pane - * Tabs in the Dark Mode style. + * This is a standalone drawing procedure which draws Tabbed Pane Tabs for the + * notebook widget. */ -static void DrawDarkTab( +static void +DrawTab( CGRect bounds, Ttk_State state, - CGContextRef context) + CGContextRef context, + Tk_Window tkwin) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *faceColor, *stroke; CGRect originalBounds = bounds; + CGColorRef strokeColor; int OSVersion = [NSApp macOSVersion]; - CGContextSetLineWidth(context, 1.0); - CGContextClipToRect(context, bounds); - /* * Extend the bounds to one or both sides so the rounded part will be - * clipped off. + * clipped off if the right of the left tab, the left of the right tab, + * and both sides of the middle tabs. */ + CGContextClipToRect(context, bounds); if (OSVersion < 110000 || !(state & TTK_STATE_SELECTED)) { - if (!(state & TTK_STATE_FIRST_TAB)) { + if (!(state & TTK_STATE_FIRST)) { bounds.origin.x -= 10; bounds.size.width += 10; } - if (!(state & TTK_STATE_LAST_TAB)) { + if (!(state & TTK_STATE_LAST)) { bounds.size.width += 10; } } - /* * Fill the tab face with the appropriate color or gradient. Use a solid - * color if the tab is not selected, otherwise use a blue or gray - * gradient. + * color if the tab is not selected, otherwise use the accent color with + * highlights */ - bounds = CGRectInset(bounds, 1, 1); if (!(state & TTK_STATE_SELECTED)) { - if (state & TTK_STATE_DISABLED) { - if (OSVersion < 110000) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkDisabledButtonFace - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkTab - count: 4]; - } - } else { - if (OSVersion < 110000) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkButtonFace - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkTab - count: 4]; - } - } - SolidFillRoundedRectangle(context, bounds, 4, faceColor); + DrawGrayButton(context, bounds, &tabDesign, state, tkwin); /* * Draw a separator line on the left side of the tab if it * not first. */ - if (!(state & TTK_STATE_FIRST_TAB)) { + if (!(state & TTK_STATE_FIRST)) { CGContextSaveGState(context); - CGContextSetShouldAntialias(context, false); - stroke = [NSColor colorWithColorSpace: deviceRGB - components: darkTabSeparator - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); + strokeColor = CGColorFromGray(darkTabSeparator); + CGContextSetStrokeColorWithColor(context, strokeColor); CGContextBeginPath(context); CGContextMoveToPoint(context, originalBounds.origin.x, originalBounds.origin.y + 1); @@ -1091,295 +1530,113 @@ static void DrawDarkTab( * (The selected tab is always drawn last.) */ - if ((state & TTK_STATE_FIRST_TAB) && !(state & TTK_STATE_LAST_TAB)) { + if ((state & TTK_STATE_FIRST) && !(state & TTK_STATE_LAST)) { bounds.size.width += 1; } if (!(state & TTK_STATE_BACKGROUND)) { - if (OSVersion < 110000) { - GradientFillRoundedRectangle(context, bounds, 4, - darkSelectedGradient, 2); - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkSelectedTab - count: 4]; - SolidFillRoundedRectangle(context, bounds, 4, faceColor); - } + DrawAccentedButton(context, bounds, &tabDesign, 0, 0); } else { - if (OSVersion < 110000) { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkInactiveSelectedTab - count: 4]; - } else { - faceColor = [NSColor colorWithColorSpace: deviceRGB - components: darkSelectedTab - count: 4]; - } - SolidFillRoundedRectangle(context, bounds, 4, faceColor); + DrawGrayButton(context, bounds, &tabDesign, state, tkwin); } - HighlightButtonBorder(context, bounds); } } -/*---------------------------------------------------------------------- - * +++ DrawDarkSeparator -- - * - * This is a standalone drawing procedure which draws a separator widget - * in Dark Mode. - */ - -static void DrawDarkSeparator( - CGRect bounds, - CGContextRef context, - TCL_UNUSED(Tk_Window)) -{ - static CGFloat fill[4] = {1.0, 1.0, 1.0, 0.3}; - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *fillColor = [NSColor colorWithColorSpace: deviceRGB - components: fill - count:4]; - - CGContextSetFillColorWithColor(context, CGCOLOR(fillColor)); - CGContextFillRect(context, bounds); -} - -/*---------------------------------------------------------------------- - * +++ DrawDarkFocusRing -- - * - * This is a standalone drawing procedure which draws a focus ring around - * an Entry widget in Dark Mode. - */ - -static void DrawDarkFocusRing( - CGRect bounds, - CGContextRef context) -{ - CGRect insetBounds = CGRectInset(bounds, -3, -3); - CHECK_RADIUS(4, insetBounds) - - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *strokeColor; - NSColor *fillColor = [NSColor colorWithColorSpace:deviceRGB - components:darkFocusRing - count:4]; - CGFloat x = bounds.origin.x, y = bounds.origin.y; - CGFloat w = bounds.size.width, h = bounds.size.height; - CGPoint topPart[4] = { - {x, y + h}, {x, y + 1}, {x + w - 1, y + 1}, {x + w - 1, y + h} - }; - CGPoint bottom[2] = {{x, y + h}, {x + w, y + h}}; - - CGContextSaveGState(context); - CGContextSetShouldAntialias(context, false); - CGContextBeginPath(context); - strokeColor = [NSColor colorWithColorSpace: deviceRGB - components: darkFocusRingTop - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(strokeColor)); - CGContextAddLines(context, topPart, 4); - CGContextStrokePath(context); - strokeColor = [NSColor colorWithColorSpace: deviceRGB - components: darkFocusRingBottom - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(strokeColor)); - CGContextAddLines(context, bottom, 2); - CGContextStrokePath(context); - CGContextSetShouldAntialias(context, true); - CGContextSetFillColorWithColor(context, CGCOLOR(fillColor)); - CGPathRef path = CGPathCreateWithRoundedRect(insetBounds, 4, 4, NULL); - CGContextBeginPath(context); - CGContextAddPath(context, path); - CGPathRelease(path); - CGContextAddRect(context, bounds); - CGContextEOFillPath(context); - CGContextRestoreGState(context); -} -/*---------------------------------------------------------------------- - * +++ DrawDarkFrame -- - * - * This is a standalone drawing procedure which draws various - * types of borders in Dark Mode. - */ - -static void DrawDarkFrame( +static void +DrawTab11( CGRect bounds, + Ttk_State state, CGContextRef context, - HIThemeFrameKind kind) + Tk_Window tkwin) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *stroke; - CGContextSetStrokeColorSpace(context, deviceRGB.CGColorSpace); - CGFloat x = bounds.origin.x, y = bounds.origin.y; - CGFloat w = bounds.size.width, h = bounds.size.height; - CGPoint topPart[4] = { - {x, y + h - 1}, {x, y + 1}, {x + w, y + 1}, {x + w, y + h - 1} - }; - CGPoint bottom[2] = {{x, y + h}, {x + w, y + h}}; - CGPoint accent[2] = {{x, y + 1}, {x + w, y + 1}}; + if (state & TTK_STATE_SELECTED) { + DrawGrayButton(context, bounds, &pushbuttonDesign, state, tkwin); + } else { + CGRect clipRect = bounds; + /* + * Draw a segment of a Group Box as a background for non-selected tabs. + * Clip the Group Box so that the segments fit together to form a long + * rounded rectangle behind the entire tab bar. + */ - switch (kind) { - case kHIThemeFrameTextFieldSquare: + if (!(state & TTK_STATE_FIRST)) { + clipRect.origin.x -= 5; + bounds.origin.x -= 5; + bounds.size.width += 5; + } + if (!(state & TTK_STATE_LAST)) { + clipRect.size.width += 5; + bounds.size.width += 5; + } CGContextSaveGState(context); - CGContextSetShouldAntialias(context, false); - CGContextBeginPath(context); - stroke = [NSColor colorWithColorSpace: deviceRGB - components: darkFrameTop - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); - CGContextAddLines(context, topPart, 4); - CGContextStrokePath(context); - stroke = [NSColor colorWithColorSpace: deviceRGB - components: darkFrameBottom - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); - CGContextAddLines(context, bottom, 2); - CGContextStrokePath(context); - stroke = [NSColor colorWithColorSpace: deviceRGB - components: darkFrameAccent - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); - CGContextAddLines(context, accent, 2); - CGContextStrokePath(context); + CGContextClipToRect(context, clipRect); + DrawGroupBox(bounds, context, tkwin, 3, NO); CGContextRestoreGState(context); - break; - default: - break; } } /*---------------------------------------------------------------------- - * +++ DrawListHeader -- + * DrawDarkSeparator -- * - * This is a standalone drawing procedure which draws column - * headers for a Treeview in the Dark Mode. + * This is a standalone drawing procedure which draws a separator widget + * in Dark Mode. HIToolbox is used in light mode. */ -static void DrawDarkListHeader( +static void DrawDarkSeparator( CGRect bounds, CGContextRef context, - TCL_UNUSED(Tk_Window), - int state) + TCL_UNUSED(Tk_Window)) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *stroke; - - CGContextSetStrokeColorSpace(context, deviceRGB.CGColorSpace); - CGFloat x = bounds.origin.x, y = bounds.origin.y; - CGFloat w = bounds.size.width, h = bounds.size.height; - - CGPoint top[2] = {{x, y + 1}, {x + w, y + 1}}; - CGPoint bottom[2] = {{x, y + h}, {x + w, y + h}}; - CGPoint separator[2] = {{x + w - 1, y + 3}, {x + w - 1, y + h - 3}}; - CGContextSaveGState(context); - CGContextSetShouldAntialias(context, false); - stroke = [NSColor colorWithColorSpace: deviceRGB - components: darkFrameBottom - count: 4]; - CGContextSetStrokeColorWithColor(context, CGCOLOR(stroke)); - CGContextBeginPath(context); - CGContextAddLines(context, top, 2); - CGContextStrokePath(context); - CGContextAddLines(context, bottom, 2); - CGContextStrokePath(context); - CGContextAddLines(context, separator, 2); - CGContextStrokePath(context); - CGContextRestoreGState(context); - - if (state & TTK_TREEVIEW_STATE_SORTARROW) { - CGRect arrowBounds = bounds; + CGColorRef sepColor = CGColorFromGray(darkSeparator); - arrowBounds.origin.x = bounds.origin.x + bounds.size.width - 16; - arrowBounds.size.width = 16; - if (state & TTK_STATE_ALTERNATE) { - DrawUpArrow(context, arrowBounds, 3, 8, WHITERGBA); - } else if (state & TTK_STATE_SELECTED) { - DrawDownArrow(context, arrowBounds, 3, 8, WHITERGBA); - } - } + CGContextSetFillColorWithColor(context, sepColor); + CGContextFillRect(context, bounds); } /*---------------------------------------------------------------------- - * +++ Button element: Used for elements drawn with DrawThemeButton. - */ - -/* - * When Ttk draws the various types of buttons, a pointer to one of these - * is passed as the clientData. - */ - -typedef struct { - ThemeButtonKind kind; - ThemeMetric heightMetric; -} ThemeButtonParams; -static ThemeButtonParams - PushButtonParams = {kThemePushButton, kThemeMetricPushButtonHeight}, - CheckBoxParams = {kThemeCheckBox, kThemeMetricCheckBoxHeight}, - RadioButtonParams = {kThemeRadioButton, kThemeMetricRadioButtonHeight}, - BevelButtonParams = {kThemeRoundedBevelButton, NoThemeMetric}, - PopupButtonParams = {kThemePopupButton, kThemeMetricPopupButtonHeight}, - DisclosureParams = { - kThemeDisclosureButton, kThemeMetricDisclosureTriangleHeight -}, - ListHeaderParams = -{kThemeListHeaderButton, kThemeMetricListHeaderHeight}; -static Ttk_StateTable ButtonValueTable[] = { - {kThemeButtonOff, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, - {kThemeButtonMixed, TTK_STATE_ALTERNATE, 0}, - {kThemeButtonOn, TTK_STATE_SELECTED, 0}, - {kThemeButtonOff, 0, 0} - - /* - * Others: kThemeDisclosureRight, kThemeDisclosureDown, - * kThemeDisclosureLeft - */ - -}; -static Ttk_StateTable ButtonAdornmentTable[] = { - {kThemeAdornmentNone, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, - {kThemeAdornmentDefault | kThemeAdornmentFocus, - TTK_STATE_ALTERNATE | TTK_STATE_FOCUS, 0}, - {kThemeAdornmentFocus, TTK_STATE_FOCUS, 0}, - {kThemeAdornmentDefault, TTK_STATE_ALTERNATE, 0}, - {kThemeAdornmentNone, 0, 0} -}; - -/*---------------------------------------------------------------------- - * +++ computeButtonDrawInfo -- + * +++ DrawGradientButton -- * - * Fill in an appearance manager HIThemeButtonDrawInfo record. + * This is a standalone drawing procedure which draws a + * a Gradient Button. */ -static inline HIThemeButtonDrawInfo computeButtonDrawInfo( - ThemeButtonParams *params, - Ttk_State state, - TCL_UNUSED(Tk_Window)) +static void DrawGradientBorder( + CGRect bounds, + CGContextRef context, + Tk_Window tkwin, + Ttk_State state) { + CGColorRef faceColor, borderColor; + GrayColor faceGray, borderGray; + CGRect inside = CGRectInset(bounds, 1, 1); - /* - * See ButtonElementDraw for the explanation of why we always draw - * PushButtons in the active state. - */ - - SInt32 HIThemeState; - - HIThemeState = Ttk_StateTableLookup(ThemeStateTable, state); - switch (params->kind) { - case kThemePushButton: - HIThemeState &= ~kThemeStateInactive; - HIThemeState |= kThemeStateActive; - break; - default: - break; + if (TkMacOSXInDarkMode(tkwin)) { + if (state & TTK_STATE_DISABLED) { + faceGray = darkGradientDisabled; + borderGray = darkGradientBorderDisabled; + } else { + faceGray = state & TTK_STATE_PRESSED ? + darkGradientPressed : darkGradientNormal; + borderGray = darkGradientBorder; + } + } else { + if (state & TTK_STATE_DISABLED) { + faceGray = lightGradientDisabled; + borderGray = lightGradientBorderDisabled; + } else { + faceGray = state & TTK_STATE_PRESSED ? + lightGradientPressed : lightGradientNormal; + borderGray = lightGradientBorder; + } } - - const HIThemeButtonDrawInfo info = { - .version = 0, - .state = HIThemeState, - .kind = params ? params->kind : 0, - .value = Ttk_StateTableLookup(ButtonValueTable, state), - .adornment = Ttk_StateTableLookup(ButtonAdornmentTable, state), - }; - return info; + faceColor = CGColorFromGray(faceGray); + borderColor = CGColorFromGray(borderGray); + CGContextSetFillColorWithColor(context, faceColor); + CGContextFillRect(context, inside); + CGContextSetFillColorWithColor(context, borderColor); + CGContextAddRect(context, bounds); + CGContextAddRect(context, inside); + CGContextEOFillPath(context); } /*---------------------------------------------------------------------- @@ -1394,7 +1651,7 @@ static void ButtonElementMinSize( ThemeButtonParams *params = (ThemeButtonParams *)clientData; if (params->heightMetric != NoThemeMetric) { - ChkErr(GetThemeMetric, params->heightMetric, (SInt *) minHeight); + ChkErr(GetThemeMetric, params->heightMetric, minHeight); /* * The theme height does not include the 1-pixel border around @@ -1411,7 +1668,13 @@ static void ButtonElementMinSize( * the style. */ - *minWidth = 0; + if (params->widthMetric != NoThemeMetric) { + ChkErr(GetThemeMetric, params->widthMetric, minWidth); + *minWidth += 2; + *minHeight += 2; + } else { + *minWidth = 0; + } } } @@ -1424,13 +1687,32 @@ static void ButtonElementSize( Ttk_Padding *paddingPtr) { ThemeButtonParams *params = (ThemeButtonParams *)clientData; - const HIThemeButtonDrawInfo info = - computeButtonDrawInfo(params, 0, tkwin); + HIThemeButtonDrawInfo info = + ComputeButtonDrawInfo(params, 0, tkwin); static const CGRect scratchBounds = {{0, 0}, {100, 100}}; CGRect contentBounds, backgroundBounds; int verticalPad; ButtonElementMinSize(clientData, minWidth, minHeight); + switch (info.kind) { + case TkSidebarButton: + *paddingPtr = Ttk_MakePadding(30, 10, 30, 10); + return; + case TkGradientButton: + *paddingPtr = Ttk_MakePadding(1, 1, 1, 1); + /* Fall through. */ + case kThemeArrowButton: + case kThemeRoundButtonHelp: + return; + /* Buttons which are sized like PushButtons but unknown to HITheme. */ + case TkRoundedRectButton: + case TkRecessedButton: + case TkInlineButton: + info.kind = kThemePushButton; + break; + default: + break; + } /* * Given a hypothetical bounding rectangle for a button, HIToolbox will @@ -1439,7 +1721,7 @@ static void ButtonElementSize( * enough to contain the image of the button in any state, which might * include highlight borders, shadows, etc. The content rectangle is not * centered vertically within the background rectangle, presumably because - * shadows only appear on the bottom. Nonetheless, when HITools is asked + * shadows only appear on the bottom. Nonetheless, when HIToolbox is asked * to draw a button with a certain bounding rectangle it draws the button * centered within the rectangle. * @@ -1458,6 +1740,10 @@ static void ButtonElementSize( CGRectGetMaxX(backgroundBounds) - CGRectGetMaxX(contentBounds); verticalPad = backgroundBounds.size.height - contentBounds.size.height; paddingPtr->top = paddingPtr->bottom = verticalPad / 2; + if (info.kind == kThemePopupButton) { + paddingPtr->top += 1; + paddingPtr->bottom -= 1; + } } static void ButtonElementDraw( @@ -1470,38 +1756,63 @@ static void ButtonElementDraw( { ThemeButtonParams *params = (ThemeButtonParams *)clientData; CGRect bounds = BoxToRect(d, b); - HIThemeButtonDrawInfo info = computeButtonDrawInfo(params, state, tkwin); + HIThemeButtonDrawInfo info = ComputeButtonDrawInfo(params, state, tkwin); + int isDark = TkMacOSXInDarkMode(tkwin); - bounds = NormalizeButtonBounds(params->heightMetric, bounds); + switch (info.kind) { - BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - switch (info.kind) { - case kThemePushButton: - case kThemePopupButton: - DrawDarkButton(bounds, info.kind, state, dc.context); - break; - case kThemeCheckBox: - DrawDarkCheckBox(bounds, state, dc.context); - break; - case kThemeRadioButton: - DrawDarkRadioButton(bounds, state, dc.context); - break; - case kThemeRoundedBevelButton: - DrawDarkBevelButton(bounds, state, dc.context); - break; - default: - ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, - HIOrientation, NULL); - } - } else if (info.kind == kThemePushButton && - (state & TTK_STATE_PRESSED)) { - bounds.size.height += 2; - if ([NSApp macOSVersion] > 100800) { - GradientFillRoundedRectangle(dc.context, bounds, 4, - pressedPushButtonGradient, 2); - } - } else { + /* + * A Gradient Button should have an image and no text. The size is set to + * that of the image. All we need to do is draw a 1-pixel border. + */ + + case TkGradientButton: + BEGIN_DRAWING(d) + DrawGradientBorder(bounds, dc.context, tkwin, state); + END_DRAWING + return; + /* + * Buttons with no height restrictions are ready to draw. + */ + + case kThemeArrowButton: + case kThemeCheckBox: + case kThemeRadioButton: + case TkSidebarButton: + break; + + /* + * Other buttons have a maximum height. We have to deal with that. + */ + + default: + bounds = NormalizeButtonBounds(params, bounds, isDark); + break; + } + + /* We do our own drawing on new systems.*/ + + if ([NSApp macOSVersion] > 100800) { + BEGIN_DRAWING(d) + DrawButton(bounds, info, state, dc.context, tkwin); + END_DRAWING + return; + } + + /* + * If execution reaches here it means we should use HIToolbox to draw the + * button. Buttons that HIToolbox doesn't know are rendered as + * PushButtons. + */ + + switch (info.kind) { + case TkRoundedRectButton: + case TkRecessedButton: + info.kind = kThemePushButton; + break; + default: + break; + } /* * Apple's PushButton and PopupButton do not change their fill color @@ -1515,11 +1826,11 @@ static void ButtonElementDraw( * active state. */ - if (info.kind == kThemePopupButton && - (state & TTK_STATE_BACKGROUND)) { + BEGIN_DRAWING(d) + if (info.kind == kThemePopupButton && + (state & TTK_STATE_BACKGROUND)) { CGRect innerBounds = CGRectInset(bounds, 1, 1); - NSColor *whiteRGBA = [NSColor whiteColor]; - SolidFillRoundedRectangle(dc.context, innerBounds, 4, whiteRGBA); + FillRoundedRectangle(dc.context, innerBounds, 4, CG_WHITE); } /* @@ -1528,13 +1839,15 @@ static void ButtonElementDraw( */ if (info.kind == kThemeRoundedBevelButton && - info.value == kThemeButtonMixed) { + info.value == kThemeButtonMixed) { info.value = kThemeButtonOff; info.state = kThemeStateInactive; } - ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, - NULL); + if (info.kind == kThemePushButton) { + bounds.origin.y -= 2; } + ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, + NULL); END_DRAWING } @@ -1551,7 +1864,7 @@ static Ttk_ElementSpec ButtonElementSpec = { */ /* Tab position logic, c.f. ttkNotebook.c TabState() */ -static Ttk_StateTable TabStyleTable[] = { +static const Ttk_StateTable TabStyleTable[] = { {kThemeTabFrontInactive, TTK_STATE_SELECTED | TTK_STATE_BACKGROUND, 0}, {kThemeTabNonFrontInactive, TTK_STATE_BACKGROUND, 0}, {kThemeTabFrontUnavailable, TTK_STATE_DISABLED | TTK_STATE_SELECTED, 0}, @@ -1560,16 +1873,16 @@ static Ttk_StateTable TabStyleTable[] = { {kThemeTabNonFrontPressed, TTK_STATE_PRESSED, 0}, {kThemeTabNonFront, 0, 0} }; -static Ttk_StateTable TabAdornmentTable[] = { - {kHIThemeTabAdornmentNone, TTK_STATE_FIRST_TAB | TTK_STATE_LAST_TAB, 0}, - {kHIThemeTabAdornmentTrailingSeparator, TTK_STATE_FIRST_TAB, 0}, - {kHIThemeTabAdornmentNone, TTK_STATE_LAST_TAB, 0}, +static const Ttk_StateTable TabAdornmentTable[] = { + {kHIThemeTabAdornmentNone, TTK_STATE_FIRST | TTK_STATE_LAST, 0}, + {kHIThemeTabAdornmentTrailingSeparator, TTK_STATE_FIRST, 0}, + {kHIThemeTabAdornmentNone, TTK_STATE_LAST, 0}, {kHIThemeTabAdornmentTrailingSeparator, 0, 0}, }; -static Ttk_StateTable TabPositionTable[] = { - {kHIThemeTabPositionOnly, TTK_STATE_FIRST_TAB | TTK_STATE_LAST_TAB, 0}, - {kHIThemeTabPositionFirst, TTK_STATE_FIRST_TAB, 0}, - {kHIThemeTabPositionLast, TTK_STATE_LAST_TAB, 0}, +static const Ttk_StateTable TabPositionTable[] = { + {kHIThemeTabPositionOnly, TTK_STATE_FIRST | TTK_STATE_LAST, 0}, + {kHIThemeTabPositionFirst, TTK_STATE_FIRST, 0}, + {kHIThemeTabPositionLast, TTK_STATE_LAST, 0}, {kHIThemeTabPositionMiddle, 0, 0}, }; @@ -1618,12 +1931,10 @@ static void TabElementSize( TCL_UNUSED(void *), /* elementRecord */ TCL_UNUSED(Tk_Window), /* tkwin */ TCL_UNUSED(int *), /* minWidth */ - int *minHeight, + TCL_UNUSED(int *), /* minHeight */ Ttk_Padding *paddingPtr) { - GetThemeMetric(kThemeMetricLargeTabHeight, (SInt32 *) minHeight); - *paddingPtr = Ttk_MakePadding(0, 0, 0, 2); - + *paddingPtr = Ttk_MakePadding(0, -2, 0, 1); } static void TabElementDraw( @@ -1635,20 +1946,21 @@ static void TabElementDraw( Ttk_State state) { CGRect bounds = BoxToRect(d, b); - HIThemeTabDrawInfo info = { - .version = 1, - .style = Ttk_StateTableLookup(TabStyleTable, state), - .direction = kThemeTabNorth, - .size = kHIThemeTabSizeNormal, - .adornment = Ttk_StateTableLookup(TabAdornmentTable, state), - .kind = kHIThemeTabKindNormal, - .position = Ttk_StateTableLookup(TabPositionTable, state), - }; - BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - DrawDarkTab(bounds, state, dc.context); + if ([NSApp macOSVersion] >= 110000) { + DrawTab11(bounds, state, dc.context, tkwin); + } else if ([NSApp macOSVersion] > 100800) { + DrawTab(bounds, state, dc.context, tkwin); } else { + HIThemeTabDrawInfo info = { + .version = 1, + .style = Ttk_StateTableLookup(TabStyleTable, state), + .direction = kThemeTabNorth, + .size = kHIThemeTabSizeNormal, + .adornment = Ttk_StateTableLookup(TabAdornmentTable, state), + .kind = kHIThemeTabKindNormal, + .position = Ttk_StateTableLookup(TabPositionTable, state), + }; ChkErr(HIThemeDrawTab, &bounds, &info, dc.context, HIOrientation, NULL); } @@ -1692,7 +2004,7 @@ static void PaneElementDraw( bounds.size.height += kThemeMetricTabFrameOverlap; BEGIN_DRAWING(d) if ([NSApp macOSVersion] > 100800) { - DrawGroupBox(bounds, dc.context, tkwin); + DrawGroupBox(bounds, dc.context, tkwin, 1, YES); } else { HIThemeTabPaneDrawInfo info = { .version = 1, @@ -1724,8 +2036,6 @@ static Ttk_ElementSpec PaneElementSpec = { * DrawThemePrimaryGroup reference: "The primary group box frame is drawn * inside the specified rectangle and is a maximum of 2 pixels thick." * - * "Maximum of 2 pixels thick" is apparently a lie; looks more like 4 to me - * with shading. */ static void GroupElementSize( @@ -1736,7 +2046,7 @@ static void GroupElementSize( TCL_UNUSED(int *), /* minHeight */ Ttk_Padding *paddingPtr) { - *paddingPtr = Ttk_UniformPadding(4); + *paddingPtr = Ttk_MakePadding(0, 0, 0, 0); } static void GroupElementDraw( @@ -1751,7 +2061,7 @@ static void GroupElementDraw( BEGIN_DRAWING(d) if ([NSApp macOSVersion] > 100800) { - DrawGroupBox(bounds, dc.context, tkwin); + DrawGroupBox(bounds, dc.context, tkwin, 1, YES); } else { const HIThemeGroupBoxDrawInfo info = { .version = 0, @@ -1787,9 +2097,9 @@ typedef struct { static Ttk_ElementOptionSpec EntryElementOptions[] = { {"-background", TK_OPTION_BORDER, - Tk_Offset(EntryElement, backgroundObj), ENTRY_DEFAULT_BACKGROUND}, + offsetof(EntryElement, backgroundObj), ENTRY_DEFAULT_BACKGROUND}, {"-fieldbackground", TK_OPTION_BORDER, - Tk_Offset(EntryElement, fieldbackgroundObj), ENTRY_DEFAULT_BACKGROUND}, + offsetof(EntryElement, fieldbackgroundObj), ENTRY_DEFAULT_BACKGROUND}, {NULL, TK_OPTION_BOOLEAN, 0, NULL} }; @@ -1801,11 +2111,11 @@ static void EntryElementSize( TCL_UNUSED(int *), /* minHeight */ Ttk_Padding *paddingPtr) { - *paddingPtr = Ttk_MakePadding(7, 5, 7, 6); + *paddingPtr = entryElementPadding; } static void EntryElementDraw( - TCL_UNUSED(void *), + void *clientData, void *elementRecord, Tk_Window tkwin, Drawable d, @@ -1813,40 +2123,31 @@ static void EntryElementDraw( Ttk_State state) { EntryElement *e = (EntryElement *)elementRecord; - Ttk_Box inner = Ttk_PadBox(b, Ttk_UniformPadding(3)); - CGRect bounds = BoxToRect(d, inner); - NSColor *background; + ThemeFrameParams *params = (ThemeFrameParams *)clientData; + HIThemeFrameKind kind = params ? params->kind : + kHIThemeFrameTextFieldSquare; + CGRect bounds = BoxToRect(d, b); + CGColorRef background; Tk_3DBorder backgroundPtr = NULL; static const char *defaultBG = ENTRY_DEFAULT_BACKGROUND; - if (TkMacOSXInDarkMode(tkwin)) { + if ([NSApp macOSVersion] > 100800) { BEGIN_DRAWING(d) - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - CGFloat fill[4]; - GetBackgroundColor(dc.context, tkwin, 1, fill); - - /* - * Lighten the background to provide contrast. - */ - - for (int i = 0; i < 3; i++) { - fill[i] += 9.0 / 255.0; + switch(kind) { + case kHIThemeFrameTextFieldRound: + DrawEntry(dc.context, bounds, &searchDesign, state, tkwin); + break; + case kHIThemeFrameTextFieldSquare: + DrawEntry(dc.context, bounds, &entryDesign, state, tkwin); + break; + default: + return; } - background = [NSColor colorWithColorSpace: deviceRGB - components: fill - count: 4]; - CGContextSetFillColorWithColor(dc.context, CGCOLOR(background)); - CGContextFillRect(dc.context, bounds); - if (state & TTK_STATE_FOCUS) { - DrawDarkFocusRing(bounds, dc.context); - } else { - DrawDarkFrame(bounds, dc.context, kHIThemeFrameTextFieldSquare); - } END_DRAWING } else { const HIThemeFrameDrawInfo info = { .version = 0, - .kind = kHIThemeFrameTextFieldSquare, + .kind = params->kind, .state = Ttk_StateTableLookup(ThemeStateTable, state), .isFocused = state & TTK_STATE_FOCUS, }; @@ -1869,13 +2170,13 @@ static void EntryElementDraw( if (backgroundPtr != NULL) { XFillRectangle(Tk_Display(tkwin), d, Tk_3DBorderGC(tkwin, backgroundPtr, TK_3D_FLAT_GC), - inner.x, inner.y, inner.width, inner.height); + b.x, b.y, b.width, b.height); } BEGIN_DRAWING(d) if (backgroundPtr == NULL) { if ([NSApp macOSVersion] > 100800) { - background = [NSColor textBackgroundColor]; - CGContextSetFillColorWithColor(dc.context, CGCOLOR(background)); + background = CGCOLOR([NSColor textBackgroundColor]); + CGContextSetFillColorWithColor(dc.context, background); } else { CGContextSetRGBFillColor(dc.context, 1.0, 1.0, 1.0, 1.0); } @@ -1914,24 +2215,20 @@ static Ttk_ElementSpec EntryElementSpec = { * 1 pixel to account for the fact that the button is not centered. */ -static Ttk_Padding ComboboxPadding = {4, 4, 20, 4}; -static Ttk_Padding DarkComboboxPadding = {6, 6, 22, 6}; +// OS dependent ??? +static Ttk_Padding ComboboxPadding = {7, 5, 24, 5}; static void ComboboxElementSize( TCL_UNUSED(void *), /* clientData */ TCL_UNUSED(void *), /* elementRecord */ - Tk_Window tkwin, + TCL_UNUSED(Tk_Window), /* tkwin */ int *minWidth, int *minHeight, Ttk_Padding *paddingPtr) { *minWidth = 24; - *minHeight = 23; - if (TkMacOSXInDarkMode(tkwin)) { - *paddingPtr = DarkComboboxPadding; - } else { - *paddingPtr = ComboboxPadding; - } + *minHeight = 0; + *paddingPtr = ComboboxPadding; } static void ComboboxElementDraw( @@ -1952,23 +2249,13 @@ static void ComboboxElementDraw( }; BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - bounds = CGRectInset(bounds, 3, 3); - if (state & TTK_STATE_FOCUS) { - DrawDarkFocusRing(bounds, dc.context); - } - DrawDarkButton(bounds, info.kind, state, dc.context); + if ([NSApp macOSVersion] > 100800) { + bounds = CGRectInset(bounds, -1, -1); + DrawButton(bounds, info, state, dc.context, tkwin); } else { - if ([NSApp macOSVersion] > 100800) { - if ((state & TTK_STATE_BACKGROUND) && - !(state & TTK_STATE_DISABLED)) { - NSColor *background = [NSColor textBackgroundColor]; - CGRect innerBounds = CGRectInset(bounds, 1, 4); - bounds.origin.y += 1; - SolidFillRoundedRectangle(dc.context, innerBounds, 4, background); - } - } - ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, NULL); + bounds.origin.y += 1; + ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, + NULL); } END_DRAWING } @@ -2002,7 +2289,22 @@ static Ttk_ElementSpec ComboboxElementSpec = { * that order. So the up button must be listed first in the layout. */ -static Ttk_Padding SpinbuttonMargins = {0, 0, 2, 0}; +static Ttk_Padding SpinbuttonMargins = {2, 0, 0, 0}; + +static void SpinButtonReBounds( + Tk_Window tkwin, + CGRect *bounds) +{ + if (TkMacOSXInDarkMode(tkwin)) { + bounds->origin.x -= 2; + bounds->origin.y += 1; + bounds->size.height -= 0.5; + } else { + bounds->origin.x -= 3; + bounds->origin.y += 1; + bounds->size.width += 1; + } +} static void SpinButtonElementSize( TCL_UNUSED(void *), /* clientdata */ @@ -2017,7 +2319,7 @@ static void SpinButtonElementSize( ChkErr(GetThemeMetric, kThemeMetricLittleArrowsWidth, &s); *minWidth = s + Ttk_PaddingWidth(SpinbuttonMargins); ChkErr(GetThemeMetric, kThemeMetricLittleArrowsHeight, &s); - *minHeight = (s + Ttk_PaddingHeight(SpinbuttonMargins)) / 2; + *minHeight = 2 + (s + Ttk_PaddingHeight(SpinbuttonMargins)) / 2; } static void SpinButtonUpElementDraw( @@ -2031,6 +2333,7 @@ static void SpinButtonUpElementDraw( CGRect bounds = BoxToRect(d, Ttk_PadBox(b, SpinbuttonMargins)); int infoState; + SpinButtonReBounds(tkwin, &bounds); bounds.size.height *= 2; if (state & TTK_STATE_PRESSED) { infoState = kThemeStatePressedUp; @@ -2045,8 +2348,8 @@ static void SpinButtonUpElementDraw( .adornment = kThemeAdornmentNone, }; BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - DrawDarkIncDecButton(bounds, infoState, state, dc.context); + if ([NSApp macOSVersion] > 100800) { + DrawButton(bounds, info, state, dc.context, tkwin); } else { ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, NULL); @@ -2073,6 +2376,7 @@ static void SpinButtonDownElementDraw( CGRect bounds = BoxToRect(d, Ttk_PadBox(b, SpinbuttonMargins)); int infoState = 0; + SpinButtonReBounds(tkwin, &bounds); bounds.origin.y -= bounds.size.height; bounds.size.height += bounds.size.height; if (state & TTK_STATE_PRESSED) { @@ -2089,8 +2393,8 @@ static void SpinButtonDownElementDraw( }; BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - DrawDarkIncDecButton(bounds, infoState, state, dc.context); + if ([NSApp macOSVersion] > 100800) { + DrawButton(bounds, info, state, dc.context, tkwin); } else { ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, NULL); @@ -2117,7 +2421,7 @@ static Ttk_ElementSpec SpinButtonDownElementSpec = { * inactive. So we shouldn't either. */ -static Ttk_StateTable ThemeTrackEnableTable[] = { +static const Ttk_StateTable ThemeTrackEnableTable[] = { {kThemeTrackDisabled, TTK_STATE_DISABLED, 0}, {kThemeTrackActive, TTK_STATE_BACKGROUND, 0}, {kThemeTrackActive, 0, 0} @@ -2141,10 +2445,10 @@ typedef struct { } TrackElement; static Ttk_ElementOptionSpec TrackElementOptions[] = { - {"-from", TK_OPTION_DOUBLE, Tk_Offset(TrackElement, fromObj), NULL}, - {"-to", TK_OPTION_DOUBLE, Tk_Offset(TrackElement, toObj), NULL}, - {"-value", TK_OPTION_DOUBLE, Tk_Offset(TrackElement, valueObj), NULL}, - {"-orient", TK_OPTION_STRING, Tk_Offset(TrackElement, orientObj), NULL}, + {"-from", TK_OPTION_DOUBLE, offsetof(TrackElement, fromObj), NULL}, + {"-to", TK_OPTION_DOUBLE, offsetof(TrackElement, toObj), NULL}, + {"-value", TK_OPTION_DOUBLE, offsetof(TrackElement, valueObj), NULL}, + {"-orient", TK_OPTION_STRING, offsetof(TrackElement, orientObj), NULL}, {NULL, TK_OPTION_BOOLEAN, 0, NULL} }; static void TrackElementSize( @@ -2172,29 +2476,24 @@ static void TrackElementDraw( { TrackElementData *data = (TrackElementData *)clientData; TrackElement *elem = (TrackElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; - double from = 0, to = 100, value = 0, factor; - CGRect bounds; + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; + double from = 0, to = 100, value = 0, fraction, max; + CGRect bounds = BoxToRect(d, b); - Ttk_GetOrientFromObj(NULL, elem->orientObj, &orientation); + TtkGetOrientFromObj(NULL, elem->orientObj, &orientation); Tcl_GetDoubleFromObj(NULL, elem->fromObj, &from); Tcl_GetDoubleFromObj(NULL, elem->toObj, &to); Tcl_GetDoubleFromObj(NULL, elem->valueObj, &value); - factor = RangeToFactor(to); - /* - * HIThemeTrackDrawInfo uses 2-byte alignment; assigning to a separate - * bounds variable avoids UBSan (-fsanitize=alignment) complaints. - */ - - bounds = BoxToRect(d, b); + fraction = (value - from) / (to - from); + max = RangeToFactor(fabs(to - from)); HIThemeTrackDrawInfo info = { .version = 0, .kind = data->kind, .bounds = bounds, - .min = from * factor, - .max = to * factor, - .value = value * factor, + .min = 0, + .max = max, + .value = fraction * max, .attributes = kThemeTrackShowThumb | (orientation == TTK_ORIENT_HORIZONTAL ? kThemeTrackHorizontal : 0), @@ -2212,20 +2511,19 @@ static void TrackElementDraw( } } BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - bounds = BoxToRect(d, b); - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *trackColor = [NSColor colorWithColorSpace: deviceRGB - components: darkTrack - count: 4]; - if (orientation == TTK_ORIENT_HORIZONTAL) { - bounds = CGRectInset(bounds, 1, bounds.size.height / 2 - 2); - } else { - bounds = CGRectInset(bounds, bounds.size.width / 2 - 3, 2); - } - SolidFillRoundedRectangle(dc.context, bounds, 2, trackColor); + if (([NSApp macOSVersion] > 100800) && !(state & TTK_STATE_ALTERNATE)) { + + /* + * We use the reserved field to indicate whether "from" is less than + * "to". It should be 0 if passing the info to HIThemeDrawInfo, but + * we aren't doing that. + */ + + info.reserved = (from < to); + DrawSlider(dc.context, bounds, info, state, tkwin); + } else { + ChkErr(HIThemeDrawTrack, &info, NULL, dc.context, HIOrientation); } - ChkErr(HIThemeDrawTrack, &info, NULL, dc.context, HIOrientation); END_DRAWING } @@ -2283,15 +2581,15 @@ typedef struct { static Ttk_ElementOptionSpec PbarElementOptions[] = { {"-orient", TK_OPTION_STRING, - Tk_Offset(PbarElement, orientObj), "horizontal"}, + offsetof(PbarElement, orientObj), "horizontal"}, {"-value", TK_OPTION_DOUBLE, - Tk_Offset(PbarElement, valueObj), "0"}, + offsetof(PbarElement, valueObj), "0.0"}, {"-maximum", TK_OPTION_DOUBLE, - Tk_Offset(PbarElement, maximumObj), "100"}, + offsetof(PbarElement, maximumObj), "100.0"}, {"-phase", TK_OPTION_INT, - Tk_Offset(PbarElement, phaseObj), "0"}, + offsetof(PbarElement, phaseObj), "0"}, {"-mode", TK_OPTION_STRING, - Tk_Offset(PbarElement, modeObj), "determinate"}, + offsetof(PbarElement, modeObj), "determinate"}, {NULL, TK_OPTION_BOOLEAN, 0, NULL} }; static void PbarElementSize( @@ -2309,7 +2607,7 @@ static void PbarElementSize( } static void PbarElementDraw( - TCL_UNUSED(void *), + TCL_UNUSED(void *), /* clientData */ void *elementRecord, Tk_Window tkwin, Drawable d, @@ -2317,71 +2615,51 @@ static void PbarElementDraw( Ttk_State state) { PbarElement *pbar = (PbarElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL, phase = 0, kind; - - /* - * Using 1000 as the maximum should give better than 1 pixel - * resolution for most progress bars. - */ + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; + int phase; + double value = 0, maximum = 100, factor; + CGRect bounds = BoxToRect(d, b); + int isIndeterminate = !strcmp("indeterminate", + Tcl_GetString(pbar->modeObj)); - int ivalue, imaximum = 1000; - CGRect bounds; + TtkGetOrientFromObj(NULL, pbar->orientObj, &orientation); + Tcl_GetDoubleFromObj(NULL, pbar->valueObj, &value); + Tcl_GetDoubleFromObj(NULL, pbar->maximumObj, &maximum); + Tcl_GetIntFromObj(NULL, pbar->phaseObj, &phase); - Ttk_GetOrientFromObj(NULL, pbar->orientObj, &orientation); - kind = !strcmp("indeterminate", Tcl_GetString(pbar->modeObj)) ? - kThemeIndeterminateBar : kThemeProgressBar; - if (kind == kThemeIndeterminateBar) { - Tcl_GetIntFromObj(NULL, pbar->phaseObj, &phase); + if (isIndeterminate) { /* - * On macOS 11 the fraction of an indeterminate progress bar which is - * traversed by the oscillating thumb is value / maximum. The phase - * determines the position of the moving thumb in that range and is - * apparently expected to vary between 0 and 120. On earlier systems - * it is unclear how the phase is used in generating the animation. + * When an indeterminate progress bar is animated the phase is + * (currently) always 0 and the value increases from min to max + * and then decreases back to min. We scale the value by 3 to + * speed the animation up a bit. */ - ivalue = imaximum; - } else { - double value, maximum; - Tcl_GetDoubleFromObj(NULL, pbar->valueObj, &value); - Tcl_GetDoubleFromObj(NULL, pbar->maximumObj, &maximum); - ivalue = (value / maximum)*1000; + double remainder = fmod(3*value, 2*maximum); + value = remainder > maximum ? 2*maximum - remainder : remainder; } - - /* - * HIThemeTrackDrawInfo uses 2-byte alignment; assigning to a separate - * bounds variable avoids UBSan (-fsanitize=alignment) complaints. - */ - - bounds = BoxToRect(d, b); + factor = RangeToFactor(maximum); HIThemeTrackDrawInfo info = { .version = 0, - .kind = kind, + .kind = isIndeterminate? kThemeIndeterminateBar : kThemeProgressBar, .bounds = bounds, .min = 0, - .max = imaximum, - .value = ivalue, + .max = maximum * factor, + .value = value * factor, .attributes = kThemeTrackShowThumb | - (orientation == TTK_ORIENT_HORIZONTAL ? kThemeTrackHorizontal : 0), + (orientation == TTK_ORIENT_HORIZONTAL ? + kThemeTrackHorizontal : 0), .enableState = Ttk_StateTableLookup(ThemeTrackEnableTable, state), - .trackInfo.progress.phase = phase + .trackInfo.progress.phase = phase, }; + BEGIN_DRAWING(d) - if (TkMacOSXInDarkMode(tkwin)) { - bounds = BoxToRect(d, b); - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *trackColor = [NSColor colorWithColorSpace: deviceRGB - components: darkTrack - count: 4]; - if (orientation == TTK_ORIENT_HORIZONTAL) { - bounds = CGRectInset(bounds, 1, bounds.size.height / 2 - 3); - } else { - bounds = CGRectInset(bounds, bounds.size.width / 2 - 3, 1); - } - SolidFillRoundedRectangle(dc.context, bounds, 3, trackColor); + if ([NSApp macOSVersion] > 100800) { + DrawProgressBar(dc.context, bounds, info, state, tkwin); + } else { + ChkErr(HIThemeDrawTrack, &info, NULL, dc.context, HIOrientation); } - ChkErr(HIThemeDrawTrack, &info, NULL, dc.context, HIOrientation); END_DRAWING } @@ -2404,7 +2682,7 @@ typedef struct static Ttk_ElementOptionSpec ScrollbarElementOptions[] = { {"-orient", TK_OPTION_STRING, - Tk_Offset(ScrollbarElement, orientObj), "horizontal"}, + offsetof(ScrollbarElement, orientObj), "horizontal"}, {NULL, TK_OPTION_BOOLEAN, 0, NULL} }; static void TroughElementSize( @@ -2416,10 +2694,10 @@ static void TroughElementSize( Ttk_Padding *paddingPtr) { ScrollbarElement *scrollbar = (ScrollbarElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; SInt32 thickness = 15; - Ttk_GetOrientFromObj(NULL, scrollbar->orientObj, &orientation); + TtkGetOrientFromObj(NULL, scrollbar->orientObj, &orientation); ChkErr(GetThemeMetric, kThemeMetricScrollBarWidth, &thickness); if (orientation == TTK_ORIENT_HORIZONTAL) { *minHeight = thickness; @@ -2434,20 +2712,6 @@ static void TroughElementSize( } } -static CGFloat lightTrough[4] = {250.0 / 255, 250.0 / 255, 250.0 / 255, 1.0}; -static CGFloat darkTrough[4] = {45.0 / 255, 46.0 / 255, 49.0 / 255, 1.0}; -static CGFloat lightInactiveThumb[4] = { - 200.0 / 255, 200.0 / 255, 200.0 / 255, 1.0 -}; -static CGFloat lightActiveThumb[4] = { - 133.0 / 255, 133.0 / 255, 133.0 / 255, 1.0 -}; -static CGFloat darkInactiveThumb[4] = { - 116.0 / 255, 117.0 / 255, 118.0 / 255, 1.0 -}; -static CGFloat darkActiveThumb[4] = { - 158.0 / 255, 158.0 / 255, 159.0 / 255, 1.0 -}; static void TroughElementDraw( TCL_UNUSED(void *), /* clientData */ void *elementRecord, @@ -2457,24 +2721,20 @@ static void TroughElementDraw( TCL_UNUSED(Ttk_State)) /* state */ { ScrollbarElement *scrollbar = (ScrollbarElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; CGRect bounds = BoxToRect(d, b); - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *troughColor; - CGFloat *rgba = TkMacOSXInDarkMode(tkwin) ? darkTrough : lightTrough; + GrayColor bgGray; - Ttk_GetOrientFromObj(NULL, scrollbar->orientObj, &orientation); + TtkGetOrientFromObj(NULL, scrollbar->orientObj, &orientation); if (orientation == TTK_ORIENT_HORIZONTAL) { bounds = CGRectInset(bounds, 0, 1); } else { bounds = CGRectInset(bounds, 1, 0); } - troughColor = [NSColor colorWithColorSpace: deviceRGB - components: rgba - count: 4]; BEGIN_DRAWING(d) if ([NSApp macOSVersion] > 100800) { - CGContextSetFillColorWithColor(dc.context, CGCOLOR(troughColor)); + bgGray = TkMacOSXInDarkMode(tkwin) ? darkTrough : lightTrough; + CGContextSetFillColorWithColor(dc.context, CGColorFromGray(bgGray)); } else { ChkErr(HIThemeSetFill, kThemeBrushDocumentWindowBackground, NULL, dc.context, HIOrientation); @@ -2499,9 +2759,9 @@ static void ThumbElementSize( TCL_UNUSED(Ttk_Padding *)) /* paddingPtr */ { ScrollbarElement *scrollbar = (ScrollbarElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; - Ttk_GetOrientFromObj(NULL, scrollbar->orientObj, &orientation); + TtkGetOrientFromObj(NULL, scrollbar->orientObj, &orientation); if (orientation == TTK_ORIENT_VERTICAL) { *minHeight = 18; *minWidth = 8; @@ -2520,9 +2780,9 @@ static void ThumbElementDraw( Ttk_State state) { ScrollbarElement *scrollbar = (ScrollbarElement *)elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; + Ttk_Orient orientation = TTK_ORIENT_HORIZONTAL; - Ttk_GetOrientFromObj(NULL, scrollbar->orientObj, &orientation); + TtkGetOrientFromObj(NULL, scrollbar->orientObj, &orientation); /* * In order to make ttk scrollbars work correctly it is necessary to be @@ -2531,16 +2791,20 @@ static void ThumbElementDraw( * determine the thumb geometry from the input values of min, max, value * and viewSize is undocumented. A seemingly natural algorithm is * implemented below. This code uses that algorithm for older OS versions, - * because using HITools also handles drawing the buttons and 3D thumb used + * because using HIToolbox also handles drawing the buttons and 3D thumb used * on those systems. For newer systems the cleanest approach is to just * draw the thumb directly. */ if ([NSApp macOSVersion] > 100800) { CGRect thumbBounds = BoxToRect(d, b); - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *thumbColor; - CGFloat *rgba; + CGColorRef thumbColor; + GrayColor bgGray; + + /* + * Apple does not draw the thumb when scrolling is not possible. + */ + if ((orientation == TTK_ORIENT_HORIZONTAL && thumbBounds.size.width >= Tk_Width(tkwin) - 8) || (orientation == TTK_ORIENT_VERTICAL && @@ -2550,15 +2814,13 @@ static void ThumbElementDraw( int isDark = TkMacOSXInDarkMode(tkwin); if ((state & TTK_STATE_PRESSED) || (state & TTK_STATE_HOVER)) { - rgba = isDark ? darkActiveThumb : lightActiveThumb; + bgGray = isDark ? darkActiveThumb : lightActiveThumb; } else { - rgba = isDark ? darkInactiveThumb : lightInactiveThumb; + bgGray = isDark ? darkInactiveThumb : lightInactiveThumb; } - thumbColor = [NSColor colorWithColorSpace: deviceRGB - components: rgba - count: 4]; + thumbColor = CGColorFromGray(bgGray); BEGIN_DRAWING(d) - SolidFillRoundedRectangle(dc.context, thumbBounds, 4, thumbColor); + FillRoundedRectangle(dc.context, thumbBounds, 4, thumbColor); END_DRAWING } else { double thumbSize, trackSize, visibleSize, factor, fraction; @@ -2674,7 +2936,7 @@ static void SeparatorElementDraw( Tk_Window tkwin, Drawable d, Ttk_Box b, - unsigned int state) + Ttk_State state) { CGRect bounds = BoxToRect(d, b); const HIThemeSeparatorDrawInfo info = { @@ -2737,7 +2999,7 @@ static void SizegripElementDraw( TCL_UNUSED(Tk_Window), /* tkwin */ Drawable d, Ttk_Box b, - unsigned int state) + Ttk_State state) { CGRect bounds = BoxToRect(d, b); HIThemeGrowBoxDrawInfo info = { @@ -2819,15 +3081,10 @@ static void FillElementDraw( CGRect bounds = BoxToRect(d, b); if ([NSApp macOSVersion] > 100800) { - NSColorSpace *deviceRGB = [NSColorSpace deviceRGBColorSpace]; - NSColor *bgColor; - CGFloat fill[4]; + CGColorRef bgColor; BEGIN_DRAWING(d) - GetBackgroundColor(dc.context, tkwin, 0, fill); - bgColor = [NSColor colorWithColorSpace: deviceRGB components: fill - count: 4]; - CGContextSetFillColorSpace(dc.context, deviceRGB.CGColorSpace); - CGContextSetFillColorWithColor(dc.context, CGCOLOR(bgColor)); + bgColor = GetBackgroundCGColor(dc.context, tkwin, NO, 0); + CGContextSetFillColorWithColor(dc.context, bgColor); CGContextFillRect(dc.context, bounds); END_DRAWING } else { @@ -2847,7 +3104,7 @@ static void BackgroundElementDraw( Tk_Window tkwin, Drawable d, TCL_UNUSED(Ttk_Box), - unsigned int state) + Ttk_State state) { FillElementDraw(clientData, elementRecord, tkwin, d, Ttk_WinBox(tkwin), state); @@ -2921,7 +3178,7 @@ typedef struct { static Ttk_ElementOptionSpec FieldElementOptions[] = { {"-fieldbackground", TK_OPTION_BORDER, - Tk_Offset(FieldElement, backgroundObj), "white"}, + offsetof(FieldElement, backgroundObj), "white"}, {NULL, TK_OPTION_BOOLEAN, 0, NULL} }; @@ -2958,13 +3215,13 @@ static Ttk_ElementSpec FieldElementSpec = { * buttons, so we draw them from scratch. */ -static Ttk_StateTable TreeHeaderValueTable[] = { +static const Ttk_StateTable TreeHeaderValueTable[] = { {kThemeButtonOn, TTK_STATE_ALTERNATE, 0}, {kThemeButtonOn, TTK_STATE_SELECTED, 0}, {kThemeButtonOff, 0, 0} }; -static Ttk_StateTable TreeHeaderAdornmentTable[] = { +static const Ttk_StateTable TreeHeaderAdornmentTable[] = { {kThemeAdornmentHeaderButtonSortUp, TTK_STATE_ALTERNATE | TTK_TREEVIEW_STATE_SORTARROW, 0}, {kThemeAdornmentDefault, @@ -2990,7 +3247,7 @@ static void TreeAreaElementSize ( */ if ([NSApp macOSVersion] > 100800) { - paddingPtr->top = 4; + *paddingPtr = Ttk_MakePadding(0, 4, 0, 0); } } @@ -3044,11 +3301,7 @@ static void TreeHeaderElementDraw( */ bounds.origin.y -= 4; - if (TkMacOSXInDarkMode(tkwin)) { - DrawDarkListHeader(bounds, dc.context, tkwin, state); - } else { - DrawListHeader(bounds, dc.context, tkwin, state); - } + DrawListHeader(bounds, dc.context, tkwin, state); } else { ChkErr(HIThemeDrawButton, &bounds, &info, dc.context, HIOrientation, NULL); @@ -3068,10 +3321,8 @@ static Ttk_ElementSpec TreeHeaderElementSpec = { * +++ Disclosure triangles -- */ -#define TTK_TREEVIEW_STATE_OPEN TTK_STATE_USER1 -#define TTK_TREEVIEW_STATE_LEAF TTK_STATE_USER2 -static Ttk_StateTable DisclosureValueTable[] = { - {kThemeDisclosureDown, TTK_TREEVIEW_STATE_OPEN, 0}, +static const Ttk_StateTable DisclosureValueTable[] = { + {kThemeDisclosureDown, TTK_STATE_OPEN, 0}, {kThemeDisclosureRight, 0, 0}, }; static void DisclosureElementSize( @@ -3098,7 +3349,7 @@ static void DisclosureElementDraw( Ttk_Box b, Ttk_State state) { - if (!(state & TTK_TREEVIEW_STATE_LEAF)) { + if (!(state & TTK_STATE_LEAF)) { int triangleState = TkMacOSXInDarkMode(tkwin) ? kThemeStateInactive : kThemeStateActive; CGRect bounds = BoxToRect(d, b); @@ -3117,7 +3368,7 @@ static void DisclosureElementDraw( NSColor *stroke = [[NSColor textColor] colorUsingColorSpace: deviceRGB]; [stroke getComponents: rgba]; - if (state & TTK_TREEVIEW_STATE_OPEN) { + if (state & TTK_STATE_OPEN) { DrawOpenDisclosure(dc.context, bounds, 2, 8, rgba); } else { DrawClosedDisclosure(dc.context, bounds, 2, 12, rgba); @@ -3172,6 +3423,51 @@ TTK_LAYOUT("TCombobox", TTK_GROUP("Combobox.padding", TTK_FILL_BOTH, TTK_NODE("Combobox.textarea", TTK_FILL_BOTH)))) +/* Image Button - no button */ +TTK_LAYOUT("ImageButton", + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH))) + +/* Inline Button */ +TTK_LAYOUT("InlineButton", + TTK_GROUP("InlineButton.button", TTK_FILL_BOTH, + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH)))) + +/* Rounded Rect Button -- transparent face */ +TTK_LAYOUT("RoundedRectButton", + TTK_GROUP("RoundedRectButton.button", TTK_FILL_BOTH, + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH)))) + +/* Gradient Button */ +TTK_LAYOUT("GradientButton", + TTK_GROUP("GradientButton.button", TTK_FILL_BOTH, + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH)))) + +/* Recessed Button - text only radio button */ + +TTK_LAYOUT("RecessedButton", + TTK_GROUP("RecessedButton.button", TTK_FILL_BOTH, + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH)))) + +/* Sidebar Button - text only radio button for sidebars */ + +TTK_LAYOUT("SidebarButton", + TTK_GROUP("SidebarButton.button", TTK_FILL_BOTH, + TTK_GROUP("Button.padding", TTK_FILL_BOTH, + TTK_NODE("Button.label", TTK_FILL_BOTH)))) + +/* DisclosureButton (not a triangle) -- No label, no border*/ +TTK_LAYOUT("DisclosureButton", + TTK_NODE("DisclosureButton.button", TTK_FILL_BOTH)) + +/* HelpButton -- No label, no border*/ +TTK_LAYOUT("HelpButton", + TTK_NODE("HelpButton.button", TTK_FILL_BOTH)) + /* Notebook tabs -- no focus ring */ TTK_LAYOUT("Tab", TTK_GROUP("Notebook.tab", TTK_FILL_BOTH, @@ -3186,6 +3482,17 @@ TTK_LAYOUT("TSpinbox", TTK_GROUP("Spinbox.field", TTK_FILL_X, TTK_NODE("Spinbox.textarea", TTK_FILL_X))) +TTK_LAYOUT("TEntry", + TTK_GROUP("Entry.field", TTK_FILL_BOTH|TTK_BORDER, + TTK_GROUP("Entry.padding", TTK_FILL_BOTH, + TTK_NODE("Entry.textarea", TTK_FILL_BOTH)))) + +/* Searchbox */ +TTK_LAYOUT("Searchbox", + TTK_GROUP("Searchbox.field", TTK_FILL_BOTH|TTK_BORDER, + TTK_GROUP("Entry.padding", TTK_FILL_BOTH, + TTK_NODE("Entry.textarea", TTK_FILL_BOTH)))) + /* Progress bars -- track only */ TTK_LAYOUT("TProgressbar", TTK_NODE("Progressbar.track", TTK_FILL_BOTH)) @@ -3229,6 +3536,33 @@ TTK_END_LAYOUT_TABLE * +++ Initialization -- */ +/*---------------------------------------------------------------------- + * +++ Ttk_MacOSXInit -- + * + * Initialize variables which depend on [NSApp macOSVersion]. Called from + * [NSApp applicationDidFinishLaunching]. + */ + +MODULE_SCOPE void +Ttk_MacOSXInit(void) +{ + if ([NSApp macOSVersion] < 101400) { + entryElementPadding = Ttk_MakePadding(7, 6, 7, 5); + } else { + entryElementPadding = Ttk_MakePadding(7, 5, 7, 6); + } + if ([NSApp macOSVersion] < 110000) { + Ttk_ContrastDelta = 8.0; + } else { + + /* + * The subtle contrast became event more subtle in 11.0. + */ + + Ttk_ContrastDelta = 5.0; + } +} + static int AquaTheme_Init( Tcl_Interp *interp) { @@ -3251,14 +3585,28 @@ static int AquaTheme_Init( Ttk_RegisterElementSpec(themePtr, "Button.button", &ButtonElementSpec, &PushButtonParams); + Ttk_RegisterElementSpec(themePtr, "InlineButton.button", + &ButtonElementSpec, &InlineButtonParams); + Ttk_RegisterElementSpec(themePtr, "RoundedRectButton.button", + &ButtonElementSpec, &RoundedRectButtonParams); Ttk_RegisterElementSpec(themePtr, "Checkbutton.button", &ButtonElementSpec, &CheckBoxParams); Ttk_RegisterElementSpec(themePtr, "Radiobutton.button", &ButtonElementSpec, &RadioButtonParams); + Ttk_RegisterElementSpec(themePtr, "RecessedButton.button", + &ButtonElementSpec, &RecessedButtonParams); + Ttk_RegisterElementSpec(themePtr, "SidebarButton.button", + &ButtonElementSpec, &SidebarButtonParams); Ttk_RegisterElementSpec(themePtr, "Toolbutton.border", &ButtonElementSpec, &BevelButtonParams); Ttk_RegisterElementSpec(themePtr, "Menubutton.button", &ButtonElementSpec, &PopupButtonParams); + Ttk_RegisterElementSpec(themePtr, "DisclosureButton.button", + &ButtonElementSpec, &DisclosureButtonParams); + Ttk_RegisterElementSpec(themePtr, "HelpButton.button", + &ButtonElementSpec, &HelpButtonParams); + Ttk_RegisterElementSpec(themePtr, "GradientButton.button", + &ButtonElementSpec, &GradientButtonParams); Ttk_RegisterElementSpec(themePtr, "Spinbox.uparrow", &SpinButtonUpElementSpec, 0); Ttk_RegisterElementSpec(themePtr, "Spinbox.downarrow", @@ -3277,8 +3625,12 @@ static int AquaTheme_Init( Ttk_RegisterElementSpec(themePtr, "Labelframe.border", &GroupElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Entry.field", &EntryElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Spinbox.field", &EntryElementSpec, 0); + Ttk_RegisterElementSpec(themePtr, "Entry.field", &EntryElementSpec, + &EntryFieldParams); + Ttk_RegisterElementSpec(themePtr, "Searchbox.field", &EntryElementSpec, + &SearchboxFieldParams); + Ttk_RegisterElementSpec(themePtr, "Spinbox.field", &EntryElementSpec, + &EntryFieldParams); Ttk_RegisterElementSpec(themePtr, "separator", &SeparatorElementSpec, 0); Ttk_RegisterElementSpec(themePtr, "hseparator", &SeparatorElementSpec, 0); diff --git a/macosx/ttkMacOSXTheme.h b/macosx/ttkMacOSXTheme.h new file mode 100644 index 0000000..1e2b7ae --- /dev/null +++ b/macosx/ttkMacOSXTheme.h @@ -0,0 +1,583 @@ +/* + * ttkMacOSXTheme.h -- + * + * Static data and macros used in ttkMacOSXTheme.c + * + * Copyright 2019 Marc Culler + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + */ + +/* + * Macros for handling drawing contexts. + */ + +#define BEGIN_DRAWING(d) { \ + TkMacOSXDrawingContext dc; \ + if (!TkMacOSXSetupDrawingContext((d), NULL, &dc)) { \ + return; \ + } \ + +#define END_DRAWING \ + TkMacOSXRestoreDrawingContext(&dc);} + + +#define HIOrientation kHIThemeOrientationNormal +#define NoThemeMetric 0xFFFFFFFF + +/* + * A scale factor used to map a range of non-negative doubles into a large + * range of non-negative 32-bit integers without losing too much information. + * (Use 1073741824 == 2^30 so we don't get surprised by roundoff.) + */ + +#define RangeToFactor(max) ((double) (1073741824.0) / (max < 1.0 ? 1.0 : max)) + +/* + * Meanings of Ttk states represented by User1 and User2. + */ + +#define TTK_STATE_IS_ACCENTED TTK_STATE_USER2 +#define TTK_TREEVIEW_STATE_SORTARROW TTK_STATE_USER1 + +/* + * Colors and gradients used when drawing buttons. + */ + +typedef struct GrayColor { + CGFloat grayscale; + CGFloat alpha; +} GrayColor; + +#define RGBACOLOR static CGFloat +#define RGBA256(r, g, b, a) {r / 255.0, g / 255.0, b / 255.0, a} +#define GRAYCOLOR static GrayColor +#define GRAY256(grayscale) {grayscale / 255.0, 1.0} + +/* + * Opaque Grays used for Gradient Buttons, Scrollbars and List Headers + */ + +GRAYCOLOR darkDisabledIndicator = GRAY256(122.0); +GRAYCOLOR lightDisabledIndicator = GRAY256(152.0); + +GRAYCOLOR darkGradientNormal = GRAY256(95.0); +GRAYCOLOR darkGradientPressed = GRAY256(118.0); +GRAYCOLOR darkGradientDisabled = GRAY256(82.0); +GRAYCOLOR darkGradientBorder = GRAY256(118.0); +GRAYCOLOR darkGradientBorderDisabled = GRAY256(94.0); +GRAYCOLOR lightGradientNormal = GRAY256(244.0); +GRAYCOLOR lightGradientPressed = GRAY256(175.0); +GRAYCOLOR lightGradientDisabled = GRAY256(235.0); +GRAYCOLOR lightGradientBorder = GRAY256(165.0); +GRAYCOLOR lightGradientBorderDisabled = GRAY256(204.0); + +GRAYCOLOR lightTrough = GRAY256(250.0); +GRAYCOLOR darkTrough = GRAY256(47.0); +GRAYCOLOR lightInactiveThumb = GRAY256(200.0); +GRAYCOLOR lightActiveThumb = GRAY256(133.0); +GRAYCOLOR darkInactiveThumb = GRAY256(117.0); +GRAYCOLOR darkActiveThumb = GRAY256(158.0); + +GRAYCOLOR lightListheaderBorder = GRAY256(200.0); +GRAYCOLOR listheaderSeparator = GRAY256(220.0); +GRAYCOLOR listheaderActiveBG = GRAY256(238.0); +GRAYCOLOR listheaderInactiveBG = GRAY256(246.0); + +GRAYCOLOR lightComboSeparator = GRAY256(236.0); +GRAYCOLOR darkComboSeparator = GRAY256(66.0); + +GRAYCOLOR darkTrack = GRAY256(84.0); +GRAYCOLOR darkInactiveTrack = GRAY256(107.0); +GRAYCOLOR lightTrack = GRAY256(177.0); +GRAYCOLOR lightInactiveTrack = GRAY256(139.0); + +/* + * Transparent Grays + */ + +GRAYCOLOR boxBorder = {1.0, 0.20}; +GRAYCOLOR darkSeparator = {1.0, 0.3}; +GRAYCOLOR darkTabSeparator = {0.0, 0.25}; +GRAYCOLOR darkListheaderBorder = {1.0, 0.125}; +GRAYCOLOR pressedDefaultButton = {0.0, 0.1}; +GRAYCOLOR darkPressedDefaultButton = {1.0, 0.1}; + +#define CG_WHITE CGColorGetConstantColor(kCGColorWhite) + + +/* + * Structures which comprise a database of corner radii and state-dependent + * colors used when drawing various types of buttons or entry widgets. + */ + +typedef struct GrayPalette { + CGFloat face; + CGFloat top; + CGFloat side; + CGFloat bottom; +} GrayPalette; + +typedef struct PaletteStateTable { + GrayPalette light; /* Light palette to use if this entry matches */ + GrayPalette dark; /* dark palette to use if this entry matches */ + unsigned int onBits; /* Bits which must be set */ + unsigned int offBits; /* Bits which must be cleared */ +} PaletteStateTable; + +typedef struct ButtonDesign { + CGFloat radius; + PaletteStateTable palettes[]; +} ButtonDesign; + +/* + * The data. + */ + +static const ButtonDesign pushbuttonDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 242.0, .top = 213.0, .side = 210.0, .bottom = 200.0}, + .dark = {.face = 94.0, .top = 98.0, .side = 94.0, .bottom = 58.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0}, + { + .light = {.face = 205.0, .top = 215.0, .side = 211.0, .bottom = 173.0}, + .dark = {.face = 140.0, .top = 150.0, .side = 140.0, .bottom = 42.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 198.0, .side = 192.0, .bottom = 173.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign helpDesign = { + .radius = 11, + .palettes = { + { + .light = {.face = 241.0, .top = 218.0, .side = 217.0, .bottom = 206.0}, + .dark = {.face = 83.0, .top = 89.0, .side = 82.0, .bottom = 82.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0}, + { + .light = {.face = 240.0, .top = 208.0, .side = 205.0, .bottom = 188.0}, + .dark = {.face = 129.0, .top = 121.0, .side = 106.0, .bottom = 106.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 208.0, .side = 205.0, .bottom = 188.0}, + .dark = {.face = 107.0, .top = 121.0, .side = 106.0, .bottom = 106.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign inlineDesign = { + .radius = 8.0, + .palettes = { + { + .light = {.face = 170.0, .top = 170.0, .side = 170.0, .bottom = 170.0}, + .dark = {.face = 106.0, .top = 106.0, .side = 106.0, .bottom = 106.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0}, + { + .light = {.face = 34.0, .top = 34.0, .side = 34.0, .bottom = 34.0}, + .dark = {.face = 225.0, .top = 225.0, .side = 225.0, .bottom = 225.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 113.0, .top = 113.0, .side = 113.0, .bottom = 113.0}, + .dark = {.face = 165.0, .top = 165.0, .side = 165.0, .bottom = 165.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign roundedrectDesign = { + .radius = 3.0, + .palettes = { + { + .light = {.face = 256.0, .top = 192.0, .side = 192.0, .bottom = 192.0}, + .dark = {.face = 256.0, .top = 165.0, .side = 163.0, .bottom = 42.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 204.0, .top = 158.0, .side = 158.0, .bottom = 158.0}, + .dark = {.face = 85.0, .top = 115.0, .side = 115.0, .bottom = 115.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 205.0, .top = 215.0, .side = 211.0, .bottom = 173.0}, + .dark = {.face = 140.0, .top = 150.0, .side = 140.0, .bottom = 42.0}, + .onBits = TTK_STATE_ALTERNATE, .offBits = TTK_STATE_BACKGROUND + }, + + /* + * Gray values > 255 are replaced by the background color. + */ + + { + .light = {.face = 256.0, .top = 158.0, .side = 158.0, .bottom = 158.0}, + .dark = {.face = 256.0, .top = 115.0, .side = 115.0, .bottom = 115.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign popupDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 242.0, .top = 213.0, .side = 210.0, .bottom = 200.0}, + .dark = {.face = 94.0, .top = 98.0, .side = 94.0, .bottom = 58.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 198.0, .side = 192.0, .bottom = 173.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign checkDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 242.0, .top = 192.0, .side = 199.0, .bottom = 199.0}, + .dark = {.face = 80.0, .top = 90.0, .side = 80.0, .bottom = 49.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 165.0, .side = 184.0, .bottom = 184.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign radioDesign = { + .radius = 8.0, + .palettes = { + { + .light = {.face = 242.0, .top = 189.0, .side = 198.0, .bottom = 199.0}, + .dark = {.face = 80.0, .top = 84.0, .side = 88.0, .bottom = 60.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 165.0, .side = 184.0, .bottom = 184.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign recessedDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 117.0, .top = 117.0, .side = 117.0, .bottom = 117.0}, + .dark = {.face = 129.0, .top = 129.0, .side = 129.0, .bottom = 129.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 182.0, .top = 182.0, .side = 182.0, .bottom = 182.0}, + .dark = {.face = 105.0, .top = 105.0, .side = 105.0, .bottom = 105.0}, + .onBits = TTK_STATE_ACTIVE, .offBits = TTK_STATE_SELECTED + }, + { + .light = {.face = 145.0, .top = 145.0, .side = 145.0, .bottom = 145.0}, + .dark = {.face = 166.0, .top = 166.0, .side = 166.0, .bottom = 166.0}, + .onBits = TTK_STATE_SELECTED, .offBits = 0 + }, + { + .light = {.face = 256.0, .top = 256.0, .side = 256.0, .bottom = 256.0}, + .dark = {.face = 256.0, .top = 256.0, .side = 256.0, .bottom = 256.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign sidebarDesign = { + .radius = 8.0, + .palettes = { + { + .light = {.face = 210.0, .top = 210.0, .side = 210.0, .bottom = 210.0}, + .dark = {.face = 129.0, .top = 129.0, .side = 129.0, .bottom = 129.0}, + .onBits = TTK_STATE_SELECTED, .offBits = 0 + }, + { + .light = {.face = 210.0, .top = 210.0, .side = 210.0, .bottom = 210.0}, + .dark = {.face = 129.0, .top = 129.0, .side = 129.0, .bottom = 129.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 256.0, .top = 256.0, .side = 256.0, .bottom = 256.0}, + .dark = {.face = 256.0, .top = 256.0, .side = 256.0, .bottom = 256.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign incdecDesign = { + .radius = 5.0, + .palettes = { + { + .light = {.face = 246.0, .top = 236.0, .side = 227.0, .bottom = 213.0}, + .dark = {.face = 80.0, .top = 90.0, .side = 80.0, .bottom = 49.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 198.0, .side = 192.0, .bottom = 173.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign bevelDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 242.0, .top = 213.0, .side = 210.0, .bottom = 200.0}, + .dark = {.face = 94.0, .top = 98.0, .side = 94.0, .bottom = 58.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 205.0, .top = 215.0, .side = 211.0, .bottom = 173.0}, + .dark = {.face = 140.0, .top = 150.0, .side = 140.0, .bottom = 42.0}, + .onBits = TTK_STATE_PRESSED, .offBits = 0 + }, + { + .light = {.face = 228.0, .top = 215.0, .side = 211.0, .bottom = 173.0}, + .dark = {.face = 163.0, .top = 150.0, .side = 140.0, .bottom = 42.0}, + .onBits = TTK_STATE_SELECTED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 198.0, .side = 192.0, .bottom = 173.0}, + .dark = {.face = 118.0, .top = 132.0, .side = 118.0, .bottom = 48.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign tabDesign = { + .radius = 4.0, + .palettes = { + + /* + * Apple does not have such a thing as a disabled tab. If it is + * disabled, it should be removed. But we provide one based on the + * disabled button. + */ + + { + .light = {.face = 229.0, .top = 213.0, .side = 242.0, .bottom = 200.0}, + .dark = {.face = 163.0, .top = 90.0, .side = 80.0, .bottom = 49.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 229.0, .top = 205.0, .side = 211.0, .bottom = 183.0}, + .dark = {.face = 163.0, .top = 165.0, .side = 163.0, .bottom = 42.0}, + .onBits = TTK_STATE_SELECTED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 215.0, .side = 211.0, .bottom = 183.0}, + .dark = {.face = 108.0, .top = 129.0, .side = 108.0, .bottom = 47.0}, + .onBits = 0, .offBits = 0 + }, + } +}; + +static const ButtonDesign entryDesign = { + .radius = 0.0, + .palettes = { + { + .light = {.face = 256.0, .top = 198.0, .side = 198.0, .bottom = 198.0}, + .dark = {.face = 256.0, .top = 66.0, .side = 66.0, .bottom = 84.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign searchDesign = { + .radius = 3.5, + .palettes = { + { + .light = {.face = 256.0, .top = 198.0, .side = 198.0, .bottom = 198.0}, + .dark = {.face = 256.0, .top = 66.0, .side = 66.0, .bottom = 84.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign comboDesign = { + .radius = 4.0, + .palettes = { + { + .light = {.face = 256.0, .top = 190.0, .side = 190.0, .bottom = 190.0}, + .dark = {.face = 256.0, .top = 66.0, .side = 66.0, .bottom = 90.0}, + .onBits = 0, .offBits = 0 + } + } +}; + +static const ButtonDesign sliderDesign = { + .radius = 8.0, + .palettes = { + { + .light = {.face = 242.0, .top = 189.0, .side = 198.0, .bottom = 199.0}, + .dark = {.face = 80.0, .top = 84.0, .side = 88.0, .bottom = 60.0}, + .onBits = TTK_STATE_DISABLED, .offBits = 0 + }, + { + .light = {.face = 255.0, .top = 165.0, .side = 184.0, .bottom = 184.0}, + .dark = {.face = 205.0, .top = 205.0, .side = 205.0, .bottom = 198.0}, + .onBits = 0, .offBits = 0 + } + } +}; + + +/* + * Table mapping Tk states to Appearance manager ThemeStates + */ + +static const Ttk_StateTable ThemeStateTable[] = { + {kThemeStateActive, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, + {kThemeStateUnavailable, TTK_STATE_DISABLED, 0}, + {kThemeStatePressed, TTK_STATE_PRESSED, 0}, + {kThemeStateInactive, TTK_STATE_BACKGROUND, 0}, + {kThemeStateUnavailableInactive, TTK_STATE_DISABLED | TTK_STATE_BACKGROUND, 0}, + {kThemeStateActive, 0, 0} + + /* Others: + * The kThemeStatePressedUp and kThemeStatePressedDown bits indicate + * which of the two segments of an IncDec button is being pressed. + * We don't use these. kThemeStateRollover roughly corresponds to + * TTK_STATE_ACTIVE, but does not do what we want with the help button. + * + * {kThemeStatePressedUp, 0, 0}, + * {kThemeStatePressedDown, 0, 0} + * {kThemeStateRollover, TTK_STATE_ACTIVE, 0}, + */ +}; + +/* + * Translation between Ttk and HIToolbox. + */ + +static const Ttk_StateTable ButtonValueTable[] = { + {kThemeButtonOff, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, + {kThemeButtonMixed, TTK_STATE_ALTERNATE, 0}, + {kThemeButtonOn, TTK_STATE_SELECTED, 0}, + {kThemeButtonOff, 0, 0} +}; + +static const Ttk_StateTable ButtonAdornmentTable[] = { + {kThemeAdornmentNone, TTK_STATE_ALTERNATE | TTK_STATE_BACKGROUND, 0}, + {kThemeAdornmentDefault | kThemeAdornmentFocus, + TTK_STATE_ALTERNATE | TTK_STATE_FOCUS, 0}, + {kThemeAdornmentFocus, TTK_STATE_FOCUS, 0}, + {kThemeAdornmentDefault, TTK_STATE_ALTERNATE, 0}, + {kThemeAdornmentNone, 0, 0} +}; + +/* + * Our enums for button styles not known to HIToolbox. + */ + +#define TkGradientButton 0x8001 +#define TkRoundedRectButton 0x8002 +#define TkRecessedButton 0x8003 +#define TkInlineButton 0x8004 +#define TkSidebarButton 0x8005 +/* + * The struct passed as clientData when drawing Ttk buttons. + */ + +typedef struct { + ThemeButtonKind kind; + ThemeMetric heightMetric; + ThemeMetric widthMetric; +} ThemeButtonParams; + +static ThemeButtonParams + PushButtonParams = {kThemePushButton, kThemeMetricPushButtonHeight, + NoThemeMetric}, + CheckBoxParams = {kThemeCheckBox, kThemeMetricCheckBoxHeight, + NoThemeMetric}, + RadioButtonParams = {kThemeRadioButton, kThemeMetricRadioButtonHeight, + NoThemeMetric}, + BevelButtonParams = {kThemeRoundedBevelButton, NoThemeMetric, NoThemeMetric}, + PopupButtonParams = {kThemePopupButton, kThemeMetricPopupButtonHeight, + NoThemeMetric}, + DisclosureParams = {kThemeDisclosureButton, + kThemeMetricDisclosureTriangleHeight, + kThemeMetricDisclosureTriangleWidth}, + DisclosureButtonParams = {kThemeArrowButton, + kThemeMetricSmallDisclosureButtonHeight, + kThemeMetricSmallDisclosureButtonWidth}, + HelpButtonParams = {kThemeRoundButtonHelp, kThemeMetricRoundButtonSize, + kThemeMetricRoundButtonSize}, + ListHeaderParams = {kThemeListHeaderButton, kThemeMetricListHeaderHeight, + NoThemeMetric}, + GradientButtonParams = {TkGradientButton, NoThemeMetric, NoThemeMetric}, + RoundedRectButtonParams = {TkRoundedRectButton, kThemeMetricPushButtonHeight, + NoThemeMetric}, + RecessedButtonParams = {TkRecessedButton, kThemeMetricPushButtonHeight, + NoThemeMetric}, + SidebarButtonParams = {TkSidebarButton, NoThemeMetric, NoThemeMetric}, + InlineButtonParams = {TkInlineButton, kThemeMetricPushButtonHeight, NoThemeMetric}; + + /* + * Others: kThemeDisclosureRight, kThemeDisclosureDown, + * kThemeDisclosureLeft + */ + +/* + * The struct passed as clientData when drawing Ttk Entry widgets. + */ + +typedef struct { + HIThemeFrameKind kind; + ThemeMetric heightMetric; + ThemeMetric widthMetric; +} ThemeFrameParams; + +static ThemeFrameParams + EntryFieldParams = {kHIThemeFrameTextFieldSquare, NoThemeMetric, NoThemeMetric}, + SearchboxFieldParams = {kHIThemeFrameTextFieldRound, NoThemeMetric, NoThemeMetric}; + +/* + * If we try to draw a rounded rectangle with too large of a radius, the Core + * Graphics library will sometimes raise a fatal exception. This macro + * protects against this by returning if the width or height is less than + * twice the radius. Presumably this only happens when a widget has not yet + * been configured and has size 1x1, so there is nothing to draw anyway. + */ + +#define CHECK_RADIUS(radius, bounds) \ + if ((radius) > (bounds).size.width / 2 || (radius) > (bounds).size.height / 2) { \ + return; \ + } + +/* + * The spinbox widget needs to draw the two arrows in different colors when + * one half or the other is being pressed, but the menubutton always draws + * them in the same color. This constant is used to distinguish those two + * situations. + */ + +#define BOTH_ARROWS 1 << 30 + +/* + * Local Variables: + * mode: objc + * c-basic-offset: 4 + * fill-column: 79 + * coding: utf-8 + * End: + */ |