diff options
Diffstat (limited to 'carbon')
59 files changed, 0 insertions, 55068 deletions
diff --git a/carbon/GNUmakefile b/carbon/GNUmakefile deleted file mode 100644 index 6a4e9b8..0000000 --- a/carbon/GNUmakefile +++ /dev/null @@ -1,314 +0,0 @@ -######################################################################################################## -# -# Makefile wrapper to build tk on Mac OS X in a way compatible with the tk/carbon Xcode buildsystem -# uses the standard unix build system in tk/unix (which can be used directly instead of this -# if you are not using the tk/carbon projects). -# -# Copyright (c) 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. -######################################################################################################## - -#------------------------------------------------------------------------------------------------------- -# customizable settings - -DESTDIR ?= -INSTALL_ROOT ?= ${DESTDIR} - -BUILD_DIR ?= ${CURDIR}/../../build -SYMROOT ?= ${BUILD_DIR}/${PROJECT} -OBJROOT ?= ${SYMROOT} - -EXTRA_CONFIGURE_ARGS ?= -EXTRA_MAKE_ARGS ?= - -INSTALL_PATH ?= /Library/Frameworks -APPLICATION_INSTALL_PATH ?= /Applications/Utilities -PREFIX ?= /usr/local -BINDIR ?= ${PREFIX}/bin -LIBDIR ?= ${INSTALL_PATH} -MANDIR ?= ${PREFIX}/man - -# tcl build directory (containing tclConfig.sh and Makefile) -TCL_BUILD_DIR ?= ${BUILD_DIR}/tcl/${BUILD_STYLE} -# location of installed tcl, only used if tcl in TCL_BUILD_DIR can't be found -TCL_FRAMEWORK_DIR ?= /Library/Frameworks -TCLSH_DIR ?= ${PREFIX} - -# set to non-empty value to install manpages in addition to html help: -INSTALL_MANPAGES ?= - -# set to non-empty value to build TkX11 instead of TkAqua: -TK_X11 ?= - -#------------------------------------------------------------------------------------------------------- -# meta targets - -meta := all install embedded install-embedded clean distclean test - -styles := develop deploy - -all := ${styles} -all : ${all} - -install := ${styles:%=install-%} -install : ${install} -install-%: action := install- - -embedded := ${styles:%=embedded-%} -embedded : embedded-deploy -install-embedded := ${embedded:%=install-%} -install-embedded : install-embedded-deploy - -clean := ${styles:%=clean-%} -clean : ${clean} -clean-%: action := clean- -distclean := ${styles:%=distclean-%} -distclean : ${distclean} -distclean-%: action := distclean- - -test := ${styles:%=test-%} -test : ${test} -test-%: action := test- - -targets := $(foreach v,${meta},${$v}) - -#------------------------------------------------------------------------------------------------------- -# build styles - -BUILD_STYLE = -CONFIGURE_ARGS = -OBJ_DIR = ${OBJROOT}/${BUILD_STYLE} - -empty := -space := ${empty} ${empty} -objdir = $(subst ${space},\ ,${OBJ_DIR}) - -develop_make_args := BUILD_STYLE=Development CONFIGURE_ARGS=--enable-symbols -deploy_make_args := BUILD_STYLE=Deployment INSTALL_TARGET=install-strip -embedded_make_args := EMBEDDED_BUILD=1 -install_make_args := INSTALL_BUILD=1 - -${targets}: - ${MAKE} ${action}${PROJECT} \ - $(foreach s,${styles} embedded install,$(if $(findstring $s,$@),${${s}_make_args})) - -#------------------------------------------------------------------------------------------------------- -# project specific settings - -PROJECT := tk -PRODUCT_NAME := Tk - -UNIX_DIR := ${CURDIR}/../unix -VERSION := $(shell awk -F= '/^TK_VERSION/ {print $$2; nextfile}' ${UNIX_DIR}/configure.in) -TCL_VERSION := ${VERSION} -wish := wish -WISH = wish${VERSION} - -BUILD_TARGET := all tktest -INSTALL_TARGET := install - -ifneq ($(wildcard $(subst ${space},\ ,${TCL_BUILD_DIR})/tclConfig.sh),) -TCL_DIR := ${TCL_BUILD_DIR} -TCL_FRAMEWORK_DIR := ${TCL_BUILD_DIR}/.. -MAKE_VARS := -else -TCL_DIR := ${TCL_FRAMEWORK_DIR}/Tcl.framework -TCL_EXE := ${TCLSH_DIR}/tclsh${TCL_VERSION} -MAKE_VARS := TCL_EXE -export DYLD_FRAMEWORK_PATH := ${TCL_FRAMEWORK_DIR} -endif - -export CPPROG := cp -p - -ifeq (${TK_X11},) -override CONFIGURE_ARGS := ${CONFIGURE_ARGS} --enable-aqua=carbon -else -override CONFIGURE_ARGS := ${CONFIGURE_ARGS} --enable-xft -VERSION := ${VERSION}-X11 -wish := ${wish}-X11 -override EMBEDDED_BUILD := -endif - -INSTALL_TARGETS = install-binaries install-libraries -ifeq (${EMBEDDED_BUILD},) -INSTALL_TARGETS += install-private-headers install-demos -endif -ifeq (${INSTALL_BUILD}_${EMBEDDED_BUILD}_${BUILD_STYLE},1__Deployment) -INSTALL_TARGETS += html-tk -ifneq (${INSTALL_MANPAGES},) -INSTALL_TARGETS += install-doc -endif -endif - -MAKE_VARS += INSTALL_ROOT INSTALL_TARGETS VERSION -MAKE_ARGS_V = $(foreach v,${MAKE_VARS},$v='${$v}') - -build-${PROJECT}: target = ${BUILD_TARGET} -install-${PROJECT}: target = ${INSTALL_TARGET} -clean-${PROJECT} distclean-${PROJECT} test-${PROJECT}: \ - target = $* - -DO_MAKE = +${MAKE} -C "${OBJ_DIR}" ${target} ${MAKE_ARGS_V} ${MAKE_ARGS} ${EXTRA_MAKE_ARGS} - -#------------------------------------------------------------------------------------------------------- -# locations for custom tk install actions - -ifeq (${INSTALL_BUILD},1) -TOP_DIR := ${INSTALL_ROOT}/ -APP_DIR := ${APPLICATION_INSTALL_PATH} -FMWK_DIR := ${LIBDIR} -else -TOP_DIR := ${SYMROOT} -APP_DIR := . -FMWK_DIR := . -endif - -TCL_FMWK_DIR := ${FMWK_DIR}/Tcl.framework/Versions/${TCL_VERSION} -TK_FMWK_DIR := ${FMWK_DIR}/${PRODUCT_NAME}.framework/Versions/${VERSION} - -#------------------------------------------------------------------------------------------------------- -# build rules - -${PROJECT}: - ${MAKE} install-${PROJECT} INSTALL_ROOT="${OBJ_DIR}/" - -${objdir}/Makefile: ${UNIX_DIR}/Makefile.in ${UNIX_DIR}/configure \ - ${UNIX_DIR}/tkConfig.sh.in Tk-Info.plist.in Wish-Info.plist.in - 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 \ - --with-tcl="${TCL_DIR}" \ - ${CONFIGURE_ARGS} ${EXTRA_CONFIGURE_ARGS}; else ./config.status; fi -ifneq (${VERSION},${TCL_VERSION}) - @cd "${OBJ_DIR}" && sed -e 's#/Versions/${TCL_VERSION}#/Versions/${VERSION}#' \ - tkConfig.sh > tkConfig.sh.1 && mv -f tkConfig.sh.1 tkConfig.sh -endif - -build-${PROJECT}: ${objdir}/Makefile - ${DO_MAKE} -ifeq (${INSTALL_BUILD},) -# symolic link hackery to trick -# 'make install INSTALL_ROOT=${OBJ_DIR}' -# into building Tk.framework and wish in ${SYMROOT} - @cd "${OBJ_DIR}" && mkdir -p $(dir $(subst ${space},\ ,./${LIBDIR})) $(dir $(subst ${space},\ ,./${BINDIR})) "${SYMROOT}" && \ - rm -rf "./${LIBDIR}" "./${BINDIR}" && ln -fs "${SYMROOT}" "./${LIBDIR}" && \ - ln -fs "${SYMROOT}" "./${BINDIR}" && ln -fs "${OBJ_DIR}/tktest" "${SYMROOT}" -ifeq (${TK_X11},) - @rm -f "${OBJ_DIR}/${BINDIR}" && \ - ln -fs Wish.app/Contents/MacOS/Wish "${SYMROOT}/${WISH}" -endif -# Create symbolic link to Tcl.framework in ${SYMROOT}if necessary - @cd "${SYMROOT}" && if [ ! -e Tcl.framework -o -L Tcl.framework ]; then \ - rm -f Tcl.framework && ln -s "${TCL_FRAMEWORK_DIR}/Tcl.framework" . ; fi -endif - -install-${PROJECT}: build-${PROJECT} -ifeq (${EMBEDDED_BUILD}_${INSTALL_ROOT},1_) - @echo "Cannot install-embedded with empty INSTALL_ROOT !" && false -endif -ifeq (${EMBEDDED_BUILD},1) - @rm -rf "${INSTALL_ROOT}/${LIBDIR}/Tk.framework" -endif - ${DO_MAKE} -ifeq (${EMBEDDED_BUILD}_${TK_X11},1_) -# workaround bug with 'cp -pRH' on Darwin 6 and earlier - @if [ "`uname -r | awk -F. '{print $$1}'`" -lt 7 ]; then \ - mkdir -p "${TOP_DIR}"/{"${TCL_FMWK_DIR}","${TK_FMWK_DIR}"}/PrivateHeaders; fi -endif -ifeq (${INSTALL_BUILD},1) -ifeq (${EMBEDDED_BUILD},1) -# if we are embedding frameworks, don't install wish - @rm -f "${INSTALL_ROOT}${BINDIR}/${WISH}" && \ - rmdir -p "${INSTALL_ROOT}${BINDIR}" 2>&- || true -else -# redo prebinding (when not building for Mac OS X 10.4 or later only) - @if [ "`echo "$${MACOSX_DEPLOYMENT_TARGET}" | \ - awk -F '10\\.' '{print int($$2)}'`" -lt 4 -a "`echo "$${CFLAGS}" | \ - awk -F '-mmacosx-version-min=10\\.' '{print int($$2)}'`" -lt 4 ]; \ - then cd ${INSTALL_ROOT}/; \ - if [ ! -d usr/lib ]; then mkdir -p usr && ln -fs /usr/lib usr/ && RM_USRLIB=1; fi; \ - if [ -n "${TK_X11}" -a ! -d usr/X11R6 ]; then mkdir -p usr && ln -fs /usr/X11R6 usr/ && RM_USRX11=1; fi; \ - if [ ! -d System ]; then ln -fs /System . && RM_SYSTEM=1; fi; \ - if [ ! -d "./${LIBDIR}/Tcl.framework" ]; then ln -fs "${TCL_FRAMEWORK_DIR}/Tcl.framework" "./${LIBDIR}"; RM_TCL=1; fi; \ - redo_prebinding -r . "./${TK_FMWK_DIR}/${PRODUCT_NAME}"; \ - if [ -z "${TK_X11}" ]; then redo_prebinding -r . "./${TK_FMWK_DIR}/Resources/Wish.app/Contents/MacOS/Wish"; \ - else redo_prebinding -r . "./${BINDIR}/${WISH}"; fi; \ - if [ -n "$${RM_USRLIB:-}" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi; \ - if [ -n "$${RM_USRX11:-}" ]; then rm -f usr/X11R6; rmdir -p usr 2>&-; fi; \ - if [ -n "$${RM_SYSTEM:-}" ]; then rm -f System; fi; \ - if [ -n "$${RM_TCL:-}" ]; then rm -f "./${LIBDIR}/Tcl.framework"; fi; fi -# install wish symbolic link - @ln -fs ${WISH} "${INSTALL_ROOT}${BINDIR}/${wish}" -endif -endif -ifeq (${BUILD_STYLE}_${EMBEDDED_BUILD},Development_) -# keep copy of debug library around, so that -# Deployment build can be installed on top -# of Development build without overwriting -# the debug library - @cd "${INSTALL_ROOT}${LIBDIR}/${PRODUCT_NAME}.framework/Versions/${VERSION}" && \ - ln -f "${PRODUCT_NAME}" "${PRODUCT_NAME}_debug" -endif -ifeq (${TK_X11},) -ifeq (${EMBEDDED_BUILD},) -# install Wish.app link in APPLICATION_INSTALL_PATH and setup 'Wish Shell' compatibility links - @cd "${TOP_DIR}" && if [ -n "${APP_DIR}" ]; then mkdir -p "./${APP_DIR}" && rm -rf "./${APP_DIR}/Wish.app" && \ - ln -fsh "./$$(echo "${APP_DIR}" | sed -e 's#/[^/][^/]*#/..#g')/${FMWK_DIR}/${PRODUCT_NAME}.framework/Resources/Wish.app" "./${APP_DIR}" && \ - ln -fsh Wish.app "./${APP_DIR}/Wish Shell.app"; fi && \ - ln -fsh Wish.app "./${TK_FMWK_DIR}/Resources/Wish Shell.app" && \ - ln -fsh Wish "./${TK_FMWK_DIR}/Resources/Wish.app/Contents/MacOS/Wish Shell" -else -# if we are embedding frameworks, move them into the app and fix their install names - @cd "${TOP_DIR}" && \ - rm -rf "./${APP_DIR}/Wish.app" && mkdir -p "./${APP_DIR}" && \ - mv -f "./${TK_FMWK_DIR}/Resources/Wish.app" "./${APP_DIR}" && \ - ln -fsh Wish.app "./${APP_DIR}/Wish Shell.app" && \ - rm -rf "./${APP_DIR}/Wish.app/Contents/Frameworks" && \ - mkdir -p "./${APP_DIR}/Wish.app/Contents/Frameworks" && \ - ${CPPROG} -RH "./${FMWK_DIR}"/T{cl,k}.framework "./${APP_DIR}/Wish.app/Contents/Frameworks" && \ - cd "./${APP_DIR}/Wish.app/Contents" && \ - rm -rf Frameworks/Tcl.framework/{,/Versions/${TCL_VERSION}}/{Headers,PrivateHeaders,*_debug,lib*.a,*Config.sh} && \ - rm -rf Frameworks/Tk.framework/{,/Versions/${VERSION}}/{Headers,PrivateHeaders,*_debug,lib*.a,*Config.sh} && \ - fix_install_id ( ) { \ - chmod -RH a+w "$$1"; \ - install_name_tool -id $$(otool -L "$$1" | awk "/$$2\.framework.*[^:]\$$/ {sub(\"^.*/Frameworks\",\"@executable_path/../Frameworks\",\$$1); print \$$1}") "$$1"; \ - chmod -RH a-w "$$1"; \ - } && \ - fix_install_name ( ) { \ - chmod -RH a+w "$$1"; \ - install_name_tool -change $$(otool -L "$$1" | awk "/$$2\.framework.*[^:]\$$/ {print \$$1; sub(\"^.*/Frameworks\",\"@executable_path/../Frameworks\",\$$1); print \$$1}") "$$1"; \ - chmod -RH a-w "$$1"; \ - } && \ - fix_install_id Frameworks/Tcl.framework/Tcl Tcl && fix_install_id Frameworks/Tk.framework/Tk Tk && \ - fix_install_name MacOS/Wish Tcl && fix_install_name MacOS/Wish Tk -ifeq (${INSTALL_BUILD},1) - @cd "${TOP_DIR}" && rm -rf "./${FMWK_DIR}"/T{cl,k}.framework && rmdir -p "./${FMWK_DIR}" 2>&- || true -endif -endif -endif - -clean-${PROJECT}: %-${PROJECT}: - ${DO_MAKE} - rm -rf "${SYMROOT}"/{${PRODUCT_NAME}.framework,${WISH},tktest} - rm -f "${OBJ_DIR}"{"${LIBDIR}","${BINDIR}"} && \ - rmdir -p "${OBJ_DIR}"$(dir $(subst ${space},\ ,${LIBDIR})) 2>&- || true && \ - rmdir -p "${OBJ_DIR}"$(dir $(subst ${space},\ ,${BINDIR})) 2>&- || true - -distclean-${PROJECT}: %-${PROJECT}: clean-${PROJECT} - ${DO_MAKE} - rm -rf "${OBJ_DIR}" - -test-${PROJECT}: %-${PROJECT}: build-${PROJECT} - ${DO_MAKE} - -#------------------------------------------------------------------------------------------------------- - -.PHONY: ${meta} ${targets} ${PROJECT} build-${PROJECT} install-${PROJECT} \ - clean-${PROJECT} distclean-${PROJECT} - -.NOTPARALLEL: - -#------------------------------------------------------------------------------------------------------- diff --git a/carbon/README b/carbon/README deleted file mode 100644 index 85452c4..0000000 --- a/carbon/README +++ /dev/null @@ -1,339 +0,0 @@ -Tcl/TkAqua Carbon Mac OS X README ---------------------------------- - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -! This is the README for tk/carbon, the legacy version of TkAqua based on the ! -! Carbon API. This version of TkAqua is deprecated and no longer actively ! -! supported, it will be removed in a future release of Tk. It is only useful ! -! for users requiring support of Mac OS X releases older than 10.5. ! -! The supported version of TkAqua is located in tk/macosx and is based on the ! -! Cocoa API. It requires Mac OS X 10.5 or later. ! -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -1. Where to go for support --------------------------- - -- The tcl-mac mailing list on sourceforge is the best place to ask questions -specific to Tcl & Tk on Mac OS X: - http://lists.sourceforge.net/lists/listinfo/tcl-mac -(this page also has a link to searchable archives of the list, please check them -before asking on the list, many questions have already been answered). - -- For general Tcl/Tk questions, the newsgroup comp.lang.tcl is your best bet: - http://groups.google.com/group/comp.lang.tcl/ - -- The Tcl'ers Wiki also has many pages dealing with Tcl & Tk on Mac OS X, see - http://wiki.tcl.tk/references/3753! - http://wiki.tcl.tk/references/8361! - -- Please report bugs with Tcl or Tk on Mac OS X to the sourceforge bug trackers: - Tcl: http://sf.net/tracker/?func=add&group_id=10894&atid=110894 - Tk: http://sf.net/tracker/?func=add&group_id=12997&atid=112997 -please make sure that your report Tk specific bugs to the tktoolkit project bug -tracker rather than the tcl project bug tracker. -Mac OS X specific bugs should usually be assigned to 'das' or 'wolfsuit'. - - -2. Using Tcl/Tk on Mac OS X ---------------------------- - -- There are two versions of Tk available on Mac OS X: TkAqua using the native -aqua widgets and look&feel, and TkX11 using the traditional unix X11 wigets. -TkX11 requires an X11 server to be installed, such as Apple's X11 (which is -available as an optional install on recent Mac OS X retail disks). -TkAqua and TkX11 can be distinguished at runtime via [tk windowingsystem]. - -- At a minimum, Mac OS X 10.1 is required to run Tcl and TkX11, and OS X 10.2 is -required to run TkAqua. However OS X 10.3 or higher is recommended (certain -[file] operations behave incorrectly on earlier releases). - -- Unless weak-linking is used, Tcl/Tk built on Mac OS X 10.x will not run on -10.y with y < x; on the other hand Tcl/Tk built on 10.y will always run on 10.x -with y <= x (but without any of the fixes and optimizations that would be -available in a binary built on 10.x). -Weak-linking is available on OS X 10.2 or later, it additionally allows Tcl/Tk -built on 10.x to run on any 10.y with x > y >= z (for a chosen z >= 2). - -- Wish checks the Resources/Scripts directory in its application bundle for a -file called AppMain.tcl, if found it is used as the startup script and the -Scripts folder is added to the auto_path. This can be used to emulate the old -OS9 TclTk droplets. - -- If standard input is a special file of zero length (e.g. /dev/null), Wish -brings up the Tk console window at startup. This is the case when double -clicking Wish in the Finder (or using 'open Wish.app' from the Terminal). - -- Tcl extensions can be installed in any of: - $HOME/Library/Tcl /Library/Tcl /Network/Library/Tcl /System/Library/Tcl - $HOME/Library/Frameworks /Library/Frameworks /Network/Library/Frameworks - /System/Library/Frameworks (searched in that order). -Given a potential package directory $pkg, Tcl on OSX checks for the file -$pkg/Resources/Scripts/pkgIndex.tcl as well as the usual $pkg/pkgIndex.tcl. -This allows building extensions as frameworks with all script files contained in -the Resources/Scripts directory of the framework. - -- [load]able binary extensions can linked as either ordinary shared libraries -(.dylib) or as MachO bundles (since 8.4.10/8.5a3); only bundles can be unloaded, -and bundles are also loaded more efficiently from VFS (no temporary copy to the -native filesystem required). - -- The 'deploy' target of carbon/GNUmakefile installs the html manpages into the -standard documentation location in the Tcl/Tk frameworks: - Tcl.framework/Resources/Documentation/Reference/Tcl - Tk.framework/Resources/Documentation/Reference/Tk -No nroff manpages are installed by default by the GNUmakefiles. - -- The Tcl and Tk frameworks can be installed in any of the system's standard -framework directories: - $HOME/Library/Frameworks /Library/Frameworks - /Network/Library/Frameworks /System/Library/Frameworks - -- /usr/bin/wish8.x is a script that calls a copy of 'Wish' contained in - Tk.framework/Resources - -- if 'Wish' is started from the Finder or via 'open', $argv contains a -"-psn_XXXX" argument. This is the Wish's carbon process serial number, you may -need to filter it out for cross platform compatibility of your scripts. - -- the env array is different when Wish is started from the Finder (i.e. via -LaunchServices) than when it (or tclsh) is invoked from the Terminal, in -particular PATH may not be what you expect. (Wish started by LaunchServices -inherits loginwindow's environment variables, which are essentially those set in -$HOME/.MacOSX/environment.plist, and are unrelated to those set in your shell). - -- As of Tk 8.4.7, TkAqua has a version of the low-level drawing primitives using -the CoreGraphics routines - the code is primarily due to James Tittle. There -were numerous problems with the QD version, mostly due to the different drawing -model of QD & Tk. CG also trivially supports dashed lines, and the various end -caps & miters. The old QD code is retained for now, just in case there are any -compatibility problems. To switch back to the QD drawing, put - set tk::mac::useCGDrawing 0 -in your script before you do drawing. -All CG drawing is antialiased by default, but (outline) linewidth can be used to -control whether a line/shape is drawn antialiased. The antialiasing threshold is -0 by default (i.e. antialias everything), it can be changed by setting - set tk::mac::CGAntialiasLimit <limit> -in your script before drawing, in which case lines (or shapes with outlines) -thinner than <limit> pixels will not be antialiased. - -- ATSUI text antialiasing by default uses the standard OS antialising settings. -Setting the global variable '::tk::mac::antialiasedtext' allows to control text -antialiasing from Tcl: a value of 1 enables AA, 0 disables AA and -1 restores -the default behaviour of respecting the OS settings. - -- Scrollbars: There are two scrollbar variants in Aqua, normal & small. The -normal scrollbar has a small dimension of 15, the small variant 11. Access to -the small variant was added in Tk 8.4.2. - -- Cursors: You can now put up and spin the Classic MacOS spinner, and the -counting hands and watch cursor. The way this is done is each of the spinners -have a base name: - spinning: The circular B&W circular spinner - countinguphand: The counting up hand - countingdownhand: The counting down hand - countingupanddownhand: The counting up then down hand - watch: The watch cursor -Then to get the sequential variants, add an integer to the end of the base name. -So, for instance this code will spin the spinner: - proc spinCursor {widget count} { - $widget configure -cursor spinning$count - after 100 spinCursor [incr count] - } -This was added in Tk 8.4.2 - -- If you want to use Remote Debugging with Xcode 1.5 or 2.2, you need to set the -environment variable XCNOSTDIN to 1 in the Executable editor for Wish. That will -cause us to force closing stdin & stdout. Otherwise, given how Xcode launches -Wish remotely, they will be left open and then Wish & gdb will fight for stdin. - - -3. Building Tcl/Tk on Mac OS X ------------------------------- - -- At least Mac OS X 10.1 is required to build Tcl and TkX11 and OS X 10.2 is -required to build TkAqua. Apple's Developer Tools need to be installed (only the -most recent version matching your OS release is supported). The Developer Tools -installer is available on Mac OS X retail disks or is present in -/Applications/Installers on Macs that came with OS X preinstalled. The most -recent version can be downloaded from the ADC website http://connect.apple.com -(after you register for free ADC membership). - -- Tcl/Tk are most easily built as Mac OS X frameworks via GNUmakefile in -tcl/macosx and tk/carbon (see below for details), but can also be built with the -standard unix configure and make buildsystem in tcl/unix resp. tk/unix as on any -other unix platform (indeed, the GNUmakefiles are just wrappers around the unix -buildsystem). -The Mac OS X specific configure flags are --enable-aqua, --enable-framework and ---disable-corefoundation (which disables CF and notably reverts to the standard -select based notifier). Note that --enable-aqua is incompatible with ---disable-corefoundation (for both Tcl and Tk configure). - -- It is also possible to build with Apple's IDE via the projects in tk/carbon, -take care to only use the project matching your DevTools and OS version: - * Wish.xcode for Xcode 2.4 on 10.4 and Xcode 2.5 on 10.4 and later, this has - a 'Tk' target that simply calls through to the tcl/macosx/GNUMakefile. - It requires a build of the 'Tcl' target of tcl/macosx/Tcl.xcode. - Additionally this has native 'tktest' and 'tktest-X11' targets for - debugging, these targets' 'Debug' build configuration has ZeroLink and - Fix&Continue enabled, use the 'DebugNoFixZL' build configuration if you - need a debug build without these features. The following build - configurations are available: - 'DebugUnthreaded': debug build with threading turned off. - 'DebugNoCF': debug build with corefoundation turned off - (for 'tktest-X11' only). - 'DebugNoCFUnthreaded': debug build with corefoundation turned off - (for 'tktest-X11' only) and with threading turned off. - 'DebugMemCompile': debug build with memory and bytecode debugging on. - 'DebugLeaks': debug build with PURIFY defined. - 'DebugGCov': debug build with generation of gcov data files enabled. - 'ReleaseUniversal': builds the targets as universal binaries for the - ppc and i386 architectures. - 'ReleaseUniversal10.4uSDK': same as 'ReleaseUniversal' but builds - against the 10.4u SDK, required to build universal binaries on - PowerPC Tiger (where the system libraries are not universal). - 'ReleasePPC10.3.9SDK': builds for PowerPC against the 10.3.9 SDK, useful - for verifying on Tiger that building on Panther would succeed. - 'ReleasePPC10.2.8SDK': builds for PowerPC with gcc-3.3 against the - 10.2.8 SDK, useful to verify on Tiger that building on Jaguar - would succeed. - * Wish.xcodeproj for Xcode 3.1 on 10.5 and later, which has the following - additional build configurations: - 'ReleaseUniversal10.5SDK': same as 'ReleaseUniversal' but builds - against the 10.5 SDK on Leopard (with 10.5 deployment target). - 'Debug gcc42': same as 'Debug' but builds with gcc 4.2. - 'Debug llvmgcc42': same as 'Debug' but builds with llvm-gcc 4.2. - 'ReleaseUniversal gcc42': same as 'ReleaseUniversal' but builds with - gcc 4.2. - 'ReleaseUniversal llvmgcc42': same as 'ReleaseUniversal' but builds - with llvm-gcc 4.2. - 'Debug64bit': builds the 'tktest-X11' target as 64bit with debugging - enabled (requires a 64bit capable processor). - Note that all non-SDK configurations have 10.5 deployment target and - that all Universal configurations build the 'tktest-X11' target - also for the ppc64 and x86_64 architectures. - -Notes about the native targets of the Xcode projects: - * the Xcode projects refer to the toplevel tcl and tk source dirs through - 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.5', you'll - need to manually change the TCL_SRCROOT and TK_SRCROOT settings by - editing your ${USER}.pbxuser file (located inside the Wish.xcodeproj - bundle directory) with a text editor. - * the native targets need a version of the unix configure scripts with config - headers enabled, this is automatically generated as tcl/macosx/configure - and tk/carbon/configure by the project but that requires 2.59 versions - of autoconf & autoheader. These are not available on Mac OS X 10.5 by - default and need to be installed manually. By default they are assumed - to be installed as /usr/local/bin/autoconf-2.59 and - /usr/local/bin/autoheader-2.59, set the AUTOCONF and AUTOHEADER build - settings in ${USER}.pbxuser to their true locations if necessary. - -- To build universal binaries outside of Wish.xcodeproj, set CFLAGS as follows: - export CFLAGS="-arch ppc -arch i386 \ - -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4" -This requires Mac OS X 10.4 and Xcode 2.2 (_not_ Xcode 2.1) and will work on any -of the architectures (the -isysroot flag is only required on PowerPC Tiger). -Note that configure requires CFLAGS to contain a least one architecture that can -be run on the build machine (i.e. ppc on PowerPC, ppc or i386 on Intel). -Universal builds of Tk TEA extensions are also possible with CFLAGS set as -above, they will be [load]able by universal as well as thin binaries of Tk. -Note that while Tcl can be built for 64-bit architectures, neither TkAqua nor -TkX11 can be built for 64-bit as the corresponding GUI libraries are not -available for 64bit at present. However, linking a universal 'ppc i386' Tk -binary against a universal 'ppc ppc64 i386 x86_64' Tcl binary works just fine. -The Tk configure script automatically removes the 64-bit -arch flags from CFLAGS -to facilitate universal building of both Tcl and Tk with the same CFLAGS; the -same happens with configure in Tk extensions based on TEA 3.5 or later. - -- To enable weak-linking, set the MACOSX_DEPLOYMENT_TARGET environment variable -to the minimal OS version (>= 10.2) the binaries should be able to run on, e.g: - export MACOSX_DEPLOYMENT_TARGET=10.2 -This requires Mac OS X 10.2 and gcc 3.1; if you have gcc 4 or later you can set -CFLAGS instead: - export CFLAGS="-mmacosx-version-min=10.2" -The Wish.xcode project is setup to produce binaries that can run on 10.2 or -later (except for the Universal and SDK configurations). -Support for weak-linking was added to the code for 8.4.14/8.5a5. - -Detailed Instructions for building with carbon/GNUmakefile ----------------------------------------------------------- - -- Unpack the Tcl and Tk source release archives and place the tcl and tk source -trees in a common parent directory. -[ If you don't want have the two source trees in one directory, you'll need to ] -[ create the following symbolic link for the build to work as setup by default ] -[ ln -fs /path_to_tcl/build /path_to_tk/build ] -[ (where /path_to_{tcl,tk} is the directory containing the tcl resp. tk tree) ] -[ or you can pass an argument of BUILD_DIR=/somewhere to the tcl and tk make. ] - -- The following instructions assume the Tcl and Tk source trees are named -"tcl${ver}" and "tk${ver}", respectively, where ${ver} is a shell variable -containing the Tcl and Tk version number (for example '8.4.12'). -Setup the shell variable as follows: - set ver="8.4.12" ;: if your shell is csh - ver="8.4.12" ;: if your shell is sh -The source trees will be named this way only if you are building from a release -archive, if you are building from CVS, the version numbers will be missing; so -set ${ver} to the empty string instead: - set ver="" ;: if your shell is csh - ver="" ;: if your shell is sh - -- The following steps will build Tcl and Tk from the Terminal, assuming you are -located in the directory containing the tcl and tk source trees: - make -C tcl${ver}/macosx - make -C tk${ver}/carbon -and the following will then install Tcl and Tk onto the root volume (admin -password required): - sudo make -C tcl${ver}/macosx install - sudo make -C tk${ver}/carbon install -if you don't have the admin password, you can install into your home directory, -instead by passing an INSTALL_ROOT argument to make: - make -C tcl${ver}/macosx install INSTALL_ROOT="${HOME}/" - make -C tk${ver}/carbon install INSTALL_ROOT="${HOME}/" - -- The default GNUmakefile targets will build _both_ debug and optimized versions -of the Tcl and Tk frameworks with the standard convention of naming the debug -library Tcl.framework/Tcl_debug resp. Tk.framework/Tk_debug. -This allows switching to the debug libraries at runtime by setting - export DYLD_IMAGE_SUFFIX=_debug -(c.f. man dyld for more details) - -If you only want to build and install the debug or optimized build, use the -'develop' or 'deploy' target variants of the GNUmakefiles, respectively. -For example, to build and install only the optimized versions: - make -C tcl${ver}/macosx deploy - make -C tk${ver}/carbon deploy - sudo make -C tcl${ver}/macosx install-deploy - sudo make -C tk${ver}/carbon install-deploy - -- The GNUmakefiles can also build a version of 'Wish' that has the Tcl and Tk -frameworks embedded in its application package. This allows for standalone -deployment of the application with no installation required, e.g. from read-only -media. To build & install in this manner, use the 'embedded' target variants of -the GNUmakefiles. For example, to build a standalone 'Wish.app' -in ./embedded/Applications/Utilities: - make -C tcl${ver}/macosx embedded - make -C tk${ver}/carbon embedded - sudo make -C tcl${ver}/macosx install-embedded INSTALL_ROOT=`pwd`/embedded/ - sudo make -C tk${ver}/carbon install-embedded INSTALL_ROOT=`pwd`/embedded/ -Notes: - * if you've already built standard TclTkAqua, building embedded does not - require any new compiling or linking, so you can skip the first two makes. - (making relinking unnecessary was added in 8.4.2) - * the embedded frameworks include only optimized builds and no documentation. - * the standalone Wish has the directory Wish.app/Contents/lib in its - auto_path. Thus you can place tcl extensions in this directory (i.e. embed - them in the app package) and load them with [package require]. - -- It is possible to build Tk against an installed Tcl.framework; but you will -still need a tcl sourcetree in the location specified in TCL_SRC_DIR in -Tcl.framework/tclConfig.sh. Also, linking with Tcl.framework has to work exactly -as indicated in TCL_LIB_SPEC in Tcl.framework/tclConfig.sh. -If you used non-default install locations for Tcl.framework, specify them as -make overrides to the tk/carbon GNUmakefile, e.g. - make -C tk${ver}/carbon \ - TCL_FRAMEWORK_DIR=$HOME/Library/Frameworks TCLSH_DIR=$HOME/usr/bin - sudo make -C tk${ver}/carbon install \ - TCL_FRAMEWORK_DIR=$HOME/Library/Frameworks TCLSH_DIR=$HOME/usr/bin -The Makefile variables TCL_FRAMEWORK_DIR and TCLSH_DIR were added in Tk 8.4.3. diff --git a/carbon/Tk-Info.plist.in b/carbon/Tk-Info.plist.in deleted file mode 100644 index 1705a98..0000000 --- a/carbon/Tk-Info.plist.in +++ /dev/null @@ -1,36 +0,0 @@ -<?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-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. ---> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleExecutable</key> - <string>@TK_LIB_FILE@</string> - <key>CFBundleGetInfoString</key> - <string>Tk @TK_WINDOWINGSYSTEM@ @TK_VERSION@@TK_PATCH_LEVEL@, -Copyright © 1989-@TK_YEAR@ Tcl Core Team, -Copyright © 2002-@TK_YEAR@ Daniel A. Steffen, -Copyright © 2001-2002 Apple Inc., -Copyright © 2001-2002 Jim Ingham & Ian Reid</string> - <key>CFBundleIdentifier</key> - <string>com.tcltk.tklibrary</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>Tk @TK_WINDOWINGSYSTEM@ @TK_VERSION@</string> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>@TK_VERSION@@TK_PATCH_LEVEL@</string> - <key>CFBundleSignature</key> - <string>Tk </string> - <key>CFBundleVersion</key> - <string>@TK_VERSION@@TK_PATCH_LEVEL@</string> -</dict> -</plist> diff --git a/carbon/Wish-Common.xcconfig b/carbon/Wish-Common.xcconfig deleted file mode 100644 index 0c0ddc0..0000000 --- a/carbon/Wish-Common.xcconfig +++ /dev/null @@ -1,48 +0,0 @@ -// -// Wish-Common.xcconfig -- -// -// This file contains the Xcode build settings comon to all -// project configurations in Wish.xcodeproj. -// -// Copyright (c) 2007-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. - -HEADER_SEARCH_PATHS = $(TK_SRCROOT)/generic $(TK_SRCROOT)/xlib "$(DERIVED_FILE_DIR)/tcl" "$(DERIVED_FILE_DIR)/tk" $(HEADER_SEARCH_PATHS) -REZ_SEARCH_PATHS = $(TK_SRCROOT)/generic $(TCL_SRCROOT)/generic $(REZ_SEARCH_PATHS) -OTHER_LDFLAGS = -headerpad_max_install_names -sectcreate __TEXT __info_plist "$(DERIVED_FILE_DIR)/tk/Wish-Info.plist" $(OTHER_LDFLAGS) -OTHER_LDFLAGS_AQUA = -sectcreate __TEXT __tk_rsrc "$(REZ_COLLECTOR_DIR)/$(PRODUCT_NAME).rsrc" -INSTALL_PATH = $(APPLICATION_INSTALL_PATH) -INSTALL_MODE_FLAG = go-w,a+rX -GCC_PREFIX_HEADER = $(DERIVED_FILE_DIR)/tk/tkConfig.h -OTHER_CFLAGS = -imacros "$(DERIVED_FILE_DIR)/tcl/tclConfig.h" $(OTHER_CFLAGS) -GCC_GENERATE_DEBUGGING_SYMBOLS = YES -GCC_NO_COMMON_BLOCKS = YES -GCC_DYNAMIC_NO_PIC = YES -GCC = $(DEVELOPER_DIR)/usr/bin/gcc -GCC_VERSION = 4.0 -CC = $(GCC)-$(GCC_VERSION) -LD = $(CC) -WARNING_CFLAGS_GCC3 = -Wall -Wno-unused-parameter -Wno-deprecated-declarations -WARNING_CFLAGS = -Wextra -Wno-missing-field-initializers -Winit-self -Wpointer-arith -Wcast-align -Wdisabled-optimization -Winline $(WARNING_CFLAGS_GCC3) $(WARNING_CFLAGS) -REZ_RESOURCE_MAP_READ_ONLY = YES -APPLICATION_INSTALL_PATH = /Applications/Utilities -BINDIR = $(PREFIX)/bin -CFLAGS = $(CFLAGS) -CPPFLAGS = -mmacosx-version-min=$(MACOSX_DEPLOYMENT_TARGET) $(CPPFLAGS) -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_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 TCL_NO_DEPRECATED -VERSION = 8.6 diff --git a/carbon/Wish-Debug.xcconfig b/carbon/Wish-Debug.xcconfig deleted file mode 100644 index 09def97..0000000 --- a/carbon/Wish-Debug.xcconfig +++ /dev/null @@ -1,19 +0,0 @@ -// -// Wish-Debug.xcconfig -- -// -// 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> -// -// See the file "license.terms" for information on usage and redistribution -// of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -#include "Wish-Common.xcconfig" - -DEBUG_INFORMATION_FORMAT = dwarf -DEPLOYMENT_POSTPROCESSING = NO -GCC_OPTIMIZATION_LEVEL = 0 -GCC_PREPROCESSOR_DEFINITIONS = DEBUGLEVEL=4 $(TCL_DEFS) $(TK_DEFS) $(GCC_PREPROCESSOR_DEFINITIONS) -CONFIGURE_ARGS = --enable-symbols $(TCL_CONFIGURE_ARGS) $(CONFIGURE_ARGS) -MAKE_TARGET = develop diff --git a/carbon/Wish-Info.plist.in b/carbon/Wish-Info.plist.in deleted file mode 100644 index 85b0b08..0000000 --- a/carbon/Wish-Info.plist.in +++ /dev/null @@ -1,73 +0,0 @@ -<?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-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. ---> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>English</string> - <key>CFBundleDocumentTypes</key> - <array> - <dict> - <key>CFBundleTypeExtensions</key> - <array> - <string>tcl</string> - <string>TCL</string> - <string>*</string> - </array> - <key>CFBundleTypeMIMETypes</key> - <array> - <string>application/x-tcl</string> - <string>text/plain</string> - </array> - <key>CFBundleTypeName</key> - <string>NSStringPboardType</string> - <key>CFBundleTypeOSTypes</key> - <array> - <string>TEXT</string> - <string>****</string> - </array> - <key>CFBundleTypeRole</key> - <string>Viewer</string> - </dict> - </array> - <key>CFBundleExecutable</key> - <string>Wish</string> - <key>CFBundleGetInfoString</key> - <string>Wish Shell @TK_VERSION@@TK_PATCH_LEVEL@, -Copyright © 1989-@TK_YEAR@ Tcl Core Team, -Copyright © 2002-@TK_YEAR@ Daniel A. Steffen, -Copyright © 2001-2002 Apple Inc., -Copyright © 2001-2002 Jim Ingham & Ian Reid</string> - <key>CFBundleIconFile</key> - <string>Wish.icns</string> - <key>CFBundleIdentifier</key> - <string>com.tcltk.wish</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleLocalizations</key> - <array> - @CFBUNDLELOCALIZATIONS@ - </array> - <key>CFBundleName</key> - <string>Wish</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleShortVersionString</key> - <string>@TK_VERSION@@TK_PATCH_LEVEL@</string> - <key>CFBundleSignature</key> - <string>WiSH</string> - <key>CFBundleVersion</key> - <string>@TK_VERSION@@TK_PATCH_LEVEL@</string> - <key>LSMinimumSystemVersion</key> - <string>10.2.0</string> - <key>LSRequiresCarbon</key> - <true/> - <key>NSAppleScriptEnabled</key> - <true/> -</dict> -</plist> diff --git a/carbon/Wish-Release.xcconfig b/carbon/Wish-Release.xcconfig deleted file mode 100644 index d843341..0000000 --- a/carbon/Wish-Release.xcconfig +++ /dev/null @@ -1,19 +0,0 @@ -// -// Wish-Release.xcconfig -- -// -// 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> -// -// See the file "license.terms" for information on usage and redistribution -// of this file, and for a DISCLAIMER OF ALL WARRANTIES. - -#include "Wish-Common.xcconfig" - -DEBUG_INFORMATION_FORMAT = dwarf-with-dsym -// DEPLOYMENT_POSTPROCESSING = YES -GCC_OPTIMIZATION_LEVEL = s -GCC_PREPROCESSOR_DEFINITIONS = NDEBUG $(TCL_DEFS) $(TK_DEFS) $(GCC_PREPROCESSOR_DEFINITIONS) -CONFIGURE_ARGS = --disable-symbols $(TCL_CONFIGURE_ARGS) $(CONFIGURE_ARGS) -MAKE_TARGET = deploy diff --git a/carbon/Wish.icns b/carbon/Wish.icns Binary files differdeleted file mode 100644 index 060bfbd..0000000 --- a/carbon/Wish.icns +++ /dev/null diff --git a/carbon/Wish.xcode/default.pbxuser b/carbon/Wish.xcode/default.pbxuser deleted file mode 100644 index c832f6b..0000000 --- a/carbon/Wish.xcode/default.pbxuser +++ /dev/null @@ -1,337 +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 = <040b747970656473747265616d8103e88401408484840e4e534d757461626c654172726179008484074e534172726179008484084e534f626a65637400858401690192848484134e534d757461626c6544696374696f6e6172790084840c4e5344696374696f6e6172790095960792848484084e53537472696e67019584012b146162736f6c75746550617468546f42756e646c658692849a9a008692849a9a046e616d658692849a9a14496d706c656d656e746174696f6e2046696c65738692849a9a03636c7a8692849a9a1550425846696c656e616d65536d61727447726f75708692849a9a0b6465736372697074696f6e8692849a9a103c6e6f206465736372697074696f6e3e8692849a9a08676c6f62616c49448692849a9a183143433045413430303433353045463930303434343130428692849a9a195042585472616e7369656e744c6f636174696f6e4174546f708692849a9a06626f74746f6d8692849a9a0b707265666572656e63657386928497960892849a9a1250425850726f6a65637453636f70654b65798692849a9a035945538692849a9a05696d6167658692849a9a0b536d617274466f6c6465728692849a9a0763616e536176658692848484084e534e756d626572008484074e5356616c7565009584012a849696018692849a9a0572656765788692849a9a065c2e286329248692849a9a04726f6f748692849a9a093c50524f4a4543543e8692849a9a097265637572736976658692ad92849a9a0669734c656166869284ae9db096008692849a9a07666e6d617463688692849a9a0086868686>; - }; - sourceControlManager = F944EB9C08F798180049FDD4 /* Source Control */; - userBuildSettings = { - GCC = "${DEVELOPER_DIR}/usr/bin/gcc"; - SYMROOT = "${SRCROOT}/../../build/tk"; - TCL_SRCROOT = "${SRCROOT}/../../tcl"; - TK_SRCROOT = "${SRCROOT}/../../tk"; - }; - }; - 8DD76FA90486AB0100D96B5E /* tktest */ = { - activeExec = 0; - executables = ( - F944EB8F08F798100049FDD4 /* tktest */, - ); - }; - F944EB8F08F798100049FDD4 /* tktest */ = { - isa = PBXExecutable; - activeArgIndex = 0; - 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; - 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 = NO; - name = DYLD_PRINT_LIBRARIES; - }, - { - active = NO; - name = EventDebug; - value = 1; - }, - { - 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; - sourceDirectories = ( - ); - }; - F944EB9C08F798180049FDD4 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - CVSToolPath = /usr/bin/cvs; - CVSUseSSH = NO; - SubversionToolPath = /usr/local/bin/svn; - }; - scmType = scm.cvs; - }; - F944EB9D08F798180049FDD4 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - F9E61D16090A3E94002B3151 /* Tk */ = { - activeExec = 0; - executables = ( - F9E61D1C090A4282002B3151 /* Wish */, - ); - }; - F9E61D1C090A4282002B3151 /* Wish */ = { - isa = PBXExecutable; - activeArgIndex = 0; - activeArgIndices = ( - YES, - ); - argumentStrings = ( - "${TK_SRCROOT}/library/demos/widget", - ); - autoAttachOnCrash = 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 = ( - ); - }; - F97258A50A86873C00096C78 /* tktest-X11 */ = { - activeExec = 0; - executables = ( - F9FD31F50CC1AD070073837D /* tktest-X11 */, - ); - }; - F9FD31F50CC1AD070073837D /* tktest-X11 */ = { - isa = PBXExecutable; - activeArgIndex = 0; - 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; - 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/carbon/Wish.xcode/project.pbxproj b/carbon/Wish.xcode/project.pbxproj deleted file mode 100644 index 8fe9214..0000000 --- a/carbon/Wish.xcode/project.pbxproj +++ /dev/null @@ -1,5514 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 42; - 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 */; }; - 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 */; }; - F966BEDD08F27A40005CB29B /* tkMacOSXCarbonEvents.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.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 */; }; - 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 */; }; - 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 */; }; - F9EA4AF008FA3BD500B1F5F0 /* tkMacOSXXCursors.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.r */; }; - F9EA4AF208FA3BD800B1F5F0 /* tkMacOSXCursors.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */; }; - F9EA4AF308FA3BDA00B1F5F0 /* tkMacOSXAETE.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */; }; - F9EA4AF408FA3BDB00B1F5F0 /* tkAboutDlg.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBC108F27A3B005CB29B /* tkAboutDlg.r */; }; - 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 */; }; - 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 */; }; - 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 */; }; - F9FD32060CC1ADB70073837D /* tkUnixDialog.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7F08F27A3D005CB29B /* tkUnixDialog.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>"; }; - F91DC23D0E44C530002CB8D1 /* unsupported.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = unsupported.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>"; }; - F92D7F140DE777670033A13A /* tsdPerf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tsdPerf.c; 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>"; }; - F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIORTrans.c; 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>"; }; - F966BA9908F27A38005CB29B /* tk4.0.ps */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = tk4.0.ps; 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>"; }; - F966BBC108F27A3B005CB29B /* tkAboutDlg.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = tkAboutDlg.r; sourceTree = "<group>"; }; - F966BBC208F27A3B005CB29B /* tkMacOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSX.h; sourceTree = "<group>"; }; - F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXAETE.r; sourceTree = "<group>"; }; - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXBitmap.c; sourceTree = "<group>"; }; - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXButton.c; sourceTree = "<group>"; }; - F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXCarbonEvents.c; sourceTree = "<group>"; }; - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXClipboard.c; sourceTree = "<group>"; }; - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXColor.c; sourceTree = "<group>"; }; - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXConfig.c; sourceTree = "<group>"; }; - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXCursor.c; sourceTree = "<group>"; }; - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXCursors.r; sourceTree = "<group>"; }; - F966BBCD08F27A3B005CB29B /* tkMacOSXDebug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXDialog.c; sourceTree = "<group>"; }; - F966BBD108F27A3B005CB29B /* tkMacOSXDraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXDraw.c; sourceTree = "<group>"; }; - F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXEmbed.c; sourceTree = "<group>"; }; - F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXEntry.c; sourceTree = "<group>"; }; - F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXFont.c; sourceTree = "<group>"; }; - F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXHLEvents.c; sourceTree = "<group>"; }; - F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyboard.c; sourceTree = "<group>"; }; - F966BBDC08F27A3B005CB29B /* tkMacOSXKeyEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyEvent.c; sourceTree = "<group>"; }; - F966BBDD08F27A3B005CB29B /* tkMacOSXMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenu.c; sourceTree = "<group>"; }; - F966BBE008F27A3B005CB29B /* tkMacOSXMenubutton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenubutton.c; sourceTree = "<group>"; }; - F966BBE108F27A3B005CB29B /* tkMacOSXMenus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenus.c; sourceTree = "<group>"; }; - F966BBE208F27A3B005CB29B /* tkMacOSXMouseEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMouseEvent.c; sourceTree = "<group>"; }; - F966BBE308F27A3B005CB29B /* tkMacOSXNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXRegion.c; sourceTree = "<group>"; }; - F966BBEC08F27A3C005CB29B /* tkMacOSXScale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXScale.c; sourceTree = "<group>"; }; - F966BBED08F27A3C005CB29B /* tkMacOSXScrlbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXScrlbr.c; sourceTree = "<group>"; }; - F966BBEE08F27A3C005CB29B /* tkMacOSXSend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXSend.c; sourceTree = "<group>"; }; - F966BBEF08F27A3C005CB29B /* tkMacOSXSubwindows.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXSubwindows.c; sourceTree = "<group>"; }; - F966BBF008F27A3C005CB29B /* tkMacOSXTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXTest.c; sourceTree = "<group>"; }; - F966BBF108F27A3C005CB29B /* tkMacOSXWindowEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXWindowEvent.c; sourceTree = "<group>"; }; - F966BBF208F27A3C005CB29B /* tkMacOSXWm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXWm.c; sourceTree = "<group>"; }; - F966BBF308F27A3C005CB29B /* tkMacOSXWm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXWm.h; sourceTree = "<group>"; }; - F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXXCursors.r; sourceTree = "<group>"; }; - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXXStubs.c; sourceTree = "<group>"; }; - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = "Wish-Info.plist.in"; sourceTree = "<group>"; }; - F966BBF808F27A3C005CB29B /* Wish.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Wish.icns; 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>"; }; - F966BC7F08F27A3D005CB29B /* tkUnixDialog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixDialog.c; 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>"; }; - F966BC9808F27A3E005CB29B /* makefile.bc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.bc; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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 /* CrtSlave.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtSlave.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>"; }; - F96D425F08F272B3004A47F5 /* bn.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = bn.pdf; sourceTree = "<group>"; }; - F96D426108F272B3004A47F5 /* bn_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_error.c; sourceTree = "<group>"; }; - F96D426208F272B3004A47F5 /* bn_fast_mp_invmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_mp_invmod.c; sourceTree = "<group>"; }; - F96D426308F272B3004A47F5 /* bn_fast_mp_montgomery_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_mp_montgomery_reduce.c; 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>"; }; - F96D426508F272B3004A47F5 /* bn_fast_s_mp_mul_high_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_s_mp_mul_high_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>"; }; - F96D426708F272B3004A47F5 /* bn_mp_2expt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_2expt.c; sourceTree = "<group>"; }; - F96D426808F272B3004A47F5 /* bn_mp_abs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_abs.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>"; }; - F96D426B08F272B3004A47F5 /* bn_mp_addmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_addmod.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>"; }; - F96D427308F272B3004A47F5 /* bn_mp_cnt_lsb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_cnt_lsb.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>"; }; - F96D427B08F272B3004A47F5 /* bn_mp_dr_is_modulus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_is_modulus.c; sourceTree = "<group>"; }; - F96D427C08F272B3004A47F5 /* bn_mp_dr_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_reduce.c; sourceTree = "<group>"; }; - F96D427D08F272B3004A47F5 /* bn_mp_dr_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_setup.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>"; }; - F96D428008F272B3004A47F5 /* bn_mp_exptmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exptmod.c; sourceTree = "<group>"; }; - F96D428108F272B3004A47F5 /* bn_mp_exptmod_fast.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exptmod_fast.c; sourceTree = "<group>"; }; - F96D428208F272B3004A47F5 /* bn_mp_exteuclid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exteuclid.c; sourceTree = "<group>"; }; - F96D428308F272B3004A47F5 /* bn_mp_fread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_fread.c; sourceTree = "<group>"; }; - F96D428408F272B3004A47F5 /* bn_mp_fwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_fwrite.c; sourceTree = "<group>"; }; - F96D428508F272B3004A47F5 /* bn_mp_gcd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_gcd.c; sourceTree = "<group>"; }; - F96D428608F272B3004A47F5 /* bn_mp_get_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_get_int.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>"; }; - F96D428C08F272B3004A47F5 /* bn_mp_init_set_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_set_int.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>"; }; - F96D428E08F272B3004A47F5 /* bn_mp_invmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_invmod.c; sourceTree = "<group>"; }; - F96D428F08F272B3004A47F5 /* bn_mp_invmod_slow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_invmod_slow.c; sourceTree = "<group>"; }; - F96D429008F272B3004A47F5 /* bn_mp_is_square.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_is_square.c; sourceTree = "<group>"; }; - F96D429108F272B3004A47F5 /* bn_mp_jacobi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_jacobi.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>"; }; - F96D429408F272B3004A47F5 /* bn_mp_lcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_lcm.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>"; }; - F96D429808F272B3004A47F5 /* bn_mp_mod_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mod_d.c; sourceTree = "<group>"; }; - F96D429908F272B3004A47F5 /* bn_mp_montgomery_calc_normalization.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_calc_normalization.c; sourceTree = "<group>"; }; - F96D429A08F272B3004A47F5 /* bn_mp_montgomery_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_reduce.c; sourceTree = "<group>"; }; - F96D429B08F272B3004A47F5 /* bn_mp_montgomery_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_setup.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>"; }; - F96D42A008F272B3004A47F5 /* bn_mp_mulmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mulmod.c; sourceTree = "<group>"; }; - F96D42A108F272B3004A47F5 /* bn_mp_n_root.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_n_root.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>"; }; - F96D42A408F272B3004A47F5 /* bn_mp_prime_fermat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_fermat.c; sourceTree = "<group>"; }; - F96D42A508F272B3004A47F5 /* bn_mp_prime_is_divisible.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_is_divisible.c; sourceTree = "<group>"; }; - F96D42A608F272B3004A47F5 /* bn_mp_prime_is_prime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_is_prime.c; sourceTree = "<group>"; }; - F96D42A708F272B3004A47F5 /* bn_mp_prime_miller_rabin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_miller_rabin.c; sourceTree = "<group>"; }; - F96D42A808F272B3004A47F5 /* bn_mp_prime_next_prime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_next_prime.c; sourceTree = "<group>"; }; - F96D42A908F272B3004A47F5 /* bn_mp_prime_rabin_miller_trials.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_rabin_miller_trials.c; sourceTree = "<group>"; }; - F96D42AA08F272B3004A47F5 /* bn_mp_prime_random_ex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_random_ex.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>"; }; - F96D42AD08F272B3004A47F5 /* bn_mp_rand.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_rand.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>"; }; - F96D42AF08F272B3004A47F5 /* bn_mp_read_signed_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_read_signed_bin.c; sourceTree = "<group>"; }; - F96D42B008F272B3004A47F5 /* bn_mp_read_unsigned_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_read_unsigned_bin.c; sourceTree = "<group>"; }; - F96D42B108F272B3004A47F5 /* bn_mp_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce.c; sourceTree = "<group>"; }; - F96D42B208F272B3004A47F5 /* bn_mp_reduce_2k.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k.c; sourceTree = "<group>"; }; - F96D42B308F272B3004A47F5 /* bn_mp_reduce_2k_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_l.c; sourceTree = "<group>"; }; - F96D42B408F272B3004A47F5 /* bn_mp_reduce_2k_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_setup.c; sourceTree = "<group>"; }; - F96D42B508F272B3004A47F5 /* bn_mp_reduce_2k_setup_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_setup_l.c; sourceTree = "<group>"; }; - F96D42B608F272B3004A47F5 /* bn_mp_reduce_is_2k.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_is_2k.c; sourceTree = "<group>"; }; - F96D42B708F272B3004A47F5 /* bn_mp_reduce_is_2k_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_is_2k_l.c; sourceTree = "<group>"; }; - F96D42B808F272B3004A47F5 /* bn_mp_reduce_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_setup.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>"; }; - F96D42BB08F272B3004A47F5 /* bn_mp_set_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_set_int.c; sourceTree = "<group>"; }; - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_shrink.c; sourceTree = "<group>"; }; - F96D42BD08F272B3004A47F5 /* bn_mp_signed_bin_size.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_signed_bin_size.c; sourceTree = "<group>"; }; - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqr.c; sourceTree = "<group>"; }; - F96D42BF08F272B3004A47F5 /* bn_mp_sqrmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqrmod.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>"; }; - F96D42C308F272B3004A47F5 /* bn_mp_submod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_submod.c; sourceTree = "<group>"; }; - F96D42C408F272B3004A47F5 /* bn_mp_to_signed_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_signed_bin.c; sourceTree = "<group>"; }; - F96D42C508F272B3004A47F5 /* bn_mp_to_signed_bin_n.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_signed_bin_n.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>"; }; - F96D42CA08F272B3004A47F5 /* bn_mp_toradix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_toradix.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>"; }; - F96D42CF08F272B3004A47F5 /* bn_prime_tab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_prime_tab.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>"; }; - F96D42D208F272B3004A47F5 /* bn_s_mp_exptmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_exptmod.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>"; }; - F96D42D408F272B3004A47F5 /* bn_s_mp_mul_high_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_mul_high_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>"; }; - F96D42D908F272B3004A47F5 /* callgraph.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = callgraph.txt; sourceTree = "<group>"; }; - F96D42DA08F272B3004A47F5 /* changes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = changes.txt; sourceTree = "<group>"; }; - F96D42F008F272B3004A47F5 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; }; - F96D431D08F272B4004A47F5 /* poster.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = poster.pdf; sourceTree = "<group>"; }; - F96D432608F272B4004A47F5 /* tommath.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = tommath.pdf; 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; fileEncoding = 4; lastKnownFileType = text; 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>"; }; - F96D443408F272B8004A47F5 /* str2c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = str2c; 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>"; }; - F96D443708F272B9004A47F5 /* tclmin.wse */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tclmin.wse; 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>"; }; - F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; 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>"; }; - F96D447608F272BA004A47F5 /* makefile.bc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.bc; 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>"; }; - F976F6A70C325FB6005066D9 /* tkMacOSXPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXPrivate.h; sourceTree = "<group>"; }; - F97AE7F10B65C1E900310EA2 /* Wish-Common.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-Common.xcconfig"; sourceTree = "<group>"; }; - F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-Release.xcconfig"; sourceTree = "<group>"; }; - F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-Debug.xcconfig"; 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>"; }; - F9D1360A0CDC252C00DBE0B5 /* mclist.tcl */ = {isa = PBXFileReference; explicitFileType = text.script; fileEncoding = 4; path = mclist.tcl; 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>"; }; - 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 */, - ); - 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 /* Wish */ = { - isa = PBXGroup; - children = ( - F96D3DF708F271BE004A47F5 /* Tk Sources */, - F96D3DF608F27169004A47F5 /* Tcl Sources */, - F966C06F08F281DC005CB29B /* Frameworks */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - comments = "Copyright (c) 2004-2008 Daniel A. Steffen <das@users.sourceforge.net>\n\nSee the file \"license.terms\" for information on usage and redistribution of\nthis file, and for a DISCLAIMER OF ALL WARRANTIES.\n"; - name = Wish; - 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 */, - 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 */, - F966BA9908F27A38005CB29B /* tk4.0.ps */, - 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 */, - 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 */, - 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 /* carbon */ = { - isa = PBXGroup; - children = ( - F966BBBA08F27A3B005CB29B /* configure.ac */, - F966BBBB08F27A3B005CB29B /* GNUmakefile */, - F966BBBE08F27A3B005CB29B /* README */, - F966BBC008F27A3B005CB29B /* Tk-Info.plist.in */, - F966BBC108F27A3B005CB29B /* tkAboutDlg.r */, - F966BBC208F27A3B005CB29B /* tkMacOSX.h */, - F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */, - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */, - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */, - F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.c */, - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */, - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */, - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */, - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */, - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */, - 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.r */, - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */, - F96888840AF78938000797B5 /* ttkMacOSXTheme.c */, - F966BBF808F27A3C005CB29B /* Wish.icns */, - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */, - F97AE7F10B65C1E900310EA2 /* Wish-Common.xcconfig */, - F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */, - F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */, - ); - path = carbon; - 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 */, - 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 */, - 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 */, - F966BC7F08F27A3D005CB29B /* tkUnixDialog.c */, - 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 */, - F966BC9808F27A3E005CB29B /* makefile.bc */, - 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 = ( - F966C07408F2820D005CB29B /* CoreFoundation.framework */, - F96437E60EF0D652003F468E /* libz.dylib */, - F966C07608F2821B005CB29B /* Carbon.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 */, - F96888560AF7880C000797B5 /* combobox.test */, - F96888570AF7880C000797B5 /* entry.test */, - F96888580AF7880C000797B5 /* image.test */, - F96888590AF7880C000797B5 /* labelframe.test */, - F968885A0AF7880C000797B5 /* layout.test */, - F968885C0AF7880C000797B5 /* notebook.test */, - F968885D0AF7880C000797B5 /* panedwindow.test */, - F968885E0AF7880C000797B5 /* progressbar.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 /* carbon */, - 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 */, - 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 /* CrtSlave.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 */, - 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 */, - 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 = ( - F96D425F08F272B3004A47F5 /* bn.pdf */, - F96D426108F272B3004A47F5 /* bn_error.c */, - F96D426208F272B3004A47F5 /* bn_fast_mp_invmod.c */, - F96D426308F272B3004A47F5 /* bn_fast_mp_montgomery_reduce.c */, - F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */, - F96D426508F272B3004A47F5 /* bn_fast_s_mp_mul_high_digs.c */, - F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */, - F96D426708F272B3004A47F5 /* bn_mp_2expt.c */, - F96D426808F272B3004A47F5 /* bn_mp_abs.c */, - F96D426908F272B3004A47F5 /* bn_mp_add.c */, - F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */, - F96D426B08F272B3004A47F5 /* bn_mp_addmod.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 */, - F96D427308F272B3004A47F5 /* bn_mp_cnt_lsb.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 */, - F96D427B08F272B3004A47F5 /* bn_mp_dr_is_modulus.c */, - F96D427C08F272B3004A47F5 /* bn_mp_dr_reduce.c */, - F96D427D08F272B3004A47F5 /* bn_mp_dr_setup.c */, - F96D427E08F272B3004A47F5 /* bn_mp_exch.c */, - F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */, - F96D428008F272B3004A47F5 /* bn_mp_exptmod.c */, - F96D428108F272B3004A47F5 /* bn_mp_exptmod_fast.c */, - F96D428208F272B3004A47F5 /* bn_mp_exteuclid.c */, - F96D428308F272B3004A47F5 /* bn_mp_fread.c */, - F96D428408F272B3004A47F5 /* bn_mp_fwrite.c */, - F96D428508F272B3004A47F5 /* bn_mp_gcd.c */, - F96D428608F272B3004A47F5 /* bn_mp_get_int.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 */, - F96D428C08F272B3004A47F5 /* bn_mp_init_set_int.c */, - F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */, - F96D428E08F272B3004A47F5 /* bn_mp_invmod.c */, - F96D428F08F272B3004A47F5 /* bn_mp_invmod_slow.c */, - F96D429008F272B3004A47F5 /* bn_mp_is_square.c */, - F96D429108F272B3004A47F5 /* bn_mp_jacobi.c */, - F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */, - F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */, - F96D429408F272B3004A47F5 /* bn_mp_lcm.c */, - F96D429508F272B3004A47F5 /* bn_mp_lshd.c */, - F96D429608F272B3004A47F5 /* bn_mp_mod.c */, - F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */, - F96D429808F272B3004A47F5 /* bn_mp_mod_d.c */, - F96D429908F272B3004A47F5 /* bn_mp_montgomery_calc_normalization.c */, - F96D429A08F272B3004A47F5 /* bn_mp_montgomery_reduce.c */, - F96D429B08F272B3004A47F5 /* bn_mp_montgomery_setup.c */, - F96D429C08F272B3004A47F5 /* bn_mp_mul.c */, - F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */, - F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */, - F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */, - F96D42A008F272B3004A47F5 /* bn_mp_mulmod.c */, - F96D42A108F272B3004A47F5 /* bn_mp_n_root.c */, - F96D42A208F272B3004A47F5 /* bn_mp_neg.c */, - F96D42A308F272B3004A47F5 /* bn_mp_or.c */, - F96D42A408F272B3004A47F5 /* bn_mp_prime_fermat.c */, - F96D42A508F272B3004A47F5 /* bn_mp_prime_is_divisible.c */, - F96D42A608F272B3004A47F5 /* bn_mp_prime_is_prime.c */, - F96D42A708F272B3004A47F5 /* bn_mp_prime_miller_rabin.c */, - F96D42A808F272B3004A47F5 /* bn_mp_prime_next_prime.c */, - F96D42A908F272B3004A47F5 /* bn_mp_prime_rabin_miller_trials.c */, - F96D42AA08F272B3004A47F5 /* bn_mp_prime_random_ex.c */, - F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */, - F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */, - F96D42AD08F272B3004A47F5 /* bn_mp_rand.c */, - F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */, - F96D42AF08F272B3004A47F5 /* bn_mp_read_signed_bin.c */, - F96D42B008F272B3004A47F5 /* bn_mp_read_unsigned_bin.c */, - F96D42B108F272B3004A47F5 /* bn_mp_reduce.c */, - F96D42B208F272B3004A47F5 /* bn_mp_reduce_2k.c */, - F96D42B308F272B3004A47F5 /* bn_mp_reduce_2k_l.c */, - F96D42B408F272B3004A47F5 /* bn_mp_reduce_2k_setup.c */, - F96D42B508F272B3004A47F5 /* bn_mp_reduce_2k_setup_l.c */, - F96D42B608F272B3004A47F5 /* bn_mp_reduce_is_2k.c */, - F96D42B708F272B3004A47F5 /* bn_mp_reduce_is_2k_l.c */, - F96D42B808F272B3004A47F5 /* bn_mp_reduce_setup.c */, - F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */, - F96D42BA08F272B3004A47F5 /* bn_mp_set.c */, - F96D42BB08F272B3004A47F5 /* bn_mp_set_int.c */, - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */, - F96D42BD08F272B3004A47F5 /* bn_mp_signed_bin_size.c */, - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */, - F96D42BF08F272B3004A47F5 /* bn_mp_sqrmod.c */, - F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */, - F96D42C108F272B3004A47F5 /* bn_mp_sub.c */, - F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */, - F96D42C308F272B3004A47F5 /* bn_mp_submod.c */, - F96D42C408F272B3004A47F5 /* bn_mp_to_signed_bin.c */, - F96D42C508F272B3004A47F5 /* bn_mp_to_signed_bin_n.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 */, - F96D42CA08F272B3004A47F5 /* bn_mp_toradix.c */, - F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */, - F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */, - F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */, - F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */, - F96D42CF08F272B3004A47F5 /* bn_prime_tab.c */, - F96D42D008F272B3004A47F5 /* bn_reverse.c */, - F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */, - F96D42D208F272B3004A47F5 /* bn_s_mp_exptmod.c */, - F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */, - F96D42D408F272B3004A47F5 /* bn_s_mp_mul_high_digs.c */, - F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */, - F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */, - F96D42D708F272B3004A47F5 /* bncore.c */, - F96D42D908F272B3004A47F5 /* callgraph.txt */, - F96D42DA08F272B3004A47F5 /* changes.txt */, - F96D42F008F272B3004A47F5 /* LICENSE */, - F96D431D08F272B4004A47F5 /* poster.pdf */, - F96D432608F272B4004A47F5 /* tommath.pdf */, - 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 */, - 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 */, - F96D437108F272B6004A47F5 /* httpd */, - 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 */, - 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 */, - F91DC23D0E44C530002CB8D1 /* unsupported.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 */, - F96D443408F272B8004A47F5 /* str2c */, - F96D443508F272B8004A47F5 /* tcl.hpj.in */, - F96D443608F272B8004A47F5 /* tcl.wse.in */, - F96D443708F272B9004A47F5 /* tclmin.wse */, - F96D443908F272B9004A47F5 /* tcltk-man2html.tcl */, - F96D443A08F272B9004A47F5 /* tclZIC.tcl */, - F92D7F140DE777670033A13A /* tsdPerf.c */, - 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 */, - 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 */, - F96D447308F272BA004A47F5 /* coffbase.txt */, - F96D447408F272BA004A47F5 /* configure */, - F96D447508F272BA004A47F5 /* configure.in */, - F96D447608F272BA004A47F5 /* makefile.bc */, - 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 /* ShellScript */, - F9A5C5F608F651AB008AE941 /* ShellScript */, - F9EA4ADE08FA3B7F00B1F5F0 /* Rez */, - 8DD76FAB0486AB0100D96B5E /* Sources */, - 8DD76FAD0486AB0100D96B5E /* Frameworks */, - F95FA74C0B32CE190072E431 /* ShellScript */, - ); - 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 /* ShellScript */, - F9FD30B50CC1AD070073837D /* ShellScript */, - 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 /* ShellScript */, - ); - 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; - buildConfigurationList = F95CC8B509158F3100EA5ACE /* Build configuration list for PBXProject "Wish" */; - hasScannedForEncodings = 1; - mainGroup = 08FB7794FE84155DC02AAC07 /* Wish */; - projectDirPath = ""; - projectRoot = ..; - targets = ( - F9E61D16090A3E94002B3151 /* Tk */, - 8DD76FA90486AB0100D96B5E /* tktest */, - F97258A50A86873C00096C78 /* tktest-X11 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXRezBuildPhase section */ - F9EA4ADE08FA3B7F00B1F5F0 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - F9EA4AF008FA3BD500B1F5F0 /* tkMacOSXXCursors.r in Rez */, - F9EA4AF208FA3BD800B1F5F0 /* tkMacOSXCursors.r in Rez */, - F9EA4AF308FA3BDA00B1F5F0 /* tkMacOSXAETE.r in Rez */, - F9EA4AF408FA3BDB00B1F5F0 /* tkAboutDlg.r in Rez */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - F95FA74C0B32CE190072E431 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TARGET_BUILD_DIR)/$(PRODUCT_NAME)", - "$(REZ_COLLECTOR_DIR)/$(PRODUCT_NAME).rsrc", - ); - outputPaths = ( - "$(TARGET_TEMP_DIR)/stamp", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "touch -t $(date -r $(expr $(date '+%s') + 5) '+%Y%m%d%H%M.%S') \"${TARGET_TEMP_DIR}/stamp\"\n\n## Xcode bug workaround: Rezzing does not take place for commandline tool targets\n## even when a ResourceManager Resources phase is present, but this script phase's\n## input dependency on the final merged resource file forces the Rezzing.\n\nif [ \"${ZERO_LINK}\" = \"YES\" ]; then\n ## ZeroLinking ignores OTHER_LDFLAGS, so our resource file doesn't get linked into the executable.\n ## workaround: copy resource data into resource fork of zerolink launcher (will only work on HFS+).\n cp -f \"${SCRIPT_INPUT_FILE_1}\" \"${SCRIPT_INPUT_FILE_0}/..namedfork/rsrc\"\nfi\n"; - }; - F97AF02F0B665DA900310EA2 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_TEMP_DIR}/.none", - ); - outputPaths = ( - "${TARGET_BUILD_DIR}/${WRAPPER_NAME}", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "gnumake -C \"${TK_SRCROOT}/carbon\" -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"; - }; - F9A5C5F508F651A2008AE941 /* ShellScript */ = { - 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", - ); - 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 \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - }; - F9A5C5F608F651AB008AE941 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/carbon/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/carbon &&\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/carbon\"\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}\"/carbon/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n \"${TK_SRCROOT}\"/carbon/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-aqua=carbon --with-tcl=../tcl ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; - }; - F9FD30B40CC1AD070073837D /* ShellScript */ = { - 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", - ); - 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 \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --disable-corefoundation ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - }; - F9FD30B50CC1AD070073837D /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/carbon/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/carbon &&\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/carbon\"\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}\"/carbon/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n PATH=\"${PATH}:/usr/X11R6/bin\" \"${TK_SRCROOT}\"/carbon/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --disable-corefoundation --enable-xft --with-tcl=../tcl ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; - }; -/* 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 */, - 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 */, - 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 */, - F966BEDD08F27A40005CB29B /* tkMacOSXCarbonEvents.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 */, - 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 */, - 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 */, - F9FD32060CC1ADB70073837D /* tkUnixDialog.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 */ - 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 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ( - ppc, - i386, - ); - CFLAGS = "-arch ppc -arch i386 $(CFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.4; - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-symbols=all"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = NO; - }; - name = DebugMemCompile; - }; - F9359B250DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.2; - 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 = { - 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 /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoFixZL; - }; - 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; - ZERO_LINK = YES; - }; - name = Debug; - }; - F95CC8B209158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = Release; - }; - F95CC8B309158F3100EA5ACE /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoFixZL; - }; - F95CC8B609158F3100EA5ACE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = NO; - }; - name = Debug; - }; - F95CC8B709158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = YES; - }; - name = Release; - }; - F95CC8B809158F3100EA5ACE /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = NO; - }; - name = DebugNoFixZL; - }; - 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_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"; - ZERO_LINK = YES; - }; - name = Debug; - }; - F97258AA0A86873D00096C78 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = DebugNoFixZL; - }; - F97258AC0A86873D00096C78 /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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; - }; - F97AED080B660A6C00310EA2 /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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.4uSDK; - }; - F97AED0F0B660AA300310EA2 /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = ReleasePPC10.3.9SDK; - }; - F97AED160B660AF100310EA2 /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = ReleasePPC10.2.8SDK; - }; - F987512F0DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-corefoundation"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads --disable-corefoundation"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - 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 = { - 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; - }; - 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 = { - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = NO; - }; - name = DebugUnthreaded; - }; - F99EE7420BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - GCC_PREPROCESSOR_DEFINITIONS = ( - PURIFY, - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = NO; - }; - name = DebugLeaks; - }; - F9DB62080B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB62090B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB620A0B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ( - ppc, - i386, - ); - CFLAGS = "-arch ppc -arch i386 $(CFLAGS)"; - CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.4; - PREBINDING = NO; - SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB621F0B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - LDFLAGS = "-force_cpusubtype_ALL $(LDFLAGS)"; - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62200B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62210B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ppc; - CFLAGS = "$(PER_ARCH_CFLAGS_ppc) $(CFLAGS)"; - CPPFLAGS = "-arch ppc -isysroot $(SDKROOT) $(CPPFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.3; - PREBINDING = YES; - SDKROOT = /Developer/SDKs/MacOSX10.3.9.sdk; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62350B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleasePPC10.2.8SDK; - }; - F9DB62360B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleasePPC10.2.8SDK; - }; - F9DB62370B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ppc; - CFLAGS = "$(PER_ARCH_CFLAGS_ppc) -fconstant-cfstrings $(CFLAGS)"; - CPPFLAGS = "-arch ppc -D__CONSTANT_CFSTRINGS__ -DMAC_OS_X_VERSION_MIN_REQUIRED=1020 -nostdinc -isystem $(SDKROOT)/usr/include/gcc/darwin/$(GCC_VERSION) -isystem $(SDKROOT)/usr/include -F$(SDKROOT)/System/Library/Frameworks"; - DEBUG_INFORMATION_FORMAT = stabs; - GCC = /usr/bin/gcc; - GCC_VERSION = 3.3; - LDFLAGS = "-L$(SDKROOT)/usr/lib/gcc/darwin/$(GCC_VERSION) -Wl,-syslibroot,$(SDKROOT)"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = YES; - SDKROOT = /Developer/SDKs/MacOSX10.2.8.sdk; - WARNING_CFLAGS = ( - "$(WARNING_CFLAGS_GCC3)", - "-Wno-long-double", - ); - }; - name = ReleasePPC10.2.8SDK; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - F95CC8AB09158F3100EA5ACE /* Build configuration list for PBXNativeTarget "Tk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8AC09158F3100EA5ACE /* Debug */, - F95CC8AE09158F3100EA5ACE /* DebugNoFixZL */, - F99EE73B0BE835310060D4AF /* DebugUnthreaded */, - F98751300DE7B57E00B1C9EC /* DebugNoCF */, - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084370BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73C0BE835310060D4AF /* DebugLeaks */, - F9359B260DF212DA00E04F67 /* DebugGCov */, - F95CC8AD09158F3100EA5ACE /* Release */, - F91BCC4F093152310042A6BF /* ReleaseUniversal */, - F9DB62080B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB621F0B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62350B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B009158F3100EA5ACE /* Build configuration list for PBXNativeTarget "tktest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B109158F3100EA5ACE /* Debug */, - F95CC8B309158F3100EA5ACE /* DebugNoFixZL */, - F99EE73D0BE835310060D4AF /* DebugUnthreaded */, - F98751310DE7B57E00B1C9EC /* DebugNoCF */, - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084380BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73E0BE835310060D4AF /* DebugLeaks */, - F9359B270DF212DA00E04F67 /* DebugGCov */, - F95CC8B209158F3100EA5ACE /* Release */, - F91BCC50093152310042A6BF /* ReleaseUniversal */, - F9DB62090B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB62200B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62360B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B509158F3100EA5ACE /* Build configuration list for PBXProject "Wish" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B609158F3100EA5ACE /* Debug */, - F95CC8B809158F3100EA5ACE /* DebugNoFixZL */, - F99EE7410BE835310060D4AF /* DebugUnthreaded */, - F987512F0DE7B57E00B1C9EC /* DebugNoCF */, - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F930843A0BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7420BE835310060D4AF /* DebugLeaks */, - F9359B250DF212DA00E04F67 /* DebugGCov */, - F95CC8B709158F3100EA5ACE /* Release */, - F91BCC51093152310042A6BF /* ReleaseUniversal */, - F9DB620A0B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB62210B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62370B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F97258A80A86873D00096C78 /* Build configuration list for PBXNativeTarget "tktest-X11" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F97258A90A86873D00096C78 /* Debug */, - F97258AB0A86873D00096C78 /* DebugNoFixZL */, - F99EE73F0BE835310060D4AF /* DebugUnthreaded */, - F98751320DE7B57E00B1C9EC /* DebugNoCF */, - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084390BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7400BE835310060D4AF /* DebugLeaks */, - F9359B280DF212DA00E04F67 /* DebugGCov */, - F97258AA0A86873D00096C78 /* Release */, - F97258AC0A86873D00096C78 /* ReleaseUniversal */, - F97AED080B660A6C00310EA2 /* ReleaseUniversal10.4uSDK */, - F97AED0F0B660AA300310EA2 /* ReleasePPC10.3.9SDK */, - F97AED160B660AF100310EA2 /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/carbon/Wish.xcodeproj/default.pbxuser b/carbon/Wish.xcodeproj/default.pbxuser deleted file mode 100644 index cd9a9a6..0000000 --- a/carbon/Wish.xcodeproj/default.pbxuser +++ /dev/null @@ -1,339 +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 = { - AUTOCONF = "/usr/local/bin/autoconf-2.59"; - AUTOHEADER = "/usr/local/bin/autoheader-2.59"; - CODE_SIGN_IDENTITY = ""; - 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 = NO; - name = DYLD_PRINT_LIBRARIES; - }, - { - active = NO; - name = EventDebug; - value = 1; - }, - { - 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; - sourceDirectories = ( - ); - }; - F944EB9C08F798180049FDD4 /* Source Control */ = { - isa = PBXSourceControlManager; - fallbackIsa = XCSourceControlManager; - isSCMEnabled = 0; - scmConfiguration = { - CVSToolPath = /usr/bin/cvs; - CVSUseSSH = NO; - SubversionToolPath = /usr/bin/svn; - }; - scmType = scm.cvs; - }; - F944EB9D08F798180049FDD4 /* Code sense */ = { - isa = PBXCodeSenseManager; - indexTemplatePath = ""; - }; - 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 = ( - ); - }; - F97258A50A86873C00096C78 /* tktest-X11 */ = { - activeExec = 0; - executables = ( - F9FD31F50CC1AD070073837D /* tktest-X11 */, - ); - }; - 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/carbon/Wish.xcodeproj/project.pbxproj b/carbon/Wish.xcodeproj/project.pbxproj deleted file mode 100644 index 9c0a84c..0000000 --- a/carbon/Wish.xcodeproj/project.pbxproj +++ /dev/null @@ -1,5886 +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 */; }; - 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 */; }; - F966BEDD08F27A40005CB29B /* tkMacOSXCarbonEvents.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.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 */; }; - 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 */; }; - 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 */; }; - F9EA4AF008FA3BD500B1F5F0 /* tkMacOSXXCursors.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.r */; }; - F9EA4AF208FA3BD800B1F5F0 /* tkMacOSXCursors.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */; }; - F9EA4AF308FA3BDA00B1F5F0 /* tkMacOSXAETE.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */; }; - F9EA4AF408FA3BDB00B1F5F0 /* tkAboutDlg.r in Rez */ = {isa = PBXBuildFile; fileRef = F966BBC108F27A3B005CB29B /* tkAboutDlg.r */; }; - 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 */; }; - 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 */; }; - F9FD32060CC1ADB70073837D /* tkUnixDialog.c in Sources */ = {isa = PBXBuildFile; fileRef = F966BC7F08F27A3D005CB29B /* tkUnixDialog.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>"; }; - F91DC23D0E44C530002CB8D1 /* unsupported.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = unsupported.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>"; }; - F92D7F140DE777670033A13A /* tsdPerf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tsdPerf.c; 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>"; }; - F95D77E90DFD820D00A8BF6F /* tclIORTrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tclIORTrans.c; 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>"; }; - F966BA9908F27A38005CB29B /* tk4.0.ps */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = tk4.0.ps; 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>"; }; - F966BBC108F27A3B005CB29B /* tkAboutDlg.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = tkAboutDlg.r; sourceTree = "<group>"; }; - F966BBC208F27A3B005CB29B /* tkMacOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSX.h; sourceTree = "<group>"; }; - F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXAETE.r; sourceTree = "<group>"; }; - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXBitmap.c; sourceTree = "<group>"; }; - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXButton.c; sourceTree = "<group>"; }; - F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXCarbonEvents.c; sourceTree = "<group>"; }; - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXClipboard.c; sourceTree = "<group>"; }; - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXColor.c; sourceTree = "<group>"; }; - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXConfig.c; sourceTree = "<group>"; }; - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXCursor.c; sourceTree = "<group>"; }; - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXCursors.r; sourceTree = "<group>"; }; - F966BBCD08F27A3B005CB29B /* tkMacOSXDebug.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXDialog.c; sourceTree = "<group>"; }; - F966BBD108F27A3B005CB29B /* tkMacOSXDraw.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXDraw.c; sourceTree = "<group>"; }; - F966BBD208F27A3B005CB29B /* tkMacOSXEmbed.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXEmbed.c; sourceTree = "<group>"; }; - F966BBD308F27A3B005CB29B /* tkMacOSXEntry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXEntry.c; sourceTree = "<group>"; }; - F966BBD408F27A3B005CB29B /* tkMacOSXEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXFont.c; sourceTree = "<group>"; }; - F966BBD708F27A3B005CB29B /* tkMacOSXHLEvents.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXHLEvents.c; sourceTree = "<group>"; }; - F966BBD808F27A3B005CB29B /* tkMacOSXInit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyboard.c; sourceTree = "<group>"; }; - F966BBDC08F27A3B005CB29B /* tkMacOSXKeyEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyEvent.c; sourceTree = "<group>"; }; - F966BBDD08F27A3B005CB29B /* tkMacOSXMenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenu.c; sourceTree = "<group>"; }; - F966BBE008F27A3B005CB29B /* tkMacOSXMenubutton.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenubutton.c; sourceTree = "<group>"; }; - F966BBE108F27A3B005CB29B /* tkMacOSXMenus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenus.c; sourceTree = "<group>"; }; - F966BBE208F27A3B005CB29B /* tkMacOSXMouseEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXMouseEvent.c; sourceTree = "<group>"; }; - F966BBE308F27A3B005CB29B /* tkMacOSXNotify.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXRegion.c; sourceTree = "<group>"; }; - F966BBEC08F27A3C005CB29B /* tkMacOSXScale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXScale.c; sourceTree = "<group>"; }; - F966BBED08F27A3C005CB29B /* tkMacOSXScrlbr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXScrlbr.c; sourceTree = "<group>"; }; - F966BBEE08F27A3C005CB29B /* tkMacOSXSend.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXSend.c; sourceTree = "<group>"; }; - F966BBEF08F27A3C005CB29B /* tkMacOSXSubwindows.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXSubwindows.c; sourceTree = "<group>"; }; - F966BBF008F27A3C005CB29B /* tkMacOSXTest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXTest.c; sourceTree = "<group>"; }; - F966BBF108F27A3C005CB29B /* tkMacOSXWindowEvent.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXWindowEvent.c; sourceTree = "<group>"; }; - F966BBF208F27A3C005CB29B /* tkMacOSXWm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXWm.c; sourceTree = "<group>"; }; - F966BBF308F27A3C005CB29B /* tkMacOSXWm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXWm.h; sourceTree = "<group>"; }; - F966BBF408F27A3C005CB29B /* tkMacOSXXCursors.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = tkMacOSXXCursors.r; sourceTree = "<group>"; }; - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkMacOSXXStubs.c; sourceTree = "<group>"; }; - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */ = {isa = PBXFileReference; explicitFileType = text.plist; fileEncoding = 4; path = "Wish-Info.plist.in"; sourceTree = "<group>"; }; - F966BBF808F27A3C005CB29B /* Wish.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = Wish.icns; 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>"; }; - F966BC7F08F27A3D005CB29B /* tkUnixDialog.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tkUnixDialog.c; 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>"; }; - F966BC9808F27A3E005CB29B /* makefile.bc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.bc; 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; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; 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 /* CrtSlave.3 */ = {isa = PBXFileReference; explicitFileType = text.man; fileEncoding = 4; path = CrtSlave.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>"; }; - F96D425F08F272B3004A47F5 /* bn.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = bn.pdf; sourceTree = "<group>"; }; - F96D426108F272B3004A47F5 /* bn_error.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_error.c; sourceTree = "<group>"; }; - F96D426208F272B3004A47F5 /* bn_fast_mp_invmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_mp_invmod.c; sourceTree = "<group>"; }; - F96D426308F272B3004A47F5 /* bn_fast_mp_montgomery_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_mp_montgomery_reduce.c; 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>"; }; - F96D426508F272B3004A47F5 /* bn_fast_s_mp_mul_high_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_fast_s_mp_mul_high_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>"; }; - F96D426708F272B3004A47F5 /* bn_mp_2expt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_2expt.c; sourceTree = "<group>"; }; - F96D426808F272B3004A47F5 /* bn_mp_abs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_abs.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>"; }; - F96D426B08F272B3004A47F5 /* bn_mp_addmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_addmod.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>"; }; - F96D427308F272B3004A47F5 /* bn_mp_cnt_lsb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_cnt_lsb.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>"; }; - F96D427B08F272B3004A47F5 /* bn_mp_dr_is_modulus.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_is_modulus.c; sourceTree = "<group>"; }; - F96D427C08F272B3004A47F5 /* bn_mp_dr_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_reduce.c; sourceTree = "<group>"; }; - F96D427D08F272B3004A47F5 /* bn_mp_dr_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_dr_setup.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>"; }; - F96D428008F272B3004A47F5 /* bn_mp_exptmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exptmod.c; sourceTree = "<group>"; }; - F96D428108F272B3004A47F5 /* bn_mp_exptmod_fast.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exptmod_fast.c; sourceTree = "<group>"; }; - F96D428208F272B3004A47F5 /* bn_mp_exteuclid.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_exteuclid.c; sourceTree = "<group>"; }; - F96D428308F272B3004A47F5 /* bn_mp_fread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_fread.c; sourceTree = "<group>"; }; - F96D428408F272B3004A47F5 /* bn_mp_fwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_fwrite.c; sourceTree = "<group>"; }; - F96D428508F272B3004A47F5 /* bn_mp_gcd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_gcd.c; sourceTree = "<group>"; }; - F96D428608F272B3004A47F5 /* bn_mp_get_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_get_int.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>"; }; - F96D428C08F272B3004A47F5 /* bn_mp_init_set_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_init_set_int.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>"; }; - F96D428E08F272B3004A47F5 /* bn_mp_invmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_invmod.c; sourceTree = "<group>"; }; - F96D428F08F272B3004A47F5 /* bn_mp_invmod_slow.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_invmod_slow.c; sourceTree = "<group>"; }; - F96D429008F272B3004A47F5 /* bn_mp_is_square.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_is_square.c; sourceTree = "<group>"; }; - F96D429108F272B3004A47F5 /* bn_mp_jacobi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_jacobi.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>"; }; - F96D429408F272B3004A47F5 /* bn_mp_lcm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_lcm.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>"; }; - F96D429808F272B3004A47F5 /* bn_mp_mod_d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mod_d.c; sourceTree = "<group>"; }; - F96D429908F272B3004A47F5 /* bn_mp_montgomery_calc_normalization.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_calc_normalization.c; sourceTree = "<group>"; }; - F96D429A08F272B3004A47F5 /* bn_mp_montgomery_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_reduce.c; sourceTree = "<group>"; }; - F96D429B08F272B3004A47F5 /* bn_mp_montgomery_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_montgomery_setup.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>"; }; - F96D42A008F272B3004A47F5 /* bn_mp_mulmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_mulmod.c; sourceTree = "<group>"; }; - F96D42A108F272B3004A47F5 /* bn_mp_n_root.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_n_root.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>"; }; - F96D42A408F272B3004A47F5 /* bn_mp_prime_fermat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_fermat.c; sourceTree = "<group>"; }; - F96D42A508F272B3004A47F5 /* bn_mp_prime_is_divisible.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_is_divisible.c; sourceTree = "<group>"; }; - F96D42A608F272B3004A47F5 /* bn_mp_prime_is_prime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_is_prime.c; sourceTree = "<group>"; }; - F96D42A708F272B3004A47F5 /* bn_mp_prime_miller_rabin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_miller_rabin.c; sourceTree = "<group>"; }; - F96D42A808F272B3004A47F5 /* bn_mp_prime_next_prime.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_next_prime.c; sourceTree = "<group>"; }; - F96D42A908F272B3004A47F5 /* bn_mp_prime_rabin_miller_trials.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_rabin_miller_trials.c; sourceTree = "<group>"; }; - F96D42AA08F272B3004A47F5 /* bn_mp_prime_random_ex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_prime_random_ex.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>"; }; - F96D42AD08F272B3004A47F5 /* bn_mp_rand.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_rand.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>"; }; - F96D42AF08F272B3004A47F5 /* bn_mp_read_signed_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_read_signed_bin.c; sourceTree = "<group>"; }; - F96D42B008F272B3004A47F5 /* bn_mp_read_unsigned_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_read_unsigned_bin.c; sourceTree = "<group>"; }; - F96D42B108F272B3004A47F5 /* bn_mp_reduce.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce.c; sourceTree = "<group>"; }; - F96D42B208F272B3004A47F5 /* bn_mp_reduce_2k.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k.c; sourceTree = "<group>"; }; - F96D42B308F272B3004A47F5 /* bn_mp_reduce_2k_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_l.c; sourceTree = "<group>"; }; - F96D42B408F272B3004A47F5 /* bn_mp_reduce_2k_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_setup.c; sourceTree = "<group>"; }; - F96D42B508F272B3004A47F5 /* bn_mp_reduce_2k_setup_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_2k_setup_l.c; sourceTree = "<group>"; }; - F96D42B608F272B3004A47F5 /* bn_mp_reduce_is_2k.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_is_2k.c; sourceTree = "<group>"; }; - F96D42B708F272B3004A47F5 /* bn_mp_reduce_is_2k_l.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_is_2k_l.c; sourceTree = "<group>"; }; - F96D42B808F272B3004A47F5 /* bn_mp_reduce_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_reduce_setup.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>"; }; - F96D42BB08F272B3004A47F5 /* bn_mp_set_int.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_set_int.c; sourceTree = "<group>"; }; - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_shrink.c; sourceTree = "<group>"; }; - F96D42BD08F272B3004A47F5 /* bn_mp_signed_bin_size.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_signed_bin_size.c; sourceTree = "<group>"; }; - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqr.c; sourceTree = "<group>"; }; - F96D42BF08F272B3004A47F5 /* bn_mp_sqrmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_sqrmod.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>"; }; - F96D42C308F272B3004A47F5 /* bn_mp_submod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_submod.c; sourceTree = "<group>"; }; - F96D42C408F272B3004A47F5 /* bn_mp_to_signed_bin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_signed_bin.c; sourceTree = "<group>"; }; - F96D42C508F272B3004A47F5 /* bn_mp_to_signed_bin_n.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_to_signed_bin_n.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>"; }; - F96D42CA08F272B3004A47F5 /* bn_mp_toradix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_mp_toradix.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>"; }; - F96D42CF08F272B3004A47F5 /* bn_prime_tab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_prime_tab.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>"; }; - F96D42D208F272B3004A47F5 /* bn_s_mp_exptmod.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_exptmod.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>"; }; - F96D42D408F272B3004A47F5 /* bn_s_mp_mul_high_digs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bn_s_mp_mul_high_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>"; }; - F96D42D908F272B3004A47F5 /* callgraph.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = callgraph.txt; sourceTree = "<group>"; }; - F96D42DA08F272B3004A47F5 /* changes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = changes.txt; sourceTree = "<group>"; }; - F96D42F008F272B3004A47F5 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; }; - F96D431D08F272B4004A47F5 /* poster.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = poster.pdf; sourceTree = "<group>"; }; - F96D432608F272B4004A47F5 /* tommath.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = tommath.pdf; 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; fileEncoding = 4; lastKnownFileType = text; 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>"; }; - F96D443408F272B8004A47F5 /* str2c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = str2c; 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>"; }; - F96D443708F272B9004A47F5 /* tclmin.wse */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = tclmin.wse; 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>"; }; - F96D447308F272BA004A47F5 /* coffbase.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = coffbase.txt; 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>"; }; - F96D447608F272BA004A47F5 /* makefile.bc */ = {isa = PBXFileReference; explicitFileType = sourcecode.make; fileEncoding = 4; path = makefile.bc; 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>"; }; - F976F6A70C325FB6005066D9 /* tkMacOSXPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tkMacOSXPrivate.h; sourceTree = "<group>"; }; - F97AE7F10B65C1E900310EA2 /* Wish-Common.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-Common.xcconfig"; sourceTree = "<group>"; }; - F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-Release.xcconfig"; sourceTree = "<group>"; }; - F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Wish-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>"; }; - 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 */, - ); - 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 /* Wish */ = { - isa = PBXGroup; - children = ( - F96D3DF708F271BE004A47F5 /* Tk Sources */, - F96D3DF608F27169004A47F5 /* Tcl Sources */, - F966C06F08F281DC005CB29B /* Frameworks */, - 1AB674ADFE9D54B511CA2CBB /* Products */, - ); - comments = "Copyright (c) 2004-2008 Daniel A. Steffen <das@users.sourceforge.net>\n\nSee the file \"license.terms\" for information on usage and redistribution of\nthis file, and for a DISCLAIMER OF ALL WARRANTIES.\n"; - name = Wish; - 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 */, - 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 */, - F966BA9908F27A38005CB29B /* tk4.0.ps */, - 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 */, - 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 /* carbon */ = { - isa = PBXGroup; - children = ( - F966BBBA08F27A3B005CB29B /* configure.ac */, - F966BBBB08F27A3B005CB29B /* GNUmakefile */, - F966BBBE08F27A3B005CB29B /* README */, - F966BBC008F27A3B005CB29B /* Tk-Info.plist.in */, - F966BBC108F27A3B005CB29B /* tkAboutDlg.r */, - F966BBC208F27A3B005CB29B /* tkMacOSX.h */, - F966BBC408F27A3B005CB29B /* tkMacOSXAETE.r */, - F966BBC508F27A3B005CB29B /* tkMacOSXBitmap.c */, - F966BBC608F27A3B005CB29B /* tkMacOSXButton.c */, - F966BBC708F27A3B005CB29B /* tkMacOSXCarbonEvents.c */, - F966BBC808F27A3B005CB29B /* tkMacOSXClipboard.c */, - F966BBC908F27A3B005CB29B /* tkMacOSXColor.c */, - F966BBCA08F27A3B005CB29B /* tkMacOSXConfig.c */, - F966BBCB08F27A3B005CB29B /* tkMacOSXCursor.c */, - F966BBCC08F27A3B005CB29B /* tkMacOSXCursors.r */, - 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.r */, - F966BBF508F27A3C005CB29B /* tkMacOSXXStubs.c */, - F96888840AF78938000797B5 /* ttkMacOSXTheme.c */, - F966BBF808F27A3C005CB29B /* Wish.icns */, - F966BBF708F27A3C005CB29B /* Wish-Info.plist.in */, - F97AE7F10B65C1E900310EA2 /* Wish-Common.xcconfig */, - F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */, - F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */, - ); - path = carbon; - 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 */, - 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 */, - F966BC7F08F27A3D005CB29B /* tkUnixDialog.c */, - 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 */, - F966BC9808F27A3E005CB29B /* makefile.bc */, - 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 = ( - F966C07408F2820D005CB29B /* CoreFoundation.framework */, - F96437E60EF0D652003F468E /* libz.dylib */, - F966C07608F2821B005CB29B /* Carbon.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 /* carbon */, - 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 */, - 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 /* CrtSlave.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 */, - 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 = ( - F96D425F08F272B3004A47F5 /* bn.pdf */, - F96D426108F272B3004A47F5 /* bn_error.c */, - F96D426208F272B3004A47F5 /* bn_fast_mp_invmod.c */, - F96D426308F272B3004A47F5 /* bn_fast_mp_montgomery_reduce.c */, - F96D426408F272B3004A47F5 /* bn_fast_s_mp_mul_digs.c */, - F96D426508F272B3004A47F5 /* bn_fast_s_mp_mul_high_digs.c */, - F96D426608F272B3004A47F5 /* bn_fast_s_mp_sqr.c */, - F96D426708F272B3004A47F5 /* bn_mp_2expt.c */, - F96D426808F272B3004A47F5 /* bn_mp_abs.c */, - F96D426908F272B3004A47F5 /* bn_mp_add.c */, - F96D426A08F272B3004A47F5 /* bn_mp_add_d.c */, - F96D426B08F272B3004A47F5 /* bn_mp_addmod.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 */, - F96D427308F272B3004A47F5 /* bn_mp_cnt_lsb.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 */, - F96D427B08F272B3004A47F5 /* bn_mp_dr_is_modulus.c */, - F96D427C08F272B3004A47F5 /* bn_mp_dr_reduce.c */, - F96D427D08F272B3004A47F5 /* bn_mp_dr_setup.c */, - F96D427E08F272B3004A47F5 /* bn_mp_exch.c */, - F96D427F08F272B3004A47F5 /* bn_mp_expt_d.c */, - F96D428008F272B3004A47F5 /* bn_mp_exptmod.c */, - F96D428108F272B3004A47F5 /* bn_mp_exptmod_fast.c */, - F96D428208F272B3004A47F5 /* bn_mp_exteuclid.c */, - F96D428308F272B3004A47F5 /* bn_mp_fread.c */, - F96D428408F272B3004A47F5 /* bn_mp_fwrite.c */, - F96D428508F272B3004A47F5 /* bn_mp_gcd.c */, - F96D428608F272B3004A47F5 /* bn_mp_get_int.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 */, - F96D428C08F272B3004A47F5 /* bn_mp_init_set_int.c */, - F96D428D08F272B3004A47F5 /* bn_mp_init_size.c */, - F96D428E08F272B3004A47F5 /* bn_mp_invmod.c */, - F96D428F08F272B3004A47F5 /* bn_mp_invmod_slow.c */, - F96D429008F272B3004A47F5 /* bn_mp_is_square.c */, - F96D429108F272B3004A47F5 /* bn_mp_jacobi.c */, - F96D429208F272B3004A47F5 /* bn_mp_karatsuba_mul.c */, - F96D429308F272B3004A47F5 /* bn_mp_karatsuba_sqr.c */, - F96D429408F272B3004A47F5 /* bn_mp_lcm.c */, - F96D429508F272B3004A47F5 /* bn_mp_lshd.c */, - F96D429608F272B3004A47F5 /* bn_mp_mod.c */, - F96D429708F272B3004A47F5 /* bn_mp_mod_2d.c */, - F96D429808F272B3004A47F5 /* bn_mp_mod_d.c */, - F96D429908F272B3004A47F5 /* bn_mp_montgomery_calc_normalization.c */, - F96D429A08F272B3004A47F5 /* bn_mp_montgomery_reduce.c */, - F96D429B08F272B3004A47F5 /* bn_mp_montgomery_setup.c */, - F96D429C08F272B3004A47F5 /* bn_mp_mul.c */, - F96D429D08F272B3004A47F5 /* bn_mp_mul_2.c */, - F96D429E08F272B3004A47F5 /* bn_mp_mul_2d.c */, - F96D429F08F272B3004A47F5 /* bn_mp_mul_d.c */, - F96D42A008F272B3004A47F5 /* bn_mp_mulmod.c */, - F96D42A108F272B3004A47F5 /* bn_mp_n_root.c */, - F96D42A208F272B3004A47F5 /* bn_mp_neg.c */, - F96D42A308F272B3004A47F5 /* bn_mp_or.c */, - F96D42A408F272B3004A47F5 /* bn_mp_prime_fermat.c */, - F96D42A508F272B3004A47F5 /* bn_mp_prime_is_divisible.c */, - F96D42A608F272B3004A47F5 /* bn_mp_prime_is_prime.c */, - F96D42A708F272B3004A47F5 /* bn_mp_prime_miller_rabin.c */, - F96D42A808F272B3004A47F5 /* bn_mp_prime_next_prime.c */, - F96D42A908F272B3004A47F5 /* bn_mp_prime_rabin_miller_trials.c */, - F96D42AA08F272B3004A47F5 /* bn_mp_prime_random_ex.c */, - F96D42AB08F272B3004A47F5 /* bn_mp_radix_size.c */, - F96D42AC08F272B3004A47F5 /* bn_mp_radix_smap.c */, - F96D42AD08F272B3004A47F5 /* bn_mp_rand.c */, - F96D42AE08F272B3004A47F5 /* bn_mp_read_radix.c */, - F96D42AF08F272B3004A47F5 /* bn_mp_read_signed_bin.c */, - F96D42B008F272B3004A47F5 /* bn_mp_read_unsigned_bin.c */, - F96D42B108F272B3004A47F5 /* bn_mp_reduce.c */, - F96D42B208F272B3004A47F5 /* bn_mp_reduce_2k.c */, - F96D42B308F272B3004A47F5 /* bn_mp_reduce_2k_l.c */, - F96D42B408F272B3004A47F5 /* bn_mp_reduce_2k_setup.c */, - F96D42B508F272B3004A47F5 /* bn_mp_reduce_2k_setup_l.c */, - F96D42B608F272B3004A47F5 /* bn_mp_reduce_is_2k.c */, - F96D42B708F272B3004A47F5 /* bn_mp_reduce_is_2k_l.c */, - F96D42B808F272B3004A47F5 /* bn_mp_reduce_setup.c */, - F96D42B908F272B3004A47F5 /* bn_mp_rshd.c */, - F96D42BA08F272B3004A47F5 /* bn_mp_set.c */, - F96D42BB08F272B3004A47F5 /* bn_mp_set_int.c */, - F96D42BC08F272B3004A47F5 /* bn_mp_shrink.c */, - F96D42BD08F272B3004A47F5 /* bn_mp_signed_bin_size.c */, - F96D42BE08F272B3004A47F5 /* bn_mp_sqr.c */, - F96D42BF08F272B3004A47F5 /* bn_mp_sqrmod.c */, - F96D42C008F272B3004A47F5 /* bn_mp_sqrt.c */, - F96D42C108F272B3004A47F5 /* bn_mp_sub.c */, - F96D42C208F272B3004A47F5 /* bn_mp_sub_d.c */, - F96D42C308F272B3004A47F5 /* bn_mp_submod.c */, - F96D42C408F272B3004A47F5 /* bn_mp_to_signed_bin.c */, - F96D42C508F272B3004A47F5 /* bn_mp_to_signed_bin_n.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 */, - F96D42CA08F272B3004A47F5 /* bn_mp_toradix.c */, - F96D42CB08F272B3004A47F5 /* bn_mp_toradix_n.c */, - F96D42CC08F272B3004A47F5 /* bn_mp_unsigned_bin_size.c */, - F96D42CD08F272B3004A47F5 /* bn_mp_xor.c */, - F96D42CE08F272B3004A47F5 /* bn_mp_zero.c */, - F96D42CF08F272B3004A47F5 /* bn_prime_tab.c */, - F96D42D008F272B3004A47F5 /* bn_reverse.c */, - F96D42D108F272B3004A47F5 /* bn_s_mp_add.c */, - F96D42D208F272B3004A47F5 /* bn_s_mp_exptmod.c */, - F96D42D308F272B3004A47F5 /* bn_s_mp_mul_digs.c */, - F96D42D408F272B3004A47F5 /* bn_s_mp_mul_high_digs.c */, - F96D42D508F272B3004A47F5 /* bn_s_mp_sqr.c */, - F96D42D608F272B3004A47F5 /* bn_s_mp_sub.c */, - F96D42D708F272B3004A47F5 /* bncore.c */, - F96D42D908F272B3004A47F5 /* callgraph.txt */, - F96D42DA08F272B3004A47F5 /* changes.txt */, - F96D42F008F272B3004A47F5 /* LICENSE */, - F96D431D08F272B4004A47F5 /* poster.pdf */, - F96D432608F272B4004A47F5 /* tommath.pdf */, - 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 */, - 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 */, - F96D437108F272B6004A47F5 /* httpd */, - 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 */, - 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 */, - F91DC23D0E44C530002CB8D1 /* unsupported.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 */, - F96D443408F272B8004A47F5 /* str2c */, - F96D443508F272B8004A47F5 /* tcl.hpj.in */, - F96D443608F272B8004A47F5 /* tcl.wse.in */, - F96D443708F272B9004A47F5 /* tclmin.wse */, - F96D443908F272B9004A47F5 /* tcltk-man2html.tcl */, - F96D443A08F272B9004A47F5 /* tclZIC.tcl */, - F92D7F140DE777670033A13A /* tsdPerf.c */, - 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 */, - 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 */, - F96D447308F272BA004A47F5 /* coffbase.txt */, - F96D447408F272BA004A47F5 /* configure */, - F96D447508F272BA004A47F5 /* configure.in */, - F96D447608F272BA004A47F5 /* makefile.bc */, - 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 /* ShellScript */, - F9A5C5F608F651AB008AE941 /* ShellScript */, - F9EA4ADE08FA3B7F00B1F5F0 /* Rez */, - 8DD76FAB0486AB0100D96B5E /* Sources */, - 8DD76FAD0486AB0100D96B5E /* Frameworks */, - F95FA74C0B32CE190072E431 /* ShellScript */, - ); - 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 /* ShellScript */, - F9FD30B50CC1AD070073837D /* ShellScript */, - 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 /* ShellScript */, - ); - 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 "Wish" */; - compatibilityVersion = "Xcode 3.1"; - hasScannedForEncodings = 1; - mainGroup = 08FB7794FE84155DC02AAC07 /* Wish */; - projectDirPath = ""; - projectRoot = ..; - targets = ( - F9E61D16090A3E94002B3151 /* Tk */, - 8DD76FA90486AB0100D96B5E /* tktest */, - F97258A50A86873C00096C78 /* tktest-X11 */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXRezBuildPhase section */ - F9EA4ADE08FA3B7F00B1F5F0 /* Rez */ = { - isa = PBXRezBuildPhase; - buildActionMask = 2147483647; - files = ( - F9EA4AF008FA3BD500B1F5F0 /* tkMacOSXXCursors.r in Rez */, - F9EA4AF208FA3BD800B1F5F0 /* tkMacOSXCursors.r in Rez */, - F9EA4AF308FA3BDA00B1F5F0 /* tkMacOSXAETE.r in Rez */, - F9EA4AF408FA3BDB00B1F5F0 /* tkAboutDlg.r in Rez */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXRezBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - F95FA74C0B32CE190072E431 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TARGET_BUILD_DIR)/$(PRODUCT_NAME)", - "$(REZ_COLLECTOR_DIR)/$(PRODUCT_NAME).rsrc", - ); - outputPaths = ( - "$(TARGET_TEMP_DIR)/stamp", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "touch -t $(date -r $(expr $(date '+%s') + 5) '+%Y%m%d%H%M.%S') \"${TARGET_TEMP_DIR}/stamp\"\n\n## Xcode bug workaround: Rezzing does not take place for commandline tool targets\n## even when a ResourceManager Resources phase is present, but this script phase's\n## input dependency on the final merged resource file forces the Rezzing.\n"; - showEnvVarsInLog = 0; - }; - F97AF02F0B665DA900310EA2 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${TARGET_TEMP_DIR}/.none", - ); - outputPaths = ( - "${TARGET_BUILD_DIR}/${WRAPPER_NAME}", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "gnumake -C \"${TK_SRCROOT}/carbon\" -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 /* ShellScript */ = { - 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", - ); - 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 \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - showEnvVarsInLog = 0; - }; - F9A5C5F608F651AB008AE941 /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/carbon/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/carbon &&\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/carbon\"\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}\"/carbon/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n \"${TK_SRCROOT}\"/carbon/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --enable-aqua=carbon --with-tcl=../tcl ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi"; - showEnvVarsInLog = 0; - }; - F9FD30B40CC1AD070073837D /* ShellScript */ = { - 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", - ); - 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 \"${TCL_SRCROOT}\"/macosx/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --disable-corefoundation ${CONFIGURE_ARGS}\nelse\n ./config.status\nfi\n"; - showEnvVarsInLog = 0; - }; - F9FD30B50CC1AD070073837D /* ShellScript */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "$(TK_SRCROOT)/carbon/configure.ac", - "$(TK_SRCROOT)/unix/configure.in", - "$(TK_SRCROOT)/unix/tcl.m4", - "$(TK_SRCROOT)/unix/aclocal.m4", - "$(TK_SRCROOT)/unix/tkConfig.sh.in", - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/tk/tkConfig.sh", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/bash; - shellScript = "## tk configure shell script phase\n\ncd \"${TK_SRCROOT}\"/carbon &&\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/carbon\"\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}\"/carbon/configure -nt config.status ]; then\n echo \"Configuring Tk\"\n PATH=\"${PATH}:/usr/X11R6/bin\" \"${TK_SRCROOT}\"/carbon/configure --cache-file=../config.cache --prefix=${PREFIX} --bindir=${BINDIR} --libdir=${LIBDIR} --mandir=${MANDIR} --includedir=${INCLUDEDIR} --disable-shared --disable-corefoundation --enable-xft --with-tcl=../tcl ${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 */, - F966BEDD08F27A40005CB29B /* tkMacOSXCarbonEvents.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 */, - F9FD32060CC1ADB70073837D /* tkUnixDialog.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 */ - 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 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CFLAGS = "-arch i386 -arch ppc $(CFLAGS)"; - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --enable-symbols=all"; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = DebugMemCompile; - }; - F9359B250DF212DA00E04F67 /* DebugGCov */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - GCC_GENERATE_TEST_COVERAGE_FILES = YES; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; - MACOSX_DEPLOYMENT_TARGET = 10.5; - 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 = { - 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 /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = DebugNoFixZL; - }; - 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 /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = DebugNoFixZL; - }; - F95CC8B609158F3100EA5ACE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = Debug; - }; - F95CC8B709158F3100EA5ACE /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = Release; - }; - F95CC8B809158F3100EA5ACE /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = DebugNoFixZL; - }; - 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_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 = { - 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 /* DebugNoFixZL */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = DebugNoFixZL; - }; - F97258AC0A86873D00096C78 /* ReleaseUniversal */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc -arch ppc64 $(CFLAGS)"; - 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; - }; - F97AED080B660A6C00310EA2 /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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.4uSDK; - }; - F97AED0F0B660AA300310EA2 /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = ReleasePPC10.3.9SDK; - }; - F97AED160B660AF100310EA2 /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - 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 = ReleasePPC10.2.8SDK; - }; - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_64_BIT)"; - CONFIGURE_ARGS = "--enable-64bit $(CONFIGURE_ARGS)"; - CPPFLAGS = "-arch $(NATIVE_ARCH_64_BIT) $(CPPFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = Debug64bit; - }; - F987512F0DE7B57E00B1C9EC /* DebugNoCF */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-corefoundation"; - MACOSX_DEPLOYMENT_TARGET = 10.5; - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads --disable-corefoundation"; - MACOSX_DEPLOYMENT_TARGET = 10.5; - 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 = { - 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 gcc42 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - GCC_VERSION = 4.2; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = "Debug gcc42"; - }; - F9988AB20D814C6500B6B03B /* Debug gcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "Debug gcc42"; - }; - F9988AB30D814C6500B6B03B /* Debug gcc42 */ = { - 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 gcc42"; - }; - F9988AB40D814C6500B6B03B /* Debug gcc42 */ = { - 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; - 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 gcc42"; - }; - F9988AB50D814C7500B6B03B /* Debug llvmgcc42 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - CC = "$(DEVELOPER_DIR)/usr/bin/llvm-gcc-4.2"; - GCC_VERSION = com.apple.compilers.llvmgcc42; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = "Debug llvmgcc42"; - }; - F9988AB60D814C7500B6B03B /* Debug llvmgcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "Debug llvmgcc42"; - }; - F9988AB70D814C7500B6B03B /* Debug llvmgcc42 */ = { - 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 llvmgcc42"; - }; - F9988AB80D814C7500B6B03B /* Debug llvmgcc42 */ = { - 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; - 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 llvmgcc42"; - }; - F9988BB10D81586D00B6B03B /* ReleaseUniversal gcc42 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CFLAGS = "-arch i386 -arch ppc $(CFLAGS)"; - GCC_VERSION = 4.2; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = "ReleaseUniversal gcc42"; - }; - F9988BB20D81586D00B6B03B /* ReleaseUniversal gcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "ReleaseUniversal gcc42"; - }; - F9988BB30D81586D00B6B03B /* ReleaseUniversal gcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "ReleaseUniversal gcc42"; - }; - F9988BB40D81586D00B6B03B /* ReleaseUniversal gcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc -arch ppc64 $(CFLAGS)"; - 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 gcc42"; - }; - F9988BB50D81587400B6B03B /* ReleaseUniversal llvmgcc42 */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CC = "$(DEVELOPER_DIR)/usr/bin/llvm-gcc-4.2"; - CFLAGS = "-arch i386 -arch ppc $(CFLAGS)"; - DEBUG_INFORMATION_FORMAT = dwarf; - GCC_OPTIMIZATION_LEVEL = 4; - GCC_VERSION = com.apple.compilers.llvmgcc42; - MACOSX_DEPLOYMENT_TARGET = 10.5; - OTHER_CFLAGS = ( - "$(OTHER_CFLAGS)", - "-emit-llvm", - ); - PREBINDING = NO; - TCL_CONFIGURE_ARGS = "$(TCL_CONFIGURE_ARGS) --disable-dtrace"; - }; - name = "ReleaseUniversal llvmgcc42"; - }; - F9988BB60D81587400B6B03B /* ReleaseUniversal llvmgcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = "ReleaseUniversal llvmgcc42"; - }; - F9988BB70D81587400B6B03B /* ReleaseUniversal llvmgcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = "ReleaseUniversal llvmgcc42"; - }; - F9988BB80D81587400B6B03B /* ReleaseUniversal llvmgcc42 */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - CFLAGS = "-arch i386 -arch x86_64 -arch ppc -arch ppc64 $(CFLAGS)"; - 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 llvmgcc42"; - }; - 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 = { - 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 = { - 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 /* Wish-Debug.xcconfig */; - buildSettings = { - CONFIGURE_ARGS = "$(CONFIGURE_ARGS) --disable-threads"; - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = DebugUnthreaded; - }; - F99EE7420BE835310060D4AF /* DebugLeaks */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE8330B65C87F00310EA2 /* Wish-Debug.xcconfig */; - buildSettings = { - GCC_PREPROCESSOR_DEFINITIONS = ( - PURIFY, - "$(GCC_PREPROCESSOR_DEFINITIONS)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - PREBINDING = NO; - }; - name = DebugLeaks; - }; - F9DB62080B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB62090B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB620A0B65ADA800A370FB /* ReleaseUniversal10.4uSDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CFLAGS = "-arch i386 -arch ppc $(CFLAGS)"; - CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.4; - PREBINDING = NO; - SDKROOT = macosx10.4; - }; - name = ReleaseUniversal10.4uSDK; - }; - F9DB621F0B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - LDFLAGS = "-force_cpusubtype_ALL $(LDFLAGS)"; - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62200B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62210B65AFDE00A370FB /* ReleasePPC10.3.9SDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ppc; - CFLAGS = "$(PER_ARCH_CFLAGS_ppc) $(CFLAGS)"; - CPPFLAGS = "-arch ppc -isysroot $(SDKROOT) $(CPPFLAGS)"; - MACOSX_DEPLOYMENT_TARGET = 10.3; - PREBINDING = YES; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.3.9.sdk"; - }; - name = ReleasePPC10.3.9SDK; - }; - F9DB62350B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - PRODUCT_NAME = Wish; - SKIP_INSTALL = NO; - }; - name = ReleasePPC10.2.8SDK; - }; - F9DB62360B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - buildSettings = { - OTHER_LDFLAGS = ( - "$(OTHER_LDFLAGS_AQUA)", - "$(OTHER_LDFLAGS)", - ); - PRODUCT_NAME = tktest; - }; - name = ReleasePPC10.2.8SDK; - }; - F9DB62370B65B03A00A370FB /* ReleasePPC10.2.8SDK */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = ppc; - CFLAGS = "$(PER_ARCH_CFLAGS_ppc) -fconstant-cfstrings $(CFLAGS)"; - CPPFLAGS = "-arch ppc -D__CONSTANT_CFSTRINGS__ -DMAC_OS_X_VERSION_MIN_REQUIRED=1020 -nostdinc -isystem $(SDKROOT)/usr/include/gcc/darwin/$(GCC_VERSION) -isystem $(SDKROOT)/usr/include -F$(SDKROOT)/System/Library/Frameworks"; - DEBUG_INFORMATION_FORMAT = stabs; - GCC = /usr/bin/gcc; - GCC_VERSION = 3.3; - LDFLAGS = "-L$(SDKROOT)/usr/lib/gcc/darwin/$(GCC_VERSION) -Wl,-syslibroot,$(SDKROOT)"; - MACOSX_DEPLOYMENT_TARGET = 10.2; - PREBINDING = YES; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.2.8.sdk"; - WARNING_CFLAGS = ( - "$(WARNING_CFLAGS_GCC3)", - "-Wno-long-double", - ); - }; - name = ReleasePPC10.2.8SDK; - }; - 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 -arch ppc64 $(CFLAGS)"; - 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 /* Wish-Release.xcconfig */; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_BIT)"; - CFLAGS = "-arch i386 -arch ppc $(CFLAGS)"; - CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; - 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 */, - F9988AB20D814C6500B6B03B /* Debug gcc42 */, - F9988AB60D814C7500B6B03B /* Debug llvmgcc42 */, - F95CC8AE09158F3100EA5ACE /* DebugNoFixZL */, - F99EE73B0BE835310060D4AF /* DebugUnthreaded */, - F98751300DE7B57E00B1C9EC /* DebugNoCF */, - F98751340DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084370BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73C0BE835310060D4AF /* DebugLeaks */, - F9359B260DF212DA00E04F67 /* DebugGCov */, - F97AED1B0B660B2100310EA2 /* Debug64bit */, - F95CC8AD09158F3100EA5ACE /* Release */, - F91BCC4F093152310042A6BF /* ReleaseUniversal */, - F9988BB20D81586D00B6B03B /* ReleaseUniversal gcc42 */, - F9988BB60D81587400B6B03B /* ReleaseUniversal llvmgcc42 */, - F9EEED960C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - F9DB62080B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB621F0B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62350B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B009158F3100EA5ACE /* Build configuration list for PBXNativeTarget "tktest" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B109158F3100EA5ACE /* Debug */, - F9988AB30D814C6500B6B03B /* Debug gcc42 */, - F9988AB70D814C7500B6B03B /* Debug llvmgcc42 */, - F95CC8B309158F3100EA5ACE /* DebugNoFixZL */, - F99EE73D0BE835310060D4AF /* DebugUnthreaded */, - F98751310DE7B57E00B1C9EC /* DebugNoCF */, - F98751350DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084380BB93D2800CD0B9E /* DebugMemCompile */, - F99EE73E0BE835310060D4AF /* DebugLeaks */, - F9359B270DF212DA00E04F67 /* DebugGCov */, - F97AED1C0B660B2100310EA2 /* Debug64bit */, - F95CC8B209158F3100EA5ACE /* Release */, - F91BCC50093152310042A6BF /* ReleaseUniversal */, - F9988BB30D81586D00B6B03B /* ReleaseUniversal gcc42 */, - F9988BB70D81587400B6B03B /* ReleaseUniversal llvmgcc42 */, - F9EEED970C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - F9DB62090B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB62200B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62360B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F95CC8B509158F3100EA5ACE /* Build configuration list for PBXProject "Wish" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F95CC8B609158F3100EA5ACE /* Debug */, - F9988AB10D814C6500B6B03B /* Debug gcc42 */, - F9988AB50D814C7500B6B03B /* Debug llvmgcc42 */, - F95CC8B809158F3100EA5ACE /* DebugNoFixZL */, - F99EE7410BE835310060D4AF /* DebugUnthreaded */, - F987512F0DE7B57E00B1C9EC /* DebugNoCF */, - F98751330DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F930843A0BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7420BE835310060D4AF /* DebugLeaks */, - F9359B250DF212DA00E04F67 /* DebugGCov */, - F97AED1E0B660B2100310EA2 /* Debug64bit */, - F95CC8B709158F3100EA5ACE /* Release */, - F91BCC51093152310042A6BF /* ReleaseUniversal */, - F9988BB10D81586D00B6B03B /* ReleaseUniversal gcc42 */, - F9988BB50D81587400B6B03B /* ReleaseUniversal llvmgcc42 */, - F9EEED990C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - F9DB620A0B65ADA800A370FB /* ReleaseUniversal10.4uSDK */, - F9DB62210B65AFDE00A370FB /* ReleasePPC10.3.9SDK */, - F9DB62370B65B03A00A370FB /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; - F97258A80A86873D00096C78 /* Build configuration list for PBXNativeTarget "tktest-X11" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - F97258A90A86873D00096C78 /* Debug */, - F9988AB40D814C6500B6B03B /* Debug gcc42 */, - F9988AB80D814C7500B6B03B /* Debug llvmgcc42 */, - F97258AB0A86873D00096C78 /* DebugNoFixZL */, - F99EE73F0BE835310060D4AF /* DebugUnthreaded */, - F98751320DE7B57E00B1C9EC /* DebugNoCF */, - F98751360DE7B5A200B1C9EC /* DebugNoCFUnthreaded */, - F93084390BB93D2800CD0B9E /* DebugMemCompile */, - F99EE7400BE835310060D4AF /* DebugLeaks */, - F9359B280DF212DA00E04F67 /* DebugGCov */, - F97AED1D0B660B2100310EA2 /* Debug64bit */, - F97258AA0A86873D00096C78 /* Release */, - F97258AC0A86873D00096C78 /* ReleaseUniversal */, - F9988BB40D81586D00B6B03B /* ReleaseUniversal gcc42 */, - F9988BB80D81587400B6B03B /* ReleaseUniversal llvmgcc42 */, - F9EEED980C2FEFD300396116 /* ReleaseUniversal10.5SDK */, - F97AED080B660A6C00310EA2 /* ReleaseUniversal10.4uSDK */, - F97AED0F0B660AA300310EA2 /* ReleasePPC10.3.9SDK */, - F97AED160B660AF100310EA2 /* ReleasePPC10.2.8SDK */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; - }; -/* End XCConfigurationList section */ - }; - rootObject = 08FB7793FE84155DC02AAC07 /* Project object */; -} diff --git a/carbon/configure.ac b/carbon/configure.ac deleted file mode 100644 index 229af64..0000000 --- a/carbon/configure.ac +++ /dev/null @@ -1,11 +0,0 @@ -#! /bin/bash -norc -dnl This file is an input file used by the GNU "autoconf" program to -dnl generate the file "configure", which is run during Tk installation -dnl to configure the system for the local environment. - -dnl Ensure that the config (auto)headers support is used, then just -dnl include the configure sources from ../unix: - -m4_include(../unix/aclocal.m4) -m4_define(SC_USE_CONFIG_HEADERS) -m4_include(../unix/configure.in) diff --git a/carbon/tkAboutDlg.r b/carbon/tkAboutDlg.r deleted file mode 100644 index 1492b90..0000000 --- a/carbon/tkAboutDlg.r +++ /dev/null @@ -1,382 +0,0 @@ -/* - * tkAboutDlg.r -- - * - * This file creates resources for the Tk "About Box" dialog. - * - * Copyright (c) 1996 Sun Microsystems, Inc. - * Copyright (c) 2006-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. - */ - -/* - * The folowing include and defines help construct - * the version string for Tcl. - */ - -#define RC_INVOKED -#include <Carbon.r> -#include <tcl.h> -#include "tk.h" - -/* - * The following two resources define the default "About Box" for Mac Tk. - * This dialog appears if the "About Tk..." menu item is selected from - * the Apple menu. This dialog may be overridden by defining a Tcl procedure - * with the name of "tkAboutDialog". If this procedure is defined the - * default dialog will not be shown and the Tcl procedure is expected to - * create and manage an About Dialog box. - */ - -resource 'DLOG' (128, "About Box", purgeable) { - {60, 40, 332, 404}, - kWindowMovableModalDialogProc, - visible, - noGoAway, - 0x0, - 128, - "About Tcl & Tk", - centerMainScreen -}; - -resource 'DITL' (128, "About Box", purgeable) { - { - {232, 147, 252, 217}, Button {enabled, "Ok"}, - { 20, 108, 212, 344}, StaticText {disabled, - "Tcl " TCL_PATCH_LEVEL " & Tk " TK_PATCH_LEVEL "\n\n" - "© 1987-2009 Tcl Core Team." "\n\n" - "© 2002-2009 Daniel A. Steffen." "\n\n" - "© 2001-2009 Apple Inc." "\n\n" - "© 2001-2002 Jim Ingham & Ian Reid" "\n" - "© 1998-2000 Jim Ingham & Ray Johnson" "\n" - "© 1998-2000 Scriptics Inc." "\n" - "© 1996-1997 Sun Microsystems Inc."}, - { 20, 24, 120, 92}, Picture {enabled, 128} - } -}; - -resource 'dlgx' (128, "About Box", purgeable) { - versionZero { - kDialogFlagsUseThemeBackground | kDialogFlagsUseControlHierarchy - | kDialogFlagsHandleMovableModal | kDialogFlagsUseThemeControls - } -}; - -data 'PICT' (128, purgeable) { - $"13A4 0000 0000 0064 0044 0011 02FF 0C00" - $"FFFE 0000 0048 0000 0048 0000 0000 0000" - $"0064 0044 0000 0000 0001 000A 0000 0000" - $"0064 0044 0099 8044 0000 0000 0064 0044" - $"0000 0000 0000 0000 0048 0000 0048 0000" - $"0000 0008 0001 0008 0000 0000 0108 00D8" - $"0000 0000 0001 5A5A 8000 00FF 3736 FF00" - $"FF00 FF00 3535 FF00 FF00 CC00 3434 FF00" - $"FF00 9900 3333 FF00 FF00 6600 3736 FF00" - $"FF00 3300 3535 FF00 FF00 0000 3434 FF00" - $"CC00 FF00 3333 FF00 CC00 CC00 3736 FF00" - $"CC00 9900 3535 FF00 CC00 6600 FAFA FF00" - $"CC00 3300 3333 FF00 CC00 0000 3130 FF00" - $"9900 FF00 2F2F FF00 9900 CC00 FAFA FF00" - $"9900 9900 F9F9 FF00 9900 6600 3130 FF00" - $"9900 3300 2F2F FF00 9900 0000 2E2E FF00" - $"6600 FF00 F9F9 FF00 6600 CC00 3130 FF00" - $"6600 9900 2F2F FF00 6600 6600 2E2E FF00" - $"6600 3300 2D2D FF00 6600 0000 3130 FF00" - $"3300 FF00 2F2F FF00 3300 CC00 2E2E FF00" - $"3300 9900 2D2D FF00 3300 6600 3130 FF00" - $"3300 3300 2F2F FF00 3300 0000 2E2E FF00" - $"0000 FF00 2D2D FF00 0000 CC00 3130 FF00" - $"0000 9900 2F2F FF00 0000 6600 2E2E FF00" - $"0000 3300 2DF8 FF00 0000 0000 2B2A CC00" - $"FF00 FF00 2929 CC00 FF00 CC00 2828 CC00" - $"FF00 9900 27F8 CC00 FF00 6600 2B2A CC00" - $"FF00 3300 2929 CC00 FF00 0000 2828 CC00" - $"CC00 FF00 2727 CC00 CC00 CC00 2B2A CC00" - $"CC00 9900 2929 CC00 CC00 6600 2828 CC00" - $"CC00 3300 2727 CC00 CC00 0000 2B2A CC00" - $"9900 FF00 2929 CC00 9900 CC00 2828 CC00" - $"9900 9900 2727 CC00 9900 6600 DBDB CC00" - $"9900 3300 4747 CC00 9900 0000 4646 CC00" - $"6600 FF00 4545 CC00 6600 CC00 DBDB CC00" - $"6600 9900 4747 CC00 6600 6600 4646 CC00" - $"6600 3300 4545 CC00 6600 0000 DBDB CC00" - $"3300 FF00 4747 CC00 3300 CC00 4646 CC00" - $"3300 9900 4545 CC00 3300 6600 DBDB CC00" - $"3300 3300 4141 CC00 3300 0000 4040 CC00" - $"0000 FF00 3F3F CC00 0000 CC00 4342 CC00" - $"0000 9900 4141 CC00 0000 6600 4040 CC00" - $"0000 3300 3F3F CC00 0000 0000 4342 9900" - $"FF00 FF00 4141 9900 FF00 CC00 4040 9900" - $"FF00 9900 3F3F 9900 FF00 6600 4342 9900" - $"FF00 3300 4141 9900 FF00 0000 4040 9900" - $"CC00 FF00 3F3F 9900 CC00 CC00 4342 9900" - $"CC00 9900 4141 9900 CC00 6600 4040 9900" - $"CC00 3300 3F3F 9900 CC00 0000 4342 9900" - $"9900 FF00 4141 9900 9900 CC00 4040 9900" - $"9900 9900 3F3F 9900 9900 6600 3D3C 9900" - $"9900 3300 3B3B 9900 9900 0000 3A3A 9900" - $"6600 FF00 3939 9900 6600 CC00 3D3C 9900" - $"6600 9900 3B3B 9900 6600 6600 3A3A 9900" - $"6600 3300 3939 9900 6600 0000 3D3C 9900" - $"3300 FF00 3B3B 9900 3300 CC00 3A3A 9900" - $"3300 9900 3939 9900 3300 6600 3D3C 9900" - $"3300 3300 3B3B 9900 3300 0000 3A3A 9900" - $"0000 FF00 3939 9900 0000 CC00 3D3C 9900" - $"0000 9900 3B3B 9900 0000 6600 3A3A 9900" - $"0000 3300 3939 9900 0000 0000 3D3C 6600" - $"FF00 FF00 3B3B 6600 FF00 CC00 3A3A 6600" - $"FF00 9900 3939 6600 FF00 6600 3D3C 6600" - $"FF00 3300 3B3B 6600 FF00 0000 3A3A 6600" - $"CC00 FF00 3939 6600 CC00 CC00 3736 6600" - $"CC00 9900 3535 6600 CC00 6600 3434 6600" - $"CC00 3300 3333 6600 CC00 0000 3736 6600" - $"9900 FF00 3535 6600 9900 CC00 3434 6600" - $"9900 9900 3333 6600 9900 6600 3736 6600" - $"9900 3300 3535 6600 9900 0000 3434 6600" - $"6600 FF00 3333 6600 6600 CC00 3736 6600" - $"6600 9900 3535 6600 6600 6600 3434 6600" - $"6600 3300 3333 6600 6600 0000 3736 6600" - $"3300 FF00 3535 6600 3300 CC00 3434 6600" - $"3300 9900 3333 6600 3300 6600 3736 6600" - $"3300 3300 3535 6600 3300 0000 3434 6600" - $"0000 FF00 3333 6600 0000 CC00 3130 6600" - $"0000 9900 2F2F 6600 0000 6600 2E2E 6600" - $"0000 3300 F9F9 6600 0000 0000 3130 3300" - $"FF00 FF00 2F2F 3300 FF00 CC00 2E2E 3300" - $"FF00 9900 F9F9 3300 FF00 6600 3130 3300" - $"FF00 3300 2F2F 3300 FF00 0000 2E2E 3300" - $"CC00 FF00 2D2D 3300 CC00 CC00 3130 3300" - $"CC00 9900 2F2F 3300 CC00 6600 2E2E 3300" - $"CC00 3300 2D2D 3300 CC00 0000 3130 3300" - $"9900 FF00 2F2F 3300 9900 CC00 2E2E 3300" - $"9900 9900 2D2D 3300 9900 6600 3130 3300" - $"9900 3300 2F2F 3300 9900 0000 2E2E 3300" - $"6600 FF00 2DF8 3300 6600 CC00 2B2A 3300" - $"6600 9900 2929 3300 6600 6600 2828 3300" - $"6600 3300 27F8 3300 6600 0000 2B2A 3300" - $"3300 FF00 2929 3300 3300 CC00 2828 3300" - $"3300 9900 2727 3300 3300 6600 2B2A 3300" - $"3300 3300 2929 3300 3300 0000 2828 3300" - $"0000 FF00 2727 3300 0000 CC00 2B2A 3300" - $"0000 9900 2929 3300 0000 6600 2828 3300" - $"0000 3300 2727 3300 0000 0000 4948 0000" - $"FF00 FF00 4747 0000 FF00 CC00 4646 0000" - $"FF00 9900 4545 0000 FF00 6600 4948 0000" - $"FF00 3300 4747 0000 FF00 0000 4646 0000" - $"CC00 FF00 4545 0000 CC00 CC00 4948 0000" - $"CC00 9900 4747 0000 CC00 6600 4646 0000" - $"CC00 3300 4545 0000 CC00 0000 4342 0000" - $"9900 FF00 4141 0000 9900 CC00 4040 0000" - $"9900 9900 3F3F 0000 9900 6600 4342 0000" - $"9900 3300 4141 0000 9900 0000 4040 0000" - $"6600 FF00 3F3F 0000 6600 CC00 4342 0000" - $"6600 9900 4141 0000 6600 6600 4040 0000" - $"6600 3300 3F3F 0000 6600 0000 4342 0000" - $"3300 FF00 4141 0000 3300 CC00 4040 0000" - $"3300 9900 3F3F 0000 3300 6600 4342 0000" - $"3300 3300 4141 0000 3300 0000 4040 0000" - $"0000 FF00 3F3F 0000 0000 CC00 4342 0000" - $"0000 9900 4141 0000 0000 6600 4040 0000" - $"0000 3300 3F3F EE00 0000 0000 3D3C DD00" - $"0000 0000 3B3B BB00 0000 0000 3A3A AA00" - $"0000 0000 3939 8800 0000 0000 3D3C 7700" - $"0000 0000 3B3B 5500 0000 0000 3A3A 4400" - $"0000 0000 3939 2200 0000 0000 3D3C 1100" - $"0000 0000 3B3B 0000 EE00 0000 3A3A 0000" - $"DD00 0000 3939 0000 BB00 0000 3D3C 0000" - $"AA00 0000 3B3B 0000 8800 0000 3A3A 0000" - $"7700 0000 3939 0000 5500 0000 3D3C 0000" - $"4400 0000 3B3B 0000 2200 0000 3A3A 0000" - $"1100 0000 3939 0000 0000 EE00 3D3C 0000" - $"0000 DD00 3B3B 0000 0000 BB00 3A3A 0000" - $"0000 AA00 3939 0000 0000 8800 3D3C 0000" - $"0000 7700 3B3B 0000 0000 5500 3A3A 0000" - $"0000 4400 3939 0000 0000 2200 3736 0000" - $"0000 1100 3535 EE00 EE00 EE00 3434 DD00" - $"DD00 DD00 3333 BB00 BB00 BB00 3736 AA00" - $"AA00 AA00 3535 8800 8800 8800 3434 7700" - $"7700 7700 3333 5500 5500 5500 3736 4400" - $"4400 4400 3535 2200 2200 2200 3434 1100" - $"1100 1100 3333 0000 0000 0000 0000 0000" - $"0064 0044 0000 0000 0064 0044 0000 000A" - $"0000 0000 0064 0044 02BD 0013 E800 01F5" - $"F6FE 07FE 0E02 3232 33FD 3900 0EE6 001D" - $"FC00 01F5 F5FE 0700 08FE 0E02 3232 33FE" - $"3900 3AFC 40F2 4102 4033 07E9 0017 0100" - $"0EFC 40DC 4102 390E F5F5 0002 F5F5 F6FE" - $"0702 0E07 0016 0100 32D5 4104 4039 0E32" - $"33FD 3900 3AFC 40FC 4101 3200 0801 000E" - $"C141 010E 0008 0100 0EC1 4101 0800 0801" - $"000E C141 0107 0008 0100 0EC1 4101 0700" - $"0901 0007 C241 0240 F500 0E01 0007 E841" - $"0147 47DD 4102 4000 0012 0100 07F0 4100" - $"47FA 4101 3B3B DD41 0240 0000 1901 0007" - $"F141 0C47 3B0B 3B47 4141 4711 0505 3B47" - $"DF41 023A 0000 1701 00F6 F041 010B 0BFE" - $"4105 473B 0505 113B DE41 0239 0000 1A02" - $"00F5 40F3 410C 473B 053B 4741 4741 0B0B" - $"3B47 47DE 4102 3900 0018 0200 F540 F341" - $"0247 110B FE41 0447 1105 4147 DC41 0233" - $"0000 1B02 0000 40F3 4103 4711 1147 FE41" - $"0205 3547 F741 FD47 E941 0232 0000 1E02" - $"0000 40F2 4106 113B 4741 4735 0BF7 4106" - $"4741 390E 0E40 47EA 4102 0E00 0021 0200" - $"0040 F241 0711 3B47 4141 0B35 47F9 4102" - $"4740 07FE 0002 F640 47EB 4102 0E00 0023" - $"0200 0040 F341 0847 3541 4147 3B05 4147" - $"FA41 0947 3AF6 00F5 4F55 F50E 47EB 4102" - $"0700 0022 0200 003A F341 0147 3BFE 4101" - $"0B0B F941 0547 3AF5 0055 C8FE CE01 5640" - $"EB41 0207 0000 1F02 0000 39F0 4104 4741" - $"053B 47FB 4104 4740 F5F5 A4FC CE01 C85D" - $"EB41 02F6 0000 1F02 0000 39F0 4104 473B" - $"0541 47FC 4104 4740 07F6 C8FA CE00 64EC" - $"4103 40F5 0000 1C02 0000 39F0 4102 4711" - $"0BFA 4103 4708 2AC8 FACE 0164 D8EC 4100" - $"40FE 0025 0200 0039 EF41 020B 3B47 FC41" - $"0347 0FF5 A4FB CE02 C887 D8FC 41FE 47FC" - $"4100 47F9 4100 3AFE 0028 0200 0039 EF41" - $"020B 3B47 FD41 0347 3900 A4FA CE00 ABFA" - $"4109 3B11 3B41 4147 3B0B 3B47 FA41 0039" - $"FE00 2402 0000 33F1 4102 4741 0BFA 4101" - $"0779 F9CE 0064 FA41 0235 050B FD41 010B" - $"0BF9 4100 39FE 0028 0200 0032 F141 0247" - $"3B0B FC41 0247 39F6 F9CE 0187 D8FB 4103" - $"4741 050B FE41 0247 110B F941 0039 FE00" - $"2C02 0000 32F1 4102 473B 11FB 4101 0879" - $"FACE 05AA 4041 4147 47FE 410A 4741 0511" - $"4741 4147 3511 47FA 4100 32FE 002F 0200" - $"000E F141 0347 3B11 47FE 4103 4740 F6C8" - $"FACE 0564 D841 4039 39FE 4104 473B 053B" - $"47FE 4102 3541 47FA 4100 0EFE 0027 0200" - $"000E F141 0347 3B3B 47FE 4102 470F 79FA" - $"CE0C 8741 4032 F500 003A 4741 473B 05F2" - $"4100 0EFE 0027 0200 000E F141 0347 3B3B" - $"47FD 4101 0EA4 FACE 01AB AAFE C808 7900" - $"3947 4147 110B 47F3 4100 07FE 001C 0200" - $"000E EA41 0240 2BC8 F5CE 0881 0033 4741" - $"410B 3B47 F341 0007 FE00 1A02 0000 08EB" - $"4102 473A 55F4 CE06 5D00 3947 4741 0BF1" - $"4100 F6FE 001C 0200 0007 EB41 0247 3979" - $"F4CE 0739 0039 4747 3511 47F3 4101 40F5" - $"FE00 1C02 0000 07EB 4102 4739 A4F5 CE08" - $"AB0E 0040 4741 1141 47F3 4100 40FD 001B" - $"0200 0007 EB41 0247 39A4 F5CE 0787 0707" - $"4147 4111 47F2 4100 40FD 001B 0200 0007" - $"EB41 0247 39C8 F5CE 0763 F532 4747 3B3B" - $"47F2 4100 3AFD 001A 0300 00F6 40EC 4102" - $"4739 C8F5 CE05 39F5 4047 413B F041 0039" - $"FD00 1C03 0000 F540 EB41 0140 C8FD CE01" - $"C8A4 FCCE 03AB 080E 47ED 4100 39FD 001A" - $"FE00 0040 EB41 0040 FCCE 01A4 C8FC CE03" - $"FA07 4047 ED41 0032 FD00 1AFE 0000 40EA" - $"4100 AAFE CE02 87F9 C8FC CE02 560F 47EC" - $"4100 32FD 0019 FE00 0040 EA41 00AB FECE" - $"0264 56C8 FDCE 01C8 32EA 4100 0EFD 001B" - $"FE00 0040 ED41 030E 4047 87FE CE01 4055" - $"FCCE 01FA 40EA 4100 08FD 001A FE00 003A" - $"ED41 0807 0740 FBCE CEAB 3979 FDCE 00AB" - $"E841 0007 FD00 1CFE 0000 3AED 4108 0700" - $"F6A4 CECE 8733 79FD CE02 4147 47EA 4100" - $"07FD 001E FE00 0039 ED41 0807 2AA4 C8CE" - $"CE88 0E9D FECE 0364 1C39 39EB 4101 40F5" - $"FD00 1CFE 0000 39ED 4101 074F FDCE 0264" - $"F7A4 FECE 03AB 80F6 07EB 4100 40FC 001C" - $"FE00 0039 ED41 0108 79FE CE03 AB40 2BA4" - $"FCCE 02F7 0E47 EC41 0040 FC00 1CFE 0000" - $"39ED 4101 0879 FECE 03AB 40F6 C8FC CE02" - $"F615 47EC 4100 40FC 001E FE00 003A EE41" - $"0247 0E79 FECE 03AB 40F5 C8FD CE03 A4F5" - $"3A47 EC41 0040 FC00 1EFE 0000 3AEE 4102" - $"470E 56FE CE03 FB3A F6C8 FDCE 0280 F540" - $"EB41 0140 F5FD 001E FE00 0040 EE41 0947" - $"0F56 CECE C888 39F6 C8FD CE02 5601 40EB" - $"4101 40F5 FD00 1CFE 0000 40EE 4109 4739" - $"32CE CEC8 8839 2AC8 FDCE 0156 07E9 4100" - $"F6FD 001B FE00 0040 EE41 0847 3A32 CECE" - $"C864 152A FCCE 0132 07E9 4100 07FD 001A" - $"FE00 0040 ED41 0740 32AB CEC8 6439 4EFC" - $"CE01 3A07 E941 0007 FD00 1D03 0000 F540" - $"ED41 0740 0EAB CECE 640F 4EFD CE03 AB40" - $"0840 EA41 0007 FD00 1B03 0000 F540 EC41" - $"060F 81CE CE64 334E FDCE 02AB 400E E941" - $"000E FD00 1C02 0000 F6EC 4107 4715 FACE" - $"CE64 334E FDCE 0387 0F0E 47EA 4100 0EFD" - $"001C 0200 0007 EC41 0747 16F9 CEC8 6433" - $"4EFD CE03 6308 4047 EA41 000E FD00 1A02" - $"0000 07EB 4106 40F9 CEC8 6439 4EFD CE02" - $"3940 47E9 4100 32FD 001B 0200 0007 EA41" - $"0539 CECE 8839 F6FE CE04 AB41 4139 40EA" - $"4100 32FD 001C 0200 0007 EB41 0E47 3AC8" - $"CE88 39F6 C8CE CE64 15F6 F540 EA41 0033" - $"FD00 1A02 0000 07EA 410C 40A4 CE87 392A" - $"C8CE AB41 40F8 F6E9 4100 39FD 001B 0200" - $"000E EB41 0D47 41AB C887 39F5 C8CE ABAB" - $"CEA4 07E9 4100 39FD 001C 0200 000E ED41" - $"0947 3939 4787 C8AB 40F5 C8FD CE01 A40E" - $"E941 0039 FD00 1D02 0000 0EED 4109 473A" - $"0007 80CE AB40 F5C8 FDCE 0255 0E47 EA41" - $"0039 FD00 1B02 0000 0EEB 4107 0779 C8CE" - $"CE40 F6A4 FDCE 022B 3947 EA41 003A FD00" - $"1C02 0000 0EEC 4102 4739 79FE CE02 6407" - $"A4FE CE02 A407 40E9 4100 40FD 001A 0200" - $"0032 EA41 0632 A4CE CE88 0879 FECE 02F9" - $"0F47 E941 0040 FD00 1A02 0000 32EB 4107" - $"4740 F7C8 CE87 0E79 FECE 0132 40E8 4100" - $"40FD 0019 0200 0033 EA41 0B47 40F8 C8AB" - $"0E55 CECE 8015 47E8 4100 40FD 0017 0200" - $"0033 E941 0847 40F9 A439 4FCE CE5D E641" - $"0140 F5FE 0014 0200 0039 E841 0647 64FB" - $"392B C8AB E441 00F6 FE00 1102 0000 39E5" - $"4103 40F6 8764 E441 0007 FE00 1E02 0000" - $"39EB 4102 3A0E 0EFD 4102 0740 47F6 4104" - $"400F 0839 47F4 4100 07FE 0027 0200 0039" - $"FB41 0147 47F2 4102 0800 40FE 4102 0839" - $"47FC 4101 4747 FC41 0339 0039 47F4 4100" - $"07FE 0029 0200 0039 FB41 0140 39F3 4109" - $"470E F540 4141 470E 3347 FC41 0139 3AFD" - $"4104 4739 0039 47F4 4100 08FE 0036 0200" - $"003A FC41 0347 0E00 40FC 4102 4741 40FC" - $"4109 470E F540 4141 4733 0E47 FE41 0447" - $"4000 0E47 FE41 0447 3900 3941 FE40 F741" - $"000E FE00 3A02 0000 3AFD 410E 4740 0700" - $"0E40 4741 4147 390E 390E 40FE 4108 470E" - $"F540 4141 4739 0EFC 4103 0F00 0739 FE41" - $"0747 3900 3940 080F 39F7 4100 0EFE 0035" - $"0200 0040 FB41 020E 0040 FE41 0D47 4000" - $"3941 0032 4741 4147 0EF5 40FE 4101 4008" - $"FC41 023A 000E FD41 0547 3900 3939 33F5" - $"4100 0EFE 0039 0200 0040 FC41 0347 0E00" - $"40FE 4106 4732 0040 4139 40FE 4103 470E" - $"F540 FD41 0108 40FE 4104 4740 000E 47FE" - $"4106 4739 0007 F540 47F6 4100 32FE 003A" - $"0200 0040 FC41 0C47 0E00 4047 4141 470E" - $"0040 4747 FD41 0347 0EF5 40FE 410A 470E" - $"3947 4141 4740 000E 47FE 4107 4739 000E" - $"0007 4147 F741 0032 FE00 3802 0000 40FC" - $"4102 470E 00FD 4106 4739 003A 4740 39FE" - $"4102 470E F5FD 410A 4733 3347 4141 4740" - $"000E 47FE 4106 4739 0039 3900 0EF6 4100" - $"33FE 003A 0200 F540 FC41 0447 3200 0E39" - $"FD41 0B0E 0E40 333A 4741 413A 07F5 39FE" - $"4102 473A 0EFD 410F 40F5 0733 4041 4140" - $"0E00 0E40 0700 0E40 F841 0039 FE00 2902" - $"00F5 40FA 4101 3939 FB41 023A 3A40 FD41" - $"FD40 FD41 0240 0E40 FD41 0240 3940 FD41" - $"FA40 F741 0039 FE00 2A01 00F6 F941 0147" - $"47FB 4101 4747 FB41 0147 47FB 4101 3940" - $"FD41 0147 47FB 4100 47FE 4100 47F6 4100" - $"39FE 000D 0100 07E1 4100 40E4 4100 3AFE" - $"0009 0100 07C3 4100 3AFE 0009 0100 07C3" - $"4100 40FE 0009 0100 07C3 4100 40FE 0009" - $"0100 07C3 4100 40FE 000A 0100 0EC3 4103" - $"40F5 0000 0901 000E C241 02F6 0000 0901" - $"000E C241 0207 0000 0901 000E C241 0207" - $"0000 1101 000E ED41 FE40 003A F940 E241" - $"0207 0000 2B01 0032 F941 FE40 FE39 0632" - $"0E0E 0707 F6F5 F800 02F5 F5F6 FB07 FB0E" - $"0332 3233 33FB 3901 3A3A FB40 0207 0000" - $"0E0A 000E 3939 320E 0E07 07F6 F5C8 0002" - $"BD00 00FF" -}; diff --git a/carbon/tkMacOSX.h b/carbon/tkMacOSX.h deleted file mode 100644 index a2a35a5..0000000 --- a/carbon/tkMacOSX.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * tkMacOSX.h -- - * - * Declarations of Macintosh specific exported variables and procedures. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#ifndef _TKMAC -#define _TKMAC - -#ifndef _TK -#include "tk.h" -#endif - -#include <Carbon/Carbon.h> - -/* - * Structures and function types for handling Netscape-type in process - * embedding where Tk does not control the top-level - */ - -typedef int (Tk_MacOSXEmbedRegisterWinProc) (int winID, Tk_Window window); -typedef GWorldPtr (Tk_MacOSXEmbedGetGrafPortProc) (Tk_Window window); -typedef int (Tk_MacOSXEmbedMakeContainerExistProc) (Tk_Window window); -typedef void (Tk_MacOSXEmbedGetClipProc) (Tk_Window window, RgnHandle rgn); -typedef void (Tk_MacOSXEmbedGetOffsetInParentProc) (Tk_Window window, Point *ulCorner); - -#include "tkPlatDecls.h" - -#endif /* _TKMAC */ diff --git a/carbon/tkMacOSXAETE.r b/carbon/tkMacOSXAETE.r deleted file mode 100644 index 54bb8cc..0000000 --- a/carbon/tkMacOSXAETE.r +++ /dev/null @@ -1,51 +0,0 @@ -/* - * tclMacAETE.r -- - * - * This file creates the Apple Event Terminology resources - * for use by Wish.app. - * - * Copyright (c) 1997 Sun Microsystems, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -#define SystemSevenOrLater 1 - -#include <Carbon.r> - -/* - * The following resources defines the Apple Events that Tk can be - * sent from Apple Script. - */ - -resource 'aete' (0, "Wish Suite") { - 0x01, 0x00, english, roman, - { - "Required Suite", - "Events that every application should support", - 'reqd', 1, 1, - {}, - {}, - {}, - {}, - - "Wish Suite", "Events for the Wish application", 'WIsH', 1, 1, - { - "do script", "Execute a Tcl script", 'misc', kAEDoScript, - 'TEXT', "Result", replyOptional, singleItem, - notEnumerated, reserved, reserved, reserved, reserved, - reserved, reserved, reserved, reserved, reserved, - reserved, reserved, reserved, reserved, - 'TEXT', "Script to execute", directParamRequired, - singleItem, notEnumerated, changesState, reserved, - reserved, reserved, reserved, reserved, reserved, - reserved, reserved, reserved, reserved, reserved, - reserved, - {}, - }, - {}, - {}, - {}, - } -}; diff --git a/carbon/tkMacOSXBitmap.c b/carbon/tkMacOSXBitmap.c deleted file mode 100644 index 0f569f0..0000000 --- a/carbon/tkMacOSXBitmap.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * tkMacOSXBitmap.c -- - * - * This file handles the implementation of native bitmaps. - * - * Copyright (c) 1996-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXInt.h" - -/* - * Depending on the resource type there are different ways to - * draw native icons. - */ -#define TYPE1 0 /* Family icon suite. */ -#define TYPE2 1 /* ICON resource. */ -#define TYPE3 2 /* cicn resource. */ - -/* - * This data structure describes the id and type of a given icon. - * It is used as the source for native icons. - */ -typedef struct { - int id; /* Resource Id for Icon. */ - long int type; /* Type of icon. */ -} NativeIcon; - -/* - * This structure holds information about native bitmaps. - */ - -typedef struct { - const char *name; /* Name of icon. */ - long int type; /* Type of icon. */ - int id; /* Id of icon. */ - int size; /* Size of icon. */ -} BuiltInIcon; - -/* - * This array mapps a string name to the supported builtin icons - * on the Macintosh. - */ - -static BuiltInIcon builtInIcons[] = { - {"document", TYPE1, kGenericDocumentIconResource, 32}, - {"stationery", TYPE1, kGenericStationeryIconResource, 32}, - {"edition", TYPE1, kGenericEditionFileIconResource, 32}, - {"application", TYPE1, kGenericApplicationIconResource, 32}, - {"accessory", TYPE1, kGenericDeskAccessoryIconResource, 32}, - {"folder", TYPE1, kGenericFolderIconResource, 32}, - {"pfolder", TYPE1, kPrivateFolderIconResource, 32}, - {"trash", TYPE1, kTrashIconResource, 32}, - {"floppy", TYPE1, kFloppyIconResource, 32}, - {"ramdisk", TYPE1, kGenericRAMDiskIconResource, 32}, - {"cdrom", TYPE1, kGenericCDROMIconResource, 32}, - {"preferences", TYPE1, kGenericPreferencesIconResource, 32}, - {"querydoc", TYPE1, kGenericQueryDocumentIconResource, 32}, - {"stop", TYPE2, kStopIcon, 32}, - {"note", TYPE2, kNoteIcon, 32}, - {"caution", TYPE2, kCautionIcon, 32}, - {NULL, 0, 0, 0} -}; - -/* - *---------------------------------------------------------------------- - * - * TkpDefineNativeBitmaps -- - * - * Add native bitmaps. - * - * Results: - * A standard Tcl result. If an error occurs then TCL_ERROR is - * returned and a message is left in the interp's result. - * - * Side effects: - * "Name" is entered into the bitmap table and may be used from - * here on to refer to the given bitmap. - * - *---------------------------------------------------------------------- - */ - -void -TkpDefineNativeBitmaps(void) -{ - Tcl_HashTable *tablePtr = TkGetBitmapPredefTable(); - BuiltInIcon *builtInPtr; - - for (builtInPtr = builtInIcons; builtInPtr->name != NULL; builtInPtr++) { - Tcl_HashEntry *predefHashPtr; - const char * name; - int isNew; - - name = Tk_GetUid(builtInPtr->name); - predefHashPtr = Tcl_CreateHashEntry(tablePtr, name, &isNew); - if (isNew) { - TkPredefBitmap *predefPtr = ckalloc(sizeof(TkPredefBitmap)); - NativeIcon *nativeIconPtr = ckalloc(sizeof(NativeIcon)); - - nativeIconPtr->id = builtInPtr->id; - nativeIconPtr->type = builtInPtr->type; - predefPtr->source = nativeIconPtr; - predefPtr->width = builtInPtr->size; - predefPtr->height = builtInPtr->size; - predefPtr->native = 1; - Tcl_SetHashValue(predefHashPtr, predefPtr); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpCreateNativeBitmap -- - * - * Add native bitmaps. - * - * Results: - * A standard Tcl result. If an error occurs then TCL_ERROR is - * returned and a message is left in the interp's result. - * - * Side effects: - * "Name" is entered into the bitmap table and may be used from - * here on to refer to the given bitmap. - * - *---------------------------------------------------------------------- - */ - -Pixmap -TkpCreateNativeBitmap( - Display *display, - const void *source) /* Info about the icon to build. */ -{ - Pixmap pix; - Rect destRect; - CGrafPtr savePort; - Boolean portChanged; - const NativeIcon *nativeIconPtr; - - pix = Tk_GetPixmap(display, None, 32, 32, 0); - portChanged = QDSwapPort(TkMacOSXGetDrawablePort(pix), &savePort); - - nativeIconPtr = (const NativeIcon *) source; - SetRect(&destRect, 0, 0, 32, 32); - if (nativeIconPtr->type == TYPE1) { - RGBColor white = {0xFFFF, 0xFFFF, 0xFFFF}; - - RGBForeColor(&white); - PaintRect(&destRect); - PlotIconID(&destRect, atAbsoluteCenter, ttNone, nativeIconPtr->id); - } else if (nativeIconPtr->type == TYPE2) { - Handle icon = GetIcon(nativeIconPtr->id); - - if (icon != NULL) { - RGBColor black = {0, 0, 0}; - - RGBForeColor(&black); - PlotIcon(&destRect, icon); - ReleaseResource(icon); - } - } - - if (portChanged) { - QDSwapPort(savePort, NULL); - } - return pix; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetNativeAppBitmap -- - * - * Add native bitmaps. - * - * Results: - * A standard Tcl result. If an error occurs then TCL_ERROR is - * returned and a message is left in the interp's result. - * - * Side effects: - * "Name" is entered into the bitmap table and may be used from - * here on to refer to the given bitmap. - * - *---------------------------------------------------------------------- - */ - -Pixmap -TkpGetNativeAppBitmap( - Display *display, /* The display. */ - const char *name, /* The name of the bitmap. */ - int *width, /* The width & height of the bitmap. */ - int *height) -{ - Pixmap pix; - CGrafPtr savePort; - Boolean portChanged; - Rect destRect; - Handle resource; - int type = -1, destWrote; - Str255 nativeName; - Tcl_Encoding encoding; - - /* - * macRoman is the encoding that the resource fork uses. - */ - - encoding = Tcl_GetEncoding(NULL, "macRoman"); - Tcl_UtfToExternal(NULL, encoding, name, strlen(name), 0, NULL, - (char *) &nativeName[1], 255, NULL, &destWrote, NULL); - nativeName[0] = destWrote; - Tcl_FreeEncoding(encoding); - - resource = GetNamedResource('cicn', nativeName); - if (resource != NULL) { - type = TYPE3; - } else { - resource = GetNamedResource('ICON', nativeName); - if (resource != NULL) { - type = TYPE2; - } - } - - if (resource == NULL) { - return (Pixmap) NULL; - } - - pix = Tk_GetPixmap(display, None, 32, 32, 0); - portChanged = QDSwapPort(TkMacOSXGetDrawablePort(pix), &savePort); - - SetRect(&destRect, 0, 0, 32, 32); - if (type == TYPE2) { - RGBColor black = {0, 0, 0}; - - RGBForeColor(&black); - PlotIcon(&destRect, resource); - ReleaseResource(resource); - } else if (type == TYPE3) { - RGBColor white = {0xFFFF, 0xFFFF, 0xFFFF}; - short id; - ResType theType; - Str255 dummy; - - /* - * We need to first paint the background white. Also, for some reason - * we *must* use GetCIcon instead of GetNamedResource for PlotCIcon to - * work - so we use GetResInfo to get the id. - */ - - RGBForeColor(&white); - PaintRect(&destRect); - GetResInfo(resource, &id, &theType, dummy); - ReleaseResource(resource); - resource = (Handle) GetCIcon(id); - PlotCIcon(&destRect, (CIconHandle) resource); - DisposeCIcon((CIconHandle) resource); - } - - *width = 32; - *height = 32; - if (portChanged) { - QDSwapPort(savePort, NULL); - } - return pix; -} diff --git a/carbon/tkMacOSXButton.c b/carbon/tkMacOSXButton.c deleted file mode 100644 index a7ef5b8..0000000 --- a/carbon/tkMacOSXButton.c +++ /dev/null @@ -1,1621 +0,0 @@ -/* - * tkMacOSXButton.c -- - * - * This file implements the Macintosh specific portion of the - * button widgets. - * - * Copyright (c) 1996-1997 by Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkButton.h" -#include "tkMacOSXFont.h" -#include "tkMacOSXDebug.h" - -#define DEFAULT_USE_TK_TEXT 0 - -#define CONTROL_INITIALIZED 1 -#define FIRST_DRAW 2 -#define ACTIVE 4 - -#define MAX_VALUE 2 - -/* - * Default insets for controls - */ - -#define DEF_INSET_LEFT 2 -#define DEF_INSET_RIGHT 2 -#define DEF_INSET_TOP 2 -#define DEF_INSET_BOTTOM 4 - -/* - * Some defines used to control what type of control is drawn. - */ - -#define DRAW_LABEL 0 /* Labels are treated genericly. */ -#define DRAW_CONTROL 1 /* Draw using the Native control. */ -#define DRAW_CUSTOM 2 /* Make our own button drawing. */ -#define DRAW_BEVEL 3 - -/* - * Declaration of Mac specific button structure. - */ - -typedef struct { - SInt16 initialValue; - SInt16 minValue; - SInt16 maxValue; - SInt16 procID; - int isBevel; -} MacControlParams; - -typedef struct { - int drawType; - Tk_3DBorder border; - int relief; - int offset; /* 0 means this is a normal widget. 1 means - * it is an image button, so we offset the - * image to make the button appear to move - * up and down as the relief changes. */ - GC gc; - int hasImageOrBitmap; -} DrawParams; - -typedef struct { - TkButton info; /* Generic button info */ - int id; - int usingControl; - int useTkText; - int flags; /* Initialisation status */ - MacControlParams params; - WindowRef windowRef; - unsigned long userPaneBackground; - ControlRef userPane; /* Carbon control */ - ControlRef control; /* Carbon control */ - Str255 controlTitle; - ControlFontStyleRec fontStyle; - /* - * The following are used to store the image content for - * beveled buttons, i.e. buttons with images. - */ - ControlButtonContentInfo bevelButtonContent; - OpenCPicParams picParams; -} MacButton; - -/* - * Forward declarations for procedures defined later in this file: - */ - -static OSStatus SetUserPaneDrawProc(ControlRef control, - ControlUserPaneDrawProcPtr upp); -static OSStatus SetUserPaneSetUpSpecialBackgroundProc(ControlRef control, - ControlUserPaneBackgroundProcPtr upp); -static void UserPaneDraw(ControlRef control, ControlPartCode cpc); -static void UserPaneBackgroundProc(ControlHandle, - ControlBackgroundPtr info); - -static void ButtonEventProc(ClientData clientData, XEvent *eventPtr); -static int UpdateControlColors(MacButton *mbPtr); -static void TkMacOSXComputeControlParams(TkButton *butPtr, - MacControlParams *paramsPtr); -static int TkMacOSXComputeDrawParams(TkButton *butPtr, DrawParams *dpPtr); -static void TkMacOSXDrawControl(MacButton *butPtr, GWorldPtr destPort, GC gc, - Pixmap pixmap); -static void SetupBevelButton(MacButton *butPtr, ControlRef controlHandle, - GWorldPtr destPort, GC gc, Pixmap pixmap); - -/* - * The class procedure table for the button widgets. - */ - -const Tk_ClassProcs tkpButtonProcs = { - sizeof(Tk_ClassProcs), /* size */ - TkButtonWorldChanged, /* worldChangedProc */ - NULL, /* createProc */ - NULL /* modalProc */ -}; - -static int bCount; - - -/* - *---------------------------------------------------------------------- - * - * TkpCreateButton -- - * - * Allocate a new TkButton structure. - * - * Results: - * Returns a newly allocated TkButton structure. - * - * Side effects: - * Registers an event handler for the widget. - * - *---------------------------------------------------------------------- - */ - -TkButton * -TkpCreateButton( - Tk_Window tkwin) -{ - MacButton *macButtonPtr = ckalloc(sizeof(MacButton)); - - Tk_CreateEventHandler(tkwin, ActivateMask, - ButtonEventProc, (ClientData) macButtonPtr); - macButtonPtr->id = bCount++; - macButtonPtr->usingControl = 0; - macButtonPtr->flags = 0; - macButtonPtr->userPaneBackground = PIXEL_MAGIC << 24; - macButtonPtr->userPane = NULL; - macButtonPtr->control = NULL; - macButtonPtr->controlTitle[0] = 0; - macButtonPtr->controlTitle[1] = 0; - bzero(&macButtonPtr->params, sizeof(macButtonPtr->params)); - bzero(&macButtonPtr->fontStyle, sizeof(macButtonPtr->fontStyle)); - - return (TkButton *)macButtonPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDisplayButton -- - * - * This procedure is invoked to display a button widget. It is - * normally invoked as an idle handler. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the button in its - * current mode. The REDRAW_PENDING flag is cleared. - * - *---------------------------------------------------------------------- - */ - -void -TkpDisplayButton( - ClientData clientData) /* Information about widget. */ -{ - MacButton *macButtonPtr = (MacButton *) clientData; - TkButton *butPtr = (TkButton *) clientData; - Tk_Window tkwin = butPtr->tkwin; - CGrafPtr destPort, savePort; - Boolean portChanged; - Pixmap pixmap; - int width, height, fullWidth, fullHeight, textXOffset, textYOffset; - int borderWidth = 0, wasUsingControl; - int haveImage = 0, haveText = 0, imageWidth = 0, imageHeight = 0; - int imageXOffset = 0, imageYOffset = 0; /* image information that will - * be used to restrict disabled - * pixmap as well */ - DrawParams drawParams, *dpPtr = &drawParams; - - butPtr->flags &= ~REDRAW_PENDING; - if ((butPtr->tkwin == NULL) || !Tk_IsMapped(tkwin)) { - return; - } - pixmap = (Pixmap) Tk_WindowId(tkwin); - wasUsingControl = macButtonPtr->usingControl; - - if (TkMacOSXComputeDrawParams(butPtr, &drawParams) ) { - macButtonPtr->usingControl = 1; - if (butPtr->type == TYPE_BUTTON) { - macButtonPtr->useTkText = 0; - } else { - macButtonPtr->useTkText = 1; - } - } else { - macButtonPtr->usingControl = 0; - macButtonPtr->useTkText = 1; - } - - /* - * See the comment in UpdateControlColors as to why we use the - * highlightbackground for the border of Macintosh buttons. - */ - - if (macButtonPtr->useTkText) { - if (butPtr->type == TYPE_BUTTON) { - 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); - } - } - - /* - * Set up clipping region. Make sure the we are using the port - * for this button, or we will set the wrong window's clip. - */ - - destPort = TkMacOSXGetDrawablePort(pixmap); - portChanged = QDSwapPort(destPort, &savePort); - TkMacOSXSetUpClippingRgn(pixmap); - - /* - * Draw the native portion of the buttons. Start by creating the control - * if it doesn't already exist. Then configure the Macintosh control from - * the Tk info. Finally, we call Draw1Control to draw to the screen. - */ - - if (macButtonPtr->usingControl) { - borderWidth = 0; - TkMacOSXDrawControl(macButtonPtr, destPort, dpPtr->gc, pixmap); - } else if (wasUsingControl && macButtonPtr->userPane) { - DisposeControl(macButtonPtr->userPane); - macButtonPtr->userPane = NULL; - macButtonPtr->control = NULL; - macButtonPtr->flags = 0; - } - - if ((dpPtr->drawType == DRAW_CUSTOM) || (dpPtr->drawType == DRAW_LABEL)) { - borderWidth = butPtr->borderWidth; - } - - /* - * Display image or bitmap or text for button. This has - * already been done under Appearance with the Bevel - * button types. - */ - - if (dpPtr->drawType == DRAW_BEVEL) { - goto applyStipple; - } - - if (butPtr->image != None) { - Tk_SizeOfImage(butPtr->image, &width, &height); - haveImage = 1; - } else if (butPtr->bitmap != None) { - Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); - haveImage = 1; - } - imageWidth = width; - imageHeight = height; - - haveText = (butPtr->textWidth != 0 && butPtr->textHeight != 0); - if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) { - int x, y; - - textXOffset = 0; - textYOffset = 0; - fullWidth = 0; - fullHeight = 0; - - switch ((enum compound) butPtr->compound) { - case COMPOUND_TOP: - case COMPOUND_BOTTOM: - /* - * Image is above or below text. - */ - if (butPtr->compound == COMPOUND_TOP) { - textYOffset = height + butPtr->padY; - } else { - imageYOffset = butPtr->textHeight + butPtr->padY; - } - fullHeight = height + butPtr->textHeight + butPtr->padY; - fullWidth = (width > butPtr->textWidth ? width : - butPtr->textWidth); - textXOffset = (fullWidth - butPtr->textWidth)/2; - imageXOffset = (fullWidth - width)/2; - break; - - case COMPOUND_LEFT: - case COMPOUND_RIGHT: - /* - * Image is left or right of text. - */ - - if (butPtr->compound == COMPOUND_LEFT) { - textXOffset = width + butPtr->padX; - } else { - imageXOffset = butPtr->textWidth + butPtr->padX; - } - fullWidth = butPtr->textWidth + butPtr->padX + width; - fullHeight = (height > butPtr->textHeight ? height : - butPtr->textHeight); - textYOffset = (fullHeight - butPtr->textHeight)/2; - imageYOffset = (fullHeight - height)/2; - break; - - case COMPOUND_CENTER: - /* - * Image and text are superimposed. - */ - - fullWidth = (width > butPtr->textWidth ? width : - butPtr->textWidth); - fullHeight = (height > butPtr->textHeight ? height : - butPtr->textHeight); - textXOffset = (fullWidth - butPtr->textWidth)/2; - imageXOffset = (fullWidth - width)/2; - textYOffset = (fullHeight - butPtr->textHeight)/2; - imageYOffset = (fullHeight - height)/2; - break; - - case COMPOUND_NONE: - break; - } - - TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY, - butPtr->indicatorSpace + fullWidth, fullHeight, &x, &y); - - x += butPtr->indicatorSpace; - - x += dpPtr->offset; - y += dpPtr->offset; - if (dpPtr->relief == TK_RELIEF_RAISED) { - x -= dpPtr->offset; - y -= dpPtr->offset; - } else if (dpPtr->relief == TK_RELIEF_SUNKEN) { - 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, width, height, - pixmap, imageXOffset, imageYOffset); - } else if ((butPtr->tristateImage != NULL) && - (butPtr->flags & TRISTATED)) { - Tk_RedrawImage(butPtr->tristateImage, 0, 0, width, height, - pixmap, imageXOffset, imageYOffset); - } else { - Tk_RedrawImage(butPtr->image, 0, 0, width, height, - pixmap, imageXOffset, imageYOffset); - } - } else { - XSetClipOrigin(butPtr->display, dpPtr->gc, imageXOffset, - imageYOffset); - XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, dpPtr->gc, - 0, 0, width, height, imageXOffset, imageYOffset, 1); - XSetClipOrigin(butPtr->display, dpPtr->gc, 0, 0); - } - - if (macButtonPtr->useTkText) { - 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); - } - y += fullHeight/2; - } else if (haveImage) { - int x = 0, y; - - TkComputeAnchor(butPtr->anchor, tkwin, 0, 0, - butPtr->indicatorSpace + width, height, &x, &y); - x += butPtr->indicatorSpace; - - x += dpPtr->offset; - y += dpPtr->offset; - if (dpPtr->relief == TK_RELIEF_RAISED) { - x -= dpPtr->offset; - y -= dpPtr->offset; - } else if (dpPtr->relief == TK_RELIEF_SUNKEN) { - 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, width, height, - pixmap, imageXOffset, imageYOffset); - } else if ((butPtr->tristateImage != NULL) && - (butPtr->flags & TRISTATED)) { - Tk_RedrawImage(butPtr->tristateImage, 0, 0, width, height, - pixmap, imageXOffset, imageYOffset); - } else { - Tk_RedrawImage(butPtr->image, 0, 0, width, height, - pixmap, imageXOffset, imageYOffset); - } - } else { - XSetClipOrigin(butPtr->display, dpPtr->gc, x, y); - XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, dpPtr->gc, - 0, 0, width, height, x, y, 1); - XSetClipOrigin(butPtr->display, dpPtr->gc, 0, 0); - } - y += height/2; - } else if (macButtonPtr->useTkText) { - int x = 0, y; - - TkComputeAnchor(butPtr->anchor, tkwin, butPtr->padX, butPtr->padY, - butPtr->indicatorSpace + butPtr->textWidth, - butPtr->textHeight, &x, &y); - x += butPtr->indicatorSpace; - Tk_DrawTextLayout(butPtr->display, pixmap, dpPtr->gc, - butPtr->textLayout, x, y, 0, -1); - } - - /* - * If the button is disabled with a stipple rather than a special - * foreground color, generate the stippled effect. If the widget - * is selected and we use a different background color when selected, - * must temporarily modify the GC so the stippling is the right color. - */ - - applyStipple: - if (macButtonPtr->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) { - int inset = butPtr->highlightWidth; - - Tk_Draw3DRectangle(tkwin, pixmap, dpPtr->border, inset, inset, - Tk_Width(tkwin) - 2*inset, Tk_Height(tkwin) - 2*inset, - borderWidth, dpPtr->relief); - } - } - if (portChanged) { - QDSwapPort(savePort, NULL); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpComputeButtonGeometry -- - * - * After changes in a button's text or bitmap, this procedure - * recomputes the button's geometry and passes this information - * along to the geometry manager for the window. - * - * Results: - * None. - * - * Side effects: - * The button's window may change size. - * - *---------------------------------------------------------------------- - */ - -void -TkpComputeButtonGeometry( - TkButton *butPtr) /* Button whose geometry may have changed. */ -{ - int width, height, avgWidth, haveImage = 0, haveText = 0; - int xInset, yInset, txtWidth, txtHeight; - Tk_FontMetrics fm; - DrawParams drawParams; - - /* - * First figure out the size of the contents of the button. - */ - - width = 0; - height = 0; - txtWidth = 0; - txtHeight = 0; - avgWidth = 0; - - butPtr->indicatorSpace = 0; - if (butPtr->image != NULL) { - Tk_SizeOfImage(butPtr->image, &width, &height); - haveImage = 1; - } else if (butPtr->bitmap != None) { - Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); - haveImage = 1; - } - - if (haveImage == 0 || butPtr->compound != COMPOUND_NONE) { - Tk_FreeTextLayout(butPtr->textLayout); - butPtr->textLayout = Tk_ComputeTextLayout(butPtr->tkfont, - Tcl_GetString(butPtr->textPtr), -1, butPtr->wrapLength, - butPtr->justify, 0, &butPtr->textWidth, &butPtr->textHeight); - - txtWidth = butPtr->textWidth; - txtHeight = butPtr->textHeight; - avgWidth = Tk_TextWidth(butPtr->tkfont, "0", 1); - Tk_GetFontMetrics(butPtr->tkfont, &fm); - haveText = (txtWidth != 0 && txtHeight != 0); - } - - /* - * If the button is compound (ie, it shows both an image and text), - * the new geometry is a combination of the image and text geometry. - * We only honor the compound bit if the button has both text and an - * image, because otherwise it is not really a compound button. - */ - - if (butPtr->compound != COMPOUND_NONE && haveImage && haveText) { - switch ((enum compound) butPtr->compound) { - case COMPOUND_TOP: - case COMPOUND_BOTTOM: - /* - * Image is above or below text. - */ - - height += txtHeight + butPtr->padY; - width = (width > txtWidth ? width : txtWidth); - break; - case COMPOUND_LEFT: - case COMPOUND_RIGHT: - /* - * Image is left or right of text. - */ - - width += txtWidth + butPtr->padX; - height = (height > txtHeight ? height : txtHeight); - break; - case COMPOUND_CENTER: - /* - * Image and text are superimposed. - */ - - width = (width > txtWidth ? width : txtWidth); - height = (height > txtHeight ? height : txtHeight); - break; - case COMPOUND_NONE: - break; - } - if (butPtr->width > 0) { - width = butPtr->width; - } - if (butPtr->height > 0) { - height = butPtr->height; - } - - if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) { - butPtr->indicatorSpace = height; - if (butPtr->type == TYPE_CHECK_BUTTON) { - butPtr->indicatorDiameter = (65 * height)/100; - } else { - butPtr->indicatorDiameter = (75 * height)/100; - } - } - - width += 2 * butPtr->padX; - height += 2 * butPtr->padY; - } else if (haveImage) { - if (butPtr->width > 0) { - width = butPtr->width; - } - if (butPtr->height > 0) { - height = butPtr->height; - } - if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) { - butPtr->indicatorSpace = height; - if (butPtr->type == TYPE_CHECK_BUTTON) { - butPtr->indicatorDiameter = (65 * height)/100; - } else { - butPtr->indicatorDiameter = (75 * height)/100; - } - } - } else { - width = txtWidth; - height = txtHeight; - if (butPtr->width > 0) { - width = butPtr->width * avgWidth; - } - if (butPtr->height > 0) { - height = butPtr->height * fm.linespace; - } - if ((butPtr->type >= TYPE_CHECK_BUTTON) && butPtr->indicatorOn) { - butPtr->indicatorDiameter = fm.linespace; - if (butPtr->type == TYPE_CHECK_BUTTON) { - butPtr->indicatorDiameter = - (80 * butPtr->indicatorDiameter)/100; - } - butPtr->indicatorSpace = butPtr->indicatorDiameter + avgWidth; - } - } - - /* - * Now figure out the size of the border decorations for the button. - */ - - if (butPtr->highlightWidth < 0) { - butPtr->highlightWidth = 0; - } - - /* - * The width and height calculation for Appearance buttons with images & - * non-Appearance buttons with images is different. In the latter case, - * we add the borderwidth to the inset, since we are going to stamp a - * 3-D border over the image. In the former, we add it to the height, - * directly, since Appearance will draw the border as part of our control. - * - * When issuing the geometry request, add extra space for the indicator, - * if any, and for the border and padding, plus if this is an image two - * extra pixels so the display can be offset by 1 pixel in either - * direction for the raised or lowered effect. - * - * The highlight width corresponds to the default ring on the Macintosh. - * As such, the highlight width is only added if the button is the default - * button. The actual width of the default ring is one less than the - * highlight width as there is also one pixel of spacing. - * Appearance buttons with images do not have a highlight ring, because the - * Bevel button type does not support one. - */ - - if ((butPtr->image == None) && (butPtr->bitmap == None)) { - width += 2*butPtr->padX; - height += 2*butPtr->padY; - } - - if ((butPtr->type == TYPE_BUTTON)) { - if ((butPtr->image == None) && (butPtr->bitmap == None)) { - butPtr->inset = 0; - if (butPtr->defaultState != STATE_DISABLED) { - butPtr->inset += butPtr->highlightWidth; - } - } else { - butPtr->inset = 0; - width += (2 * butPtr->borderWidth + 4); - height += (2 * butPtr->borderWidth + 4); - } - } else if (butPtr->type == TYPE_LABEL) { - butPtr->inset = butPtr->borderWidth; - } else if (butPtr->indicatorOn) { - butPtr->inset = 0; - } else { - /* - * Under Appearance, the Checkbutton or radiobutton with an image - * is represented by a BevelButton with the Sticky defProc... - * So we must set its height in the same way as the Button - * with an image or bitmap. - */ - - if (butPtr->image != None || butPtr->bitmap != None) { - int border; - - butPtr->inset = 0; - if (butPtr->borderWidth <= 2) { - border = 6; - } else { - border = 2 * butPtr->borderWidth + 2; - } - width += border; - height += border; - } else { - butPtr->inset = butPtr->borderWidth; - } - } - - if (TkMacOSXComputeDrawParams(butPtr, &drawParams)) { - xInset = butPtr->indicatorSpace + DEF_INSET_LEFT + DEF_INSET_RIGHT; - yInset = DEF_INSET_TOP + DEF_INSET_BOTTOM; - } else { - xInset = butPtr->indicatorSpace+butPtr->inset*2; - yInset = butPtr->inset*2; - } - Tk_GeometryRequest(butPtr->tkwin, width + xInset, height + yInset); - Tk_SetInternalBorder(butPtr->tkwin, butPtr->inset); -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyButton -- - * - * Free data structures associated with the button control. - * - * Results: - * None. - * - * Side effects: - * Restores the default control state. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyButton( - TkButton *butPtr) -{ - MacButton *mbPtr = (MacButton *) butPtr; /* Mac button. */ - - if (mbPtr->userPane) { - DisposeControl(mbPtr->userPane); - mbPtr->userPane = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitControl -- - * - * This procedure initialises a Carbon control. - * - * Results: - * 0 on success, 1 on failure. - * - * Side effects: - * A background pane control and the control itself is created - * The contol is embedded in the background control - * The background control is embedded in the root control - * of the containing window - * The creation parameters for the control are also computed - * - *---------------------------------------------------------------------- - */ - -static int -TkMacOSXInitControl( - MacButton *mbPtr, /* Mac button. */ - GWorldPtr destPort, - GC gc, - Pixmap pixmap, - Rect *paneRect, - Rect *cntrRect) -{ - TkButton *butPtr = (TkButton *) mbPtr; - ControlRef rootControl; - SInt16 procID, initialValue, minValue, maxValue; - Boolean initiallyVisible; - SInt32 controlReference; - - rootControl = TkMacOSXGetRootControl(Tk_WindowId(butPtr->tkwin)); - mbPtr->windowRef = TkMacOSXDrawableWindow(Tk_WindowId(butPtr->tkwin)); - - /* - * Set up the user pane. - */ - - initiallyVisible = false; - initialValue = kControlSupportsEmbedding|kControlHasSpecialBackground; - minValue = 0; - maxValue = 1; - procID = kControlUserPaneProc; - controlReference = (SInt32)mbPtr; - mbPtr->userPane = NewControl(mbPtr->windowRef, paneRect, "\p", - initiallyVisible, initialValue, minValue, maxValue, procID, - controlReference); - - if (!mbPtr->userPane) { - TkMacOSXDbgMsg("Failed to create user pane control"); - return 1; - } - if (ChkErr(EmbedControl, mbPtr->userPane,rootControl) != noErr) { - return 1; - } - - SetUserPaneSetUpSpecialBackgroundProc(mbPtr->userPane, - UserPaneBackgroundProc); - SetUserPaneDrawProc(mbPtr->userPane,UserPaneDraw); - initiallyVisible = false; - TkMacOSXComputeControlParams(butPtr,&mbPtr->params); - mbPtr->control = NewControl(mbPtr->windowRef, cntrRect, "\p", - initiallyVisible, mbPtr->params.initialValue, - mbPtr->params.minValue, mbPtr->params.maxValue, - mbPtr->params.procID, controlReference); - - if (!mbPtr->control) { - TkMacOSXDbgMsg("Failed to create control of type %d\n", procID); - return 1; - } - if (ChkErr(EmbedControl, mbPtr->control,mbPtr->userPane) != noErr ) { - return 1; - } - - mbPtr->flags |= (CONTROL_INITIALIZED | FIRST_DRAW); - if (IsWindowActive(mbPtr->windowRef)) { - mbPtr->flags |= ACTIVE; - } - return 0; -} - -/* - *-------------------------------------------------------------- - * - * TkMacOSXDrawControl -- - * - * This function draws the tk button using Mac controls - * In addition, this code may apply custom colors passed - * in the TkButton. - * - * Results: - * None. - * - * Side effects: - * The control is created, or reinitialised as needed. - * - *-------------------------------------------------------------- - */ - -static void -TkMacOSXDrawControl( - MacButton *mbPtr, /* Mac button. */ - GWorldPtr destPort, /* Off screen GWorld. */ - GC gc, /* The GC we are drawing into - needed for the - * bevel button */ - Pixmap pixmap) /* The pixmap we are drawing into - needed for - * the bevel button */ -{ - TkButton *butPtr = (TkButton *) mbPtr; - TkWindow *winPtr; - Rect paneRect, cntrRect; - int active, enabled; - int rebuild; - - winPtr = (TkWindow *) butPtr->tkwin; - - paneRect.left = winPtr->privatePtr->xOff; - paneRect.top = winPtr->privatePtr->yOff; - paneRect.right = paneRect.left + Tk_Width(butPtr->tkwin); - paneRect.bottom = paneRect.top + Tk_Height(butPtr->tkwin); - - cntrRect = paneRect; - -/* - cntrRect.left += butPtr->inset; - cntrRect.top += butPtr->inset; - cntrRect.right -= butPtr->inset; - cntrRect.bottom -= butPtr->inset; -*/ - cntrRect.left += DEF_INSET_LEFT; - cntrRect.top += DEF_INSET_TOP; - cntrRect.right -= DEF_INSET_RIGHT; - cntrRect.bottom -= DEF_INSET_BOTTOM; - - /* - * The control has been previously initialised. - * It may need to be re-initialised - */ -#ifdef TK_REBUILD_TOPLEVEL - rebuild = (winPtr->flags & TK_REBUILD_TOPLEVEL); - winPtr->flags &= ~TK_REBUILD_TOPLEVEL; -#else - rebuild = 0; -#endif - if (mbPtr->flags) { - MacControlParams params; - - TkMacOSXComputeControlParams(butPtr, ¶ms); - if (rebuild || bcmp(¶ms, &mbPtr->params, sizeof(params))) { - /* - * The type of control has changed. - * Clean it up and clear the flag. - */ - - if (mbPtr->userPane) { - DisposeControl(mbPtr->userPane); - mbPtr->userPane = NULL; - mbPtr->control = NULL; - } - mbPtr->flags = 0; - } - } - if (!(mbPtr->flags & CONTROL_INITIALIZED)) { - if (TkMacOSXInitControl(mbPtr, destPort, gc, pixmap, &paneRect, - &cntrRect)) { - return; - } - } - SetControlBounds(mbPtr->userPane, &paneRect); - SetControlBounds(mbPtr->control, &cntrRect); - - if (!mbPtr->useTkText) { - Str255 controlTitle; - ControlFontStyleRec fontStyle; - Tk_Font font; - int len; - - if (((mbPtr->info.image == NULL) && (mbPtr->info.bitmap == None)) - || (mbPtr->info.compound != COMPOUND_NONE)) { - len = TkFontGetFirstTextLayout(butPtr->textLayout, - &font, (char*) controlTitle); - controlTitle[len] = 0; - } else { - len = 0; - controlTitle[0] = 0; - } - if (rebuild || bcmp(mbPtr->controlTitle, controlTitle, len+1)) { - CFStringRef cf = CFStringCreateWithCString(NULL, - (char*) controlTitle, kCFStringEncodingUTF8); - - if (cf != NULL) { - SetControlTitleWithCFString(mbPtr->control, cf); - CFRelease(cf); - } - bcopy(controlTitle, mbPtr->controlTitle, len+1); - } - if (len) { - TkMacOSXInitControlFontStyle(font, &fontStyle); - if (bcmp(&mbPtr->fontStyle, &fontStyle, sizeof(fontStyle)) ) { - ChkErr(SetControlFontStyle, mbPtr->control, &fontStyle); - bcopy(&fontStyle, &mbPtr->fontStyle, sizeof(fontStyle)); - } - } - } - if (mbPtr->params.isBevel) { - /* - * Initialiase the image/button parameters. - */ - - SetupBevelButton(mbPtr, mbPtr->control, destPort, gc, pixmap); - } - - if (butPtr->flags & SELECTED) { - SetControlValue(mbPtr->control, 1); - } else if (butPtr->flags & TRISTATED) { - SetControlValue(mbPtr->control, 2); - } else { - SetControlValue(mbPtr->control, 0); - } - - active = !!(mbPtr->flags & ACTIVE); - if (active != IsControlActive(mbPtr->control)) { - if (active) { - ChkErr(ActivateControl, mbPtr->control); - } else { - ChkErr(DeactivateControl, mbPtr->control); - } - } - enabled = !(butPtr->state == STATE_DISABLED); - if (enabled != IsControlEnabled(mbPtr->control)) { - if (enabled) { - ChkErr(EnableControl, mbPtr->control); - } else { - ChkErr(DisableControl, mbPtr->control); - } - } - if (active && enabled) { - if (butPtr->state == STATE_ACTIVE) { - if (mbPtr->params.isBevel) { - HiliteControl(mbPtr->control, kControlButtonPart); - } else { - switch (butPtr->type) { - case TYPE_BUTTON: - HiliteControl(mbPtr->control, kControlButtonPart); - break; - case TYPE_RADIO_BUTTON: - HiliteControl(mbPtr->control, kControlRadioButtonPart); - break; - case TYPE_CHECK_BUTTON: - HiliteControl(mbPtr->control, kControlCheckBoxPart); - break; - } - } - } else { - HiliteControl(mbPtr->control, kControlNoPart); - } - } - UpdateControlColors(mbPtr); - - if (butPtr->type == TYPE_BUTTON && !mbPtr->params.isBevel) { - Boolean isDefault; - - if (butPtr->defaultState == STATE_ACTIVE) { - isDefault = true; - } else { - isDefault = false; - } - ChkErr(SetControlData, mbPtr->control, kControlNoPart, - kControlPushButtonDefaultTag, sizeof(isDefault), &isDefault); - } - - if (mbPtr->flags & FIRST_DRAW) { - ShowControl(mbPtr->userPane); - ShowControl(mbPtr->control); - mbPtr->flags ^= FIRST_DRAW; - } else { - SetControlVisibility(mbPtr->control, true, true); - Draw1Control(mbPtr->userPane); - } - - if (mbPtr->params.isBevel) { - if (mbPtr->bevelButtonContent.contentType == - kControlContentPictHandle) { - KillPicture(mbPtr->bevelButtonContent.u.picture); - } - } -} - -/* - *-------------------------------------------------------------- - * - * SetupBevelButton -- - * - * Sets up the Bevel Button with image by copying the - * source image onto the PicHandle for the button. - * - * Results: - * None - * - * Side effects: - * The image or bitmap for the button is copied over to a picture. - * - *-------------------------------------------------------------- - */ - -void -SetupBevelButton( - MacButton *mbPtr, /* Mac button. */ - ControlRef controlHandle, /* The control to set this picture to. */ - GWorldPtr destPort, /* Off screen GWorld. */ - GC gc, /* The GC we are drawing into - needed for the - * bevel button. */ - Pixmap pixmap) /* The pixmap we are drawing into - needed for - * the bevel button. */ -{ - TkButton *butPtr = (TkButton *) mbPtr; - int height, width; - ControlButtonGraphicAlignment theAlignment; - CGrafPtr savePort; - Boolean portChanged = false; - - if (butPtr->image != None) { - Tk_SizeOfImage(butPtr->image, &width, &height); - } else { - Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); - } - - if ((butPtr->width > 0) && (butPtr->width < width)) { - width = butPtr->width; - } - if ((butPtr->height > 0) && (butPtr->height < height)) { - height = butPtr->height; - } - - { - portChanged = QDSwapPort(destPort, &savePort); - mbPtr->picParams.version = -2; - mbPtr->picParams.hRes = 0x00480000; - mbPtr->picParams.vRes = 0x00480000; - mbPtr->picParams.srcRect.top = 0; - mbPtr->picParams.srcRect.left = 0; - mbPtr->picParams.srcRect.bottom = height; - mbPtr->picParams.srcRect.right = width; - mbPtr->picParams.reserved1 = 0; - mbPtr->picParams.reserved2 = 0; - mbPtr->bevelButtonContent.contentType = kControlContentPictHandle; - mbPtr->bevelButtonContent.u.picture = OpenCPicture(&mbPtr->picParams); - if (!mbPtr->bevelButtonContent.u.picture) { - TkMacOSXDbgMsg("OpenCPicture failed"); - } - tkPictureIsOpen = 1; - - /* - * TO DO - There is one case where XCopyPlane calls CopyDeepMask, - * which does not get recorded in the picture. So the bitmap code - * will fail in that case. - */ - } - - if (butPtr->selectImage != NULL && (butPtr->flags & SELECTED)) { - Tk_RedrawImage(butPtr->selectImage, 0, 0, width, height, pixmap, 0, 0); - } else if (butPtr->tristateImage != NULL && (butPtr->flags & TRISTATED)) { - Tk_RedrawImage(butPtr->tristateImage, 0, 0, width, height, pixmap, 0, - 0); - } else if (butPtr->image != NULL) { - Tk_RedrawImage(butPtr->image, 0, 0, width, height, pixmap, 0, 0); - } else { - XSetClipOrigin(butPtr->display, gc, 0, 0); - XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc, 0, 0, width, - height, 0, 0, 1); - } - - { - ClosePicture(); - tkPictureIsOpen = 0; - if (portChanged) { - QDSwapPort(savePort, NULL); - } - } - ChkErr(SetControlData, controlHandle, kControlButtonPart, - kControlBevelButtonContentTag, - sizeof(ControlButtonContentInfo), - (char *) &mbPtr->bevelButtonContent); - - if (butPtr->anchor == TK_ANCHOR_N) { - theAlignment = kControlBevelButtonAlignTop; - } else if (butPtr->anchor == TK_ANCHOR_NE) { - theAlignment = kControlBevelButtonAlignTopRight; - } else if (butPtr->anchor == TK_ANCHOR_E) { - theAlignment = kControlBevelButtonAlignRight; - } else if (butPtr->anchor == TK_ANCHOR_SE) { - theAlignment = kControlBevelButtonAlignBottomRight; - } else if (butPtr->anchor == TK_ANCHOR_S) { - theAlignment = kControlBevelButtonAlignBottom; - } else if (butPtr->anchor == TK_ANCHOR_SW) { - theAlignment = kControlBevelButtonAlignBottomLeft; - } else if (butPtr->anchor == TK_ANCHOR_W) { - theAlignment = kControlBevelButtonAlignLeft; - } else if (butPtr->anchor == TK_ANCHOR_NW) { - theAlignment = kControlBevelButtonAlignTopLeft; - } else if (butPtr->anchor == TK_ANCHOR_CENTER) { - theAlignment = kControlBevelButtonAlignCenter; - } - ChkErr(SetControlData, controlHandle, kControlButtonPart, - kControlBevelButtonGraphicAlignTag, - sizeof(ControlButtonGraphicAlignment), (char *) &theAlignment); - - if (butPtr->compound != COMPOUND_NONE) { - ControlButtonTextPlacement thePlacement = - kControlBevelButtonPlaceNormally; - - if (butPtr->compound == COMPOUND_TOP) { - thePlacement = kControlBevelButtonPlaceBelowGraphic; - } else if (butPtr->compound == COMPOUND_BOTTOM) { - thePlacement = kControlBevelButtonPlaceAboveGraphic; - } else if (butPtr->compound == COMPOUND_LEFT) { - thePlacement = kControlBevelButtonPlaceToRightOfGraphic; - } else if (butPtr->compound == COMPOUND_RIGHT) { - thePlacement = kControlBevelButtonPlaceToLeftOfGraphic; - } - ChkErr(SetControlData, controlHandle, kControlButtonPart, - kControlBevelButtonTextPlaceTag, - sizeof(ControlButtonTextPlacement), (char *) &thePlacement); - } -} - -/* - *-------------------------------------------------------------- - * - * SetUserPaneDrawProc -- - * - * Utility function to add a UserPaneDrawProc - * to a userPane control. From MoreControls code - * from Apple DTS. - * - * Results: - * MacOS system error. - * - * Side effects: - * The user pane gets a new UserPaneDrawProc. - * - *-------------------------------------------------------------- - */ - -OSStatus -SetUserPaneDrawProc( - ControlRef control, - ControlUserPaneDrawProcPtr upp) -{ - ControlUserPaneDrawUPP myControlUserPaneDrawUPP; - - myControlUserPaneDrawUPP = NewControlUserPaneDrawUPP(upp); - return SetControlData(control, kControlNoPart, - kControlUserPaneDrawProcTag, sizeof(myControlUserPaneDrawUPP), - (Ptr) &myControlUserPaneDrawUPP); -} - -/* - *-------------------------------------------------------------- - * - * SetUserPaneSetUpSpecialBackgroundProc -- - * - * Utility function to add a UserPaneBackgroundProc - * to a userPane control - * - * Results: - * MacOS system error. - * - * Side effects: - * The user pane gets a new UserPaneBackgroundProc. - * - *-------------------------------------------------------------- - */ - -OSStatus -SetUserPaneSetUpSpecialBackgroundProc( - ControlRef control, - ControlUserPaneBackgroundProcPtr upp) -{ - ControlUserPaneBackgroundUPP myControlUserPaneBackgroundUPP; - - myControlUserPaneBackgroundUPP = NewControlUserPaneBackgroundUPP(upp); - return SetControlData(control, kControlNoPart, - kControlUserPaneBackgroundProcTag, - sizeof(myControlUserPaneBackgroundUPP), - (Ptr) &myControlUserPaneBackgroundUPP); -} - -/* - *-------------------------------------------------------------- - * - * UserPaneDraw -- - * - * This function draws the background of the user pane that will - * lie under checkboxes and radiobuttons. - * - * Results: - * None. - * - * Side effects: - * The user pane gets updated to the current color. - * - *-------------------------------------------------------------- - */ - -void -UserPaneDraw( - ControlRef control, - ControlPartCode cpc) -{ - MacButton *mbPtr = (MacButton *)(intptr_t)GetControlReference(control); - Rect contrlRect; - CGrafPtr port; - - GetPort(&port); - GetControlBounds(control,&contrlRect); - TkMacOSXSetColorInPort(mbPtr->userPaneBackground, 0, NULL, port); - EraseRect(&contrlRect); -} - -/* - *-------------------------------------------------------------- - * - * UserPaneBackgroundProc -- - * - * This function sets up the background of the user pane that will - * lie under checkboxes and radiobuttons. - * - * Results: - * None. - * - * Side effects: - * The user pane background gets set to the current color. - * - *-------------------------------------------------------------- - */ - -void -UserPaneBackgroundProc( - ControlHandle control, - ControlBackgroundPtr info) -{ - MacButton * mbPtr = (MacButton *)(intptr_t)GetControlReference(control); - - if (info->colorDevice) { - CGrafPtr port; - - GetPort(&port); - TkMacOSXSetColorInPort(mbPtr->userPaneBackground, 0, NULL, port); - } -} - -/* - *-------------------------------------------------------------- - * - * UpdateControlColors -- - * - * This function will review the colors used to display - * a Macintosh button. If any non-standard colors are - * used we create a custom palette for the button, populate - * with the colors for the button and install the palette. - * - * Under Appearance, we just set the pointer that will be - * used by the UserPaneDrawProc. - * - * Results: - * None. - * - * Side effects: - * The Macintosh control may get a custom palette installed. - * - *-------------------------------------------------------------- - */ - -static int -UpdateControlColors( - MacButton *mbPtr) -{ - XColor *xcolor; - TkButton *butPtr = (TkButton *) mbPtr; - - /* - * Under Appearance we cannot change the background of the - * button itself. However, the color we are setting is the color - * of the containing userPane. This will be the color that peeks - * around the rounded corners of the button. - * We make this the highlightbackground rather than the background, - * because if you color the background of a frame containing a - * button, you usually also color the highlightbackground as well, - * or you will get a thin grey ring around the button. - */ - - if (butPtr->type == TYPE_BUTTON) { - xcolor = Tk_3DBorderColor(butPtr->highlightBorder); - } else { - xcolor = Tk_3DBorderColor(butPtr->normalBorder); - } - mbPtr->userPaneBackground = xcolor->pixel; - - return false; -} - -/* - *-------------------------------------------------------------- - * - * ButtonEventProc -- - * - * This procedure is invoked by the Tk dispatcher for various - * events on buttons. - * - * Results: - * None. - * - * Side effects: - * When it gets exposed, it is redisplayed. - * - *-------------------------------------------------------------- - */ - -static void -ButtonEventProc( - ClientData clientData, /* Information about window. */ - XEvent *eventPtr) /* Information about event. */ -{ - TkButton *buttonPtr = (TkButton *) clientData; - MacButton *mbPtr = (MacButton *) clientData; - - if (eventPtr->type == ActivateNotify - || eventPtr->type == DeactivateNotify) { - if ((buttonPtr->tkwin == NULL) || (!Tk_IsMapped(buttonPtr->tkwin))) { - return; - } - if (eventPtr->type == ActivateNotify) { - mbPtr->flags |= ACTIVE; - } else { - mbPtr->flags &= ~ACTIVE; - } - if (!(buttonPtr->flags & REDRAW_PENDING)) { - Tcl_DoWhenIdle(TkpDisplayButton, (ClientData) buttonPtr); - buttonPtr->flags |= REDRAW_PENDING; - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXComputeControlParams -- - * - * This procedure computes the various parameters used - * when creating a Carbon control (NewControl). - * These are determined by the various tk button parameters - * - * Results: - * None. - * - * Side effects: - * Sets the control initialisation parameters - * - *---------------------------------------------------------------------- - */ - -static void -TkMacOSXComputeControlParams( - TkButton *butPtr, - MacControlParams *paramsPtr) -{ - paramsPtr->isBevel = 0; - - /* - * Determine ProcID based on button type and dimensions. - */ - - switch (butPtr->type) { - case TYPE_BUTTON: - if ((butPtr->image == None) && (butPtr->bitmap == None)) { - paramsPtr->initialValue = 1; - paramsPtr->minValue = 0; - paramsPtr->maxValue = 1; - paramsPtr->procID = kControlPushButtonProc; - } else { - paramsPtr->initialValue = 0; - paramsPtr->minValue = kControlBehaviorOffsetContents | - kControlContentPictHandle; - paramsPtr->maxValue = 1; - if (butPtr->borderWidth <= 2) { - paramsPtr->procID = kControlBevelButtonSmallBevelProc; - } else if (butPtr->borderWidth == 3) { - paramsPtr->procID = kControlBevelButtonNormalBevelProc; - } else { - paramsPtr->procID = kControlBevelButtonLargeBevelProc; - } - paramsPtr->isBevel = 1; - } - break; - case TYPE_RADIO_BUTTON: - if (((butPtr->image == None) && (butPtr->bitmap == None)) - || (butPtr->indicatorOn)) { - paramsPtr->initialValue = 1; - paramsPtr->minValue = 0; - paramsPtr->maxValue = MAX_VALUE; - paramsPtr->procID = kControlRadioButtonProc; - } else { - paramsPtr->initialValue = 0; - paramsPtr->minValue = kControlBehaviorOffsetContents | - kControlBehaviorSticky | kControlContentPictHandle; - paramsPtr->maxValue = MAX_VALUE; - if (butPtr->borderWidth <= 2) { - paramsPtr->procID = kControlBevelButtonSmallBevelProc; - } else if (butPtr->borderWidth == 3) { - paramsPtr->procID = kControlBevelButtonNormalBevelProc; - } else { - paramsPtr->procID = kControlBevelButtonLargeBevelProc; - } - paramsPtr->isBevel = 1; - } - break; - case TYPE_CHECK_BUTTON: - if (((butPtr->image == None) && (butPtr->bitmap == None)) - || (butPtr->indicatorOn)) { - paramsPtr->initialValue = 1; - paramsPtr->minValue = 0; - paramsPtr->maxValue = MAX_VALUE; - paramsPtr->procID = kControlCheckBoxProc; - } else { - paramsPtr->initialValue = 0; - paramsPtr->minValue = kControlBehaviorOffsetContents | - kControlBehaviorSticky | kControlContentPictHandle; - paramsPtr->maxValue = MAX_VALUE; - if (butPtr->borderWidth <= 2) { - paramsPtr->procID = kControlBevelButtonSmallBevelProc; - } else if (butPtr->borderWidth == 3) { - paramsPtr->procID = kControlBevelButtonNormalBevelProc; - } else { - paramsPtr->procID = kControlBevelButtonLargeBevelProc; - } - paramsPtr->isBevel = 1; - } - break; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXComputeDrawParams -- - * - * This procedure computes the various parameters used - * when drawing a button - * These are determined by the various tk button parameters - * - * Results: - * 1 if control will be used, 0 otherwise. - * - * Side effects: - * Sets the button draw parameters - * - *---------------------------------------------------------------------- - */ - -static int -TkMacOSXComputeDrawParams( - TkButton *butPtr, - DrawParams *dpPtr) -{ - dpPtr->hasImageOrBitmap = ((butPtr->image != NULL) - || (butPtr->bitmap != None)); - dpPtr->offset = (butPtr->type == TYPE_BUTTON) - && dpPtr->hasImageOrBitmap; - dpPtr->border = butPtr->normalBorder; - if ((butPtr->state == STATE_DISABLED) && (butPtr->disabledFg != NULL)) { - dpPtr->gc = butPtr->disabledGC; - } else if (butPtr->type == TYPE_BUTTON && butPtr->state == STATE_ACTIVE) { - dpPtr->gc = butPtr->activeTextGC; - dpPtr->border = butPtr->activeBorder; - } else { - dpPtr->gc = butPtr->normalTextGC; - } - - if ((butPtr->flags & SELECTED) && (butPtr->state != STATE_ACTIVE) - && (butPtr->selectBorder != NULL) && !butPtr->indicatorOn) { - dpPtr->border = butPtr->selectBorder; - } - - /* - * Override the relief specified for the button if this is a - * checkbutton or radiobutton and there's no indicator. - * However, don't do this in the presence of Appearance, since - * then the bevel button will take care of the relief. - */ - - dpPtr->relief = butPtr->relief; - - if ((butPtr->type >= TYPE_CHECK_BUTTON) && !butPtr->indicatorOn) { - if (!dpPtr->hasImageOrBitmap) { - dpPtr->relief = (butPtr->flags & SELECTED) ? TK_RELIEF_SUNKEN - : TK_RELIEF_RAISED; - } - } - - /* - * Determine the draw type - */ - - if (butPtr->type == TYPE_LABEL) { - dpPtr->drawType = DRAW_LABEL; - } else if (butPtr->type == TYPE_BUTTON) { - if (!dpPtr->hasImageOrBitmap) { - dpPtr->drawType = DRAW_CONTROL; - } else if (butPtr->image != None) { - dpPtr->drawType = DRAW_BEVEL; - } else { - /* - * TO DO - The current way the we draw bitmaps (XCopyPlane) - * uses CopyDeepMask in this one case. The Picture recording - * does not record this call, and so we can't use the - * Appearance bevel button here. The only case that would - * exercise this is if you use a bitmap, with - * -data & -mask specified. We should probably draw the - * appearance button and overprint the image in this case. - * This just punts and draws the old-style, ugly, button. - */ - - if (dpPtr->gc->clip_mask == 0) { - dpPtr->drawType = DRAW_BEVEL; - } else { - TkpClipMask *clipPtr = (TkpClipMask *) dpPtr->gc->clip_mask; - - if ((clipPtr->type == TKP_CLIP_PIXMAP) && - (clipPtr->value.pixmap != butPtr->bitmap)) { - dpPtr->drawType = DRAW_CUSTOM; - } else { - dpPtr->drawType = DRAW_BEVEL; - } - } - } - } else if (butPtr->indicatorOn) { - dpPtr->drawType = DRAW_CONTROL; - } else if (dpPtr->hasImageOrBitmap) { - if (dpPtr->gc->clip_mask == 0) { - dpPtr->drawType = DRAW_BEVEL; - } else { - TkpClipMask *clipPtr = (TkpClipMask*) dpPtr->gc->clip_mask; - - if ((clipPtr->type == TKP_CLIP_PIXMAP) && - (clipPtr->value.pixmap != butPtr->bitmap)) { - dpPtr->drawType = DRAW_CUSTOM; - } else { - dpPtr->drawType = DRAW_BEVEL; - } - } - } else { - dpPtr->drawType = DRAW_CUSTOM; - } - - if ((dpPtr->drawType == DRAW_CONTROL) || (dpPtr->drawType == DRAW_BEVEL)) { - return 1; - } else { - return 0; - } -} diff --git a/carbon/tkMacOSXCarbonEvents.c b/carbon/tkMacOSXCarbonEvents.c deleted file mode 100644 index 1f60eaf..0000000 --- a/carbon/tkMacOSXCarbonEvents.c +++ /dev/null @@ -1,693 +0,0 @@ -/* - * tkMacOSXCarbonEvents.c -- - * - * This file implements functions that register for and handle - * various Carbon Events and Timers. Most carbon events of interest - * to TkAqua are processed in a handler registered on the dispatcher - * event target so that we get first crack at them before HIToolbox - * dispatchers/processes them further. - * As some events are sent directly to the focus or app event target - * and not dispatched normally, we also register a handler on the - * application event target. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_CARBON_EVENTS -#endif -*/ - -/* - * Declarations of functions used only in this file: - */ - -static OSStatus CarbonEventHandlerProc(EventHandlerCallRef callRef, - EventRef event, void *userData); -static OSStatus InstallStandardApplicationEventHandler(void); -static void CarbonTimerProc(EventLoopTimerRef timer, void *userData); - -/* - * Static data used by several functions in this file: - */ - -static EventLoopTimerRef carbonTimer = NULL; -static int carbonTimerEnabled = 0; -static EventHandlerUPP carbonEventHandlerUPP = NULL; -static Tcl_Interp *carbonEventInterp = NULL; -static int inTrackingLoop = 0; - -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 -/* - * For InstallStandardApplicationEventHandler(): - */ - -static jmp_buf exitRaelJmpBuf; -static void ExitRaelEventHandlerProc(EventHandlerCallRef callRef, - EventRef event, void *userData) __attribute__ ((__noreturn__)); -#endif - - -/* - *---------------------------------------------------------------------- - * - * CarbonEventHandlerProc -- - * - * This procedure is the handler for all registered CarbonEvents. - * - * Results: - * OS status code. - * - * Side effects: - * Dispatches CarbonEvents. - * - *---------------------------------------------------------------------- - */ - -static OSStatus -CarbonEventHandlerProc( - EventHandlerCallRef callRef, - EventRef event, - void *userData) -{ - OSStatus err = eventNotHandledErr; - TkMacOSXEvent macEvent; - MacEventStatus eventStatus; - - macEvent.eventRef = event; - macEvent.eClass = GetEventClass(event); - macEvent.eKind = GetEventKind(event); - macEvent.interp = (Tcl_Interp *) userData; - macEvent.callRef = callRef; - bzero(&eventStatus, sizeof(eventStatus)); - -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - if (!(macEvent.eClass == kEventClassMouse && ( - macEvent.eKind == kEventMouseMoved || - macEvent.eKind == kEventMouseDragged))) { - TkMacOSXDbgMsg("Started handling %s", - TkMacOSXCarbonEventToAscii(event)); - TkMacOSXInitNamedDebugSymbol(HIToolbox, void, _DebugPrintEvent, - EventRef inEvent); - if (_DebugPrintEvent) { - /* - * Carbon-internal event debugging (c.f. Technote 2124) - */ - - _DebugPrintEvent(event); - } - } -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - - TkMacOSXProcessEvent(&macEvent,&eventStatus); - if (eventStatus.stopProcessing) { - err = noErr; - } - -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - if (macEvent.eKind != kEventMouseMoved && - macEvent.eKind != kEventMouseDragged) { - TkMacOSXDbgMsg("Finished handling %s: %s handled", - TkMacOSXCarbonEventToAscii(event), - eventStatus.stopProcessing ? " " : "not"); - } -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - return err; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitCarbonEvents -- - * - * This procedure initializes all CarbonEvent handlers. - * - * Results: - * None. - * - * Side effects: - * Handlers for Carbon Events are registered. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXInitCarbonEvents( - Tcl_Interp *interp) -{ - const EventTypeSpec dispatcherEventTypes[] = { - {kEventClassKeyboard, kEventRawKeyDown}, - {kEventClassKeyboard, kEventRawKeyRepeat}, - {kEventClassKeyboard, kEventRawKeyUp}, - {kEventClassKeyboard, kEventRawKeyModifiersChanged}, - {kEventClassKeyboard, kEventRawKeyRepeat}, - }; - const EventTypeSpec applicationEventTypes[] = { - {kEventClassMenu, kEventMenuBeginTracking}, - {kEventClassMenu, kEventMenuEndTracking}, - {kEventClassMenu, kEventMenuOpening}, - {kEventClassMenu, kEventMenuTargetItem}, - {kEventClassCommand, kEventCommandProcess}, - {kEventClassCommand, kEventCommandUpdateStatus}, - {kEventClassApplication, kEventAppActivated}, - {kEventClassApplication, kEventAppDeactivated}, - {kEventClassApplication, kEventAppQuit}, - {kEventClassApplication, kEventAppHidden}, - {kEventClassApplication, kEventAppShown}, - {kEventClassApplication, kEventAppAvailableWindowBoundsChanged}, - {kEventClassAppearance, kEventAppearanceScrollBarVariantChanged}, - {kEventClassFont, kEventFontPanelClosed}, - {kEventClassFont, kEventFontSelection}, - }; - - carbonEventHandlerUPP = NewEventHandlerUPP(CarbonEventHandlerProc); - carbonEventInterp = interp; - ChkErr(InstallStandardApplicationEventHandler); - ChkErr(InstallEventHandler, GetEventDispatcherTarget(), - carbonEventHandlerUPP, GetEventTypeCount(dispatcherEventTypes), - dispatcherEventTypes, (void *) carbonEventInterp, NULL); - ChkErr(InstallEventHandler, GetApplicationEventTarget(), - carbonEventHandlerUPP, GetEventTypeCount(applicationEventTypes), - applicationEventTypes, (void *) carbonEventInterp, NULL); - -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - TkMacOSXInitNamedSymbol(HIToolbox, void, DebugTraceEvent, OSType, UInt32, - Boolean); - if (DebugTraceEvent) { - unsigned int i; - const EventTypeSpec *e; - - for (i = 0, e = dispatcherEventTypes; - i < GetEventTypeCount(dispatcherEventTypes); i++, e++) { - DebugTraceEvent(e->eventClass, e->eventKind, 1); - } - for (i = 0, e = applicationEventTypes; - i < GetEventTypeCount(applicationEventTypes); i++, e++) { - DebugTraceEvent(e->eventClass, e->eventKind, 1); - } - DebugTraceEvent = NULL; /* Only enable tracing once. */ - } -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInstallWindowCarbonEventHandler -- - * - * This procedure installs our window CarbonEvent handler. - * - * Results: - * None. - * - * Side effects: - * Handler for Carbon Events is registered. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXInstallWindowCarbonEventHandler( - Tcl_Interp *interp, WindowRef window) -{ - const EventTypeSpec windowEventTypes[] = { - {kEventClassMouse, kEventMouseDown}, - {kEventClassMouse, kEventMouseUp}, - {kEventClassMouse, kEventMouseMoved}, - {kEventClassMouse, kEventMouseDragged}, - {kEventClassMouse, kEventMouseWheelMoved}, - {kEventClassWindow, kEventWindowActivated}, - {kEventClassWindow, kEventWindowDeactivated}, - {kEventClassWindow, kEventWindowUpdate}, - {kEventClassWindow, kEventWindowExpanding}, - {kEventClassWindow, kEventWindowBoundsChanged}, - {kEventClassWindow, kEventWindowDragStarted}, - {kEventClassWindow, kEventWindowDragCompleted}, - {kEventClassWindow, kEventWindowConstrain}, - {kEventClassWindow, kEventWindowGetRegion}, - {kEventClassWindow, kEventWindowDrawContent}, - }; - - ChkErr(InstallEventHandler, GetWindowEventTarget(window), - carbonEventHandlerUPP, GetEventTypeCount(windowEventTypes), - windowEventTypes, (void *) (interp ? interp : carbonEventInterp), - NULL); - -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - TkMacOSXInitNamedSymbol(HIToolbox, void, DebugTraceEvent, OSType, UInt32, - Boolean); - if (DebugTraceEvent) { - unsigned int i; - const EventTypeSpec *e; - - for (i = 0, e = windowEventTypes; - i < GetEventTypeCount(windowEventTypes); i++, e++) { - if (!(e->eventClass == kEventClassMouse && ( - e->eventKind == kEventMouseMoved || - e->eventKind == kEventMouseDragged))) { - DebugTraceEvent(e->eventClass, e->eventKind, 1); - } - } - } -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ -} - -/* - *---------------------------------------------------------------------- - * - * InstallStandardApplicationEventHandler -- - * - * This procedure installs the carbon standard application event - * handler. - * - * Results: - * OS status code. - * - * Side effects: - * Standard handlers for application Carbon Events are registered. - * - *---------------------------------------------------------------------- - */ - -static OSStatus -InstallStandardApplicationEventHandler(void) -{ - OSStatus err = memFullErr; - - TK_IF_HI_TOOLBOX(5, - /* - * The approach below does not work correctly in Leopard, it leads to - * crashes in [NSView unlockFocus] whenever HIToolbox uses Cocoa (Help - * menu, Nav Services, Color Picker). While it is now possible to - * install the standard app handler with InstallStandardEventHandler(), - * to fully replicate RAEL the standard menubar event handler also needs - * to be installed. Unfortunately there appears to be no public API to - * obtain the menubar event target. As a workaround, for now we resort - * to calling the HIToolbox-internal GetMenuBarEventTarget() directly - * (symbol acquired via TkMacOSXInitNamedSymbol() from HIToolbox - * version 343, may not exist in later versions). - */ - err = ChkErr(InstallStandardEventHandler, GetApplicationEventTarget()); - TkMacOSXInitNamedSymbol(HIToolbox, EventTargetRef, - GetMenuBarEventTarget, void); - if (GetMenuBarEventTarget) { - ChkErr(InstallStandardEventHandler, GetMenuBarEventTarget()); - } else { - TkMacOSXDbgMsg("Unable to install standard menubar event handler"); - } - ) TK_ELSE_HI_TOOLBOX (5, - /* - * This is a hack to workaround missing Carbon API to install the - * standard application event handler (InstallStandardEventHandler() - * does not work on the application target). The only way to install the - * standard app handler is to call RunApplicationEventLoop(), but since - * we are running our own event loop, we'll immediately need to break - * out of RAEL again: we do this via longjmp out of the - * ExitRaelEventHandlerProc event handler called first off from RAEL by - * posting a high priority dummy event. This workaround is derived from - * a similar approach in Technical Q&A 1061. - */ - enum { - kExitRaelEvent = 'ExiT' - }; - const EventTypeSpec exitRaelEventType = { - kExitRaelEvent, kExitRaelEvent - }; - EventHandlerUPP exitRaelEventHandler; - EventHandlerRef exitRaelEventHandlerRef = NULL; - EventRef exitRaelEvent = NULL; - - exitRaelEventHandler = NewEventHandlerUPP( - (EventHandlerProcPtr) ExitRaelEventHandlerProc); - if (exitRaelEventHandler) { - err = ChkErr(InstallEventHandler, GetEventDispatcherTarget(), - exitRaelEventHandler, 1, &exitRaelEventType, NULL, - &exitRaelEventHandlerRef); - } - if (err == noErr) { - err = ChkErr(CreateEvent, NULL, kExitRaelEvent, kExitRaelEvent, - GetCurrentEventTime(), kEventAttributeNone, - &exitRaelEvent); - } - if (err == noErr) { - err = ChkErr(PostEventToQueue, GetMainEventQueue(), exitRaelEvent, - kEventPriorityHigh); - } - if (err == noErr) { - if (!setjmp(exitRaelJmpBuf)) { - RunApplicationEventLoop(); - - /* - * This point should never be reached! - */ - - Tcl_Panic("RunApplicationEventLoop exited !"); - } - } - if (exitRaelEvent) { - ReleaseEvent(exitRaelEvent); - } - if (exitRaelEventHandlerRef) { - RemoveEventHandler(exitRaelEventHandlerRef); - } - if (exitRaelEventHandler) { - DisposeEventHandlerUPP(exitRaelEventHandler); - } - ) TK_ENDIF - return err; -} - -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1050 -/* - *---------------------------------------------------------------------- - * - * ExitRaelEventHandlerProc -- - * - * This procedure is the dummy event handler used to break out of - * RAEL via longjmp, it is called as the first ever event handler - * in RAEL by posting a high priority dummy event. - * - * Results: - * None. Never returns ! - * - * Side effects: - * longjmp back to InstallStandardApplicationEventHandler(). - * - *---------------------------------------------------------------------- - */ - -static void -ExitRaelEventHandlerProc( - EventHandlerCallRef callRef, - EventRef event, - void *userData) -{ - longjmp(exitRaelJmpBuf, 1); -} -#endif - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXRunTclEventLoop -- - * - * Process a limited number of tcl events. - * - * Results: - * Returns 1 if events were handled and 0 otherwise. - * - * Side effects: - * Runs the Tcl event loop. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXRunTclEventLoop(void) -{ - int i = 4, result = 0; - - /* Avoid starving main event loop: process at most 4 events. */ - while(--i && Tcl_ServiceAll()) { - result = 1; - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * CarbonTimerProc -- - * - * This procedure is the carbon timer handler that runs the tcl - * event loop periodically. - * - * Results: - * None. - * - * Side effects: - * Runs the Tcl event loop. - * - *---------------------------------------------------------------------- - */ - -static void -CarbonTimerProc( - EventLoopTimerRef timer, - void *userData) -{ - if(carbonTimerEnabled > 0 && TkMacOSXRunTclEventLoop()) { -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - TkMacOSXDbgMsg("Processed tcl events from carbon timer"); -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXStartTclEventLoopCarbonTimer -- - * - * This procedure installs (if necessary) and starts a carbon - * event timer that runs the tcl event loop periodically. - * It should be called whenever a nested carbon event loop might - * run by HIToolbox (e.g. during mouse tracking) to ensure that - * tcl events continue to be processed. - * - * Results: - * OS status code. - * - * Side effects: - * Carbon event timer is installed and started. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE OSStatus -TkMacOSXStartTclEventLoopCarbonTimer(void) -{ - OSStatus err = noErr; - - if (++carbonTimerEnabled > 0) { - if(!carbonTimer) { - EventLoopTimerUPP timerUPP = NewEventLoopTimerUPP(CarbonTimerProc); - - err = ChkErr(InstallEventLoopTimer, GetMainEventLoop(), - 5 * kEventDurationMillisecond, - 5 * kEventDurationMillisecond, - timerUPP, NULL, &carbonTimer); - } else { - err = ChkErr(SetEventLoopTimerNextFireTime, carbonTimer, - 5 * kEventDurationMillisecond); - } - } - return err; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXStopTclEventLoopCarbonTimer -- - * - * This procedure stops the carbon event timer started by - * TkMacOSXStartTclEventLoopCarbonTimer(). - * - * Results: - * OS status code. - * - * Side effects: - * Carbon event timer is stopped. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE OSStatus -TkMacOSXStopTclEventLoopCarbonTimer(void) -{ - OSStatus err = noErr; - - if (--carbonTimerEnabled == 0) { - if(carbonTimer) { - err = ChkErr(SetEventLoopTimerNextFireTime, carbonTimer, - kEventDurationForever); - } - } - return err; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXTrackingLoop -- - * - * Call with 1 before entering a mouse tracking loop (e.g. window - * resizing or menu tracking) to enable tcl event processing but - * disable carbon event processing (except for update events) - * during the loop, and with 0 after exiting the loop to reset. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXTrackingLoop( - int tracking) -{ - static int previousServiceMode = TCL_SERVICE_NONE; - - if (tracking) { - inTrackingLoop++; - previousServiceMode = Tcl_SetServiceMode(TCL_SERVICE_ALL); - TkMacOSXStartTclEventLoopCarbonTimer(); -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - TkMacOSXDbgMsg("Entering tracking loop"); -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - } else { - TkMacOSXStopTclEventLoopCarbonTimer(); - previousServiceMode = Tcl_SetServiceMode(previousServiceMode); - inTrackingLoop--; -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - TkMacOSXDbgMsg("Exiting tracking loop"); -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXReceiveAndDispatchEvent -- - * - * This receives a carbon event and sends it to the carbon event - * dispatcher. - * - * Results: - * Mac OS status - * - * Side effects: - * This receives and dispatches the next Carbon event. - * - *---------------------------------------------------------------------- - */ -MODULE_SCOPE OSStatus -TkMacOSXReceiveAndDispatchEvent(void) -{ - static EventTargetRef targetRef = NULL; - int numEventTypes = 0; - const EventTypeSpec *eventTypes = NULL; - EventRef eventRef; - OSStatus err; - const EventTypeSpec trackingEventTypes[] = { - {'dniw', kEventWindowUpdate}, - {kEventClassWindow, kEventWindowUpdate}, - }; - - if (inTrackingLoop > 0) { - eventTypes = trackingEventTypes; - numEventTypes = GetEventTypeCount(trackingEventTypes); - } - - /* - * This is a poll, since we have already counted the events coming - * into this routine, and are guaranteed to have one waiting. - */ - - err = ReceiveNextEvent(numEventTypes, eventTypes, - kEventDurationNoWait, true, &eventRef); - if (err == noErr) { -#ifdef TK_MAC_DEBUG_CARBON_EVENTS - UInt32 kind = GetEventKind(eventRef); - - if (kind != kEventMouseMoved && kind != kEventMouseDragged) { - TkMacOSXDbgMsg("Dispatching %s", TkMacOSXCarbonEventToAscii(eventRef)); - TkMacOSXInitNamedDebugSymbol(HIToolbox, void, _DebugPrintEvent, - EventRef inEvent); - if (_DebugPrintEvent) { - /* Carbon-internal event debugging (c.f. Technote 2124) */ - _DebugPrintEvent(eventRef); - } - } -#endif /* TK_MAC_DEBUG_CARBON_EVENTS */ - if (!targetRef) { - targetRef = GetEventDispatcherTarget(); - } - TkMacOSXStartTclEventLoopCarbonTimer(); - err = SendEventToEventTarget(eventRef, targetRef); - TkMacOSXStopTclEventLoopCarbonTimer(); - if (err != noErr && err != eventLoopTimedOutErr - && err != eventNotHandledErr) { - TkMacOSXDbgMsg("SendEventToEventTarget(%s) failed: %ld", - TkMacOSXCarbonEventToAscii(eventRef), err); - } - ReleaseEvent(eventRef); - } else if (err != eventLoopTimedOutErr) { - TkMacOSXDbgMsg("ReceiveNextEvent failed: %ld", err); - } - return err; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXClipboard.c b/carbon/tkMacOSXClipboard.c deleted file mode 100644 index a57ec58..0000000 --- a/carbon/tkMacOSXClipboard.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * tkMacOSXClipboard.c -- - * - * This file manages the clipboard for the Tk toolkit. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkSelect.h" - -/* - *---------------------------------------------------------------------- - * - * TkSelGetSelection -- - * - * Retrieve the specified selection from another process. For now, only - * fetching XA_STRING from CLIPBOARD is supported. Eventually other types - * should be allowed. - * - * Results: - * The return value is a standard Tcl return value. If an error occurs - * (such as no selection exists) then an error message is left in the - * interp's result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkSelGetSelection( - Tcl_Interp *interp, /* Interpreter to use for reporting errors. */ - Tk_Window tkwin, /* Window on whose behalf to retrieve the - * selection (determines display from which to - * retrieve). */ - Atom selection, /* Selection to retrieve. */ - Atom target, /* Desired form in which selection is to be - * returned. */ - Tk_GetSelProc *proc, /* Procedure to call to process the selection, - * once it has been retrieved. */ - ClientData clientData) /* Arbitrary value to pass to proc. */ -{ - int result; - OSStatus err; - long length; - ScrapRef scrapRef; - char *buf; - - if ((selection == Tk_InternAtom(tkwin, "CLIPBOARD")) - && (target == XA_STRING)) { - /* - * Get the scrap from the Macintosh global clipboard. - */ - - err = ChkErr(GetCurrentScrap, &scrapRef); - if (err != noErr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "%s GetCurrentScrap failed.", - Tk_GetAtomName(tkwin, selection))); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "SCRAP", NULL); - return TCL_ERROR; - } - - /* - * Try UNICODE first - */ - - err = ChkErr(GetScrapFlavorSize, scrapRef, kScrapFlavorTypeUnicode, - &length); - if (err == noErr && length > 0) { - Tcl_DString ds; - char *data; - - buf = ckalloc(length + 2); - buf[length] = 0; - buf[length+1] = 0; /* 2-byte unicode null */ - err = ChkErr(GetScrapFlavorData, scrapRef, - kScrapFlavorTypeUnicode, &length, buf); - if (err == noErr) { - Tcl_DStringInit(&ds); - Tcl_UniCharToUtfDString((Tcl_UniChar *) buf, - Tcl_UniCharLen((Tcl_UniChar *) buf), &ds); - for (data = Tcl_DStringValue(&ds); *data != '\0'; data++) { - if (*data == '\r') { - *data = '\n'; - } - } - result = proc(clientData, interp, Tcl_DStringValue(&ds)); - Tcl_DStringFree(&ds); - ckfree(buf); - return result; - } - } - - err = ChkErr(GetScrapFlavorSize, scrapRef, 'TEXT', &length); - if (err != noErr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "%s GetScrapFlavorSize failed.", - Tk_GetAtomName(tkwin, selection))); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "FLAVORSIZE", NULL); - return TCL_ERROR; - } - if (length > 0) { - Tcl_DString encodedText; - char *data; - - buf = ckalloc(length + 1); - buf[length] = 0; - err = ChkErr(GetScrapFlavorData, scrapRef, 'TEXT', &length, buf); - if (err != noErr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "%s GetScrapFlavorData failed.", - Tk_GetAtomName(tkwin, selection))); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "FLAVORDATA", - NULL); - return TCL_ERROR; - } - - /* - * Tcl expects '\n' not '\r' as the line break character. - */ - - for (data = buf; *data != '\0'; data++) { - if (*data == '\r') { - *data = '\n'; - } - } - - Tcl_ExternalToUtfDString(TkMacOSXCarbonEncoding, buf, length, - &encodedText); - result = proc(clientData, interp, Tcl_DStringValue(&encodedText)); - Tcl_DStringFree(&encodedText); - - ckfree(buf); - return result; - } - } - - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "%s selection doesn't exist or form \"%s\" not defined", - Tk_GetAtomName(tkwin, selection), Tk_GetAtomName(tkwin, target))); - Tcl_SetErrorCode(interp, "TK", "SELECTION", "EXISTS", NULL); - return TCL_ERROR; -} - -/* - *---------------------------------------------------------------------- - * - * TkSetSelectionOwner -- - * - * This function claims ownership of the specified selection. If the - * selection is CLIPBOARD, then we empty the system clipboard. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -XSetSelectionOwner( - Display *display, /* X Display. */ - Atom selection, /* What selection to own. */ - Window owner, /* Window to be the owner. */ - Time time) /* The current time? */ -{ - Tk_Window tkwin; - TkDisplay *dispPtr; - - /* - * This is a gross hack because the Tk_InternAtom interface is broken. It - * expects a Tk_Window, even though it only needs a Tk_Display. - */ - - tkwin = (Tk_Window) TkGetMainInfoList()->winPtr; - - if (selection == Tk_InternAtom(tkwin, "CLIPBOARD")) { - /* - * Only claim and empty the clipboard if we aren't already the owner - * of the clipboard. - */ - - dispPtr = TkGetMainInfoList()->winPtr->dispPtr; - if (dispPtr->clipboardActive) { - return Success; - } - ClearCurrentScrap(); - } - return Success; -} - -/* - *---------------------------------------------------------------------- - * - * TkSelUpdateClipboard -- - * - * This function is called to force the clipboard to be updated after new - * data is added. On the Mac we don't need to do anything. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkSelUpdateClipboard( - TkWindow *winPtr, /* Window associated with clipboard. */ - TkClipboardTarget *targetPtr) - /* Info about the content. */ -{ -} - -/* - *-------------------------------------------------------------- - * - * TkSelEventProc -- - * - * This procedure is invoked whenever a selection-related event occurs. - * - * Results: - * None. - * - * Side effects: - * Lots: depends on the type of event. - * - *-------------------------------------------------------------- - */ - -void -TkSelEventProc( - Tk_Window tkwin, /* Window for which event was targeted. */ - register XEvent *eventPtr) /* X event: either SelectionClear, - * SelectionRequest, or SelectionNotify. */ -{ - if (eventPtr->type == SelectionClear) { - TkSelClearSelection(tkwin, eventPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkSelPropProc -- - * - * This procedure is invoked when property-change events occur on windows - * not known to the toolkit. This is a stub function under Windows. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkSelPropProc( - register XEvent *eventPtr) /* X PropertyChange event. */ -{ -} - -/* - *---------------------------------------------------------------------- - * - * TkSuspendClipboard -- - * - * Handle clipboard conversion as required by the suppend event. This - * function is also called on exit. - * - * Results: - * None. - * - * Side effects: - * The local scrap is moved to the global scrap. - * - *---------------------------------------------------------------------- - */ - -void -TkSuspendClipboard(void) -{ - TkClipboardTarget *targetPtr; - TkClipboardBuffer *cbPtr; - TkDisplay *dispPtr; - char *buffer, *p, *endPtr, *buffPtr; - long length; - ScrapRef scrapRef; - - dispPtr = TkGetDisplayList(); - if ((dispPtr == NULL) || !dispPtr->clipboardActive) { - return; - } - - for (targetPtr = dispPtr->clipTargetPtr; targetPtr != NULL; - targetPtr = targetPtr->nextPtr) { - if (targetPtr->type == XA_STRING) { - break; - } - } - if (targetPtr != NULL) { - Tcl_DString encodedText, unicodedText; - - length = 0; - for (cbPtr = targetPtr->firstBufferPtr; cbPtr != NULL; - cbPtr = cbPtr->nextPtr) { - length += cbPtr->length; - } - - buffer = ckalloc(length); - buffPtr = buffer; - for (cbPtr = targetPtr->firstBufferPtr; cbPtr != NULL; - cbPtr = cbPtr->nextPtr) { - for (p = cbPtr->buffer, endPtr = p + cbPtr->length; - p < endPtr; p++) { - if (*p == '\n') { - *buffPtr++ = '\r'; - } else { - *buffPtr++ = *p; - } - } - } - - ClearCurrentScrap(); - GetCurrentScrap(&scrapRef); - Tcl_UtfToExternalDString(TkMacOSXCarbonEncoding, buffer, length, - &encodedText); - PutScrapFlavor(scrapRef, 'TEXT', 0, Tcl_DStringLength(&encodedText), - Tcl_DStringValue(&encodedText)); - Tcl_DStringFree(&encodedText); - - /* - * Also put unicode data on scrap. - */ - - Tcl_DStringInit(&unicodedText); - Tcl_UtfToUniCharDString(buffer, length, &unicodedText); - PutScrapFlavor(scrapRef, kScrapFlavorTypeUnicode, 0, - Tcl_DStringLength(&unicodedText), - Tcl_DStringValue(&unicodedText)); - Tcl_DStringFree(&unicodedText); - - ckfree(buffer); - } - - /* - * The system now owns the scrap. We tell Tk that it has lost the - * selection so that it will look for it the next time it needs it. - * (Window list NULL if quiting.) - */ - - if (TkGetMainInfoList() != NULL) { - Tk_ClearSelection((Tk_Window) TkGetMainInfoList()->winPtr, - Tk_InternAtom((Tk_Window) TkGetMainInfoList()->winPtr, - "CLIPBOARD")); - } - - return; -} - -/* - * Local Variables: - * fill-column: 78 - * c-basic-offset: 4 - * End: - */ diff --git a/carbon/tkMacOSXColor.c b/carbon/tkMacOSXColor.c deleted file mode 100644 index 4915553..0000000 --- a/carbon/tkMacOSXColor.c +++ /dev/null @@ -1,738 +0,0 @@ -/* - * tkMacOSXColor.c -- - * - * This file maintains a database of color values for the Tk - * toolkit, in order to avoid round-trips to the server to - * map color names to pixel values. - * - * Copyright (c) 1990-1994 The Regents of the University of California. - * Copyright (c) 1994-1996 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkColor.h" - -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1040 -/* Undocumented CG API for creating CGPattern from CGImage */ -extern CGPatternRef CGPatternCreateWithImage(CGImageRef img, int i) WEAK_IMPORT_ATTRIBUTE; -#endif - -struct SystemColorMapEntry { - const char *name; - ThemeBrush brush; - ThemeTextColor textColor; - ThemeBackgroundKind background; -}; /* unsigned char pixelCode; */ - -/* - * Array of system color definitions: the array index is required to equal the - * color's (pixelCode - MIN_PIXELCODE), i.e. the array order needs to be kept - * in sync with the public pixel code values in tkMacOSXPort.h ! - */ - -#define MIN_PIXELCODE 30 -static const struct SystemColorMapEntry systemColorMap[] = { - { "Transparent", 0, 0, 0 }, /* 30: TRANSPARENT_PIXEL */ - { "Highlight", kThemeBrushPrimaryHighlightColor, 0, 0 }, /* 31: HIGHLIGHT_PIXEL */ - { "HighlightSecondary", kThemeBrushSecondaryHighlightColor, 0, 0 }, /* 32: HIGHLIGHT_SECONDARY_PIXEL */ - { "HighlightText", kThemeBrushBlack, 0, 0 }, /* 33: HIGHLIGHT_TEXT_PIXEL */ - { "HighlightAlternate", kThemeBrushAlternatePrimaryHighlightColor, 0, 0 }, /* 34: HIGHLIGHT_ALTERNATE_PIXEL */ - { "ButtonText", 0, kThemeTextColorPushButtonActive, 0 }, /* 35: CONTROL_TEXT_PIXEL */ - { "PrimaryHighlightColor", kThemeBrushPrimaryHighlightColor, 0, 0 }, /* 36 */ - { "ButtonFace", kThemeBrushButtonFaceActive, 0, 0 }, /* 37: CONTROL_BODY_PIXEL */ - { "SecondaryHighlightColor", kThemeBrushSecondaryHighlightColor, 0, 0 }, /* 38 */ - { "ButtonFrame", kThemeBrushButtonFrameActive, 0, 0 }, /* 39: CONTROL_FRAME_PIXEL */ - { "AlternatePrimaryHighlightColor", kThemeBrushAlternatePrimaryHighlightColor, 0, 0 }, /* 40 */ - { "WindowBody", kThemeBrushDocumentWindowBackground, 0, 0 }, /* 41: WINDOW_BODY_PIXEL */ - { "SheetBackground", kThemeBrushSheetBackground, 0, 0 }, /* 42 */ - { "MenuActive", kThemeBrushMenuBackgroundSelected, 0, 0 }, /* 43: MENU_ACTIVE_PIXEL */ - { "Black", kThemeBrushBlack, 0, 0 }, /* 44 */ - { "MenuActiveText", 0, kThemeTextColorMenuItemSelected, 0 }, /* 45: MENU_ACTIVE_TEXT_PIXEL */ - { "White", kThemeBrushWhite, 0, 0 }, /* 46 */ - { "Menu", kThemeBrushMenuBackground, 0, 0 }, /* 47: MENU_BACKGROUND_PIXEL */ - { "DialogBackgroundActive", kThemeBrushDialogBackgroundActive, 0, 0 }, /* 48 */ - { "MenuDisabled", 0, kThemeTextColorMenuItemDisabled, 0 }, /* 49: MENU_DISABLED_PIXEL */ - { "DialogBackgroundInactive", kThemeBrushDialogBackgroundInactive, 0, 0 }, /* 50 */ - { "MenuText", 0, kThemeTextColorMenuItemActive, 0 }, /* 51: MENU_TEXT_PIXEL */ - { "AppearanceColor", 0, 0, 0 }, /* 52: APPEARANCE_PIXEL */ - { "AlertBackgroundActive", kThemeBrushAlertBackgroundActive, 0, 0 }, /* 53 */ - { "AlertBackgroundInactive", kThemeBrushAlertBackgroundInactive, 0, 0 }, /* 54 */ - { "ModelessDialogBackgroundActive", kThemeBrushModelessDialogBackgroundActive, 0, 0 }, /* 55 */ - { "ModelessDialogBackgroundInactive", kThemeBrushModelessDialogBackgroundInactive, 0, 0 }, /* 56 */ - { "UtilityWindowBackgroundActive", kThemeBrushUtilityWindowBackgroundActive, 0, 0 }, /* 57 */ - { "UtilityWindowBackgroundInactive", kThemeBrushUtilityWindowBackgroundInactive, 0, 0 }, /* 58 */ - { "ListViewSortColumnBackground", kThemeBrushListViewSortColumnBackground, 0, 0 }, /* 59 */ - { "ListViewBackground", kThemeBrushListViewBackground, 0, 0 }, /* 60 */ - { "IconLabelBackground", kThemeBrushIconLabelBackground, 0, 0 }, /* 61 */ - { "ListViewSeparator", kThemeBrushListViewSeparator, 0, 0 }, /* 62 */ - { "ChasingArrows", kThemeBrushChasingArrows, 0, 0 }, /* 63 */ - { "DragHilite", kThemeBrushDragHilite, 0, 0 }, /* 64 */ - { "DocumentWindowBackground", kThemeBrushDocumentWindowBackground, 0, 0 }, /* 65 */ - { "FinderWindowBackground", kThemeBrushFinderWindowBackground, 0, 0 }, /* 66 */ - { "ScrollBarDelimiterActive", kThemeBrushScrollBarDelimiterActive, 0, 0 }, /* 67 */ - { "ScrollBarDelimiterInactive", kThemeBrushScrollBarDelimiterInactive, 0, 0 }, /* 68 */ - { "FocusHighlight", kThemeBrushFocusHighlight, 0, 0 }, /* 69 */ - { "PopupArrowActive", kThemeBrushPopupArrowActive, 0, 0 }, /* 70 */ - { "PopupArrowPressed", kThemeBrushPopupArrowPressed, 0, 0 }, /* 71 */ - { "PopupArrowInactive", kThemeBrushPopupArrowInactive, 0, 0 }, /* 72 */ - { "AppleGuideCoachmark", kThemeBrushAppleGuideCoachmark, 0, 0 }, /* 73 */ - { "IconLabelBackgroundSelected", kThemeBrushIconLabelBackgroundSelected, 0, 0 }, /* 74 */ - { "StaticAreaFill", kThemeBrushStaticAreaFill, 0, 0 }, /* 75 */ - { "ActiveAreaFill", kThemeBrushActiveAreaFill, 0, 0 }, /* 76 */ - { "ButtonFrameActive", kThemeBrushButtonFrameActive, 0, 0 }, /* 77 */ - { "ButtonFrameInactive", kThemeBrushButtonFrameInactive, 0, 0 }, /* 78 */ - { "ButtonFaceActive", kThemeBrushButtonFaceActive, 0, 0 }, /* 79 */ - { "ButtonFaceInactive", kThemeBrushButtonFaceInactive, 0, 0 }, /* 80 */ - { "ButtonFacePressed", kThemeBrushButtonFacePressed, 0, 0 }, /* 81 */ - { "ButtonActiveDarkShadow", kThemeBrushButtonActiveDarkShadow, 0, 0 }, /* 82 */ - { "ButtonActiveDarkHighlight", kThemeBrushButtonActiveDarkHighlight, 0, 0 }, /* 83 */ - { "ButtonActiveLightShadow", kThemeBrushButtonActiveLightShadow, 0, 0 }, /* 84 */ - { "ButtonActiveLightHighlight", kThemeBrushButtonActiveLightHighlight, 0, 0 }, /* 85 */ - { "ButtonInactiveDarkShadow", kThemeBrushButtonInactiveDarkShadow, 0, 0 }, /* 86 */ - { "ButtonInactiveDarkHighlight", kThemeBrushButtonInactiveDarkHighlight, 0, 0 }, /* 87 */ - { "ButtonInactiveLightShadow", kThemeBrushButtonInactiveLightShadow, 0, 0 }, /* 88 */ - { "ButtonInactiveLightHighlight", kThemeBrushButtonInactiveLightHighlight, 0, 0 }, /* 89 */ - { "ButtonPressedDarkShadow", kThemeBrushButtonPressedDarkShadow, 0, 0 }, /* 90 */ - { "ButtonPressedDarkHighlight", kThemeBrushButtonPressedDarkHighlight, 0, 0 }, /* 91 */ - { "ButtonPressedLightShadow", kThemeBrushButtonPressedLightShadow, 0, 0 }, /* 92 */ - { "ButtonPressedLightHighlight", kThemeBrushButtonPressedLightHighlight, 0, 0 }, /* 93 */ - { "BevelActiveLight", kThemeBrushBevelActiveLight, 0, 0 }, /* 94 */ - { "BevelActiveDark", kThemeBrushBevelActiveDark, 0, 0 }, /* 95 */ - { "BevelInactiveLight", kThemeBrushBevelInactiveLight, 0, 0 }, /* 96 */ - { "BevelInactiveDark", kThemeBrushBevelInactiveDark, 0, 0 }, /* 97 */ - { "NotificationWindowBackground", kThemeBrushNotificationWindowBackground, 0, 0 }, /* 98 */ - { "MovableModalBackground", kThemeBrushMovableModalBackground, 0, 0 }, /* 99 */ - { "SheetBackgroundOpaque", kThemeBrushSheetBackgroundOpaque, 0, 0 }, /* 100 */ - { "DrawerBackground", kThemeBrushDrawerBackground, 0, 0 }, /* 101 */ - { "ToolbarBackground", kThemeBrushToolbarBackground, 0, 0 }, /* 102 */ - { "SheetBackgroundTransparent", kThemeBrushSheetBackgroundTransparent, 0, 0 }, /* 103 */ - { "MenuBackground", kThemeBrushMenuBackground, 0, 0 }, /* 104 */ - { "Pixel", 0, 0, 0 }, /* 105: PIXEL_MAGIC */ - { "MenuBackgroundSelected", kThemeBrushMenuBackgroundSelected, 0, 0 }, /* 106 */ - { "ListViewOddRowBackground", kThemeBrushListViewOddRowBackground, 0, 0 }, /* 107 */ - { "ListViewEvenRowBackground", kThemeBrushListViewEvenRowBackground, 0, 0 }, /* 108 */ - { "ListViewColumnDivider", kThemeBrushListViewColumnDivider, 0, 0 }, /* 109 */ - { "BlackText", 0, kThemeTextColorBlack, 0 }, /* 110 */ - { "DialogActiveText", 0, kThemeTextColorDialogActive, 0 }, /* 111 */ - { "DialogInactiveText", 0, kThemeTextColorDialogInactive, 0 }, /* 112 */ - { "AlertActiveText", 0, kThemeTextColorAlertActive, 0 }, /* 113 */ - { "AlertInactiveText", 0, kThemeTextColorAlertInactive, 0 }, /* 114 */ - { "ModelessDialogActiveText", 0, kThemeTextColorModelessDialogActive, 0 }, /* 115 */ - { "ModelessDialogInactiveText", 0, kThemeTextColorModelessDialogInactive, 0 }, /* 116 */ - { "WindowHeaderActiveText", 0, kThemeTextColorWindowHeaderActive, 0 }, /* 117 */ - { "WindowHeaderInactiveText", 0, kThemeTextColorWindowHeaderInactive, 0 }, /* 118 */ - { "PlacardActiveText", 0, kThemeTextColorPlacardActive, 0 }, /* 119 */ - { "PlacardInactiveText", 0, kThemeTextColorPlacardInactive, 0 }, /* 120 */ - { "PlacardPressedText", 0, kThemeTextColorPlacardPressed, 0 }, /* 121 */ - { "PushButtonActiveText", 0, kThemeTextColorPushButtonActive, 0 }, /* 122 */ - { "PushButtonInactiveText", 0, kThemeTextColorPushButtonInactive, 0 }, /* 123 */ - { "PushButtonPressedText", 0, kThemeTextColorPushButtonPressed, 0 }, /* 124 */ - { "BevelButtonActiveText", 0, kThemeTextColorBevelButtonActive, 0 }, /* 125 */ - { "BevelButtonInactiveText", 0, kThemeTextColorBevelButtonInactive, 0 }, /* 126 */ - { "BevelButtonPressedText", 0, kThemeTextColorBevelButtonPressed, 0 }, /* 127 */ - { "PopupButtonActiveText", 0, kThemeTextColorPopupButtonActive, 0 }, /* 128 */ - { "PopupButtonInactiveText", 0, kThemeTextColorPopupButtonInactive, 0 }, /* 129 */ - { "PopupButtonPressedText", 0, kThemeTextColorPopupButtonPressed, 0 }, /* 130 */ - { "IconLabelText", 0, kThemeTextColorIconLabel, 0 }, /* 131 */ - { "ListViewText", 0, kThemeTextColorListView, 0 }, /* 132 */ - { "DocumentWindowTitleActiveText", 0, kThemeTextColorDocumentWindowTitleActive, 0 }, /* 133 */ - { "DocumentWindowTitleInactiveText", 0, kThemeTextColorDocumentWindowTitleInactive, 0 }, /* 134 */ - { "MovableModalWindowTitleActiveText", 0, kThemeTextColorMovableModalWindowTitleActive, 0 }, /* 135 */ - { "MovableModalWindowTitleInactiveText",0, kThemeTextColorMovableModalWindowTitleInactive, 0 }, /* 136 */ - { "UtilityWindowTitleActiveText", 0, kThemeTextColorUtilityWindowTitleActive, 0 }, /* 137 */ - { "UtilityWindowTitleInactiveText", 0, kThemeTextColorUtilityWindowTitleInactive, 0 }, /* 138 */ - { "PopupWindowTitleActiveText", 0, kThemeTextColorPopupWindowTitleActive, 0 }, /* 139 */ - { "PopupWindowTitleInactiveText", 0, kThemeTextColorPopupWindowTitleInactive, 0 }, /* 140 */ - { "RootMenuActiveText", 0, kThemeTextColorRootMenuActive, 0 }, /* 141 */ - { "RootMenuSelectedText", 0, kThemeTextColorRootMenuSelected, 0 }, /* 142 */ - { "RootMenuDisabledText", 0, kThemeTextColorRootMenuDisabled, 0 }, /* 143 */ - { "MenuItemActiveText", 0, kThemeTextColorMenuItemActive, 0 }, /* 144 */ - { "MenuItemSelectedText", 0, kThemeTextColorMenuItemSelected, 0 }, /* 145 */ - { "MenuItemDisabledText", 0, kThemeTextColorMenuItemDisabled, 0 }, /* 146 */ - { "PopupLabelActiveText", 0, kThemeTextColorPopupLabelActive, 0 }, /* 147 */ - { "PopupLabelInactiveText", 0, kThemeTextColorPopupLabelInactive, 0 }, /* 148 */ - { "TabFrontActiveText", 0, kThemeTextColorTabFrontActive, 0 }, /* 149 */ - { "TabNonFrontActiveText", 0, kThemeTextColorTabNonFrontActive, 0 }, /* 150 */ - { "TabNonFrontPressedText", 0, kThemeTextColorTabNonFrontPressed, 0 }, /* 151 */ - { "TabFrontInactiveText", 0, kThemeTextColorTabFrontInactive, 0 }, /* 152 */ - { "TabNonFrontInactiveText", 0, kThemeTextColorTabNonFrontInactive, 0 }, /* 153 */ - { "IconLabelSelectedText", 0, kThemeTextColorIconLabelSelected, 0 }, /* 154 */ - { "BevelButtonStickyActiveText", 0, kThemeTextColorBevelButtonStickyActive, 0 }, /* 155 */ - { "BevelButtonStickyInactiveText", 0, kThemeTextColorBevelButtonStickyInactive, 0 }, /* 156 */ - { "NotificationText", 0, kThemeTextColorNotification, 0 }, /* 157 */ - { "SystemDetailText", 0, kThemeTextColorSystemDetail, 0 }, /* 158 */ - { "WhiteText", 0, kThemeTextColorWhite, 0 }, /* 159 */ - { "TabPaneBackground", 0, 0, kThemeBackgroundTabPane }, /* 160 */ - { "PlacardBackground", 0, 0, kThemeBackgroundPlacard }, /* 161 */ - { "WindowHeaderBackground", 0, 0, kThemeBackgroundWindowHeader }, /* 162 */ - { "ListViewWindowHeaderBackground", 0, 0, kThemeBackgroundListViewWindowHeader }, /* 163 */ - { "SecondaryGroupBoxBackground", 0, 0, kThemeBackgroundSecondaryGroupBox }, /* 164 */ - { "MetalBackground", 0, 0, kThemeBackgroundMetal }, /* 165 */ - { NULL, 0, 0, 0 } -}; -#define MAX_PIXELCODE 165 - -/* - *---------------------------------------------------------------------- - * - * GetThemeFromPixelCode -- - * - * When given a pixel code corresponding to a theme system color, - * set one of brush, textColor or background to the corresponding - * Appearance Mgr theme constant. - * - * Results: - * Returns false if not a real pixel, true otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -GetThemeFromPixelCode( - unsigned char code, - ThemeBrush *brush, - ThemeTextColor *textColor, - ThemeBackgroundKind *background) -{ - if (code >= MIN_PIXELCODE && code <= MAX_PIXELCODE && code != PIXEL_MAGIC) { - *brush = systemColorMap[code - MIN_PIXELCODE].brush; - *textColor = systemColorMap[code - MIN_PIXELCODE].textColor; - *background = systemColorMap[code - MIN_PIXELCODE].background; - } else { - *brush = 0; - *textColor = 0; - *background = 0; - } - if (!*brush && !*textColor && !*background && code != PIXEL_MAGIC) { - return false; - } else { - return true; - } -} - -/* - *---------------------------------------------------------------------- - * - * GetThemeColor -- - * - * Get RGB color for a given system color or pixel value. - * - * Results: - * OSStatus - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSStatus -GetThemeColor( - unsigned long pixel, - ThemeBrush brush, - ThemeTextColor textColor, - ThemeBackgroundKind background, - RGBColor *c) -{ - OSStatus err = noErr; - - if (brush) { - err = ChkErr(GetThemeBrushAsColor, - brush == kThemeBrushMenuBackgroundSelected ? - kThemeBrushFocusHighlight : brush, 32, true, c); - } else if (textColor) { - err = ChkErr(GetThemeTextColor, textColor, 32, true, c); - } else { - c->red = (pixel >> 16) & 0xff; - c->green = (pixel >> 8) & 0xff; - c->blue = (pixel ) & 0xff; - c->red |= c->red << 8; - c->green |= c->green << 8; - c->blue |= c->blue << 8; - } - return err; -} - -/* - *---------------------------------------------------------------------- - * - * TkSetMacColor -- - * - * Populates a Macintosh RGBColor structure from a X style - * pixel value. - * - * Results: - * Returns false if not a real pixel, true otherwise. - * - * Side effects: - * The variable macColor is updated to the pixels value. - * - *---------------------------------------------------------------------- - */ - -int -TkSetMacColor( - unsigned long pixel, /* Pixel value to convert. */ - void *macColor) /* Mac color struct to modify. */ -{ - OSStatus err = -1; - ThemeBrush brush; - ThemeTextColor textColor; - ThemeBackgroundKind background; - - if (GetThemeFromPixelCode((pixel >> 24) & 0xff, &brush, &textColor, - &background)) { - err = ChkErr(GetThemeColor, pixel, brush, textColor, background, - macColor); - } - return (err == noErr); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetColorInPort -- - * - * Sets fore or back color in the given QD port from an X pixel - * value, and if the pixel code indicates a system color, sets - * the corresponding brush, textColor or background via - * Appearance mgr APIs. - * - * Results: - * None. - * - * Side effects: - * If penPat is non-NULL it is set to the forground color/pattern. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetColorInPort( - unsigned long pixel, - int fg, - PixPatHandle penPat, - CGrafPtr port) -{ - OSStatus err; - RGBColor c; - ThemeBrush brush; - ThemeTextColor textColor; - ThemeBackgroundKind background; - int setPenPat = 0; - - if (GetThemeFromPixelCode((pixel >> 24) & 0xff, &brush, &textColor, - &background)) { - CGrafPtr savePort; - Boolean portChanged; - - portChanged = QDSwapPort(port, &savePort); - err = ChkErr(GetThemeColor, pixel, brush, textColor, background, &c); - if (err == noErr) { - if (fg) { - RGBForeColor(&c); - if (penPat) { - MakeRGBPat(penPat, &c); - setPenPat = 1; - } - } else { - RGBBackColor(&c); - } - } - err = -1; - if (brush) { - err = ChkErr(SetThemeBackground, - brush == kThemeBrushMenuBackgroundSelected ? - kThemeBrushFocusHighlight : brush, 32, true); - } else if (textColor && fg) { - err = ChkErr(SetThemeTextColor, textColor, 32, true); - } else if (background) { - Rect bounds; - - GetPortBounds(port, &bounds); - err = ChkErr(ApplyThemeBackground, background, &bounds, - kThemeStateActive, 32, true); - } - if (penPat && err == noErr && (brush || background)) { - GetPortBackPixPat(port, penPat); - setPenPat = 1; - } - if (portChanged) { - QDSwapPort(savePort, NULL); - } - } else { - TkMacOSXDbgMsg("Ignored unknown pixel value 0x%lx", pixel); - } - if (penPat && !setPenPat) { - GetPortBackPixPat(port, penPat); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetColorInContext -- - * - * Sets fill and stroke color in the given CG context from an X - * pixel value, or if the pixel code indicates a system color, - * sets the corresponding brush, textColor or background via - * HITheme APIs if available or Appearance mgr APIs. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetColorInContext( - unsigned long pixel, - CGContextRef context) -{ - OSStatus err = -1; - RGBColor c; - ThemeBrush brush; - ThemeTextColor textColor; - ThemeBackgroundKind background; - - if (GetThemeFromPixelCode((pixel >> 24) & 0xff, &brush, &textColor, - &background)) { - if (brush) { - TK_IF_MAC_OS_X_API (4, HIThemeSetFill, - err = ChkErr(HIThemeSetFill, brush, NULL, context, - kHIThemeOrientationNormal); - TK_IF_MAC_OS_X_API_COND (4, HIThemeSetFill, err == noErr, - err = ChkErr(HIThemeSetStroke, brush, NULL, context, - kHIThemeOrientationNormal); - ) TK_ENDIF - ) TK_ENDIF - } else if (textColor) { - TK_IF_MAC_OS_X_API (4, HIThemeSetTextFill, - err = ChkErr(HIThemeSetTextFill, textColor, NULL, context, - kHIThemeOrientationNormal); - ) TK_ENDIF - } else if (background) { - TK_IF_MAC_OS_X_API (3, CGContextGetClipBoundingBox, - CGRect rect = CGContextGetClipBoundingBox(context); - HIThemeBackgroundDrawInfo info = { 0, kThemeStateActive, - background }; - - TK_IF_MAC_OS_X_API (3, HIThemeApplyBackground, - TK_IF_HI_TOOLBOX (3, /* c.f. QA1377 */ - err = ChkErr(HIThemeApplyBackground, &rect, &info, - context, kHIThemeOrientationNormal); - ) TK_ENDIF - ) TK_ENDIF - ) TK_ENDIF - } - if (err == noErr) { - return; - } -#if MAC_OS_X_VERSION_MIN_REQUIRED < 1040 - /* - * Convert Appearance theme pattern to CGPattern: - */ - if ((brush || background) && CGPatternCreateWithImage != NULL) { - static PixPatHandle pixpat = NULL; - static GWorldPtr patGWorld = NULL; - static uint32_t bitmapInfo = 0; - const short patDim = 16; - const Rect bounds = {0, 0, patDim, patDim}; - CGrafPtr savePort; - Boolean portChanged; - PixMapHandle pixmap; - long rowbytes; - CGImageRef img; - CGColorSpaceRef rgbCspace; - CGDataProviderRef provider; - - if (!pixpat) { - pixpat = NewPixPat(); - err = ChkErr(NewGWorld, &patGWorld, 32, &bounds, NULL, NULL, 0 -#ifdef __LITTLE_ENDIAN__ - | kNativeEndianPixMap -#endif - ); - if (!pixpat || err != noErr || !patGWorld) { - Tcl_Panic("TkMacOSXSetColorInContext(): " - "pattern initialization failed !"); - } - TK_IF_HI_TOOLBOX (4, - bitmapInfo = kCGBitmapByteOrder32Host; - ) TK_ENDIF - } - portChanged = QDSwapPort(patGWorld, &savePort); - TkMacOSXSetColorInPort(pixel, 1, pixpat, patGWorld); -#ifdef TK_MAC_DEBUG - Rect patBounds; - GetPixBounds((**pixpat).patMap, &patBounds); - if (patBounds.right > patDim || patBounds.bottom > patDim) { - Tcl_Panic("TkMacOSXSetColorInContext(): " - "pattern larger than expected !"); - } -#endif /* TK_MAC_DEBUG */ - FillCRect(&bounds, pixpat); - if (portChanged) { - QDSwapPort(savePort, NULL); - } - pixmap = GetPortPixMap(patGWorld); - rowbytes = GetPixRowBytes(pixmap); - provider = CGDataProviderCreateWithData(&patGWorld, - GetPixBaseAddr(pixmap), rowbytes * patDim, NULL); - rgbCspace = CGColorSpaceCreateDeviceRGB(); - img = CGImageCreate(patDim, patDim, 8, 32, - rowbytes, rgbCspace, kCGImageAlphaFirst | bitmapInfo, - provider, NULL, 0, kCGRenderingIntentDefault); - CGColorSpaceRelease(rgbCspace); - CGDataProviderRelease(provider); - if (img) { - CGPatternRef pat = CGPatternCreateWithImage(img, 2); - CGColorSpaceRef patCSpace = CGColorSpaceCreatePattern(NULL); - const float alpha = 1; - - CGContextSetFillColorSpace(context, patCSpace); - CGContextSetFillPattern(context, pat, &alpha); - CGContextSetStrokeColorSpace(context, patCSpace); - CGContextSetStrokePattern(context, pat, &alpha); - CGColorSpaceRelease(patCSpace); - CGPatternRelease(pat); - CGImageRelease(img); - return; - } - } -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED < 1040 */ - err = ChkErr(GetThemeColor, pixel, brush, textColor, background, &c); - if (err == noErr) { - double r = c.red / 65535.0; - double g = c.green / 65535.0; - double b = c.blue / 65535.0; - - CGContextSetRGBFillColor(context, r, g, b, 1.0); - CGContextSetRGBStrokeColor(context, r, g, b, 1.0); - } - } else if (((pixel >> 24) & 0xff) == TRANSPARENT_PIXEL) { - CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 0.0); - CGContextSetRGBStrokeColor(context, 0.0, 0.0, 0.0, 0.0); - } else { - TkMacOSXDbgMsg("Ignored unknown pixel value 0x%lx", pixel); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetColor -- - * - * Allocate a new TkColor for the color with the given name. - * - * Results: - * Returns a newly allocated TkColor, or NULL on failure. - * - * Side effects: - * May invalidate the colormap cache associated with tkwin upon - * allocating a new colormap entry. Allocates a new TkColor - * structure. - * - *---------------------------------------------------------------------- - */ - -TkColor * -TkpGetColor( - Tk_Window tkwin, /* Window in which color will be used. */ - Tk_Uid name) /* Name of color to allocated (in form - * suitable for passing to XParseColor). */ -{ - Display *display = Tk_Display(tkwin); - Colormap colormap = Tk_Colormap(tkwin); - TkColor *tkColPtr; - XColor color; - - /* - * Check to see if this is a system color. Otherwise, XParseColor - * will do all the work. - */ - if (strncasecmp(name, "system", 6) == 0) { - Tcl_Obj *strPtr = Tcl_NewStringObj(name+6, -1); - int idx, result; - - result = Tcl_GetIndexFromObjStruct(NULL, strPtr, systemColorMap, - sizeof(struct SystemColorMapEntry), NULL, TCL_EXACT, &idx); - Tcl_DecrRefCount(strPtr); - if (result == TCL_OK) { - OSStatus err; - RGBColor c; - unsigned char pixelCode = idx + MIN_PIXELCODE; - ThemeBrush brush = systemColorMap[idx].brush; - ThemeTextColor textColor = systemColorMap[idx].textColor; - ThemeBackgroundKind background = systemColorMap[idx].background; - - err = ChkErr(GetThemeColor, 0, brush, textColor, background, &c); - if (err == noErr) { - color.red = c.red; - color.green = c.green; - color.blue = c.blue; - color.pixel = ((((((pixelCode << 8) - | ((color.red >> 8) & 0xff)) << 8) - | ((color.green >> 8) & 0xff)) << 8) - | ((color.blue >> 8) & 0xff)); - goto validXColor; - } - } - } - - if (TkParseColor(display, colormap, name, &color) == 0) { - return NULL; - } - - validXColor: - tkColPtr = ckalloc(sizeof(TkColor)); - tkColPtr->color = color; - - return tkColPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetColorByValue -- - * - * Given a desired set of red-green-blue intensities for a color, - * locate a pixel value to use to draw that color in a given - * window. - * - * Results: - * The return value is a pointer to an TkColor structure that - * indicates the closest red, blue, and green intensities available - * to those specified in colorPtr, and also specifies a pixel - * value to use to draw in that color. - * - * Side effects: - * May invalidate the colormap cache for the specified window. - * Allocates a new TkColor structure. - * - *---------------------------------------------------------------------- - */ - -TkColor * -TkpGetColorByValue( - Tk_Window tkwin, /* Window in which color will be used. */ - XColor *colorPtr) /* Red, green, and blue fields indicate - * desired color. */ -{ - TkColor *tkColPtr = ckalloc(sizeof(TkColor)); - - tkColPtr->color.red = colorPtr->red; - tkColPtr->color.green = colorPtr->green; - tkColPtr->color.blue = colorPtr->blue; - tkColPtr->color.pixel = TkpGetPixel(&tkColPtr->color); - return tkColPtr; -} - -#if !TK_DRAW_IN_CONTEXT -/* - *---------------------------------------------------------------------- - * - * TkMacOSXCompareColors -- - * - * On Mac, color codes may specify symbolic values like "highlight - * foreground", but we really need the actual values to compare. - * Maybe see also: "TIP #154: Add Named Colors to Tk". - * - * Results: - * Returns true if both colors are the same, false otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXCompareColors( - unsigned long c1, - unsigned long c2) -{ - RGBColor col1, col2; - return TkSetMacColor(c1,&col1) && - TkSetMacColor(c1,&col2) && - !memcmp(&col1,&col2,sizeof(col1)); -} -#endif /* !TK_DRAW_IN_CONTEXT */ - -/* - *---------------------------------------------------------------------- - * - * Stub functions -- - * - * These functions are just stubs for functions that either - * don't make sense on the Mac or have yet to be implemented. - * - * Results: - * None. - * - * Side effects: - * These calls do nothing - which may not be expected. - * - *---------------------------------------------------------------------- - */ - -Status -XAllocColor( - Display *display, /* Display. */ - Colormap map, /* Not used. */ - XColor *colorPtr) /* XColor struct to modify. */ -{ - display->request++; - colorPtr->pixel = TkpGetPixel(colorPtr); - return 1; -} - -Colormap -XCreateColormap( - Display *display, /* Display. */ - Window window, /* X window. */ - Visual *visual, /* Not used. */ - int alloc) /* Not used. */ -{ - static Colormap index = 1; - - /* - * Just return a new value each time. - */ - return index++; -} - -int -XFreeColormap( - Display* display, /* Display. */ - Colormap colormap) /* Colormap. */ -{ - return Success; -} - -int -XFreeColors( - Display* display, /* Display. */ - Colormap colormap, /* Colormap. */ - unsigned long* pixels, /* Array of pixels. */ - int npixels, /* Number of pixels. */ - unsigned long planes) /* Number of pixel planes. */ -{ - /* - * The Macintosh version of Tk uses TrueColor. Nothing - * needs to be done to release colors as there really is - * no colormap in the Tk sense. - */ - return Success; -} diff --git a/carbon/tkMacOSXConfig.c b/carbon/tkMacOSXConfig.c deleted file mode 100644 index 82d3104..0000000 --- a/carbon/tkMacOSXConfig.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * tkMacOSXConfig.c -- - * - * This module implements the Macintosh system defaults for - * the configuration package. - * - * Copyright (c) 1997 by Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -#include "tkInt.h" - - -/* - *---------------------------------------------------------------------- - * - * TkpGetSystemDefault -- - * - * Given a dbName and className for a configuration option, - * return a string representation of the option. - * - * Results: - * Returns a Tk_Uid that is the string identifier that identifies - * this option. Returns NULL if there are no system defaults - * that match this pair. - * - * Side effects: - * None, once the package is initialized. - * - *---------------------------------------------------------------------- - */ - -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. */ -{ - return NULL; -} diff --git a/carbon/tkMacOSXCursor.c b/carbon/tkMacOSXCursor.c deleted file mode 100644 index 423b4ff..0000000 --- a/carbon/tkMacOSXCursor.c +++ /dev/null @@ -1,489 +0,0 @@ -/* - * tkMacOSXCursor.c -- - * - * This file contains Macintosh specific cursor related routines. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" - -/* - * There are three different ways to set the cursor on the Mac. The default - * theme cursors (listed in cursorNames below), color resource cursors, & - * normal cursors. - */ - -#define NONE -1 /* Hidden cursor */ -#define THEME 0 /* Theme cursors */ -#define ANIMATED 1 /* Animated theme cursors */ -#define COLOR 2 /* Cursors of type crsr. */ -#define NORMAL 3 /* Cursors of type CURS. */ - -/* - * The following data structure contains the system specific data necessary to - * control Windows cursors. - */ - -typedef struct { - TkCursor info; /* Generic cursor info used by tkCursor.c */ - Handle macCursor; /* Resource containing Macintosh cursor. For - * theme cursors, this is -1. */ - int type; /* Type of Mac cursor: for theme cursors this - * is the theme cursor constant, otherwise one - * of crsr or CURS. */ - int count; /* For animating cursors, the count for the - * cursor. */ -} TkMacOSXCursor; - -/* - * The table below is used to map from the name of a predefined cursor - * to its resource identifier. - */ - -struct CursorName { - const char *name; - int id; -}; - -static struct CursorName noneCursorName = {"none", 0}; - -static struct CursorName themeCursorNames[] = { - {"arrow", kThemeArrowCursor}, - {"copyarrow", kThemeCopyArrowCursor}, - {"aliasarrow", kThemeAliasArrowCursor}, - {"contextualmenuarrow", kThemeContextualMenuArrowCursor}, - {"ibeam", kThemeIBeamCursor}, - {"text", kThemeIBeamCursor}, - {"xterm", kThemeIBeamCursor}, - {"cross", kThemeCrossCursor}, - {"crosshair", kThemeCrossCursor}, - {"cross-hair", kThemeCrossCursor}, - {"plus", kThemePlusCursor}, - {"closedhand", kThemeClosedHandCursor}, - {"openhand", kThemeOpenHandCursor}, - {"pointinghand", kThemePointingHandCursor}, - {"resizeleft", kThemeResizeLeftCursor}, - {"resizeright", kThemeResizeRightCursor}, - {"resizeleftright", kThemeResizeLeftRightCursor}, - {"resizeup", kThemeResizeUpCursor}, - {"resizedown", kThemeResizeDownCursor}, - {"resizeupdown", kThemeResizeUpDownCursor}, - {"notallowed", kThemeNotAllowedCursor}, - {"poof", kThemePoofCursor}, - {NULL, 0} -}; - -static struct CursorName animatedThemeCursorNames[] = { - {"watch", kThemeWatchCursor}, - {"countinguphand", kThemeCountingUpHandCursor}, - {"countingdownhand", kThemeCountingDownHandCursor}, - {"countingupanddownhand", kThemeCountingUpAndDownHandCursor}, - {"spinning", kThemeSpinningCursor}, - {NULL, 0} -}; - -/* - * Declarations of static variables used in this file. - */ - -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 - */ - -static void FindCursorByName(TkMacOSXCursor *macCursorPtr, const char *string); - -/* - *---------------------------------------------------------------------- - * - * FindCursorByName -- - * - * Retrieve a system cursor by name, and fill the macCursorPtr - * structure. If the cursor cannot be found, the macCursor field will be - * NULL. The function first attempts to load a color cursor. If that - * fails it will attempt to load a black & white cursor. - * - * Results: - * Fills the macCursorPtr record. - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -void -FindCursorByName( - TkMacOSXCursor *macCursorPtr, - const char *string) -{ - Handle resource; - Str255 curName; - int destWrote, inCurLen; - Tcl_Encoding encoding; - - inCurLen = strlen(string); - if (inCurLen > 255) { - return; - } - - /* - * macRoman is the encoding that the resource fork uses. - */ - - encoding = Tcl_GetEncoding(NULL, "macRoman"); - Tcl_UtfToExternal(NULL, encoding, string, inCurLen, 0, NULL, - (char *) &curName[1], 255, NULL, &destWrote, NULL); - curName[0] = destWrote; - Tcl_FreeEncoding(encoding); - - resource = GetNamedResource('crsr', curName); - if (resource) { - short id; - Str255 theName; - ResType theType; - - GetResInfo(resource, &id, &theType, theName); - macCursorPtr->macCursor = (Handle) GetCCursor(id); - macCursorPtr->type = COLOR; - } else { - macCursorPtr->macCursor = GetNamedResource('CURS', curName); - macCursorPtr->type = NORMAL; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkGetCursorByName -- - * - * Retrieve a system cursor by name. - * - * Results: - * Returns a new cursor, or NULL on errors. - * - * Side effects: - * Allocates a new cursor. - * - *---------------------------------------------------------------------- - */ - -TkCursor * -TkGetCursorByName( - Tcl_Interp *interp, /* Interpreter to use for error reporting. */ - Tk_Window tkwin, /* Window in which cursor will be used. */ - Tk_Uid string) /* Description of cursor. See manual entry - * for details on legal syntax. */ -{ - struct CursorName *namePtr; - TkMacOSXCursor *macCursorPtr; - int count = -1; - - macCursorPtr = ckalloc(sizeof(TkMacOSXCursor)); - macCursorPtr->info.cursor = (Tk_Cursor) macCursorPtr; - - /* - * To find a cursor we must first determine if it is one of the builtin - * cursors or the standard arrow cursor. Otherwise, we attempt to load the - * cursor as a named Mac resource. - */ - - if (strcmp(noneCursorName.name, string) == 0) { - namePtr = &noneCursorName; - macCursorPtr->type = NONE; - } else { - for (namePtr = themeCursorNames; namePtr->name != NULL; namePtr++) { - if (strcmp(namePtr->name, string) == 0) { - macCursorPtr->type = THEME; - break; - } - } - } - - if (namePtr->name == NULL) { - for (namePtr = animatedThemeCursorNames; - namePtr->name != NULL; namePtr++) { - int namelen = strlen(namePtr->name); - - if (strncmp(namePtr->name, string, namelen) == 0) { - const char *numPtr = string + namelen; - - if (*numPtr) { - int result = Tcl_GetInt(NULL, numPtr, &count); - - if (result != TCL_OK) { - continue; - } - } - macCursorPtr->type = ANIMATED; - break; - } - } - } - - if (namePtr->name != NULL) { - macCursorPtr->macCursor = (Handle) namePtr; - macCursorPtr->count = count; - } else { - FindCursorByName(macCursorPtr, string); - - if (macCursorPtr->macCursor == NULL) { - const char **argv; - int argc; - - /* - * The user may be trying to specify an XCursor with fore & back - * colors. We don't want this to be an error, so pick off the - * first word, and try again. - */ - - if (Tcl_SplitList(interp, string, &argc, &argv) == TCL_OK ) { - if (argc > 1) { - FindCursorByName(macCursorPtr, argv[0]); - } - ckfree(argv); - } - } - } - - if (macCursorPtr->macCursor == NULL) { - ckfree(macCursorPtr); - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "bad cursor spec \"%s\"", string)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "CURSOR", NULL); - return NULL; - } - return (TkCursor *) macCursorPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkCreateCursorFromData -- - * - * Creates a cursor from the source and mask bits. - * - * Results: - * Returns a new cursor, or NULL on errors. - * - * Side effects: - * Allocates a new cursor. - * - *---------------------------------------------------------------------- - */ - -TkCursor * -TkCreateCursorFromData( - Tk_Window tkwin, /* Window in which cursor will be used. */ - const char *source, /* Bitmap data for cursor shape. */ - const char *mask, /* Bitmap data for cursor mask. */ - int width, int height, /* Dimensions of cursor. */ - int xHot, int yHot, /* Location of hot-spot in cursor. */ - XColor fgColor, /* Foreground color for cursor. */ - XColor bgColor) /* Background color for cursor. */ -{ - return NULL; -} - -/* - *---------------------------------------------------------------------- - * - * TkpFreeCursor -- - * - * This procedure is called to release a cursor allocated by - * TkGetCursorByName. - * - * Results: - * None. - * - * Side effects: - * The cursor data structure is deallocated. - * - *---------------------------------------------------------------------- - */ - -void -TkpFreeCursor( - TkCursor *cursorPtr) -{ - TkMacOSXCursor *macCursorPtr = (TkMacOSXCursor *) cursorPtr; - - switch (macCursorPtr->type) { - case COLOR: - DisposeCCursor((CCrsrHandle) macCursorPtr->macCursor); - break; - case NORMAL: - ReleaseResource(macCursorPtr->macCursor); - break; - } - - if (macCursorPtr == gCurrentCursor) { - gCurrentCursor = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInstallCursor -- - * - * Installs either the current cursor as defined by TkpSetCursor or a - * resize cursor as the cursor the Macintosh should currently display. - * - * Results: - * None. - * - * Side effects: - * Changes the Macintosh mouse cursor. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInstallCursor( - int resizeOverride) -{ - TkMacOSXCursor *macCursorPtr = gCurrentCursor; - CCrsrHandle ccursor; - CursHandle cursor; - static unsigned int cursorStep = 0; - static int cursorHidden = 0; - int cursorNone = 0; - - gResizeOverride = resizeOverride; - - if (resizeOverride) { - cursor = (CursHandle) GetNamedResource('CURS', "\presize"); - if (cursor) { - SetCursor(*cursor); - } else { - TkMacOSXDbgMsg("Resize cursor failed: %d", ResError()); - } - } else if (macCursorPtr == NULL) { - SetThemeCursor(kThemeArrowCursor); - } else { - struct CursorName *namePtr; - - switch (macCursorPtr->type) { - case NONE: - if (!cursorHidden) { - cursorHidden = 1; - HideCursor(); - } - cursorNone = 1; - break; - case THEME: - namePtr = (struct CursorName *) macCursorPtr->macCursor; - SetThemeCursor(namePtr->id); - break; - case ANIMATED: - namePtr = (struct CursorName *) macCursorPtr->macCursor; - if (macCursorPtr->count == -1) { - SetAnimatedThemeCursor(namePtr->id, cursorStep++); - } else { - SetAnimatedThemeCursor(namePtr->id, macCursorPtr->count); - } - break; - case COLOR: - ccursor = (CCrsrHandle) macCursorPtr->macCursor; - SetCCursor(ccursor); - break; - case NORMAL: - cursor = (CursHandle) macCursorPtr->macCursor; - SetCursor(*cursor); - break; - } - } - if (cursorHidden && !cursorNone) { - cursorHidden = 0; - ShowCursor(); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpSetCursor -- - * - * Set the current cursor and install it. - * - * Results: - * None. - * - * Side effects: - * Changes the current cursor. - * - *---------------------------------------------------------------------- - */ - -void -TkpSetCursor( - TkpCursor cursor) -{ - int cursorChanged = 1; - - if (!gTkOwnsCursor) { - return; - } - - if (cursor == None) { - /* - * This is a little tricky. We can't really tell whether - * gCurrentCursor is NULL because it was NULL last time around or - * because we just freed the current cursor. So if the input cursor is - * NULL, we always need to reset it, we can't trust the cursorChanged - * logic. - */ - - gCurrentCursor = NULL; - } else { - if (gCurrentCursor == (TkMacOSXCursor *) cursor) { - cursorChanged = 0; - } - gCurrentCursor = (TkMacOSXCursor *) cursor; - } - - if (Tk_MacOSXIsAppInFront() && cursorChanged) { - TkMacOSXInstallCursor(gResizeOverride); - } -} - -/* - *---------------------------------------------------------------------- - * - * 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; -} diff --git a/carbon/tkMacOSXCursors.r b/carbon/tkMacOSXCursors.r deleted file mode 100644 index f947ddf..0000000 --- a/carbon/tkMacOSXCursors.r +++ /dev/null @@ -1,128 +0,0 @@ -/* - * tkMacOSXCursors.r -- - * - * This file defines a set of Macintosh cursor resources that - * are only available on the Macintosh platform. - * - * Copyright (c) 1995-1996 Sun Microsystems, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -/* - * These are resource definitions for Macintosh cursors. - * The are identified and loaded by the "name" of the - * cursor. However, the ids must be unique. - */ - -data 'CURS' (1000, "hand") { - $"0180 1A70 2648 264A 124D 1249 6809 9801" - $"8802 4002 2002 2004 1004 0808 0408 0408" - $"0180 1BF0 3FF8 3FFA 1FFF 1FFF 6FFF FFFF" - $"FFFE 7FFE 3FFE 3FFC 1FFC 0FF8 07F8 07F8" - $"0009 0008" -}; - -data 'CURS' (1002, "bucket") { - $"0000 0000 0600 0980 0940 0B30 0D18 090C" - $"129C 212C 104C 088C 050C 0208 0000 0000" - $"0000 0000 0600 0980 09C0 0BF0 0FF8 0FFC" - $"1FFC 3FEC 1FCC 0F8C 070C 0208 0000 0000" - $"000D 000C" -}; - -data 'CURS' (1003, "cancel") { - $"0000 0000 0000 0000 3180 4A40 4A40 3F80" - $"0A00 3F80 4A40 4A46 3186 0000 0000 0000" - $"0000 0000 0000 3180 7BC0 FFE0 FFE0 7FC0" - $"3F80 7FC0 FFE6 FFEF 7BCF 3186 0000 0000" - $"0008 0005" -}; - -data 'CURS' (1004, "resize") { - $"FFFF 8001 BF01 A181 A1F9 A18D A18D BF8D" - $"9F8D 880D 880D 880D 8FFD 87FD 8001 FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"0008 0008" -}; - -data 'CURS' (1005, "eyedrop") { - $"000E 001F 001F 00FF 007E 00B8 0118 0228" - $"0440 0880 1100 2200 4400 4800 B000 4000" - $"000E 001F 001F 00FF 007E 00F8 01F8 03E8" - $"07C0 0F80 1F00 3E00 7C00 7800 F000 4000" - $"000F 0000" -}; - -data 'CURS' (1006, "eyedrop-full") { - $"000E 001F 001F 00FF 007E 00B8 0118 0328" - $"07C0 0F80 1F00 3E00 7C00 7800 F000 4000" - $"000E 001F 001F 00FF 007E 00F8 01F8 03E8" - $"07C0 0F80 1F00 3E00 7C00 7800 F000 4000" - $"000F 0000" -}; - -data 'CURS' (1007, "zoom-in") { - $"0780 1860 2790 5868 5028 A014 AFD4 AFD4" - $"A014 5028 5868 2798 187C 078E 0007 0003" - $"0780 1FE0 3FF0 7878 7038 E01C EFDC EFDC" - $"E01C 7038 7878 3FF8 1FFC 078E 0007 0003" - $"0007 0007" -}; - -data 'CURS' (1008, "zoom-out") { - $"0780 1860 2790 5868 5328 A314 AFD4 AFD4" - $"A314 5328 5868 2798 187C 078E 0007 0003" - $"0780 1FE0 3FF0 7878 7338 E31C EFDC EFDC" - $"E31C 7338 7878 3FF8 1FFC 078E 0007 0003" - $"0007 0007" -}; - -/* - * The following are resource definitions for color - * cursors on the Macintosh. If a color cursor and - * a black & white cursor are both defined with the - * same name preference will be given to the color - * cursors. - */ - -data 'crsr' (1000, "hand") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0180 1A70 2648 264A 124D 1249" - $"6809 9801 8802 4002 2002 2004 1004 0808" - $"0408 0408 0180 1BF0 3FF8 3FFA 1FFF 1FFF" - $"6FFF FFFF FFFE 7FFE 3FFE 3FFC 1FFC 0FF8" - $"07F8 07F8 0008 0008 0000 0000 0000 0000" - $"0000 0000 8004 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0002 0001 0002 0000 0000 0000 00D2 0000" - $"0000 0003 C000 03CD 7F00 0D7D 75C0 0D7D" - $"75CC 035D 75F7 035D 75D7 3CD5 55D7 D7D5" - $"5557 D5D5 555C 3555 555C 0D55 555C 0D55" - $"5570 0355 5570 00D5 55C0 0035 55C0 0035" - $"55C0 0000 0000 0000 0002 0000 FFFF FFFF" - $"FFFF 0001 FFFF CCCC 9999 0003 0000 0000" - $"0000" -}; - -data 'crsr' (1001, "fist") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0DB0 124C" - $"100A 0802 1802 2002 2002 2004 1004 0808" - $"0408 0408 0000 0000 0000 0000 0DB0 1FFC" - $"1FFE 0FFE 1FFE 3FFE 3FFE 3FFC 1FFC 0FF8" - $"07F8 07F8 0008 0008 0000 0000 0000 0000" - $"0000 0000 8004 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0002 0001 0002 0000 0000 0000 00D2 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 00F3 CF00 035D 75F0 0355 55DC 00D5" - $"555C 03D5 555C 0D55 555C 0D55 555C 0D55" - $"5570 0355 5570 00D5 55C0 0035 55C0 0035" - $"55C0 0000 0000 0000 0002 0000 FFFF FFFF" - $"FFFF 0001 FFFF CCCC 9999 0003 0000 0000" - $"0000" -}; - diff --git a/carbon/tkMacOSXDebug.c b/carbon/tkMacOSXDebug.c deleted file mode 100644 index e007a01..0000000 --- a/carbon/tkMacOSXDebug.c +++ /dev/null @@ -1,643 +0,0 @@ -/* - * tkMacOSXDebug.c -- - * - * Implementation of Macintosh specific functions for debugging MacOS - * events, regions, etc... - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXDebug.h" - -#ifdef TK_MAC_DEBUG - -typedef struct { - EventKind kind; - const char * name; -} MyEventName; - -typedef struct { - EventClass c; - MyEventName * names; -} MyEventNameList; - -static MyEventName windowEventNames [] = { - { kEventWindowUpdate,"Update"}, - { kEventWindowDrawContent,"DrawContent"}, - { kEventWindowActivated,"Activated"}, - { kEventWindowDeactivated,"Deactivated"}, - { kEventWindowGetClickActivation,"GetClickActivation"}, - { kEventWindowShowing,"Showing"}, - { kEventWindowHiding,"Hiding"}, - { kEventWindowShown,"Shown"}, - { kEventWindowHidden,"Hidden"}, - { kEventWindowBoundsChanging,"BoundsChanging"}, - { kEventWindowBoundsChanged,"BoundsChanged"}, - { kEventWindowResizeStarted,"ResizeStarted"}, - { kEventWindowResizeCompleted,"ResizeCompleted"}, - { kEventWindowDragStarted,"DragStarted"}, - { kEventWindowDragCompleted,"DragCompleted"}, - { kEventWindowClickDragRgn,"ClickDragRgn"}, - { kEventWindowClickResizeRgn,"ClickResizeRgn"}, - { kEventWindowClickCollapseRgn,"ClickCollapseRgn"}, - { kEventWindowClickCloseRgn,"ClickCloseRgn"}, - { kEventWindowClickZoomRgn,"ClickZoomRgn"}, - { kEventWindowClickContentRgn,"ClickContentRgn"}, - { kEventWindowClickProxyIconRgn,"ClickProxyIconRgn"}, - { kEventWindowCursorChange,"CursorChange" }, - { kEventWindowCollapse,"Collapse"}, - { kEventWindowCollapsed,"Collapsed"}, - { kEventWindowCollapseAll,"CollapseAll"}, - { kEventWindowExpand,"Expand"}, - { kEventWindowExpanded,"Expanded"}, - { kEventWindowExpandAll,"ExpandAll"}, - { kEventWindowCollapse,"Collapse"}, - { kEventWindowClose,"Close"}, - { kEventWindowClosed,"Closed"}, - { kEventWindowCloseAll,"CloseAll"}, - { kEventWindowZoom,"Zoom"}, - { kEventWindowZoomed,"Zoomed"}, - { kEventWindowZoomAll,"ZoomAll"}, - { kEventWindowContextualMenuSelect,"ContextualMenuSelect"}, - { kEventWindowPathSelect,"PathSelect"}, - { kEventWindowGetIdealSize,"GetIdealSize"}, - { kEventWindowGetMinimumSize,"GetMinimumSize"}, - { kEventWindowGetMaximumSize,"GetMaximumSize"}, - { kEventWindowConstrain,"Constrain"}, - { kEventWindowHandleContentClick,"HandleContentClick"}, - { kEventWindowProxyBeginDrag,"ProxyBeginDra}"}, - { kEventWindowProxyEndDrag,"ProxyEndDrag"}, - { kEventWindowFocusAcquired,"FocusAcquired"}, - { kEventWindowFocusRelinquish,"FocusRelinquish"}, - { kEventWindowDrawFrame,"DrawFrame"}, - { kEventWindowDrawPart,"DrawPart"}, - { kEventWindowGetRegion,"GetRegion"}, - { kEventWindowHitTest,"HitTest"}, - { kEventWindowInit,"Init"}, - { kEventWindowDispose,"Dispose"}, - { kEventWindowDragHilite,"DragHilite"}, - { kEventWindowModified,"Modified"}, - { kEventWindowSetupProxyDragImage,"SetupProxyDragImage"}, - { kEventWindowStateChanged,"StateChanged"}, - { kEventWindowMeasureTitle,"MeasureTitle"}, - { kEventWindowDrawGrowBox,"DrawGrowBox"}, - { kEventWindowGetGrowImageRegion,"GetGrowImageRegion"}, - { kEventWindowPaint,"Paint"}, - { 0, NULL }, -}; - -static MyEventName mouseEventNames [] = { - { kEventMouseMoved, "Moved"}, - { kEventMouseUp, "Up"}, - { kEventMouseDown, "Down"}, - { kEventMouseDragged, "Dragged"}, - { kEventMouseWheelMoved, "WheelMoved"}, - { 0, NULL} -}; - -static MyEventName keyboardEventNames [] = { - { kEventRawKeyDown, "Down"}, - { kEventRawKeyRepeat, "Repeat"}, - { kEventRawKeyUp, "Up"}, - { kEventRawKeyModifiersChanged, "ModifiersChanged"}, - { kEventHotKeyPressed, "HotKeyPressed"}, - { kEventHotKeyReleased, "HotKeyReleased"}, - { 0, NULL} -}; - -static MyEventName appEventNames [] = { - { kEventAppActivated, "Activated"}, - { kEventAppDeactivated, "Deactivated"}, - { kEventAppQuit, "Quit"}, - { kEventAppLaunchNotification, "LaunchNotification"}, - { kEventAppLaunched, "Launched"}, - { kEventAppTerminated, "Terminated"}, - { kEventAppFrontSwitched, "FrontSwitched"}, - { 0, NULL} -}; - -static MyEventName menuEventNames [] = { - { kEventMenuBeginTracking, "BeginTracking"}, - { kEventMenuEndTracking, "EndTracking"}, - { kEventMenuChangeTrackingMode, "ChangeTrackingMode"}, - { kEventMenuOpening, "Opening"}, - { kEventMenuClosed, "Closed"}, - { kEventMenuTargetItem, "TargetItem"}, - { kEventMenuMatchKey, "MatchKey"}, - { kEventMenuEnableItems, "EnableItems"}, - { kEventMenuDispose, "Dispose"}, - { 0, NULL } -}; - -static MyEventName controlEventNames [] = { - { kEventControlInitialize, "Initialize" }, - { kEventControlDispose, "Dispose" }, - { kEventControlGetOptimalBounds, "GetOptimalBounds" }, - { kEventControlHit, "Hit" }, - { kEventControlSimulateHit, "SimulateHit" }, - { kEventControlHitTest, "HitTest" }, - { kEventControlDraw, "Draw" }, - { kEventControlApplyBackground, "ApplyBackground" }, - { kEventControlApplyTextColor, "ApplyTextColor" }, - { kEventControlSetFocusPart, "SetFocusPart" }, - { kEventControlGetFocusPart, "GetFocusPart" }, - { kEventControlActivate, "Activate" }, - { kEventControlDeactivate, "Deactivate" }, - { kEventControlSetCursor, "SetCursor" }, - { kEventControlContextualMenuClick, "ContextualMenuClick" }, - { kEventControlClick, "Click" }, - { kEventControlTrack, "Track" }, - { kEventControlGetScrollToHereStartPoint, "GetScrollToHereStartPoint" }, - { kEventControlGetIndicatorDragConstraint, "GetIndicatorDragConstraint" }, - { kEventControlIndicatorMoved, "IndicatorMoved" }, - { kEventControlGhostingFinished, "GhostingFinished" }, - { kEventControlGetActionProcPart, "GetActionProcPart" }, - { kEventControlGetPartRegion, "GetPartRegion" }, - { kEventControlGetPartBounds, "GetPartBounds" }, - { kEventControlSetData, "SetData" }, - { kEventControlGetData, "GetData" }, - { kEventControlValueFieldChanged, "ValueFieldChanged" }, - { kEventControlAddedSubControl, "AddedSubControl" }, - { kEventControlRemovingSubControl, "RemovingSubControl" }, - { kEventControlBoundsChanged, "BoundsChanged" }, - { kEventControlOwningWindowChanged, "OwningWindowChanged" }, - { kEventControlArbitraryMessage, "ArbitraryMessage" }, - { 0, NULL } -}; - -static MyEventName commandEventNames [] = { - { kEventCommandProcess, "Process" }, - { kEventCommandUpdateStatus, "UpdateStatus" }, - { 0, NULL } -}; - -static MyEventNameList eventNameList [] = { - { kEventClassWindow, windowEventNames }, - { kEventClassMouse, mouseEventNames }, - { kEventClassKeyboard, keyboardEventNames }, - { kEventClassApplication, appEventNames }, - { kEventClassMenu, menuEventNames }, - { kEventClassControl, controlEventNames }, - { kEventClassCommand, commandEventNames }, - { 0, NULL} -}; - -#ifdef TK_MACOSXDEBUG_UNUSED -static MyEventName classicEventNames [] = { - { nullEvent,"nullEvent" }, - { mouseDown,"mouseDown" }, - { mouseUp,"mouseUp" }, - { keyDown,"keyDown" }, - { keyUp,"keyUp" }, - { autoKey,"autoKey" }, - { updateEvt,"updateEvt" }, - { diskEvt,"diskEvt" }, - { activateEvt,"activateEvt" }, - { osEvt,"osEvt" }, - { kHighLevelEvent,"kHighLevelEvent" }, - { 0, NULL } -}; -#endif /* TK_MACOSXDEBUG_UNUSED */ - -MODULE_SCOPE char * -TkMacOSXCarbonEventToAscii( - EventRef eventRef) -{ - EventClass eventClass; - EventKind eventKind; - MyEventNameList * list = eventNameList; - MyEventName * names = NULL; - static char str[256]; - char *buf = str; - int *iPtr = (int*)str; - int found = 0; - - eventClass = GetEventClass(eventRef); - eventKind = GetEventKind(eventRef); - - *iPtr = eventClass; - buf[4] = 0; - strcat(buf, " "); - buf += strlen(buf); - while (list->names && (!names) ) { - if (eventClass == list->c) { - names = list -> names; - } else { - list++; - } - } - while (names && names->name) { - if (eventKind == names->kind) { - snprintf(buf, 250, "%-20s", names->name); - break; - } else { - names++; - } - } - if (!found) { - snprintf(buf, 250, "%-20d", eventKind); - } - return str; -} - -#ifdef TK_MACOSXDEBUG_UNUSED -MODULE_SCOPE char * -TkMacOSXCarbonEventKindToAscii( - EventRef eventRef, - char *buf) -{ - EventClass eventClass; - EventKind eventKind; - MyEventNameList *list = eventNameList; - MyEventName *names = NULL; - int found = 0; - - eventClass = GetEventClass(eventRef); - eventKind = GetEventKind(eventRef); - while (list->names && (!names) ) { - if (eventClass == list -> c) { - names = list -> names; - } else { - list++; - } - } - if (names) { - found = 0; - while (names->name && !found) { - if (eventKind == names->kind) { - sprintf(buf,"%s",names->name); - found = 1; - } else { - names++; - } - } - } - if (!found) { - sprintf(buf,"%d", eventKind); - } else { - sprintf(buf,"%d", eventKind); - } - return buf; -} - -MODULE_SCOPE char * -TkMacOSXClassicEventToAscii( - EventRecord *eventPtr, - char *buf) -{ - MyEventName *names = NULL; - int found = 0; - names = classicEventNames; - while (names -> name && !found) { - if (eventPtr->what == names->kind) { - int *iPtr; - char cBuf[8]; - - iPtr = (int *) &cBuf; - *iPtr = eventPtr->message; - cBuf[4] = 0; - sprintf(buf, "%-16s %08x %04x %s", names->name, - (int) eventPtr->message, eventPtr->modifiers, cBuf); - found = 1; - } else { - names++; - } - } - if (!found) { - sprintf(buf,"%-16d %08x %08x, %s", eventPtr->what, - (int) eventPtr->message, eventPtr->modifiers, buf); - } - return buf; -} - -MODULE_SCOPE void -TkMacOSXPrintPoint( - char *tag, - Point *p) -{ - TkMacOSXDbgMsg("%s %4d %4d", tag,p->h,p->v ); -} - -MODULE_SCOPE void -TkMacOSXPrintRect( - char *tag, - Rect *r) -{ - TkMacOSXDbgMsg("%s %4d %4d %4d %4d (%dx%d)", - tag, r->left, r->top, r->right, r->bottom, - r->right - r->left + 1, r->bottom - r->top + 1); -} - -MODULE_SCOPE void -TkMacOSXPrintRegion( - char *tag, - RgnHandle rgn) -{ - Rect r; - - GetRegionBounds(rgn,&r); - TkMacOSXPrintRect(tag,&r); -} - -MODULE_SCOPE void -TkMacOSXPrintWindowTitle( - char *tag, - WindowRef window) -{ - Str255 title; - - GetWTitle(window, title); - title[title[0] + 1] = 0; - TkMacOSXDbgMsg("%s %s", tag, title+1); -} - -typedef struct { - int msg; - char *name; -} MsgName; - -static MsgName msgNames [] = { - { kMenuDrawMsg, "Draw"}, - { kMenuSizeMsg, "Size"}, - { kMenuPopUpMsg, "PopUp"}, - { kMenuCalcItemMsg, "CalcItem" }, - { kMenuThemeSavvyMsg, "ThemeSavvy"}, - { kMenuInitMsg, "Init" }, - { kMenuDisposeMsg, "Dispose" }, - { kMenuFindItemMsg, "FindItem" }, - { kMenuHiliteItemMsg, "HiliteItem" }, - { kMenuDrawItemsMsg, "DrawItems" }, - { -1, NULL } -}; - -MODULE_SCOPE char * -TkMacOSXMenuMessageToAscii( - int msg, - char *s) -{ - MsgName *msgNamePtr; - - for (msgNamePtr=msgNames ; msgNamePtr->name ; msgNamePtr++) { - if (msgNamePtr->msg == msg) { - strcpy(s,msgNamePtr->name); - return s; - } - } - sprintf(s, "unknown : %d", msg); - return s; -} - -static MsgName trackingNames [] = { - { kMouseTrackingMousePressed , "MousePressed " }, - { kMouseTrackingMouseReleased , "MouseReleased " }, - { kMouseTrackingMouseExited , "MouseExited " }, - { kMouseTrackingMouseEntered , "MouseEntered " }, - { kMouseTrackingMouseMoved , "MouseMoved " }, - { kMouseTrackingKeyModifiersChanged, "KeyModifiersChanged" }, - { kMouseTrackingUserCancelled , "UserCancelled " }, - { kMouseTrackingTimedOut , "TimedOut " }, - { -1, NULL } -}; - -MODULE_SCOPE char * -TkMacOSXMouseTrackingResultToAscii( - MouseTrackingResult r, - char *buf) -{ - MsgName *namePtr; - - for (namePtr = trackingNames; namePtr->name; namePtr++) { - if (namePtr->msg == r) { - strcpy(buf, namePtr->name); - return buf; - } - } - sprintf(buf, "Unknown mouse tracking result : %d", r); - return buf; -} -#endif /* TK_MACOSXDEBUG_UNUSED */ - -MODULE_SCOPE void -TkMacOSXDebugFlashRegion( - Drawable d, - HIShapeRef rgn) -{ - TkMacOSXInitNamedDebugSymbol(HIToolbox, int, QDDebugFlashRegion, - CGrafPtr port, RgnHandle region); - CFShow(rgn); - if (d && rgn && QDDebugFlashRegion && !HIShapeIsEmpty(rgn)) { - CGrafPtr port = TkMacOSXGetDrawablePort(d); - - if (port) { - static RgnHandle qdRgn = NULL; - - if (!qdRgn) { - qdRgn = NewRgn(); - } - ChkErr(HIShapeGetAsQDRgn, rgn, qdRgn); - - /* - * Carbon-internal region flashing SPI (c.f. Technote 2124) - */ - - QDDebugFlashRegion(port, qdRgn); - SetEmptyRgn(qdRgn); - } - } -} - -#include <mach-o/dyld.h> -#include <mach-o/nlist.h> - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetNamedDebugSymbol -- - * - * Dynamically acquire address of a named symbol from a loaded dynamic - * library, so that we can use API that may not be available on all OS - * versions. For debugging purposes, if we cannot find the symbol with - * the usual dynamic library APIs, we manually walk the symbol table of - * the loaded library. This allows access to unexported symbols such as - * private_extern internal debugging functions. If module is NULL or the - * empty string, search all loaded libraries (could be very expensive and - * should be avoided). - * - * THIS FUCTION IS ONLY TO BE USED FOR DEBUGGING PURPOSES, IT MAY BREAK - * UNEXPECTEDLY IN THE FUTURE! - * - * Results: - * Address of given symbol or NULL if unavailable. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void * -TkMacOSXGetNamedDebugSymbol( - const char *module, - const char *symbol) -{ - void *addr = TkMacOSXGetNamedSymbol(module, symbol); - -#ifndef __LP64__ - if (!addr) { - const struct mach_header *mh = NULL; - uint32_t i, n = _dyld_image_count(); - size_t module_len = 0; - - if (module && *module) { - module_len = strlen(module); - } - for (i = 0; i < n; i++) { - if (module && *module) { - /* Find image with given module name */ - char *name; - const char *path = _dyld_get_image_name(i); - - if (!path) { - continue; - } - name = strrchr(path, '/') + 1; - if (strncmp(name, module, module_len) != 0) { - continue; - } - } - mh = _dyld_get_image_header(i); - if (mh) { - struct load_command *lc; - struct symtab_command *st = NULL; - struct segment_command *sg = NULL; - uint32_t j, m, nsect = 0, txtsectx = 0; - - lc = (struct load_command*)((const char*) mh + - sizeof(struct mach_header)); - m = mh->ncmds; - for (j = 0; j < m; j++) { - /* Find symbol table and index of __text section */ - if (lc->cmd == LC_SEGMENT) { - /* Find last segment before symbol table */ - sg = (struct segment_command*) lc; - if (!txtsectx) { - /* Count total sections until (__TEXT, __text) */ - uint32_t k, ns = sg->nsects; - - if (strcmp(sg->segname, SEG_TEXT) == 0) { - struct section *s = (struct section *)( - (char *)sg + - sizeof(struct segment_command)); - - for(k = 0; k < ns; k++) { - if (strcmp(s->sectname, SECT_TEXT) == 0) { - txtsectx = nsect+k+1; - break; - } - s++; - } - } - nsect += ns; - } - } else if (!st && lc->cmd == LC_SYMTAB) { - st = (struct symtab_command *) lc; - break; - } - lc = (struct load_command *)((char *) lc + lc->cmdsize); - } - if (st && sg && txtsectx) { - intptr_t base, slide = _dyld_get_image_vmaddr_slide(i); - char *strings; - struct nlist *sym; - uint32_t strsize = st->strsize; - int32_t strx; - - /* - * Offset file positions by difference to actual position - * in memory of last segment before symbol table: - */ - - base = (intptr_t) sg->vmaddr + slide - sg->fileoff; - strings = (char *) (base + st->stroff); - sym = (struct nlist *) (base + st->symoff); - m = st->nsyms; - for (j = 0; j < m; j++) { - /* Find symbol with given name in __text section */ - strx = sym->n_un.n_strx; - if ((sym->n_type & N_TYPE) == N_SECT && - sym->n_sect == txtsectx && - strx > 0 && (uint32_t) strx < strsize && - strcmp(strings + strx, symbol) == 0) { - addr = (char*) sym->n_value + slide; - break; - } - sym++; - } - } - } - if (module && *module) { - /* If given a module name, only search corresponding image */ - break; - } - } - } -#endif /* __LP64__ */ - return addr; -} -#endif /* TK_MAC_DEBUG */ - -/* - * Local Variables: - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ diff --git a/carbon/tkMacOSXDebug.h b/carbon/tkMacOSXDebug.h deleted file mode 100644 index 8dc8109..0000000 --- a/carbon/tkMacOSXDebug.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * tkMacOSXDebug.h -- - * - * Declarations of Macintosh specific functions for debugging MacOS events, - * regions, etc... - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#ifndef _TKMACDEBUG -#define _TKMACDEBUG - -#ifndef _TKMACINT -#include "tkMacOSXInt.h" -#endif - -#ifdef TK_MAC_DEBUG - -MODULE_SCOPE char* TkMacOSXCarbonEventToAscii(EventRef eventRef); - -#ifdef TK_MACOSXDEBUG_UNUSED -MODULE_SCOPE char* TkMacOSXCarbonEventKindToAscii(EventRef eventRef, char * buf ); -MODULE_SCOPE char* TkMacOSXClassicEventToAscii(EventRecord * eventPtr, char * buf ); - -MODULE_SCOPE void TkMacOSXPrintRect(char * tag, Rect * r ); -MODULE_SCOPE void TkMacOSXPrintPoint(char * tag, Point * p ); - -MODULE_SCOPE void TkMacOSXPrintRegion(char * tag, RgnHandle rgn ); -MODULE_SCOPE void TkMacOSXPrintWindowTitle(char * tag, WindowRef window ); -MODULE_SCOPE char* TkMacOSXMenuMessageToAscii(int msg, char * s); - -MODULE_SCOPE char* TkMacOSXMouseTrackingResultToAscii(MouseTrackingResult r, char * buf ); -#endif - -MODULE_SCOPE void TkMacOSXDebugFlashRegion(Drawable d, HIShapeRef rgn); - -MODULE_SCOPE void* TkMacOSXGetNamedDebugSymbol(const char* module, const char* symbol); - -/* Macro to abstract common use of TkMacOSXGetNamedDebugSymbol to initialize named symbols */ -#define TkMacOSXInitNamedDebugSymbol(module, ret, symbol, ...) \ - static ret (* symbol)(__VA_ARGS__) = (void*)(-1L); \ - if (symbol == (void*)(-1L)) { \ - symbol = TkMacOSXGetNamedDebugSymbol(STRINGIFY(module), STRINGIFY(_##symbol));\ - } - -#endif /* TK_MAC_DEBUG */ - -#endif diff --git a/carbon/tkMacOSXDefault.h b/carbon/tkMacOSXDefault.h deleted file mode 100644 index 0cb57da..0000000 --- a/carbon/tkMacOSXDefault.h +++ /dev/null @@ -1,555 +0,0 @@ -/* - * tkMacOSXDefault.h -- - * - * This file defines the defaults for all options for all of - * the Tk widgets. - * - * Copyright (c) 1991-1994 The Regents of the University of California. - * Copyright (c) 1994-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#ifndef _TKMACDEFAULT -#define _TKMACDEFAULT - -/* - * The definitions below provide symbolic names for the default colors. - * NORMAL_BG - Normal background color. - * ACTIVE_BG - Background color when widget is active. - * SELECT_BG - Background color for selected text. - * SELECT_FG - Foreground color for selected text. - * TROUGH - Background color for troughs in scales and scrollbars. - * INDICATOR - Color for indicator when button is selected. - * DISABLED - Foreground color when widget is disabled. - */ - -#define BLACK "Black" -#define WHITE "White" -#define NORMAL_BG "systemWindowBody" -#define ACTIVE_BG "systemButtonFacePressed" -#define ACTIVE_FG "systemPushButtonPressedText" -#define SELECT_BG "systemHighlight" -#define SELECT_FG None -#define INACTIVE_SELECT_BG "systemHighlightSecondary" -#define TROUGH "#c3c3c3" -#define INDICATOR "#b03060" -#define DISABLED "#a3a3a3" - -/* - * Defaults for labels, buttons, checkbuttons, and radiobuttons: - */ - -#define DEF_BUTTON_ANCHOR "center" -#define DEF_BUTTON_ACTIVE_BG_COLOR ACTIVE_BG -#define DEF_BUTTON_ACTIVE_BG_MONO BLACK -#define DEF_BUTTON_ACTIVE_FG_COLOR ACTIVE_FG -#define DEF_CHKRAD_ACTIVE_FG_COLOR DEF_BUTTON_ACTIVE_FG_COLOR -#define DEF_BUTTON_ACTIVE_FG_MONO WHITE -/* #define DEF_BUTTON_BG_COLOR "systemButtonFace"*/ -#define DEF_BUTTON_BG_COLOR WHITE -#define DEF_BUTTON_BG_MONO WHITE -#define DEF_BUTTON_BITMAP "" -#define DEF_BUTTON_BORDER_WIDTH "2" -#define DEF_BUTTON_CURSOR "" -#define DEF_BUTTON_COMMAND "" -#define DEF_BUTTON_COMPOUND "none" -#define DEF_BUTTON_DEFAULT "disabled" -#define DEF_BUTTON_DISABLED_FG_COLOR DISABLED -#define DEF_BUTTON_DISABLED_FG_MONO "" -#define DEF_BUTTON_FG "systemButtonText" -#define DEF_CHKRAD_FG DEF_BUTTON_FG -#define DEF_BUTTON_FONT "TkDefaultFont" -#define DEF_BUTTON_HEIGHT "0" -#define DEF_BUTTON_HIGHLIGHT_BG_COLOR DEF_BUTTON_BG_COLOR -#define DEF_BUTTON_HIGHLIGHT_BG_MONO DEF_BUTTON_BG_MONO -#define DEF_BUTTON_HIGHLIGHT "systemButtonFrame" -#define DEF_LABEL_HIGHLIGHT_WIDTH "0" -#define DEF_BUTTON_HIGHLIGHT_WIDTH "4" -#define DEF_BUTTON_IMAGE ((char *) NULL) -#define DEF_BUTTON_INDICATOR "1" -#define DEF_BUTTON_JUSTIFY "center" -#define DEF_BUTTON_OFF_VALUE "0" -#define DEF_BUTTON_ON_VALUE "1" -#define DEF_BUTTON_TRISTATE_VALUE "" -#define DEF_BUTTON_OVER_RELIEF "" -#define DEF_BUTTON_PADX "12" -#define DEF_LABCHKRAD_PADX "1" -#define DEF_BUTTON_PADY "3" -#define DEF_LABCHKRAD_PADY "1" -#define DEF_BUTTON_RELIEF "flat" -#define DEF_LABCHKRAD_RELIEF "flat" -#define DEF_BUTTON_REPEAT_DELAY "0" -#define DEF_BUTTON_REPEAT_INTERVAL "0" -#define DEF_BUTTON_SELECT_COLOR INDICATOR -#define DEF_BUTTON_SELECT_MONO BLACK -#define DEF_BUTTON_SELECT_IMAGE ((char *) NULL) -#define DEF_BUTTON_STATE "normal" -#define DEF_LABEL_TAKE_FOCUS "0" -#define DEF_BUTTON_TAKE_FOCUS ((char *) 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" -#define DEF_RADIOBUTTON_VARIABLE "selectedButton" -#define DEF_CHECKBUTTON_VARIABLE "" - -/* - * Defaults for canvases: - */ - -#define DEF_CANVAS_BG_COLOR NORMAL_BG -#define DEF_CANVAS_BG_MONO WHITE -#define DEF_CANVAS_BORDER_WIDTH "0" -#define DEF_CANVAS_CLOSE_ENOUGH "1" -#define DEF_CANVAS_CONFINE "1" -#define DEF_CANVAS_CURSOR "" -#define DEF_CANVAS_HEIGHT "7c" -#define DEF_CANVAS_HIGHLIGHT_BG NORMAL_BG -#define DEF_CANVAS_HIGHLIGHT BLACK -#define DEF_CANVAS_HIGHLIGHT_WIDTH "3" -#define DEF_CANVAS_INSERT_BG BLACK -#define DEF_CANVAS_INSERT_BD_COLOR "0" -#define DEF_CANVAS_INSERT_BD_MONO "0" -#define DEF_CANVAS_INSERT_OFF_TIME "300" -#define DEF_CANVAS_INSERT_ON_TIME "600" -#define DEF_CANVAS_INSERT_WIDTH "2" -#define DEF_CANVAS_RELIEF "flat" -#define DEF_CANVAS_SCROLL_REGION "" -#define DEF_CANVAS_SELECT_COLOR SELECT_BG -#define DEF_CANVAS_SELECT_MONO BLACK -#define DEF_CANVAS_SELECT_BD_COLOR "1" -#define DEF_CANVAS_SELECT_BD_MONO "0" -#define DEF_CANVAS_SELECT_FG_COLOR SELECT_FG -#define DEF_CANVAS_SELECT_FG_MONO WHITE -#define DEF_CANVAS_TAKE_FOCUS ((char *) NULL) -#define DEF_CANVAS_WIDTH "10c" -#define DEF_CANVAS_X_SCROLL_CMD "" -#define DEF_CANVAS_X_SCROLL_INCREMENT "0" -#define DEF_CANVAS_Y_SCROLL_CMD "" -#define DEF_CANVAS_Y_SCROLL_INCREMENT "0" - -/* - * Defaults for entries: - */ - -/* - * I test the following two values in TkpDrawEntryBorderAndFocus - * to determine whether to use the native entry widget. So if - * you change the defaults to be different from these, then you - * won't get the native widget by default. - */ - -#define MAC_OSX_FOCUS_WIDTH 3 -#define MAC_OSX_ENTRY_BORDER 2 -#define MAC_OSX_ENTRY_RELIEF TK_RELIEF_SUNKEN -#define MAC_OSX_ENTRY_SELECT_RELIEF TK_RELIEF_FLAT - -#define DEF_ENTRY_BG_COLOR NORMAL_BG -#define DEF_ENTRY_BG_MONO WHITE -#define DEF_ENTRY_BORDER_WIDTH "2" -#define DEF_ENTRY_CURSOR "xterm" -#define DEF_ENTRY_DISABLED_BG_COLOR NORMAL_BG -#define DEF_ENTRY_DISABLED_BG_MONO WHITE -#define DEF_ENTRY_DISABLED_FG DISABLED -#define DEF_ENTRY_EXPORT_SELECTION "1" -#define DEF_ENTRY_FONT "TkTextFont" -#define DEF_ENTRY_FG BLACK -#define DEF_ENTRY_HIGHLIGHT_BG NORMAL_BG -#define DEF_ENTRY_HIGHLIGHT BLACK -/* #define DEF_ENTRY_HIGHLIGHT_WIDTH "3" */ -#define DEF_ENTRY_HIGHLIGHT_WIDTH "3" -#define DEF_ENTRY_INSERT_BG BLACK -#define DEF_ENTRY_INSERT_BD_COLOR "0" -#define DEF_ENTRY_INSERT_BD_MONO "0" -#define DEF_ENTRY_INSERT_OFF_TIME "300" -#define DEF_ENTRY_INSERT_ON_TIME "600" -/* #define DEF_ENTRY_INSERT_WIDTH "2" */ -#define DEF_ENTRY_INSERT_WIDTH "1" -#define DEF_ENTRY_JUSTIFY "left" -#define DEF_ENTRY_READONLY_BG_COLOR NORMAL_BG -#define DEF_ENTRY_READONLY_BG_MONO WHITE -#define DEF_ENTRY_RELIEF "sunken" -/* #define DEF_ENTRY_RELIEF "solid" */ -#define DEF_ENTRY_SCROLL_COMMAND "" -#define DEF_ENTRY_SELECT_COLOR SELECT_BG -#define DEF_ENTRY_SELECT_MONO BLACK -#define DEF_ENTRY_SELECT_BD_COLOR "1" -#define DEF_ENTRY_SELECT_BD_MONO "0" -#define DEF_ENTRY_SELECT_FG_COLOR SELECT_FG -#define DEF_ENTRY_SELECT_FG_MONO WHITE -#define DEF_ENTRY_SHOW ((char *) NULL) -#define DEF_ENTRY_STATE "normal" -#define DEF_ENTRY_TAKE_FOCUS ((char *) NULL) -#define DEF_ENTRY_TEXT_VARIABLE "" -#define DEF_ENTRY_WIDTH "20" - -/* - * Defaults for frames: - */ - -#define DEF_FRAME_BG_COLOR NORMAL_BG -#define DEF_FRAME_BG_MONO WHITE -#define DEF_FRAME_BORDER_WIDTH "0" -#define DEF_FRAME_CLASS "Frame" -#define DEF_FRAME_COLORMAP "" -#define DEF_FRAME_CONTAINER "0" -#define DEF_FRAME_CURSOR "" -#define DEF_FRAME_HEIGHT "0" -#define DEF_FRAME_HIGHLIGHT_BG NORMAL_BG -#define DEF_FRAME_HIGHLIGHT BLACK -#define DEF_FRAME_HIGHLIGHT_WIDTH "0" -#define DEF_FRAME_PADX "0" -#define DEF_FRAME_PADY "0" -#define DEF_FRAME_RELIEF "flat" -#define DEF_FRAME_TAKE_FOCUS "0" -#define DEF_FRAME_VISUAL "" -#define DEF_FRAME_WIDTH "0" - -/* - * Defaults for labelframes: - */ - -#define DEF_LABELFRAME_BORDER_WIDTH "2" -#define DEF_LABELFRAME_CLASS "Labelframe" -#define DEF_LABELFRAME_RELIEF "groove" -#define DEF_LABELFRAME_FG "systemButtonText" -#define DEF_LABELFRAME_FONT "TkDefaultFont" -#define DEF_LABELFRAME_TEXT "" -#define DEF_LABELFRAME_LABELANCHOR "nw" - -/* - * Defaults for listboxes: - */ - -#define DEF_LISTBOX_ACTIVE_STYLE "dotbox" -#define DEF_LISTBOX_BG_COLOR WHITE -#define DEF_LISTBOX_BG_MONO WHITE -#define DEF_LISTBOX_BORDER_WIDTH "1" -#define DEF_LISTBOX_CURSOR "" -#define DEF_LISTBOX_DISABLED_FG DISABLED -#define DEF_LISTBOX_EXPORT_SELECTION "1" -#define DEF_LISTBOX_FONT "TkTextFont" -#define DEF_LISTBOX_FG BLACK -#define DEF_LISTBOX_HEIGHT "10" -#define DEF_LISTBOX_HIGHLIGHT_BG NORMAL_BG -#define DEF_LISTBOX_HIGHLIGHT BLACK -#define DEF_LISTBOX_HIGHLIGHT_WIDTH "0" -#define DEF_LISTBOX_RELIEF "solid" -#define DEF_LISTBOX_SCROLL_COMMAND "" -#define DEF_LISTBOX_LIST_VARIABLE "" -#define DEF_LISTBOX_SELECT_COLOR SELECT_BG -#define DEF_LISTBOX_SELECT_MONO BLACK -#define DEF_LISTBOX_SELECT_BD "0" -#define DEF_LISTBOX_SELECT_FG_COLOR SELECT_FG -#define DEF_LISTBOX_SELECT_FG_MONO WHITE -#define DEF_LISTBOX_SELECT_MODE "browse" -#define DEF_LISTBOX_SET_GRID "0" -#define DEF_LISTBOX_STATE "normal" -#define DEF_LISTBOX_TAKE_FOCUS ((char *) NULL) -#define DEF_LISTBOX_WIDTH "20" - -/* - * Defaults for individual entries of menus: - */ - -#define DEF_MENU_ENTRY_ACTIVE_BG ((char *) NULL) -#define DEF_MENU_ENTRY_ACTIVE_FG ((char *) NULL) -#define DEF_MENU_ENTRY_ACCELERATOR ((char *) NULL) -#define DEF_MENU_ENTRY_BG ((char *) NULL) -#define DEF_MENU_ENTRY_BITMAP None -#define DEF_MENU_ENTRY_COLUMN_BREAK "0" -#define DEF_MENU_ENTRY_COMMAND ((char *) NULL) -#define DEF_MENU_ENTRY_COMPOUND "none" -#define DEF_MENU_ENTRY_FG ((char *) NULL) -#define DEF_MENU_ENTRY_FONT ((char *) NULL) -#define DEF_MENU_ENTRY_HIDE_MARGIN "0" -#define DEF_MENU_ENTRY_IMAGE ((char *) NULL) -#define DEF_MENU_ENTRY_INDICATOR "1" -#define DEF_MENU_ENTRY_LABEL ((char *) NULL) -#define DEF_MENU_ENTRY_MENU ((char *) NULL) -#define DEF_MENU_ENTRY_OFF_VALUE "0" -#define DEF_MENU_ENTRY_ON_VALUE "1" -#define DEF_MENU_ENTRY_SELECT_IMAGE ((char *) NULL) -#define DEF_MENU_ENTRY_STATE "normal" -#define DEF_MENU_ENTRY_VALUE ((char *) NULL) -#define DEF_MENU_ENTRY_CHECK_VARIABLE ((char *) NULL) -#define DEF_MENU_ENTRY_RADIO_VARIABLE "selectedButton" -#define DEF_MENU_ENTRY_SELECT ((char *) NULL) -#define DEF_MENU_ENTRY_UNDERLINE "-1" - -/* - * Defaults for menus overall: - */ - -#define DEF_MENU_ACTIVE_BG_COLOR "systemMenuActive" -#define DEF_MENU_ACTIVE_BG_MONO BLACK -#define DEF_MENU_ACTIVE_BORDER_WIDTH "0" -#define DEF_MENU_ACTIVE_FG_COLOR "systemMenuActiveText" -#define DEF_MENU_ACTIVE_FG_MONO WHITE -#define DEF_MENU_BG_COLOR "systemMenu" -#define DEF_MENU_BG_MONO WHITE -#define DEF_MENU_BORDER_WIDTH "0" -#define DEF_MENU_CURSOR "arrow" -#define DEF_MENU_DISABLED_FG_COLOR "systemMenuDisabled" -#define DEF_MENU_DISABLED_FG_MONO "" -#define DEF_MENU_FONT "menu" /* special: see tkMacOSXMenu.c */ -#define DEF_MENU_FG "systemMenuText" -#define DEF_MENU_POST_COMMAND "" -#define DEF_MENU_RELIEF "flat" -#define DEF_MENU_SELECT_COLOR "systemMenuActive" -#define DEF_MENU_SELECT_MONO BLACK -#define DEF_MENU_TAKE_FOCUS "0" - -/* - * FIXME: Turn the default back to 1 when we make tearoff menus work again. - */ - -#define DEF_MENU_TEAROFF "0" -#define DEF_MENU_TEAROFF_CMD ((char *) NULL) -#define DEF_MENU_TITLE "" -#define DEF_MENU_TYPE "normal" - -/* - * Defaults for menubuttons: - */ - -#define DEF_MENUBUTTON_ANCHOR "center" -#define DEF_MENUBUTTON_ACTIVE_BG_COLOR ACTIVE_BG -#define DEF_MENUBUTTON_ACTIVE_BG_MONO BLACK -#define DEF_MENUBUTTON_ACTIVE_FG_COLOR ACTIVE_FG -#define DEF_MENUBUTTON_ACTIVE_FG_MONO WHITE -#define DEF_MENUBUTTON_BG_COLOR NORMAL_BG -#define DEF_MENUBUTTON_BG_MONO WHITE -#define DEF_MENUBUTTON_BITMAP "" -#define DEF_MENUBUTTON_BORDER_WIDTH "2" -#define DEF_MENUBUTTON_CURSOR "" -#define DEF_MENUBUTTON_DIRECTION "below" -#define DEF_MENUBUTTON_DISABLED_FG_COLOR DISABLED -#define DEF_MENUBUTTON_DISABLED_FG_MONO "" -#define DEF_MENUBUTTON_FONT "TkDefaultFont" -#define DEF_MENUBUTTON_FG BLACK -#define DEF_MENUBUTTON_HEIGHT "0" -#define DEF_MENUBUTTON_HIGHLIGHT_BG_COLOR DEF_MENUBUTTON_BG_COLOR -#define DEF_MENUBUTTON_HIGHLIGHT_BG_MONO DEF_MENUBUTTON_BG_MONO -#define DEF_MENUBUTTON_HIGHLIGHT BLACK -#define DEF_MENUBUTTON_HIGHLIGHT_WIDTH "0" -#define DEF_MENUBUTTON_IMAGE ((char *) NULL) -#define DEF_MENUBUTTON_INDICATOR "0" -/* #define DEF_MENUBUTTON_JUSTIFY "center" */ -#define DEF_MENUBUTTON_JUSTIFY "left" -#define DEF_MENUBUTTON_MENU "" -#define DEF_MENUBUTTON_PADX "4p" -#define DEF_MENUBUTTON_PADY "3p" -#define DEF_MENUBUTTON_RELIEF "flat" -#define DEF_MENUBUTTON_STATE "normal" -#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" - -/* - * Defaults for messages: - */ - -#define DEF_MESSAGE_ANCHOR "center" -#define DEF_MESSAGE_ASPECT "150" -#define DEF_MESSAGE_BG_COLOR NORMAL_BG -#define DEF_MESSAGE_BG_MONO WHITE -#define DEF_MESSAGE_BORDER_WIDTH "1" -#define DEF_MESSAGE_CURSOR "" -#define DEF_MESSAGE_FG BLACK -#define DEF_MESSAGE_FONT "TkDefaultFont" -#define DEF_MESSAGE_HIGHLIGHT_BG NORMAL_BG -#define DEF_MESSAGE_HIGHLIGHT BLACK -#define DEF_MESSAGE_HIGHLIGHT_WIDTH "0" -#define DEF_MESSAGE_JUSTIFY "left" -#define DEF_MESSAGE_PADX "-1" -#define DEF_MESSAGE_PADY "-1" -#define DEF_MESSAGE_RELIEF "flat" -#define DEF_MESSAGE_TAKE_FOCUS "0" -#define DEF_MESSAGE_TEXT "" -#define DEF_MESSAGE_TEXT_VARIABLE "" -#define DEF_MESSAGE_WIDTH "0" -/* - * Defaults for panedwindows - */ - -#define DEF_PANEDWINDOW_BG_COLOR NORMAL_BG -#define DEF_PANEDWINDOW_BG_MONO WHITE -#define DEF_PANEDWINDOW_BORDERWIDTH "1" -#define DEF_PANEDWINDOW_CURSOR "" -#define DEF_PANEDWINDOW_HANDLEPAD "8" -#define DEF_PANEDWINDOW_HANDLESIZE "8" -#define DEF_PANEDWINDOW_HEIGHT "" -#define DEF_PANEDWINDOW_OPAQUERESIZE "1" -#define DEF_PANEDWINDOW_ORIENT "horizontal" -#define DEF_PANEDWINDOW_RELIEF "flat" -#define DEF_PANEDWINDOW_SASHCURSOR "" -#define DEF_PANEDWINDOW_SASHPAD "0" -#define DEF_PANEDWINDOW_SASHRELIEF "flat" -#define DEF_PANEDWINDOW_SASHWIDTH "3" -#define DEF_PANEDWINDOW_SHOWHANDLE "0" -#define DEF_PANEDWINDOW_WIDTH "" - -/* - * Defaults for panedwindow panes - */ - -#define DEF_PANEDWINDOW_PANE_AFTER "" -#define DEF_PANEDWINDOW_PANE_BEFORE "" -#define DEF_PANEDWINDOW_PANE_HEIGHT "" -#define DEF_PANEDWINDOW_PANE_MINSIZE "0" -#define DEF_PANEDWINDOW_PANE_PADX "0" -#define DEF_PANEDWINDOW_PANE_PADY "0" -#define DEF_PANEDWINDOW_PANE_STICKY "nsew" -#define DEF_PANEDWINDOW_PANE_WIDTH "" -#define DEF_PANEDWINDOW_PANE_HIDE "0" -#define DEF_PANEDWINDOW_PANE_STRETCH "last" - -/* - * Defaults for scales: - */ - -#define DEF_SCALE_ACTIVE_BG_COLOR ACTIVE_BG -#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_BORDER_WIDTH "1" -#define DEF_SCALE_COMMAND "" -#define DEF_SCALE_CURSOR "" -#define DEF_SCALE_DIGITS "0" -#define DEF_SCALE_FONT "TkDefaultFont" -#define DEF_SCALE_FG_COLOR BLACK -#define DEF_SCALE_FG_MONO BLACK -#define DEF_SCALE_FROM "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 BLACK -#define DEF_SCALE_HIGHLIGHT_WIDTH "0" -#define DEF_SCALE_LABEL "" -#define DEF_SCALE_LENGTH "100" -#define DEF_SCALE_ORIENT "vertical" -#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_TROUGH_COLOR TROUGH -#define DEF_SCALE_TROUGH_MONO WHITE -#define DEF_SCALE_SHOW_VALUE "1" -#define DEF_SCALE_SLIDER_LENGTH "30" -#define DEF_SCALE_SLIDER_RELIEF "raised" -#define DEF_SCALE_STATE "normal" -#define DEF_SCALE_TAKE_FOCUS ((char *) NULL) -#define DEF_SCALE_TICK_INTERVAL "0" -#define DEF_SCALE_TO "100" -#define DEF_SCALE_VARIABLE "" -#define DEF_SCALE_WIDTH "15" - -/* - * Defaults for scrollbars: - */ - -#define DEF_SCROLLBAR_ACTIVE_BG_COLOR ACTIVE_BG -#define DEF_SCROLLBAR_ACTIVE_BG_MONO BLACK -#define DEF_SCROLLBAR_ACTIVE_RELIEF "raised" -#define DEF_SCROLLBAR_BG_COLOR NORMAL_BG -#define DEF_SCROLLBAR_BG_MONO WHITE -#define DEF_SCROLLBAR_BORDER_WIDTH "0" -#define DEF_SCROLLBAR_COMMAND "" -#define DEF_SCROLLBAR_CURSOR "" -#define DEF_SCROLLBAR_EL_BORDER_WIDTH "-1" -#define DEF_SCROLLBAR_HIGHLIGHT_BG NORMAL_BG -#define DEF_SCROLLBAR_HIGHLIGHT BLACK -#define DEF_SCROLLBAR_HIGHLIGHT_WIDTH "0" -#define DEF_SCROLLBAR_JUMP "0" -#define DEF_SCROLLBAR_ORIENT "vertical" -#define DEF_SCROLLBAR_RELIEF "flat" -#define DEF_SCROLLBAR_REPEAT_DELAY "300" -#define DEF_SCROLLBAR_REPEAT_INTERVAL "100" -#define DEF_SCROLLBAR_TAKE_FOCUS ((char *) NULL) -#define DEF_SCROLLBAR_TROUGH_COLOR TROUGH -#define DEF_SCROLLBAR_TROUGH_MONO WHITE -#define DEF_SCROLLBAR_WIDTH "15" - -/* - * Defaults for texts: - */ - -#define DEF_TEXT_AUTO_SEPARATORS "1" -#define DEF_TEXT_BG_COLOR NORMAL_BG -#define DEF_TEXT_BG_MONO WHITE -#define DEF_TEXT_BLOCK_CURSOR "0" -#define DEF_TEXT_BORDER_WIDTH "0" -#define DEF_TEXT_CURSOR "xterm" -#define DEF_TEXT_FG BLACK -#define DEF_TEXT_EXPORT_SELECTION "1" -#define DEF_TEXT_FONT "TkFixedFont" -#define DEF_TEXT_HEIGHT "24" -#define DEF_TEXT_HIGHLIGHT_BG NORMAL_BG -#define DEF_TEXT_HIGHLIGHT BLACK -#define DEF_TEXT_HIGHLIGHT_WIDTH "3" -#define DEF_TEXT_INSERT_BG BLACK -#define DEF_TEXT_INSERT_BD_COLOR "0" -#define DEF_TEXT_INSERT_BD_MONO "0" -#define DEF_TEXT_INSERT_OFF_TIME "300" -#define DEF_TEXT_INSERT_ON_TIME "600" -#define DEF_TEXT_INSERT_UNFOCUSSED "none" -#define DEF_TEXT_INSERT_WIDTH "1" -#define DEF_TEXT_MAX_UNDO "0" -#define DEF_TEXT_PADX "1" -#define DEF_TEXT_PADY "1" -#define DEF_TEXT_RELIEF "flat" -#define DEF_TEXT_INACTIVE_SELECT_COLOR INACTIVE_SELECT_BG -#define DEF_TEXT_SELECT_COLOR SELECT_BG -#define DEF_TEXT_SELECT_MONO BLACK -#define DEF_TEXT_SELECT_BD_COLOR "1" -#define DEF_TEXT_SELECT_BD_MONO "0" -#define DEF_TEXT_SELECT_FG_COLOR SELECT_FG -#define DEF_TEXT_SELECT_FG_MONO WHITE -#define DEF_TEXT_SELECT_RELIEF "flat" -#define DEF_TEXT_SET_GRID "0" -#define DEF_TEXT_SPACING1 "0" -#define DEF_TEXT_SPACING2 "0" -#define DEF_TEXT_SPACING3 "0" -#define DEF_TEXT_STATE "normal" -#define DEF_TEXT_TABS "" -#define DEF_TEXT_TABSTYLE "tabular" -#define DEF_TEXT_TAKE_FOCUS ((char *) NULL) -#define DEF_TEXT_UNDO "0" -#define DEF_TEXT_WIDTH "80" -#define DEF_TEXT_WRAP "char" -#define DEF_TEXT_XSCROLL_COMMAND "" -#define DEF_TEXT_YSCROLL_COMMAND "" - -/* - * Defaults for canvas text: - */ - -#define DEF_CANVTEXT_FONT "TkDefaultFont" - -/* - * Defaults for toplevels (most of the defaults for frames also apply - * to toplevels): - */ - -#define DEF_TOPLEVEL_CLASS "Toplevel" -#define DEF_TOPLEVEL_MENU "" -#define DEF_TOPLEVEL_SCREEN "" -#define DEF_TOPLEVEL_USE "" - -/* - * Defaults for busy windows (not really used yet): - */ - -#define DEF_BUSY_CURSOR "watch" - -#endif /* _TKMACDEFAULT */ diff --git a/carbon/tkMacOSXDialog.c b/carbon/tkMacOSXDialog.c deleted file mode 100644 index d3ea74e..0000000 --- a/carbon/tkMacOSXDialog.c +++ /dev/null @@ -1,2325 +0,0 @@ -/* - * tkMacOSXDialog.c -- - * - * Contains the Mac implementation of the common dialog boxes. - * - * Copyright (c) 1996-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkFileFilter.h" - -#ifndef StrLength -#define StrLength(s) (*((unsigned char *) (s))) -#endif -#ifndef StrBody -#define StrBody(s) ((char *) (s) + 1) -#endif - -#define OPEN_POPUP_ITEM 10 - -#define SAVE_FILE 0 -#define OPEN_FILE 1 -#define CHOOSE_FOLDER 2 - -#define MATCHED 0 -#define UNMATCHED 1 - -#define TK_DEFAULT_ABOUT 128 - -/* - * The following structures are used in the GetFileName() function. They store - * information about the file dialog and the file filters. - */ - -typedef struct _OpenFileData { - FileFilterList fl; /* List of file filters. */ - SInt16 curType; /* The filetype currently being listed. */ - short initialType; /* Type to use initially */ - short popupItem; /* Item number of the popup in the dialog. */ - short usePopup; /* True if we show the popup menu (this */ - /* is an open operation and the */ - /* -filetypes option is set). */ -} OpenFileData; - -typedef struct NavHandlerUserData { - OpenFileData *ofdPtr; - NavReplyRecord reply; - OSStatus err; - CFStringRef saveNameRef; - int sheet; - WindowRef dialogWindow, origUnavailWindow; - WindowModality origModality; -} NavHandlerUserData; - -/* - * The following structure is used in the tk_messageBox implementation. - */ - -typedef struct { - int buttonIndex; - WindowRef dialogWindow, origUnavailWindow; - WindowModality origModality; - EventHandlerRef handlerRef; -} AlertHandlerUserData; - - -static OSStatus AlertHandler(EventHandlerCallRef callRef, - EventRef eventRef, void *userData); -static Boolean MatchOneType(StringPtr fileNamePtr, OSType fileType, - OpenFileData *myofdPtr, FileFilter *filterPtr); -static pascal Boolean OpenFileFilterProc(AEDesc* theItem, void* info, - NavCallBackUserData callBackUD, - NavFilterModes filterMode); -static pascal void OpenEventProc(NavEventCallbackMessage callBackSelector, - NavCBRecPtr callBackParms, - NavCallBackUserData callBackUD); -static void InitFileDialogs(void); -static int NavServicesGetFile(Tcl_Interp *interp, - OpenFileData *ofd, AEDesc *initialDescPtr, - char *initialFile, AEDescList *selectDescPtr, - CFStringRef title, CFStringRef message, - const char *initialType, int multiple, - int confirmOverwrite, int isOpen, - Tk_Window parent); -static int HandleInitialDirectory(Tcl_Interp *interp, - char *initialFile, char *initialDir, FSRef *dirRef, - AEDescList *selectDescPtr, AEDesc *dirDescPtr, - const char *dlgType); - -/* - * Have we initialized the file dialog subsystem - */ - -static int fileDlgInited = 0; - -/* - * Filter and hook functions used by the tk_getOpenFile and tk_getSaveFile - * commands. - */ - -static NavObjectFilterUPP openFileFilterUPP; -static NavEventUPP openFileEventUPP; - -/* - *---------------------------------------------------------------------- - * - * Tk_ChooseColorObjCmd -- - * - * This procedure implements the color dialog box for the Mac platform. - * See the user documentation for details on what it does. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See the user documentation. - * - *---------------------------------------------------------------------- - */ - -int -Tk_ChooseColorObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - OSStatus err; - int result = TCL_ERROR; - Tk_Window parent, tkwin = clientData; - const char *title; - int i, srcRead, dstWrote; - CMProfileRef prof; - NColorPickerInfo cpinfo; - static RGBColor color = {0xffff, 0xffff, 0xffff}; - static const char *const optionStrings[] = { - "-initialcolor", "-parent", "-title", NULL - }; - enum options { - COLOR_INITIAL, COLOR_PARENT, COLOR_TITLE - }; - - title = "Choose a color:"; - bzero(&cpinfo, sizeof(cpinfo)); - cpinfo.theColor.color.rgb.red = color.red; - cpinfo.theColor.color.rgb.green = color.green; - cpinfo.theColor.color.rgb.blue = color.blue; - - for (i = 1; i < objc; i += 2) { - int index; - const char *value; - - if (Tcl_GetIndexFromObj(interp, objv[i], optionStrings, "option", - TCL_EXACT, &index) != TCL_OK) { - goto end; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "COLORDIALOG", "VALUE", NULL); - goto end; - } - value = Tcl_GetString(objv[i + 1]); - - switch ((enum options) index) { - case COLOR_INITIAL: { - XColor *colorPtr; - - colorPtr = Tk_GetColor(interp, tkwin, value); - if (colorPtr == NULL) { - goto end; - } - cpinfo.theColor.color.rgb.red = colorPtr->red; - cpinfo.theColor.color.rgb.green = colorPtr->green; - cpinfo.theColor.color.rgb.blue = colorPtr->blue; - Tk_FreeColor(colorPtr); - break; - } - case COLOR_PARENT: { - parent = Tk_NameToWindow(interp, value, tkwin); - if (parent == NULL) { - goto end; - } - break; - } - case COLOR_TITLE: { - title = value; - break; - } - } - } - - ChkErr(CMGetDefaultProfileBySpace, cmRGBData, &prof); - cpinfo.theColor.profile = prof; - cpinfo.dstProfile = prof; - cpinfo.flags = kColorPickerDialogIsMoveable | kColorPickerDialogIsModal; - cpinfo.placeWhere = kCenterOnMainScreen; - /* Currently, this does not actually change the colorpicker title */ - Tcl_UtfToExternal(NULL, TkMacOSXCarbonEncoding, title, -1, 0, NULL, - StrBody(cpinfo.prompt), 255, &srcRead, &dstWrote, NULL); - StrLength(cpinfo.prompt) = (unsigned char) dstWrote; - - TkMacOSXTrackingLoop(1); - err = ChkErr(NPickColor, &cpinfo); - TkMacOSXTrackingLoop(0); - ChkErr(CMCloseProfile, prof); - if ((err == noErr) && (cpinfo.newColorChosen != 0)) { - char colorstr[8]; - - color.red = cpinfo.theColor.color.rgb.red; - color.green = cpinfo.theColor.color.rgb.green; - color.blue = cpinfo.theColor.color.rgb.blue; - snprintf(colorstr, 8, "#%02x%02x%02x", color.red >> 8, - color.green >> 8, color.blue >> 8); - Tcl_SetObjResult(interp, Tcl_NewStringObj(colorstr, 7)); - } else { - Tcl_ResetResult(interp); - } - result = TCL_OK; - - end: - return result; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetOpenFileObjCmd -- - * - * This procedure implements the "open file" dialog box for the Mac - * platform. See the user documentation for details on what it does. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See user documentation. - *---------------------------------------------------------------------- - */ - -int -Tk_GetOpenFileObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - int i, result = TCL_ERROR, multiple = 0; - OpenFileData ofd; - Tk_Window parent = NULL; - CFStringRef message = NULL, title = NULL; - AEDesc initialDesc = {typeNull, NULL}; - FSRef dirRef; - AEDesc *initialPtr = NULL; - AEDescList selectDesc = {typeNull, NULL}; - char *initialFile = NULL, *initialDir = NULL; - Tcl_Obj *typeVariablePtr = NULL; - const char *initialtype = NULL; - static const char *const openOptionStrings[] = { - "-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, - }; - - if (!fileDlgInited) { - InitFileDialogs(); - } - TkInitFileFilters(&ofd.fl); - ofd.curType = 0; - ofd.initialType = -1; - ofd.popupItem = OPEN_POPUP_ITEM; - ofd.usePopup = 1; - - for (i = 1; i < objc; i += 2) { - char *choice; - int index, choiceLen; - Tcl_Obj *types; - - if (Tcl_GetIndexFromObj(interp, objv[i], openOptionStrings, "option", - TCL_EXACT, &index) != TCL_OK) { - goto end; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "FILEDIALOG", "VALUE", NULL); - goto end; - } - - switch (index) { - case OPEN_DEFAULT: - break; - case OPEN_FILETYPES: - types = objv[i + 1]; - if (TkGetFileFilters(interp, &ofd.fl, types, 0) != TCL_OK) { - goto end; - } - break; - case OPEN_INITDIR: - initialDir = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - /* empty strings should be like no selection given */ - if (choiceLen == 0) { - initialDir = NULL; - } - break; - case OPEN_INITFILE: - initialFile = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - /* empty strings should be like no selection given */ - if (choiceLen == 0) { - initialFile = NULL; - } - break; - case OPEN_MESSAGE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (message) { - CFRelease(message); - } - message = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - case OPEN_MULTIPLE: - if (Tcl_GetBooleanFromObj(interp, objv[i + 1], - &multiple) != TCL_OK) { - goto end; - } - break; - case OPEN_PARENT: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - parent = Tk_NameToWindow(interp, choice, clientData); - if (parent == NULL) { - goto end; - } - break; - case OPEN_TITLE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (title) { - CFRelease(title); - } - title = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - case OPEN_TYPEVARIABLE: - typeVariablePtr = objv[i + 1]; - break; - } - } - - if (HandleInitialDirectory(interp, initialFile, initialDir, &dirRef, - &selectDesc, &initialDesc, "FILEDIALOG") != TCL_OK) { - goto end; - } - if (initialDesc.descriptorType == typeFSRef) { - initialPtr = &initialDesc; - } - if (typeVariablePtr) { - initialtype = Tcl_GetVar(interp, Tcl_GetString(typeVariablePtr), 0); - } - result = NavServicesGetFile(interp, &ofd, initialPtr, NULL, &selectDesc, - title, message, initialtype, multiple, false, OPEN_FILE, parent); - - if (typeVariablePtr) { - FileFilter *filterPtr = ofd.fl.filters; - int i = ofd.curType; - - while (filterPtr && i-- > 0) { - filterPtr = filterPtr->next; - } - Tcl_SetVar(interp, Tcl_GetString(typeVariablePtr), filterPtr ? - filterPtr->name : "", 0); - } - - end: - TkFreeFileFilters(&ofd.fl); - if (initialDesc.dataHandle) { - ChkErr(AEDisposeDesc, &initialDesc); - } - if (selectDesc.dataHandle) { - ChkErr(AEDisposeDesc, &selectDesc); - } - if (title) { - CFRelease(title); - } - if (message) { - CFRelease(message); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetSaveFileObjCmd -- - * - * Same as Tk_GetOpenFileCmd but opens a "save file" dialog box instead. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See user documentation. - *---------------------------------------------------------------------- - */ - -int -Tk_GetSaveFileObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - int i, result = TCL_ERROR; - int confirmOverwrite = 1; - char *initialFile = NULL; - Tk_Window parent = NULL; - AEDesc initialDesc = {typeNull, NULL}; - AEDesc *initialPtr = NULL; - FSRef dirRef; - CFStringRef title = NULL, message = NULL; - OpenFileData ofd; - static const char *const saveOptionStrings[] = { - "-defaultextension", "-filetypes", "-initialdir", "-initialfile", - "-message", "-parent", "-title", "-typevariable", - "-confirmoverwrite", NULL - }; - enum saveOptions { - SAVE_DEFAULT, SAVE_FILETYPES, SAVE_INITDIR, SAVE_INITFILE, - SAVE_MESSAGE, SAVE_PARENT, SAVE_TITLE, SAVE_TYPEVARIABLE, - SAVE_CONFIRMOW - }; - - if (!fileDlgInited) { - InitFileDialogs(); - } - - TkInitFileFilters(&ofd.fl); - ofd.curType = 0; - ofd.usePopup = 0; - - for (i = 1; i < objc; i += 2) { - char *choice; - int index, choiceLen; - Tcl_Obj *types; - - if (Tcl_GetIndexFromObj(interp, objv[i], saveOptionStrings, "option", - TCL_EXACT, &index) != TCL_OK) { - goto end; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "FILEDIALOG", "VALUE", NULL); - goto end; - } - switch (index) { - case SAVE_DEFAULT: - break; - case SAVE_FILETYPES: - types = objv[i + 1]; - if (TkGetFileFilters(interp, &ofd.fl, types, 0) != TCL_OK) { - goto end; - } - break; - case SAVE_INITDIR: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - /* empty strings should be like no selection given */ - if (choiceLen && HandleInitialDirectory(interp, NULL, choice, - &dirRef, NULL, &initialDesc, "FILEDIALOG") != TCL_OK) { - goto end; - } - break; - case SAVE_INITFILE: - initialFile = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - /* empty strings should be like no selection given */ - if (choiceLen == 0) { - initialFile = NULL; - } - break; - case SAVE_MESSAGE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (message) { - CFRelease(message); - } - message = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - case SAVE_PARENT: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - parent = Tk_NameToWindow(interp, choice, (Tk_Window) clientData); - if (parent == NULL) { - goto end; - } - break; - case SAVE_TITLE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (title) { - CFRelease(title); - } - title = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - case SAVE_CONFIRMOW: - if (Tcl_GetBooleanFromObj(interp, objv[i + 1], &confirmOverwrite) - != TCL_OK) { - return TCL_ERROR; - } - } - } - - if (initialDesc.descriptorType == typeFSRef) { - initialPtr = &initialDesc; - } - result = NavServicesGetFile(interp, &ofd, initialPtr, initialFile, NULL, - title, message, NULL, false, confirmOverwrite, SAVE_FILE, parent); - TkFreeFileFilters(&ofd.fl); - end: - if (initialDesc.dataHandle) { - ChkErr(AEDisposeDesc, &initialDesc); - } - if (title) { - CFRelease(title); - } - if (message) { - CFRelease(message); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_ChooseDirectoryObjCmd -- - * - * This procedure implements the "tk_chooseDirectory" dialog box for the - * MacOS X platform. See the user documentation for details on what it - * does. - * - * Results: - * See user documentation. - * - * Side effects: - * A modal dialog window is created. - * - *---------------------------------------------------------------------- - */ - -int -Tk_ChooseDirectoryObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - int i, result = TCL_ERROR; - Tk_Window parent = NULL; - AEDesc initialDesc = {typeNull, NULL}, *initialPtr = NULL; - FSRef dirRef; - CFStringRef message = NULL, title = NULL; - OpenFileData ofd; - static const char *const chooseOptionStrings[] = { - "-initialdir", "-message", "-mustexist", "-parent", "-title", NULL - }; - enum chooseOptions { - CHOOSE_INITDIR, CHOOSE_MESSAGE, CHOOSE_MUSTEXIST, CHOOSE_PARENT, - CHOOSE_TITLE - }; - - if (!fileDlgInited) { - InitFileDialogs(); - } - - for (i = 1; i < objc; i += 2) { - char *choice; - int index, choiceLen; - - if (Tcl_GetIndexFromObj(interp, objv[i], chooseOptionStrings, "option", - TCL_EXACT, &index) != TCL_OK) { - goto end; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "DIRDIALOG", "VALUE", NULL); - goto end; - } - switch (index) { - case CHOOSE_INITDIR: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (choiceLen && HandleInitialDirectory(interp, NULL, choice, - &dirRef, NULL, &initialDesc, "DIRDIALOG") != TCL_OK) { - goto end; - } - break; - case CHOOSE_MESSAGE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (message) { - CFRelease(message); - } - message = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - case CHOOSE_PARENT: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - parent = Tk_NameToWindow(interp, choice, clientData); - if (parent == NULL) { - goto end; - } - break; - case CHOOSE_TITLE: - choice = Tcl_GetStringFromObj(objv[i + 1], &choiceLen); - if (title) { - CFRelease(title); - } - title = CFStringCreateWithBytes(NULL, (unsigned char *) choice, - choiceLen, kCFStringEncodingUTF8, false); - break; - } - } - - TkInitFileFilters(&ofd.fl); - ofd.usePopup = 0; - if (initialDesc.descriptorType == typeFSRef) { - initialPtr = &initialDesc; - } - result = NavServicesGetFile(interp, &ofd, initialPtr, NULL, NULL, title, - message, NULL, false, false, CHOOSE_FOLDER, parent); - TkFreeFileFilters(&ofd.fl); - end: - if (initialDesc.dataHandle) { - ChkErr(AEDisposeDesc, &initialDesc); - } - if (title) { - CFRelease(title); - } - if (message) { - CFRelease(message); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * HandleInitialDirectory -- - * - * Helper for -initialdir setup. - * - * Results: - * Tcl result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -HandleInitialDirectory( - Tcl_Interp *interp, - char *initialFile, - char *initialDir, - FSRef *dirRef, - AEDescList *selectDescPtr, - AEDesc *dirDescPtr, - const char *dlgType) -{ - Tcl_DString ds; - OSStatus err; - Boolean isDirectory; - char *dirName = NULL; - int result = TCL_ERROR; - - if (initialDir) { - dirName = Tcl_TranslateFileName(interp, initialDir, &ds); - if (dirName == NULL) { - goto end; - } - err = ChkErr(FSPathMakeRef, (unsigned char *) dirName, dirRef, - &isDirectory); - if (err != noErr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "bad directory \"%s\"", initialDir)); - Tcl_SetErrorCode(interp, "TK", dlgType, "NO_INITDIR", NULL); - goto end; - } - if (!isDirectory) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "-intialdir \"%s\" is a file, not a directory.", - initialDir)); - Tcl_SetErrorCode(interp, "TK", dlgType, "BAD_INITDIR", NULL); - goto end; - } - ChkErr(AECreateDesc, typeFSRef, dirRef, sizeof(*dirRef), dirDescPtr); - } - - if (initialFile && selectDescPtr) { - FSRef fileRef; - AEDesc fileDesc; - char *namePtr; - - if (initialDir) { - Tcl_DStringAppend(&ds, "/", 1); - Tcl_DStringAppend(&ds, initialFile, -1); - namePtr = Tcl_DStringValue(&ds); - } else { - namePtr = initialFile; - } - - ChkErr(AECreateList, NULL, 0, false, selectDescPtr); - - err = ChkErr(FSPathMakeRef, (unsigned char *) namePtr, &fileRef, - &isDirectory); - if (err != noErr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "bad initialfile \"%s\" file does not exist.", - initialFile)); - Tcl_SetErrorCode(interp, "TK", dlgType, "NO_INITFILE", NULL); - goto end; - } - ChkErr(AECreateDesc, typeFSRef, &fileRef, sizeof(fileRef), &fileDesc); - ChkErr(AEPutDesc, selectDescPtr, 1, &fileDesc); - ChkErr(AEDisposeDesc, &fileDesc); - } - result = TCL_OK; - end: - if (dirName) { - Tcl_DStringFree(&ds); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * InitFileDialogs -- - * - * Initialize file dialog subsystem. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -InitFileDialogs(void) -{ - fileDlgInited = 1; - openFileFilterUPP = NewNavObjectFilterUPP(OpenFileFilterProc); - openFileEventUPP = NewNavEventUPP(OpenEventProc); -} - -/* - *---------------------------------------------------------------------- - * - * NavServicesGetFile -- - * - * Common wrapper for NavServices API. - * - * Results: - * Tcl result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -NavServicesGetFile( - Tcl_Interp *interp, - OpenFileData *ofdPtr, - AEDesc *initialDescPtr, - char *initialFile, - AEDescList *selectDescPtr, - CFStringRef title, - CFStringRef message, - const char *initialtype, - int multiple, - int confirmOverwrite, - int isOpen, - Tk_Window parent) -{ - NavHandlerUserData data; - NavDialogCreationOptions options; - NavDialogRef dialogRef = NULL; - CFStringRef *menuItemNames = NULL; - OSStatus err; - Tcl_Obj *theResult = NULL; - int result = TCL_ERROR; - - bzero(&data, sizeof(data)); - err = NavGetDefaultDialogCreationOptions(&options); - if (err != noErr) { - return result; - } - options.optionFlags = kNavDontAutoTranslate | kNavDontAddTranslateItems - | kNavSupportPackages | kNavAllFilesInPopup; - if (multiple) { - options.optionFlags |= kNavAllowMultipleFiles; - } - if (!confirmOverwrite) { - options.optionFlags |= kNavDontConfirmReplacement; - } - options.modality = kWindowModalityAppModal; - if (parent && ((TkWindow *) parent)->window != None && - TkMacOSXHostToplevelExists(parent)) { - options.parentWindow = TkMacOSXDrawableWindow(Tk_WindowId(parent)); - TK_IF_HI_TOOLBOX (5, - /* - * Impossible to modify dialog modality with the Cocoa-based - * NavServices implementation. - */ - ) TK_ELSE_HI_TOOLBOX (5, - if (options.parentWindow) { - options.modality = kWindowModalityWindowModal; - data.sheet = 1; - } - ) TK_ENDIF - } - - /* - * Now process the selection list. We have to use the popupExtension - * to fill the menu. - */ - - if (ofdPtr && ofdPtr->usePopup) { - FileFilter *filterPtr = ofdPtr->fl.filters; - - if (filterPtr == NULL) { - ofdPtr->usePopup = 0; - } - } - if (ofdPtr && ofdPtr->usePopup) { - FileFilter *filterPtr; - int index = 0; - ofdPtr->curType = 0; - - menuItemNames = - ckalloc(ofdPtr->fl.numFilters * sizeof(CFStringRef)); - - for (filterPtr = ofdPtr->fl.filters; filterPtr != NULL; - filterPtr = filterPtr->next, index++) { - menuItemNames[index] = CFStringCreateWithCString(NULL, - filterPtr->name, kCFStringEncodingUTF8); - if (initialtype && strcmp(filterPtr->name, initialtype) == 0) { - ofdPtr->initialType = index; - } - } - options.popupExtension = CFArrayCreate(NULL, - (const void **) menuItemNames, ofdPtr->fl.numFilters, NULL); - } else { - options.optionFlags |= kNavNoTypePopup; - options.popupExtension = NULL; - } - options.clientName = CFSTR("Wish"); - options.message = message; - options.windowTitle = title; - if (initialFile) { - options.saveFileName = CFStringCreateWithCString(NULL, initialFile, - kCFStringEncodingUTF8); - } else { - options.saveFileName = NULL; - } - if (isOpen == OPEN_FILE) { - data.ofdPtr = ofdPtr; - err = ChkErr(NavCreateGetFileDialog, &options, NULL, - openFileEventUPP, NULL, openFileFilterUPP, &data, &dialogRef); - } else if (isOpen == SAVE_FILE) { - err = ChkErr(NavCreatePutFileDialog, &options, 'TEXT', 'WIsH', - openFileEventUPP, &data, &dialogRef); - } else if (isOpen == CHOOSE_FOLDER) { - err = ChkErr(NavCreateChooseFolderDialog, &options, - openFileEventUPP, openFileFilterUPP, &data, &dialogRef); - } - if (err == noErr && dialogRef) { - if (initialDescPtr) { - ChkErr(NavCustomControl, dialogRef, kNavCtlSetLocation, - initialDescPtr); - } - if (selectDescPtr && selectDescPtr->descriptorType != typeNull) { - ChkErr(NavCustomControl, dialogRef, kNavCtlSetSelection, - selectDescPtr); - } - TkMacOSXTrackingLoop(1); - err = ChkErr(NavDialogRun, dialogRef); - if (err == noErr) { - if (data.sheet) { - data.dialogWindow = NavDialogGetWindow(dialogRef); - ChkErr(GetWindowModality, data.dialogWindow, - &data.origModality, &data.origUnavailWindow); - ChkErr(SetWindowModality, data.dialogWindow, - kWindowModalityAppModal, NULL); - ChkErr(RunAppModalLoopForWindow, data.dialogWindow); - } - err = data.err; - } - TkMacOSXTrackingLoop(0); - } - - /* - * Most commands assume that the file dialogs return a single item, not a - * list. So only build a list if multiple is true... - */ - - if (err == noErr) { - if (multiple) { - theResult = Tcl_NewListObj(0, NULL); - } else { - theResult = Tcl_NewObj(); - } - if (!theResult) { - err = memFullErr; - } - } - if (err == noErr && data.reply.validRecord) { - AEDesc resultDesc; - long count, i; - FSRef fsRef; - char pathPtr[PATH_MAX + 1]; - char saveName[PATH_MAX + 1]; - - err = ChkErr(AECountItems, &data.reply.selection, &count); - if (err != noErr) { - /* - * There was an error when counting the items? Treat as if no - * items were chosen. - */ - - goto installResult; - } - - /* - * Process the chosen files. This will be one unless -multiple was - * specified. - */ - - for (i = 1; i <= count; i++) { - /* - * Get the name of the selected file. - */ - - err = ChkErr(AEGetNthDesc, &data.reply.selection, i, - typeFSRef, NULL, &resultDesc); - if (err != noErr) { - continue; - } - err = ChkErr(AEGetDescData, &resultDesc, &fsRef, sizeof(fsRef)); - if (err != noErr) { - goto nextFilename; - } - err = ChkErr(FSRefMakePath, &fsRef, (unsigned char *) pathPtr, - PATH_MAX + 1); - if (err != noErr) { - goto nextFilename; - } - - /* - * If we're saving the file, we're creating a new filename and - * must therefore check whether it is a legal filename (not - * exceeding path length limits, etc.) - */ - - if (isOpen == SAVE_FILE) { - if (!data.saveNameRef) { - TkMacOSXDbgMsg("NavDialogGetSaveFileName failed"); - goto nextFilename; - } - - if (!CFStringGetCString(data.saveNameRef, saveName, - PATH_MAX + 1, kCFStringEncodingUTF8)) { - TkMacOSXDbgMsg("CFStringGetCString failed"); - goto nextFilename; - } - - if (strlen(pathPtr) + strlen(saveName) >= PATH_MAX) { - TkMacOSXDbgMsg("Path name too long"); - goto nextFilename; - } - - strcat(pathPtr, "/"); - strcat(pathPtr, saveName); - } - - /* - * Got a valid file name; put it in the result object. - */ - - if (multiple) { - Tcl_ListObjAppendElement(interp, theResult, - Tcl_NewStringObj(pathPtr, -1)); - } else { - Tcl_SetStringObj(theResult, pathPtr, -1); - } - - nextFilename: - ChkErr(AEDisposeDesc, &resultDesc); - } - - installResult: - Tcl_SetObjResult(interp, theResult); - result = TCL_OK; - } else if (err == userCanceledErr) { - Tcl_ResetResult(interp); - result = TCL_OK; - } - - /* - * Clean up any allocated memory. - */ - - if (data.reply.validRecord) { - ChkErr(NavDisposeReply, &data.reply); - } - if (data.saveNameRef) { - CFRelease(data.saveNameRef); - } - if (options.saveFileName) { - CFRelease(options.saveFileName); - } - if (options.clientName) { - CFRelease(options.clientName); - } - if (menuItemNames) { - int i; - - for (i = 0; i < ofdPtr->fl.numFilters; i++) { - CFRelease(menuItemNames[i]); - } - ckfree(menuItemNames); - } - if (options.popupExtension) { - CFRelease(options.popupExtension); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * OpenEventProc -- - * - * NavServices event handling callback. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -pascal void -OpenEventProc( - NavEventCallbackMessage callBackSelector, - NavCBRecPtr callBackParams, - NavCallBackUserData callBackUD) -{ - NavHandlerUserData *data = (NavHandlerUserData*) callBackUD; - OpenFileData *ofd = data->ofdPtr; - - switch (callBackSelector) { - case kNavCBStart: - if (ofd && ofd->initialType >= 0) { - /* Select initial filter */ - FileFilter *filterPtr = ofd->fl.filters; - int i = ofd->initialType; - - while (filterPtr && i-- > 0) { - filterPtr = filterPtr->next; - } - if (filterPtr) { - NavMenuItemSpec selectItem; - - selectItem.version = kNavMenuItemSpecVersion; - selectItem.menuCreator = 0; - selectItem.menuType = ofd->initialType; - selectItem.menuItemName[0] = strlen(filterPtr->name); - strncpy((char *) &selectItem.menuItemName[1], - filterPtr->name, 255); - ChkErr(NavCustomControl, callBackParams->context, - kNavCtlSelectCustomType, &selectItem); - } - } - break; - case kNavCBPopupMenuSelect: - ofd->curType = ((NavMenuItemSpec *) - callBackParams->eventData.eventDataParms.param)->menuType; - break; - case kNavCBAccept: - case kNavCBCancel: - if (data->sheet) { - ChkErr(QuitAppModalLoopForWindow, data->dialogWindow); - ChkErr(SetWindowModality, data->dialogWindow, - data->origModality, data->origUnavailWindow); - } - break; - case kNavCBUserAction: - if (data->reply.validRecord) { - ChkErr(NavDisposeReply, &data->reply); - data->reply.validRecord = 0; - } - data->err = NavDialogGetReply(callBackParams->context, - &data->reply); - if (callBackParams->userAction == kNavUserActionSaveAs) { - data->saveNameRef = NavDialogGetSaveFileName( - callBackParams->context); - if (data->saveNameRef) { - CFRetain(data->saveNameRef); - } - } - break; - case kNavCBTerminate: - NavDialogDispose(callBackParams->context); - break; - case kNavCBEvent: - TkMacOSXRunTclEventLoop(); - break; - } -} - -/* - *---------------------------------------------------------------------- - * - * OpenFileFilterProc -- - * - * NavServices file filter callback. - * - * Results: - * Whether to use the file in question. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -pascal Boolean -OpenFileFilterProc( - AEDesc *theItem, - void *info, - NavCallBackUserData callBackUD, - NavFilterModes filterMode) -{ - OpenFileData *ofdPtr = ((NavHandlerUserData *) callBackUD)->ofdPtr; - int result = MATCHED; - - if (ofdPtr && ofdPtr->usePopup && ofdPtr->fl.numFilters > 0 && - ((theItem->descriptorType == typeFSS) - || (theItem->descriptorType == typeFSRef))) { - NavFileOrFolderInfo *theInfo = info; - char fileName[256]; - OSType fileType; - StringPtr fileNamePtr = NULL; - Tcl_DString fileNameDString; - int i; - FileFilter *filterPtr; - - if (!theInfo->isFolder) { - fileType = theInfo->fileAndFolder.fileInfo.finderInfo.fdType; - Tcl_DStringInit(&fileNameDString); - - if (theItem->descriptorType == typeFSS) { - int len; - - fileNamePtr = ((FSSpec *) *theItem->dataHandle)->name; - len = fileNamePtr[0]; - strncpy(fileName, (char *) fileNamePtr + 1, len); - fileName[len] = '\0'; - fileNamePtr = (unsigned char *) fileName; - } else if ((theItem->descriptorType == typeFSRef)) { - OSStatus err; - FSRef *theRef = (FSRef *) *theItem->dataHandle; - HFSUniStr255 uniFileName; - - err = ChkErr(FSGetCatalogInfo, theRef, kFSCatInfoNone, - NULL, &uniFileName, NULL, NULL); - - if (err == noErr) { - Tcl_UniCharToUtfDString((Tcl_UniChar *)uniFileName.unicode, - uniFileName.length, &fileNameDString); - fileNamePtr = (unsigned char *) - Tcl_DStringValue(&fileNameDString); - } - } - if (ofdPtr->usePopup) { - i = ofdPtr->curType; - for (filterPtr = ofdPtr->fl.filters; filterPtr && i>0; i--) { - filterPtr = filterPtr->next; - } - if (filterPtr) { - result = MatchOneType(fileNamePtr, fileType, ofdPtr, - filterPtr); - } else { - result = UNMATCHED; - } - } else { - /* - * We are not using the popup menu. In this case, the file is - * considered matched if it matches any of the file filters. - */ - - result = UNMATCHED; - for (filterPtr = ofdPtr->fl.filters; filterPtr; - filterPtr = filterPtr->next) { - if (MatchOneType(fileNamePtr, fileType, ofdPtr, - filterPtr) == MATCHED) { - result = MATCHED; - break; - } - } - } - Tcl_DStringFree(&fileNameDString); - } - } - return (result == MATCHED); -} - -/* - *---------------------------------------------------------------------- - * - * MatchOneType -- - * - * Match a file with one file type in the list of file types. - * - * Results: - * Returns MATCHED if the file matches with the file type; returns - * UNMATCHED otherwise. - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -Boolean -MatchOneType( - StringPtr fileNamePtr, /* Name of the file */ - OSType fileType, /* Type of the file, 0 means there was no - * specified type. */ - OpenFileData *ofdPtr, /* Information about this file dialog */ - FileFilter *filterPtr) /* Match the file described by pb against this - * filter */ -{ - FileFilterClause *clausePtr; - - /* - * A file matches with a file type if it matches with at least one clause - * of the type. - * - * If the clause has both glob patterns and ostypes, the file must match - * with at least one pattern AND at least one ostype. - * - * If the clause has glob patterns only, the file must match with at least - * one pattern. - * - * If the clause has mac types only, the file must match with at least one - * mac type. - * - * If the clause has neither glob patterns nor mac types, it's considered - * an error. - */ - - for (clausePtr = filterPtr->clauses; clausePtr; - clausePtr = clausePtr->next) { - int macMatched = 0; - int globMatched = 0; - GlobPattern *globPtr; - MacFileType *mfPtr; - - if (clausePtr->patterns == NULL) { - globMatched = 1; - } - if (clausePtr->macTypes == NULL) { - macMatched = 1; - } - - for (globPtr = clausePtr->patterns; globPtr; - globPtr = globPtr->next) { - char *q, *ext; - - if (fileNamePtr == NULL) { - continue; - } - ext = globPtr->pattern; - - if (ext[0] == '\0') { - /* - * We don't want any extensions: OK if the filename doesn't - * have "." in it - */ - - for (q = (char*) fileNamePtr; *q; q++) { - if (*q == '.') { - goto glob_unmatched; - } - } - goto glob_matched; - } - - if (Tcl_StringMatch((char*) fileNamePtr, ext)) { - goto glob_matched; - } - glob_unmatched: - continue; - - glob_matched: - globMatched = 1; - break; - } - - for (mfPtr = clausePtr->macTypes; mfPtr; mfPtr = mfPtr->next) { - if (fileType == mfPtr->type) { - macMatched = 1; - break; - } - } - - /* - * On Mac OS X, it is not uncommon for files to have NO file type. But - * folks with Tcl code on Classic MacOS pretty much assume that a - * generic file will have type TEXT. So if we were strict about - * matching types when the source file had NO type set, they would - * have to add another rule always with no fileType. To avoid that, we - * pass the macMatch side of the test if no fileType is set. - */ - - if (globMatched && (macMatched || (fileType == 0))) { - return MATCHED; - } - } - - return UNMATCHED; -} - -/* - *---------------------------------------------------------------------- - * - * TkAboutDlg -- - * - * Displays the default Tk About box. This code uses Macintosh resources - * to define the content of the About Box. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkAboutDlg(void) -{ - DialogPtr aboutDlog; - WindowRef windowRef; - short itemHit = -9; - - aboutDlog = GetNewDialog(TK_DEFAULT_ABOUT, NULL, (void *) (-1)); - if (!aboutDlog) { - return; - } - windowRef = GetDialogWindow(aboutDlog); - SelectWindow(windowRef); - TkMacOSXTrackingLoop(1); - while (itemHit != 1) { - ModalDialog(NULL, &itemHit); - } - TkMacOSXTrackingLoop(0); - DisposeDialog(aboutDlog); - SelectWindow(ActiveNonFloatingWindow()); -} - -/* - *---------------------------------------------------------------------- - * - * Tk_MessageBoxObjCmd -- - * - * Implements the tk_messageBox in native Mac OS X style. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * none - * - *---------------------------------------------------------------------- - */ - -int -Tk_MessageBoxObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - Tk_Window tkwin = clientData; - AlertStdCFStringAlertParamRec paramCFStringRec; - AlertType alertType; - DialogRef dialogRef; - CFStringRef messageTextCF = NULL, finemessageTextCF = NULL; - OSStatus err; - SInt16 itemHit; - Boolean haveDefaultOption = false, haveParentOption = false; - char *str; - int index, defaultButtonIndex; - int defaultNativeButtonIndex; /* 1, 2, 3: right to left */ - int typeIndex, i, indexDefaultOption = 0, result = TCL_ERROR; - - static const char *const movableAlertStrings[] = { - "-default", "-detail", "-icon", "-message", "-parent", "-title", - "-type", NULL - }; - static const char *const movableTypeStrings[] = { - "abortretryignore", "ok", "okcancel", "retrycancel", "yesno", - "yesnocancel", NULL - }; - static const char *const movableButtonStrings[] = { - "abort", "retry", "ignore", "ok", "cancel", "yes", "no", NULL - }; - static const char *const movableIconStrings[] = { - "error", "info", "question", "warning", NULL - }; - enum movableAlertOptions { - ALERT_DEFAULT, ALERT_DETAIL, ALERT_ICON, ALERT_MESSAGE, ALERT_PARENT, - ALERT_TITLE, ALERT_TYPE - }; - enum movableTypeOptions { - TYPE_ABORTRETRYIGNORE, TYPE_OK, TYPE_OKCANCEL, TYPE_RETRYCANCEL, - TYPE_YESNO, TYPE_YESNOCANCEL - }; - enum movableButtonOptions { - TEXT_ABORT, TEXT_RETRY, TEXT_IGNORE, TEXT_OK, TEXT_CANCEL, TEXT_YES, - TEXT_NO - }; - enum movableIconOptions { - ICON_ERROR, ICON_INFO, ICON_QUESTION, ICON_WARNING - }; - - /* - * Need to map from 'movableButtonStrings' and its corresponding integer, - * index to the native button index, which is 1, 2, 3, from right to left. - * This is necessary to do for each separate '-type' of button sets. - */ - - short buttonIndexAndTypeToNativeButtonIndex[][7] = { - /* abort retry ignore ok cancel yes no */ - {1, 2, 3, 0, 0, 0, 0}, /* abortretryignore */ - {0, 0, 0, 1, 0, 0, 0}, /* ok */ - {0, 0, 0, 1, 2, 0, 0}, /* okcancel */ - {0, 1, 0, 0, 2, 0, 0}, /* retrycancel */ - {0, 0, 0, 0, 0, 1, 2}, /* yesno */ - {0, 0, 0, 0, 3, 1, 2}, /* yesnocancel */ - }; - - /* - * Need also the inverse mapping, from native button (1, 2, 3) to the - * descriptive button text string index. - */ - - short nativeButtonIndexAndTypeToButtonIndex[][4] = { - {-1, 0, 1, 2}, /* abortretryignore */ - {-1, 3, 0, 0}, /* ok */ - {-1, 3, 4, 0}, /* okcancel */ - {-1, 1, 4, 0}, /* retrycancel */ - {-1, 5, 6, 0}, /* yesno */ - {-1, 5, 6, 4}, /* yesnocancel */ - }; - - alertType = kAlertPlainAlert; - typeIndex = TYPE_OK; - - ChkErr(GetStandardAlertDefaultParams, ¶mCFStringRec, - kStdCFStringAlertVersionOne); - paramCFStringRec.movable = true; - paramCFStringRec.helpButton = false; - paramCFStringRec.defaultButton = kAlertStdAlertOKButton; - paramCFStringRec.cancelButton = kAlertStdAlertCancelButton; - - for (i = 1; i < objc; i += 2) { - int iconIndex; - - if (Tcl_GetIndexFromObj(interp, objv[i], movableAlertStrings, "option", - TCL_EXACT, &index) != TCL_OK) { - goto end; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "MSGBOX", "VALUE", NULL); - goto end; - } - - switch (index) { - case ALERT_DEFAULT: - /* - * Need to postpone processing of this option until we are sure to - * know the '-type' as well. - */ - - haveDefaultOption = true; - indexDefaultOption = i; - break; - - case ALERT_DETAIL: - str = Tcl_GetString(objv[i + 1]); - if (finemessageTextCF) { - CFRelease(finemessageTextCF); - } - finemessageTextCF = CFStringCreateWithCString(NULL, str, - kCFStringEncodingUTF8); - break; - - case ALERT_ICON: - if (Tcl_GetIndexFromObj(interp, objv[i + 1], movableIconStrings, - "value", TCL_EXACT, &iconIndex) != TCL_OK) { - goto end; - } - switch (iconIndex) { - case ICON_ERROR: - alertType = kAlertStopAlert; - break; - case ICON_INFO: - alertType = kAlertNoteAlert; - break; - case ICON_QUESTION: - alertType = kAlertCautionAlert; - break; - case ICON_WARNING: - alertType = kAlertCautionAlert; - break; - } - break; - - case ALERT_MESSAGE: - str = Tcl_GetString(objv[i + 1]); - if (messageTextCF) { - CFRelease(messageTextCF); - } - messageTextCF = CFStringCreateWithCString(NULL, str, - kCFStringEncodingUTF8); - break; - - case ALERT_PARENT: - str = Tcl_GetString(objv[i + 1]); - tkwin = Tk_NameToWindow(interp, str, tkwin); - if (tkwin == NULL) { - goto end; - } - if (((TkWindow *) tkwin)->window != None && - TkMacOSXHostToplevelExists(tkwin)) { - haveParentOption = true; - } - break; - - case ALERT_TITLE: - /* TODO: message box title missing? */ - break; - - case ALERT_TYPE: - if (Tcl_GetIndexFromObj(interp, objv[i + 1], movableTypeStrings, - "value", TCL_EXACT, &typeIndex) != TCL_OK) { - goto end; - } - switch (typeIndex) { - case TYPE_ABORTRETRYIGNORE: - paramCFStringRec.defaultText = CFSTR("Abort"); - paramCFStringRec.cancelText = CFSTR("Retry"); - paramCFStringRec.otherText = CFSTR("Ignore"); - paramCFStringRec.cancelButton = kAlertStdAlertOtherButton; - break; - case TYPE_OK: - paramCFStringRec.defaultText = CFSTR("OK"); - break; - case TYPE_OKCANCEL: - paramCFStringRec.defaultText = CFSTR("OK"); - paramCFStringRec.cancelText = CFSTR("Cancel"); - break; - case TYPE_RETRYCANCEL: - paramCFStringRec.defaultText = CFSTR("Retry"); - paramCFStringRec.cancelText = CFSTR("Cancel"); - break; - case TYPE_YESNO: - paramCFStringRec.defaultText = CFSTR("Yes"); - paramCFStringRec.cancelText = CFSTR("No"); - break; - case TYPE_YESNOCANCEL: - paramCFStringRec.defaultText = CFSTR("Yes"); - paramCFStringRec.cancelText = CFSTR("No"); - paramCFStringRec.otherText = CFSTR("Cancel"); - paramCFStringRec.cancelButton = kAlertStdAlertOtherButton; - break; - } - break; - } - } - - if (haveDefaultOption) { - /* - * Any '-default' option needs to know the '-type' option, which is why - * we do this here. - */ - - if (Tcl_GetIndexFromObj(interp, objv[indexDefaultOption + 1], - movableButtonStrings, "value", TCL_EXACT, &defaultButtonIndex) - != TCL_OK) { - goto end; - } - - /* - * Need to map from "ok" etc. to 1, 2, 3, right to left. - */ - - defaultNativeButtonIndex = - buttonIndexAndTypeToNativeButtonIndex[typeIndex][defaultButtonIndex]; - if (defaultNativeButtonIndex == 0) { - Tcl_SetObjResult(interp, - Tcl_NewStringObj("Illegal default option", -1)); - Tcl_SetErrorCode(interp, "TK", "MSGBOX", "DEFAULT", NULL); - goto end; - } - paramCFStringRec.defaultButton = defaultNativeButtonIndex; - if (paramCFStringRec.cancelButton == defaultNativeButtonIndex) { - paramCFStringRec.cancelButton = 0; - } - } - ChkErr(SetThemeCursor, kThemeArrowCursor); - - if (haveParentOption) { - AlertHandlerUserData data; - static EventHandlerUPP handler = NULL; - WindowRef windowRef; - const EventTypeSpec kEvents[] = { - {kEventClassCommand, kEventProcessCommand} - }; - - bzero(&data, sizeof(data)); - if (!handler) { - handler = NewEventHandlerUPP(AlertHandler); - } - windowRef = TkMacOSXDrawableWindow(Tk_WindowId(tkwin)); - if (!windowRef) { - goto end; - } - err = ChkErr(CreateStandardSheet, alertType, messageTextCF, - finemessageTextCF, ¶mCFStringRec, NULL, &dialogRef); - if(err != noErr) { - goto end; - } - data.dialogWindow = GetDialogWindow(dialogRef); - err = ChkErr(ShowSheetWindow, data.dialogWindow, windowRef); - if(err != noErr) { - DisposeDialog(dialogRef); - goto end; - } - ChkErr(GetWindowModality, data.dialogWindow, &data.origModality, - &data.origUnavailWindow); - ChkErr(SetWindowModality, data.dialogWindow, kWindowModalityAppModal, - NULL); - ChkErr(InstallEventHandler, GetWindowEventTarget(data.dialogWindow), - handler, GetEventTypeCount(kEvents), kEvents, &data, - &data.handlerRef); - TkMacOSXTrackingLoop(1); - ChkErr(RunAppModalLoopForWindow, data.dialogWindow); - TkMacOSXTrackingLoop(0); - itemHit = data.buttonIndex; - } else { - err = ChkErr(CreateStandardAlert, alertType, messageTextCF, - finemessageTextCF, ¶mCFStringRec, &dialogRef); - if(err != noErr) { - goto end; - } - TkMacOSXTrackingLoop(1); - err = ChkErr(RunStandardAlert, dialogRef, NULL, &itemHit); - TkMacOSXTrackingLoop(0); - if (err != noErr) { - goto end; - } - } - if (err == noErr) { - /* - * Map 'itemHit' (1, 2, 3) to descriptive text string. - */ - - int ind = nativeButtonIndexAndTypeToButtonIndex[typeIndex][itemHit]; - - Tcl_SetObjResult(interp, Tcl_NewStringObj(movableButtonStrings[ind], - -1)); - result = TCL_OK; - } - - end: - if (finemessageTextCF) { - CFRelease(finemessageTextCF); - } - if (messageTextCF) { - CFRelease(messageTextCF); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * AlertHandler -- - * - * Carbon event handler for the Standard Sheet dialog. - * - * Results: - * OSStatus if event handled or not. - * - * Side effects: - * May set userData. - * - *---------------------------------------------------------------------- - */ - -OSStatus -AlertHandler( - EventHandlerCallRef callRef, - EventRef eventRef, - void *userData) -{ - AlertHandlerUserData *data = userData; - HICommand cmd; - - ChkErr(GetEventParameter,eventRef, kEventParamDirectObject, typeHICommand, - NULL, sizeof(cmd), NULL, &cmd); - switch (cmd.commandID) { - case kHICommandOK: - data->buttonIndex = 1; - break; - case kHICommandCancel: - data->buttonIndex = 2; - break; - case kHICommandOther: - data->buttonIndex = 3; - break; - } - if (data->buttonIndex) { - ChkErr(QuitAppModalLoopForWindow, data->dialogWindow); - ChkErr(RemoveEventHandler, data->handlerRef); - ChkErr(SetWindowModality, data->dialogWindow, - data->origModality, data->origUnavailWindow); - } - return eventNotHandledErr; -} - -/* - *---------------------------------------------------------------------- - */ -#pragma mark [tk fontchooser] implementation (TIP 324) -/* - *---------------------------------------------------------------------- - */ - -#include "tkMacOSXEvent.h" -#include "tkMacOSXFont.h" - -typedef struct FontchooserData { - Tcl_Obj *titleObj; - Tcl_Obj *cmdObj; - Tk_Window parent; -} FontchooserData; - -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, - XEvent *eventPtr); -static void DeleteFontchooserData(ClientData clientData, Tcl_Interp *interp); - -MODULE_SCOPE const TkEnsemble tkFontchooserEnsemble[]; -const TkEnsemble tkFontchooserEnsemble[] = { - { "configure", FontchooserConfigureCmd, NULL }, - { "show", FontchooserShowCmd, NULL }, - { "hide", FontchooserHideCmd, NULL }, - { NULL, NULL, NULL } -}; - -static Tcl_Interp *fontchooserInterp = NULL; -static FMFontFamily fontPanelFontFamily = kInvalidFontFamily; -static FMFontStyle fontPanelFontStyle = -1; -static FMFontSize fontPanelFontSize = 0; -static FMFont fontPanelFontID = kInvalidFont; - -static const char *const fontchooserOptionStrings[] = { - "-parent", "-title", "-font", "-command", - "-visible", NULL -}; -enum FontchooserOption { - FontchooserParent, FontchooserTitle, FontchooserFont, FontchooserCmd, - FontchooserVisible -}; - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessFontEvent -- - * - * This processes events generated by user interaction with the - * font panel. - * - * Results: - * True if Tk events are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessFontEvent( - TkMacOSXEvent * eventPtr, - MacEventStatus * statusPtr) -{ - OSStatus err; - int eventGenerated = 0; - FontchooserData *fcdPtr; - - switch (eventPtr->eKind) { - case kEventFontPanelClosed: - case kEventFontSelection: - break; - default: - goto done; - } - if (!fontchooserInterp) { - goto done; - } - fcdPtr = Tcl_GetAssocData(fontchooserInterp, "::tk::fontchooser", NULL); - switch (eventPtr->eKind) { - case kEventFontPanelClosed: - if (!FPIsFontPanelVisible() && fcdPtr->parent != None) { - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility"); - fontchooserInterp = NULL; - eventGenerated = 1; - } - break; - case kEventFontSelection: { - Tcl_Obj *fontObj = NULL; - - fontPanelFontFamily = kInvalidFontFamily; - fontPanelFontStyle = -1; - fontPanelFontSize = 0; - fontPanelFontID = kInvalidFont; - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamFMFontFamily, typeFMFontFamily, NULL, - sizeof(FMFontFamily), NULL, &fontPanelFontFamily); - err |= ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamFMFontStyle, typeFMFontStyle, NULL, - sizeof(FMFontStyle), NULL, &fontPanelFontStyle); - err |= ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamFMFontSize, typeFMFontSize, NULL, - sizeof(FMFontSize), NULL, &fontPanelFontSize); - if (err != noErr) { - /* - * No/incomplete QD font spec, use ATSUI font ID - */ - Fixed fontFixedSize; - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamATSUFontID, typeATSUFontID, NULL, - sizeof(ATSUFontID), NULL, &fontPanelFontID); - if (err == noErr) { - ChkErr(FMGetFontFamilyInstanceFromFont, fontPanelFontID, - &fontPanelFontFamily, &fontPanelFontStyle); - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamATSUFontSize, typeATSUSize, NULL, - sizeof(Fixed), NULL, &fontFixedSize); - if (err == noErr) { - fontPanelFontSize = FixedToInt(fontFixedSize); - } - } - fontObj = TkMacOSXFontDescriptionForFMFontInfo( - fontPanelFontFamily, fontPanelFontStyle, - fontPanelFontSize, fontPanelFontID); - if (fontObj) { - if (fcdPtr->cmdObj) { - int objc, result; - Tcl_Obj **objv, **tmpv; - - result = Tcl_ListObjGetElements(fontchooserInterp, - fcdPtr->cmdObj, &objc, &objv); - if (result == TCL_OK) { - tmpv = ckalloc(sizeof(Tcl_Obj *) * (objc + 2)); - memcpy(tmpv, objv, sizeof(Tcl_Obj *) * objc); - tmpv[objc] = fontObj; - result = TkBackgroundEvalObjv(fontchooserInterp, - objc + 1, tmpv, TCL_EVAL_GLOBAL); - ckfree(tmpv); - } - } - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserFontChanged"); - } - break; - } - } -done: - return eventGenerated; -} - -/* - *---------------------------------------------------------------------- - * - * FontchooserCget -- - * - * Helper for the FontchooserConfigure command to return the - * current value of any of the options (which may be NULL in - * the structure) - * - * Results: - * Tcl object of option value. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static Tcl_Obj * -FontchooserCget( - FontchooserData *fcdPtr, - int optionIndex) -{ - Tcl_Obj *resObj = NULL; - - switch(optionIndex) { - case FontchooserParent: { - if (fcdPtr->parent != None) { - resObj = Tcl_NewStringObj( - ((TkWindow*)fcdPtr->parent)->pathName, -1); - } else { - resObj = Tcl_NewStringObj(".", 1); - } - break; - } - case FontchooserTitle: { - if (fcdPtr->titleObj) { - resObj = fcdPtr->titleObj; - } else { - resObj = Tcl_NewObj(); - } - break; - } - case FontchooserFont: { - resObj = TkMacOSXFontDescriptionForFMFontInfo( - fontPanelFontFamily, fontPanelFontStyle, - fontPanelFontSize, fontPanelFontID); - if (!resObj) { - resObj = Tcl_NewObj(); - } - break; - } - case FontchooserCmd: { - if (fcdPtr->cmdObj) { - resObj = fcdPtr->cmdObj; - } else { - resObj = Tcl_NewObj(); - } - break; - } - case FontchooserVisible: { - resObj = Tcl_NewBooleanObj(FPIsFontPanelVisible()); - break; - } - default: { - resObj = Tcl_NewObj(); - } - } - return resObj; -} - -/* - * ---------------------------------------------------------------------- - * - * FontchooserConfigureCmd -- - * - * Implementation of the 'tk fontchooser configure' ensemble command. - * See the user documentation for what it does. - * - * Results: - * See the user documentation. - * - * Side effects: - * Per-interp data structure may be modified - * - * ---------------------------------------------------------------------- - */ - -static int -FontchooserConfigureCmd( - ClientData clientData, /* Main window */ - Tcl_Interp *interp, - int objc, - Tcl_Obj *const objv[]) -{ - Tk_Window tkwin = (Tk_Window)clientData; - FontchooserData *fcdPtr = Tcl_GetAssocData(interp, "::tk::fontchooser", - NULL); - int i, r = TCL_OK; - - /* - * With no arguments we return all the options in a dict - */ - - if (objc == 1) { - Tcl_Obj *keyObj, *valueObj; - 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); - r = Tcl_DictObjPut(interp, dictObj, keyObj, valueObj); - } - if (r == TCL_OK) { - Tcl_SetObjResult(interp, dictObj); - } - return r; - } - - for (i = 1; i < objc; i += 2) { - int optionIndex, len; - - if (Tcl_GetIndexFromObj(interp, objv[i], fontchooserOptionStrings, - "option", 0, &optionIndex) != TCL_OK) { - return TCL_ERROR; - } - if (objc == 2) { - /* With one option and no arg, return the current value */ - Tcl_SetObjResult(interp, FontchooserCget(fcdPtr, optionIndex)); - return TCL_OK; - } - if (i + 1 == objc) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "value for \"%s\" missing", Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "FONTDIALOG", "VALUE", NULL); - return TCL_ERROR; - } - switch (optionIndex) { - case FontchooserVisible: { - const char *msg = "cannot change read-only option " - "\"-visible\": use the show or hide command"; - - Tcl_SetObjResult(interp, Tcl_NewStringObj(msg, -1)); - Tcl_SetErrorCode(interp, "TK", "FONTDIALOG", "READONLY", NULL); - return TCL_ERROR; - } - case FontchooserParent: { - Tk_Window parent = Tk_NameToWindow(interp, - Tcl_GetString(objv[i+1]), tkwin); - - if (parent == None) { - return TCL_ERROR; - } - if (fcdPtr->parent) { - Tk_DeleteEventHandler(fcdPtr->parent, StructureNotifyMask, - FontchooserParentEventHandler, fcdPtr); - } - fcdPtr->parent = parent; - Tk_CreateEventHandler(fcdPtr->parent, StructureNotifyMask, - FontchooserParentEventHandler, fcdPtr); - break; - } - case FontchooserTitle: - if (fcdPtr->titleObj) { - Tcl_DecrRefCount(fcdPtr->titleObj); - } - Tcl_GetStringFromObj(objv[i+1], &len); - if (len) { - fcdPtr->titleObj = objv[i+1]; - if (Tcl_IsShared(fcdPtr->titleObj)) { - fcdPtr->titleObj = Tcl_DuplicateObj(fcdPtr->titleObj); - } - Tcl_IncrRefCount(fcdPtr->titleObj); - } else { - fcdPtr->titleObj = NULL; - } - break; - case FontchooserFont: - Tcl_GetStringFromObj(objv[i+1], &len); - if (len) { - Tk_Font f = Tk_AllocFontFromObj(interp, tkwin, objv[i+1]); - - if (f) { - ATSUStyle atsuStyle; - - TkMacOSXFMFontInfoForFont(f, &fontPanelFontFamily, - &fontPanelFontStyle, &fontPanelFontSize, - &atsuStyle); - ChkErr(SetFontInfoForSelection, kFontSelectionATSUIType, - 1, &atsuStyle, NULL); - Tk_FreeFont(f); - } else { - return TCL_ERROR; - } - } else { - fontPanelFontFamily = kInvalidFontFamily; - ChkErr(SetFontInfoForSelection, kFontSelectionATSUIType, 0, - NULL, NULL); - } - if (FPIsFontPanelVisible()) { - TkSendVirtualEvent(fcdPtr->parent, - "TkFontchooserFontChanged"); - } - break; - case FontchooserCmd: - if (fcdPtr->cmdObj) { - Tcl_DecrRefCount(fcdPtr->cmdObj); - } - Tcl_GetStringFromObj(objv[i+1], &len); - if (len) { - fcdPtr->cmdObj = objv[i+1]; - if (Tcl_IsShared(fcdPtr->cmdObj)) { - fcdPtr->cmdObj = Tcl_DuplicateObj(fcdPtr->cmdObj); - } - Tcl_IncrRefCount(fcdPtr->cmdObj); - } else { - fcdPtr->cmdObj = NULL; - } - break; - } - } - return TCL_OK; -} - -/* - * ---------------------------------------------------------------------- - * - * FontchooserShowCmd -- - * - * Implements the 'tk fontchooser show' ensemble command. The - * per-interp configuration data for the dialog is held in an interp - * associated structure. - * - * Results: - * See the user documentation. - * - * Side effects: - * Font Panel may be shown. - * - * ---------------------------------------------------------------------- - */ - -static int -FontchooserShowCmd( - ClientData clientData, /* Main window */ - Tcl_Interp *interp, - int objc, - Tcl_Obj *const objv[]) -{ - FontchooserData *fcdPtr = Tcl_GetAssocData(interp, "::tk::fontchooser", - NULL); - - if (fcdPtr->parent == None) { - fcdPtr->parent = (Tk_Window) clientData; - Tk_CreateEventHandler(fcdPtr->parent, StructureNotifyMask, - FontchooserParentEventHandler, fcdPtr); - } - if (!FPIsFontPanelVisible()) { - ChkErr(FPShowHideFontPanel); - TkSendVirtualEvent(fcdPtr->parent, "TkFontchooserVisibility"); - } - fontchooserInterp = interp; - - return TCL_OK; -} - -/* - * ---------------------------------------------------------------------- - * - * FontchooserHideCmd -- - * - * Implementation of the 'tk fontchooser hide' ensemble. See the - * user documentation for details. - * - * Results: - * See the user documentation. - * - * Side effects: - * Font Panel may be hidden. - * - * ---------------------------------------------------------------------- - */ - -static int -FontchooserHideCmd( - ClientData clientData, /* Main window */ - Tcl_Interp *interp, - int objc, - Tcl_Obj *const objv[]) -{ - if (FPIsFontPanelVisible()) { - ChkErr(FPShowHideFontPanel); - } - return TCL_OK; -} - -/* - * ---------------------------------------------------------------------- - * - * FontchooserParentEventHandler -- - * - * Event handler for StructureNotify events on the font chooser's - * parent window. - * - * Results: - * None. - * - * Side effects: - * Font chooser parent info is cleared and font panel is hidden. - * - * ---------------------------------------------------------------------- - */ - -static void -FontchooserParentEventHandler( - ClientData clientData, - XEvent *eventPtr) -{ - FontchooserData *fcdPtr = clientData; - - if (eventPtr->type == DestroyNotify) { - Tk_DeleteEventHandler(fcdPtr->parent, StructureNotifyMask, - FontchooserParentEventHandler, fcdPtr); - fcdPtr->parent = None; - if (FPIsFontPanelVisible()) { - ChkErr(FPShowHideFontPanel); - } - } -} - -/* - * ---------------------------------------------------------------------- - * - * DeleteFontchooserData -- - * - * Clean up the font chooser configuration data when the interp - * is destroyed. - * - * Results: - * None. - * - * Side effects: - * per-interp configuration data is destroyed. - * - * ---------------------------------------------------------------------- - */ - -static void -DeleteFontchooserData( - ClientData clientData, - Tcl_Interp *interp) -{ - FontchooserData *fcdPtr = clientData; - - if (fcdPtr->titleObj) { - Tcl_DecrRefCount(fcdPtr->titleObj); - } - if (fcdPtr->cmdObj) { - Tcl_DecrRefCount(fcdPtr->cmdObj); - } - ckfree(fcdPtr); - - if (fontchooserInterp == interp) { - fontchooserInterp = NULL; - } -} - -/* - * ---------------------------------------------------------------------- - * - * TkInitFontchooser -- - * - * Associate the font chooser configuration data with the Tcl - * interpreter. There is one font chooser per interp. - * - * Results: - * None. - * - * Side effects: - * per-interp configuration data is destroyed. - * - * ---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkInitFontchooser( - Tcl_Interp *interp, - ClientData clientData) -{ - FontchooserData *fcdPtr = ckalloc(sizeof(FontchooserData)); - - bzero(fcdPtr, sizeof(FontchooserData)); - Tcl_SetAssocData(interp, "::tk::fontchooser", DeleteFontchooserData, - fcdPtr); - return TCL_OK; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXDraw.c b/carbon/tkMacOSXDraw.c deleted file mode 100644 index 6f40e5d..0000000 --- a/carbon/tkMacOSXDraw.c +++ /dev/null @@ -1,2117 +0,0 @@ -/* - * tkMacOSXDraw.c -- - * - * This file contains functions that perform drawing to - * Xlib windows. Most of the functions simple emulate - * Xlib functions. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXDebug.h" -#include "xbytes.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_DRAWING -#endif -*/ - -#define radians(d) ((d) * (M_PI/180.0)) - -/* - * Non-antialiased CG drawing looks better and more like X11 drawing when using - * very fine lines, so decrease all linewidths by the following constant. - */ -#define NON_AA_CG_OFFSET .999 - -/* - * Temporary region that can be reused. - */ - -RgnHandle tkMacOSXtmpQdRgn = NULL; - -int tkMacOSXUseCGDrawing = 1; - -int tkPictureIsOpen; - -static PixPatHandle penPat = NULL, tmpPixPat = NULL; - -static int cgAntiAliasLimit = 0; -#define notAA(w) ((w) < cgAntiAliasLimit) - -static int useThemedToplevel = 0; -static int useThemedFrame = 0; - -/* - * Prototypes for functions used only in this file. - */ - -static void ClipToGC(Drawable d, GC gc, HIShapeRef *clipRgnPtr); -static void NoQDClip(CGrafPtr port); - - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitCGDrawing -- - * - * Initializes link vars that control CG drawing. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXInitCGDrawing( - Tcl_Interp *interp, - int enable, - int limit) -{ - static Boolean initialized = FALSE; - - if (!initialized) { - initialized = TRUE; - - if (Tcl_CreateNamespace(interp, "::tk::mac", NULL, NULL) == NULL) { - Tcl_ResetResult(interp); - } - if (Tcl_LinkVar(interp, "::tk::mac::useCGDrawing", - (char *) &tkMacOSXUseCGDrawing, TCL_LINK_BOOLEAN) != TCL_OK) { - Tcl_ResetResult(interp); - } - tkMacOSXUseCGDrawing = enable; - - if (Tcl_LinkVar(interp, "::tk::mac::CGAntialiasLimit", - (char *) &cgAntiAliasLimit, TCL_LINK_INT) != TCL_OK) { - Tcl_ResetResult(interp); - } - cgAntiAliasLimit = limit; - - /* - * Piggy-back the themed drawing var init here. - */ - - if (Tcl_LinkVar(interp, "::tk::mac::useThemedToplevel", - (char *) &useThemedToplevel, TCL_LINK_BOOLEAN) != TCL_OK) { - Tcl_ResetResult(interp); - } - if (Tcl_LinkVar(interp, "::tk::mac::useThemedFrame", - (char *) &useThemedFrame, TCL_LINK_BOOLEAN) != TCL_OK) { - Tcl_ResetResult(interp); - } - - if (tkMacOSXtmpQdRgn == NULL) { - tkMacOSXtmpQdRgn = NewRgn(); - } - } -#ifdef TK_MAC_DEBUG_DRAWING - TkMacOSXInitNamedDebugSymbol(QD, void, QD_DebugPrint, char*); - if (QD_DebugPrint) { - ; /* gdb: b *QD_DebugPrint */ - } -#endif /* TK_MAC_DEBUG_WINDOWS */ - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * XCopyArea -- - * - * Copies data from one drawable to another using block transfer - * routines. - * - * Results: - * None. - * - * Side effects: - * Data is moved from a window or bitmap to a second window or - * bitmap. - * - *---------------------------------------------------------------------- - */ - -void -XCopyArea( - Display *display, /* Display. */ - Drawable src, /* Source drawable. */ - Drawable dst, /* Destination drawable. */ - GC gc, /* GC to use. */ - int src_x, /* X & Y, width & height */ - int src_y, /* define the source rectangle */ - unsigned int width, /* that will be copied. */ - unsigned int height, - int dest_x, /* Dest X & Y on dest rect. */ - int dest_y) -{ - TkMacOSXDrawingContext dc; - MacDrawable *srcDraw = (MacDrawable *) src, *dstDraw = (MacDrawable *) dst; - - display->request++; - if (!width || !height) { - /* TkMacOSXDbgMsg("Drawing of emtpy area requested"); */ - return; - } - { - CGrafPtr srcPort; - - srcPort = TkMacOSXGetDrawablePort(src); - if (srcPort) { - Rect srcRect, dstRect, *srcPtr = &srcRect, *dstPtr = &dstRect; - const BitMap *srcBit, *dstBit; - RGBColor black = {0, 0, 0}, white = {0xffff, 0xffff, 0xffff}; - - if (!TkMacOSXSetupDrawingContext(dst, gc, 0, &dc)) { - return; - } - if (dc.context) { - TkMacOSXDbgMsg("Ignored CG drawing of QD drawable"); - goto end; - } - if (!dc.port) { - TkMacOSXDbgMsg("Invalid destination drawable"); - goto end; - } - srcBit = GetPortBitMapForCopyBits(srcPort); - dstBit = GetPortBitMapForCopyBits(dc.port); - SetRect(srcPtr, srcDraw->xOff + src_x, srcDraw->yOff + src_y, - srcDraw->xOff + src_x + width, - srcDraw->yOff + src_y + height); - if (tkPictureIsOpen) { - dstPtr = srcPtr; - } else { - SetRect(dstPtr, dstDraw->xOff + dest_x, dstDraw->yOff + dest_y, - dstDraw->xOff + dest_x + width, - dstDraw->yOff + dest_y + height); - } - RGBForeColor(&black); - RGBBackColor(&white); - CopyBits(srcBit, dstBit, srcPtr, dstPtr, srcCopy, NULL); -end: - TkMacOSXRestoreDrawingContext(&dc); - } else { - TkMacOSXDbgMsg("Invalid source drawable"); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * XCopyPlane -- - * - * Copies a bitmap from a source drawable to a destination - * drawable. The plane argument specifies which bit plane of - * the source contains the bitmap. Note that this implementation - * ignores the gc->function. - * - * Results: - * None. - * - * Side effects: - * Changes the destination drawable. - * - *---------------------------------------------------------------------- - */ - -void -XCopyPlane( - Display *display, /* Display. */ - Drawable src, /* Source drawable. */ - Drawable dst, /* Destination drawable. */ - GC gc, /* GC to use. */ - int src_x, /* X & Y, width & height */ - int src_y, /* define the source rectangle */ - unsigned int width, /* that will be copied. */ - unsigned int height, - int dest_x, /* Dest X & Y on dest rect. */ - int dest_y, - unsigned long plane) /* Which plane to copy. */ -{ - TkMacOSXDrawingContext dc; - MacDrawable *srcDraw = (MacDrawable *) src, *dstDraw = (MacDrawable *) dst; - - display->request++; - if (!width || !height) { - /* TkMacOSXDbgMsg("Drawing of emtpy area requested"); */ - return; - } - if (plane != 1) { - Tcl_Panic("Unexpected plane specified for XCopyPlane"); - } - { - CGrafPtr srcPort; - - srcPort = TkMacOSXGetDrawablePort(src); - if (srcPort) { - Rect srcRect, dstRect, *srcPtr = &srcRect, *dstPtr = &dstRect; - const BitMap *srcBit, *dstBit; - TkpClipMask *clipPtr = (TkpClipMask *) gc->clip_mask; - - if (!TkMacOSXSetupDrawingContext(dst, gc, 0, &dc)) { - return; - } - if (dc.context) { - TkMacOSXDbgMsg("Ignored CG drawing of QD drawable"); - goto end; - } - if (!dc.port) { - TkMacOSXDbgMsg("Invalid destination drawable"); - goto end; - } - srcBit = GetPortBitMapForCopyBits(srcPort); - dstBit = GetPortBitMapForCopyBits(dc.port); - SetRect(srcPtr, srcDraw->xOff + src_x, srcDraw->yOff + src_y, - srcDraw->xOff + src_x + width, - srcDraw->yOff + src_y + height); - if (tkPictureIsOpen) { - dstPtr = srcPtr; - } else { - SetRect(dstPtr, dstDraw->xOff + dest_x, dstDraw->yOff + dest_y, - dstDraw->xOff + dest_x + width, - dstDraw->yOff + dest_y + height); - } - TkMacOSXSetColorInPort(gc->foreground, 1, NULL, dc.port); - if (!clipPtr || clipPtr->type == TKP_CLIP_REGION) { - /* - * Opaque bitmaps. - */ - - TkMacOSXSetColorInPort(gc->background, 0, NULL, dc.port); - CopyBits(srcBit, dstBit, srcPtr, dstPtr, srcCopy, NULL); - } else if (clipPtr->type == TKP_CLIP_PIXMAP) { - if (clipPtr->value.pixmap == src) { - /* - * Transparent bitmaps. If it's color ignore the forecolor. - */ - short tmode = GetPixDepth(GetPortPixMap(srcPort)) == 1 ? - srcOr : transparent; - - CopyBits(srcBit, dstBit, srcPtr, dstPtr, tmode, NULL); - } else { - /* - * Two arbitrary bitmaps. - */ - - CGrafPtr mskPort = TkMacOSXGetDrawablePort( - clipPtr->value.pixmap); - const BitMap *mskBit = GetPortBitMapForCopyBits(mskPort); - - CopyDeepMask(srcBit, mskBit, dstBit, srcPtr, srcPtr, - dstPtr, srcCopy, NULL); - } - } -end: - TkMacOSXRestoreDrawingContext(&dc); - } else { - TkMacOSXDbgMsg("Invalid source drawable"); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkPutImage -- - * - * Copies a subimage from an in-memory image to a rectangle of - * of the specified drawable. - * - * Results: - * None. - * - * Side effects: - * Draws the image on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -int -TkPutImage( - unsigned long *colors, /* Unused on Macintosh. */ - int ncolors, /* Unused on Macintosh. */ - Display* display, /* Display. */ - Drawable d, /* Drawable to place image on. */ - GC gc, /* GC to use. */ - XImage* image, /* Image to place. */ - int src_x, /* Source X & Y. */ - int src_y, - int dest_x, /* Destination X & Y. */ - int dest_y, - unsigned int width, /* Same width & height for both */ - unsigned int height) /* distination and source. */ -{ - TkMacOSXDrawingContext dc; - MacDrawable *dstDraw = (MacDrawable *) d; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, 0, &dc)) { - return BadDrawable; - } - if (dc.context) { - TkMacOSXDbgMsg("Ignored CG drawing of XImage"); - } else { - Rect srcRect, dstRect, *srcPtr = &srcRect, *dstPtr = &dstRect; - const BitMap *dstBit; - RGBColor black = {0, 0, 0}, white = {0xffff, 0xffff, 0xffff}; - int i, j; - char *newData = NULL; - char *dataPtr, *newPtr, *oldPtr; - int rowBytes = image->bytes_per_line, sliceRowBytes, lastSliceRowBytes; - int slices, sliceWidth, lastSliceWidth; - - dstBit = GetPortBitMapForCopyBits(dc.port); - SetRect(srcPtr, src_x, src_y, src_x + width, src_y + height); - if (tkPictureIsOpen) { - dstPtr = srcPtr; - } else { - SetRect(dstPtr, dstDraw->xOff + dest_x, dstDraw->yOff + dest_y, - dstDraw->xOff + dest_x + width, - dstDraw->yOff + dest_y + height); - } - RGBForeColor(&black); - RGBBackColor(&white); - if (image->obdata) { - /* - * Image from XGetImage, copy from containing GWorld directly. - */ - - CopyBits(GetPortBitMapForCopyBits(TkMacOSXGetDrawablePort( - (Drawable)image->obdata)), dstBit, - srcPtr, dstPtr, srcCopy, NULL); - } else if (image->depth == 1) { - /* - * BW image - */ - - const int maxRowBytes = 0x3ffe; - BitMap bitmap; - int odd; - - if (rowBytes > maxRowBytes) { - slices = rowBytes / maxRowBytes; - sliceRowBytes = maxRowBytes; - lastSliceRowBytes = rowBytes - (slices * maxRowBytes); - if (!lastSliceRowBytes) { - slices--; - lastSliceRowBytes = maxRowBytes; - } - sliceWidth = (long) image->width * maxRowBytes / rowBytes; - lastSliceWidth = image->width - (sliceWidth * slices); - } else { - slices = 0; - sliceRowBytes = lastSliceRowBytes = rowBytes; - sliceWidth = lastSliceWidth = image->width; - } - bitmap.bounds.top = bitmap.bounds.left = 0; - bitmap.bounds.bottom = (short) image->height; - dataPtr = image->data + image->xoffset; - do { - if (slices) { - bitmap.bounds.right = bitmap.bounds.left + sliceWidth; - } else { - sliceRowBytes = lastSliceRowBytes; - bitmap.bounds.right = bitmap.bounds.left + lastSliceWidth; - } - oldPtr = dataPtr; - odd = sliceRowBytes % 2; - if (!newData) { - newData = ckalloc(image->height * (sliceRowBytes+odd)); - } - newPtr = newData; - if (image->bitmap_bit_order != MSBFirst) { - for (i = 0; i < image->height; i++) { - for (j = 0; j < sliceRowBytes; j++) { - *newPtr = xBitReverseTable[(unsigned char)*oldPtr]; - newPtr++; oldPtr++; - } - if (odd) { - *newPtr++ = 0; - } - oldPtr += rowBytes - sliceRowBytes; - } - } else { - for (i = 0; i < image->height; i++) { - memcpy(newPtr, oldPtr, sliceRowBytes); - newPtr += sliceRowBytes; - if (odd) { - *newPtr++ = 0; - } - oldPtr += rowBytes; - } - } - bitmap.baseAddr = newData; - bitmap.rowBytes = sliceRowBytes + odd; - CopyBits(&bitmap, dstBit, srcPtr, dstPtr, srcCopy, NULL); - if (slices) { - bitmap.bounds.left = bitmap.bounds.right; - dataPtr += sliceRowBytes; - } - } while (slices--); - ckfree(newData); - } else { - /* - * Color image - */ - - const int maxRowBytes = 0x3ffc; - PixMap pixmap; - - pixmap.bounds.left = 0; - pixmap.bounds.top = 0; - pixmap.bounds.bottom = (short) image->height; - pixmap.pixelType = RGBDirect; - pixmap.pmVersion = baseAddr32; /* 32bit clean */ - pixmap.packType = 0; - pixmap.packSize = 0; - pixmap.hRes = 0x00480000; - pixmap.vRes = 0x00480000; - pixmap.pixelSize = 32; - pixmap.cmpCount = 3; - pixmap.cmpSize = 8; - pixmap.pixelFormat = image->byte_order == MSBFirst ? - k32ARGBPixelFormat : k32BGRAPixelFormat; - pixmap.pmTable = NULL; - pixmap.pmExt = 0; - if (rowBytes > maxRowBytes) { - slices = rowBytes / maxRowBytes; - sliceRowBytes = maxRowBytes; - lastSliceRowBytes = rowBytes - (slices * maxRowBytes); - if (!lastSliceRowBytes) { - slices--; - lastSliceRowBytes = maxRowBytes; - } - sliceWidth = (long) image->width * maxRowBytes / rowBytes; - lastSliceWidth = image->width - (sliceWidth * slices); - dataPtr = image->data + image->xoffset; - newData = ckalloc(image->height * sliceRowBytes); - do { - if (slices) { - pixmap.bounds.right = pixmap.bounds.left + sliceWidth; - } else { - sliceRowBytes = lastSliceRowBytes; - pixmap.bounds.right = pixmap.bounds.left + lastSliceWidth; - } - oldPtr = dataPtr; - newPtr = newData; - for (i = 0; i < image->height; i++) { - memcpy(newPtr, oldPtr, sliceRowBytes); - oldPtr += rowBytes; - newPtr += sliceRowBytes; - } - pixmap.baseAddr = newData; - pixmap.rowBytes = sliceRowBytes | 0x8000; - CopyBits((BitMap*) &pixmap, dstBit, srcPtr, dstPtr, srcCopy, - NULL); - if (slices) { - pixmap.bounds.left = pixmap.bounds.right; - dataPtr += sliceRowBytes; - } - } while (slices--); - ckfree(newData); - } else { - pixmap.bounds.right = (short) image->width; - pixmap.baseAddr = image->data + image->xoffset; - pixmap.rowBytes = rowBytes | 0x8000; - CopyBits((BitMap*) &pixmap, dstBit, srcPtr, dstPtr, srcCopy, NULL); - } - } - } - TkMacOSXRestoreDrawingContext(&dc); - return Success; -} - -/* - *---------------------------------------------------------------------- - * - * XDrawLines -- - * - * Draw connected lines. - * - * Results: - * None. - * - * Side effects: - * Renders a series of connected lines. - * - *---------------------------------------------------------------------- - */ - -int -XDrawLines( - Display *display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - XPoint *points, /* Array of points. */ - int npoints, /* Number of points. */ - int mode) /* Line drawing mode. */ -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int i, lw = gc->line_width; - - if (npoints < 2) { - return BadValue; - } - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return BadDrawable; - } - if (dc.context) { - double prevx, prevy; - double o = (lw % 2) ? .5 : 0; - - CGContextBeginPath(dc.context); - prevx = macWin->xOff + points[0].x + o; - prevy = macWin->yOff + points[0].y + o; - CGContextMoveToPoint(dc.context, prevx, prevy); - for (i = 1; i < npoints; i++) { - if (mode == CoordModeOrigin) { - CGContextAddLineToPoint(dc.context, - macWin->xOff + points[i].x + o, - macWin->yOff + points[i].y + o); - } else { - prevx += points[i].x; - prevy += points[i].y; - CGContextAddLineToPoint(dc.context, prevx, prevy); - } - } - CGContextStrokePath(dc.context); - } else { - int o = -lw/2; - - /* This is broken for fat lines, it is not possible to correctly - * imitate X11 drawing of oblique fat lines with QD line drawing, - * we should draw a filled polygon instead. */ - - MoveTo((short) (macWin->xOff + points[0].x + o), - (short) (macWin->yOff + points[0].y + o)); - for (i = 1; i < npoints; i++) { - if (mode == CoordModeOrigin) { - LineTo((short) (macWin->xOff + points[i].x + o), - (short) (macWin->yOff + points[i].y + o)); - } else { - Line((short) points[i].x, (short) points[i].y); - } - } - } - TkMacOSXRestoreDrawingContext(&dc); - return Success; -} - -/* - *---------------------------------------------------------------------- - * - * XDrawSegments -- - * - * Draw unconnected lines. - * - * Results: - * None. - * - * Side effects: - * Renders a series of unconnected lines. - * - *---------------------------------------------------------------------- - */ - -void -XDrawSegments( - Display *display, - Drawable d, - GC gc, - XSegment *segments, - int nsegments) -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int i, lw = gc->line_width; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - double o = (lw % 2) ? .5 : 0; - - for (i = 0; i < nsegments; i++) { - CGContextBeginPath(dc.context); - CGContextMoveToPoint(dc.context, - macWin->xOff + segments[i].x1 + o, - macWin->yOff + segments[i].y1 + o); - CGContextAddLineToPoint(dc.context, - macWin->xOff + segments[i].x2 + o, - macWin->yOff + segments[i].y2 + o); - CGContextStrokePath(dc.context); - } - } else { - int o = -lw/2; - - /* This is broken for fat lines, it is not possible to correctly - * imitate X11 drawing of oblique fat lines with QD line drawing, - * we should draw a filled polygon instead. */ - - for (i = 0; i < nsegments; i++) { - MoveTo((short) (macWin->xOff + segments[i].x1 + o), - (short) (macWin->yOff + segments[i].y1 + o)); - LineTo((short) (macWin->xOff + segments[i].x2 + o), - (short) (macWin->yOff + segments[i].y2 + o)); - } - } - TkMacOSXRestoreDrawingContext(&dc); -} - -/* - *---------------------------------------------------------------------- - * - * XFillPolygon -- - * - * Draws a filled polygon. - * - * Results: - * None. - * - * Side effects: - * Draws a filled polygon on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XFillPolygon( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - XPoint* points, /* Array of points. */ - int npoints, /* Number of points. */ - int shape, /* Shape to draw. */ - int mode) /* Drawing mode. */ -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int i; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - double prevx, prevy; - double o = (gc->line_width % 2) ? .5 : 0; - - CGContextBeginPath(dc.context); - prevx = macWin->xOff + points[0].x + o; - prevy = macWin->yOff + points[0].y + o; - CGContextMoveToPoint(dc.context, prevx, prevy); - for (i = 1; i < npoints; i++) { - if (mode == CoordModeOrigin) { - CGContextAddLineToPoint(dc.context, - macWin->xOff + points[i].x + o, - macWin->yOff + points[i].y + o); - } else { - prevx += points[i].x; - prevy += points[i].y; - CGContextAddLineToPoint(dc.context, prevx, prevy); - } - } - CGContextEOFillPath(dc.context); - } else { - PolyHandle polygon; - - polygon = OpenPoly(); - MoveTo((short) (macWin->xOff + points[0].x), - (short) (macWin->yOff + points[0].y)); - for (i = 1; i < npoints; i++) { - if (mode == CoordModeOrigin) { - LineTo((short) (macWin->xOff + points[i].x), - (short) (macWin->yOff + points[i].y)); - } else { - Line((short) points[i].x, (short) points[i].y); - } - } - ClosePoly(); - FillCPoly(polygon, dc.penPat); - KillPoly(polygon); - } - TkMacOSXRestoreDrawingContext(&dc); -} - -/* - *---------------------------------------------------------------------- - * - * XDrawRectangle -- - * - * Draws a rectangle. - * - * Results: - * None. - * - * Side effects: - * Draws a rectangle on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XDrawRectangle( - Display *display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left corner. */ - unsigned int width, /* Width & height of rect. */ - unsigned int height) -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int lw = gc->line_width; - - if (width == 0 || height == 0) { - return; - } - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0; - - rect = CGRectMake( - macWin->xOff + x + o, - macWin->yOff + y + o, - width, height); - CGContextStrokeRect(dc.context, rect); - } else { - Rect theRect; - int o = -lw/2; - - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); - theRect.bottom = (short) (theRect.top + height + lw); - FrameRect(&theRect); - } - TkMacOSXRestoreDrawingContext(&dc); -} - -#ifdef TK_MACOSXDRAW_UNUSED -/* - *---------------------------------------------------------------------- - * - * XDrawRectangles -- - * - * Draws the outlines of the specified rectangles as if a - * five-point PolyLine protocol request were specified for each - * rectangle: - * - * [x,y] [x+width,y] [x+width,y+height] [x,y+height] [x,y] - * - * For the specified rectangles, these functions do not draw a - * pixel more than once. XDrawRectangles draws the rectangles in - * the order listed in the array. If rectangles intersect, the - * intersecting pixels are drawn multiple times. Draws a - * rectangle. - * - * Results: - * None. - * - * Side effects: - * Draws rectangles on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XDrawRectangles( - Display *display, - Drawable drawable, - GC gc, - XRectangle *rectArr, - int nRects) -{ - MacDrawable *macWin = (MacDrawable *) drawable; - TkMacOSXDrawingContext dc; - XRectangle * rectPtr; - int i, lw = gc->line_width; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0; - - for (i = 0, rectPtr = rectArr; i < nRects; i++, rectPtr++) { - if (rectPtr->width == 0 || rectPtr->height == 0) { - continue; - } - rect = CGRectMake( - macWin->xOff + rectPtr->x + o, - macWin->yOff + rectPtr->y + o, - rectPtr->width, rectPtr->height); - CGContextStrokeRect(dc.context, rect); - } - } else { - Rect theRect; - int o = -lw/2; - - for (i = 0, rectPtr = rectArr; i < nRects;i++, rectPtr++) { - theRect.left = (short) (macWin->xOff + rectPtr->x + o); - theRect.top = (short) (macWin->yOff + rectPtr->y + o); - theRect.right = (short) (theRect.left + rectPtr->width + lw); - theRect.bottom = (short) (theRect.top + rectPtr->height + lw); - FrameRect(&theRect); - } - } - TkMacOSXRestoreDrawingContext(&dc); -} -#endif - -/* - *---------------------------------------------------------------------- - * - * XFillRectangles -- - * - * Fill multiple rectangular areas in the given drawable. - * - * Results: - * None. - * - * Side effects: - * Draws onto the specified drawable. - * - *---------------------------------------------------------------------- - */ - -int -XFillRectangles( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - XRectangle *rectangles, /* Rectangle array. */ - int n_rectangles) /* Number of rectangles. */ -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - XRectangle * rectPtr; - int i; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return BadDrawable; - } - if (dc.context) { - CGRect rect; - - for (i = 0, rectPtr = rectangles; i < n_rectangles; i++, rectPtr++) { - if (rectPtr->width == 0 || rectPtr->height == 0) { - continue; - } - rect = CGRectMake( - macWin->xOff + rectPtr->x, - macWin->yOff + rectPtr->y, - rectPtr->width, rectPtr->height); - CGContextFillRect(dc.context, rect); - } - } else { - Rect theRect; - - for (i = 0, rectPtr = rectangles; i < n_rectangles; i++, rectPtr++) { - theRect.left = (short) (macWin->xOff + rectPtr->x); - theRect.top = (short) (macWin->yOff + rectPtr->y); - theRect.right = (short) (theRect.left + rectPtr->width); - theRect.bottom = (short) (theRect.top + rectPtr->height); - FillCRect(&theRect, dc.penPat); - } - } - TkMacOSXRestoreDrawingContext(&dc); - return Success; -} - -/* - *---------------------------------------------------------------------- - * - * XDrawArc -- - * - * Draw an arc. - * - * Results: - * None. - * - * Side effects: - * Draws an arc on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XDrawArc( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left of bounding rect. */ - unsigned int width, /* Width & height. */ - unsigned int height, - int angle1, /* Staring angle of arc. */ - int angle2) /* Extent of arc. */ -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int lw = gc->line_width; - - if (width == 0 || height == 0 || angle2 == 0) { - return; - } - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0; - - rect = CGRectMake( - macWin->xOff + x + o, - macWin->yOff + y + o, - width, height); - TK_IF_MAC_OS_X_API_COND (4, CGContextStrokeEllipseInRect, - angle1 == 0 && angle2 == 23040, - CGContextStrokeEllipseInRect(dc.context, rect); - ) TK_ELSE ( - CGMutablePathRef p = CGPathCreateMutable(); - CGAffineTransform t = CGAffineTransformIdentity; - CGPoint c = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)); - double w = CGRectGetWidth(rect); - - if (width != height) { - t = CGAffineTransformMakeScale(1.0, CGRectGetHeight(rect)/w); - c = CGPointApplyAffineTransform(c, CGAffineTransformInvert(t)); - } - CGPathAddArc(p, &t, c.x, c.y, w/2, radians(-angle1/64.0), - radians(-(angle1 + angle2)/64.0), angle2 > 0); - CGContextAddPath(dc.context, p); - CGPathRelease(p); - CGContextStrokePath(dc.context); - ) TK_ENDIF - } else { - Rect theRect; - short start, extent; - int o = -lw/2; - - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); - theRect.bottom = (short) (theRect.top + height + lw); - start = (short) (90 - (angle1/64)); - extent = (short) (-(angle2/64)); - FrameArc(&theRect, start, extent); - } - TkMacOSXRestoreDrawingContext(&dc); -} - -#ifdef TK_MACOSXDRAW_UNUSED -/* - *---------------------------------------------------------------------- - * - * XDrawArcs -- - * - * Draws multiple circular or elliptical arcs. Each arc is - * specified by a rectangle and two angles. The center of the - * circle or ellipse is the center of the rect- angle, and the - * major and minor axes are specified by the width and height. - * Positive angles indicate counterclock- wise motion, and - * negative angles indicate clockwise motion. If the magnitude - * of angle2 is greater than 360 degrees, XDrawArcs truncates it - * to 360 degrees. - * - * Results: - * None. - * - * Side effects: - * Draws an arc for each array element on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XDrawArcs( - Display *display, - Drawable d, - GC gc, - XArc *arcArr, - int nArcs) -{ - - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - XArc *arcPtr; - int i, lw = gc->line_width; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0; - - for (i=0, arcPtr = arcArr; i < nArcs; i++, arcPtr++) { - if (arcPtr->width == 0 || arcPtr->height == 0 - || arcPtr->angle2 == 0) { - continue; - } - rect = CGRectMake( - macWin->xOff + arcPtr->x + o, - macWin->yOff + arcPtr->y + o, - arcPtr->width, arcPtr->height); - - TK_IF_MAC_OS_X_API_COND (4, CGContextStrokeEllipseInRect, - arcPtr->angle1 == 0 && arcPtr->angle2 == 23040, - CGContextStrokeEllipseInRect(dc.context, rect); - ) TK_ELSE ( - CGMutablePathRef p = CGPathCreateMutable(); - CGAffineTransform t = CGAffineTransformIdentity; - CGPoint c = CGPointMake(CGRectGetMidX(rect), - CGRectGetMidY(rect)); - double w = CGRectGetWidth(rect); - - if (arcPtr->width != arcPtr->height) { - t = CGAffineTransformMakeScale(1, CGRectGetHeight(rect)/w); - c = CGPointApplyAffineTransform(c, - CGAffineTransformInvert(t)); - } - CGPathAddArc(p, &t, c.x, c.y, w/2, - radians(-arcPtr->angle1/64.0), - radians(-(arcPtr->angle1 + arcPtr->angle2)/64.0), - arcPtr->angle2 > 0); - CGContextAddPath(dc.context, p); - CGPathRelease(p); - CGContextStrokePath(dc.context); - ) TK_ENDIF - } - } else { - Rect theRect; - short start, extent; - int o = -lw/2; - - for (i = 0, arcPtr = arcArr;i < nArcs;i++, arcPtr++) { - theRect.left = (short) (macWin->xOff + arcPtr->x + o); - theRect.top = (short) (macWin->yOff + arcPtr->y + o); - theRect.right = (short) (theRect.left + arcPtr->width + lw); - theRect.bottom = (short) (theRect.top + arcPtr->height + lw); - start = (short) (90 - (arcPtr->angle1/64)); - extent = (short) (-(arcPtr->angle2/64)); - FrameArc(&theRect, start, extent); - } - } - TkMacOSXRestoreDrawingContext(&dc); -} -#endif - -/* - *---------------------------------------------------------------------- - * - * XFillArc -- - * - * Draw a filled arc. - * - * Results: - * None. - * - * Side effects: - * Draws a filled arc on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XFillArc( - Display* display, /* Display. */ - Drawable d, /* Draw on this. */ - GC gc, /* Use this GC. */ - int x, int y, /* Upper left of bounding rect. */ - unsigned int width, /* Width & height. */ - unsigned int height, - int angle1, /* Staring angle of arc. */ - int angle2) /* Extent of arc. */ -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - int lw = gc->line_width; - - if (width == 0 || height == 0 || angle2 == 0) { - return; - } - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0, u = 0; - - if (notAA(lw)) { - o += NON_AA_CG_OFFSET/2; - u += NON_AA_CG_OFFSET; - } - rect = CGRectMake( - macWin->xOff + x + o, - macWin->yOff + y + o, - width - u, height - u); - - TK_IF_MAC_OS_X_API_COND (4, CGContextFillEllipseInRect, - angle1 == 0 && angle2 == 23040, - CGContextFillEllipseInRect(dc.context, rect); - ) TK_ELSE ( - CGMutablePathRef p = CGPathCreateMutable(); - CGAffineTransform t = CGAffineTransformIdentity; - CGPoint c = CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect)); - double w = CGRectGetWidth(rect); - - if (width != height) { - t = CGAffineTransformMakeScale(1, CGRectGetHeight(rect)/w); - c = CGPointApplyAffineTransform(c, CGAffineTransformInvert(t)); - } - if (gc->arc_mode == ArcPieSlice) { - CGPathMoveToPoint(p, &t, c.x, c.y); - } - CGPathAddArc(p, &t, c.x, c.y, w/2, radians(-angle1/64.0), - radians(-(angle1 + angle2)/64.0), angle2 > 0); - CGPathCloseSubpath(p); - CGContextAddPath(dc.context, p); - CGPathRelease(p); - CGContextFillPath(dc.context); - ) TK_ENDIF - } else { - Rect theRect; - short start, extent; - int o = -lw/2; - PolyHandle polygon; - double sin1, cos1, sin2, cos2, angle; - double boxWidth, boxHeight; - double vertex[2], center1[2], center2[2]; - - theRect.left = (short) (macWin->xOff + x + o); - theRect.top = (short) (macWin->yOff + y + o); - theRect.right = (short) (theRect.left + width + lw); - theRect.bottom = (short) (theRect.top + height + lw); - start = (short) (90 - (angle1/64)); - extent = (short) (-(angle2/64)); - if (gc->arc_mode == ArcChord) { - boxWidth = theRect.right - theRect.left; - boxHeight = theRect.bottom - theRect.top; - angle = radians(-angle1/64.0); - sin1 = sin(angle); - cos1 = cos(angle); - angle -= radians(angle2/64.0); - sin2 = sin(angle); - cos2 = cos(angle); - vertex[0] = (theRect.left + theRect.right)/2.0; - vertex[1] = (theRect.top + theRect.bottom)/2.0; - center1[0] = vertex[0] + cos1*boxWidth/2.0; - center1[1] = vertex[1] + sin1*boxHeight/2.0; - center2[0] = vertex[0] + cos2*boxWidth/2.0; - center2[1] = vertex[1] + sin2*boxHeight/2.0; - - polygon = OpenPoly(); - MoveTo((short) ((theRect.left + theRect.right)/2), - (short) ((theRect.top + theRect.bottom)/2)); - LineTo((short) (center1[0] + .5), (short) (center1[1] + .5)); - LineTo((short) (center2[0] + .5), (short) (center2[1] + .5)); - ClosePoly(); - FillCArc(&theRect, start, extent, dc.penPat); - FillCPoly(polygon, dc.penPat); - KillPoly(polygon); - } else { - FillCArc(&theRect, start, extent, dc.penPat); - } - } - TkMacOSXRestoreDrawingContext(&dc); -} - -#ifdef TK_MACOSXDRAW_UNUSED -/* - *---------------------------------------------------------------------- - * - * XFillArcs -- - * - * Draw a filled arc. - * - * Results: - * None. - * - * Side effects: - * Draws a filled arc for each array element on the specified drawable. - * - *---------------------------------------------------------------------- - */ - -void -XFillArcs( - Display *display, - Drawable d, - GC gc, - XArc *arcArr, - int nArcs) -{ - MacDrawable *macWin = (MacDrawable *) d; - TkMacOSXDrawingContext dc; - XArc * arcPtr; - int i, lw = gc->line_width; - - display->request++; - if (!TkMacOSXSetupDrawingContext(d, gc, tkMacOSXUseCGDrawing, &dc)) { - return; - } - if (dc.context) { - CGRect rect; - double o = (lw % 2) ? .5 : 0, u = 0; - - if (notAA(lw)) { - o += NON_AA_CG_OFFSET/2; - u += NON_AA_CG_OFFSET; - } - for (i = 0, arcPtr = arcArr; i < nArcs; i++, arcPtr++) { - if (arcPtr->width == 0 || arcPtr->height == 0 - || arcPtr->angle2 == 0) { - continue; - } - rect = CGRectMake( - macWin->xOff + arcPtr->x + o, - macWin->yOff + arcPtr->y + o, - arcPtr->width - u, arcPtr->height - u); - TK_IF_MAC_OS_X_API_COND (4, CGContextFillEllipseInRect, - arcPtr->angle1 == 0 && arcPtr->angle2 == 23040, - CGContextFillEllipseInRect(dc.context, rect); - ) TK_ELSE ( - CGMutablePathRef p = CGPathCreateMutable(); - CGAffineTransform t = CGAffineTransformIdentity; - CGPoint c = CGPointMake(CGRectGetMidX(rect), - CGRectGetMidY(rect)); - double w = CGRectGetWidth(rect); - - if (arcPtr->width != arcPtr->height) { - t = CGAffineTransformMakeScale(1, CGRectGetHeight(rect)/w); - c = CGPointApplyAffineTransform(c, - CGAffineTransformInvert(t)); - } - if (gc->arc_mode == ArcPieSlice) { - CGPathMoveToPoint(p, &t, c.x, c.y); - } - CGPathAddArc(p, &t, c.x, c.y, w/2, - radians(-arcPtr->angle1/64.0), - radians(-(arcPtr->angle1 + arcPtr->angle2)/64.0), - arcPtr->angle2 > 0); - CGPathCloseSubpath(p); - CGContextAddPath(dc.context, p); - CGPathRelease(p); - CGContextFillPath(dc.context); - ) TK_ENDIF - } - } else { - Rect theRect; - short start, extent; - int o = -lw/2; - PolyHandle polygon; - double sin1, cos1, sin2, cos2, angle; - double boxWidth, boxHeight; - double vertex[2], center1[2], center2[2]; - - for (i = 0, arcPtr = arcArr;i<nArcs;i++, arcPtr++) { - theRect.left = (short) (macWin->xOff + arcPtr->x + o); - theRect.top = (short) (macWin->yOff + arcPtr->y + o); - theRect.right = (short) (theRect.left + arcPtr->width + lw); - theRect.bottom = (short) (theRect.top + arcPtr->height + lw); - start = (short) (90 - (arcPtr->angle1/64)); - extent = (short) (- (arcPtr->angle2/64)); - - if (gc->arc_mode == ArcChord) { - boxWidth = theRect.right - theRect.left; - boxHeight = theRect.bottom - theRect.top; - angle = radians(-arcPtr->angle1/64.0); - sin1 = sin(angle); - cos1 = cos(angle); - angle -= radians(arcPtr->angle2/64.0); - sin2 = sin(angle); - cos2 = cos(angle); - vertex[0] = (theRect.left + theRect.right)/2.0; - vertex[1] = (theRect.top + theRect.bottom)/2.0; - center1[0] = vertex[0] + cos1*boxWidth/2.0; - center1[1] = vertex[1] + sin1*boxHeight/2.0; - center2[0] = vertex[0] + cos2*boxWidth/2.0; - center2[1] = vertex[1] + sin2*boxHeight/2.0; - - polygon = OpenPoly(); - MoveTo((short) ((theRect.left + theRect.right)/2), - (short) ((theRect.top + theRect.bottom)/2)); - LineTo((short) (center1[0] + .5), (short) (center1[1] + .5)); - LineTo((short) (center2[0] + .5), (short) (center2[1] + .5)); - ClosePoly(); - FillCArc(&theRect, start, extent, dc.penPat); - FillCPoly(polygon, dc.penPat); - KillPoly(polygon); - } else { - FillCArc(&theRect, start, extent, dc.penPat); - } - } - } - TkMacOSXRestoreDrawingContext(&dc); -} -#endif - -#ifdef TK_MACOSXDRAW_UNUSED -/* - *---------------------------------------------------------------------- - * - * XMaxRequestSize -- - * - *---------------------------------------------------------------------- - */ - -long -XMaxRequestSize( - Display *display) -{ - return (SHRT_MAX / 4); -} -#endif - -/* - *---------------------------------------------------------------------- - * - * TkScrollWindow -- - * - * Scroll a rectangle of the specified window and accumulate - * a damage region. - * - * Results: - * Returns 0 if the scroll genereated no additional damage. - * Otherwise, sets the region that needs to be repainted after - * scrolling and returns 1. - * - * Side effects: - * Scrolls the bits in the window. - * - *---------------------------------------------------------------------- - */ - -int -TkScrollWindow( - Tk_Window tkwin, /* The window to be scrolled. */ - GC gc, /* GC for window to be scrolled. */ - 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. */ -{ - MacDrawable *destDraw = (MacDrawable *) Tk_WindowId(tkwin); - CGrafPtr destPort, savePort; - Boolean portChanged; - Rect scrollRect; - int result; - HIShapeRef dmgRgn; - - /* - * Due to the implementation below the behavior may be differnt - * than X in certain cases that should never occur in Tk. The - * scrollRect is the source rect extended by the offset (the union - * of the source rect and the offset rect). Everything - * in the extended scrollRect is scrolled. On X, it's possible - * to "skip" over an area if the offset makes the source and - * destination rects disjoint and non-aligned. - */ - - scrollRect.left = destDraw->xOff + x; - scrollRect.top = destDraw->yOff + y; - scrollRect.right = scrollRect.left + width; - scrollRect.bottom = scrollRect.top + height; - if (dx < 0) { - scrollRect.left += dx; - } else { - scrollRect.right += dx; - } - if (dy < 0) { - scrollRect.top += dy; - } else { - scrollRect.bottom += dy; - } - - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(tkwin)); - TkMacOSXSetUpClippingRgn(Tk_WindowId(tkwin)); - TkMacOSXCheckTmpQdRgnEmpty(); - portChanged = QDSwapPort(destPort, &savePort); - ScrollRect(&scrollRect, dx, dy, tkMacOSXtmpQdRgn); - if (portChanged) { - QDSwapPort(savePort, NULL); - } - - /* - * Fortunately, the region returned by ScrollRect is semantically - * the same as what we need to return in this function. If the - * region is empty we return zero to denote that no damage was - * created. - */ - - dmgRgn = HIShapeCreateWithQDRgn(tkMacOSXtmpQdRgn); - SetEmptyRgn(tkMacOSXtmpQdRgn); - TkMacOSXSetWithNativeRegion(damageRgn, dmgRgn); - result = HIShapeIsEmpty(dmgRgn) ? 0 : 1; - CFRelease(dmgRgn); - - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetUpGraphicsPort -- - * - * Set up the graphics port from the given GC. - * - * Results: - * None. - * - * Side effects: - * The current port is adjusted. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetUpGraphicsPort( - GC gc, /* GC to apply to current port. */ - void *destPort) -{ - CGrafPtr savePort; - Boolean portChanged; - - portChanged = QDSwapPort(destPort, &savePort); - PenNormal(); - if (gc) { - if (!penPat) { - if (!tmpPixPat) { - penPat = NewPixPat(); - } else { - penPat = tmpPixPat; - tmpPixPat = NULL; - } - } - TkMacOSXSetColorInPort(gc->foreground, 1, penPat, destPort); - PenPixPat(penPat); - if(gc->function == GXxor) { - PenMode(patXor); - } - if (gc->line_width > 1) { - PenSize(gc->line_width, gc->line_width); - } - if (gc->line_style != LineSolid) { - /* - * FIXME: Here the dash pattern should be set in the drawing - * environment. This is not possible with QuickDraw line drawing. - */ - } - } - if (portChanged) { - QDSwapPort(savePort, NULL); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetUpDrawingContext -- - * - * Set up a drawing context for the given drawable and GC. - * - * Results: - * Boolean indicating whether it is ok to draw; if false, drawing - * context was not setup, so do not attempt to draw and do not call - * TkMacOSXRestoreDrawingContext(). - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXSetupDrawingContext( - Drawable d, - GC gc, - int useCG, /* advisory only ! */ - TkMacOSXDrawingContext *dcPtr) -{ - MacDrawable *macDraw = ((MacDrawable*)d); - int dontDraw = 0; - TkMacOSXDrawingContext dc = {NULL, NULL, NULL, NULL, NULL, NULL, NULL, - {SHRT_MIN, SHRT_MIN, SHRT_MAX, SHRT_MAX}, false}; - - if (tkPictureIsOpen) { - if (useCG) { - TkMacOSXDbgMsg("Ignored CG Drawing with QD Picture open"); - dontDraw = 1; - } - } else { - dc.clipRgn = TkMacOSXGetClipRgn(d); - } - if (!dontDraw) { - ClipToGC(d, gc, &dc.clipRgn); - dontDraw = dc.clipRgn ? HIShapeIsEmpty(dc.clipRgn) : 0; - } - if (dontDraw) { - if (dc.clipRgn) { - CFRelease(dc.clipRgn); - dc.clipRgn = NULL; - } - goto end; - } - if (useCG) { - dc.context = macDraw->context; - } - if (!dc.context || !(macDraw->flags & TK_IS_PIXMAP)) { - dc.port = TkMacOSXGetDrawablePort(d); - if (dc.port) { - GetPortBounds(dc.port, &dc.portBounds); - } - } - if (dc.context) { - if (!dc.port) { - CGRect r; - - TK_IF_MAC_OS_X_API (3, CGContextGetClipBoundingBox, - r = CGContextGetClipBoundingBox(dc.context); - ) TK_ELSE_MAC_OS_X (3, - r.origin = CGPointZero; - r.size = macDraw->size; - ) TK_ENDIF - SetRect(&dc.portBounds, r.origin.x + macDraw->xOff, - r.origin.y + macDraw->yOff, - r.origin.x + r.size.width + macDraw->xOff, - r.origin.y + r.size.height + macDraw->yOff); - } - CGContextSaveGState(dc.context); - dc.saveState = (void*)1; - dc.port = NULL; - } else if (dc.port) { - dc.portChanged = QDSwapPort(dc.port, &dc.savePort); - if (useCG && ChkErr(QDBeginCGContext, dc.port, &dc.context) == noErr) { - SyncCGContextOriginWithPort(dc.context, dc.port); - } else { - dc.context = NULL; - } - } else { - Tcl_Panic("TkMacOSXSetupDrawingContext(): " - "no port or context to draw into !"); - } - if (dc.context) { - CGContextConcatCTM(dc.context, CGAffineTransformMake(1.0, 0.0, 0.0, - -1.0, 0.0, dc.portBounds.bottom - dc.portBounds.top)); - if (dc.clipRgn) { -#ifdef TK_MAC_DEBUG_DRAWING - CGContextSaveGState(dc.context); - ChkErr(HIShapeReplacePathInCGContext, dc.clipRgn, dc.context); - CGContextSetRGBFillColor(dc.context, 1.0, 0.0, 0.0, 0.2); - CGContextEOFillPath(dc.context); - CGContextRestoreGState(dc.context); -#endif /* TK_MAC_DEBUG_DRAWING */ - ChkErr(HIShapeReplacePathInCGContext, dc.clipRgn, dc.context); - CGContextEOClip(dc.context); - } - if (gc) { - static const CGLineCap cgCap[] = { - [CapNotLast] = kCGLineCapButt, - [CapButt] = kCGLineCapButt, - [CapRound] = kCGLineCapRound, - [CapProjecting] = kCGLineCapSquare, - }; - static const CGLineJoin cgJoin[] = { - [JoinMiter] = kCGLineJoinMiter, - [JoinRound] = kCGLineJoinRound, - [JoinBevel] = kCGLineJoinBevel, - }; - bool shouldAntialias; - double w = gc->line_width; - - TkMacOSXSetColorInContext(gc->foreground, dc.context); - if (dc.port) { - CGContextSetPatternPhase(dc.context, CGSizeMake( - dc.portBounds.right - dc.portBounds.left, - dc.portBounds.bottom - dc.portBounds.top)); - } - if(gc->function != GXcopy) { - TkMacOSXDbgMsg("Logical functions other than GXcopy are " - "not supported for CG drawing!"); - } - /* When should we antialias? */ - shouldAntialias = !notAA(gc->line_width); - if (!shouldAntialias) { - /* Make non-antialiased CG drawing look more like X11 */ - w -= (gc->line_width ? NON_AA_CG_OFFSET : 0); - } - CGContextSetShouldAntialias(dc.context, shouldAntialias); - CGContextSetLineWidth(dc.context, w); - if (gc->line_style != LineSolid) { - int num = 0; - char *p = &(gc->dashes); - double dashOffset = gc->dash_offset; - float lengths[10]; - - while (p[num] != '\0' && num < 10) { - lengths[num] = p[num]; - num++; - } - CGContextSetLineDash(dc.context, dashOffset, lengths, num); - } - if ((unsigned)gc->cap_style < sizeof(cgCap)/sizeof(CGLineCap)) { - CGContextSetLineCap(dc.context, - cgCap[(unsigned)gc->cap_style]); - } - if ((unsigned)gc->join_style < sizeof(cgJoin)/sizeof(CGLineJoin)) { - CGContextSetLineJoin(dc.context, - cgJoin[(unsigned)gc->join_style]); - } - } - } else if (dc.port) { - PixPatHandle savePat = penPat; - - ChkErr(GetThemeDrawingState, &dc.saveState); - penPat = NULL; - TkMacOSXSetUpGraphicsPort(gc, dc.port); - dc.penPat = penPat; - penPat = savePat; - dc.saveClip = NewRgn(); - GetPortClipRegion(dc.port, dc.saveClip); - if (dc.clipRgn) { - ChkErr(HIShapeSetQDClip, dc.clipRgn, dc.port); - } else { - NoQDClip(dc.port); - } - if (!tkPictureIsOpen) { - ShowPen(); - } - } -end: - *dcPtr = dc; - return !dontDraw; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXRestoreDrawingContext -- - * - * Restore drawing context. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXRestoreDrawingContext( - TkMacOSXDrawingContext *dcPtr) -{ - if (dcPtr->context) { - CGContextSynchronize(dcPtr->context); - if (dcPtr->saveState) { - CGContextRestoreGState(dcPtr->context); - } - if (dcPtr->port) { - ChkErr(QDEndCGContext, dcPtr->port, &(dcPtr->context)); - } - } else if (dcPtr->port) { - if (!tkPictureIsOpen) { - HidePen(); - } - PenNormal(); - if (dcPtr->saveClip) { - SetPortClipRegion(dcPtr->port, dcPtr->saveClip); - DisposeRgn(dcPtr->saveClip); - } - if (dcPtr->penPat) { - if (!tmpPixPat) { - tmpPixPat = dcPtr->penPat; - } else { - DisposePixPat(dcPtr->penPat); - } - } - if (dcPtr->saveState) { - ChkErr(SetThemeDrawingState, dcPtr->saveState, true); - } - } - if (dcPtr->clipRgn) { - CFRelease(dcPtr->clipRgn); - } - if (dcPtr->portChanged) { - QDSwapPort(dcPtr->savePort, NULL); - } -#ifdef TK_MAC_DEBUG - bzero(dcPtr, sizeof(TkMacOSXDrawingContext)); -#endif /* TK_MAC_DEBUG */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetClipRgn -- - * - * Get the clipping region needed to restrict drawing to the given - * drawable. - * - * Results: - * Clipping region. If non-NULL, CFRelease it when done. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -HIShapeRef -TkMacOSXGetClipRgn( - Drawable drawable) /* Drawable. */ -{ - MacDrawable *macDraw = (MacDrawable *) drawable; - HIShapeRef clipRgn = NULL; - CGRect r; - - if (macDraw->winPtr && macDraw->flags & TK_CLIP_INVALID) { - TkMacOSXUpdateClipRgn(macDraw->winPtr); -#ifdef TK_MAC_DEBUG_DRAWING - TkMacOSXDbgMsg("%s visRgn ", macDraw->winPtr->pathName); - TkMacOSXDebugFlashRegion(drawable, macDraw->visRgn); -#endif /* TK_MAC_DEBUG_DRAWING */ - } - - if (macDraw->flags & TK_CLIPPED_DRAW) { - r = CGRectOffset(macDraw->drawRect, macDraw->xOff, macDraw->yOff); - } - if (macDraw->visRgn) { - if (macDraw->flags & TK_CLIPPED_DRAW) { - HIShapeRef rgn = HIShapeCreateWithRect(&r); - - clipRgn = HIShapeCreateIntersection(macDraw->visRgn, rgn); - CFRelease(rgn); - } else { - clipRgn = HIShapeCreateCopy(macDraw->visRgn); - } - } else if (macDraw->flags & TK_CLIPPED_DRAW) { - clipRgn = HIShapeCreateWithRect(&r); - } -#ifdef TK_MAC_DEBUG_DRAWING - TkMacOSXDbgMsg("%s clipRgn ", macDraw->winPtr->pathName); - TkMacOSXDebugFlashRegion(drawable, clipRgn); -#endif /* TK_MAC_DEBUG_DRAWING */ - - return clipRgn; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetUpClippingRgn -- - * - * Set up the clipping region so that drawing only occurs on the - * specified X subwindow. - * - * Results: - * None. - * - * Side effects: - * The clipping region in the current port is changed. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetUpClippingRgn( - Drawable drawable) /* Drawable to update. */ -{ - CGrafPtr port = TkMacOSXGetDrawablePort(drawable); - - if (port) { - HIShapeRef clipRgn = TkMacOSXGetClipRgn(drawable); - - if (clipRgn) { - ChkErr(HIShapeSetQDClip, clipRgn, port); - CFRelease(clipRgn); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpClipDrawableToRect -- - * - * Clip all drawing into the drawable d to the given rectangle. - * If width and height are negative, reset to no clipping. - * - * Results: - * None. - * - * Side effects: - * Subsequent drawing into d is offset and clipped as specified. - * - *---------------------------------------------------------------------- - */ - -void -TkpClipDrawableToRect( - Display *display, - Drawable d, - int x, int y, - int width, int height) -{ - MacDrawable *macDraw = (MacDrawable *) d; - - if (width < 0 && height < 0) { - macDraw->drawRect = CGRectNull; - macDraw->flags &= ~TK_CLIPPED_DRAW; - } else { - macDraw->drawRect = CGRectMake(x, y, width, height); - macDraw->flags |= TK_CLIPPED_DRAW; - } -} - -/* - *---------------------------------------------------------------------- - * - * ClipToGC -- - * - * Helper function to intersect given region with gc clip region. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -ClipToGC( - Drawable d, - GC gc, - HIShapeRef *clipRgnPtr) /* must point to initialized variable */ -{ - if (gc && gc->clip_mask && - ((TkpClipMask*)gc->clip_mask)->type == TKP_CLIP_REGION) { - TkRegion 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; - - if (!tkPictureIsOpen) { - TkMacOSXOffsetRegion(gcClip, xOffset, yOffset); - } - gcClipRgn = TkMacOSXGetNativeRegion(gcClip); - if (clipRgn) { - *clipRgnPtr = HIShapeCreateIntersection(gcClipRgn, clipRgn); - CFRelease(clipRgn); - } else { - *clipRgnPtr = HIShapeCreateCopy(gcClipRgn); - } - CFRelease(gcClipRgn); - if (!tkPictureIsOpen) { - TkMacOSXOffsetRegion(gcClip, -xOffset, -yOffset); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * NoQDClip -- - * - * Helper function to setup a QD port to not clip anything. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -NoQDClip( - CGrafPtr port) -{ - static RgnHandle noClipRgn = NULL; - - if (!noClipRgn) { - noClipRgn = NewRgn(); - SetRectRgn(noClipRgn, SHRT_MIN, SHRT_MIN, SHRT_MAX, SHRT_MAX); - } - SetPortClipRegion(port, noClipRgn); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXMakeStippleMap -- - * - * Given a drawable and a stipple pattern this function draws the - * pattern repeatedly over the drawable. The drawable can then - * be used as a mask for bit-bliting a stipple pattern over an - * object. - * - * Results: - * A BitMap data structure. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void * -TkMacOSXMakeStippleMap( - Drawable drawable, /* Window to apply stipple. */ - Drawable stipple) /* The stipple pattern. */ -{ - CGrafPtr stipplePort; - BitMapPtr bitmapPtr; - const BitMap *stippleBitmap; - Rect portRect; - int width, height, stippleHeight, stippleWidth, i, j; - Rect bounds; - - GetPortBounds(TkMacOSXGetDrawablePort(drawable), &portRect); - width = portRect.right - portRect.left; - height = portRect.bottom - portRect.top; - bitmapPtr = ckalloc(sizeof(BitMap)); - bitmapPtr->bounds.top = bitmapPtr->bounds.left = 0; - bitmapPtr->bounds.right = (short) width; - bitmapPtr->bounds.bottom = (short) height; - bitmapPtr->rowBytes = (width / 8) + 1; - bitmapPtr->baseAddr = ckalloc(height * bitmapPtr->rowBytes); - - stipplePort = TkMacOSXGetDrawablePort(stipple); - stippleBitmap = GetPortBitMapForCopyBits(stipplePort); - GetPortBounds(stipplePort, &portRect); - stippleWidth = portRect.right - portRect.left; - stippleHeight = portRect.bottom - portRect.top; - - for (i = 0; i < height; i += stippleHeight) { - for (j = 0; j < width; j += stippleWidth) { - bounds.left = j; - bounds.top = i; - bounds.right = j + stippleWidth; - bounds.bottom = i + stippleHeight; - CopyBits(stippleBitmap, bitmapPtr, &portRect, &bounds, srcCopy, - NULL); - } - } - return bitmapPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDrawHighlightBorder -- - * - * This procedure draws a rectangular ring around the outside of - * a widget to indicate that it has received the input focus. - * - * On the Macintosh, this puts a 1 pixel border in the bgGC color - * between the widget and the focus ring, except in the case where - * highlightWidth is 1, in which case the border is left out. - * - * For proper Mac L&F, use highlightWidth of 3. - * - * Results: - * None. - * - * Side effects: - * A rectangle "width" pixels wide is drawn in "drawable", - * corresponding to the outer area of "tkwin". - * - *---------------------------------------------------------------------- - */ - -void -TkpDrawHighlightBorder ( - Tk_Window tkwin, - GC fgGC, - GC bgGC, - int highlightWidth, - Drawable drawable) -{ - if (highlightWidth == 1) { - TkDrawInsetFocusHighlight (tkwin, fgGC, highlightWidth, drawable, 0); - } else { - TkDrawInsetFocusHighlight (tkwin, bgGC, highlightWidth, drawable, 0); - if (fgGC != bgGC) { - TkDrawInsetFocusHighlight (tkwin, fgGC, highlightWidth - 1, - drawable, 0); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpDrawFrame -- - * - * This procedure draws the rectangular frame area. If the user - * has request themeing, it draws with a the background theme. - * - * Results: - * None. - * - * Side effects: - * Draws inside the tkwin area. - * - *---------------------------------------------------------------------- - */ - -void -TkpDrawFrame( - Tk_Window tkwin, - Tk_3DBorder border, - int highlightWidth, - int borderWidth, - int relief) -{ - if (useThemedToplevel && Tk_IsTopLevel(tkwin)) { - static Tk_3DBorder themedBorder = NULL; - - if (!themedBorder) { - themedBorder = Tk_Get3DBorder(NULL, tkwin, - "systemWindowHeaderBackground"); - } - if (themedBorder) { - border = themedBorder; - } - } - Tk_Fill3DRectangle(tkwin, Tk_WindowId(tkwin), - border, highlightWidth, highlightWidth, - Tk_Width(tkwin) - 2 * highlightWidth, - Tk_Height(tkwin) - 2 * highlightWidth, - borderWidth, relief); -} diff --git a/carbon/tkMacOSXEmbed.c b/carbon/tkMacOSXEmbed.c deleted file mode 100644 index 39e9aaa..0000000 --- a/carbon/tkMacOSXEmbed.c +++ /dev/null @@ -1,1184 +0,0 @@ -/* - * tkMacOSXEmbed.c -- - * - * This file contains platform-specific procedures for theMac to provide - * basic operations needed for application embedding (where one - * application can use as its main window an internal window from some - * other application). Currently only Toplevel embedding within the same - * Tk application is allowed on the Macintosh. - * - * Copyright (c) 1996-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXInt.h" -#include "tkBusy.h" - -/* - * One of the following structures exists for each container in this - * application. It keeps track of the container window and its associated - * embedded window. - */ - -typedef struct Container { - Window parent; /* The Mac Drawable for the parent of the pair - * (the container). */ - TkWindow *parentPtr; /* Tk's information about the container, or - * NULL if the container isn't in this - * process. */ - Window embedded; /* The MacDrawable for the embedded window. - * Starts off as None, but gets filled in when - * the window is eventually created. */ - TkWindow *embeddedPtr; /* Tk's information about the embedded window, - * or NULL if the embedded application isn't - * in this process. */ - struct Container *nextPtr; /* Next in list of all containers in this - * process. */ -} 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 EmbedGeometryRequest(Container *containerPtr, int width, - int height); -static void EmbedSendConfigure(Container *containerPtr); -static void EmbedStructureProc(ClientData 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 -- - * - * Creates an X Window (Mac subwindow). - * - * Results: - * The window id is returned. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Window -TkpMakeWindow( - TkWindow *winPtr, - Window parent) -{ - MacDrawable *macWin; - - /* - * If this window is marked as embedded then the window structure should - * have already been created in the TkpUseWindow function. - */ - - if (Tk_IsEmbedded(winPtr)) { - macWin = winPtr->privatePtr; - } else { - /* - * Allocate sub window - */ - - macWin = ckalloc(sizeof(MacDrawable)); - if (macWin == NULL) { - winPtr->privatePtr = NULL; - return None; - } - macWin->winPtr = winPtr; - winPtr->privatePtr = macWin; - macWin->visRgn = NULL; - macWin->aboveVisRgn = NULL; - macWin->drawRect = CGRectNull; - macWin->referenceCount = 0; - macWin->flags = TK_CLIP_INVALID; - macWin->grafPtr = NULL; - macWin->context = NULL; - macWin->size = CGSizeZero; - if (Tk_IsTopLevel(macWin->winPtr)) { - /* - * This will be set when we are mapped. - */ - - macWin->xOff = 0; - macWin->yOff = 0; - macWin->toplevel = macWin; - } else { - macWin->xOff = winPtr->parentPtr->privatePtr->xOff + - winPtr->parentPtr->changes.border_width + - winPtr->changes.x; - macWin->yOff = winPtr->parentPtr->privatePtr->yOff + - winPtr->parentPtr->changes.border_width + - winPtr->changes.y; - macWin->toplevel = winPtr->parentPtr->privatePtr->toplevel; - } - macWin->toplevel->referenceCount++; - } - return (Window) macWin; -} - -/* - *---------------------------------------------------------------------- - * - * TkpUseWindow -- - * - * 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 - * invoked by an embedded application to specify the window in which it - * is embedded. - * - * Results: - * The return value is normally TCL_OK. If an error occurs (such as - * string not being a valid window spec), then the return value is - * TCL_ERROR and an error message is left in the interp's result if - * interp is non-NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkpUseWindow( - 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 - * associated X window. */ - const char *string) /* String identifying an X window to use for - * tkwin; must be an integer value. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - TkWindow *usePtr; - MacDrawable *parent, *macWin; - Container *containerPtr; - - if (winPtr->window != None) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "can't modify container after widget is created", -1)); - Tcl_SetErrorCode(interp, "TK", "EMBED", "POST_CREATE", NULL); - return TCL_ERROR; - } - - /* - * Decode the container pointer, and look for it among the list of - * available containers. - * - * N.B. For now, we are limiting the containers to be in the same Tk - * application as tkwin, since otherwise they would not be in our list of - * containers. - */ - - if (Tcl_GetInt(interp, string, (int*) &parent) != TCL_OK) { - return TCL_ERROR; - } - - usePtr = (TkWindow *) Tk_IdToWindow(winPtr->display, (Window) parent); - if (usePtr != NULL && !(usePtr->flags & TK_CONTAINER)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" doesn't have -container option set", - usePtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "EMBED", "CONTAINER", NULL); - return TCL_ERROR; - } - - /* - * The code below can probably be simplified given we have already - * discovered 'usePtr' above. - */ - - /* - * Save information about the container and the embedded window in a - * Container structure. Currently, there must already be an existing - * Container structure, since we only allow the case where both container - * and embedded app. are in the same process. - */ - - for (containerPtr = firstContainerPtr; containerPtr != NULL; - containerPtr = containerPtr->nextPtr) { - if (containerPtr->parent == (Window) parent) { - winPtr->flags |= TK_BOTH_HALVES; - containerPtr->parentPtr->flags |= TK_BOTH_HALVES; - break; - } - } - - /* - * Make the embedded window. - */ - - macWin = ckalloc(sizeof(MacDrawable)); - if (macWin == NULL) { - winPtr->privatePtr = NULL; - return TCL_ERROR; - } - - macWin->winPtr = winPtr; - winPtr->privatePtr = macWin; - - /* - * The grafPtr will be NULL for a Tk in Tk embedded window. It is none of - * our business what it is for a Tk not in Tk embedded window, but we will - * initialize it to NULL, and let the registerWinProc set it. In any case, - * you must always use TkMacOSXGetDrawablePort to get the portPtr. It will - * correctly find the container's port. - */ - - macWin->grafPtr = NULL; - macWin->context = NULL; - macWin->size = CGSizeZero; - macWin->visRgn = NULL; - macWin->aboveVisRgn = NULL; - macWin->drawRect = CGRectNull; - macWin->referenceCount = 0; - macWin->flags = TK_CLIP_INVALID; - macWin->toplevel = macWin; - macWin->toplevel->referenceCount++; - - winPtr->flags |= TK_EMBEDDED; - - /* - * Make a copy of the TK_EMBEDDED flag, since sometimes we need this to - * get the port after the TkWindow structure has been freed. - */ - - macWin->flags |= TK_EMBEDDED; - - /* - * Now check whether it is embedded in another Tk widget. If not (the - * first case below) we see if there is an in-process embedding handler - * registered, and if so, let that fill in the rest of the macWin. - */ - - if (containerPtr == NULL) { - /* - * If someone has registered an in process embedding handler, then - * see if it can handle this window... - */ - - if (tkMacOSXEmbedHandler == NULL || - tkMacOSXEmbedHandler->registerWinProc((int) parent, - (Tk_Window) winPtr) != TCL_OK) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "The window ID %s does not correspond to a valid Tk Window", - string)); - Tcl_SetErrorCode(interp, "TK", "EMBED", "HANDLE", NULL); - return TCL_ERROR; - } else { - containerPtr = ckalloc(sizeof(Container)); - - containerPtr->parentPtr = NULL; - containerPtr->embedded = (Window) macWin; - containerPtr->embeddedPtr = macWin->winPtr; - containerPtr->nextPtr = firstContainerPtr; - firstContainerPtr = containerPtr; - } - } else { - /* - * The window is embedded in another Tk window. - */ - - macWin->xOff = parent->winPtr->privatePtr->xOff + - parent->winPtr->changes.border_width + - winPtr->changes.x; - macWin->yOff = parent->winPtr->privatePtr->yOff + - parent->winPtr->changes.border_width + - winPtr->changes.y; - - /* - * Finish filling up the container structure with the embedded - * window's information. - */ - - containerPtr->embedded = (Window) macWin; - containerPtr->embeddedPtr = macWin->winPtr; - - /* - * Create an event handler to clean up the Container structure when - * tkwin is eventually deleted. - */ - - Tk_CreateEventHandler(tkwin, StructureNotifyMask, EmbeddedEventProc, - winPtr); - } - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkpMakeContainer -- - * - * This procedure is called to indicate that a particular window will be - * a container for an embedded application. This changes certain aspects - * of the window's behavior, such as whether it will receive events - * anymore. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpMakeContainer( - Tk_Window tkwin) /* Token for a window that is about to become - * a container. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - Container *containerPtr; - - /* - * Register the window as a container so that, for example, we can make - * sure the argument to -use is valid. - */ - - Tk_MakeWindowExist(tkwin); - containerPtr = ckalloc(sizeof(Container)); - containerPtr->parent = Tk_WindowId(tkwin); - containerPtr->parentPtr = winPtr; - containerPtr->embedded = None; - containerPtr->embeddedPtr = NULL; - containerPtr->nextPtr = firstContainerPtr; - firstContainerPtr = containerPtr; - winPtr->flags |= TK_CONTAINER; - - /* - * Request SubstructureNotify events so that we can find out when the - * embedded application creates its window or attempts to resize it. Also - * watch Configure events on the container so that we can resize the child - * to match. Also, pass activate events from the container down to the - * embedded toplevel. - */ - - Tk_CreateEventHandler(tkwin, - SubstructureNotifyMask|SubstructureRedirectMask, - ContainerEventProc, winPtr); - Tk_CreateEventHandler(tkwin, StructureNotifyMask, EmbedStructureProc, - containerPtr); - Tk_CreateEventHandler(tkwin, ActivateMask, EmbedActivateProc, - containerPtr); - Tk_CreateEventHandler(tkwin, FocusChangeMask, EmbedFocusProc, - containerPtr); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXContainerId -- - * - * Given an embedded window, this procedure returns the MacDrawable - * identifier for the associated container window. - * - * Results: - * The return value is the MacDrawable for winPtr's container window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MacDrawable * -TkMacOSXContainerId( - TkWindow *winPtr) /* Tk's structure for an embedded window. */ -{ - Container *containerPtr; - - for (containerPtr = firstContainerPtr; containerPtr != NULL; - containerPtr = containerPtr->nextPtr) { - if (containerPtr->embeddedPtr == winPtr) { - return (MacDrawable *) containerPtr->parent; - } - } - Tcl_Panic("TkMacOSXContainerId couldn't find window"); - return None; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetHostToplevel -- - * - * Given the TkWindow, return the MacDrawable for the outermost toplevel - * containing it. This will be a real Macintosh window. - * - * Results: - * Returns a MacDrawable corresponding to a Macintosh Toplevel - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MacDrawable * -TkMacOSXGetHostToplevel( - TkWindow *winPtr) /* Tk's structure for a window. */ -{ - TkWindow *contWinPtr, *topWinPtr; - - topWinPtr = winPtr->privatePtr->toplevel->winPtr; - if (!Tk_IsEmbedded(topWinPtr)) { - return winPtr->privatePtr->toplevel; - } - contWinPtr = TkpGetOtherWindow(topWinPtr); - - /* - * TODO: Here we should handle out of process embedding. - */ - - if (contWinPtr == NULL) { - return None; - } - return TkMacOSXGetHostToplevel(contWinPtr); -} - -/* - *---------------------------------------------------------------------- - * - * TkpClaimFocus -- - * - * This procedure is invoked when someone asks for the input focus to be - * put on a window in an embedded application, but the application - * doesn't currently have the focus. It requests the input focus from the - * container application. - * - * Results: - * None. - * - * Side effects: - * The input focus may change. - * - *---------------------------------------------------------------------- - */ - -void -TkpClaimFocus( - TkWindow *topLevelPtr, /* Top-level window containing desired focus - * window; should be embedded. */ - int force) /* One means that the container should claim - * the focus if it doesn't currently have - * it. */ -{ - XEvent event; - Container *containerPtr; - - if (!(topLevelPtr->flags & TK_EMBEDDED)) { - return; - } - - for (containerPtr = firstContainerPtr; - containerPtr->embeddedPtr != topLevelPtr; - containerPtr = containerPtr->nextPtr) { - /* Empty loop body. */ - } - - event.xfocus.type = FocusIn; - event.xfocus.serial = LastKnownRequestProcessed(topLevelPtr->display); - event.xfocus.send_event = 1; - event.xfocus.display = topLevelPtr->display; - event.xfocus.window = containerPtr->parent; - event.xfocus.mode = EMBEDDED_APP_WANTS_FOCUS; - event.xfocus.detail = force; - Tk_QueueWindowEvent(&event,TCL_QUEUE_TAIL); -} - -/* - *---------------------------------------------------------------------- - * - * TkpTestembedCmd -- - * - * This procedure implements the "testembed" command. It returns some or - * all of the information in the list pointed to by firstContainerPtr. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkpTestembedCmd( - ClientData clientData, /* Main window for application. */ - Tcl_Interp *interp, /* Current interpreter. */ - int argc, /* Number of arguments. */ - const char **argv) /* Argument strings. */ -{ - int all; - Container *containerPtr; - Tcl_DString dString; - char buffer[50]; - - if ((argc > 1) && (strcmp(argv[1], "all") == 0)) { - all = 1; - } else { - all = 0; - } - Tcl_DStringInit(&dString); - for (containerPtr = firstContainerPtr; containerPtr != NULL; - containerPtr = containerPtr->nextPtr) { - Tcl_DStringStartSublist(&dString); - if (containerPtr->parent == None) { - Tcl_DStringAppendElement(&dString, ""); - } else if (all) { - sprintf(buffer, "0x%x", (int) containerPtr->parent); - Tcl_DStringAppendElement(&dString, buffer); - } else { - Tcl_DStringAppendElement(&dString, "XXX"); - } - if (containerPtr->parentPtr == NULL) { - Tcl_DStringAppendElement(&dString, ""); - } else { - Tcl_DStringAppendElement(&dString, - containerPtr->parentPtr->pathName); - } - if (containerPtr->embedded == None) { - Tcl_DStringAppendElement(&dString, ""); - } else if (all) { - sprintf(buffer, "0x%x", (int) containerPtr->embedded); - Tcl_DStringAppendElement(&dString, buffer); - } else { - Tcl_DStringAppendElement(&dString, "XXX"); - } - if (containerPtr->embeddedPtr == NULL) { - Tcl_DStringAppendElement(&dString, ""); - } else { - Tcl_DStringAppendElement(&dString, - containerPtr->embeddedPtr->pathName); - } - Tcl_DStringEndSublist(&dString); - } - Tcl_DStringResult(interp, &dString); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkpRedirectKeyEvent -- - * - * This procedure is invoked when a key press or release event arrives - * for an application that does not believe it owns the input focus. This - * can happen because of embedding; for example, X can send an event to - * an embedded application when the real focus window is in the container - * application and is an ancestor of the container. This procedure's job - * is to forward the event back to the application where it really - * belongs. - * - * Results: - * None. - * - * Side effects: - * The event may get sent to a different application. - * - *---------------------------------------------------------------------- - */ - -void -TkpRedirectKeyEvent( - TkWindow *winPtr, /* Window to which the event was originally - * reported. */ - XEvent *eventPtr) /* X event to redirect (should be KeyPress or - * KeyRelease). */ -{ - /* TODO: Implement this or decide it definitely needs no implementation */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetOtherWindow -- - * - * 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 - * embedded window, and vice versa. If the "other" window isn't in this - * process, NULL is returned. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkWindow * -TkpGetOtherWindow( - TkWindow *winPtr) /* Tk's structure for a container or embedded - * window. */ -{ - Container *containerPtr; - - /* - * TkpGetOtherWindow returns NULL if both windows are not in the same - * process... - */ - - if (!(winPtr->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; - } - } - return NULL; -} - -/* - *---------------------------------------------------------------------- - * - * EmbeddedEventProc -- - * - * This procedure is invoked by the Tk event dispatcher when various - * useful events are received for a window that is embedded in - * another application. - * - * Results: - * None. - * - * Side effects: - * Our internal state gets cleaned up when an embedded window is - * destroyed. - * - *---------------------------------------------------------------------- - */ - -static void -EmbeddedEventProc( - ClientData clientData, /* Token for container window. */ - XEvent *eventPtr) /* ResizeRequest event. */ -{ - TkWindow *winPtr = clientData; - - if (eventPtr->type == DestroyNotify) { - EmbedWindowDeleted(winPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * ContainerEventProc -- - * - * This procedure is invoked by the Tk event dispatcher when various - * useful events are received for the children of a container window. It - * forwards relevant information, such as geometry requests, from the - * events into the container's application. - * - * NOTE: on the Mac, only the DestroyNotify branch is ever taken. We - * don't synthesize the other events. - * - * Results: - * None. - * - * Side effects: - * Depends on the event. For example, when ConfigureRequest events occur, - * geometry information gets set for the container window. - * - *---------------------------------------------------------------------- - */ - -static void -ContainerEventProc( - ClientData clientData, /* Token for container window. */ - XEvent *eventPtr) /* ResizeRequest event. */ -{ - TkWindow *winPtr = clientData; - Container *containerPtr; - Tk_ErrorHandler errHandler; - - /* - * Ignore any X protocol errors that happen in this procedure (almost any - * operation could fail, for example, if the embedded application has - * deleted its window). - */ - - errHandler = Tk_CreateErrorHandler(eventPtr->xfocus.display, -1, - -1, -1, NULL, NULL); - - /* - * Find the Container structure associated with the parent window. - */ - - for (containerPtr = firstContainerPtr; - containerPtr->parent != eventPtr->xmaprequest.parent; - containerPtr = containerPtr->nextPtr) { - if (containerPtr == NULL) { - Tcl_Panic("ContainerEventProc couldn't find Container record"); - } - } - - if (eventPtr->type == CreateNotify) { - /* - * A new child window has been created in the container. Record its id - * in the Container structure (if more than one child is created, just - * remember the last one and ignore the earlier ones). - */ - - containerPtr->embedded = eventPtr->xcreatewindow.window; - } else if (eventPtr->type == ConfigureRequest) { - if ((eventPtr->xconfigurerequest.x != 0) - || (eventPtr->xconfigurerequest.y != 0)) { - /* - * The embedded application is trying to move itself, which isn't - * legal. At this point, the window hasn't actually moved, but we - * need to send it a ConfigureNotify event to let it know that its - * request has been denied. If the embedded application was also - * trying to resize itself, a ConfigureNotify will be sent by the - * geometry management code below, so we don't need to do - * anything. Otherwise, generate a synthetic event. - */ - - if ((eventPtr->xconfigurerequest.width == winPtr->changes.width) - && (eventPtr->xconfigurerequest.height - == winPtr->changes.height)) { - EmbedSendConfigure(containerPtr); - } - } - EmbedGeometryRequest(containerPtr, - eventPtr->xconfigurerequest.width, - eventPtr->xconfigurerequest.height); - } else if (eventPtr->type == MapRequest) { - /* - * The embedded application's map request was ignored and simply - * passed on to us, so we have to map the window for it to appear on - * the screen. - */ - - XMapWindow(eventPtr->xmaprequest.display, - eventPtr->xmaprequest.window); - } else if (eventPtr->type == DestroyNotify) { - /* - * The embedded application is gone. Destroy the container window. - */ - - Tk_DestroyWindow((Tk_Window) winPtr); - } - Tk_DeleteErrorHandler(errHandler); -} - -/* - *---------------------------------------------------------------------- - * - * EmbedStructureProc -- - * - * This procedure is invoked by the Tk event dispatcher when a container - * window owned by this application gets resized (and also at several - * other times that we don't care about). This procedure reflects the - * size change in the embedded window that corresponds to the container. - * - * Results: - * None. - * - * Side effects: - * The embedded window gets resized to match the container. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedStructureProc( - ClientData clientData, /* Token for container window. */ - XEvent *eventPtr) /* ResizeRequest event. */ -{ - Container *containerPtr = clientData; - Tk_ErrorHandler errHandler; - - if (eventPtr->type == ConfigureNotify) { - if (containerPtr->embedded != None) { - /* - * Ignore errors, since the embedded application could have - * deleted its window. - */ - - 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_DeleteErrorHandler(errHandler); - } - } else if (eventPtr->type == DestroyNotify) { - EmbedWindowDeleted(containerPtr->parentPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * EmbedActivateProc -- - * - * This procedure is invoked by the Tk event dispatcher when Activate and - * Deactivate events occur for a container window owned by this - * application. It is responsible for forwarding an activate event down - * into the embedded toplevel. - * - * Results: - * None. - * - * Side effects: - * The X focus may change. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedActivateProc( - ClientData clientData, /* Token for container window. */ - XEvent *eventPtr) /* ResizeRequest event. */ -{ - Container *containerPtr = clientData; - - if (containerPtr->embeddedPtr != NULL) { - if (eventPtr->type == ActivateNotify) { - TkGenerateActivateEvents(containerPtr->embeddedPtr,1); - } else if (eventPtr->type == DeactivateNotify) { - TkGenerateActivateEvents(containerPtr->embeddedPtr,0); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * EmbedFocusProc -- - * - * This procedure is invoked by the Tk event dispatcher when FocusIn and - * FocusOut events occur for a container window owned by this - * application. It is responsible for moving the focus back and forth - * between a container application and an embedded application. - * - * Results: - * None. - * - * Side effects: - * The X focus may change. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedFocusProc( - ClientData clientData, /* Token for container window. */ - XEvent *eventPtr) /* ResizeRequest event. */ -{ - Container *containerPtr = clientData; - Display *display; - XEvent event; - - if (containerPtr->embeddedPtr != NULL) { - display = Tk_Display(containerPtr->parentPtr); - event.xfocus.serial = LastKnownRequestProcessed(display); - event.xfocus.send_event = false; - event.xfocus.display = display; - event.xfocus.mode = NotifyNormal; - event.xfocus.window = containerPtr->embedded; - - if (eventPtr->type == FocusIn) { - /* - * The focus just arrived at the container. Change the X focus to - * move it to the embedded application, if there is one. Ignore X - * errors that occur during this operation (it's possible that the - * new focus window isn't mapped). - */ - - event.xfocus.detail = NotifyNonlinear; - event.xfocus.type = FocusIn; - } else if (eventPtr->type == FocusOut) { - /* - * When the container gets a FocusOut event, it has to tell the - * embedded app that it has lost the focus. - */ - - event.xfocus.type = FocusOut; - event.xfocus.detail = NotifyNonlinear; - } - - Tk_QueueWindowEvent(&event, TCL_QUEUE_MARK); - } -} - -/* - *---------------------------------------------------------------------- - * - * EmbedGeometryRequest -- - * - * This procedure is invoked when an embedded application requests a - * particular size. It processes the request (which may or may not - * actually honor the request) and reflects the results back to the - * embedded application. - * - * NOTE: On the Mac, this is a stub, since we don't synthesize - * ConfigureRequest events. - * - * Results: - * None. - * - * Side effects: - * If we deny the child's size change request, a Configure event is - * synthesized to let the child know how big it ought to be. Events get - * processed while we're waiting for the geometry managers to do their - * thing. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedGeometryRequest( - Container *containerPtr, /* Information about the embedding. */ - int width, int height) /* Size that the child has requested. */ -{ - TkWindow *winPtr = containerPtr->parentPtr; - - /* - * Forward the requested size into our geometry management hierarchy via - * the container window. We need to send a Configure event back to the - * embedded application if we decide not to honor its request; to make - * this happen, process all idle event handlers synchronously here (so - * that the geometry managers have had a chance to do whatever they want - * to do), and if the window's size didn't change then generate a - * configure event. - */ - - Tk_GeometryRequest((Tk_Window) winPtr, width, height); - while (Tcl_DoOneEvent(TCL_IDLE_EVENTS)) { - /* Empty loop body. */ - } - if ((winPtr->changes.width != width) - || (winPtr->changes.height != height)) { - EmbedSendConfigure(containerPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * EmbedSendConfigure -- - * - * This is currently a stub. It is called to notify an embedded - * application of its current size and location. This procedure is called - * when the embedded application made a geometry request that we did not - * grant, so that the embedded application knows that its geometry didn't - * change after all. It is a response to ConfigureRequest events, which - * we do not currently synthesize on the Mac - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedSendConfigure( - Container *containerPtr) /* Information about the embedding. */ -{ -} - -/* - *---------------------------------------------------------------------- - * - * EmbedWindowDeleted -- - * - * This procedure is invoked when a window involved in embedding (as - * either the container or the embedded application) is destroyed. It - * cleans up the Container structure for the window. - * - * Results: - * None. - * - * Side effects: - * A Container structure may be freed. - * - *---------------------------------------------------------------------- - */ - -static void -EmbedWindowDeleted( - TkWindow *winPtr) /* Tk's information about window that - * was deleted. */ -{ - Container *containerPtr, *prevPtr; - - /* - * Find the Container structure for this window. Delete the information - * about the embedded application and free the container's record. - */ - - prevPtr = NULL; - containerPtr = firstContainerPtr; - while (1) { - if (containerPtr->embeddedPtr == winPtr) { - /* - * We also have to destroy our parent, to clean up the container. - * Fabricate an event to do this. - */ - - if (containerPtr->parentPtr != NULL && - containerPtr->parentPtr->flags & TK_BOTH_HALVES) { - XEvent event; - - event.xany.serial = - Tk_Display(containerPtr->parentPtr)->request; - event.xany.send_event = False; - event.xany.display = Tk_Display(containerPtr->parentPtr); - - event.xany.type = DestroyNotify; - event.xany.window = containerPtr->parent; - event.xdestroywindow.event = containerPtr->parent; - Tk_QueueWindowEvent(&event, TCL_QUEUE_HEAD); - } - - containerPtr->embedded = None; - containerPtr->embeddedPtr = NULL; - break; - } - if (containerPtr->parentPtr == winPtr) { - containerPtr->parentPtr = NULL; - break; - } - prevPtr = containerPtr; - containerPtr = containerPtr->nextPtr; - } - if ((containerPtr->embeddedPtr == NULL) - && (containerPtr->parentPtr == NULL)) { - if (prevPtr == NULL) { - firstContainerPtr = containerPtr->nextPtr; - } else { - prevPtr->nextPtr = containerPtr->nextPtr; - } - ckfree(containerPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpShowBusyWindow, TkpHideBusyWindow, TkpMakeTransparentWindowExist, - * TkpCreateBusy -- - * - * Portability layer for busy windows. Holds platform-specific gunk for - * the [tk busy] command, which is currently a dummy implementation for - * OSX/Aqua. The individual functions are supposed to do the following: - * - * TkpShowBusyWindow -- - * Make the busy window appear. - * - * TkpHideBusyWindow -- - * Make the busy window go away. - * - * TkpMakeTransparentWindowExist -- - * Actually make a transparent window. - * - * TkpCreateBusy -- - * Creates the platform-specific part of a busy window structure. - * - *---------------------------------------------------------------------- - */ - -void -TkpShowBusyWindow( - TkBusy busy) -{ -} - -void -TkpHideBusyWindow( - TkBusy busy) -{ -} - -void -TkpMakeTransparentWindowExist( - Tk_Window tkwin, /* Token for window. */ - Window parent) /* Parent window. */ -{ -} - -void -TkpCreateBusy( - Tk_FakeWin *winPtr, - Tk_Window tkRef, - Window* parentPtr, - Tk_Window tkParent, - TkBusy busy) -{ -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ diff --git a/carbon/tkMacOSXEntry.c b/carbon/tkMacOSXEntry.c deleted file mode 100644 index 0c4211e..0000000 --- a/carbon/tkMacOSXEntry.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * tkMacOSXEntry.c -- - * - * This file implements the native aqua entry widget. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXDefault.h" -#include "tkEntry.h" - -static ThemeButtonKind ComputeIncDecParameters(int height, int *width); - -/* - *-------------------------------------------------------------- - * - * ComputeIncDecParameters -- - * - * This procedure figures out which of the kThemeIncDec buttons to use. - * It also sets width to the width of the IncDec button. - * - * Results: - * The ThemeButtonKind of the button we should use. - * - * Side effects: - * May draw the entry border into pixmap. - * - *-------------------------------------------------------------- - */ - -static ThemeButtonKind -ComputeIncDecParameters( - int height, - int *width) -{ - ThemeButtonKind kind; - - TK_IF_HI_TOOLBOX (3, - if (height < 11 || height > 28) { - *width = 0; - kind = (ThemeButtonKind) 0; - } else { - if (height >= 21) { - *width = 13; - kind = kThemeIncDecButton; - } else if (height >= 18) { - *width = 12; - kind = kThemeIncDecButtonSmall; - } else { - *width = 11; - kind = kThemeIncDecButtonMini; - } - } - ) TK_ELSE_HI_TOOLBOX (3, - if (height < 21 || height > 28) { - *width = 0; - kind = (ThemeButtonKind) 0; - } else { - *width = 13; - kind = kThemeIncDecButton; - } - ) TK_ENDIF - - return kind; -} - -/* - *-------------------------------------------------------------- - * - * TkpDrawEntryBorderAndFocus -- - * - * This procedure redraws the border of an entry window. It overrides the - * generic border drawing code if the entry widget parameters are such - * that the native widget drawing is a good fit. This version just - * returns 1, so platforms that don't do special native drawing don't - * have to implement it. - * - * Results: - * 1 if it has drawn the border, 0 if not. - * - * Side effects: - * May draw the entry border into pixmap. - * - *-------------------------------------------------------------- - */ - -int -TkpDrawEntryBorderAndFocus( - Entry *entryPtr, - Drawable d, - int isSpinbox) -{ - Rect bounds; - TkMacOSXDrawingContext dc; - GC bgGC; - Tk_Window tkwin = entryPtr->tkwin; - ThemeDrawState drawState; - int oldWidth = 0; - MacDrawable *macDraw = (MacDrawable *) d; - - /* - * I use 6 as the borderwidth. 2 of the 5 go into the actual frame the 3 - * are because the Mac OS Entry widgets leave more space around the Text - * than Tk does on X11. - */ - - if (entryPtr->borderWidth != MAC_OSX_ENTRY_BORDER - || entryPtr->highlightWidth != MAC_OSX_FOCUS_WIDTH - || entryPtr->relief != MAC_OSX_ENTRY_RELIEF) { - return 0; - } - - /* - * For the spinbox, we have to make the entry part smaller by the size of - * the buttons. We also leave 2 pixels to the left (as per the HIG) and - * space for one pixel to the right, 'cause it makes the buttons look - * nicer. - */ - - if (isSpinbox) { - ThemeButtonKind buttonKind; - int incDecWidth; - - oldWidth = Tk_Width(tkwin); - - buttonKind = ComputeIncDecParameters(Tk_Height(tkwin) - - 2 * MAC_OSX_FOCUS_WIDTH, &incDecWidth); - Tk_Width(tkwin) -= incDecWidth + 1; - } - - /* - * The focus ring is drawn with an Alpha at the outside part of the ring, - * so we have to draw over the edges of the ring before drawing the focus - * or the text will peep through. - */ - - bgGC = Tk_GCForColor(entryPtr->highlightBgColorPtr, d); - TkDrawInsetFocusHighlight(entryPtr->tkwin, bgGC, MAC_OSX_FOCUS_WIDTH, d, 0); - - /* - * Inset the entry Frame by the maximum width of the focus rect, which is - * 3 according to the Carbon docs. - */ - - bounds.left = macDraw->xOff + MAC_OSX_FOCUS_WIDTH; - bounds.top = macDraw->yOff + MAC_OSX_FOCUS_WIDTH; - bounds.right = macDraw->xOff + Tk_Width(tkwin) - MAC_OSX_FOCUS_WIDTH; - bounds.bottom = macDraw->yOff + Tk_Height(tkwin) - MAC_OSX_FOCUS_WIDTH; - if (entryPtr->state == STATE_DISABLED) { - drawState = kThemeStateInactive; - } else { - drawState = kThemeStateActive; - } - if (!TkMacOSXSetupDrawingContext(d, NULL, 0, &dc)) { - return 0; - } - DrawThemeEditTextFrame(&bounds, drawState); - if (entryPtr->flags & GOT_FOCUS) { - /* - * Don't call this if we don't have the focus, because then it erases - * the focus rect to white, but we've already drawn the - * highlightbackground above. - */ - - DrawThemeFocusRect(&bounds, (entryPtr->flags & GOT_FOCUS) != 0); - } - if (isSpinbox) { - Tk_Width(tkwin) = oldWidth; - } - TkMacOSXRestoreDrawingContext(&dc); - return 1; -} - -/* - *-------------------------------------------------------------- - * - * TkpDrawSpinboxButtons -- - * - * This procedure redraws the buttons of an spinbox widget. It overrides - * the generic button drawing code if the spinbox widget parameters are - * such that the native widget drawing is a good fit. This version just - * returns 0, so platforms that don't do special native drawing don't - * have to implement it. - * - * Results: - * 1 if it has drawn the border, 0 if not. - * - * Side effects: - * May draw the entry border into pixmap. - * - *-------------------------------------------------------------- - */ - -int -TkpDrawSpinboxButtons( - Spinbox *sbPtr, - Drawable d) -{ - Rect inBounds; - ThemeButtonKind inKind; - ThemeButtonDrawInfo inNewInfo; - ThemeButtonDrawInfo * inPrevInfo = NULL; - ThemeEraseUPP inEraseProc = NULL; - ThemeButtonDrawUPP inLabelProc = NULL; - UInt32 inUserData = 0; - Tk_Window tkwin = sbPtr->entry.tkwin; - int height = Tk_Height(tkwin); - int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH; - int incDecWidth; - TkMacOSXDrawingContext dc; - XRectangle rects[1]; - GC bgGC; - MacDrawable *macDraw = (MacDrawable *) d; - - /* - * FIXME: RAISED really makes more sense - */ - - if (sbPtr->buRelief != TK_RELIEF_FLAT) { - return 0; - } - - /* - * The actual sizes of the IncDec button are 21 for the normal, 18 for the - * small and 15 for the mini. But the spinbox still looks okay if the - * entry is a little bigger than this, so we give it a little slop. - */ - - inKind = ComputeIncDecParameters(buttonHeight, &incDecWidth); - if (inKind == (ThemeButtonKind) 0) { - return 0; - } - - if (sbPtr->entry.state == STATE_DISABLED) { - inNewInfo.state = kThemeStateInactive; - inNewInfo.value = kThemeButtonOff; - } else if (sbPtr->selElement == SEL_BUTTONUP) { - inNewInfo.state = kThemeStatePressedUp; - inNewInfo.value = kThemeButtonOn; - } else if (sbPtr->selElement == SEL_BUTTONDOWN) { - inNewInfo.state = kThemeStatePressedDown; - inNewInfo.value = kThemeButtonOn; - } else { - inNewInfo.state = kThemeStateActive; - inNewInfo.value = kThemeButtonOff; - } - - inNewInfo.adornment = kThemeAdornmentNone; - - inBounds.left = macDraw->xOff + Tk_Width(tkwin) - incDecWidth - 1; - inBounds.right = macDraw->xOff + Tk_Width(tkwin) - 1; - inBounds.top = macDraw->yOff + MAC_OSX_FOCUS_WIDTH; - inBounds.bottom = macDraw->yOff + Tk_Height(tkwin) - MAC_OSX_FOCUS_WIDTH; - - /* - * We had to make the entry part of the window smaller so that we wouldn't - * overdraw the spin buttons with the focus highlight. So now we have to - * draw the highlightbackground. - */ - - bgGC = Tk_GCForColor(sbPtr->entry.highlightBgColorPtr, d); - rects[0].x = inBounds.left; - rects[0].y = 0; - rects[0].width = Tk_Width(tkwin); - rects[0].height = Tk_Height(tkwin); - XFillRectangles(Tk_Display(tkwin), d, bgGC, rects, 1); - - if (!TkMacOSXSetupDrawingContext(d, NULL, 0, &dc)) { - return 0; - } - ChkErr(DrawThemeButton, &inBounds, inKind, &inNewInfo, inPrevInfo, - inEraseProc, inLabelProc, inUserData); - TkMacOSXRestoreDrawingContext(&dc); - return 1; -} diff --git a/carbon/tkMacOSXEvent.c b/carbon/tkMacOSXEvent.c deleted file mode 100644 index d39a347..0000000 --- a/carbon/tkMacOSXEvent.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * tkMacOSXEvent.c -- - * - * This file contains the basic Mac OS X Event handling routines. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXFlushWindows -- - * - * This routine flushes all the Carbon windows of the application. It is - * called by XSync(). - * - * Results: - * None. - * - * Side effects: - * Flushes all Carbon windows - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXFlushWindows(void) -{ - WindowRef wRef = GetWindowList(); - - while (wRef) { - TK_IF_MAC_OS_X_API (3, HIWindowFlush, - ChkErr(HIWindowFlush, wRef); - ) TK_ELSE_MAC_OS_X (3, - CGrafPtr portPtr = GetWindowPort(wRef); - - if (QDIsPortBuffered(portPtr)) { - QDFlushPortBuffer(portPtr, NULL); - } - ) TK_ENDIF - wRef = GetNextWindow(wRef); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessEvent -- - * - * This dispatches a filtered Carbon event to the appropriate handler - * - * Note on MacEventStatus.stopProcessing: Please be conservative in the - * individual handlers and don't assume the event is fully handled unless - * you *really* need to ensure that other handlers don't see the event - * anymore. Some OS manager or library might be interested in events even - * after they are already handled on the Tk level. - * - * Results: - * 0 on success - * -1 on failure - * - * Side effects: - * Converts a Carbon event to a Tk event - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - switch (eventPtr->eClass) { - case kEventClassMouse: - TkMacOSXProcessMouseEvent(eventPtr, statusPtr); - break; - case kEventClassWindow: - TkMacOSXProcessWindowEvent(eventPtr, statusPtr); - break; - case kEventClassKeyboard: - TkMacOSXProcessKeyboardEvent(eventPtr, statusPtr); - break; - case kEventClassApplication: - TkMacOSXProcessApplicationEvent(eventPtr, statusPtr); - break; - case kEventClassAppearance: - TkMacOSXProcessAppearanceEvent(eventPtr, statusPtr); - break; - case kEventClassMenu: - TkMacOSXProcessMenuEvent(eventPtr, statusPtr); - break; - case kEventClassCommand: - TkMacOSXProcessCommandEvent(eventPtr, statusPtr); - break; - case kEventClassFont: - TkMacOSXProcessFontEvent(eventPtr, statusPtr); - break; - default: { - TkMacOSXDbgMsg("Unrecognised event: %s", - TkMacOSXCarbonEventToAscii(eventPtr->eventRef)); - break; - } - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessMenuEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessMenuEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - int menuContext; - OSStatus err; - MenuRef menu; - MenuItemIndex index; - - switch (eventPtr->eKind) { - case kEventMenuBeginTracking: - case kEventMenuEndTracking: - case kEventMenuOpening: - case kEventMenuTargetItem: - break; - default: - return 0; - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuContext, typeUInt32, NULL, sizeof(menuContext), - NULL, &menuContext); - if (err != noErr) { - return 0; - } - - if ((menuContext & kMenuContextMenuBarTracking) || - (menuContext & kMenuContextPopUpTracking)) { - switch (eventPtr->eKind) { - case kEventMenuBeginTracking: - TkMacOSXClearMenubarActive(); - - /* - * Handle -postcommand - */ - - TkMacOSXPreprocessMenu(); - TkMacOSXTrackingLoop(1); - break; - case kEventMenuEndTracking: - TkMacOSXTrackingLoop(0); - break; - case kEventMenuOpening: - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeMenuRef, NULL, sizeof(menu), - NULL, &menu); - if (err != noErr) { - return 0; - } - TkMacOSXClearActiveMenu(menu); - return TkMacOSXGenerateParentMenuSelectEvent(menu); - case kEventMenuTargetItem: - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeMenuRef, NULL, sizeof(menu), - NULL, &menu); - if (err != noErr) { - return 0; - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuItemIndex, typeMenuItemIndex, NULL, - sizeof(index), NULL, &index); - if (err != noErr) { - return 0; - } - return TkMacOSXGenerateMenuSelectEvent(menu, index); - } - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessCommandEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessCommandEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - HICommand command; - int menuContext; - OSStatus err; - - switch (eventPtr->eKind) { - case kEventCommandProcess: - case kEventCommandUpdateStatus: - break; - default: - return 0; - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeHICommand, NULL, sizeof(command), - NULL, &command); - if (err != noErr) { - return 0; - } - - if (command.attributes & kHICommandFromMenu) { - if (eventPtr->eKind == kEventCommandProcess) { - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMenuContext, typeUInt32, NULL, - sizeof(menuContext), NULL, &menuContext); - if (err != noErr) { - return 0; - } - - if ((menuContext & kMenuContextMenuBar) && - (menuContext & kMenuContextMenuBarTracking)) { - TkMacOSXHandleMenuSelect(GetMenuID(command.menu.menuRef), - command.menu.menuItemIndex, - (GetCurrentEventKeyModifiers() & optionKey) != 0); - return 1; - } - } else { - Tcl_CmdInfo dummy; - - if (command.commandID == kHICommandPreferences - && eventPtr->interp != NULL) { - if (Tcl_GetCommandInfo(eventPtr->interp, - "::tk::mac::ShowPreferences", &dummy)) { - if (!IsMenuItemEnabled(command.menu.menuRef, - command.menu.menuItemIndex)) { - EnableMenuItem(command.menu.menuRef, - command.menu.menuItemIndex); - } - } else { - if (IsMenuItemEnabled(command.menu.menuRef, - command.menu.menuItemIndex)) { - DisableMenuItem(command.menu.menuRef, - command.menu.menuItemIndex); - } - } - statusPtr->stopProcessing = 1; - return 1; - } - } - } - return 0; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ diff --git a/carbon/tkMacOSXEvent.h b/carbon/tkMacOSXEvent.h deleted file mode 100644 index dc87b5f..0000000 --- a/carbon/tkMacOSXEvent.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * tkMacOSXEvent.h -- - * - * Declarations of Macintosh specific functions for implementing the - * Mac OS X Notifier. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#ifndef _TKMACEVENT -#define _TKMACEVENT - -#ifndef _TKMACINT -#include "tkMacOSXInt.h" -#endif - -typedef struct { - int stopProcessing; - int err; - char errMsg[1024]; -} MacEventStatus; - -/* - * The event information in passed in the following structures - */ -typedef struct { - EventRef eventRef; - UInt32 eClass; /* Defines the class of event : see CarbonEvents.h */ - UInt32 eKind; /* Defines the kind of the event : see CarbonEvents.h */ - Tcl_Interp *interp; /* Interp to handle events in */ - EventHandlerCallRef callRef; -} TkMacOSXEvent; - -MODULE_SCOPE void TkMacOSXFlushWindows(void); -MODULE_SCOPE int TkMacOSXProcessEvent(TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessMouseEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessWindowEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessKeyboardEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessApplicationEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessAppearanceEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessMenuEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessCommandEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXProcessFontEvent(TkMacOSXEvent *e, - MacEventStatus *statusPtr); -MODULE_SCOPE int TkMacOSXKeycodeToUnicode( - UniChar * uniChars, int maxChars, - EventKind eKind, - UInt32 keycode, UInt32 modifiers, - UInt32 * deadKeyStatePtr); - -#endif diff --git a/carbon/tkMacOSXFont.c b/carbon/tkMacOSXFont.c deleted file mode 100644 index 7933fe3..0000000 --- a/carbon/tkMacOSXFont.c +++ /dev/null @@ -1,2678 +0,0 @@ -/* - * tkMacOSXFont.c -- - * - * Contains the Macintosh implementation of the platform-independant - * font package interface. This version uses ATSU instead of Quickdraw. - * - * Copyright 2002-2004 Benjamin Riefenstahl, Benjamin.Riefenstahl@epost.de - * Copyright (c) 2006-2008 Daniel A. Steffen <das@users.sourceforge.net> - * - * Some functions were originally copied verbatim from the QuickDraw version - * of tkMacOSXFont.c, which had these copyright notices: - * - * Copyright (c) 1990-1994 The Regents of the University of California. - * Copyright (c) 1994-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * Todos: - * - * - Get away from Font Manager and Quickdraw functions as much as possible, - * replace with ATS functions instead. - * - * - Use Font Manager functions to translate ids from ATS to Font Manager - * instead of just assuming that they are the same. - * - * - Get a second font register going for fonts that are not assigned to a - * font family by the OS. On my system I have 27 fonts of that type, - * Hebrew, Arabic and Hindi fonts that actually come with the system. - * FMGetFontFamilyInstanceFromFont() returns -981 (kFMInvalidFontFamilyErr) - * for these and they are not listed when enumerating families, but they - * are when enumerating fonts directly. The problem that the OS sees may - * be that at least some of them do not contain any Latin characters. Note - * that such fonts can not be used for controls, because controls - * definitely require a family id (this assertion needs testing). - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXFont.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_FONTS -#endif -*/ - -/* - * Problem: The sum of two parts is not the same as the whole. In particular - * the width of two separately measured strings will usually be larger than - * the width of them pasted together. Tk has a design bug here, because it - * generally assumes that this kind of arithmetic works. - * To workaround this, #define TK_MAC_COALESCE_LINE to 1 below, we then avoid - * lines that tremble and shiver while the cursor passes through them by - * undercutting the system and behind the scenes pasting strings together that - * look like they are on the same line and adjacent and that are drawn with - * the same font. To do this we need some global data. - */ -#define TK_MAC_COALESCE_LINE 0 - -/* - * The following structure represents our Macintosh-specific implementation - * of a font object. - */ - -typedef struct { - TkFont font; /* Stuff used by generic font package. Must - * be first in structure. */ - - /* - * The ATSU view of the font and other text properties. Used for drawing - * and measuring. - */ - - ATSUFontID atsuFontId; /* == FMFont. */ - ATSUTextLayout atsuLayout; /* ATSU layout object, representing the whole - * text that ATSU sees with some option - * bits. */ - ATSUStyle atsuStyle; /* ATSU style object, representing a run of - * text with the same properties. */ - - /* - * The QuickDraw view of the font. Used to configure controls. - */ - - FMFontFamily qdFont; /* == FMFontFamilyId, Carbon replacement for - * QD face numbers. */ - short qdSize; /* Font size in points. */ - short qdStyle; /* QuickDraw style bits. */ -} MacFont; - -/* - * Information about font families, initialized at startup time. Font - * families are described by a mapping from UTF-8 names to MacOS font family - * IDs. The whole list is kept as the sorted array "familyList", allocated - * with ckrealloc(). - * - * Note: This would have been easier, if we could just have used Tcl hash - * arrays. Unfortunately there seems to be no pre-packaged - * non-case-sensitive version of that available. - */ - -typedef struct { - const char * name; - FMFontFamily familyId; -} MacFontFamily; - -static MacFontFamily * familyList = NULL; -static int - familyListNextFree = 0, /* The next free slot in familyList. */ - familyListMaxValid = 0, /* The top of the sorted area. */ - familyListSize = 0; /* The size of the whole array. */ - -/* - * A simple one-shot sub-allocator for fast and efficient allocation of - * strings. Used by the familyList array for the names. These strings are - * only allocated once at startup and never freed. If you ever need to - * re-initialize this, you can just ckfree() all the StringBlocks in the list - * and start over. - */ - -#define STRING_BLOCK_MAX (1024-8) /* Make sizeof(StringBlock) == - * 1024. */ -typedef struct StringBlock { - struct StringBlock *next; /* Starting from "stringMemory" these - * blocks form a linked list. */ - int nextFree; /* Top of the used area in the - * "strings" member. */ - char strings[STRING_BLOCK_MAX]; /* The actual memory managed here. */ -} StringBlock; - -static StringBlock *stringMemory = NULL; - -#if TK_MAC_COALESCE_LINE -static Tcl_DString currentLine; /* The current line as seen so far. This - * contains a Tcl_UniChar DString. */ -static int - currentY = -1, /* The Y position (row in pixels) of the - * current line. */ - currentLeft = -1, /* The left edge (pixels) of the current - * line. */ - currentRight = -1; /* The right edge (pixels) of the current - * line. */ -static const MacFont *currentFontPtr = NULL; - /* The font of the current line. */ -#endif /* TK_MAC_COALESCE_LINE */ - -static int antialiasedTextEnabled; - -/* - * The names for our "native" fonts. - */ - -#define SYSTEMFONT_NAME "system" -#define APPLFONT_NAME "application" -#define MENUITEMFONT_NAME "menu" - -struct SystemFontMapEntry { - const ThemeFontID id; - const char *systemName; - const char *tkName; - const char *tkName1; -}; - -#define ThemeFont(n, ...) { kTheme##n##Font, "system" #n "Font", ##__VA_ARGS__ } -static const struct SystemFontMapEntry systemFontMap[] = { - ThemeFont(System, "TkDefaultFont", "TkIconFont"), - ThemeFont(EmphasizedSystem, "TkCaptionFont"), - ThemeFont(SmallSystem, "TkHeadingFont", "TkTooltipFont"), - ThemeFont(SmallEmphasizedSystem), - ThemeFont(Application, "TkTextFont"), - ThemeFont(Label, "TkSmallCaptionFont"), - ThemeFont(Views), - ThemeFont(MenuTitle), - ThemeFont(MenuItem, "TkMenuFont"), - ThemeFont(MenuItemMark), - ThemeFont(MenuItemCmdKey), - ThemeFont(WindowTitle), - ThemeFont(PushButton), - ThemeFont(UtilityWindowTitle), - ThemeFont(AlertHeader), - ThemeFont(Toolbar), - ThemeFont(MiniSystem), - { kThemeSystemFontDetail, "systemDetailSystemFont" }, - { kThemeSystemFontDetailEmphasized, "systemDetailEmphasizedSystemFont" }, - { -1, NULL } -}; -#undef ThemeFont - -/* - * Procedures used only in this file. - */ - -static void LayoutSetString(const MacFont *fontPtr, - const TkMacOSXDrawingContext *drawingContextPtr, - const UniChar * uchars, int ulen); - -/* - * The actual workers. - */ - -static int MeasureStringWidth(const MacFont *fontPtr, int start, int end); - -#if TK_MAC_COALESCE_LINE -static const Tcl_UniChar *UpdateLineBuffer(const MacFont *fontPtr, - const TkMacOSXDrawingContext *drawingContextPtr, const char *source, - int numBytes, int x, int y, int * offset); -#endif /* TK_MAC_COALESCE_LINE */ - -/* - * Initialization and setup of a font data structure. - */ - -static const char *FamilyNameForFamilyID(FMFontFamily familyId); -static void InitFont(FMFontFamily familyId, const char *familyName, - int size, int qdStyle, MacFont *fontPtr); -static void InitATSUObjects(FMFontFamily familyId, short qdsize, short qdStyle, - ATSUFontID *fontIdPtr, ATSUTextLayout *layoutPtr, ATSUStyle *stylePtr); -static void InitATSUStyle(ATSUFontID fontId, short ptSize, short qdStyle, - ATSUStyle style); -static void SetFontFeatures(ATSUFontID fontId, int fixed, short size, - ATSUStyle style); -static void AdjustFontHeight(MacFont *fontPtr); -static void InitATSULayout(const TkMacOSXDrawingContext *drawingContextPtr, - ATSUTextLayout layout, int fixed); -static void ReleaseFont(MacFont *fontPtr); - -/* - * Finding fonts by name. - */ - -static const MacFontFamily *FindFontFamilyOrAlias(const char *name); -static const MacFontFamily *FindFontFamilyOrAliasOrFallback(const char *name); - -/* - * Doing interesting things with font families and fonts. - */ - -static void InitFontFamilies(void); -static OSStatus GetFontFamilyName(FMFontFamily fontFamily, char *name, - int numBytes); - -/* - * Accessor functions and internal utilities for the font family list. - */ - -static const MacFontFamily *AddFontFamily(const char *name, - FMFontFamily familyId); -static const MacFontFamily *FindFontFamily(const char *name); -static Tcl_Obj *EnumFontFamilies(void); - -static OSStatus FontFamilyEnumCallback(ATSFontFamilyRef family, void *refCon); -static void SortFontFamilies(void); -static int CompareFontFamilies(const void *vp1, const void *vp2); -static const char *AddString(const char *in); - -static OSStatus GetThemeFontAndFamily(const ThemeFontID themeFontId, - FMFontFamily *fontFamily, unsigned char *fontName, SInt16 *fontSize, - Style *fontStyle); -static void InitSystemFonts(TkMainInfo *mainPtr); -static int CreateNamedSystemFont(Tcl_Interp *interp, Tk_Window tkwin, - const char* name, TkFontAttributes *faPtr); -static void DrawCharsInContext(Display *display, - Drawable drawable, GC gc, Tk_Font tkfont, - const char *source, int numBytes, int rangeStart, - int rangeLength, int x, int y, double angle); - -/* - *------------------------------------------------------------------------- - * - * TkpFontPkgInit -- - * - * This procedure is called when an application is created. It - * initializes all the structures that are used by the - * platform-dependant code on a per application basis. - * - * Results: - * None. - * - * Side effects: - * Initialization of variables local to this file. - * - *------------------------------------------------------------------------- - */ - -void -TkpFontPkgInit( - TkMainInfo *mainPtr) /* The application being created. */ -{ - InitFontFamilies(); - InitSystemFonts(mainPtr); - -#if TK_MAC_COALESCE_LINE - Tcl_DStringInit(¤tLine); -#endif -} - -/* - *------------------------------------------------------------------------- - * - * InitSystemFonts -- - * - * Initialize named system fonts. - * - * Results: - * - * None. - * - * Side effects: - * - * None. - * - *------------------------------------------------------------------------- - */ - -static void -InitSystemFonts( - TkMainInfo *mainPtr) -{ - Tcl_Interp *interp = mainPtr->interp; - Tk_Window tkwin = (Tk_Window) mainPtr->winPtr; - const struct SystemFontMapEntry *systemFont = systemFontMap; - TkFontAttributes fa; - - /* force this for now */ - if (!mainPtr->winPtr->mainPtr) { - mainPtr->winPtr->mainPtr = mainPtr; - } - TkInitFontAttributes(&fa); - while (systemFont->systemName) { - Str255 fontName; - SInt16 fontSize; - Style fontStyle; - - if (GetThemeFont(systemFont->id, smSystemScript, fontName, - &fontSize, &fontStyle) == noErr) { - CopyPascalStringToC(fontName, (char*)fontName); - fa.family = Tk_GetUid((char*)fontName); - fa.size = fontSize; - fa.weight = (fontStyle & bold) ? TK_FW_BOLD : TK_FW_NORMAL; - fa.slant = (fontStyle & italic) ? TK_FS_ITALIC : TK_FS_ROMAN; - fa.underline = ((fontStyle & underline) != 0); - CreateNamedSystemFont(interp, tkwin, systemFont->systemName, &fa); - if (systemFont->tkName) { - CreateNamedSystemFont(interp, tkwin, systemFont->tkName, &fa); - } - if (systemFont->tkName1) { - CreateNamedSystemFont(interp, tkwin, systemFont->tkName1, &fa); - } - } - systemFont++; - } - fa.family = Tk_GetUid("monaco"); - fa.size = 11; - fa.weight = TK_FW_NORMAL; - fa.slant = TK_FS_ROMAN; - fa.underline = 0; - CreateNamedSystemFont(interp, tkwin, "TkFixedFont", &fa); -} - -/* - *------------------------------------------------------------------------- - * - * CreateNamedSystemFont -- - * - * Register a system font with the Tk named font mechanism. - * - * Results: - * - * Result from TkCreateNamedFont(). - * - * Side effects: - * - * A new named font is added to the Tk font registry. - * - *------------------------------------------------------------------------- - */ - -static int -CreateNamedSystemFont( - Tcl_Interp *interp, - Tk_Window tkwin, - const char* name, - TkFontAttributes *faPtr) -{ - TkDeleteNamedFont(NULL, tkwin, name); - return TkCreateNamedFont(interp, tkwin, name, faPtr); -} - -/* - *--------------------------------------------------------------------------- - * - * GetThemeFontAndFamily -- - * - * Wrapper around the GetThemeFont and FMGetFontFamilyFromName APIs. - * - *--------------------------------------------------------------------------- - */ - -OSStatus -GetThemeFontAndFamily( - const ThemeFontID themeFontId, - FMFontFamily* fontFamily, - unsigned char *fontName, - SInt16 *fontSize, - Style *fontStyle) -{ - OSStatus err = ChkErr(GetThemeFont, themeFontId, smSystemScript, fontName, - fontSize, fontStyle); - - if (err == noErr) { - *fontFamily = FMGetFontFamilyFromName(fontName); - if (*fontFamily == kInvalidFontFamily) { - err = kFMInvalidFontFamilyErr; - TkMacOSXDbgMsg("FMGetFontFamilyFromName failed."); - } - } - - return err; -} - -/* - *--------------------------------------------------------------------------- - * - * TkpGetNativeFont -- - * - * Map a platform-specific native font name to a TkFont. - * - * Results: - * The return value is a pointer to a TkFont that represents the - * native font. If a native font by the given name could not be - * found, the return value is NULL. - * - * Every call to this procedure returns a new TkFont structure, even - * if the name has already been seen before. The caller should call - * TkpDeleteFont() when the font is no longer needed. - * - * The caller is responsible for initializing the memory associated - * with the generic TkFont when this function returns and releasing - * the contents of the generics TkFont before calling TkpDeleteFont(). - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -TkFont * -TkpGetNativeFont( - Tk_Window tkwin, /* For display where font will be used. */ - const char *name) /* Platform-specific font name. */ -{ - ThemeFontID themeFontId; - FMFontFamily fontFamily; - Str255 fontName; - SInt16 fontSize; - Style fontStyle; - MacFont *fontPtr; - - if (strcmp(name, SYSTEMFONT_NAME) == 0) { - themeFontId = kThemeSystemFont; - } else if (strcmp(name, APPLFONT_NAME) == 0) { - themeFontId = kThemeApplicationFont; - } else if (strcmp(name, MENUITEMFONT_NAME) == 0) { - themeFontId = kThemeMenuItemFont; - } else { - return NULL; - } - if (GetThemeFontAndFamily(themeFontId, &fontFamily, fontName, &fontSize, - &fontStyle) != noErr) { - return NULL; - } - CopyPascalStringToC(fontName, (char*)fontName); - - fontPtr = ckalloc(sizeof(MacFont)); - InitFont(fontFamily, (char*)fontName, fontSize, fontStyle, fontPtr); - - return (TkFont *) fontPtr; -} - -/* - *--------------------------------------------------------------------------- - * - * TkpGetFontFromAttributes -- - * - * Given a desired set of attributes for a font, find a font with the - * closest matching attributes. - * - * Results: - * The return value is a pointer to a TkFont that represents the font - * with the desired attributes. If a font with the desired attributes - * could not be constructed, some other font will be substituted - * automatically. - * - * Every call to this procedure returns a new TkFont structure, even - * if the specified attributes have already been seen before. The - * caller should call TkpDeleteFont() to free the platform- specific - * data when the font is no longer needed. - * - * The caller is responsible for initializing the memory associated - * with the generic TkFont when this function returns and releasing - * the contents of the generic TkFont before calling TkpDeleteFont(). - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -TkFont * -TkpGetFontFromAttributes( - TkFont *tkFontPtr, /* If non-NULL, store the information in this - * existing TkFont structure, rather than - * allocating a new structure to hold the - * font; the existing contents of the font - * will be released. If NULL, a new TkFont - * structure is allocated. */ - Tk_Window tkwin, /* For display where font will be used. */ - const TkFontAttributes *faPtr) - /* Set of attributes to match. */ -{ - short qdStyle; - FMFontFamily familyId; - const char *name; - const MacFontFamily *familyPtr; - MacFont *fontPtr; - - familyId = GetAppFont(); - name = NULL; - qdStyle = 0; - - if (faPtr->family != NULL) { - familyPtr = FindFontFamilyOrAliasOrFallback(faPtr->family); - if (familyPtr != NULL) { - name = familyPtr->name; - familyId = familyPtr->familyId; - } - } - - if (faPtr->weight != TK_FW_NORMAL) { - qdStyle |= bold; - } - if (faPtr->slant != TK_FS_ROMAN) { - qdStyle |= italic; - } - if (faPtr->underline) { - qdStyle |= underline; - } - if (tkFontPtr == NULL) { - fontPtr = ckalloc(sizeof(MacFont)); - } else { - fontPtr = (MacFont *) tkFontPtr; - ReleaseFont(fontPtr); - } - InitFont(familyId, name, TkFontGetPoints(tkwin, faPtr->size), - qdStyle, fontPtr); - - return (TkFont *) fontPtr; -} - -/* - *--------------------------------------------------------------------------- - * - * TkpDeleteFont -- - * - * Called to release a font allocated by TkpGetNativeFont() or - * TkpGetFontFromAttributes(). The caller should have already - * released the fields of the TkFont that are used exclusively by the - * generic TkFont code. - * - * Results: - * TkFont is deallocated. - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -void -TkpDeleteFont( - TkFont *tkFontPtr) /* Token of font to be deleted. */ -{ - ReleaseFont((MacFont *) tkFontPtr); -} - -/* - *--------------------------------------------------------------------------- - * - * TkpGetFontFamilies -- - * - * Return information about the font families that are available on - * the display of the given window. - * - * Results: - * Modifies interp's result object to hold a list of all the available - * font families. - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -void -TkpGetFontFamilies( - Tcl_Interp *interp, /* Interp to hold result. */ - Tk_Window tkwin) /* For display to query. */ -{ - Tcl_SetObjResult(interp, EnumFontFamilies()); -} - -/* - *------------------------------------------------------------------------- - * - * TkpGetSubFonts -- - * - * A function used by the testing package for querying the actual - * screen fonts that make up a font object. - * - * Results: - * Modifies interp's result object to hold a list containing the names - * of the screen fonts that make up the given font object. - * - * Side effects: - * None. - * - *------------------------------------------------------------------------- - */ - -void -TkpGetSubFonts( - Tcl_Interp *interp, /* Interp to hold result. */ - Tk_Font tkfont) /* Font object to query. */ -{ - /* We don't know much about our fallback fonts, ATSU does all that for - * us. We could use ATSUMatchFont to implement this function. But as - * the information is only used for testing, such an effort seems not - * very useful. */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetFontAttrsForChar -- - * - * Retrieve the font attributes of the actual font used to render a - * given character. - * - * Results: - * None. - * - * Side effects: - * The font attributes are stored in *faPtr. - * - *---------------------------------------------------------------------- - */ - -void -TkpGetFontAttrsForChar( - Tk_Window tkwin, /* Window on the font's display */ - Tk_Font tkfont, /* Font to query */ - Tcl_UniChar c, /* Character of interest */ - TkFontAttributes* faPtr) /* Output: Font attributes */ -{ - const MacFont * fontPtr = (const MacFont *) tkfont; - UniChar uchar = c; - TkMacOSXDrawingContext drawingContext; - OSStatus err; - ATSUFontID fontId; - UniCharArrayOffset changedOffset; - UniCharCount changedLength; - - /* - * Most of the attributes are just copied from the base font. This - * assumes that all fonts can have all attributes. - */ - - *faPtr = fontPtr->font.fa; - - /* - * But the name of the actual font may still differ, so we activate the - * string as an ATSU layout and ask ATSU about the fallback. - */ - if (!TkMacOSXSetupDrawingContext(Tk_WindowId(tkwin), NULL, 1, - &drawingContext)) { - Tcl_Panic("TkpGetFontAttrsForChar: drawingContext not setup"); - } - - LayoutSetString(fontPtr, &drawingContext, &uchar, 1); - - fontId = fontPtr->atsuFontId; - err = ATSUMatchFontsToText( - fontPtr->atsuLayout, 0, 1, - &fontId, &changedOffset, &changedLength); - if (err != kATSUFontsMatched && err != noErr) { - TkMacOSXDbgMsg("Can't match \\u%04X", (unsigned) c); - } - - if (err == kATSUFontsMatched) { - /* - * A fallback was used and the actual font is in fontId. Determine - * the name. - */ - - FMFontFamily fontFamilyId; - FMFontStyle fontStyle; - int i; - - err = ChkErr(FMGetFontFamilyInstanceFromFont, fontId, &fontFamilyId, - &fontStyle); - if (err == noErr) { - /* - * Find the canonical name in our global list. - */ - - for (i=0; i<familyListMaxValid; ++i) { - if (fontFamilyId == familyList[i].familyId) { - faPtr->family = familyList[i].name; - break; - } - } - if (i >= familyListMaxValid) { - TkMacOSXDbgMsg("Can't find font %d for \\u%04X", fontFamilyId, - (unsigned) c); - } - } - } - - TkMacOSXRestoreDrawingContext(&drawingContext); -} - -/* - *--------------------------------------------------------------------------- - * - * Tk_MeasureChars -- - * - * Determine the number of characters from the string that will fit in - * the given horizontal span. The measurement is done under the - * assumption that Tk_DrawChars() will be used to actually display the - * characters. - * - * With ATSUI we need the line context to do this right, so we have the - * actual implementation in TkpMeasureCharsInContext(). - * - * Results: - * The return value is the number of bytes from source that fit into the - * span that extends from 0 to maxLength. *lengthPtr is filled with the - * x-coordinate of the right edge of the last character that did fit. - * - * Side effects: - * None. - * - * Todo: - * Effects of the "flags" parameter are untested. - * - *--------------------------------------------------------------------------- - */ - -int -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 - * source string. */ - int maxLength, /* If >= 0, maxLength specifies the longest - * permissible line length; don't consider any - * character that would cross this x-position. - * If < 0, then line length is unbounded and - * the flags argument is ignored. */ - int flags, /* Various flag bits OR-ed together: - * TK_PARTIAL_OK means include the last char - * which only partially fit on this line. - * TK_WHOLE_WORDS means stop on a word - * boundary, if possible. TK_AT_LEAST_ONE - * means return at least one character even if - * no characters fit. */ - int *lengthPtr) /* Filled with x-location just after the - * terminating character. */ -{ - return TkpMeasureCharsInContext(tkfont, source, numBytes, 0, numBytes, - maxLength, flags, lengthPtr); -} - -/* - *--------------------------------------------------------------------------- - * - * TkpMeasureCharsInContext -- - * - * Determine the number of bytes from the string that will fit in the - * given horizontal span. The measurement is done under the assumption - * that TkpDrawCharsInContext() will be used to actually display the - * characters. - * - * This one is almost the same as Tk_MeasureChars(), but with access to - * all the characters on the line for context. - * - * Results: - * The return value is the number of bytes from source that - * fit into the span that extends from 0 to maxLength. *lengthPtr is - * filled with the x-coordinate of the right edge of the last - * character that did fit. - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -int -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 - * source string in all. */ - int rangeStart, /* Index of first byte to measure. */ - int 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. - * If < 0, then line length is unbounded and - * the flags argument is ignored. */ - int flags, /* Various flag bits OR-ed together: - * TK_PARTIAL_OK means include the last char - * which only partially fits on this line. - * TK_WHOLE_WORDS means stop on a word - * boundary, if possible. TK_AT_LEAST_ONE - * means return at least one character even - * if no characters fit. If TK_WHOLE_WORDS - * and TK_AT_LEAST_ONE are set and the first - * word doesn't fit, we return at least one - * character or whatever characters fit into - * maxLength. TK_ISOLATE_END means that the - * last character should not be considered in - * context with the rest of the string (used - * for breaking lines). */ - int *lengthPtr) /* Filled with x-location just after the - * terminating character. */ -{ - const MacFont *fontPtr = (const MacFont *) tkfont; - int curX = -1, curByte = 0; - UniChar *uchars; - int ulen; - UniCharArrayOffset urstart, urlen, urend; - Tcl_DString ucharBuffer; - int forceCharacterMode = 0; - - /* - * Sanity checks. - */ - - if (rangeStart < 0 || (rangeStart+rangeLength) > numBytes) { - TkMacOSXDbgMsg("Bad parameters"); - *lengthPtr = 0; - return 0; - } - - /* - * Get simple no-brainers out of the way. - */ - - if (rangeLength == 0 || (maxLength == 0 && !(flags & TK_AT_LEAST_ONE))) { - *lengthPtr = 0; - return 0; - } - - Tcl_DStringInit(&ucharBuffer); - uchars = Tcl_UtfToUniCharDString(source, numBytes, &ucharBuffer); - ulen = Tcl_DStringLength(&ucharBuffer) / sizeof(Tcl_UniChar); - LayoutSetString(fontPtr, NULL, uchars, ulen); - - urstart = Tcl_NumUtfChars(source, rangeStart); - urlen = Tcl_NumUtfChars(source+rangeStart,rangeLength); - urend = urstart + urlen; - - if (maxLength < 0) { - curX = MeasureStringWidth(fontPtr, urstart, urend); - curByte = rangeLength; - } else { - UniCharArrayOffset offset = 0; - OSStatus err; - - /* - * Have some upper limit on the size actually used. - */ - - if (maxLength > 32767) { - maxLength = 32767; - } - - offset = urstart; - err = noErr; - - if (maxLength > 1) { - /* - * Let the system do some work by calculating a line break. - * - * Somehow ATSUBreakLine seems to assume that it needs at least - * one pixel padding. So we add one to the limit. Note also - * that ATSUBreakLine sometimes runs into an endless loop when - * the third parameter is equal or less than IntToFixed(2), so we - * need at least IntToFixed(3) (at least that's the current state - * of my knowledge). - */ - - err = ATSUBreakLine(fontPtr->atsuLayout, urstart, - IntToFixed(maxLength+1), false, /* !iUseAsSoftLineBreak */ - &offset); - - /* - * There is no way to signal an error from this routine, so we - * use predefined offset=urstart and otherwise ignore the - * possibility. - */ - - if ((err != noErr) && (err != kATSULineBreakInWord)) { - TkMacOSXDbgMsg("ATSUBreakLine failed: %ld for '%.*s'", err, - rangeLength, source+rangeStart); - } - -#ifdef TK_MAC_DEBUG_FONTS - TkMacOSXDbgMsg("measure: '%.*s', break offset=%ld, errcode=%ld", - rangeLength, source+rangeStart, offset, err); -#endif - - /* - * ATSUBreakLine includes the whitespace that separates words, - * but we don't want that. Besides, ATSUBreakLine thinks that - * spaces don't occupy pixels at the end of the break, which is - * also something we like to decide for ourself. - */ - - while ((offset > urstart) && (uchars[offset-1] == ' ')) { - offset--; - } - } - - /* - * Fix up left-overs for the TK_WHOLE_WORDS case. - */ - - if (flags & TK_WHOLE_WORDS) { - if ((flags & TK_AT_LEAST_ONE) && ((offset == urstart) - || ((offset != urend) && (uchars[offset] != ' ')))) { - /* - * With TK_AT_LEAST_ONE, if we are the the start of the - * range, we need to add at least one character. If we are - * not at the end of a word, we must be in the middle of the - * first word still and we want to just use what we have so - * far. In both cases we still need to find the right - * character boundary, so we set a flag that gets us into the - * code for character mode below. - */ - - forceCharacterMode = 1; - - } else { - /* - * If we are not at the end of a word, we must be in the - * middle of the first word still. Return 0. - */ - - if ((offset != urend) && (uchars[offset] != ' ')) { - offset = urstart; - curX = 0; - } - } - } - - if (offset > urend) { - offset = urend; - } - - /* - * If "flags" says that we don't actually want a word break, we need - * to find the next character break ourself, as ATSUBreakLine will - * only give us word breaks. Do a simple linear search. - * - * Even do this, if ATSUBreakLine returned kATSULineBreakInWord, - * because we have not accounted correctly for all of the flags yet, - * like TK_AT_LEAST_ONE. - */ - - if ((!(flags & TK_WHOLE_WORDS) || forceCharacterMode) && (offset <= urend)) { - UniCharArrayOffset lastOffset = offset; - UniCharArrayOffset nextoffset; - int lastX = -1; - int wantonemorechar = -1; /* undecided */ - - while (offset <= urend) { - if (flags & TK_ISOLATE_END) { - LayoutSetString(fontPtr, NULL, uchars, offset); - } - curX = MeasureStringWidth(fontPtr, urstart, offset); - -#ifdef TK_MAC_DEBUG_FONTS - TkMacOSXDbgMsg("measure: '%.*s', try until=%ld, width=%d", - rangeLength, source+rangeStart, offset, curX); -#endif - - if (curX > maxLength) { - /* - * Even if we are over the limit, we may want another - * character in some situations. Than we keep looking - * for one more character. - */ - - if (wantonemorechar == -1) { - wantonemorechar = ((flags & TK_AT_LEAST_ONE) && - (lastOffset == urstart)) || - ((flags & TK_PARTIAL_OK) && - (lastX != maxLength)); - if (!wantonemorechar) { - break; - } - lastX = curX; - } - - /* - * There may belong combining marks to this character. - * Wait for a new curX to collect them all. - */ - - if (lastX != curX) { - break; - } - } - - /* - * Save this position, so we can come back to it. - */ - - lastX = curX; - lastOffset = offset; - - /* - * Increment offset by one character, taking combining marks - * into account. - */ - - if (offset >= urend) { - break; - } - nextoffset = 0; - if (flags & TK_ISOLATE_END) { - LayoutSetString(fontPtr, NULL, uchars, ulen); - } - err = ChkErr(ATSUNextCursorPosition, fontPtr->atsuLayout, - offset, kATSUByCluster, &nextoffset); - if (err != noErr) { - break; - } - if (nextoffset <= offset) { -#ifdef TK_MAC_DEBUG_FONTS - TkMacOSXDbgMsg("ATSUNextCursorPosition: Can't move further" - " (shouldn't happen, bad data?)"); -#endif - break; - } - - offset = nextoffset; - } - - /* - * We have overshot one character, so backup one position. - */ - - curX = lastX; - offset = lastOffset; - } - - if (curX < 0) { - if (flags & TK_ISOLATE_END) { - LayoutSetString(fontPtr, NULL, uchars, offset); - } - curX = MeasureStringWidth(fontPtr, urstart, offset); - } - - curByte = Tcl_UtfAtIndex(source, offset) - source; - curByte -= rangeStart; - } - - Tcl_DStringFree(&ucharBuffer); - -#ifdef TK_MAC_DEBUG_FONTS - TkMacOSXDbgMsg("measure: '%.*s', maxLength=%d, flags=%s%s%s%s " - "-> width=%d, bytes=%d", - rangeLength, source+rangeStart, maxLength, - flags & TK_PARTIAL_OK ? "partialOk " : "", - flags & TK_WHOLE_WORDS ? "wholeWords " : "", - flags & TK_AT_LEAST_ONE ? "atLeastOne " : "", - flags & TK_ISOLATE_END ? "isolateEnd " : "", - curX, curByte); -#endif - - *lengthPtr = curX; - return curByte; -} - -/* - *--------------------------------------------------------------------------- - * - * Tk_DrawChars -- - * - * Draw a string of characters on the screen. - * - * With ATSUI we need the line context to do this right, so we have the - * actual implementation in TkpDrawCharsInContext(). - * - * Results: - * None. - * - * Side effects: - * Information gets drawn on the screen. - * - *--------------------------------------------------------------------------- - */ - -void -Tk_DrawChars( - Display *display, /* Display on which to draw. */ - Drawable drawable, /* Window or pixmap in which to draw. */ - GC gc, /* Graphics context for drawing characters. */ - Tk_Font tkfont, /* Font in which characters will be drawn; must - * be the same as font used in GC. */ - const char *source, /* UTF-8 string to be displayed. Need not be - * '\0' terminated. All Tk meta-characters - * (tabs, control characters, and newlines) - * should be stripped out of the string that - * is 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 x, int y) /* Coordinates at which to place origin of the - * string when drawing. */ -{ - DrawCharsInContext(display, drawable, gc, tkfont, source, numBytes, - 0, numBytes, x, y, 0.0); -} - -void -TkDrawAngledChars( - Display *display, /* Display on which to draw. */ - Drawable drawable, /* Window or pixmap in which to draw. */ - GC gc, /* Graphics context for drawing characters. */ - Tk_Font tkfont, /* Font in which characters will be drawn; - * must be the same as font used in GC. */ - const char *source, /* UTF-8 string to be displayed. Need not be - * '\0' terminated. All Tk meta-characters - * (tabs, control characters, and newlines) - * should be stripped out of the string that - * is 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. */ - double x, double y, /* Coordinates at which to place origin of - * string when drawing. */ - double angle) /* What angle to put text at, in degrees. */ -{ - DrawCharsInContext(display, drawable, gc, tkfont, source, numBytes, - 0, numBytes, x, y, angle); -} - -/* - *--------------------------------------------------------------------------- - * - * TkpDrawCharsInContext -- - * - * Draw a string of characters on the screen like Tk_DrawChars(), with - * access to all the characters on the line for context. - * - * Results: - * None. - * - * Side effects: - * Information gets drawn on the screen. - * - * Todo: - * Stippled text drawing. - * - *--------------------------------------------------------------------------- - */ - -void -TkpDrawCharsInContext( - Display *display, /* Display on which to draw. */ - Drawable drawable, /* Window or pixmap in which to draw. */ - GC gc, /* Graphics context for drawing characters. */ - Tk_Font tkfont, /* Font in which characters will be drawn; must - * be the same as font used in GC. */ - const char * source, /* UTF-8 string to be displayed. Need not be - * '\0' terminated. All Tk meta-characters - * (tabs, control characters, and newlines) - * should be stripped out of the string that - * is 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. */ - int x, int y) /* Coordinates at which to place origin of the - * whole (not just the range) string when - * drawing. */ -{ - DrawCharsInContext(display, drawable, gc, tkfont, source, numBytes, - rangeStart, rangeLength, x, y, 0.0); -} - -static void -DrawCharsInContext( - Display *display, /* Display on which to draw. */ - Drawable drawable, /* Window or pixmap in which to draw. */ - GC gc, /* Graphics context for drawing characters. */ - Tk_Font tkfont, /* Font in which characters will be drawn; must - * be the same as font used in GC. */ - const char * source, /* UTF-8 string to be displayed. Need not be - * '\0' terminated. All Tk meta-characters - * (tabs, control characters, and newlines) - * should be stripped out of the string that - * is 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. */ - int x, int y, /* Coordinates at which to place origin of the - * whole (not just the range) string when - * drawing. */ - double angle) -{ - const MacFont * fontPtr = (const MacFont *) tkfont; - MacDrawable *macWin = (MacDrawable *) drawable; - Fixed fx, fy; - int ulen, urstart, urlen; - const UniChar * uchars; - int lineOffset; - TkMacOSXDrawingContext drawingContext; -#if !TK_MAC_COALESCE_LINE - Tcl_DString runString; -#endif - - if (!TkMacOSXSetupDrawingContext(drawable, gc, tkMacOSXUseCGDrawing, - &drawingContext)) { - return; - } - -#if 0 - /* - * TODO: implement stippled text drawing - */ - - if ((gc->fill_style == FillStippled - || gc->fill_style == FillOpaqueStippled) - && gc->stipple != None) { - #error Stippling not implemented - } -#endif - - x += macWin->xOff; - y += macWin->yOff; - /* Turn the y coordinate upside-down for Quarz drawing. */ - if (drawingContext.context) { - CGContextConcatCTM(drawingContext.context, CGAffineTransformMake(1.0, - 0.0, 0.0, -1.0, 0.0, drawingContext.portBounds.bottom - - drawingContext.portBounds.top)); - y = drawingContext.portBounds.bottom - - drawingContext.portBounds.top - y; - } - fy = IntToFixed(y); - -#if TK_MAC_COALESCE_LINE - UpdateLineBuffer( - fontPtr, &drawingContext, source, numBytes, x, y, &lineOffset); - - fx = IntToFixed(currentLeft); - - uchars = (const Tcl_UniChar*) Tcl_DStringValue(¤tLine); - ulen = Tcl_DStringLength(¤tLine) / sizeof(uchars[0]); -#else - lineOffset = 0; - fx = IntToFixed(x); - - Tcl_DStringInit(&runString); - uchars = Tcl_UtfToUniCharDString(source, numBytes, &runString); - ulen = Tcl_DStringLength(&runString) / sizeof(uchars[0]); - - LayoutSetString(fontPtr, &drawingContext, uchars, ulen); -#endif - - urstart = Tcl_NumUtfChars(source, rangeStart); - urlen = Tcl_NumUtfChars(source+rangeStart,rangeLength); - - /* - * Rotate the coordinate system for Quarz drawing. - */ - - if (drawingContext.context && angle != 0.0) { - CGContextConcatCTM(drawingContext.context, CGAffineTransformTranslate( - CGAffineTransformRotate(CGAffineTransformMakeTranslation( - x, y), angle * PI/180.0), -x, -y)); - } - - ChkErr(ATSUDrawText, fontPtr->atsuLayout, lineOffset+urstart, urlen, fx, - fy); - -#if !TK_MAC_COALESCE_LINE - Tcl_DStringFree(&runString); -#endif - - TkMacOSXRestoreDrawingContext(&drawingContext); -} - -/* - *--------------------------------------------------------------------------- - * - * MeasureStringWidth -- - * - * Low-level measuring of strings. - * - * Results: - * The width of the string in pixels. - * - * Side effects: - * None. - * - * Assumptions: - * fontPtr->atsuLayout is setup with the actual string data to measure. - * - *--------------------------------------------------------------------------- - */ -static int -MeasureStringWidth( - const MacFont *fontPtr, /* Contains font, ATSU layout and string data - * to measure. */ - int start, int end) /* Start and end positions to measure in that - * string. */ -{ - /* - * This implementation of measuring via ATSUGetGlyphBounds() does not - * quite conform with the specification given for [font measure]: - * - * The return value is the total width in pixels of text, not - * including the extra pixels used by highly exagerrated characters - * such as cursive "f". - * - * Instead the result of ATSUGetGlyphBounds() *does* include these - * "extra pixels". - */ - - ATSTrapezoid bounds; - ItemCount numBounds; - - if (end <= start) { - return 0; - } - - bounds.upperRight.x = bounds.upperLeft.x = 0; - ChkErr(ATSUGetGlyphBounds, fontPtr->atsuLayout, 0, 0, start, end-start, - kATSUseFractionalOrigins, 1, &bounds, &numBounds); -#ifdef TK_MAC_DEBUG_FONTS - if (numBounds < 1 || numBounds > 1) { - TkMacOSXDbgMsg("ATSUGetGlyphBounds: %s output", - numBounds < 1 ? "No " : "More"); - } -#endif - - return FixedToInt(bounds.upperRight.x - bounds.upperLeft.x); -} - -#if TK_MAC_COALESCE_LINE -/* - *------------------------------------------------------------------------- - * - * UpdateLineBuffer -- - * - * See the general dicussion of TK_MAC_COALESCE_LINE on the header - * pages. This function maintains the data for this feature. - * - * Results: - * - * The Tcl_UniChar string of the whole line as seen so far. - * - * Side effects: - * "*offset" is filled with the index of the first new character in - * "currentLine". The globals currentLine, currentY, currentLeft, - * currentRight and currentFontPtr are updated as necessary. - * - * The currentLine string is set as the current text in - * fontPtr->atsuLayout (see LayoutSetString()). - * - *------------------------------------------------------------------------- - */ - -static const Tcl_UniChar * -UpdateLineBuffer( - const MacFont *fontPtr, /* The font to be used for the new piece of - * text. */ - const TkMacOSXDrawingContext *drawingContextPtr, - /* The Quarz drawing parameters. Needed for - * measuring the new piece. */ - const char *source, /* A new piece of line to be added. */ - int numBytes, /* Length of the new piece. */ - int x, int y, /* Position of the new piece in the window. */ - int *offset) /* Filled with the offset of the new piece in - * currentLine. */ -{ - const Tcl_UniChar * uchars; - int ulen; - - if (y != currentY - || x < currentRight-1 || x > currentRight+2 - || currentFontPtr != fontPtr) { - Tcl_DStringFree(¤tLine); - Tcl_DStringInit(¤tLine); - currentY = y; - currentLeft = x; - currentFontPtr = fontPtr; - *offset = 0; - } else { - *offset = Tcl_DStringLength(¤tLine) / 2; - } - - Tcl_UtfToUniCharDString(source, numBytes, ¤tLine); - uchars = (const Tcl_UniChar*) Tcl_DStringValue(¤tLine); - ulen = Tcl_DStringLength(¤tLine) / sizeof(*uchars); - LayoutSetString(fontPtr, drawingContextPtr, uchars, ulen); - currentRight = x + MeasureStringWidth(fontPtr, *offset, ulen); - - return uchars; -} -#endif /* TK_MAC_COALESCE_LINE */ - -/* - *--------------------------------------------------------------------------- - * - * FamilyNameForFamilyID -- - * - * Helper for InitFont() and TkMacOSXFontDescriptionForFMFontInfo(). - * Retrieves font family names for a given font family ID. - * - * Results: - * Font family name or NULL. - * - * Side effects: - * None. - * - *--------------------------------------------------------------------------- - */ - -static const char * -FamilyNameForFamilyID( - FMFontFamily familyId) -{ - OSStatus err; - char name[256] = ""; - const MacFontFamily * familyPtr = NULL; - - err = ChkErr(GetFontFamilyName, familyId, name, sizeof(name)); - if (err == noErr) { - /* - * We find the canonical font name, so we can avoid unnecessary - * memory management. - */ - - familyPtr = FindFontFamily(name); -#ifdef TK_MAC_DEBUG_FONTS - if (!familyPtr) { - TkMacOSXDbgMsg("Font family '%s' not found", name); - } -#endif - } - return familyPtr ? familyPtr->name : NULL; -} - -/* - *--------------------------------------------------------------------------- - * - * InitFont -- - * - * Helper for TkpGetNativeFont() and TkpGetFontFromAttributes(). - * Initializes the memory for a MacFont that wraps the - * platform-specific data. - * - * The caller is responsible for initializing the fields of the TkFont - * that are used exclusively by the generic TkFont code, and for - * releasing those fields before calling TkpDeleteFont(). - * - * Results: - * Fills the MacFont structure. - * - * Side effects: - * Memory allocated. - * - *--------------------------------------------------------------------------- - */ - -static void -InitFont( - FMFontFamily familyId, /* The font family to initialize for. */ - const char * familyName, /* The font family name, if known. Otherwise - * this can be NULL. */ - int size, /* Point size for the font. */ - int qdStyle, /* QuickDraw style bits. */ - MacFont * fontPtr) /* Filled with information constructed from the - * above arguments. */ -{ - FontInfo fi; - TkFontAttributes * faPtr; - TkFontMetrics * fmPtr; - int periodWidth, wWidth; - - if (size == 0) { - size = GetDefFontSize(); - } - ChkErr(FetchFontInfo, familyId, size, qdStyle, &fi); - if (!familyName) { - familyName = FamilyNameForFamilyID(familyId); - } - - fontPtr->font.fid = (Font) fontPtr; - - faPtr = &fontPtr->font.fa; - faPtr->family = familyName; - faPtr->size = size; - faPtr->weight = (qdStyle & bold) ? TK_FW_BOLD : TK_FW_NORMAL; - faPtr->slant = (qdStyle & italic) ? TK_FS_ITALIC : TK_FS_ROMAN; - faPtr->underline = ((qdStyle & underline) != 0); - faPtr->overstrike = 0; - - fmPtr = &fontPtr->font.fm; - - /* - * Note: Macs measure the line height as ascent + descent + - * leading. Leading as a separate entity does not exist in X11 - * and Tk. We add it to the ascent at the moment, because adding - * it to the descent, as the Mac docs would indicate, would change - * the position of self-drawn underlines. - */ - - fmPtr->ascent = fi.ascent + fi.leading; - fmPtr->descent = fi.descent; - fmPtr->maxWidth = fi.widMax; - - fontPtr->qdFont = familyId; - fontPtr->qdSize = size; - fontPtr->qdStyle = (short) qdStyle; - - InitATSUObjects(familyId, size, qdStyle, &fontPtr->atsuFontId, - &fontPtr->atsuLayout, &fontPtr->atsuStyle); - - Tk_MeasureChars((Tk_Font)fontPtr, ".", 1, -1, 0, &periodWidth); - Tk_MeasureChars((Tk_Font)fontPtr, "W", 1, -1, 0, &wWidth); - fmPtr->fixed = periodWidth == wWidth; - - SetFontFeatures(fontPtr->atsuFontId, fmPtr->fixed, size, - fontPtr->atsuStyle); - - AdjustFontHeight(fontPtr); -} - -/* - *--------------------------------------------------------------------------- - * - * InitATSUObjects -- - * - * Helper for InitFont(). Initializes the ATSU data handles for a - * MacFont. - * - * Results: - * Sets up all we know and can do at this point in time in fontIdPtr, - * layoutPtr and stylePtr. - * - * Side effects: - * Allocates data structures inside of ATSU. - * - *--------------------------------------------------------------------------- - */ - -static void -InitATSUObjects( - FMFontFamily familyId, /* The font family to use. */ - short ptSize, short qdStyles, - /* The additional font parameters. */ - ATSUFontID *fontIdPtr, /* Filled with the font id. */ - ATSUTextLayout *layoutPtr, /* Filled with the ATSU layout handle. */ - ATSUStyle *stylePtr) /* Filled with the ATSU style handle, - * configured with all parameters. */ -{ - FMFontStyle stylesDone, stylesLeft; - - /* - * Defaults in case of error. - */ - - *fontIdPtr = GetAppFont(); - *stylePtr = 0; - *layoutPtr = 0; - - /* - * Generate a font id from family id and QD style bits. - */ - - ChkErr(FMGetFontFromFontFamilyInstance, familyId, qdStyles, fontIdPtr, - &stylesDone); - - /* - * We see what style bits are left and tell ATSU to synthesize what's - * left like QD does it. - */ - - stylesLeft = qdStyles & ~(unsigned)stylesDone; - - /* - * Create the style and set its attributes. - */ - - ChkErr(ATSUCreateStyle, stylePtr); - InitATSUStyle(*fontIdPtr, ptSize, stylesLeft, *stylePtr); - - /* - * Create the layout. Note: We can't set the layout attributes here, - * because the text and the style must be set first. - */ - - ChkErr(ATSUCreateTextLayout, layoutPtr); - /*InitATSULayout(*layoutPtr);*/ -} - -/* - *--------------------------------------------------------------------------- - * - * InitATSUStyle -- - * - * Helper for InitATSUObjects(). Initializes the ATSU style for a - * MacFont. - * - * Results: - * Sets up all parameters needed for an ATSU style. - * - * Side effects: - * Allocates data structures for the style inside of ATSU. - * - *--------------------------------------------------------------------------- - */ - -static void -InitATSUStyle( - ATSUFontID fontId, /* The font id to use. */ - short ptSize, short qdStyles, - /* Additional font parameters. */ - ATSUStyle style) /* The style handle to configure. */ -{ - /* - * Attributes for the style. - */ - - Fixed fsize = IntToFixed(ptSize); - Boolean - isBold = (qdStyles&bold) != 0, - isUnderline = (qdStyles&underline) != 0, - isItalic = (qdStyles&italic) != 0; - - ATSStyleRenderingOptions options = - antialiasedTextEnabled == -1 ? kATSStyleNoOptions : - antialiasedTextEnabled == 0 ? kATSStyleNoAntiAliasing : - kATSStyleApplyAntiAliasing; - - static const ATSUAttributeTag styleTags[] = { - kATSUFontTag, kATSUSizeTag, - kATSUQDBoldfaceTag, kATSUQDItalicTag, kATSUQDUnderlineTag, - kATSUStyleRenderingOptionsTag, - }; - static const ByteCount styleSizes[] = { - sizeof(ATSUFontID), sizeof(Fixed), - sizeof(Boolean), sizeof(Boolean), sizeof(Boolean), - sizeof(ATSStyleRenderingOptions), - }; - const ATSUAttributeValuePtr styleValues[] = { - &fontId, &fsize, - &isBold, &isItalic, &isUnderline, - &options, - }; - - ChkErr(ATSUSetAttributes, style, sizeof(styleTags)/sizeof(styleTags[0]), - styleTags, styleSizes, styleValues); -} - -/* - *--------------------------------------------------------------------------- - * - * SetFontFeatures -- - * - * Helper for InitFont(). Request specific font features of the ATSU - * style object for a MacFont. - * - * Results: - * None. - * - * Side effects: - * Specific font features are enabled on the ATSU style object. - * - *--------------------------------------------------------------------------- - */ - -static void -SetFontFeatures( - ATSUFontID fontId, /* The font id to use. */ - int fixed, /* Is this a fixed font? */ - short size, /* Size of the font */ - ATSUStyle style) /* The style handle to configure. */ -{ - /* - * Don't use the standard latin ligatures, if this is determined to be a - * fixed-width font. - */ - - static const ATSUFontFeatureType fixed_featureTypes[] = { - kLigaturesType, kLigaturesType - }; - static const ATSUFontFeatureSelector fixed_featureSelectors[] = { - kCommonLigaturesOffSelector, kRareLigaturesOffSelector - }; - - if (fixed) { - ChkErr(ATSUSetFontFeatures, style, sizeof(fixed_featureTypes) / - sizeof(fixed_featureTypes[0]), fixed_featureTypes, - fixed_featureSelectors); - if (size <= 10) { - /* - * Disable antialiasing of fixed-width fonts with sizes <= 10 - */ - - const ATSStyleRenderingOptions options = kATSStyleNoAntiAliasing; - const ATSUAttributeTag styleTag = kATSUStyleRenderingOptionsTag; - const ByteCount styleSize = sizeof(ATSStyleRenderingOptions); - const ConstATSUAttributeValuePtr styleValue = &options; - - ChkErr(ATSUSetAttributes, style, 1, &styleTag, &styleSize, - (ATSUAttributeValuePtr*) &styleValue); - } - } -} - -/* - *--------------------------------------------------------------------------- - * - * AdjustFontHeight -- - * - * Helper for InitFont(). Check font height against some real world - * examples. - * - * Results: - * None. - * - * Side effects: - * The metrics in fontPtr->font.fm are adjusted so that typical combined - * characters fit into ascent+descent. - * - *--------------------------------------------------------------------------- - */ - -static void -AdjustFontHeight( - MacFont * fontPtr) -{ - /* - * The standard values for ascent, descent and leading as determined in - * InitFont do not take composition into account, they are designed for - * plain ASCII characters. This code measures the actual size of some - * typical composed characters from the Latin-1 range and corrects these - * factors, especially the ascent. - * - * A font requested with a pixel size may thus have a larger line height - * than requested. - * - * An alternative would be to instruct ATSU to shrink oversized combined - * characters. I think I have seen that feature somewhere, but I can't - * find it now [BR]. - */ - - static const UniChar chars[] - /* Auml, Aacute, Acirc, Atilde, Ccedilla */ - = {0x00C4, 0x00C1, 0x00C2, 0x00C3, 0x00C7}; - static const int charslen = sizeof(chars) / sizeof(chars[0]); - Rect size; - OSStatus err; - - LayoutSetString(fontPtr, NULL, chars, charslen); - - size.top = size.bottom = 0; - err = ChkErr(ATSUMeasureTextImage, fontPtr->atsuLayout, 0, charslen, 0, 0, - &size); - - if (err == noErr) { - TkFontMetrics * fmPtr = &fontPtr->font.fm; - int ascent = -size.top; - int descent = size.bottom; - - if (ascent > fmPtr->ascent) { - fmPtr->ascent = ascent; - } - if (descent > fmPtr->descent) { - fmPtr->descent = descent; - } - } -} - -/* - *--------------------------------------------------------------------------- - * - * InitATSULayout -- - * - * Helper for LayoutSetString(). Initializes the ATSU layout - * object for a MacFont and a specific string. - * - * Results: - * Sets up all parameters needed for an ATSU layout object. - * - * Side effects: - * Allocates data structures for the layout object inside of ATSU. - * - * Assumptions: - * The actual string data and style information is already set by - * ATSUSetTextPointerLocation() and ATSUSetRunStyle() (see - * LayoutSetString()). - * - *--------------------------------------------------------------------------- - */ - -static void -InitATSULayout( - const TkMacOSXDrawingContext *drawingContextPtr, - /* Specifies the CGContext to use. */ - ATSUTextLayout layout, /* The layout object to configure. */ - int fixed) /* Is this a fixed font? */ -{ - /* - * Attributes for the layout. - */ - - ATSLineLayoutOptions layoutOptions = 0 -#if TK_MAC_COALESCE_LINE - /* - * Options to use unconditionally when we try to do coalescing. - */ - | kATSLineDisableAllLayoutOperations - | kATSLineFractDisable - | kATSLineUseDeviceMetrics -#endif - ; - CGContextRef context = drawingContextPtr ? - drawingContextPtr->context : NULL; - - static const ATSUAttributeTag layoutTags[] = { - kATSUCGContextTag, - kATSULineLayoutOptionsTag, - }; - static const ByteCount layoutSizes[] = { - sizeof(CGContextRef), - sizeof(ATSLineLayoutOptions), - }; - const ATSUAttributeValuePtr layoutValues[] = { - &context, - &layoutOptions, - }; - - /* - * Ensure W(abcdefg) == W(a)*7 for fixed fonts (Latin scripts only). - */ - - if (fixed) { - layoutOptions |= kATSLineFractDisable | kATSLineUseDeviceMetrics; - } - - ChkErr(ATSUSetLayoutControls, layout, sizeof(layoutTags) / - sizeof(layoutTags[0]), layoutTags, layoutSizes, layoutValues); - ChkErr(ATSUSetTransientFontMatching, layout, true); -} - -/* - *--------------------------------------------------------------------------- - * - * LayoutSetString -- - * - * Setup the MacFont for a specific string. - * - * Results: - * Sets up all parameters so that ATSU can work with the objects in - * MacFont. - * - * Side effects: - * Sets parameters on the layout object fontPtr->atsuLayout. - * - *--------------------------------------------------------------------------- - */ - -void -LayoutSetString( - const MacFont *fontPtr, /* The fontPtr to configure. */ - const TkMacOSXDrawingContext *drawingContextPtr, - /* For the CGContext to be used.*/ - const UniChar *uchars, int ulen) - /* The UniChar string to set into - * fontPtr->atsuLayout. */ -{ - ChkErr(ATSUSetTextPointerLocation, fontPtr->atsuLayout, uchars, - kATSUFromTextBeginning, ulen, ulen); - - /* - * Styles can only be set after the text is set. - */ - - ChkErr(ATSUSetRunStyle, fontPtr->atsuLayout, fontPtr->atsuStyle, - kATSUFromTextBeginning, kATSUToTextEnd); - - /* - * Layout attributes can only be set after the styles are set. - */ - - InitATSULayout(drawingContextPtr, fontPtr->atsuLayout, - fontPtr->font.fm.fixed); -} - -/* - *------------------------------------------------------------------------- - * - * ReleaseFont -- - * - * Called to release the Macintosh-specific contents of a TkFont. The - * caller is responsible for freeing the memory used by the font - * itself. - * - * Results: - * None. - * - * Side effects: - * Memory is freed. - * - *--------------------------------------------------------------------------- - */ - -static void -ReleaseFont( - MacFont *fontPtr) /* The font to delete. */ -{ - ATSUDisposeTextLayout(fontPtr->atsuLayout); - ATSUDisposeStyle(fontPtr->atsuStyle); -} - -/* - *------------------------------------------------------------------------- - * - * FindFontFamilyOrAlias, FindFontFamilyOrAliasOrFallback -- - * - * Determine if any physical screen font exists on the system with the - * given family name. If the family exists, then it should be possible - * to construct some physical screen font with that family name. - * - * FindFontFamilyOrAlias also considers font aliases as determined by - * TkFontGetAliasList(). - * - * FindFontFamilyOrAliasOrFallback also considers font aliases as - * determined by TkFontGetFallbacks(). - * - * The overall algorithm to get the closest font to the one requested is - * this: - * - * try fontname - * try all aliases for fontname - * foreach fallback for fontname - * try the fallback - * try all aliases for the fallback - * - * Results: - * - * The return value is NULL if the specified font family does not exist, - * a valid MacFontFamily* otherwise. - * - * Side effects: - * - * None. - * - *------------------------------------------------------------------------- - */ - -static const MacFontFamily * -FindFontFamilyOrAlias( - const char *name) /* Name or alias name of the font to find. */ -{ - const MacFontFamily * familyPtr; - const char *const * aliases; - int i; - - familyPtr = FindFontFamily(name); - if (familyPtr != NULL) { - return familyPtr; - } - - aliases = TkFontGetAliasList(name); - if (aliases != NULL) { - for (i = 0; aliases[i] != NULL; i++) { - familyPtr = FindFontFamily(aliases[i]); - if (familyPtr != NULL) { - return familyPtr; - } - } - } - return NULL; -} - -static const MacFontFamily * -FindFontFamilyOrAliasOrFallback( - const char *name) /* Name or alias name of the font to find. */ -{ - const MacFontFamily * familyPtr; - const char * fallback; - const char *const *const * fallbacks; - int i, j; - - familyPtr = FindFontFamilyOrAlias(name); - if (familyPtr != NULL) { - return familyPtr; - } - fallbacks = TkFontGetFallbacks(); - for (i = 0; fallbacks[i] != NULL; i++) { - for (j = 0; (fallback = fallbacks[i][j]) != NULL; j++) { - if (strcasecmp(name, fallback) == 0) { - for (j = 0; (fallback = fallbacks[i][j]) != NULL; j++) { - familyPtr = FindFontFamilyOrAlias(fallback); - if (familyPtr != NULL) { - return familyPtr; - } - } - } - break; /* benny: This "break" is a carry-over from - * tkMacOSXFont.c, but what is actually its purpose - * ???? */ - } - } - - - /* - * FIXME: We would have liked to recover by re-enumerating fonts. But - * that doesn't work, because Carbon seems to cache the inital list of - * fonts. Fonts newly installed don't show up with - * FMCreateFontFamilyIterator()/FMGetNextFontFamily() without a restart - * of the app. Similar problem with fonts removed. - */ - -#ifdef TK_MAC_DEBUG_FONTS - TkMacOSXDbgMsg("Font family '%s' not found", name); -#endif - - return NULL; -} - -/* - *------------------------------------------------------------------------- - * - * InitFontFamilies -- - * - * Helper to TkpFontPkgInit. Use the Font Manager to fill in the - * familyList global array. - * - * Results: - * - * None. - * - * Side effects: - * - * Allocates memory. - * - *------------------------------------------------------------------------- - */ - -static void -InitFontFamilies(void) -{ - FMFontFamily fontFamily; - Str255 fontName; - SInt16 fontSize; - Style fontStyle; - - /* - * Has this been called before? - */ - - if (familyListNextFree > 0) { - return; - } - - ChkErr(ATSFontFamilyApplyFunction, FontFamilyEnumCallback,NULL); - - if (GetThemeFontAndFamily(kThemeSystemFont, &fontFamily, fontName, - &fontSize, &fontStyle) == noErr) { - AddFontFamily(SYSTEMFONT_NAME, fontFamily); - } - if (GetThemeFontAndFamily(kThemeApplicationFont, &fontFamily, fontName, - &fontSize, &fontStyle) == noErr) { - AddFontFamily(APPLFONT_NAME, fontFamily); - } - if (GetThemeFontAndFamily(kThemeMenuItemFont, &fontFamily, fontName, - &fontSize, &fontStyle) == noErr) { - AddFontFamily(MENUITEMFONT_NAME, fontFamily); - } - - SortFontFamilies(); -} - -/* - *------------------------------------------------------------------------- - * - * FontFamilyEnumCallback -- - * - * Callback for ATSFontFamilyApplyFunction(). - * - * Results: - * - * noErr. - * - * Side effects: - * - * None. - * - *------------------------------------------------------------------------- - */ - -static OSStatus -FontFamilyEnumCallback( - ATSFontFamilyRef family, - void *refCon) -{ - OSStatus err; - char name[260] = ""; - - (void) refCon; - - err = ChkErr(GetFontFamilyName, family, name, sizeof(name)); - if (err == noErr) { - AddFontFamily(name, family); - } - - return noErr; -} - -/* - *------------------------------------------------------------------------- - * - * GetFontFamilyName -- - * - * Use the Font Manager to get the name of a given FMFontfamily. This - * currently gets the standard, non-localized QuickDraw name. Other - * names would be possible, see docs for ATSUFindFontName for a - * selection. The MacOSX font selector seems to use the localized - * family name given by ATSUFindFontName(kFontFamilyName), but that API - * doesn't give us a name at all for some fonts. - * - * Results: - * An OS error code, noErr on success. name is filled with the - * resulting name. - * - * Side effects: - * None. - * - *------------------------------------------------------------------------- - */ - -static OSStatus -GetFontFamilyName( - FMFontFamily fontFamily, /* The font family for which to find the - * name. */ - char * name, int numBytes) /* Filled with the result. */ -{ - OSStatus err; - Str255 nativeName; - CFStringRef cfString; - TextEncoding encoding; - ScriptCode nameencoding; - - nativeName[0] = 0; - name[0] = 0; - err = ChkErr(FMGetFontFamilyName, fontFamily, nativeName); - if (err != noErr) { - return err; - } - - /* - * QuickDraw font names are encoded with the script that the font uses. - * So we determine that encoding and than we reencode the name. We - * pre-set the encoding with the default value, so we do not need to - * check result codes here. - */ - - encoding = kTextEncodingMacRoman; - ChkErr(FMGetFontFamilyTextEncoding, fontFamily, &encoding); - nameencoding = encoding; - ChkErr(RevertTextEncodingToScriptInfo, encoding, &nameencoding, NULL, - NULL); - - /* - * Note: We could use Tcl facilities to do the re-encoding here. We'd - * have to maintain tables to map OS encoding codes to Tcl encoding names - * like tkMacOSXFont.c did. Using native re-encoding directly instead is - * a lot easier and future-proof than that. There is one snag, though: I - * have seen CFStringGetCString() crash with invalid encoding ids. But - * than if that happens it would be a bug in - * FMGetFontFamilyTextEncoding() or RevertTextEncodingToScriptInfo(). - * Another problem is that users have seen CFStringCreate return null - * (Bug #2548661). This is due to font names with a bad encoding. - */ - - cfString = CFStringCreateWithPascalStringNoCopy( - NULL, nativeName, nameencoding, kCFAllocatorNull); - if (cfString == NULL) { - TkMacOSXDbgMsg("CFStringCreate: " - "'%.*s' could not be decoded with encoding %d", - nativeName[0], nativeName+1, (int) nameencoding); - return kTextMalformedInputErr; - } - - CFStringGetCString(cfString, name, numBytes, kCFStringEncodingUTF8); - CFRelease(cfString); - - return noErr; -} - -/* - *------------------------------------------------------------------------- - * - * FindFontFamily -- - * - * Find the font family with the given name in the global familyList. - * Uses bsearch() for convenient access. Comparision is done - * non-case-sensitively with CompareFontFamilies() which see. - * - * Results: - * - * MacFontFamily: A pair of family id and the actual name registered for - * the font. - * - * Side effects: - * - * None. - * - * Assumption: - * - * Requires the familyList array to be sorted. - * - *------------------------------------------------------------------------- - */ - -static const MacFontFamily * -FindFontFamily( - const char *name) /* The family name. Note: Names are compared - * non-case-sensitive. */ -{ - const MacFontFamily key = {name,-1}; - - if(familyListMaxValid <= 0) { - return NULL; - } - - return bsearch(&key, familyList, familyListMaxValid, sizeof(*familyList), - CompareFontFamilies); -} - -/* - *------------------------------------------------------------------------- - * - * EnumFontFamilies -- - * - * Create a Tcl list with the registered names in the global familyList. - * - * Results: - * A Tcl list of names. - * - * Side effects: - * None. - * - *------------------------------------------------------------------------- - */ - -static Tcl_Obj * -EnumFontFamilies(void) -{ - int i; - Tcl_Obj * tclList; - - tclList = Tcl_NewListObj(0, NULL); - for (i=0; i<familyListMaxValid; ++i) { - Tcl_ListObjAppendElement(NULL, tclList, - Tcl_NewStringObj(familyList[i].name, -1)); - } - - return tclList; -} - -/* - *------------------------------------------------------------------------- - * - * AddFontFamily -- - * - * Register a font family in familyList. Until SortFontFamilies() is - * called, this is not actually available for FindFontFamily(). - * - * Results: - * - * MacFontFamily: The new pair of family id and the actual name - * registered for the font. - * - * Side effects: - * - * New entry in familyList and familyListNextFree updated. - * - *------------------------------------------------------------------------- - */ - -static const MacFontFamily * -AddFontFamily( - const char *name, /* Font family name to register. */ - FMFontFamily familyId) /* Font family id to register. */ -{ - MacFontFamily * familyPtr; - - if (familyListNextFree >= familyListSize) { - familyListSize += 100; - familyList = ckrealloc(familyList, - familyListSize * sizeof(*familyList)); - } - - familyPtr = familyList + familyListNextFree; - ++familyListNextFree; - - familyPtr->name = AddString(name); - familyPtr->familyId = familyId; - - return familyPtr; -} - -/* - *------------------------------------------------------------------------- - * - * SortFontFamilies -- - * - * Sort the entries in familyList. Only after calling - * SortFontFamilies(), the new families registered with AddFontFamily() - * are actually available for FindFontFamily(), because FindFontFamily() - * requires the array to be sorted. - * - * Results: - * - * None. - * - * Side effects: - * - * familyList is sorted and familyListMaxValid is updated. - * - *------------------------------------------------------------------------- - */ - -static void -SortFontFamilies(void) -{ - if (familyListNextFree > 0) { - qsort(familyList, familyListNextFree, sizeof(*familyList), - CompareFontFamilies); - } - familyListMaxValid = familyListNextFree; -} - -/* - *------------------------------------------------------------------------- - * - * CompareFontFamilies -- - * - * Comparison function used by SortFontFamilies() and FindFontFamily(). - * - * Results: - * Result as required to generate a stable sort order for bsearch() and - * qsort(). The ordering is not case-sensitive as far as - * Tcl_UtfNcasecmp() (which see) can provide that. - * - * Note: It would be faster to compare first the length and the actual - * strings only as a tie-breaker, but than the ordering wouldn't look so - * pretty in [font families] ;-). - * - * Side effects: - * None. - * - *------------------------------------------------------------------------- - */ - -static int -CompareFontFamilies( - const void * vp1, - const void * vp2) -{ - const char * name1; - const char * name2; - int len1, len2, diff; - - name1 = ((const MacFontFamily *) vp1)->name; - name2 = ((const MacFontFamily *) vp2)->name; - - len1 = Tcl_NumUtfChars(name1, -1); - len2 = Tcl_NumUtfChars(name2, -1); - - diff = Tcl_UtfNcasecmp(name1, name2, len1<len2 ? len1 : len2); - - return diff == 0 ? len1-len2 : diff; -} - -/* - *------------------------------------------------------------------------- - * - * AddString -- - * - * Helper for AddFontFamily(). Allocates a string in the one-shot - * allocator. - * - * Results: - * A duplicated string in the one-shot allocator. - * - * Side effects: - * May allocate a new memory block. - * - *------------------------------------------------------------------------- - */ - -static const char * -AddString( - const char *in) /* String to add, zero-terminated. */ -{ - int len; - char *result; - - len = strlen(in) +1; - - if (stringMemory == NULL - || (stringMemory->nextFree+len) > STRING_BLOCK_MAX) { - StringBlock *newblock = ckalloc(sizeof(StringBlock)); - - newblock->next = stringMemory; - newblock->nextFree = 0; - stringMemory = newblock; - } - - result = stringMemory->strings + stringMemory->nextFree; - stringMemory->nextFree += len; - - memcpy(result, in, len); - - return result; -} - -/* - *--------------------------------------------------------------------------- - * - * 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. - * - *--------------------------------------------------------------------------- - */ - -int -TkMacOSXIsCharacterMissing( - Tk_Font tkfont, /* The font we are looking in. */ - unsigned int searchChar) /* The character we are looking for. */ -{ - /* Background: This function is private and only used in - * tkMacOSXMenu.c:FindMarkCharacter(). - * - * We could use ATSUMatchFont() to implement. We'd have to change the - * definition of the encoding of the parameter searchChar from MacRoman - * to UniChar for that. - * - * The system uses font fallback for controls, so we don't really need - * this. */ - - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitControlFontStyle -- - * - * This procedure sets up the appropriate ControlFontStyleRec - * for a Mac control. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInitControlFontStyle( - Tk_Font tkfont, /* Tk font object to use for the control. */ - ControlFontStylePtr fsPtr) /* The style object to configure. */ -{ - const MacFont * fontPtr = (MacFont *) tkfont; - - fsPtr->flags = kControlUseFontMask | kControlUseSizeMask | - kControlUseFaceMask | kControlUseJustMask; - fsPtr->font = fontPtr->qdFont; - fsPtr->size = fontPtr->qdSize; - fsPtr->style = fontPtr->qdStyle; - fsPtr->just = teCenter; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXFMFontInfoForFont -- - * - * Retrieve FontManager/ATSUI font information for a Tk font. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXFMFontInfoForFont( - Tk_Font tkfont, - FMFontFamily *fontFamilyPtr, - FMFontStyle *fontStylePtr, - FMFontSize *fontSizePtr, - ATSUStyle *fontATSUStylePtr) -{ - const MacFont * fontPtr = (MacFont *) tkfont; - - if (fontFamilyPtr) { - *fontFamilyPtr = fontPtr->qdFont; - } - if (fontStylePtr) { - *fontStylePtr = fontPtr->qdStyle; - } - if (fontSizePtr) { - *fontSizePtr = fontPtr->qdSize; - } - if (fontATSUStylePtr) { - *fontATSUStylePtr = fontPtr->atsuStyle; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXFontDescriptionForFMFontInfo -- - * - * Get text description of a font specified by FontManager info. - * - * Results: - * List object or NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE Tcl_Obj * -TkMacOSXFontDescriptionForFMFontInfo( - FMFontFamily fontFamily, - FMFontStyle fontStyle, - FMFontSize fontSize, - FMFont fontID) -{ - Tcl_Obj *objv[6]; - int i = 0; - - if (fontFamily != kInvalidFontFamily && fontStyle != -1) { - const char *familyName = FamilyNameForFamilyID(fontFamily); - - if (familyName) { - objv[i++] = Tcl_NewStringObj(familyName, -1); - objv[i++] = Tcl_NewIntObj(fontSize); -#define S(s) Tcl_NewStringObj(STRINGIFY(s),(int)(sizeof(STRINGIFY(s))-1)) - objv[i++] = (fontStyle & bold) ? S(bold) : S(normal); - objv[i++] = (fontStyle & italic) ? S(italic) : S(roman); - if (fontStyle & underline) objv[i++] = S(underline); - /*if (fontStyle & overstrike) objv[i++] = S(overstrike);*/ -#undef S - } - } else if (fontID != kInvalidFont) { - CFStringRef fontName = NULL; - Tcl_Obj *fontNameObj = NULL; - - ChkErr(ATSFontGetName, FMGetATSFontRefFromFont(fontID), - kATSOptionFlagsDefault, &fontName); - if (fontName) { - fontNameObj = TkMacOSXGetStringObjFromCFString(fontName); - CFRelease(fontName); - } - if (fontNameObj) { - objv[i++] = fontNameObj; - objv[i++] = Tcl_NewIntObj(fontSize); - } - } - return i ? Tcl_NewListObj(i, objv) : NULL; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXUseAntialiasedText -- - * - * Enables or disables application-wide use of antialiased text (where - * available). Sets up a linked Tcl global variable to allow - * disabling of antialiased text from tcl. - * The possible values for this variable are: - * - * -1 - Use system default as configurable in "System Prefs" -> "General". - * 0 - Unconditionally disable antialiasing. - * 1 - Unconditionally enable antialiasing. - * - * Results: - * - * TCL_OK. - * - * Side effects: - * - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXUseAntialiasedText( - Tcl_Interp * interp, /* The Tcl interpreter to receive the - * variable.*/ - int enable) /* Initial value. */ -{ - static Boolean initialized = FALSE; - - if (!initialized) { - initialized = TRUE; - - if (Tcl_CreateNamespace(interp, "::tk::mac", NULL, NULL) == NULL) { - Tcl_ResetResult(interp); - } - if (Tcl_LinkVar(interp, "::tk::mac::antialiasedtext", - (char *) &antialiasedTextEnabled, - TCL_LINK_INT) != TCL_OK) { - Tcl_ResetResult(interp); - } - } - antialiasedTextEnabled = enable; - return TCL_OK; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXFont.h b/carbon/tkMacOSXFont.h deleted file mode 100644 index e932fb7..0000000 --- a/carbon/tkMacOSXFont.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * tkMacOSXFont.h -- - * - * Contains the Macintosh implementation of the platform-independant - * font package interface. - * - * Copyright (c) 1990-1994 The Regents of the University of California. - * Copyright (c) 1994-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#ifndef TKMACOSXFONT_H -#define TKMACOSXFONT_H 1 - -#include "tkFont.h" - -#ifndef _TKMACINT -#include "tkMacOSXInt.h" -#endif - -/* - * Function prototypes - */ - -MODULE_SCOPE void TkMacOSXInitControlFontStyle(Tk_Font tkfont, - ControlFontStylePtr fsPtr); -MODULE_SCOPE void TkMacOSXFMFontInfoForFont(Tk_Font tkfont, - FMFontFamily *fontFamilyPtr, FMFontStyle *fontStylePtr, - FMFontSize *fontSizePtr, ATSUStyle *fontATSUStylePtr); -MODULE_SCOPE Tcl_Obj * TkMacOSXFontDescriptionForFMFontInfo( - FMFontFamily fontFamily, FMFontStyle fontStyle, FMFontSize fontSize, - FMFont fontID); - -#endif /*TKMACOSXFONT_H*/ diff --git a/carbon/tkMacOSXHLEvents.c b/carbon/tkMacOSXHLEvents.c deleted file mode 100644 index 1ab050f..0000000 --- a/carbon/tkMacOSXHLEvents.c +++ /dev/null @@ -1,691 +0,0 @@ -/* - * tkMacOSXHLEvents.c -- - * - * Implements high level event support for the Macintosh. Currently, the - * only event that really does anything is the Quit event. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" - -/* - * This is a Tcl_Event structure that the Quit AppleEvent handler uses to - * schedule the ReallyKillMe function. - */ - -typedef struct KillEvent { - Tcl_Event header; /* Information that is standard for all - * events. */ - Tcl_Interp *interp; /* Interp that was passed to the Quit - * AppleEvent */ -} KillEvent; - -/* - * Static functions used only in this file. - */ - -static OSErr QuitHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr OappHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr RappHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr OdocHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr PrintHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr ScriptHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static OSErr PrefsHandler(const AppleEvent *event, - AppleEvent *reply, long handlerRefcon); -static int MissedAnyParameters(const AppleEvent *theEvent); -static int ReallyKillMe(Tcl_Event *eventPtr, int flags); -static OSStatus FSRefToDString(const FSRef *fsref, Tcl_DString *ds); - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitAppleEvents -- - * - * Initilize the Apple Events on the Macintosh. This registers the core - * event handlers. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInitAppleEvents( - Tcl_Interp *interp) /* Interp to handle basic events. */ -{ - AEEventHandlerUPP OappHandlerUPP, RappHandlerUPP, OdocHandlerUPP; - AEEventHandlerUPP PrintHandlerUPP, QuitHandlerUPP, ScriptHandlerUPP; - AEEventHandlerUPP PrefsHandlerUPP; - static Boolean initialized = FALSE; - - if (!initialized) { - initialized = TRUE; - - /* - * Install event handlers for the core apple events. - */ - - QuitHandlerUPP = NewAEEventHandlerUPP(QuitHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEQuitApplication, - QuitHandlerUPP, (long) interp, false); - - OappHandlerUPP = NewAEEventHandlerUPP(OappHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEOpenApplication, - OappHandlerUPP, (long) interp, false); - - RappHandlerUPP = NewAEEventHandlerUPP(RappHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEReopenApplication, - RappHandlerUPP, (long) interp, false); - - OdocHandlerUPP = NewAEEventHandlerUPP(OdocHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEOpenDocuments, - OdocHandlerUPP, (long) interp, false); - - PrintHandlerUPP = NewAEEventHandlerUPP(PrintHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEPrintDocuments, - PrintHandlerUPP, (long) interp, false); - - PrefsHandlerUPP = NewAEEventHandlerUPP(PrefsHandler); - ChkErr(AEInstallEventHandler, kCoreEventClass, kAEShowPreferences, - PrefsHandlerUPP, (long) interp, false); - - if (interp) { - ScriptHandlerUPP = NewAEEventHandlerUPP(ScriptHandler); - ChkErr(AEInstallEventHandler, kAEMiscStandards, kAEDoScript, - ScriptHandlerUPP, (long) interp, false); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXDoHLEvent -- - * - * Dispatch incomming highlevel events. - * - * Results: - * None. - * - * Side effects: - * Depends on the incoming event. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXDoHLEvent( - void *theEvent) -{ - return AEProcessAppleEvent(theEvent); -} - -/* - *---------------------------------------------------------------------- - * - * QuitHandler -- - * - * This is the 'quit' core Apple event handler. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -QuitHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - KillEvent *eventPtr; - - if (interp) { - /* - * Call the exit command from the event loop, since you are not - * supposed to call ExitToShell in an Apple Event Handler. We put this - * at the head of Tcl's event queue because this message usually comes - * when the Mac is shutting down, and we want to kill the shell as - * quickly as possible. - */ - - eventPtr = ckalloc(sizeof(KillEvent)); - eventPtr->header.proc = ReallyKillMe; - eventPtr->interp = interp; - - Tcl_QueueEvent((Tcl_Event *) eventPtr, TCL_QUEUE_HEAD); - } - return noErr; -} - -/* - *---------------------------------------------------------------------- - * - * OappHandler -- - * - * This is the 'oapp' core Apple event handler. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -OappHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - Tcl_CmdInfo dummy; - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - - if (interp && - Tcl_GetCommandInfo(interp, "::tk::mac::OpenApplication", &dummy)){ - int code = Tcl_GlobalEval(interp, "::tk::mac::OpenApplication"); - if (code != TCL_OK) { - Tcl_BackgroundException(interp, code); - } - } - return noErr; -} - -/* - *---------------------------------------------------------------------- - * - * RappHandler -- - * - * This is the 'rapp' core Apple event handler. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -RappHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - Tcl_CmdInfo dummy; - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - ProcessSerialNumber thePSN = {0, kCurrentProcess}; - OSStatus err = ChkErr(SetFrontProcess, &thePSN); - - if (interp && Tcl_GetCommandInfo(interp, - "::tk::mac::ReopenApplication", &dummy)) { - int code = Tcl_GlobalEval(interp, "::tk::mac::ReopenApplication"); - if (code != TCL_OK){ - Tcl_BackgroundException(interp, code); - } - } - return err; -} - -/* - *---------------------------------------------------------------------- - * - * PrefsHandler -- - * - * This is the 'pref' core Apple event handler. Called when the user - * selects 'Preferences...' in MacOS X - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -PrefsHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - Tcl_CmdInfo dummy; - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - - if (interp && - Tcl_GetCommandInfo(interp, "::tk::mac::ShowPreferences", &dummy)){ - int code = Tcl_GlobalEval(interp, "::tk::mac::ShowPreferences"); - if (code != TCL_OK) { - Tcl_BackgroundException(interp, code); - } - } - return noErr; -} - -/* - *---------------------------------------------------------------------- - * - * OdocHandler -- - * - * This is the 'odoc' core Apple event handler. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -OdocHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - AEDescList fileSpecList; - FSRef file; - DescType type; - Size actual; - long count, index; - AEKeyword keyword; - Tcl_DString command, pathName; - Tcl_CmdInfo dummy; - int code; - - /* - * Don't bother if we don't have an interp or the open document procedure - * doesn't exist. - */ - - if (!interp || - !Tcl_GetCommandInfo(interp, "::tk::mac::OpenDocument", &dummy)) { - return noErr; - } - - /* - * If we get any errors while retrieving our parameters we just return with - * no error. - */ - - if (ChkErr(AEGetParamDesc, event, keyDirectObject, typeAEList, - &fileSpecList) != noErr) { - return noErr; - } - if (MissedAnyParameters(event) != noErr) { - return noErr; - } - if (ChkErr(AECountItems, &fileSpecList, &count) != noErr) { - return noErr; - } - - /* - * Convert our parameters into a script to evaluate, skipping things that - * we can't handle right. - */ - - Tcl_DStringInit(&command); - Tcl_DStringAppend(&command, "::tk::mac::OpenDocument", -1); - for (index = 1; index <= count; index++) { - if (ChkErr(AEGetNthPtr, &fileSpecList, index, typeFSRef, &keyword, - &type, (Ptr) &file, sizeof(FSRef), &actual) != noErr) { - continue; - } - - if (ChkErr(FSRefToDString, &file, &pathName) == noErr) { - Tcl_DStringAppendElement(&command, Tcl_DStringValue(&pathName)); - Tcl_DStringFree(&pathName); - } - } - - /* - * Now handle the event by evaluating a script. - */ - - code = Tcl_EvalEx(interp, Tcl_DStringValue(&command), - Tcl_DStringLength(&command), TCL_EVAL_GLOBAL); - if (code != TCL_OK) { - Tcl_BackgroundException(interp, code); - } - Tcl_DStringFree(&command); - return noErr; -} - -/* - *---------------------------------------------------------------------- - * - * PrintHandler -- - * - * This is the 'pdoc' core Apple event handler. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -PrintHandler( - const AppleEvent * event, - AppleEvent * reply, - long handlerRefcon) -{ - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - AEDescList fileSpecList; - FSRef file; - DescType type; - Size actual; - long count, index; - AEKeyword keyword; - Tcl_DString command, pathName; - Tcl_CmdInfo dummy; - int code; - - /* - * Don't bother if we don't have an interp or the print document procedure - * doesn't exist. - */ - - if (!interp || - !Tcl_GetCommandInfo(interp, "::tk::mac::PrintDocument", &dummy)) { - return noErr; - } - - /* - * If we get any errors while retrieving our parameters we just return with - * no error. - */ - - if (ChkErr(AEGetParamDesc, event, keyDirectObject, typeAEList, - &fileSpecList) != noErr) { - return noErr; - } - if (ChkErr(MissedAnyParameters, event) != noErr) { - return noErr; - } - if (ChkErr(AECountItems, &fileSpecList, &count) != noErr) { - return noErr; - } - - Tcl_DStringInit(&command); - Tcl_DStringAppend(&command, "::tk::mac::PrintDocument", -1); - for (index = 1; index <= count; index++) { - if (ChkErr(AEGetNthPtr, &fileSpecList, index, typeFSRef, &keyword, - &type, (Ptr) &file, sizeof(FSRef), &actual) != noErr) { - continue; - } - - if (ChkErr(FSRefToDString, &file, &pathName) == noErr) { - Tcl_DStringAppendElement(&command, Tcl_DStringValue(&pathName)); - Tcl_DStringFree(&pathName); - } - } - - /* - * Now handle the event by evaluating a script. - */ - - code = Tcl_EvalEx(interp, Tcl_DStringValue(&command), - Tcl_DStringLength(&command), TCL_EVAL_GLOBAL); - if (code != TCL_OK) { - Tcl_BackgroundException(interp, code); - } - Tcl_DStringFree(&command); - return noErr; -} - -/* - *---------------------------------------------------------------------- - * - * ScriptHandler -- - * - * This handler process the script event. - * - * Results: - * Schedules the given event to be processed. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSErr -ScriptHandler( - const AppleEvent *event, - AppleEvent *reply, - long handlerRefcon) -{ - OSStatus theErr; - AEDescList theDesc; - Size size; - int tclErr = -1; - Tcl_Interp *interp = (Tcl_Interp *) handlerRefcon; - char errString[128]; - - /* - * The do script event receives one parameter that should be data or a - * file. - */ - - theErr = AEGetParamDesc(event, keyDirectObject, typeWildCard, - &theDesc); - if (theErr != noErr) { - sprintf(errString, "AEDoScriptHandler: GetParamDesc error %d", - (int)theErr); - theErr = AEPutParamPtr(reply, keyErrorString, typeChar, errString, - strlen(errString)); - } else if (MissedAnyParameters(event)) { - /* - * Return error if parameter is missing. - */ - - sprintf(errString, "AEDoScriptHandler: extra parameters"); - AEPutParamPtr(reply, keyErrorString, typeChar, errString, - strlen(errString)); - theErr = -1771; - } else if (theDesc.descriptorType == (DescType) typeAlias && - AEGetParamPtr(event, keyDirectObject, typeFSRef, NULL, NULL, - 0, &size) == noErr && size == sizeof(FSRef)) { - /* - * We've had a file sent to us. Source it. - */ - - FSRef file; - theErr = AEGetParamPtr(event, keyDirectObject, typeFSRef, NULL, &file, - size, NULL); - if (theErr == noErr) { - Tcl_DString scriptName; - - theErr = FSRefToDString(&file, &scriptName); - if (theErr == noErr) { - tclErr = Tcl_EvalFile(interp, Tcl_DStringValue(&scriptName)); - Tcl_DStringFree(&scriptName); - } else { - sprintf(errString, "AEDoScriptHandler: file not found"); - AEPutParamPtr(reply, keyErrorString, typeChar, errString, - strlen(errString)); - } - } - } else if (AEGetParamPtr(event, keyDirectObject, typeUTF8Text, NULL, NULL, - 0, &size) == noErr && size) { - /* - * We've had some data sent to us. Evaluate it. - */ - - char *data = ckalloc(size + 1); - theErr = AEGetParamPtr(event, keyDirectObject, typeUTF8Text, NULL, data, - size, NULL); - if (theErr == noErr) { - tclErr = Tcl_EvalEx(interp, data, size, TCL_EVAL_GLOBAL); - } - } else { - /* - * Umm, don't recognize what we've got... - */ - - sprintf(errString, "AEDoScriptHandler: invalid script type '%-4.4s', " - "must be 'alis' or coercable to 'utf8'", - (char*) &theDesc.descriptorType); - AEPutParamPtr(reply, keyErrorString, typeChar, errString, - strlen(errString)); - theErr = -1770; - } - - /* - * If we actually go to run Tcl code - put the result in the reply. - */ - - if (tclErr >= 0) { - int reslen; - const char *result = - Tcl_GetStringFromObj(Tcl_GetObjResult(interp), &reslen); - - if (tclErr == TCL_OK) { - AEPutParamPtr(reply, keyDirectObject, typeChar, result, reslen); - } else { - AEPutParamPtr(reply, keyErrorString, typeChar, result, reslen); - AEPutParamPtr(reply, keyErrorNumber, typeSInt32, (Ptr) &tclErr, - sizeof(int)); - } - } - - AEDisposeDesc(&theDesc); - return theErr; -} - -/* - *---------------------------------------------------------------------- - * - * ReallyKillMe -- - * - * This proc tries to kill the shell by running exit, called from an - * event scheduled by the "Quit" AppleEvent handler. - * - * Results: - * Runs the "exit" command which might kill the shell. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -ReallyKillMe( - Tcl_Event *eventPtr, - int flags) -{ - Tcl_Interp *interp = ((KillEvent *) eventPtr)->interp; - Tcl_CmdInfo dummy; - int quit = Tcl_GetCommandInfo(interp, "::tk::mac::Quit", &dummy); - int code = Tcl_GlobalEval(interp, quit ? "::tk::mac::Quit" : "exit"); - - if (code != TCL_OK) { - /* - * Should be never reached... - */ - - Tcl_BackgroundException(interp, code); - } - return 1; -} - -/* - *---------------------------------------------------------------------- - * - * MissedAnyParameters -- - * - * Checks to see if parameters are still left in the event. - * - * Results: - * True or false. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -MissedAnyParameters( - const AppleEvent *theEvent) -{ - DescType returnedType; - Size actualSize; - OSStatus err; - - err = AEGetAttributePtr(theEvent, keyMissedKeywordAttr, - typeWildCard, &returnedType, NULL, 0, &actualSize); - - return (err != errAEDescNotFound); -} - -/* - *---------------------------------------------------------------------- - * - * FSRefToDString -- - * - * Get a POSIX path from an FSRef. - * - * Results: - * In the parameter ds. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSStatus -FSRefToDString( - const FSRef *fsref, - Tcl_DString *ds) -{ - UInt8 fileName[PATH_MAX+1]; - OSStatus err; - - err = ChkErr(FSRefMakePath, fsref, fileName, sizeof(fileName)); - if (err == noErr) { - Tcl_ExternalToUtfDString(NULL, (char*) fileName, -1, ds); - } - return err; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ diff --git a/carbon/tkMacOSXInit.c b/carbon/tkMacOSXInit.c deleted file mode 100644 index 7e5803d..0000000 --- a/carbon/tkMacOSXInit.c +++ /dev/null @@ -1,599 +0,0 @@ -/* - * tkMacOSXInit.c -- - * - * This file contains Mac OS X -specific interpreter initialization - * functions. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" - -#include <sys/stat.h> -#include <sys/utsname.h> -#include <mach-o/dyld.h> -#include <mach-o/getsect.h> - -/* - * Define the following to 0 to not attempt to use an undocumented SPI to - * notify the window server that an unbundled executable is a full GUI - * application after loading Tk. - */ - -#ifndef MAC_OSX_TK_USE_CPS_SPI -#define MAC_OSX_TK_USE_CPS_SPI 1 -#endif - -/* - * The following structures are used to map the script/language codes of a - * font to the name that should be passed to Tcl_GetEncoding() to obtain the - * encoding for that font. The set of numeric constants is fixed and defined - * by Apple. - */ - -typedef struct Map { - CFStringEncoding numKey; - const char *strKey; -} Map; - -static Map scriptMap[] = { - {smRoman, "macRoman"}, - {smJapanese, "macJapan"}, - {smTradChinese, "macChinese"}, - {smKorean, "macKorean"}, - {smArabic, "macArabic"}, - {smHebrew, "macHebrew"}, - {smGreek, "macGreek"}, - {smCyrillic, "macCyrillic"}, - {smRSymbol, "macRSymbol"}, - {smDevanagari, "macDevanagari"}, - {smGurmukhi, "macGurmukhi"}, - {smGujarati, "macGujarati"}, - {smOriya, "macOriya"}, - {smBengali, "macBengali"}, - {smTamil, "macTamil"}, - {smTelugu, "macTelugu"}, - {smKannada, "macKannada"}, - {smMalayalam, "macMalayalam"}, - {smSinhalese, "macSinhalese"}, - {smBurmese, "macBurmese"}, - {smKhmer, "macKhmer"}, - {smThai, "macThailand"}, - {smLaotian, "macLaos"}, - {smGeorgian, "macGeorgia"}, - {smArmenian, "macArmenia"}, - {smSimpChinese, "macSimpChinese"}, - {smTibetan, "macTIbet"}, - {smMongolian, "macMongolia"}, - {smGeez, "macEthiopia"}, - {smEastEurRoman, "macCentEuro"}, - {smVietnamese, "macVietnam"}, - {smExtArabic, "macSindhi"}, - {0, NULL} -}; - -Tcl_Encoding TkMacOSXCarbonEncoding = NULL; - -/* - * If the App is in an App package, then we want to add the Scripts directory - * to the auto_path. - */ - -static char scriptPath[PATH_MAX + 1] = ""; - -float tkMacOSXToolboxVersionNumber = 0; - -/* - *---------------------------------------------------------------------- - * - * TkpInit -- - * - * Performs Mac-specific interpreter initialization related to the - * tk_library variable. - * - * Results: - * Returns a standard Tcl result. Leaves an error message or result in - * the interp's result. - * - * Side effects: - * Sets "tk_library" Tcl variable, runs "tk.tcl" script. - * - *---------------------------------------------------------------------- - */ - -int -TkpInit( - Tcl_Interp *interp) -{ - static char tkLibPath[PATH_MAX + 1]; - static int initialized = 0; - - Tk_MacOSXSetupTkNotifier(); - - /* - * Since it is possible for TkInit to be called multiple times and we - * don't want to do the following initialization multiple times we protect - * against doing it more than once. - */ - - if (!initialized) { - int bundledExecutable = 0; - CFBundleRef bundleRef; - CFURLRef bundleUrl = NULL; - CFStringEncoding encoding; - const char *encodingStr = NULL; - int i; - struct utsname name; - long osVersion = 0; - struct stat st; - - initialized = 1; - - /* - * Initialize/check OS version variable for runtime checks. - */ - - if (!uname(&name)) { - osVersion = strtol(name.release, NULL, 10) - 4; - } - if (osVersion && osVersion < (MAC_OS_X_VERSION_MIN_REQUIRED-1000)/10) { - Tcl_Panic("Mac OS X 10.%d or later required !", - (MAC_OS_X_VERSION_MIN_REQUIRED-1000)/10); - } - TK_IF_MAC_OS_X_API (3, &kHIToolboxVersionNumber, - tkMacOSXToolboxVersionNumber = kHIToolboxVersionNumber; - ) TK_ELSE_MAC_OS_X (3, - if (osVersion > 5) { - tkMacOSXToolboxVersionNumber = INFINITY; - } else if (osVersion >= 3) { - static const float tbVersions[3] = { - kHIToolboxVersionNumber10_3, - kHIToolboxVersionNumber10_4, - kHIToolboxVersionNumber10_5, - }; - - tkMacOSXToolboxVersionNumber = tbVersions[osVersion-3]; - } - ) TK_ENDIF - - /* - * When Tk is in a framework, force tcl_findLibrary to look in the - * framework scripts directory. - * FIXME: Should we come up with a more generic way of doing this? - */ - -#ifdef TK_FRAMEWORK - if (Tcl_MacOSXOpenVersionedBundleResources(interp, - "com.tcltk.tklibrary", TK_FRAMEWORK_VERSION, 1, PATH_MAX, - tkLibPath) != TCL_OK) -#endif - { - /* Tk.framework not found, check if resource file is open */ - Handle rsrc = Get1NamedResource('CURS', "\phand"); - if (rsrc) { - ReleaseResource(rsrc); - } else { -#ifndef __LP64__ - const struct mach_header *image; - char *data = NULL; - uint32_t size; - int fd = -1; - char fileName[L_tmpnam + 15]; - uint32_t i, n; - - /* Get resource data from __tk_rsrc section of tk dylib file*/ - n = _dyld_image_count(); - for (i = 0; i < n; i++) { - image = _dyld_get_image_header(i); - if (image) { - data = getsectdatafromheader(image, SEG_TEXT, - "__tk_rsrc", (void *) &size); - if (data) { - data += _dyld_get_image_vmaddr_slide(i); - break; - } - } - } - while (data) { - FSRef ref; - SInt16 refNum; - - /* - * Write resource data to temporary file and open it. - */ - - strcpy(fileName, P_tmpdir); - if (fileName[strlen(fileName) - 1] != '/') { - strcat(fileName, "/"); - } - strcat(fileName, "tkMacOSX_XXXXXX"); - fd = mkstemp(fileName); - if (fd == -1) { - break; - } - fcntl(fd, F_SETFD, FD_CLOEXEC); - if (write(fd, data, size) == -1) { - break; - } - if(ChkErr(FSPathMakeRef, (unsigned char *) fileName, &ref, - NULL) != noErr) { - break; - } - ChkErr(FSOpenResourceFile, &ref, 0, NULL, fsRdPerm, - &refNum); - break; - } - if (fd != -1) { - unlink(fileName); - close(fd); - } -#endif /* __LP64__ */ - } - } - - /* - * If we are loaded into an executable that is not a bundled - * application, the window server does not let us come to the - * foreground. For such an executable, notify the window server that - * we are now a full GUI application. - */ - - /* Check whether we are a bundled executable: */ - bundleRef = CFBundleGetMainBundle(); - if (bundleRef) { - bundleUrl = CFBundleCopyBundleURL(bundleRef); - } - if (bundleUrl) { - /* - * A bundled executable is two levels down from its main bundle - * directory (e.g. Wish.app/Contents/MacOS/Wish), whereas an - * unbundled executable's main bundle directory is just the - * directory containing the executable. So to check whether we are - * bundled, we delete the last three path components of the - * executable's url and compare the resulting url with the main - * bundle url. - */ - - int j = 3; - CFURLRef url = CFBundleCopyExecutableURL(bundleRef); - - while (url && j--) { - CFURLRef parent = - CFURLCreateCopyDeletingLastPathComponent(NULL, url); - - CFRelease(url); - url = parent; - } - if (url) { - bundledExecutable = CFEqual(bundleUrl, url); - CFRelease(url); - } - CFRelease(bundleUrl); - } - - /* - * If we are not a bundled executable, notify the window server that - * we are a foregroundable app. - */ - - if (!bundledExecutable) { - OSStatus err = procNotFound; - ProcessSerialNumber psn = { 0, kCurrentProcess }; - - TK_IF_MAC_OS_X_API (3, TransformProcessType, - err = ChkErr(TransformProcessType, &psn, - kProcessTransformToForegroundApplication); - ) TK_ENDIF -#if MAC_OSX_TK_USE_CPS_SPI - if (err != noErr) { - /* - * When building or running on 10.2 or when the above fails, - * attempt to use undocumented CPS SPI to notify the window - * server. Load the SPI symbol dynamically, so that we don't - * break if it ever disappears or changes its name. - */ - - TkMacOSXInitNamedSymbol(CoreGraphics, OSStatus, - CPSEnableForegroundOperation, ProcessSerialNumberPtr); - if (CPSEnableForegroundOperation) { - ChkErr(CPSEnableForegroundOperation, &psn); - } - } -#endif /* MAC_OSX_TK_USE_CPS_SPI */ - } - - TkMacOSXInitAppleEvents(interp); - TkMacOSXInitCarbonEvents(interp); - TkMacOSXInitMenus(interp); - TkMacOSXUseAntialiasedText(interp, -1); - TkMacOSXInitCGDrawing(interp, TRUE, 0); - TkMacOSXInitKeyboard(interp); - - encoding = CFStringGetSystemEncoding(); - - for (i = 0; scriptMap[i].strKey != NULL; i++) { - if (scriptMap[i].numKey == encoding) { - encodingStr = scriptMap[i].strKey; - break; - } - } - if (encodingStr == NULL) { - encodingStr = "macRoman"; - } - - TkMacOSXCarbonEncoding = Tcl_GetEncoding(NULL, encodingStr); - if (TkMacOSXCarbonEncoding == NULL) { - TkMacOSXCarbonEncoding = Tcl_GetEncoding(NULL, NULL); - } - - /* - * FIXME: Close stdin & stdout for remote debugging otherwise we will - * fight with gdb for stdin & stdout - */ - - if (getenv("XCNOSTDIN") != NULL) { - close(0); - close(1); - } - - /* - * If we don't have a TTY and stdin is a special character file of - * length 0, (e.g. /dev/null, which is what Finder sets when double - * clicking Wish) then use the Tk based console interpreter. - */ - - if (getenv("TK_CONSOLE") || - (!isatty(0) && (fstat(0, &st) || - (S_ISCHR(st.st_mode) && st.st_blocks == 0)))) { - Tk_InitConsoleChannels(interp); - Tcl_RegisterChannel(interp, Tcl_GetStdChannel(TCL_STDIN)); - Tcl_RegisterChannel(interp, Tcl_GetStdChannel(TCL_STDOUT)); - Tcl_RegisterChannel(interp, Tcl_GetStdChannel(TCL_STDERR)); - - /* - * Only show the console if we don't have a startup script - * and tcl_interactive hasn't been set already. - */ - - if (Tcl_GetStartupScript(NULL) == NULL) { - const char *intvar = Tcl_GetVar(interp, - "tcl_interactive", TCL_GLOBAL_ONLY); - - if (intvar == NULL) { - Tcl_SetVar(interp, "tcl_interactive", "1", - TCL_GLOBAL_ONLY); - } - } - if (Tk_CreateConsoleWindow(interp) == TCL_ERROR) { - return TCL_ERROR; - } - } - } - - if (tkLibPath[0] != '\0') { - Tcl_SetVar(interp, "tk_library", tkLibPath, TCL_GLOBAL_ONLY); - } - - if (scriptPath[0] != '\0') { - Tcl_SetVar(interp, "auto_path", scriptPath, - TCL_GLOBAL_ONLY|TCL_LIST_ELEMENT|TCL_APPEND_VALUE); - } - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetAppName -- - * - * Retrieves the name of the current application from a platform specific - * location. For Unix, the application name is the tail of the path - * contained in the tcl variable argv0. - * - * Results: - * Returns the application name in the given Tcl_DString. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpGetAppName( - Tcl_Interp *interp, - Tcl_DString *namePtr) /* A previously initialized Tcl_DString. */ -{ - const char *p, *name; - - name = Tcl_GetVar(interp, "argv0", TCL_GLOBAL_ONLY); - if ((name == NULL) || (*name == 0)) { - name = "tk"; - } else { - p = strrchr(name, '/'); - if (p != NULL) { - name = p+1; - } - } - Tcl_DStringAppend(namePtr, name, -1); -} - -/* - *---------------------------------------------------------------------- - * - * TkpDisplayWarning -- - * - * This routines is called from Tk_Main to display warning messages that - * occur during startup. - * - * Results: - * None. - * - * Side effects: - * Generates messages on stdout. - * - *---------------------------------------------------------------------- - */ - -void -TkpDisplayWarning( - const char *msg, /* Message to be displayed. */ - const char *title) /* Title of warning. */ -{ - Tcl_Channel errChannel = Tcl_GetStdChannel(TCL_STDERR); - - if (errChannel) { - Tcl_WriteChars(errChannel, title, -1); - Tcl_WriteChars(errChannel, ": ", 2); - Tcl_WriteChars(errChannel, msg, -1); - Tcl_WriteChars(errChannel, "\n", 1); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXDefaultStartupScript -- - * - * On MacOS X, we look for a file in the Resources/Scripts directory - * called AppMain.tcl and if found, we set argv[1] to that, so that the - * rest of the code will find it, and add the Scripts folder to the - * auto_path. If we don't find the startup script, we just bag it, - * assuming the user is starting up some other way. - * - * Results: - * None. - * - * Side effects: - * Tcl_SetStartupScript() called when AppMain.tcl found. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXDefaultStartupScript(void) -{ - CFBundleRef bundleRef; - - bundleRef = CFBundleGetMainBundle(); - - if (bundleRef != NULL) { - CFURLRef appMainURL = CFBundleCopyResourceURL(bundleRef, - CFSTR("AppMain"), CFSTR("tcl"), CFSTR("Scripts")); - - if (appMainURL != NULL) { - CFURLRef scriptFldrURL; - char startupScript[PATH_MAX + 1]; - - if (CFURLGetFileSystemRepresentation (appMainURL, true, - (unsigned char *) startupScript, PATH_MAX)) { - Tcl_SetStartupScript(Tcl_NewStringObj(startupScript,-1), NULL); - scriptFldrURL = CFURLCreateCopyDeletingLastPathComponent(NULL, - appMainURL); - if (scriptFldrURL != NULL) { - CFURLGetFileSystemRepresentation(scriptFldrURL, true, - (unsigned char *) scriptPath, PATH_MAX); - CFRelease(scriptFldrURL); - } - } - CFRelease(appMainURL); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetNamedSymbol -- - * - * Dynamically acquire address of a named symbol from a loaded dynamic - * library, so that we can use API that may not be available on all OS - * versions. If module is non-NULL and not the empty string, use twolevel - * namespace lookup. - * - * Results: - * Address of given symbol or NULL if unavailable. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void* -TkMacOSXGetNamedSymbol( - const char* module, - const char* symbol) -{ - NSSymbol nsSymbol = NULL; - - if (module && *module) { - if (NSIsSymbolNameDefinedWithHint(symbol, module)) { - nsSymbol = NSLookupAndBindSymbolWithHint(symbol, module); - } - } else { - if (NSIsSymbolNameDefined(symbol)) { - nsSymbol = NSLookupAndBindSymbol(symbol); - } - } - - if (!nsSymbol) { - return NULL; - } - return NSAddressOfSymbol(nsSymbol); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetStringObjFromCFString -- - * - * Get a string object from a CFString as efficiently as possible. - * - * Results: - * New string object or NULL if conversion failed. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE Tcl_Obj* -TkMacOSXGetStringObjFromCFString( - CFStringRef str) -{ - Tcl_Obj *obj = NULL; - const char *c = CFStringGetCStringPtr(str, kCFStringEncodingUTF8); - - if (c) { - obj = Tcl_NewStringObj(c, -1); - } else { - CFRange all = CFRangeMake(0, CFStringGetLength(str)); - CFIndex len; - - if (CFStringGetBytes(str, all, kCFStringEncodingUTF8, 0, false, NULL, - 0, &len) > 0 && len < INT_MAX) { - obj = Tcl_NewObj(); - Tcl_SetObjLength(obj, len); - CFStringGetBytes(str, all, kCFStringEncodingUTF8, 0, false, - (UInt8*) obj->bytes, len, NULL); - } - } - return obj; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXInt.h b/carbon/tkMacOSXInt.h deleted file mode 100644 index 48635c8..0000000 --- a/carbon/tkMacOSXInt.h +++ /dev/null @@ -1,186 +0,0 @@ -/* - * tkMacOSXInt.h -- - * - * Declarations of Macintosh specific shared variables and procedures. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#ifndef _TKMACINT -#define _TKMACINT - -#ifndef _TKINT -#include "tkInt.h" -#endif - -#define TextStyle MacTextStyle -#include <Carbon/Carbon.h> -#undef TextStyle - -/* - * Include platform specific public interfaces. - */ - -#ifndef _TKMAC -#include "tkMacOSX.h" -#endif - -struct TkWindowPrivate { - TkWindow *winPtr; /* Ptr to tk window or NULL if Pixmap */ - CGrafPtr grafPtr; - CGContextRef context; - ControlRef rootControl; - int xOff; /* X offset from toplevel window */ - int yOff; /* Y offset from toplevel window */ - CGSize size; - HIShapeRef visRgn; /* Visible region of window */ - HIShapeRef aboveVisRgn; /* Visible region of window & its children */ - CGRect drawRect; /* Clipped drawing rect */ - int referenceCount; /* Don't delete toplevel until children are - * gone. */ - struct TkWindowPrivate *toplevel; - /* Pointer to the toplevel datastruct. */ - int flags; /* Various state see defines below. */ -}; -typedef struct TkWindowPrivate MacDrawable; - -/* - * This list is used to keep track of toplevel windows that have a Mac - * window attached. This is useful for several things, not the least - * of which is maintaining floating windows. - */ - -typedef struct TkMacOSXWindowList { - struct TkMacOSXWindowList *nextPtr; - /* The next window in the list. */ - TkWindow *winPtr; /* This window */ -} TkMacOSXWindowList; - -/* - * Defines use for the flags field of the MacDrawable data structure. - */ - -#define TK_SCROLLBAR_GROW 0x01 -#define TK_CLIP_INVALID 0x02 -#define TK_HOST_EXISTS 0x04 -#define TK_DRAWN_UNDER_MENU 0x08 -#define TK_CLIPPED_DRAW 0x10 -#define TK_IS_PIXMAP 0x20 -#define TK_IS_BW_PIXMAP 0x40 - -/* - * I am reserving TK_EMBEDDED = 0x100 in the MacDrawable flags - * This is defined in tk.h. We need to duplicate the TK_EMBEDDED flag in the - * TkWindow structure for the window, but in the MacWin. This way we can - * still tell what the correct port is after the TKWindow structure has been - * freed. This actually happens when you bind destroy of a toplevel to - * Destroy of a child. - */ - -/* - * 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; - -/* - * Defines for zero-sized GC cache - */ - -typedef struct {} TkpGCCache; -#define TkpInitGCCache(gc) -#define TkpFreeGCCache(gc) - -/* - * Defines used for TkMacOSXInvalidateWindow - */ - -#define TK_WINDOW_ONLY 0 -#define TK_PARENT_WINDOW 1 - -/* - * Accessor for the privatePtr flags field for the TK_HOST_EXISTS field - */ - -#define TkMacOSXHostToplevelExists(tkwin) \ - (((TkWindow *) (tkwin))->privatePtr->toplevel->flags & TK_HOST_EXISTS) - -/* - * Defines use for the flags argument to TkGenWMConfigureEvent. - */ - -#define TK_LOCATION_CHANGED 1 -#define TK_SIZE_CHANGED 2 -#define TK_BOTH_CHANGED 3 - -/* - * Defines for tkTextDisp.c - */ - -#define TK_LAYOUT_WITH_BASE_CHUNKS 1 -#define TK_DRAW_IN_CONTEXT 1 - -#if !TK_DRAW_IN_CONTEXT -MODULE_SCOPE int TkMacOSXCompareColors(unsigned long c1, unsigned long c2); -#endif - -/* - * Globals shared among TkAqua. - */ - -MODULE_SCOPE MenuHandle tkCurrentAppleMenu; /* Handle to current Apple Menu */ -MODULE_SCOPE MenuHandle tkAppleMenu; /* Handle to default Apple Menu */ -MODULE_SCOPE MenuHandle tkFileMenu; /* Handles to menus */ -MODULE_SCOPE MenuHandle tkEditMenu; /* Handles to menus */ -MODULE_SCOPE int tkPictureIsOpen; /* If this is 1, we are drawing to a - * picture The clipping should then be - * done relative to the bounds of the - * picture rather than the window. As - * of OS X.0.4, something is seriously - * wrong: The clipping bounds only - * seem to work if the top,left values - * are 0,0 The destination rectangle - * for CopyBits should also have - * top,left values of 0,0 - */ -MODULE_SCOPE TkMacOSXWindowList *tkMacOSXWindowListPtr; /* List of toplevels */ -MODULE_SCOPE Tcl_Encoding TkMacOSXCarbonEncoding; - -/* - * Prototypes of internal procs not in the stubs table. - */ - -MODULE_SCOPE void TkMacOSXDefaultStartupScript(void); -#if 0 -MODULE_SCOPE int XSetClipRectangles(Display *d, GC gc, int clip_x_origin, - int clip_y_origin, XRectangle* rectangles, int n, int ordering); -#endif -MODULE_SCOPE void TkpClipDrawableToRect(Display *display, Drawable d, int x, - int y, int width, int height); -MODULE_SCOPE void TkpRetainRegion(TkRegion r); -MODULE_SCOPE void TkpReleaseRegion(TkRegion r); - -/* - * Include the stubbed internal platform-specific API. - */ - -#include "tkIntPlatDecls.h" - -#endif /* _TKMACINT */ diff --git a/carbon/tkMacOSXKeyEvent.c b/carbon/tkMacOSXKeyEvent.c deleted file mode 100644 index d801f68..0000000 --- a/carbon/tkMacOSXKeyEvent.c +++ /dev/null @@ -1,1168 +0,0 @@ -/* - * tkMacOSXKeyEvent.c -- - * - * This file implements functions that decode & handle keyboard events on - * MacOS X. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - * - * The following terms apply to all files originating from Apple Computer, - * Inc. ("Apple") and associated with the software unless explicitly - * disclaimed in individual files. - * - * Apple hereby grants permission to use, copy, modify, distribute, and - * license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that - * this notice is included verbatim in any distributions. No written - * agreement, license, or royalty fee is required for any of the - * authorized uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms described here, - * provided that the new terms are clearly indicated on the first page of - * each file where they apply. - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE SOFTWARE BE - * LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS - * DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF APPLE OR THE AUTHORS - * HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS - * AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT - * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR - * A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED - * ON AN "AS IS" BASIS, AND APPLE,THE AUTHORS AND DISTRIBUTORS HAVE NO - * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR - * MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf of the - * U.S. government, the Government shall have only "Restricted Rights" in - * the software and related documentation as defined in the Federal - * Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are - * acquiring the software on behalf of the Department of Defense, the - * software shall be classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in Clause - * 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the - * authors grant the U.S. Government and others acting in its behalf - * permission to use and distribute the software in accordance with the - * terms specified in this license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_KEYBOARD -#endif -*/ - -typedef struct { - WindowRef whichWindow; - int global_x, global_y; - int local_x, local_y; - unsigned int state; - UInt32 keyCode; - UInt32 keyModifiers; - UInt32 message; - unsigned char ch; -} KeyEventData; - -static Tk_Window grabWinPtr = NULL; - /* Current grab window, NULL if no grab. */ -static Tk_Window keyboardGrabWinPtr = NULL; - /* Current keyboard grab window. */ -static UInt32 deadKeyStateUp = 0; - /* The deadkey state for the current sequence - * of keyup events or 0 if not in a deadkey - * sequence */ -static UInt32 deadKeyStateDown = 0; - /* Ditto for keydown */ - -/* - * Declarations for functions used only in this file. - */ - -static int GenerateKeyEvent(UInt32 eKind, KeyEventData *e, - UInt32 savedKeyCode, UInt32 savedModifiers, - const UniChar *chars, int numChars); -static TextEncoding GetKCHREncoding(ScriptCode script, SInt32 layoutid); -static int GetKeyboardLayout(Ptr *resourcePtr, - TextEncoding *encodingPtr); -static int InitKeyData(KeyEventData *keyEventDataPtr); -static int InitKeyEvent(XEvent *eventPtr, KeyEventData *e, - UInt32 savedKeyCode, UInt32 savedModifiers); -static int KeycodeToUnicodeViaKCHRResource(UniChar *uniChars, - int maxChars, Ptr kchr, TextEncoding encoding, - EventKind eKind, UInt32 keycode, UInt32 modifiers, - UInt32 *deadKeyStatePtr); -static int KeycodeToUnicodeViaUnicodeResource(UniChar *uniChars, - int maxChars, Ptr uchr, EventKind eKind, - UInt32 keycode, UInt32 modifiers, - UInt32 *deadKeyStatePtr); - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessKeyboardEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessKeyboardEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - static UInt32 savedKeyCode = 0; - static UInt32 savedModifiers = 0; - static UniChar savedChar = 0; - OSStatus err; - KeyEventData keyEventData; - MenuRef menuRef; - MenuItemIndex menuItemIndex; - int eventGenerated; - UniChar uniChars[5]; /* make this larger, if needed */ - UInt32 uniCharsLen = 0; - - if (!InitKeyData(&keyEventData)) { - statusPtr->err = 1; - return false; - } - - /* - * Because of the way that Tk operates, we can't in general funnel menu - * accelerators through IsMenuKeyEvent. Tk treats accelerators as mere - * decoration, and the user has to install bindings to get them to fire. - * - * However, the only way to trigger the Hide & Hide Others functions is by - * invoking the Menu command for Hide. So there is no nice way to provide a - * Tk command to hide the app which would be available for a binding. So I - * am going to hijack Command-H and Command-Shift-H here, and run the menu - * commands. Since the HI Guidelines explicitly reserve these for Hide, - * this isn't such a bad thing. Also, if you do rebind Command-H to another - * menu item, Hide will lose its binding. - * - * Note that I don't really do anything at this point, I just mark - * stopProcessing as 0 and return, and then the RecieveAndProcessEvent code - * will dispatch the event to the default handler. - */ - - if ((eventPtr->eKind == kEventRawKeyDown - || eventPtr->eKind == kEventRawKeyRepeat) - && IsMenuKeyEvent(tkCurrentAppleMenu, eventPtr->eventRef, - kMenuEventQueryOnly, &menuRef, &menuItemIndex)) { - MenuCommand menuCmd; - - GetMenuItemCommandID (menuRef, menuItemIndex, &menuCmd); - switch (menuCmd) { - case kHICommandHide: - case kHICommandHideOthers: - case kHICommandShowAll: - case kHICommandPreferences: - case kHICommandQuit: - statusPtr->stopProcessing = 0; - - /* - * TODO: may not be on event on queue. - */ - - return 0; - default: - break; - } - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamKeyMacCharCodes, typeChar, NULL, - sizeof(keyEventData.ch), NULL, &keyEventData.ch); - if (err != noErr) { - statusPtr->err = 1; - return false; - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, kEventParamKeyCode, - typeUInt32, NULL, sizeof(keyEventData.keyCode), NULL, - &keyEventData.keyCode); - if (err != noErr) { - statusPtr->err = 1; - return false; - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamKeyModifiers, typeUInt32, NULL, - sizeof(keyEventData.keyModifiers), NULL, - &keyEventData.keyModifiers); - if (err != noErr) { - statusPtr->err = 1; - return false; - } - - switch (eventPtr->eKind) { - case kEventRawKeyUp: - case kEventRawKeyDown: - case kEventRawKeyRepeat: { - UInt32 *deadKeyStatePtr; - - if (kEventRawKeyDown == eventPtr->eKind) { - deadKeyStatePtr = &deadKeyStateDown; - } else { - deadKeyStatePtr = &deadKeyStateUp; - } - - uniCharsLen = TkMacOSXKeycodeToUnicode(uniChars, - sizeof(uniChars)/sizeof(*uniChars), eventPtr->eKind, - keyEventData.keyCode, keyEventData.keyModifiers, - deadKeyStatePtr); - break; - } - } - - if (kEventRawKeyUp == eventPtr->eKind) { - /* - * For some reason the deadkey processing for KeyUp doesn't work - * sometimes, so we fudge and use the last detected KeyDown. - */ - - if ((0 == uniCharsLen) && (0 != savedChar)) { - uniChars[0] = savedChar; - uniCharsLen = 1; - } - - /* - * Suppress keyup events while we have a deadkey sequence on keydown. - * We still *do* want to collect deadkey state in this situation if - * the system provides it, that's why we do this only after - * TkMacOSXKeycodeToUnicode(). - */ - - if (0 != deadKeyStateDown) { - uniCharsLen = 0; - } - } - - keyEventData.message = keyEventData.ch|(keyEventData.keyCode << 8); - - eventGenerated = GenerateKeyEvent(eventPtr->eKind, &keyEventData, - savedKeyCode, savedModifiers, uniChars, uniCharsLen); - - savedModifiers = keyEventData.keyModifiers; - - if ((kEventRawKeyDown == eventPtr->eKind) && (uniCharsLen > 0)) { - savedChar = uniChars[0]; - } else { - savedChar = 0; - } - - statusPtr->stopProcessing = 1; - - if (eventGenerated == 0) { - savedKeyCode = keyEventData.message; - return false; - } - if (eventGenerated == -1) { - savedKeyCode = 0; - statusPtr->stopProcessing = 0; - return false; - } - savedKeyCode = 0; - return true; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateKeyEvent -- - * - * Given Macintosh keyUp, keyDown & autoKey events (in their "raw" form) - * and a list of unicode characters this function generates the - * appropriate X key events. - * - * Parameter eKind is a raw keyboard event. e contains the data sent with - * the event. savedKeyCode and savedModifiers contain the values from the - * last event that came before (see TkMacOSXProcessKeyboardEvent()). - * chars/numChars has the Unicode characters for which we want to create - * events. - * - * Results: - * 1 if an event was generated, -1 for any error. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateKeyEvent( - UInt32 eKind, - KeyEventData * e, - UInt32 savedKeyCode, - UInt32 savedModifiers, - const UniChar * chars, - int numChars) -{ - XEvent event; - int i; - - if (-1 == InitKeyEvent(&event, e, savedKeyCode, savedModifiers)) { - return -1; - } - - if (kEventRawKeyModifiersChanged == eKind) { - if (savedModifiers > e->keyModifiers) { - event.xany.type = KeyRelease; - } else { - event.xany.type = KeyPress; - } - - /* - * Use special '-1' to signify a special keycode to our platform - * specific code in tkMacOSXKeyboard.c. This is rather like what - * happens on Windows. - */ - - event.xany.send_event = -1; - - /* - * Set keycode (which was zero) to the changed modifier - */ - - event.xkey.keycode = (e->keyModifiers ^ savedModifiers); - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - } else { - for (i = 0; i < numChars; ++i) { - /* - * Encode one char in the trans_chars array that was already - * introduced for MS Windows. Don't encode the string, if it is a - * control character but was not generated with a real control - * modifier. Such control characters get generated by KeyTrans() - * for special keys, but we rather want to identify those by their - * KeySyms. - */ - - event.xkey.trans_chars[0] = 0; - if ((controlKey & e->keyModifiers) || (chars[i] >= ' ')) { - int done = Tcl_UniCharToUtf(chars[i],event.xkey.trans_chars); - - event.xkey.trans_chars[done] = 0; - } - - switch(eKind) { - case kEventRawKeyDown: - event.xany.type = KeyPress; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - break; - case kEventRawKeyUp: - event.xany.type = KeyRelease; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - break; - case kEventRawKeyRepeat: - event.xany.type = KeyRelease; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - event.xany.type = KeyPress; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - break; - default: - TkMacOSXDbgMsg("Invalid parameter eKind %ld", eKind); - return -1; - } - } - } - - return 1; -} - -/* - *---------------------------------------------------------------------- - * - * InitKeyData -- - * - * This routine initializes a KeyEventData structure by asking the OS and - * Tk for all the global information needed here. - * - * Results: - * True if the current front window can be found in Tk data structures, - * false otherwise. - * - * Side Effects: - * None - * - *---------------------------------------------------------------------- - */ - -static int -InitKeyData( - KeyEventData *keyEventDataPtr) -{ - memset(keyEventDataPtr, 0, sizeof(*keyEventDataPtr)); - - keyEventDataPtr->whichWindow = ActiveNonFloatingWindow(); - if (keyEventDataPtr->whichWindow == NULL) { - return false; - } - - XQueryPointer(NULL, None, NULL, NULL, &keyEventDataPtr->global_x, - &keyEventDataPtr->global_y, &keyEventDataPtr->local_x, - &keyEventDataPtr->local_y, &keyEventDataPtr->state); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * InitKeyEvent -- - * - * Initialize an XEvent structure by asking Tk for global information. - * Also uses a KeyEventData structure and other current state. - * - * Results: - * 1 on success, -1 for any error. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -/* - * We have a general problem here. How do we handle 'Option-char' keypresses? - * The problem is that we might want to bind to some of these (e.g. Cmd-Opt-d - * is 'uncomment' in Alpha). OTOH Option-d actually produces a real character - * on MacOS, namely a mathematical delta. - * - * The current behaviour is that a binding goes by the combinations of - * modifiers and base keysym, that is Option-d. The string value of the event - * is the mathematical delta character, so if no binding calls [break], the - * text widget will insert that character. - * - * Note that this is similar to control combinations on all platforms. They - * also generate events that have the base character as keysym and a real - * control character as character value. So Ctrl+C gets us the keysym XK_C, the - * modifier Control (so you can bind <Control-C>) and a string value as - * "\u0003". - * - * For a different solutions we may want for the event to contain keysyms for - * *both* the 'Opt-d' side of things and the mathematical delta. Then a binding - * on Opt-d will trigger, but a binding on mathematical delta would also - * trigger. This would require changes in the core, though. - */ - -static int -InitKeyEvent( - XEvent * eventPtr, - KeyEventData * e, - UInt32 savedKeyCode, - UInt32 savedModifiers) -{ - Window window; - Tk_Window tkwin; - TkDisplay *dispPtr; - - /* - * The focus must be in the FrontWindow on the Macintosh. We then query Tk - * to determine the exact Tk window that owns the focus. - */ - - window = TkMacOSXGetXWindow(e->whichWindow); - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, window); - - if (!tkwin) { - TkMacOSXDbgMsg("tkwin == NULL"); - return -1; - } - - tkwin = (Tk_Window) ((TkWindow *) tkwin)->dispPtr->focusPtr; - if (!tkwin) { - TkMacOSXDbgMsg("tkwin == NULL"); - return -1; - } - - memset(eventPtr, 0, sizeof(XEvent)); - eventPtr->xany.send_event = false; - eventPtr->xany.serial = Tk_Display(tkwin)->request; - - eventPtr->xkey.same_screen = true; - eventPtr->xkey.subwindow = None; - eventPtr->xkey.time = TkpGetMS(); - eventPtr->xkey.x_root = e->global_x; - eventPtr->xkey.y_root = e->global_y; - eventPtr->xkey.window = Tk_WindowId(tkwin); - eventPtr->xkey.display = Tk_Display(tkwin); - eventPtr->xkey.root = XRootWindow(Tk_Display(tkwin), 0); - eventPtr->xkey.state = e->state; - eventPtr->xkey.trans_chars[0] = 0; - - Tk_TopCoordsToWindow(tkwin, e->local_x, e->local_y, &eventPtr->xkey.x, - &eventPtr->xkey.y); - - eventPtr->xkey.keycode = e->ch | ((savedKeyCode & charCodeMask) << 8) | - ((e->message&keyCodeMask) << 8); - return 1; -} - -/* - *---------------------------------------------------------------------- - * - * GetKeyboardLayout -- - * - * Queries the OS for a pointer to a keyboard resource. - * - * This function works with the keyboard layout switch menu. It uses - * Keyboard Layout Services, where available. - * - * Results: - * 1 if there is returned a Unicode 'uchr' resource in *resourcePtr, 0 if - * it is a classic 'KCHR' resource. A pointer to the actual resource data - * goes into *resourcePtr. If the resource is a 'KCHR' resource, the - * corresponding Mac encoding goes into *encodingPtr. - * - * Side effects: - * Sets some internal static variables. - * - *---------------------------------------------------------------------- - */ - -static int -GetKeyboardLayout( - Ptr *resourcePtr, - TextEncoding *encodingPtr) -{ - static KeyboardLayoutRef lastLayout = NULL; - static SInt32 lastLayoutId; - static TextEncoding lastEncoding = kTextEncodingMacRoman; - static Ptr uchr = NULL; - static Ptr KCHR = NULL; - int hasLayoutChanged = false; - KeyboardLayoutRef currentLayout = NULL; - SInt32 currentLayoutId = 0; - ScriptCode currentKeyScript; - - currentKeyScript = GetScriptManagerVariable(smKeyScript); - - /* - * Use the Keyboard Layout Services. - */ - - KLGetCurrentKeyboardLayout(¤tLayout); - - if (currentLayout != NULL) { - /* - * The layout pointer could in theory be the same for different - * layouts, only the id gives us the information that the - * keyboard has actually changed. OTOH the layout object can - * also change and it could still be the same layoutid. - */ - - KLGetKeyboardLayoutProperty(currentLayout, kKLIdentifier, - (const void **) ¤tLayoutId); - - if ((lastLayout != currentLayout) - || (lastLayoutId != currentLayoutId)) { -#ifdef TK_MAC_DEBUG_KEYBOARD - TkMacOSXDbgMsg("Use KLS"); -#endif - hasLayoutChanged = true; - - /* - * Reinitialize all relevant variables. - */ - - lastLayout = currentLayout; - lastLayoutId = currentLayoutId; - uchr = NULL; - KCHR = NULL; - - if ((KLGetKeyboardLayoutProperty(currentLayout, - kKLuchrData, (const void **) &uchr) == noErr) - && (uchr != NULL)) { - /* done */ - } else if ((KLGetKeyboardLayoutProperty(currentLayout, - kKLKCHRData, (const void**)&KCHR) == noErr) - && (KCHR != NULL)) { - /* done */ - } - } - } - - if (hasLayoutChanged) { -#ifdef TK_MAC_DEBUG_KEYBOARD - if (KCHR) { - TkMacOSXDbgMsg("New 'KCHR' layout %ld", currentLayoutId); - } else if (uchr) { - TkMacOSXDbgMsg("New 'uchr' layout %ld", currentLayoutId); - } else { - TkMacOSXDbgMsg("Use cached layout (should have been %ld)", - currentLayoutId); - } -#endif - - deadKeyStateUp = deadKeyStateDown = 0; - - /* - * If we did get a new 'KCHR', compute its encoding and put it into - * lastEncoding. - * - * If we didn't get a new 'KCHR' and if we have no 'uchr' either, get - * some 'KCHR' from the OS cache and leave lastEncoding at its current - * value. This should better not happen, it doesn't really work. - */ - - if (KCHR) { - lastEncoding = GetKCHREncoding(currentKeyScript, currentLayoutId); -#ifdef TK_MAC_DEBUG_KEYBOARD - TkMacOSXDbgMsg("New 'KCHR' encoding %lu (%lu + 0x%lX)", - lastEncoding, lastEncoding & 0xFFFFL, - lastEncoding & ~0xFFFFL); -#endif - } else if (!uchr) { - KCHR = (Ptr)(intptr_t) GetScriptManagerVariable(smKCHRCache); - } - } - - if (uchr) { - *resourcePtr = uchr; - return 1; - } - *resourcePtr = KCHR; - *encodingPtr = lastEncoding; - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * GetKCHREncoding -- - * - * Upgrade a WorldScript code to a TEC encoding based on the keyboard - * layout id. - * - * Results: - * The TEC code that corresponds best to the combination of WorldScript - * code and 'KCHR' id. - * - * Side effects: - * None. - * - * Rationale and Notes: - * WorldScript codes are sometimes not unique encodings. E.g. Icelandic - * uses script smRoman (0), but the actual encoding is - * kTextEncodingMacIcelandic (37). ftp://ftp.unicode.org/Public - * /MAPPINGS/VENDORS/APPLE/README.TXT has a good summary of these - * variants. So we need to upgrade the script to an encoding with - * GetTextEncodingFromScriptInfo(). - * - * 'KCHR' ids are usually region codes (see the comments in Script.h). - * Where they are not, we get a paramErr from the OS function and have - * appropriate fallbacks. - * - *---------------------------------------------------------------------- - */ - -static TextEncoding -GetKCHREncoding( - ScriptCode script, - SInt32 layoutid) -{ - RegionCode region = layoutid; - TextEncoding encoding = script; - - if (GetTextEncodingFromScriptInfo(script, kTextLanguageDontCare, region, - &encoding) == noErr) { - return encoding; - } - - /* - * GetTextEncodingFromScriptInfo() doesn't know about more exotic layouts. - * This provides a fallback for good measure. In an ideal world, exotic - * layouts would always provide a 'uchr' resource anyway, so we wouldn't - * need this. - * - * We can add more keyboard layouts, if we get actual complaints. Farsi or - * other Celtic/Gaelic layouts would be candidates. - */ - - switch (layoutid) { - /* - * Icelandic and Faroese (planned). These layouts are sold by Apple - * Iceland for legacy applications. - */ - - case 1800: case 1821: - return kTextEncodingMacIcelandic; - - /* - * Irish and Welsh. These layouts are mentioned in <Script.h>. - * - * FIXME: This may have to be kTextEncodingMacGaelic instead, but I - * can't locate layouts of this type for testing. - */ - - case 581: case 779: - return kTextEncodingMacCeltic; - } - - /* - * The valid script codes are also the valid default encoding codes, so if - * nothing else helps, fall back on those. - */ - - return script; -} - -/* - *---------------------------------------------------------------------- - * - * KeycodeToUnicodeViaUnicodeResource -- - * - * Given MacOS key event data this function generates the Unicode - * characters. It does this using a 'uchr' and the UCKeyTranslate API. - * - * The parameter deadKeyStatePtr can be NULL, if no deadkey handling is - * needed. - * - * Tested and known to work with US, Hebrew, Greek and Russian layouts as - * well as "Unicode Hex Input". - * - * Results: - * The number of characters generated if any, 0 if we are waiting for - * another byte of a dead-key sequence. Fills in the uniChars array with a - * Unicode string. - * - * Side Effects: - * None - * - *---------------------------------------------------------------------- - */ - -static int -KeycodeToUnicodeViaUnicodeResource( - UniChar *uniChars, - int maxChars, - Ptr uchr, - EventKind eKind, - UInt32 keycode, - UInt32 modifiers, - UInt32 *deadKeyStatePtr) -{ - int action; - unsigned long keyboardType; - OptionBits options = 0; - UInt32 dummy_state; - UniCharCount actuallength; - OSStatus err; - - keycode &= 0xFF; - modifiers = (modifiers >> 8) & 0xFF; - keyboardType = LMGetKbdType(); - - if (NULL==deadKeyStatePtr) { - options = kUCKeyTranslateNoDeadKeysMask; - dummy_state = 0; - deadKeyStatePtr = &dummy_state; - } - - switch(eKind) { - case kEventRawKeyDown: - action = kUCKeyActionDown; - break; - case kEventRawKeyUp: - action = kUCKeyActionUp; - break; - case kEventRawKeyRepeat: - action = kUCKeyActionAutoKey; - break; - default: - TkMacOSXDbgMsg("Invalid parameter eKind %d", eKind); - return 0; - } - - err = ChkErr(UCKeyTranslate, (const UCKeyboardLayout *) uchr, keycode, - action, modifiers, keyboardType, options, deadKeyStatePtr, - maxChars, &actuallength, uniChars); - - if ((0 == actuallength) && (0 != *deadKeyStatePtr)) { - /* - * More data later - */ - - return 0; - } - - /* - * Some IMEs leave residue. :-( - */ - - *deadKeyStatePtr = 0; - - if (err != noErr) { - actuallength = 0; - } - - return actuallength; -} - -/* - *---------------------------------------------------------------------- - * - * KeycodeToUnicodeViaKCHRResource -- - * - * Given MacOS key event data this function generates the Unicode - * characters. It does this using a 'KCHR' and the KeyTranslate API. - * - * The parameter deadKeyStatePtr can be NULL, if no deadkey handling is - * needed. - * - * Results: - * The number of characters generated if any, 0 if we are waiting for - * another byte of a dead-key sequence. Fills in the uniChars array with a - * Unicode string. - * - * Side Effects: - * None - * - *---------------------------------------------------------------------- - */ - -static int -KeycodeToUnicodeViaKCHRResource( - UniChar *uniChars, - int maxChars, - Ptr kchr, - TextEncoding encoding, - EventKind eKind, - UInt32 keycode, - UInt32 modifiers, - UInt32 *deadKeyStatePtr) -{ - UInt32 result; - char macBuff[3]; - char *macStr; - int macStrLen, uniStrLen; - UInt32 dummy_state = 0; - CFStringRef cfString; - - if (NULL == deadKeyStatePtr) { - deadKeyStatePtr = &dummy_state; - } - - keycode |= modifiers; - result = KeyTranslate(kchr, keycode, deadKeyStatePtr); - - if ((0 == result) && (0 != dummy_state)) { - /* - * 'dummy_state' gets only filled if the caller did not want deadkey - * processing (deadKeyStatePtr was NULL originally), but we still have - * a deadkey. We just push the keycode for the space bar to get the - * real key value. - */ - - result = KeyTranslate(kchr, 0x31, deadKeyStatePtr); - *deadKeyStatePtr = 0; - } - - if ((0 == result) && (0 != *deadKeyStatePtr)) { - /* - * More data later - */ - - return 0; - } - - macBuff[0] = (char) (result >> 16); - macBuff[1] = (char) result; - macBuff[2] = 0; - - if (0 != macBuff[0]) { - /* - * If the first byte is valid, the second is too. - */ - - macStr = macBuff; - macStrLen = 2; - } else if (0 != macBuff[1]) { - /* - * Only the second is valid. - */ - - macStr = macBuff+1; - macStrLen = 1; - } else { - /* - * No valid bytes at all -- shouldn't happen. - */ - - macStr = NULL; - macStrLen = 0; - } - - if (macStrLen <= 0) { - return 0; - } - - /* - * Use the CFString conversion routines. This is the easiest and most - * compatible way to get from an 8-bit string and a MacOS script code to a - * Unicode string. - * - * FIXME: The system ships with an Irish 'KCHR' but without the - * corresponding macCeltic encoding, which triggers the error below. Tcl - * doesn't have the macCeltic encoding either right now, so until we get - * that, we can just as well stick to this code. The right fix would be to - * use the Tcl encodings and add macCeltic and probably others - * there. Suitable Unicode data files for the missing encodings are - * available from www.evertype.com. - */ - - cfString = CFStringCreateWithCStringNoCopy(NULL, macStr, encoding, - kCFAllocatorNull); - if (cfString == NULL) { - TkMacOSXDbgMsg("CFString: Can't convert with encoding %ld", encoding); - return 0; - } - - uniStrLen = CFStringGetLength(cfString); - if (uniStrLen > maxChars) { - uniStrLen = maxChars; - } - CFStringGetCharacters(cfString, CFRangeMake(0,uniStrLen), uniChars); - CFRelease(cfString); - - return uniStrLen; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXKeycodeToUnicode -- - * - * Given MacOS key event data this function generates the Unicode - * characters. It does this using OS resources and APIs. - * - * The parameter deadKeyStatePtr can be NULL, if no deadkey handling is - * needed. - * - * This function is called from XKeycodeToKeysym() in tkMacOSKeyboard.c. - * - * Results: - * The number of characters generated if any, 0 if we are waiting for - * another byte of a dead-key sequence. Fills in the uniChars array with a - * Unicode string. - * - * Side Effects: - * None - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXKeycodeToUnicode( - UniChar *uniChars, - int maxChars, - EventKind eKind, - UInt32 keycode, - UInt32 modifiers, - UInt32 *deadKeyStatePtr) -{ - Ptr resource = NULL; - TextEncoding encoding; - - if (GetKeyboardLayout(&resource, &encoding)) { - return KeycodeToUnicodeViaUnicodeResource(uniChars, maxChars, - resource, eKind, keycode, modifiers, deadKeyStatePtr); - } else { - return KeycodeToUnicodeViaKCHRResource(uniChars, maxChars, resource, - encoding, eKind, keycode, modifiers, deadKeyStatePtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * XGrabKeyboard -- - * - * Simulates a keyboard grab by setting the focus. - * - * Results: - * Always returns GrabSuccess. - * - * Side effects: - * Sets the keyboard focus to the specified window. - * - *---------------------------------------------------------------------- - */ - -int -XGrabKeyboard( - Display* display, - Window grab_window, - Bool owner_events, - int pointer_mode, - int keyboard_mode, - Time time) -{ - keyboardGrabWinPtr = Tk_IdToWindow(display, grab_window); - - return GrabSuccess; -} - -/* - *---------------------------------------------------------------------- - * - * XUngrabKeyboard -- - * - * Releases the simulated keyboard grab. - * - * Results: - * None. - * - * Side effects: - * Sets the keyboard focus back to the value before the grab. - * - *---------------------------------------------------------------------- - */ - -void -XUngrabKeyboard( - Display* display, - Time time) -{ - keyboardGrabWinPtr = NULL; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetCapture -- - * - * Results: - * Returns the current grab window - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Tk_Window -TkMacOSXGetCapture(void) -{ - return grabWinPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpSetCapture -- - * - * This function captures the mouse so that all future events will be - * reported to this window, even if the mouse is outside the window. If - * the specified window is NULL, then the mouse is released. - * - * Results: - * None. - * - * Side effects: - * Sets the capture flag and captures the mouse. - * - *---------------------------------------------------------------------- - */ - -void -TkpSetCapture( - TkWindow *winPtr) /* Capture window, or NULL. */ -{ - while (winPtr && !Tk_IsTopLevel(winPtr)) { - winPtr = winPtr->parentPtr; - } -#if 0 - { - TkWindow *w = NULL; - WindowModality m; - - if (winPtr) { - w = winPtr; - m = kWindowModalityAppModal; - } else if (grabWinPtr) { - w = (TkWindow *) grabWinPtr; - m = kWindowModalityNone; - } - - if (w && w->window != None && TkMacOSXHostToplevelExists(w)) { - ChkErr(SetWindowModality, TkMacOSXDrawableWindow(w->window), m, - NULL); - } - } -#endif - grabWinPtr = (Tk_Window) winPtr; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_SetCaretPos -- - * - * This enables correct placement of the XIM caret. This is called by - * widgets to indicate their cursor placement, and the caret location is - * used by TkpGetString to place the XIM caret. - * - * Results: - * None - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -void -Tk_SetCaretPos( - Tk_Window tkwin, - int x, - int y, - int height) -{ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitKeyboard -- - * - * This procedure initializes the keyboard layout. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE void -TkMacOSXInitKeyboard( - Tcl_Interp *interp) -{ - Ptr resource; - TextEncoding encoding; - - GetKeyboardLayout(&resource, &encoding); -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXKeyboard.c b/carbon/tkMacOSXKeyboard.c deleted file mode 100644 index 00e73f6..0000000 --- a/carbon/tkMacOSXKeyboard.c +++ /dev/null @@ -1,841 +0,0 @@ -/* - * tkMacOSXKeyboard.c -- - * - * Routines to support keyboard events on the Macintosh. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXInt.h" -#include "tkMacOSXEvent.h" /* for TkMacOSXKeycodeToUnicode() - * FIXME: That function should probably move - * here. */ - -/* - * A couple of simple definitions to make code a bit more self-explaining. - * - * For the assignments of Mod1==meta==command and Mod2==alt==option, see also - * tkMacOSXMouseEvent.c. - */ - -#define LATIN1_MAX 255 -#define MAC_KEYCODE_MAX 0x7F -#define MAC_KEYCODE_MASK 0x7F -#define COMMAND_MASK Mod1Mask -#define OPTION_MASK Mod2Mask - - -/* - * Tables enumerating the special keys defined on Mac keyboards. These are - * necessary for correct keysym mappings for all keys where the keysyms are - * not identical with their ASCII or Latin-1 code points. - */ - -typedef struct { - int keycode; /* Macintosh keycode. */ - KeySym keysym; /* X windows keysym. */ -} KeyInfo; - -/* - * Notes on keyArray: - * - * 0x34, XK_Return - Powerbooks use this and some keymaps define it. - * - * 0x4C, XK_Return - XFree86 and Apple's X11 call this one XK_KP_Enter. - * - * 0x47, XK_Clear - This key is NumLock when used on PCs, but Mac - * applications don't use it like that, nor does Apple's X11. - * - * All other keycodes are taken from the published ADB keyboard layouts. - */ - -static KeyInfo keyArray[] = { - {0x24, XK_Return}, - {0x30, XK_Tab}, - {0x33, XK_BackSpace}, - {0x34, XK_Return}, - {0x35, XK_Escape}, - - {0x47, XK_Clear}, - {0x4C, XK_KP_Enter}, - - {0x72, XK_Help}, - {0x73, XK_Home}, - {0x74, XK_Page_Up}, - {0x75, XK_Delete}, - {0x77, XK_End}, - {0x79, XK_Page_Down}, - - {0x7B, XK_Left}, - {0x7C, XK_Right}, - {0x7D, XK_Down}, - {0x7E, XK_Up}, - - {0, 0} -}; - -static KeyInfo virtualkeyArray[] = { - {122, XK_F1}, - {120, XK_F2}, - {99, XK_F3}, - {118, XK_F4}, - {96, XK_F5}, - {97, XK_F6}, - {98, XK_F7}, - {100, XK_F8}, - {101, XK_F9}, - {109, XK_F10}, - {103, XK_F11}, - {111, XK_F12}, - {105, XK_F13}, - {107, XK_F14}, - {113, XK_F15}, - {0, 0} -}; - -static int initialized = 0; -static Tcl_HashTable keycodeTable; /* keyArray hashed by keycode value. */ -static Tcl_HashTable vkeyTable; /* virtualkeyArray hashed by virtual - * keycode value. */ - -static int latin1Table[LATIN1_MAX+1]; /* Reverse mapping table for - * controls, ASCII and Latin-1. */ - -/* - * Prototypes for static functions used in this file. - */ - -static void InitKeyMaps (void); -static void InitLatin1Table(Display *display); -static int XKeysymToMacKeycode(Display *display, KeySym keysym); - - -/* - *---------------------------------------------------------------------- - * - * InitKeyMaps -- - * - * Creates hash tables used by some of the functions in this file. - * - * FIXME: As keycodes are defined to be in the limited range 0-127, it - * would be easier and more efficient to use directly initialized plain - * arrays and drop this function. - * - * Results: - * None. - * - * Side effects: - * Allocates memory & creates some hash tables. - * - *---------------------------------------------------------------------- - */ - -static void -InitKeyMaps(void) -{ - Tcl_HashEntry *hPtr; - KeyInfo *kPtr; - int dummy; - - Tcl_InitHashTable(&keycodeTable, TCL_ONE_WORD_KEYS); - for (kPtr = keyArray; kPtr->keycode != 0; kPtr++) { - hPtr = Tcl_CreateHashEntry(&keycodeTable, (char *) kPtr->keycode, - &dummy); - Tcl_SetHashValue(hPtr, kPtr->keysym); - } - Tcl_InitHashTable(&vkeyTable, TCL_ONE_WORD_KEYS); - for (kPtr = virtualkeyArray; kPtr->keycode != 0; kPtr++) { - hPtr = Tcl_CreateHashEntry(&vkeyTable, (char *) kPtr->keycode, - &dummy); - Tcl_SetHashValue(hPtr, kPtr->keysym); - } - initialized = 1; -} - -/* - *---------------------------------------------------------------------- - * - * InitLatin1Table -- - * - * Creates a simple table to be used for mapping from keysyms to keycodes. - * Always needs to be called before using latin1Table, because the - * keyboard layout may have changed, and than the table must be - * re-computed. - * - * Results: - * None. - * - * Side effects: - * Sets the global latin1Table. - * - *---------------------------------------------------------------------- - */ - -static void -InitLatin1Table( - Display *display) -{ - static Boolean latin1_initialized = false; - static SInt16 lastKeyLayoutID = -1; - - SInt16 keyScript; - SInt16 keyLayoutID; - - keyScript = GetScriptManagerVariable(smKeyScript); - keyLayoutID = GetScriptVariable(keyScript,smScriptKeys); - - if (!latin1_initialized || (lastKeyLayoutID != keyLayoutID)) { - int keycode; - KeySym keysym; - int state; - int modifiers; - - latin1_initialized = true; - lastKeyLayoutID = keyLayoutID; - - memset(latin1Table, 0, sizeof(latin1Table)); - - /* - * In the common X11 implementations, a keymap has four columns - * "plain", "Shift", "Mode_switch" and "Mode_switch + Shift". We don't - * use "Mode_switch", but we use "Option" instead. (This is similar to - * Apple's X11 implementation, where "Mode_switch" is used as an alias - * for "Option".) - * - * So here we go through all 4 columns of the keymap and find all - * Latin-1 compatible keycodes. We go through the columns back-to-front - * from the more exotic columns to the more simple, so that simple - * keycode-modifier combinations are preferred in the resulting table. - */ - - for (state = 3; state >= 0; state--) { - modifiers = 0; - if (state & 1) { - modifiers |= shiftKey; - } - if (state & 2) { - modifiers |= optionKey; - } - - for (keycode = 0; keycode <= MAC_KEYCODE_MAX; keycode++) { - keysym = XKeycodeToKeysym(display,keycode<<16,state); - if (keysym <= LATIN1_MAX) { - latin1Table[keysym] = keycode | modifiers; - } - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * XKeycodeToKeysym -- - * - * Translate from a system-dependent keycode to a system-independent - * keysym. - * - * Results: - * Returns the translated keysym, or NoSymbol on failure. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -KeySym -XKeycodeToKeysym( - Display* display, - KeyCode keycode, - int index) -{ - register Tcl_HashEntry *hPtr; - int newKeycode; - UniChar newChar; - - (void) display; /*unused*/ - - if (!initialized) { - InitKeyMaps(); - } - - /* - * When determining what keysym to produce we first check to see if the key - * is a function key. We then check to see if the character is another - * non-printing key. Finally, we return the key syms for all ASCII and - * Latin-1 chars. - */ - - newKeycode = keycode >> 16; - - if ((keycode & 0xFFFF) == 0x10) { - hPtr = Tcl_FindHashEntry(&vkeyTable, (char *) newKeycode); - if (hPtr != NULL) { - return (KeySym) Tcl_GetHashValue(hPtr); - } - } - hPtr = Tcl_FindHashEntry(&keycodeTable, (char *) newKeycode); - if (hPtr != NULL) { - return (KeySym) Tcl_GetHashValue(hPtr); - } - - /* - * Add in the Mac modifier flags for shift and option. - */ - - if (index & 1) { - newKeycode |= shiftKey; - } - if (index & 2) { - newKeycode |= optionKey; - } - - newChar = 0; - TkMacOSXKeycodeToUnicode(&newChar, 1, kEventRawKeyDown, - newKeycode & 0x00FF, newKeycode & 0xFF00, NULL); - - /* - * X11 keysyms are identical to Unicode for ASCII and Latin-1. Give up for - * other characters for now. - */ - - if ((newChar >= XK_space) && (newChar <= LATIN1_MAX)) { - return newChar; - } - - return NoSymbol; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetString -- - * - * Retrieve the string equivalent for the given keyboard event. - * - * Results: - * Returns the UTF string. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -const char * -TkpGetString( - TkWindow *winPtr, /* Window where event occurred: Needed to get - * input context. */ - XEvent *eventPtr, /* X keyboard event. */ - Tcl_DString *dsPtr) /* Uninitialized or empty string to hold - * result. */ -{ - (void) winPtr; /*unused*/ - Tcl_DStringInit(dsPtr); - return Tcl_DStringAppend(dsPtr, eventPtr->xkey.trans_chars, -1); -} - -/* - *---------------------------------------------------------------------- - * - * XGetModifierMapping -- - * - * Fetch the current keycodes used as modifiers. - * - * Results: - * Returns a new modifier map. - * - * Side effects: - * Allocates a new modifier map data structure. - * - *---------------------------------------------------------------------- - */ - -XModifierKeymap * -XGetModifierMapping( - Display *display) -{ - XModifierKeymap *modmap; - - (void) display; /*unused*/ - - /* - * MacOSX doesn't use the key codes for the modifiers for anything, and we - * don't generate them either. So there is no modifier map. - */ - - modmap = ckalloc(sizeof(XModifierKeymap)); - modmap->max_keypermod = 0; - modmap->modifiermap = NULL; - return modmap; -} - -/* - *---------------------------------------------------------------------- - * - * XFreeModifiermap -- - * - * Deallocate a modifier map that was created by XGetModifierMapping. - * - * Results: - * None. - * - * Side effects: - * Frees the datastructure referenced by modmap. - * - *---------------------------------------------------------------------- - */ - -int -XFreeModifiermap( - XModifierKeymap *modmap) -{ - if (modmap->modifiermap != NULL) { - ckfree(modmap->modifiermap); - } - ckfree(modmap); - return Success; -} - -/* - *---------------------------------------------------------------------- - * - * XKeysymToString, XStringToKeysym -- - * - * These X window functions map keysyms to strings & strings to keysyms. - * However, Tk already does this for the most common keysyms. Therefore, - * these functions only need to support keysyms that will be specific to - * the Macintosh. Currently, there are none. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -char * -XKeysymToString( - KeySym keysym) -{ - return NULL; -} - -KeySym -XStringToKeysym( - const char* string) -{ - return NoSymbol; -} - -/* - *---------------------------------------------------------------------- - * - * XKeysymToMacKeycode -- - * - * An internal function like XKeysymToKeycode but only generating the Mac - * specific keycode plus the modifiers Shift and Option. - * - * Results: - * A Mac keycode with the actual keycode in the low byte and Mac-style - * modifier bits in the high byte. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -XKeysymToMacKeycode( - Display *display, - KeySym keysym) -{ - KeyInfo *kPtr; - - if (keysym <= LATIN1_MAX) { - /* - * Handle keysyms in the Latin-1 range where keysym and Unicode - * character code point are the same. - */ - - InitLatin1Table(display); - return latin1Table[keysym]; - } - - /* - * Handle special keys from our exception tables. Don't mind if this is - * slow, neither the test suite nor [event generate] need to be optimized - * (we hope). - */ - - for (kPtr = keyArray; kPtr->keycode != 0; kPtr++) { - if (kPtr->keysym == keysym) { - return kPtr->keycode; - } - } - for (kPtr = virtualkeyArray; kPtr->keycode != 0; kPtr++) { - if (kPtr->keysym == keysym) { - return kPtr->keycode; - } - } - - /* - * For other keysyms (not Latin-1 and not special keys), we'd need a - * generic keysym-to-unicode table. We don't have that, so we give up here. - */ - - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * XKeysymToKeycode -- - * - * The function XKeysymToKeycode takes an X11 keysym and converts it into - * a Mac keycode. It is in the stubs table for compatibility but not used - * anywhere in the core. - * - * Results: - * A 32 bit keycode with the the mac keycode (without modifiers) in the - * higher 16 bits of the keycode and the ASCII or Latin-1 code in the - * lower 8 bits of the keycode. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -KeyCode -XKeysymToKeycode( - Display* display, - KeySym keysym) -{ - int macKeycode = XKeysymToMacKeycode(display, keysym); - KeyCode result; - - /* - * See also TkpSetKeycodeAndState. The 0x0010 magic is used in - * XKeycodeToKeysym. For special keys like XK_Return the lower 8 bits of - * the keysym are usually a related ASCII control code. - */ - - if ((keysym >= XK_F1) && (keysym <= XK_F35)) { - result = 0x0010; - } else { - result = 0x00FF & keysym; - } - result |= (macKeycode & MAC_KEYCODE_MASK) << 16; - - return result; -} - -/* -NB: Keep this commented code for a moment for reference. - - if ((keysym >= XK_space) && (XK_asciitilde)) { - if (keysym == 'a') { - virtualKeyCode = 0x00; - } else if (keysym == 'b' || keysym == 'B') { - virtualKeyCode = 0x0B; - } else if (keysym == 'c') { - virtualKeyCode = 0x08; - } else if (keysym == 'x' || keysym == 'X') { - virtualKeyCode = 0x07; - } else if (keysym == 'z') { - virtualKeyCode = 0x06; - } else if (keysym == ' ') { - virtualKeyCode = 0x31; - } else if (keysym == XK_Return) { - virtualKeyCode = 0x24; - keysym = '\r'; - } - keycode = keysym + (virtualKeyCode <<16); - } - - return keycode; -*/ - -/* - *---------------------------------------------------------------------- - * - * TkpSetKeycodeAndState -- - * - * The function TkpSetKeycodeAndState takes a keysym and fills in the - * appropriate members of an XEvent. It is similar to XKeysymToKeycode, - * but it also sets the modifier mask in the XEvent. It is used by [event - * generate] and it is in the stubs table. - * - * Results: - * Fills an XEvent, sets the member xkey.keycode with a keycode - * formatted the same as XKeysymToKeycode and the member xkey.state with - * the modifiers implied by the keysym. Also fills in xkey.trans_chars, - * so that the actual characters can be retrieved later. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpSetKeycodeAndState( - Tk_Window tkwin, - KeySym keysym, - XEvent *eventPtr) -{ - if (keysym == NoSymbol) { - eventPtr->xkey.keycode = 0; - } else { - Display *display = Tk_Display(tkwin); - int macKeycode = XKeysymToMacKeycode(display, keysym); - - /* - * See also XKeysymToKeycode. - */ - - if ((keysym >= XK_F1) && (keysym <= XK_F35)) { - eventPtr->xkey.keycode = 0x0010; - } else { - eventPtr->xkey.keycode = 0x00FF & keysym; - } - eventPtr->xkey.keycode |= (macKeycode & MAC_KEYCODE_MASK) << 16; - - if (shiftKey & macKeycode) { - eventPtr->xkey.state |= ShiftMask; - } - if (optionKey & macKeycode) { - eventPtr->xkey.state |= OPTION_MASK; - } - - if (keysym <= LATIN1_MAX) { - int done = Tcl_UniCharToUtf(keysym, eventPtr->xkey.trans_chars); - - eventPtr->xkey.trans_chars[done] = 0; - } else { - eventPtr->xkey.trans_chars[0] = 0; - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetKeySym -- - * - * Given an X KeyPress or KeyRelease event, map the keycode in the event - * into a keysym. - * - * Results: - * The return value is the keysym corresponding to eventPtr, or NoSymbol - * if no matching keysym could be found. - * - * Side effects: - * In the first call for a given display, keycode-to-keysym maps get - * loaded. - * - *---------------------------------------------------------------------- - */ - -KeySym -TkpGetKeySym( - TkDisplay *dispPtr, /* Display in which to map keycode. */ - XEvent *eventPtr) /* Description of X event. */ -{ - KeySym sym; - int index; - - /* - * Refresh the mapping information if it's stale. - */ - - if (dispPtr->bindInfoStale) { - TkpInitKeymapInfo(dispPtr); - } - - /* - * Handle pure modifier keys specially. We use -1 as a signal for - * this. - */ - - if (eventPtr->xany.send_event == -1) { - int modifier = eventPtr->xkey.keycode; - - if (modifier == cmdKey) { - return XK_Meta_L; - } else if (modifier == shiftKey) { - return XK_Shift_L; - } else if (modifier == alphaLock) { - return XK_Caps_Lock; - } else if (modifier == optionKey) { - return XK_Alt_L; - } else if (modifier == controlKey) { - return XK_Control_L; - } else if (modifier == kEventKeyModifierNumLockMask) { - return XK_Num_Lock; - } else if (modifier == kEventKeyModifierFnMask) { - return XK_Super_L; - } else if (modifier == rightShiftKey) { - return XK_Shift_R; - } else if (modifier == rightOptionKey) { - return XK_Alt_R; - } else if (modifier == rightControlKey) { - return XK_Control_R; - } else { - /* - * If we get here, we probably need to implement something new. - */ - - return NoSymbol; - } - } - - /* - * Figure out which of the four slots in the keymap vector to use for this - * key. Refer to Xlib documentation for more info on how this computation - * works. (Note: We use "Option" in keymap columns 2 and 3 where other - * implementations have "Mode_switch".) - */ - - index = 0; - - /* - * We want Option key combinations to use their base chars as keysyms, so - * we ignore the option modifier here. - */ - -#if 0 - if (eventPtr->xkey.state & OPTION_MASK) { - index |= 2; - } -#endif - - if ((eventPtr->xkey.state & ShiftMask) - || (/* (dispPtr->lockUsage != LU_IGNORE) - && */ (eventPtr->xkey.state & LockMask))) { - index |= 1; - } - - /* - * First try of the actual translation. - */ - - sym = XKeycodeToKeysym(dispPtr->display, eventPtr->xkey.keycode, index); - - /* - * Special handling: If the key was shifted because of Lock, but lock is - * only caps lock, not shift lock, and the shifted keysym isn't upper-case - * alphabetic, then switch back to the unshifted keysym. - */ - - if ((index & 1) && !(eventPtr->xkey.state & ShiftMask) - /*&& (dispPtr->lockUsage == LU_CAPS)*/ ) { - /* - * FIXME: Keysyms are only identical to Unicode for ASCII and Latin-1, - * so we can't use Tcl_UniCharIsUpper() for keysyms outside that range. - * This may be a serious problem here. - */ - - if ((sym == NoSymbol) || (sym > LATIN1_MAX) - || !Tcl_UniCharIsUpper(sym)) { - index &= ~1; - sym = XKeycodeToKeysym(dispPtr->display, eventPtr->xkey.keycode, - index); - } - } - - /* - * Another bit of special handling: If this is a shifted key and there is - * no keysym defined, then use the keysym for the unshifted key. - */ - - if ((index & 1) && (sym == NoSymbol)) { - sym = XKeycodeToKeysym(dispPtr->display, eventPtr->xkey.keycode, - index & ~1); - } - return sym; -} - -/* - *-------------------------------------------------------------- - * - * TkpInitKeymapInfo -- - * - * This procedure is invoked to scan keymap information to recompute stuff - * that's important for binding, such as the modifier key (if any) that - * corresponds to the "Mode_switch" keysym. - * - * Results: - * None. - * - * Side effects: - * Keymap-related information in dispPtr is updated. - * - *-------------------------------------------------------------- - */ - -void -TkpInitKeymapInfo( - TkDisplay *dispPtr) /* Display for which to recompute keymap - * information. */ -{ - dispPtr->bindInfoStale = 0; - - /* - * Behaviours that are variable on X11 are defined constant on MacOSX. - * lockUsage is only used above in TkpGetKeySym(), nowhere else currently. - * There is no offical "Mode_switch" key. - */ - - dispPtr->lockUsage = LU_CAPS; - dispPtr->modeModMask = 0; - -#if 0 - /* - * With this, <Alt> and <Meta> become synonyms for <Command> and <Option> - * in bindings like they are (and always have been) in the keysyms that - * are reported by KeyPress events. But the init scripts like text.tcl - * have some disabling bindings for <Meta>, so we don't want this without - * some changes in those scripts. See also bug #700311. - */ - - dispPtr->altModMask = OPTION_MASK; - dispPtr->metaModMask = COMMAND_MASK; -#else - dispPtr->altModMask = 0; - dispPtr->metaModMask = 0; -#endif - - /* - * MacOSX doesn't use the keycodes for the modifiers for anything, and we - * don't generate them either (the keycodes actually given in the simulated - * modifier events are bogus). So there is no modifier map. If we ever want - * to simulate real modifier keycodes, the list will be constant in the - * Carbon implementation. - */ - - if (dispPtr->modKeyCodes != NULL) { - ckfree(dispPtr->modKeyCodes); - } - dispPtr->numModKeyCodes = 0; - dispPtr->modKeyCodes = NULL; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXMenu.c b/carbon/tkMacOSXMenu.c deleted file mode 100644 index b02c289..0000000 --- a/carbon/tkMacOSXMenu.c +++ /dev/null @@ -1,4750 +0,0 @@ -/* - * tkMacOSXMenu.c -- - * - * This module implements the Mac-platform specific features of menus. - * - * Copyright (c) 1996-1997 by Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMenubutton.h" -#include "tkMenu.h" -#include "tkColor.h" -#include "tkFont.h" -#include "tkMacOSXDebug.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_MENUS -#endif -*/ - -#define USE_TK_MDEF - -typedef struct MacMenu { - MenuRef menuHdl; /* The Menu Manager data structure. */ -#ifdef USE_TK_MDEF - int useMDEF; /* true if this menu uses the MDEF */ -#endif -} MacMenu; - -typedef struct MenuEntryUserData { - Drawable mdefDrawable; - TkMenuEntry *mePtr; - Tk_Font tkfont; - Tk_FontMetrics *fmPtr; -} MenuEntryUserData; - -/* - * Platform specific flags for menu entries - * - * ENTRY_COMMAND_ACCEL Indicates the entry has the command key - * in its accelerator string. - * ENTRY_OPTION_ACCEL Indicates the entry has the option key - * in its accelerator string. - * ENTRY_SHIFT_ACCEL Indicates the entry has the shift key - * in its accelerator string. - * ENTRY_CONTROL_ACCEL Indicates the entry has the control key - * in its accelerator string. - */ - -#define ENTRY_COMMAND_ACCEL ENTRY_PLATFORM_FLAG1 -#define ENTRY_OPTION_ACCEL ENTRY_PLATFORM_FLAG2 -#define ENTRY_SHIFT_ACCEL ENTRY_PLATFORM_FLAG3 -#define ENTRY_CONTROL_ACCEL ENTRY_PLATFORM_FLAG4 -#define ENTRY_ACCEL_MASK (ENTRY_COMMAND_ACCEL | ENTRY_OPTION_ACCEL \ - | ENTRY_SHIFT_ACCEL | ENTRY_CONTROL_ACCEL) -#define MODIFIER_NUM 4 - -/* - * This structure is used to keep track of subfields within Macintosh menu - * items. - */ - -typedef struct EntryGeometry { - int accelTextStart; /* Offset into the accel string where the text - * starts. Everything before this is modifier - * key descriptions. */ - int modifierWidth; /* Width of modifier symbols. */ - int accelTextWidth; /* Width of the text after the modifier - * keys. */ - int nonAccelMargin; /* The width of the margin for entries without - * accelerators. */ - int modifierNum; /* Number of modifiers */ - Tcl_UniChar modifierUniChars[MODIFIER_NUM]; - /* Modifiers in unicode */ - char accelGlyph; /* Accelerator glyph, if any */ -} EntryGeometry; - -/* - * Structure to keep track of toplevel windows and their menubars. - */ - -typedef struct TopLevelMenubarList { - struct TopLevelMenubarList *nextPtr; - /* The next window in the list. */ - Tk_Window tkwin; /* The toplevel window. */ - TkMenu *menuPtr; /* The menu associated with this toplevel. */ -} TopLevelMenubarList; - -/* - * Platform-specific flags for menus. - * - * MENU_APPLE_MENU 0 indicates a custom Apple menu has not been - * installed; 1 a custom Apple menu has been - * installed. - * MENU_HELP_MENU 0 indicates a custom Help menu has not been - * installed; 1 a custom Help menu has been - * installed. - * MENU_RECONFIGURE_PENDING 1 indicates that an idle handler has been - * scheduled to reconfigure the Macintosh - * MenuHandle. - */ - -#define MENU_APPLE_MENU MENU_PLATFORM_FLAG1 -#define MENU_HELP_MENU MENU_PLATFORM_FLAG2 -#define MENU_RECONFIGURE_PENDING MENU_PLATFORM_FLAG3 - -#define CASCADE_CMD (0x1b) /* The special command char for cascade - * menus. */ -#define MENUBAR_REDRAW_PENDING 1 - -static int gNoTkMenus = 0; /* This is used by Tk_MacOSXTurnOffMenus as - * the flag that Tk is not to draw any - * menus. */ - -static Tcl_HashTable commandTable; - /* The list of menuInstancePtrs associated - * with menu ids. */ -static short currentAppleMenuID; - /* The id of the current Apple menu. 0 for - * none. */ -static short currentHelpMenuID; /* The id of the current Help menu. 0 for - * none. */ -static Tcl_Interp *currentMenuBarInterp; - /* The interpreter of the window that owns the - * current menubar. */ -static char *currentMenuBarName; - /* Malloced. Name of current menu in menu bar. - * NULL if no menu set. TO DO: make this a - * DString. */ -static Tk_Window currentMenuBarOwner; - /* Which window owns the current menu bar. */ -static int inPostMenu; /* We cannot be re-entrant like X windows. */ -static short lastMenuID; /* To pass to NewMenu; need to figure out a - * good way to do this. */ -static short lastCascadeID; /* Cascades have to have ids that are less - * than 256. */ -static int menuBarFlags; /* Used for whether the menu bar needs - * redrawing or not. */ - -struct MenuCommandHandlerData { /* This is the ClientData we pass to */ - TkMenu *menuPtr; /* Tcl_DoWhenIdle to move handling */ - int index; /* menu commands to the event loop. */ -}; - -static TopLevelMenubarList *windowListPtr; - /* A list of windows that have menubars set. */ - -/* - * Array of unicode, charcode and utf representations of the most common - * special menu symbols. - */ - -typedef struct MenuSymbol { - const Tcl_UniChar unicode; - const char charCode; - /* char padding; */ - int utfLen, width; - char utf[TCL_UTF_MAX + 1]; -} MenuSymbol; - -static MenuSymbol menuSymbols[] = { - {kCommandUnicode, kCommandCharCode}, - {kOptionUnicode, kMenuOptionGlyph}, - {kControlUnicode, kMenuControlGlyph}, - {kShiftUnicode, kMenuShiftGlyph}, - {kCheckUnicode, kCheckCharCode}, - {kDiamondUnicode, kDiamondCharCode}, - {kBulletUnicode, kBulletCharCode}, - {0x2026, kNullCharCode}, - {0, 0}, -}; - -enum MenuSymbolIdx { - COMMAND_SYMBOL, - OPTION_SYMBOL, - CONTROL_SYMBOL, - SHIFT_SYMBOL, - CHECK_SYMBOL, - DIAMDOND_SYMBOL, - BULLET_SYMBOL, - ELLIPSIS_SYMBOL, -}; - -MenuRef tkCurrentAppleMenu = NULL; - -static SInt32 menuMarkColumnWidth = 0, menuMarkIndent = 0; -static SInt32 menuTextLeadingEdgeMargin = 0, menuTextTrailingEdgeMargin = 0; -static SInt16 menuItemExtraHeight = 0, menuItemExtraWidth = 0; -static SInt16 menuSeparatorHeight = 0; - -/* - * Forward declarations for procedures defined later in this file: - */ - -MODULE_SCOPE int TkMacOSXGetNewMenuID(Tcl_Interp *interp, - TkMenu *menuInstPtr, int cascade, - short *menuIDPtr); -MODULE_SCOPE void TkMacOSXFreeMenuID(short menuID); - -static void CompleteIdlers(TkMenu *menuPtr); -static void DrawMenuBarWhenIdle(ClientData clientData); -static void DrawMenuEntryAccelerator(TkMenu *menuPtr, - TkMenuEntry *mePtr, Drawable d, GC gc, - Tk_Font tkfont, const Tk_FontMetrics *fmPtr, - Tk_3DBorder activeBorder, int x, int y, int width, - int height, int drawArrow); -static void DrawMenuEntryBackground(TkMenu *menuPtr, - TkMenuEntry *mePtr, Drawable d, - Tk_3DBorder activeBorder, Tk_3DBorder bgBorder, - int x, int y, int width, int heigth); -static void DrawMenuEntryIndicator(TkMenu *menuPtr, - TkMenuEntry *mePtr, Drawable d, GC gc, - GC indicatorGC, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int x, int y, - int width, int height); -static void DrawMenuEntryLabel(TkMenu *menuPtr,TkMenuEntry *mePtr, - Drawable d, GC gc, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int x, int y, - int width, int height); -static void DrawMenuSeparator(TkMenu *menuPtr, TkMenuEntry *mePtr, - Drawable d, GC gc, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int x, int y, - int width, int height); -static void DrawTearoffEntry(TkMenu *menuPtr, TkMenuEntry *mePtr, - Drawable d, GC gc, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int x, int y, - int width, int height); -static void EventuallyInvokeMenu(ClientData data); -static void GetEntryText(TkMenuEntry *mePtr, - Tcl_DString *dStringPtr); -static void GetMenuAccelGeometry(TkMenu *menuPtr, - TkMenuEntry *mePtr, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int *modWidthPtr, - int *textWidthPtr, int *heightPtr); -static void GetMenuLabelGeometry(TkMenuEntry *mePtr, - Tk_Font tkfont, const Tk_FontMetrics *fmPtr, - int *widthPtr, int *heightPtr); -static void GetMenuIndicatorGeometry(TkMenu *menuPtr, - TkMenuEntry *mePtr, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int *widthPtr, - int *heightPtr); -static void GetMenuSeparatorGeometry(TkMenu *menuPtr, - TkMenuEntry *mePtr, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int *widthPtr, - int *heightPtr); -static TkMenuEntry * GetParentMenuEntry(TkMenu *menuPtr); -static void GetTearoffEntryGeometry(TkMenu *menuPtr, - TkMenuEntry *mePtr, Tk_Font tkfont, - const Tk_FontMetrics *fmPtr, int *widthPtr, - int *heightPtr); -static char FindMarkCharacter(TkMenuEntry *mePtr); -static int GetUtfMarkCharacter(char markChar, - const char **markUtfPtr); -static TkMenu * MenuPtrForMenuRef(MenuRef menu); -static int ParseAccelerators(const char **accelStringPtr, - int *modifierNumPtr, - Tcl_UniChar *modifierUniChars, - int *modifierWidth); -static void MenuSelectEvent(TkMenu *menuPtr); -static void ReconfigureIndividualMenu(TkMenu *menuPtr, - MenuHandle macMenuHdl, int base); -static void ReconfigureMacintoshMenu(ClientData clientData); -static void RecursivelyClearActiveMenu(TkMenu *menuPtr); -static void RecursivelyDeleteMenu(TkMenu *menuPtr); -static void RecursivelyInsertMenu(TkMenu *menuPtr); -static void SetDefaultMenubar(void); -static int SetMenuCascade(TkMenu *menuPtr); - -#ifdef USE_TK_MDEF -#define SCREEN_MARGIN 5 -static MacDrawable macMDEFDrawable; - /* Drawable for use by MDEF code */ -static int MDEFScrollFlag = 0; /* Used so that popups don't scroll too - * soon. */ -static MenuItemDrawingUPP tkThemeMenuItemDrawingUPP; - /* Points to the UPP for theme Item - * drawing. */ -static Tcl_Obj *useMDEFVar; - -static void DrawMenuBackground(TkMenu *menuPtr, Rect *menuRectPtr, - Drawable d); -static void MenuDefProc(short message, MenuHandle menu, - Rect *menuRectPtr, Point hitPt, short *whichItem); -static void HandleMenuHiliteMsg(MenuRef menu, Rect *menuRectPtr, - Point hitPt, SInt16 *whichItem, TkMenu *menuPtr); -static void HandleMenuDrawMsg(MenuRef menu, Rect *menuRectPtr, - Point hitPt, SInt16 *whichItem, TkMenu *menuPtr); -static void HandleMenuFindItemMsg(MenuRef menu, Rect *menuRectPtr, - Point hitPt, SInt16 *whichItem, TkMenu *menuPtr); -static void HandleMenuPopUpMsg(MenuRef menu, Rect *menuRectPtr, - Point hitPt, SInt16 *whichItem, TkMenu *menuPtr); -static void HandleMenuCalcItemMsg(MenuRef menu, Rect *menuRectPtr, - Point hitPt, SInt16 *whichItem, TkMenu *menuPtr); -static void AppearanceEntryDrawWrapper(TkMenuEntry *mePtr, - Rect *menuRectPtr, MenuTrackingData *mtdPtr, - Drawable d, Tk_FontMetrics *fmPtr, Tk_Font tkfont, - int erase); -static pascal void ThemeMenuItemDrawingProc(const Rect *inBounds, - SInt16 inDepth, Boolean inIsColorDevice, - SInt32 inUserData); -#else /* USE_TK_MDEF */ -# define useMDEF 0 -#endif /* USE_TK_MDEF */ - -#define IS_THEME_MENU_FONT(tkfont) (strcmp(Tk_NameOfFont(tkfont), "menu") == 0) - -/* - *---------------------------------------------------------------------- - * - * DrawThemeText -- - * - * Wrapper for DrawThemeTextBox API. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -DrawThemeText( - Drawable d, - GC gc, - CFStringRef string, - ThemeFontID font, - ThemeDrawState drawState, - const Rect* bounds, - int baseline, - int just) -{ - TkMacOSXDrawingContext dc; - Rect adjustedBounds; - - /* - * Menu item text drawn with the .Keyboard font (used for - * kThemeMenuItemCmdKeyFont) won't always have the same ascent and - * baseline as text drawn with the regular menu item font, since the - * glyphs in the .Keyboard font may have a different height. Therefore, we - * first determine the baseline of the text and then adjust the bounds - * rect so the baseline aligns with the overall baseline of the menu item. - */ - - if (font == kThemeMenuItemCmdKeyFont) { - Point size; - SInt16 cmdKeyBaseline; - - GetThemeTextDimensions(string, font, drawState, false, &size, - &cmdKeyBaseline); - adjustedBounds = *bounds; - OffsetRect(&adjustedBounds, 0, baseline - bounds->top - size.v - - cmdKeyBaseline); - bounds = &adjustedBounds; - } - if (TkMacOSXSetupDrawingContext(d, gc, 1, &dc)) { - ChkErr(DrawThemeTextBox, string, font, drawState, false, bounds, just, - dc.context); - TkMacOSXRestoreDrawingContext(&dc); - } -} - -/* - *---------------------------------------------------------------------- - * - * MeasureThemeText -- - * - * Wrapper for GetThemeTextDimensions API. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -MeasureThemeText( - CFStringRef string, - ThemeFontID font) -{ - Point pt; - - ChkErr(GetThemeTextDimensions, string, font, kThemeStateActive, false, &pt, - NULL); - return pt.h; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXUseID -- - * - * Take the ID out of the available list for new menus. Used by the - * default menu bar's menus so that they do not get created at the tk - * level. See TkMacOSXGetNewMenuID for more information. - * - * Results: - * Returns TCL_OK if the id was not in use. Returns TCL_ERROR if the id - * was in use. - * - * Side effects: - * A hash table entry in the command table is created with a NULL value. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXUseMenuID( - short macID) /* The id to take out of the table */ -{ - Tcl_HashEntry *commandEntryPtr; - int newEntry; - int iMacID = macID; /* Do this to remove compiler warning */ - - TkMenuInit(); - commandEntryPtr = Tcl_CreateHashEntry(&commandTable, (char *) iMacID, - &newEntry); - if (!newEntry) { - return TCL_ERROR; - } - Tcl_SetHashValue(commandEntryPtr, NULL); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetNewMenuID -- - * - * Allocates a new menu id and marks it in use. Each menu on the mac must - * be designated by a unique id, which is a short. In addition, some ids - * are reserved by the system. Since Tk uses mostly dynamic menus, we - * must allocate and free these ids on the fly. We use the id as a key - * into a hash table; if there is no hash entry, we know that we can use - * the id. - * - * Carbon allows a much larger number of menus than the old APIs. I - * believe this is 32768, but am not sure. This code just uses 2000 as - * the upper limit. Unfortunately tk leaks menus when cloning, under some - * circumstances (see bug on sourceforge). - * - * Results: - * Returns TCL_OK if succesful; TCL_ERROR if there are no more ids of the - * appropriate type to allocate. menuIDPtr contains the new id if - * succesful. - * - * Side effects: - * An entry is created for the menu in the command hash table, and the - * hash entry is stored in the appropriate field in the menu data - * structure. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXGetNewMenuID( - Tcl_Interp *interp, /* Used for error reporting */ - TkMenu *menuPtr, /* The menu we are working with */ - int cascade, /* 0 if we are working with a normal menu; - * 1 if we are working with a cascade */ - short *menuIDPtr) /* The resulting id */ -{ - int found = 0; - int newEntry; - Tcl_HashEntry *commandEntryPtr = NULL; - short returnID = *menuIDPtr; - - /* - * The following code relies on shorts and unsigned chars wrapping when - * the highest value is incremented. Also, the values between 236 and 255 - * inclusive are reserved for DA's by the Mac OS. - */ - - if (!cascade) { - short curID = lastMenuID + 1; - - if (curID == 236) { - curID = 256; - } - - while (curID != lastMenuID) { - int iCurID = curID; - commandEntryPtr = Tcl_CreateHashEntry(&commandTable, - (char *) iCurID, &newEntry); - if (newEntry == 1) { - found = 1; - lastMenuID = returnID = curID; - break; - } - curID++; - if (curID == 236) { - curID = 256; - } - } - } else { - /* - * Cascade ids must be between 0 and 235 only, so they must be dealt - * with separately. - */ - - short curID = lastCascadeID + 1; - - if (curID == 2000) { - curID = 0; - } - - while (curID != lastCascadeID) { - int iCurID = curID; - commandEntryPtr = Tcl_CreateHashEntry(&commandTable, - (char *) iCurID, &newEntry); - if (newEntry == 1) { - found = 1; - lastCascadeID = returnID = curID; - break; - } - curID++; - if (curID == 2000) { - curID = 0; - } - } - } - - if (!found) { - Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj( - "No more menus can be allocated.", -1)); - Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "SYSTEM_RESOURCES", - NULL); - return TCL_ERROR; - } - Tcl_SetHashValue(commandEntryPtr, menuPtr); - *menuIDPtr = returnID; - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXFreeMenuID -- - * - * Marks the id as free. - * - * Results: - * None. - * - * Side effects: - * The hash table entry for the ID is cleared. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXFreeMenuID( - short menuID) /* The id to free */ -{ - Tcl_HashEntry *entryPtr = Tcl_FindHashEntry(&commandTable, - (char*)(intptr_t)menuID); - - if (entryPtr != NULL) { - Tcl_DeleteHashEntry(entryPtr); - } - if (menuID == currentAppleMenuID) { - currentAppleMenuID = 0; - } - if (menuID == currentHelpMenuID) { - currentHelpMenuID = 0; - } -} - -/* - *---------------------------------------------------------------------- - * - * MenuPtrForMenuRef -- - * - * Returns a pointer to the TkMenu corresponding to a given Carbon - * MenuRef. - * - * Results: - * Returns a pointer to a TkMenu or NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkMenu * -MenuPtrForMenuRef( - MenuRef menu) -{ - TkMenu *menuPtr = NULL; - MenuID menuID = GetMenuID(menu); - Tcl_HashEntry *commandEntryPtr = - Tcl_FindHashEntry(&commandTable, (char*)(intptr_t)menuID); - - if (commandEntryPtr) { - menuPtr = Tcl_GetHashValue(commandEntryPtr); - } - return menuPtr; -} - -/* - *---------------------------------------------------------------------- - * - * GetParentMenuEntry -- - * - * Returns a pointer to the parent's TkMenuEntry of a given TkMenu. - * - * Results: - * Returns a pointer to a TkMenuEntry or NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkMenuEntry* -GetParentMenuEntry( - TkMenu *menuPtr) -{ - TkMenuEntry *cascadeEntryPtr; - - for (cascadeEntryPtr = menuPtr->menuRefPtr->parentEntryPtr; - cascadeEntryPtr != NULL; - cascadeEntryPtr = cascadeEntryPtr->nextCascadePtr) { - const char *name = (cascadeEntryPtr->namePtr == NULL) ? "" - : Tcl_GetString(cascadeEntryPtr->namePtr); - - if (strcmp(name, Tk_PathName(menuPtr->tkwin)) == 0) { - break; - } - } - return cascadeEntryPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpNewMenu -- - * - * Gets a new blank menu. Only the platform specific options are filled - * in. - * - * Results: - * Returns a standard TCL error. - * - * Side effects: - * Allocates a Macintosh menu handle and puts in the platformData field - * of the menuPtr. - * - *---------------------------------------------------------------------- - */ - -int -TkpNewMenu( - TkMenu *menuPtr) /* The common structure we are making the - * platform structure for. */ -{ - short menuID; - MenuRef macMenuHdl; -#ifdef USE_TK_MDEF - MenuDefSpec menuDefSpec; - Tcl_Obj *useMDEFObjPtr; - int useMDEF = 1; -#endif - int error = TCL_OK; - OSStatus err; - CFStringRef cfStr; - - error = TkMacOSXGetNewMenuID(menuPtr->interp, menuPtr, 0, &menuID); - if (error != TCL_OK) { - return error; - } - err = ChkErr(CreateNewMenu, menuID, kMenuAttrDoNotUseUserCommandKeys, - &macMenuHdl); - if (err != noErr) { - Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj( - "CreateNewMenu failed.", -1)); - Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "CREATE", NULL); - return TCL_ERROR; - } - cfStr = CFStringCreateWithCString(NULL, Tk_PathName(menuPtr->tkwin), - kCFStringEncodingUTF8); - if (!cfStr) { - Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj( - "CFStringCreateWithCString failed.", -1)); - Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "CREATE_STRING",NULL); - return TCL_ERROR; - } - err = ChkErr(SetMenuTitleWithCFString, macMenuHdl, cfStr); - CFRelease(cfStr); - if (err != noErr) { - Tcl_SetObjResult(menuPtr->interp, Tcl_NewStringObj( - "SetMenuTitleWithCFString failed.", -1)); - Tcl_SetErrorCode(menuPtr->interp, "TK", "MENU", "SET_TITLE", NULL); - return TCL_ERROR; - } - - menuPtr->platformData = ckalloc(sizeof(MacMenu)); - ((MacMenu *) menuPtr->platformData)->menuHdl = macMenuHdl; - -#ifdef USE_TK_MDEF - /* - * Check whether we want to use the custom mdef or not. For now - * the default is to use it unless the variable is explicitly - * set to no. - */ - - useMDEFObjPtr = Tcl_ObjGetVar2(menuPtr->interp, useMDEFVar, NULL, - TCL_GLOBAL_ONLY); - if (useMDEFObjPtr == NULL || Tcl_GetBooleanFromObj(NULL, useMDEFObjPtr, - &useMDEF) == TCL_ERROR || useMDEF) { - menuDefSpec.defType = kMenuDefProcPtr; - menuDefSpec.u.defProc = MenuDefProc; - ChkErr(SetMenuDefinition, macMenuHdl, &menuDefSpec); - } - ((MacMenu *) menuPtr->platformData)->useMDEF = useMDEF; -#endif /* USE_TK_MDEF */ - - if ((currentMenuBarInterp == menuPtr->interp) - && (currentMenuBarName != NULL)) { - Tk_Window parentWin = Tk_Parent(menuPtr->tkwin); - - if (strcmp(currentMenuBarName, Tk_PathName(parentWin)) == 0) { - if ((strcmp(Tk_PathName(menuPtr->tkwin) - + strlen(Tk_PathName(parentWin)), ".apple") == 0) - || (strcmp(Tk_PathName(menuPtr->tkwin) - + strlen(Tk_PathName(parentWin)), ".help") == 0)) { - if (!(menuBarFlags & MENUBAR_REDRAW_PENDING)) { - Tcl_DoWhenIdle(DrawMenuBarWhenIdle, NULL); - menuBarFlags |= MENUBAR_REDRAW_PENDING; - } - } - } - } - - menuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, menuPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyMenu -- - * - * Destroys platform-specific menu structures. - * - * Results: - * None. - * - * Side effects: - * All platform-specific allocations are freed up. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyMenu( - TkMenu *menuPtr) /* The common menu structure */ -{ - MenuRef macMenuHdl = ((MacMenu *) menuPtr->platformData)->menuHdl; - - if (menuPtr->menuFlags & MENU_RECONFIGURE_PENDING) { - Tcl_CancelIdleCall(ReconfigureMacintoshMenu, menuPtr); - menuPtr->menuFlags &= ~MENU_RECONFIGURE_PENDING; - } - if (GetMenuID(macMenuHdl) == currentHelpMenuID) { - MenuRef helpMenuHdl; - MenuItemIndex helpIndex; - - if ((HMGetHelpMenu(&helpMenuHdl,&helpIndex) == noErr) - && (helpMenuHdl != NULL)) { - int i, count = CountMenuItems(helpMenuHdl); - - for (i = helpIndex; i <= count; i++) { - DeleteMenuItem(helpMenuHdl, helpIndex); - } - } - currentHelpMenuID = 0; - } - if (menuPtr->platformData != NULL) { - MenuID menuID = GetMenuID(macMenuHdl); - - DeleteMenu(menuID); - TkMacOSXFreeMenuID(menuID); - DisposeMenu(macMenuHdl); - ckfree(menuPtr->platformData); - menuPtr->platformData = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * SetMenuCascade -- - * - * Does any cleanup to change a menu from a normal to a cascade. - * - * Results: - * Standard Tcl error. - * - * Side effects: - * The mac menu id is reset. - * - *---------------------------------------------------------------------- - */ - -int -SetMenuCascade( - TkMenu *menuPtr) /* The menu we are setting up to be a - * cascade. */ -{ - MenuHandle macMenuHdl = ((MacMenu *) menuPtr->platformData)->menuHdl; - MenuID newMenuID, menuID = GetMenuID(macMenuHdl); - int error = TCL_OK; - - if (menuID >= 256) { - error = TkMacOSXGetNewMenuID(menuPtr->interp, menuPtr, 1, &newMenuID); - if (error == TCL_OK) { - TkMacOSXFreeMenuID(menuID); - SetMenuID(macMenuHdl,newMenuID); - } - } - return error; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyMenuEntry -- - * - * Cleans up platform-specific menu entry items. - * - * Results: - * None - * - * Side effects: - * All platform-specific allocations are freed up. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyMenuEntry( - TkMenuEntry *mePtr) /* The common structure for the menu entry. */ -{ - TkMenu *menuPtr = mePtr->menuPtr; - - ckfree(mePtr->platformEntryData); - if ((menuPtr->platformData != NULL) - && !(menuPtr->menuFlags & MENU_RECONFIGURE_PENDING)) { - menuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, menuPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * GetEntryText -- - * - * Given a menu entry, gives back the text that should go in it. - * Separators should be done by the caller, as they have to be handled - * specially. This is primarily used to do a substitution between "..." - * and the ellipsis character which looks nicer. - * - * Results: - * itemText points to the new text for the item. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetEntryText( - TkMenuEntry *mePtr, /* A pointer to the menu entry. */ - Tcl_DString *dStringPtr) /* The DString to put the text into. This - * will be initialized by this routine. */ -{ -#ifdef USE_TK_MDEF - const int useMDEF = ((MacMenu *) mePtr->menuPtr->platformData)->useMDEF; -#endif - int noLabel = (mePtr->labelPtr == NULL || mePtr->labelLength == 0); - - Tcl_DStringInit(dStringPtr); - if (mePtr->type == TEAROFF_ENTRY && (useMDEF || noLabel)) { - Tcl_DStringAppend(dStringPtr, "(Tear-off)", -1); - } else if (mePtr->imagePtr != NULL && (useMDEF || noLabel) && - mePtr->compound == COMPOUND_NONE) { - Tcl_DStringAppend(dStringPtr, "(Image)", -1); - } else if (mePtr->bitmapPtr != NULL && (useMDEF || noLabel) && - mePtr->compound == COMPOUND_NONE) { - Tcl_DStringAppend(dStringPtr, "(Pixmap)", -1); - } else if (noLabel) { - /* - * The Mac menu manager does not like null strings. - */ - - Tcl_DStringAppend(dStringPtr, " ", -1); - } else { - int length; - char *text = Tcl_GetStringFromObj(mePtr->labelPtr, &length); - char *dStringText; - int i; - - for (i = 0; *text; text++, i++) { - if ((*text == '.') && (*(text+1) == '.') && (*(text+2) == '.')) { - Tcl_DStringAppend(dStringPtr, menuSymbols[ELLIPSIS_SYMBOL].utf, - menuSymbols[ELLIPSIS_SYMBOL].utfLen); - i += menuSymbols[ELLIPSIS_SYMBOL].utfLen - 1; - text += 2; - } else { - Tcl_DStringSetLength(dStringPtr, - Tcl_DStringLength(dStringPtr) + 1); - dStringText = Tcl_DStringValue(dStringPtr); - dStringText[i] = *text; - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * FindMarkCharacter -- - * - * Finds the Macintosh mark character based on the font of the item. We - * calculate a good mark character based on the font that this item is - * rendered in. - * - * Results: - * Mark char. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -char -FindMarkCharacter( - TkMenuEntry *mePtr) /* The entry we are finding the character - * for. */ -{ - static const char markChars[] = {kCheckCharCode, kDiamondCharCode, - kBulletCharCode, '-', kCheckCharCode}; - const char *markChar = markChars; - int i = sizeof(markChars); - Tk_Font tkfont; - - tkfont = Tk_GetFontFromObj(mePtr->menuPtr->tkwin, - (mePtr->fontPtr == NULL) ? mePtr->menuPtr->fontPtr - : mePtr->fontPtr); - - while (--i) { - if (!TkMacOSXIsCharacterMissing(tkfont, *markChar)) { - break; - } - markChar++; - } - return *markChar; -} - -/* - *---------------------------------------------------------------------- - * - * GetUtfMarkCharacter -- - * - * Get the utf8 string for the given mark character, taking into account - * the special menu font char codes. - * - * Results: - * Length of returned utf8 string. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -GetUtfMarkCharacter( - char markChar, - const char **markUtfPtr) -{ - const MenuSymbol *ms = menuSymbols; - int len = 0; - - while (ms->unicode) { - if (ms->charCode && ms->charCode == markChar) { - *markUtfPtr = ms->utf; - len = ms->utfLen; - break; - } - ms++; - } - if (!len) { - static char markUtf[TCL_UTF_MAX + 1]; - - Tcl_ExternalToUtf(NULL, TkMacOSXCarbonEncoding, &markChar, 1, 0, NULL, - markUtf, TCL_UTF_MAX + 1, NULL, &len, NULL); - *markUtfPtr = markUtf; - } - return len; -} - -/* - *---------------------------------------------------------------------- - * - * ParseAccelerators -- - * - * Parse menu accelerator string. - * - * Results: - * Accelerator flags. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -ParseAccelerators( - const char **accelStringPtr, - int *modifierNumPtr, - Tcl_UniChar *modifierUniChars, - int *modifierWidth) -{ - struct Modif { - const char *name; - const size_t len; - const int flag, symbol; - }; -#define MODIF(n, f) { #n, sizeof(#n)-1, ENTRY_##f##_ACCEL, f##_SYMBOL } - static const struct Modif modifs[] = { - MODIF(Control, CONTROL), - MODIF(Ctrl, CONTROL), - MODIF(Option, OPTION), - MODIF(Opt, OPTION), - MODIF(Alt, OPTION), - MODIF(Shift, SHIFT), - MODIF(Command, COMMAND), - MODIF(Cmd, COMMAND), - MODIF(Meta, COMMAND), - { NULL, 0, 0, 0} - }; -#undef MODIF - const char *accelString = *accelStringPtr; - int flags = 0, num = 0, seen = 0, width = 0; - const struct Modif *m; - - while (1) { - m = modifs; - while (m->name) { - int l = m->len; - - if (!strncasecmp(accelString, m->name, l) && - (accelString[l] == '-' || accelString[l] == '+')) { - flags |= m->flag; - accelString += l+1; - break; - } - m++; - } - if (!m->name || !*accelString) { - break; - } - } - m = modifs; - while (m->name && num < MODIFIER_NUM) { - if (flags & m->flag && !(seen & m->flag)) { - modifierUniChars[num++] = menuSymbols[m->symbol].unicode; - width += menuSymbols[m->symbol].width; - seen |= m->flag; - } - m++; - } - *accelStringPtr = accelString; - *modifierNumPtr = num; - *modifierWidth = width; - return flags; -} - -/* - *---------------------------------------------------------------------- - * - * TkpConfigureMenuEntry -- - * - * Processes configurations for menu entries. - * - * Results: - * Returns standard TCL result. If TCL_ERROR is returned, then the - * interp's result contains an error message. - * - * Side effects: - * Configuration information get set for mePtr; old resources get freed, - * if any need it. - * - *---------------------------------------------------------------------- - */ - -int -TkpConfigureMenuEntry( - TkMenuEntry *mePtr) /* Information about menu entry; may or may - * not already have values for some fields. */ -{ - TkMenu *menuPtr = mePtr->menuPtr; - EntryGeometry *geometryPtr = (EntryGeometry *) mePtr->platformEntryData; - - /* - * Cascade menus have to have menu IDs of less than 256. So we need to - * change the child menu if this has been configured for a cascade item. - */ - - if (mePtr->type == CASCADE_ENTRY) { - if ((mePtr->childMenuRefPtr != NULL) - && (mePtr->childMenuRefPtr->menuPtr != NULL)) { - MenuHandle childMenuHdl = ((MacMenu *) mePtr - ->childMenuRefPtr->menuPtr->platformData)->menuHdl; - - if (childMenuHdl != NULL) { - int error = SetMenuCascade(mePtr->childMenuRefPtr->menuPtr); - - if (error != TCL_OK) { - return error; - } - - if (menuPtr->menuType == MENUBAR) { - CFStringRef cfStr = CFStringCreateWithCString(NULL, - (!(mePtr->labelPtr) ? "" : - Tcl_GetString(mePtr->labelPtr)), - kCFStringEncodingUTF8); - - if (cfStr) { - SetMenuTitleWithCFString(childMenuHdl, cfStr); - CFRelease(cfStr); - } - } - } - } - } - - /* - * We need to parse the accelerator string. If it has the strings for - * Command, Control, Shift or Option, we need to flag it so we can draw - * the symbols for it. We also need to precalcuate the position of the - * first real character we are drawing. - */ - - if (0 == mePtr->accelLength) { - geometryPtr->accelTextStart = -1; - } else { - const char *accelString = (mePtr->accelPtr == NULL) ? "" - : Tcl_GetString(mePtr->accelPtr); - const char *accelStart = accelString; - - mePtr->entryFlags &= ~ENTRY_ACCEL_MASK; - mePtr->entryFlags |= ParseAccelerators(&accelString, - &geometryPtr->modifierNum, geometryPtr->modifierUniChars, - &geometryPtr->modifierWidth); - geometryPtr->accelTextStart = (ptrdiff_t)(accelString - accelStart); - } - - if (!(menuPtr->menuFlags & MENU_RECONFIGURE_PENDING)) { - menuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, menuPtr); - } - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * ReconfigureIndividualMenu -- - * - * This routine redoes the guts of the menu. It works from a base item - * and offset, so that a regular menu will just have all of its items - * added, but the help menu will have all of its items appended after the - * apple-defined items. - * - * Results: - * None. - * - * Side effects: - * The Macintosh menu handle is updated - * - *---------------------------------------------------------------------- - */ - -void -ReconfigureIndividualMenu( - TkMenu *menuPtr, /* The menu we are affecting. */ - MenuHandle macMenuHdl, /* The macintosh menu we are affecting. Will - * not necessarily be menuPtr->platformData - * because this could be the help menu. */ - int base) /* The last index that we do not want touched. - * 0 for normal menus; # of system help menu - * items for help menus. */ -{ - int count; - int index; - TkMenuEntry *mePtr; - int parentDisabled = 0; - -#ifdef TK_MAC_DEBUG_MENUS - /* - * Carbon-internal menu debugging (c.f. Technote 2124) - */ - - TkMacOSXInitNamedDebugSymbol(HIToolbox, void, DebugPrintMenu, - MenuRef menu); - if (DebugPrintMenu) { - DebugPrintMenu(macMenuHdl); - } -#endif - - mePtr = GetParentMenuEntry(menuPtr); - if (mePtr && mePtr->state == ENTRY_DISABLED) { - parentDisabled = 1; - } - - /* - * First, we get rid of all of the old items. - */ - - count = CountMenuItems(macMenuHdl); - for (index = base; index < count; index++) { - DeleteMenuItem(macMenuHdl, base + 1); - } - - count = menuPtr->numEntries; - - for (index = 1; index <= count; index++) { - mePtr = menuPtr->entries[index - 1]; - - /* - * We have to do separators separately because SetMenuItemText does - * not parse meta-characters. - */ - - if (mePtr->type == SEPARATOR_ENTRY) { - AppendMenuItemTextWithCFString(macMenuHdl, NULL, - kMenuItemAttrSeparator | kMenuItemAttrDisabled, 0, NULL); - } else { - Tcl_DString itemTextDString; - CFStringRef cfStr; - - GetEntryText(mePtr, &itemTextDString); - cfStr = CFStringCreateWithCString(NULL, - Tcl_DStringValue(&itemTextDString), kCFStringEncodingUTF8); - if (cfStr) { - AppendMenuItemTextWithCFString(macMenuHdl, cfStr, 0, 0, NULL); - CFRelease(cfStr); - } else { - AppendMenuItemTextWithCFString(macMenuHdl, CFSTR ("<Error>"), - 0, 0, NULL); - } - Tcl_DStringFree(&itemTextDString); - - /* - * Set enabling and disabling correctly. - */ - - if (parentDisabled || (mePtr->state == ENTRY_DISABLED)) { - DisableMenuItem(macMenuHdl, base + index); - } else { - EnableMenuItem(macMenuHdl, base + index); - } - - /* - * Set the check mark for check entries and radio entries. - */ - - SetItemMark(macMenuHdl, base + index, 0); - if ((mePtr->type == CHECK_BUTTON_ENTRY) - || (mePtr->type == RADIO_BUTTON_ENTRY)) { - CheckMenuItem(macMenuHdl, base + index, (mePtr->entryFlags - & ENTRY_SELECTED) && mePtr->indicatorOn); - if (mePtr->indicatorOn - && (mePtr->entryFlags & ENTRY_SELECTED)) { - SetItemMark(macMenuHdl, base + index, - FindMarkCharacter(mePtr)); - } - } - - if (mePtr->type == CASCADE_ENTRY) { - if ((mePtr->childMenuRefPtr != NULL) - && (mePtr->childMenuRefPtr->menuPtr != NULL)) { - MenuHandle childMenuHdl = - ((MacMenu *) mePtr->childMenuRefPtr - ->menuPtr->platformData)->menuHdl; - - if (childMenuHdl != NULL) { - ChkErr(SetMenuItemHierarchicalID, macMenuHdl, - base + index, GetMenuID(childMenuHdl)); - } - - /* - * If we changed the highligthing of this menu, its - * children all have to be reconfigured so that their - * state will be reflected in the menubar. - */ - - if (!(mePtr->childMenuRefPtr->menuPtr->menuFlags - & MENU_RECONFIGURE_PENDING)) { - mePtr->childMenuRefPtr->menuPtr->menuFlags - |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, - mePtr->childMenuRefPtr->menuPtr); - } - } - } - - if ((mePtr->type != CASCADE_ENTRY) && (mePtr->accelPtr != NULL)) { - int accelLen, modifiers = 0, hasCmd = 0; - EntryGeometry *geometryPtr = (EntryGeometry *) - mePtr->platformEntryData; - int offset = geometryPtr->accelTextStart; - char *accel = Tcl_GetStringFromObj(mePtr->accelPtr, &accelLen); - - accelLen -= offset; - accel += offset; - if (mePtr->entryFlags & ENTRY_OPTION_ACCEL) { - modifiers |= kMenuOptionModifier; - } - if (mePtr->entryFlags & ENTRY_SHIFT_ACCEL) { - modifiers |= kMenuShiftModifier; - } - if (mePtr->entryFlags & ENTRY_CONTROL_ACCEL) { - modifiers |= kMenuControlModifier; - } - if (mePtr->entryFlags & ENTRY_COMMAND_ACCEL) { - hasCmd = 1; - } - if (accelLen == 1) { - if (hasCmd || (modifiers != 0 && modifiers != - kMenuShiftModifier)) { - SetItemCmd(macMenuHdl, base + index, accel[0]); - if (!hasCmd) { - modifiers |= kMenuNoCommandModifier; - } - } - } else { - /* - * Convert from accelerator names to Carbon menu glyphs. - */ - - struct Glyph { - const char *name; - const size_t len; - const char glyph; - }; -#define GLYPH(n, g) { #n, sizeof(#n)-1, kMenu##g##Glyph } - static const struct Glyph glyphs[] = { - GLYPH(PageUp, PageUp), - GLYPH(PageDown, PageDown), - GLYPH(Left, LeftArrow), - GLYPH(Right, RightArrow), - GLYPH(Up, UpArrow), - GLYPH(Down, DownArrow), - GLYPH(Escape, Escape), - GLYPH(Clear, Clear), - GLYPH(Enter, Enter), - GLYPH(Backspace,DeleteLeft), - GLYPH(Space, Space), - GLYPH(Tab, TabRight), - GLYPH(Delete, DeleteRight), - GLYPH(Home, NorthwestArrow), - GLYPH(End, SoutheastArrow), - GLYPH(Return, Return), - GLYPH(Help, Help), - GLYPH(Power, Power), - { NULL, 0, 0} - }; -#undef GLYPH - const struct Glyph *g = glyphs; - char glyph = 0; - - if (accel[0] == 'F' && accelLen < 4 && - (accel[1] > '0' && accel[1] <= '9')) { - int fkey = accel[1] - '0'; - - if (accelLen == 3) { - if (accel[2] >= '0' && accel[2] <= '9') { - fkey = 10 * fkey + (accel[2] - '0'); - } else { - fkey = 0; - } - } - if (fkey >= 1 && fkey <= 12) { - glyph = kMenuF1Glyph + fkey - 1; - } else if (fkey >= 13 && fkey <= 15) { - glyph = kMenuF13Glyph + fkey - 13; - } - } else while (g->name) { - if (accel[0] == g->name[0] && - (size_t)accelLen == g->len && - !strncasecmp(accel, g->name, g->len)) { - glyph = g->glyph; - break; - } - g++; - } - if (glyph) { - ChkErr(SetMenuItemKeyGlyph, macMenuHdl, base + index, - glyph); - if (!hasCmd) { - modifiers |= kMenuNoCommandModifier; - } - geometryPtr->accelGlyph = glyph; - } - } - ChkErr(SetMenuItemModifiers, macMenuHdl, base + index, - modifiers); - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * ReconfigureMacintoshMenu -- - * - * Rebuilds the Macintosh MenuHandle items from the menu. Called usually - * as an idle handler, but can be called synchronously if the menu is - * about to be posted. - * - * Results: - * None. - * - * Side effects: - * Configuration information get set for mePtr; old resources get freed, - * if any need it. - * - *---------------------------------------------------------------------- - */ - -void -ReconfigureMacintoshMenu( - ClientData clientData) /* Information about menu entry; may or may - * not already have values for some fields. */ -{ - TkMenu *menuPtr = clientData; - MenuHandle macMenuHdl = ((MacMenu *) menuPtr->platformData)->menuHdl; - MenuHandle helpMenuHdl = NULL; - - menuPtr->menuFlags &= ~MENU_RECONFIGURE_PENDING; - - if (NULL == macMenuHdl) { - return; - } - - ReconfigureIndividualMenu(menuPtr, macMenuHdl, 0); - - if (GetMenuID(macMenuHdl) == currentHelpMenuID) { - MenuItemIndex helpIndex; - - HMGetHelpMenu(&helpMenuHdl,&helpIndex); - if (helpMenuHdl != NULL) { - ReconfigureIndividualMenu(menuPtr, helpMenuHdl, helpIndex - 1); - } - } - - if (menuPtr->menuType == MENUBAR) { - if (!(menuBarFlags & MENUBAR_REDRAW_PENDING)) { - Tcl_DoWhenIdle(DrawMenuBarWhenIdle, NULL); - menuBarFlags |= MENUBAR_REDRAW_PENDING; - } - } -} - -/* - *---------------------------------------------------------------------- - * - * CompleteIdlers -- - * - * Completes all idle handling so that the menus are in sync when the - * user invokes them with the mouse. - * - * Results: - * None. - * - * Side effects: - * The Macintosh menu handles are flushed out. - * - *---------------------------------------------------------------------- - */ - -void -CompleteIdlers( - TkMenu *menuPtr) /* The menu we are completing. */ -{ - int i; - - if (menuPtr->menuFlags & MENU_RECONFIGURE_PENDING) { - Tcl_CancelIdleCall(ReconfigureMacintoshMenu, menuPtr); - ReconfigureMacintoshMenu(menuPtr); - } - - for (i = 0; i < menuPtr->numEntries; i++) { - if ((menuPtr->entries[i]->type == CASCADE_ENTRY) && - (menuPtr->entries[i]->childMenuRefPtr != NULL) && - (menuPtr->entries[i]->childMenuRefPtr->menuPtr != NULL)) { - CompleteIdlers(menuPtr->entries[i]->childMenuRefPtr->menuPtr); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpPostMenu -- - * - * Posts a menu on the screen - * - * Results: - * None. - * - * Side effects: - * The menu is posted and handled. - * - *---------------------------------------------------------------------- - */ - -int -TkpPostMenu( - Tcl_Interp *interp, /* The interpreter this menu lives in */ - TkMenu *menuPtr, /* The menu we are posting */ - int x, /* The global x-coordinate of the top, left- - * hand corner of where the menu is supposed - * to be posted. */ - int y) /* The global y-coordinate */ -{ - MenuHandle macMenuHdl = ((MacMenu *) menuPtr->platformData)->menuHdl; - long popUpResult; - int result; - - if (inPostMenu > 0) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "Cannot call post menu while already posting menu", -1)); - Tcl_SetErrorCode(interp, "TK", "MENU", "POSTING", NULL); - result = TCL_ERROR; - } else { - short menuID; - Window window; - int oldWidth = menuPtr->totalWidth; - - inPostMenu++; - result = TkPreprocessMenu(menuPtr); - - /* - * The post commands could have deleted the menu, which means we are - * dead and should go away. - */ - - if (result != TCL_OK || !menuPtr->tkwin) { - goto endPostMenu; - } - - CompleteIdlers(menuPtr); - if (menuBarFlags & MENUBAR_REDRAW_PENDING) { - Tcl_CancelIdleCall(DrawMenuBarWhenIdle, NULL); - DrawMenuBarWhenIdle(NULL); - } - RecursivelyInsertMenu(menuPtr); - - TkMacOSXTrackingLoop(1); - popUpResult = PopUpMenuSelect(macMenuHdl, y, x, menuPtr->active); - TkMacOSXTrackingLoop(0); - menuPtr->totalWidth = oldWidth; - - /* - * Simulate the mouse up. - */ - - window = Tk_WindowId(menuPtr->tkwin); - TkGenerateButtonEventForXPointer(window); - - /* - * Dispatch the command. - */ - - menuID = HiWord(popUpResult); - if (menuID != 0) { - result = TkMacOSXDispatchMenuEvent(menuID, LoWord(popUpResult)); - } - -endPostMenu: - inPostMenu--; - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkpMenuNewEntry -- - * - * Adds a pointer to a new menu entry structure with the platform- - * specific fields filled in. The Macintosh uses the platformEntryData - * field of the TkMenuEntry record to store geometry information. - * - * Results: - * Standard TCL error. - * - * Side effects: - * Storage gets allocated. New menu entry data is put into the - * platformEntryData field of the mePtr. - * - *---------------------------------------------------------------------- - */ - -int -TkpMenuNewEntry( - TkMenuEntry *mePtr) /* The menu we are adding an entry to */ -{ - EntryGeometry *geometryPtr = ckalloc(sizeof(EntryGeometry)); - TkMenu *menuPtr = mePtr->menuPtr; - - geometryPtr->accelTextStart = 0; - geometryPtr->accelTextWidth = 0; - geometryPtr->nonAccelMargin = 0; - geometryPtr->modifierWidth = 0; - geometryPtr->modifierNum = 0; - geometryPtr->accelGlyph = 0; - mePtr->platformEntryData = (TkMenuPlatformEntryData) geometryPtr; - if (!(menuPtr->menuFlags & MENU_RECONFIGURE_PENDING)) { - menuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, menuPtr); - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * 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; -} - -/* - *---------------------------------------------------------------------- - * - * DrawMenuBarWhenIdle -- - * - * Update the menu bar next time there is an idle event. - * - * Results: - * None. - * - * Side effects: - * Menu bar is redrawn. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuBarWhenIdle( - ClientData clientData) /* ignored here */ -{ - TkMenuReferences *menuRefPtr; - TkMenu *appleMenuPtr, *helpMenuPtr, *menuBarPtr = NULL; - MenuHandle macMenuHdl; - Tcl_HashEntry *hashEntryPtr; - - /* - * If we have been turned off, exit. - */ - - if (gNoTkMenus) { - return; - } - - /* - * We need to clear the apple and help menus of any extra items. - */ - - if (currentAppleMenuID != 0) { - hashEntryPtr = Tcl_FindHashEntry(&commandTable, - (char*)(intptr_t)currentAppleMenuID); - appleMenuPtr = Tcl_GetHashValue(hashEntryPtr); - TkpDestroyMenu(appleMenuPtr); - TkpNewMenu(appleMenuPtr); - appleMenuPtr->menuFlags &= ~MENU_APPLE_MENU; - appleMenuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, appleMenuPtr); - } - - if (currentHelpMenuID != 0) { - hashEntryPtr = Tcl_FindHashEntry(&commandTable, - (char*)(intptr_t)currentHelpMenuID); - helpMenuPtr = Tcl_GetHashValue(hashEntryPtr); - TkpDestroyMenu(helpMenuPtr); - TkpNewMenu(helpMenuPtr); - helpMenuPtr->menuFlags &= ~MENU_HELP_MENU; - helpMenuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, helpMenuPtr); - } - - /* - * We need to find the clone of this menu that is the menubar. Once we do - * that, for every cascade in the menu, we need to insert the Mac menu in - * the Mac menubar. Finally, we need to redraw the menubar. - */ - - menuRefPtr = NULL; - if (currentMenuBarName != NULL) { - menuRefPtr = TkFindMenuReferences(currentMenuBarInterp, - currentMenuBarName); - } - if (menuRefPtr) { - TkMenu *menuPtr; - TkMenu *cascadeMenuPtr; - char *appleMenuName, *helpMenuName; - int appleIndex = -1, helpIndex = -1, i; - - menuPtr = menuRefPtr->menuPtr; - if (menuPtr != NULL) { - TkMenuReferences *specialMenuRefPtr; - TkMenuEntry *specialEntryPtr; - - appleMenuName = ckalloc(strlen(currentMenuBarName) + 1 + - strlen(".apple") + 1); - sprintf(appleMenuName, "%s.apple", Tk_PathName(menuPtr->tkwin)); - specialMenuRefPtr = TkFindMenuReferences(currentMenuBarInterp, - appleMenuName); - if ((specialMenuRefPtr != NULL) - && (specialMenuRefPtr->menuPtr != NULL)) { - for (specialEntryPtr = specialMenuRefPtr->parentEntryPtr; - specialEntryPtr != NULL; - specialEntryPtr = specialEntryPtr->nextCascadePtr) { - if (specialEntryPtr->menuPtr == menuPtr) { - appleIndex = specialEntryPtr->index; - break; - } - } - } - ckfree(appleMenuName); - - helpMenuName = ckalloc(strlen(currentMenuBarName) + 1 + - strlen(".help") + 1); - sprintf(helpMenuName, "%s.help", Tk_PathName(menuPtr->tkwin)); - specialMenuRefPtr = TkFindMenuReferences(currentMenuBarInterp, - helpMenuName); - if ((specialMenuRefPtr != NULL) - && (specialMenuRefPtr->menuPtr != NULL)) { - for (specialEntryPtr = specialMenuRefPtr->parentEntryPtr; - specialEntryPtr != NULL; - specialEntryPtr = specialEntryPtr->nextCascadePtr) { - if (specialEntryPtr->menuPtr == menuPtr) { - helpIndex = specialEntryPtr->index; - break; - } - } - } - ckfree(helpMenuName); - } - - for (menuBarPtr = menuPtr; - (menuBarPtr != NULL) && (menuBarPtr->menuType != MENUBAR); - menuBarPtr = menuBarPtr->nextInstancePtr) { - /* - * Null loop body. - */ - } - - if (menuBarPtr) { - if (menuBarPtr->tearoff != menuPtr->tearoff) { - if (menuBarPtr->tearoff) { - appleIndex = (-1 == appleIndex) ? appleIndex - : appleIndex + 1; - helpIndex = (-1 == helpIndex) ? helpIndex - : helpIndex + 1; - } else { - appleIndex = (-1 == appleIndex) ? appleIndex - : appleIndex - 1; - helpIndex = (-1 == helpIndex) ? helpIndex - : helpIndex - 1; - } - } - ClearMenuBar(); - - if (appleIndex == -1) { - InsertMenu(tkAppleMenu, 0); - currentAppleMenuID = 0; - tkCurrentAppleMenu = tkAppleMenu; - } else { - short appleID; - - appleMenuPtr = menuBarPtr->entries[appleIndex] - ->childMenuRefPtr->menuPtr; - TkpDestroyMenu(appleMenuPtr); - TkMacOSXGetNewMenuID(appleMenuPtr->interp, appleMenuPtr, 0, - &appleID); - macMenuHdl = NewMenu(appleID, "\p\024"); - appleMenuPtr->platformData = ckalloc(sizeof(MacMenu)); - ((MacMenu *)appleMenuPtr->platformData)->menuHdl - = macMenuHdl; - appleMenuPtr->menuFlags |= MENU_APPLE_MENU; - if (!(appleMenuPtr->menuFlags - & MENU_RECONFIGURE_PENDING)) { - appleMenuPtr->menuFlags |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, appleMenuPtr); - } - InsertMenu(macMenuHdl, 0); - RecursivelyInsertMenu(appleMenuPtr); - currentAppleMenuID = appleID; - tkCurrentAppleMenu = macMenuHdl; - } - if (helpIndex == -1) { - currentHelpMenuID = 0; - } - - for (i = 0; i < menuBarPtr->numEntries; i++) { - if (i == appleIndex) { - if (menuBarPtr->entries[i]->state == ENTRY_DISABLED) { - DisableMenuItem(((MacMenu *) menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr - ->platformData)->menuHdl, 0); - } else { - EnableMenuItem(((MacMenu *) menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr - ->platformData)->menuHdl, 0); - } - continue; - } else if (i == helpIndex) { - TkMenu *helpMenuPtr = menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr; - - if (helpMenuPtr == NULL) { - continue; - } - helpMenuPtr->menuFlags |= MENU_HELP_MENU; - if (!(helpMenuPtr->menuFlags - & MENU_RECONFIGURE_PENDING)) { - helpMenuPtr->menuFlags - |= MENU_RECONFIGURE_PENDING; - Tcl_DoWhenIdle(ReconfigureMacintoshMenu, helpMenuPtr); - } - macMenuHdl = - ((MacMenu *) helpMenuPtr->platformData)->menuHdl; - currentHelpMenuID = GetMenuID(macMenuHdl); - } else if (menuBarPtr->entries[i]->type - == CASCADE_ENTRY) { - if ((menuBarPtr->entries[i]->childMenuRefPtr != NULL) - && menuBarPtr->entries[i]->childMenuRefPtr - ->menuPtr != NULL) { - cascadeMenuPtr = menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr; - macMenuHdl = ((MacMenu *) cascadeMenuPtr - ->platformData)->menuHdl; - DeleteMenu(GetMenuID(macMenuHdl)); - InsertMenu(macMenuHdl, 0); - RecursivelyInsertMenu(cascadeMenuPtr); - if (menuBarPtr->entries[i]->state == ENTRY_DISABLED) { - DisableMenuItem(((MacMenu *) menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr - ->platformData)->menuHdl, 0); - } else { - EnableMenuItem(((MacMenu *) menuBarPtr->entries[i] - ->childMenuRefPtr->menuPtr - ->platformData)->menuHdl, 0); - } - } - } - } - } - } - if (!menuRefPtr || !menuBarPtr) { - SetDefaultMenubar(); - } - DrawMenuBar(); - menuBarFlags &= ~MENUBAR_REDRAW_PENDING; -} - -/* - *---------------------------------------------------------------------- - * - * RecursivelyInsertMenu -- - * - * Puts all of the cascades of this menu in the Mac hierarchical list. - * - * Results: - * None. - * - * Side effects: - * The menubar is changed. - * - *---------------------------------------------------------------------- - */ - -void -RecursivelyInsertMenu( - TkMenu *menuPtr) /* All of the cascade items in this menu will - * be inserted into the mac menubar. */ -{ - int i; - TkMenu *cascadeMenuPtr; - MenuHandle macMenuHdl; - - for (i = 0; i < menuPtr->numEntries; i++) { - if (menuPtr->entries[i]->type == CASCADE_ENTRY) { - if ((menuPtr->entries[i]->childMenuRefPtr != NULL) && - (menuPtr->entries[i]->childMenuRefPtr->menuPtr != NULL)) { - cascadeMenuPtr = menuPtr->entries[i]->childMenuRefPtr->menuPtr; - macMenuHdl = - ((MacMenu *) cascadeMenuPtr->platformData)->menuHdl; - InsertMenu(macMenuHdl, -1); - RecursivelyInsertMenu(cascadeMenuPtr); - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * RecursivelyDeleteMenu -- - * - * Takes all of the cascades of this menu out of the Mac hierarchical - * list. - * - * Results: - * None. - * - * Side effects: - * The menubar is changed. - * - *---------------------------------------------------------------------- - */ - -void -RecursivelyDeleteMenu( - TkMenu *menuPtr) /* All of the cascade items in this menu will - * be deleted from the mac menubar. */ -{ - int i; - TkMenu *cascadeMenuPtr; - MenuHandle macMenuHdl; - - for (i = 0; i < menuPtr->numEntries; i++) { - if (menuPtr->entries[i]->type == CASCADE_ENTRY) { - if ((menuPtr->entries[i]->childMenuRefPtr != NULL) && - (menuPtr->entries[i]->childMenuRefPtr->menuPtr != NULL)) { - cascadeMenuPtr = menuPtr->entries[i]->childMenuRefPtr->menuPtr; - macMenuHdl = - ((MacMenu *) cascadeMenuPtr->platformData)->menuHdl; - DeleteMenu(GetMenuID(macMenuHdl)); - RecursivelyDeleteMenu(cascadeMenuPtr); - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * SetDefaultMenubar -- - * - * Puts the Apple, File and Edit menus into the Macintosh menubar. - * - * Results: - * None. - * - * Side effects: - * The menubar is changed. - * - *---------------------------------------------------------------------- - */ - -void -SetDefaultMenubar(void) -{ - if (currentMenuBarName != NULL) { - ckfree(currentMenuBarName); - currentMenuBarName = NULL; - } - currentMenuBarOwner = NULL; - ClearMenuBar(); - InsertMenu(tkAppleMenu, 0); - InsertMenu(tkFileMenu, 0); - InsertMenu(tkEditMenu, 0); - if (!(menuBarFlags & MENUBAR_REDRAW_PENDING)) { - Tcl_DoWhenIdle(DrawMenuBarWhenIdle, NULL); - menuBarFlags |= MENUBAR_REDRAW_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpSetMainMenubar -- - * - * Puts the menu associated with a window into the menubar. Should only - * be called when the window is in front. - * - * Results: - * None. - * - * Side effects: - * The menubar is changed. - * - *---------------------------------------------------------------------- - */ - -void -TkpSetMainMenubar( - 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. If - * NULL, use the default menu bar. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - WindowRef macWindowPtr; - WindowRef frontNonFloating; - - macWindowPtr = TkMacOSXDrawableWindow(winPtr->window); - - frontNonFloating = ActiveNonFloatingWindow(); - if ((macWindowPtr == NULL) || (macWindowPtr != frontNonFloating)) { - return; - } - - if ((currentMenuBarInterp != interp) || (currentMenuBarOwner != tkwin) - || (currentMenuBarName == NULL) || (menuName == NULL) - || (strcmp(menuName, currentMenuBarName) != 0)) { - Tk_Window searchWindow; - TopLevelMenubarList *listPtr; - - if (currentMenuBarName != NULL) { - ckfree(currentMenuBarName); - } - - if (menuName == NULL) { - searchWindow = tkwin; - if (strcmp(Tk_Class(searchWindow), "Menu") == 0) { - TkMenuReferences *menuRefPtr; - - menuRefPtr = TkFindMenuReferences(interp, Tk_PathName(tkwin)); - if (menuRefPtr != NULL) { - TkMenu *menuPtr = menuRefPtr->menuPtr; - - if (menuPtr != NULL) { - searchWindow = menuPtr->masterMenuPtr->tkwin; - } - } - } - for (; searchWindow != NULL; - searchWindow = Tk_Parent(searchWindow)) { - for (listPtr = windowListPtr; listPtr != NULL; - listPtr = listPtr->nextPtr) { - if (listPtr->tkwin == searchWindow) { - break; - } - } - if (listPtr != NULL) { - menuName = Tk_PathName( - listPtr->menuPtr->masterMenuPtr->tkwin); - break; - } - } - } - - if (menuName == NULL) { - currentMenuBarName = NULL; - } else { - currentMenuBarName = ckalloc(strlen(menuName) + 1); - strcpy(currentMenuBarName, menuName); - } - currentMenuBarOwner = tkwin; - currentMenuBarInterp = interp; - } - if (!(menuBarFlags & MENUBAR_REDRAW_PENDING)) { - Tcl_DoWhenIdle(DrawMenuBarWhenIdle, NULL); - menuBarFlags |= MENUBAR_REDRAW_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpSetWindowMenuBar -- - * - * Associates a given menu with a window. - * - * Results: - * None. - * - * Side effects: - * On Windows and UNIX, associates the platform menu with the platform - * window. - * - *---------------------------------------------------------------------- - */ - -void -TkpSetWindowMenuBar( - Tk_Window tkwin, /* The window we are setting the menu in */ - TkMenu *menuPtr) /* The menu we are setting */ -{ - TopLevelMenubarList *listPtr, *prevPtr; - - /* - * Remove any existing reference to this window. - */ - - for (prevPtr = NULL, listPtr = windowListPtr; - listPtr != NULL; - prevPtr = listPtr, listPtr = listPtr->nextPtr) { - if (listPtr->tkwin == tkwin) { - break; - } - } - - if (listPtr != NULL) { - if (prevPtr != NULL) { - prevPtr->nextPtr = listPtr->nextPtr; - } else { - windowListPtr = listPtr->nextPtr; - } - ckfree(listPtr); - } - - if (menuPtr != NULL) { - listPtr = ckalloc(sizeof(TopLevelMenubarList)); - listPtr->nextPtr = windowListPtr; - windowListPtr = listPtr; - listPtr->tkwin = tkwin; - listPtr->menuPtr = menuPtr; - } -} - -/* - *---------------------------------------------------------------------- - * - * EventuallyInvokeMenu -- - * - * This IdleTime callback actually invokes the menu command scheduled in - * TkMacOSXDispatchMenuEvent. - * - * Results: - * None. - * - * Side effects: - * Commands get executed. - * - *---------------------------------------------------------------------- - */ - -void -EventuallyInvokeMenu ( - ClientData data) -{ - struct MenuCommandHandlerData *realData = data; - int code; - - code = TkInvokeMenu(realData->menuPtr->interp, realData->menuPtr, - realData->index); - - if (code != TCL_OK && code != TCL_CONTINUE && code != TCL_BREAK) { - Tcl_AddErrorInfo(realData->menuPtr->interp, "\n (menu invoke)"); - Tcl_BackgroundException(realData->menuPtr->interp, code); - } - - if (realData->menuPtr->tkwin) { - RecursivelyClearActiveMenu(realData->menuPtr); - } - TkMacOSXClearMenubarActive(); - - Tcl_Release(realData->menuPtr->interp); - Tcl_Release(realData->menuPtr); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXDispatchMenuEvent -- - * - * Given a menu id and an item, dispatches the command associated with - * it. - * - * Results: - * None. - * - * Side effects: - * Commands for the event are scheduled for execution at idle time. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXDispatchMenuEvent( - int menuID, /* The menu id of the menu we are invoking */ - int index) /* The one-based index of the item that was - * selected. */ -{ - int result = TCL_OK; - - if (menuID != 0) { - if (menuID == kHMHelpMenuID) { - if (currentMenuBarOwner != NULL) { - TkMenuReferences *helpMenuRef; - char *helpMenuName = ckalloc(strlen(currentMenuBarName) - + strlen(".help") + 1); - - sprintf(helpMenuName, "%s.help", currentMenuBarName); - helpMenuRef = TkFindMenuReferences(currentMenuBarInterp, - helpMenuName); - ckfree(helpMenuName); - if ((helpMenuRef != NULL) && (helpMenuRef->menuPtr != NULL)) { - MenuRef outHelpMenu; - MenuItemIndex itemIndex; - int newIndex; - - HMGetHelpMenu(&outHelpMenu, &itemIndex); - newIndex = index - itemIndex; - result = TkInvokeMenu(currentMenuBarInterp, - helpMenuRef->menuPtr, newIndex); - } - } - } else { - Tcl_HashEntry *commandEntryPtr = - Tcl_FindHashEntry(&commandTable, (char*)(intptr_t)menuID); - if (commandEntryPtr != NULL) { - TkMenu *menuPtr = Tcl_GetHashValue(commandEntryPtr); - - if ((currentAppleMenuID == menuID) - && (index > menuPtr->numEntries + 1)) { - /* - * We don't need to do anything here, the standard - * Application event handler will open the built-in Apple - * menu item for us. - */ - - result = TCL_OK; - } else { - struct MenuCommandHandlerData *data = - ckalloc(sizeof(struct MenuCommandHandlerData)); - - Tcl_Preserve(menuPtr->interp); - Tcl_Preserve(menuPtr); - data->menuPtr = menuPtr; - data->index = index - 1; - Tcl_DoWhenIdle(EventuallyInvokeMenu, data); - /* result = TkInvokeMenu(menuPtr->interp, menuPtr, index - 1); */ - } - } else { - return TCL_ERROR; - } - } - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * GetMenuIndicatorGeometry -- - * - * Gets the width and height of the indicator area of a menu. - * - * Results: - * widthPtr and heightPtr are set. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetMenuIndicatorGeometry ( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are measuring */ - Tk_Font tkfont, /* Precalculated font */ - const Tk_FontMetrics *fmPtr,/* Precalculated font metrics */ - int *widthPtr, /* The resulting width */ - int *heightPtr) /* The resulting height */ -{ - *heightPtr = fmPtr->linespace + menuItemExtraHeight; - if (IS_THEME_MENU_FONT(tkfont)) { - *widthPtr = menuMarkColumnWidth; - } else { - const char markChar = FindMarkCharacter(mePtr); - const char *markUtf = NULL; - int len; - - len = GetUtfMarkCharacter(markChar, &markUtf); - *widthPtr = Tk_TextWidth(tkfont, markUtf, len) + 2*menuMarkIndent; - } -} - -/* - *---------------------------------------------------------------------- - * - * GetMenuAccelGeometry -- - * - * Gets the width and height of the accelerator area of a menu. - * - * Results: - * widthPtr and heightPtr are set. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetMenuAccelGeometry ( - TkMenu *menuPtr, /* The menu we are measuring */ - TkMenuEntry *mePtr, /* The entry we are measuring */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - int *modWidthPtr, /* The width of all of the key - * modifier symbols. */ - int *textWidthPtr, /* The resulting width */ - int *heightPtr) /* The resulting height */ -{ - *heightPtr = fmPtr->linespace + menuItemExtraHeight; - *modWidthPtr = menuSymbols[COMMAND_SYMBOL].width; - *textWidthPtr = 0; - if (mePtr->type != CASCADE_ENTRY && mePtr->accelLength > 0) { - const char *accel = (mePtr->accelPtr == NULL) ? "" - : Tcl_GetString(mePtr->accelPtr); - EntryGeometry *geometryPtr = (EntryGeometry*)mePtr->platformEntryData; - - if (IS_THEME_MENU_FONT(tkfont)) { - CFStringRef cfStr; - int width = 0; - int maxWidth = ((TkFont *)tkfont)->fm.maxWidth; - - if (geometryPtr->accelGlyph) { - cfStr = CFStringCreateWithBytes(NULL, - (UInt8*)&geometryPtr->accelGlyph, 1, - kTextEncodingMacKeyboardGlyphs, false); - if (cfStr) { - width = MeasureThemeText(cfStr, kThemeMenuItemCmdKeyFont); - CFRelease(cfStr); - } - } - if (!(mePtr->entryFlags & ENTRY_ACCEL_MASK)) { - if (!geometryPtr->accelGlyph) { - width = Tk_TextWidth(tkfont, accel, mePtr->accelLength); - } - *textWidthPtr = maxWidth; - if (width < maxWidth) { - *modWidthPtr = 0; - } else { - *modWidthPtr = width - maxWidth; - } - } else { - if (!geometryPtr->accelGlyph) { - width = Tk_TextWidth(tkfont, accel + - geometryPtr->accelTextStart, mePtr->accelLength - - geometryPtr->accelTextStart); - } - if (width < maxWidth) { - *textWidthPtr = maxWidth; - } else { - *textWidthPtr = width; - } - if (geometryPtr->modifierNum) { - *modWidthPtr = geometryPtr->modifierWidth; - } - } - } else { - *textWidthPtr = Tk_TextWidth(tkfont, accel, mePtr->accelLength); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * GetTearoffEntryGeometry -- - * - * Gets the width and height of of a tearoff entry. - * - * Results: - * widthPtr and heightPtr are set. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetTearoffEntryGeometry ( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are measuring */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - int *widthPtr, /* The resulting width */ - int *heightPtr) /* The resulting height */ -{ -#ifdef USE_TK_MDEF - const int useMDEF = ((MacMenu *) menuPtr->platformData)->useMDEF; -#endif - if (useMDEF && menuPtr->menuType != TEAROFF_MENU) { - *heightPtr = fmPtr->linespace + menuItemExtraHeight; - *widthPtr = menuPtr->totalWidth; - } else { - *widthPtr = *heightPtr = 0; - } -} - -/* - *---------------------------------------------------------------------- - * - * GetMenuSeparatorGeometry -- - * - * Gets the width and height of menu separator. - * - * Results: - * widthPtr and heightPtr are set. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetMenuSeparatorGeometry( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are measuring */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalcualted font metrics */ - int *widthPtr, /* The resulting width */ - int *heightPtr) /* The resulting height */ -{ - *widthPtr = 0; - *heightPtr = menuSeparatorHeight; -} - -/* - *---------------------------------------------------------------------- - * - * DrawMenuEntryIndicator -- - * - * This procedure draws the indicator part of a menu. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its - * current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuEntryIndicator( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are drawing */ - Drawable d, /* The drawable we are drawing */ - GC gc, /* The GC we are drawing with */ - GC indicatorGC, /* The GC to use for the indicator */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - int x, /* topleft hand corner of entry */ - int y, /* topleft hand corner of entry */ - int width, /* width of entry */ - int height) /* height of entry */ -{ - if ((mePtr->type == CHECK_BUTTON_ENTRY) || - (mePtr->type == RADIO_BUTTON_ENTRY)) { - if (mePtr->indicatorOn && (mePtr->entryFlags & ENTRY_SELECTED)) { - short mark; - int baseline = y + (height + fmPtr->ascent - fmPtr->descent)/2; - - GetItemMark(((MacMenu *) menuPtr->platformData)->menuHdl, - mePtr->index + 1, &mark); - if (IS_THEME_MENU_FONT(tkfont)) { - ThemeFontID font = kThemeMenuItemMarkFont; - TextEncoding encoding = GetApplicationTextEncoding(); - CFStringRef cfStr; - ThemeDrawState drawState; - Rect bounds = {y, x + menuMarkIndent, y + height, x + width}; - - if (mark < kSpaceCharCode) { - font = kThemeMenuItemCmdKeyFont; - encoding = kTextEncodingMacKeyboardGlyphs; - } - switch (mePtr->state) { - case ENTRY_ACTIVE: - drawState = kThemeStatePressed; - break; - case ENTRY_DISABLED: - drawState = kThemeStateInactive; - break; - default: - drawState = kThemeStateActive; - break; - } - cfStr = CFStringCreateWithBytes(NULL, (UInt8*)&mark, 1, - encoding, false); - if (cfStr) { - DrawThemeText(d, gc, cfStr, font, drawState, &bounds, - baseline, teFlushDefault); - CFRelease(cfStr); - } - } else if (mark != 0) { - const char *markUtf = NULL; - int len; - - len = GetUtfMarkCharacter(mark, &markUtf); - Tk_DrawChars(menuPtr->display, d, gc, tkfont, markUtf, len, - x + menuMarkIndent, baseline); - } - } - } -} - -#ifdef USE_TK_MDEF -/* - *---------------------------------------------------------------------- - * - * DrawMenuBackground -- - * - * If Appearance is present, draws the Appearance background - * - * Results: - * Nothing - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuBackground( - TkMenu *menuPtr, - Rect *menuRectPtr, /* The menu rect */ - Drawable d) /* What we are drawing into */ -{ - Tk_3DBorder border; - - EraseMenuBackground(((MacMenu *) menuPtr->platformData)->menuHdl, - menuRectPtr, ((MacDrawable*)d)->context); - border = Tk_Get3DBorderFromObj(menuPtr->tkwin, menuPtr->borderPtr); - Tk_Fill3DRectangle(menuPtr->tkwin, d, border, - menuRectPtr->left, menuRectPtr->top, - menuRectPtr->right - menuRectPtr->left, - menuRectPtr->bottom - menuRectPtr->top, 0, TK_RELIEF_FLAT); -} -#endif /* USE_TK_MDEF */ - -/* - *---------------------------------------------------------------------- - * - * DrawMenuEntryAccelerator -- - * - * This procedure draws the accelerator part of a menu. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuEntryAccelerator( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are drawing */ - Drawable d, /* The drawable we are drawing in */ - GC gc, /* The gc to draw into */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - Tk_3DBorder activeBorder, /* border for menu background */ - int x, /* The left side of the entry */ - int y, /* The top of the entry */ - int width, /* The width of the entry */ - int height, /* The height of the entry */ - int drawArrow) /* Whether or not to draw cascade arrow */ -{ - if (mePtr->type != CASCADE_ENTRY && mePtr->accelLength > 0) { - const char *accel = (mePtr->accelPtr == NULL) ? "" - : Tcl_GetString(mePtr->accelPtr); - EntryGeometry *geometryPtr = (EntryGeometry*)mePtr->platformEntryData; - int leftEdge = x + width - geometryPtr->accelTextWidth; - int baseline = y + (height + fmPtr->ascent - fmPtr->descent) / 2; - - if (IS_THEME_MENU_FONT(tkfont)) { - CFStringRef cfStr; - ThemeDrawState drawState; - - switch (mePtr->state) { - case ENTRY_ACTIVE: - drawState = kThemeStatePressed; - break; - case ENTRY_DISABLED: - drawState = kThemeStateInactive; - break; - default: - drawState = kThemeStateActive; - break; - } - if (!(mePtr->entryFlags & ENTRY_ACCEL_MASK)) { - leftEdge -= geometryPtr->modifierWidth; - } - if (geometryPtr->accelGlyph) { - Rect bounds = {y, leftEdge, y + height, leftEdge + - geometryPtr->accelTextWidth}; - - cfStr = CFStringCreateWithBytes(NULL, - (UInt8*)&geometryPtr->accelGlyph, 1, - kTextEncodingMacKeyboardGlyphs, false); - if (cfStr) { - DrawThemeText(d, gc, cfStr, kThemeMenuItemCmdKeyFont, - drawState, &bounds, baseline, teFlushDefault); - CFRelease(cfStr); - } - } else { - Tk_DrawChars(menuPtr->display, d, gc, tkfont, accel + - geometryPtr->accelTextStart, mePtr->accelLength - - geometryPtr->accelTextStart, leftEdge, baseline); - } - if (geometryPtr->modifierNum) { - Rect bounds = {y, leftEdge - geometryPtr->modifierWidth, - y + height, leftEdge}; - - cfStr = CFStringCreateWithCharacters(NULL, - geometryPtr->modifierUniChars, - geometryPtr->modifierNum); - if (cfStr) { - DrawThemeText(d, gc, cfStr, kThemeMenuItemCmdKeyFont, - drawState, &bounds, baseline, teFlushDefault); - CFRelease(cfStr); - } - } - } else { - Tk_DrawChars(menuPtr->display, d, gc, tkfont, accel, - mePtr->accelLength, leftEdge, baseline); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * DrawMenuSeparator -- - * - * The menu separator is drawn. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuSeparator( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are drawing */ - Drawable d, /* The drawable we are drawing into */ - GC gc, /* The gc we are drawing with */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - int x, /* left coordinate of entry */ - int y, /* top coordinate of entry */ - int width, /* width of entry */ - int height) /* height of entry */ -{ - TkMacOSXDrawingContext dc; - Rect r; - - r.top = y; - r.left = x; - r.bottom = y + height; - r.right = x + width; - if (TkMacOSXSetupDrawingContext(d, gc, 1, &dc)) { - ChkErr(DrawThemeMenuSeparator, &r); - TkMacOSXRestoreDrawingContext(&dc); - } -} - -#ifdef USE_TK_MDEF -/* - *---------------------------------------------------------------------- - * - * AppearanceEntryDrawWrapper -- - * - * It routes to the Appearance Managers DrawThemeEntry, which will then - * call us back after setting up the drawing context. - * - * Results: - * A menu entry is drawn - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -void -AppearanceEntryDrawWrapper( - TkMenuEntry *mePtr, - Rect *menuRectPtr, - MenuTrackingData *mtdPtr, - Drawable d, - Tk_FontMetrics *fmPtr, - Tk_Font tkfont, - int erase) -{ - MenuEntryUserData meData; - Rect itemRect; - ThemeMenuState theState; - ThemeMenuItemType theType; - Tk_FontMetrics entryMetrics; - - meData.mePtr = mePtr; - meData.mdefDrawable = d; - if (mePtr->fontPtr == NULL) { - meData.fmPtr = fmPtr; - meData.tkfont = tkfont; - } else { - meData.tkfont = Tk_GetFontFromObj(mePtr->menuPtr->tkwin, - mePtr->fontPtr); - Tk_GetFontMetrics(meData.tkfont, &entryMetrics); - fmPtr = &entryMetrics; - } - itemRect.left = menuRectPtr->left + mePtr->x; - itemRect.top = mtdPtr->virtualMenuTop + mePtr->y; - itemRect.right = mePtr->entryFlags & ENTRY_LAST_COLUMN ? - menuRectPtr->right : itemRect.left + mePtr->width; - itemRect.bottom = itemRect.top + mePtr->height; - - if (mePtr->state == ENTRY_ACTIVE) { - theState = kThemeMenuSelected; - } else if (mePtr->state == ENTRY_DISABLED) { - theState = kThemeMenuDisabled; - } else { - theState = kThemeMenuActive; - } - if (mePtr->type == CASCADE_ENTRY) { - theType = kThemeMenuItemHierarchical; - } else { - theType = kThemeMenuItemPlain; - } - if (erase) { - DisableScreenUpdates(); - DrawMenuBackground(mePtr->menuPtr, &itemRect, d); - } - DrawThemeMenuItem(menuRectPtr, &itemRect, - mtdPtr->virtualMenuTop, mtdPtr->virtualMenuBottom, theState, - theType | kThemeMenuItemNoBackground, tkThemeMenuItemDrawingUPP, - (unsigned long) &meData); - if (erase) { - EnableScreenUpdates(); - } -} - -/* - *---------------------------------------------------------------------- - * - * ThemeMenuItemDrawingProc -- - * - * This routine is called from the Appearance DrawThemeMenuEntry - * - * Results: - * A menu entry is drawn - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -pascal void -ThemeMenuItemDrawingProc( - const Rect *inBounds, - SInt16 inDepth, - Boolean inIsColorDevice, - SInt32 inUserData) -{ - MenuEntryUserData *meData = (MenuEntryUserData *) inUserData; - - TkpDrawMenuEntry(meData->mePtr, meData->mdefDrawable, meData->tkfont, - meData->fmPtr, inBounds->left, inBounds->top, inBounds->right - - inBounds->left + menuItemExtraWidth, inBounds->bottom - - inBounds->top + menuItemExtraHeight, 0, 1); -} -#endif /* USE_TK_MDEF */ - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXHandleTearoffMenu() -- - * - * This routine sees if the MDEF has set a menu and a mouse position for - * tearing off and makes a tearoff menu if it has. - * - * Results: - * menuPtr->interp will have the result of the tearoff command. - * - * Side effects: - * A new tearoff menu is created if it is supposed to be. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXHandleTearoffMenu(void) -{ - /* - * Obsolete: Nothing to do. - */ -} - -/* - *-------------------------------------------------------------- - * - * TkpInitializeMenuBindings -- - * - * For every interp, initializes the bindings for Windows menus. Does - * nothing on Mac or XWindows. - * - * Results: - * None. - * - * Side effects: - * C-level bindings are setup for the interp which will handle Alt-key - * sequences for menus without beeping or interfering with user-defined - * Alt-key bindings. - * - *-------------------------------------------------------------- - */ - -void -TkpInitializeMenuBindings( - Tcl_Interp *interp, /* The interpreter to set. */ - Tk_BindingTable bindingTable) - /* The table to add to. */ -{ - /* - * Nothing to do. - */ -} - -/* - *-------------------------------------------------------------- - * - * TkpComputeMenubarGeometry -- - * - * This procedure is invoked to recompute the size and layout of a menu - * that is a menubar clone. - * - * Results: - * None. - * - * Side effects: - * Fields of menu entries are changed to reflect their current positions, - * and the size of the menu window itself may be changed. - * - *-------------------------------------------------------------- - */ - -void -TkpComputeMenubarGeometry( - TkMenu *menuPtr) /* Structure describing menu. */ -{ - TkpComputeStandardMenuGeometry(menuPtr); -} - -/* - *---------------------------------------------------------------------- - * - * DrawTearoffEntry -- - * - * This procedure draws a tearoff entry. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawTearoffEntry( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are drawing */ - Drawable d, /* The drawable we are drawing into */ - GC gc, /* The gc we are drawing with */ - Tk_Font tkfont, /* The font we are drawing with */ - const Tk_FontMetrics *fmPtr,/* The metrics we are drawing with */ - int x, /* Left edge of entry. */ - int y, /* Top edge of entry. */ - int width, /* Width of entry. */ - int height) /* Height of entry. */ -{ - XPoint points[2]; - int margin, segmentWidth, maxX; - Tk_3DBorder border; - - if (menuPtr->menuType != MASTER_MENU ) { - return; - } - - margin = fmPtr->linespace/2; - points[0].x = x; - points[0].y = y + height/2; - points[1].y = points[0].y; - segmentWidth = 6; - maxX = x + menuPtr->totalWidth - 1; - border = Tk_Get3DBorderFromObj(menuPtr->tkwin, menuPtr->borderPtr); - - while (points[0].x < maxX) { - points[1].x = points[0].x + segmentWidth; - if (points[1].x > maxX) { - points[1].x = maxX; - } - Tk_Draw3DPolygon(menuPtr->tkwin, d, border, points, 2, 1, - TK_RELIEF_RAISED); - points[0].x += 2*segmentWidth; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetHelpMenuItemCount -- - * - * Has to be called after the first call to InsertMenu. Sets up the - * global variable for the number of items in the unmodified help menu. - * NB. Nobody uses this any more, since you can get the number of system - * help items from HMGetHelpMenu trivially. But it is in the stubs - * table... - * - * Results: - * None. - * - * Side effects: - * Nothing. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetHelpMenuItemCount(void) -{ - /* - * Obsolete: Nothing to do. - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXMenuClick -- - * - * Prepares a menubar for MenuSelect or MenuKey. - * - * Results: - * None. - * - * Side effects: - * Any pending configurations of the menubar are completed. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXMenuClick(void) -{ - TkMenu *menuPtr; - TkMenuReferences *menuRefPtr; - - if ((currentMenuBarInterp != NULL) && (currentMenuBarName != NULL)) { - menuRefPtr = TkFindMenuReferences(currentMenuBarInterp, - currentMenuBarName); - for (menuPtr = menuRefPtr->menuPtr->masterMenuPtr; - menuPtr != NULL; menuPtr = menuPtr->nextInstancePtr) { - if (menuPtr->menuType == MENUBAR) { - CompleteIdlers(menuPtr); - break; - } - } - } - - if (menuBarFlags & MENUBAR_REDRAW_PENDING) { - Tcl_CancelIdleCall(DrawMenuBarWhenIdle, NULL); - DrawMenuBarWhenIdle(NULL); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpDrawMenuEntry -- - * - * Draws the given menu entry at the given coordinates with the given - * attributes. - * - * Results: - * None. - * - * Side effects: - * X Server commands are executed to display the menu entry. - * - *---------------------------------------------------------------------- - */ - -void -TkpDrawMenuEntry( - TkMenuEntry *mePtr, /* The entry to draw */ - Drawable d, /* What to draw into */ - Tk_Font tkfont, /* Precalculated font for menu */ - const Tk_FontMetrics *menuMetricsPtr, - /* Precalculated metrics for menu */ - int x, /* X-coordinate of topleft of entry */ - int y, /* Y-coordinate of topleft of entry */ - int width, /* Width of the entry rectangle */ - int height, /* Height of the current rectangle */ - int strictMotif, /* Boolean flag */ - int drawArrow) /* Whether or not to draw the cascade - * arrow for cascade items. Only applies - * to Windows. */ -{ - GC gc; - TkMenu *menuPtr = mePtr->menuPtr; - int padY = (menuPtr->menuType == MENUBAR) ? 3 : 0; - GC indicatorGC; - Tk_3DBorder bgBorder, activeBorder; - const Tk_FontMetrics *fmPtr; - Tk_FontMetrics entryMetrics; - int adjustedY = y + padY; - int adjustedHeight = height - 2 * padY; - - /* - * Choose the gc for drawing the foreground part of the entry. Under - * Appearance, we pass a null (appearanceGC) to tell ourselves not to - * change whatever color the appearance manager has set. - */ - - if ((mePtr->state == ENTRY_ACTIVE) && !strictMotif) { - gc = mePtr->activeGC; - if (gc == NULL) { - gc = menuPtr->activeGC; - } - } else { - TkMenuEntry *parentEntryPtr = GetParentMenuEntry(menuPtr); - - if (((parentEntryPtr && parentEntryPtr->state == ENTRY_DISABLED) || - (mePtr->state == ENTRY_DISABLED)) && - (menuPtr->disabledFgPtr != NULL)) { - gc = mePtr->disabledGC; - if (gc == NULL) { - gc = menuPtr->disabledGC; - } - } else { - gc = mePtr->textGC; - if (gc == NULL) { - gc = menuPtr->textGC; - } - } - } - - indicatorGC = mePtr->indicatorGC; - if (indicatorGC == NULL) { - indicatorGC = menuPtr->indicatorGC; - } - - bgBorder = Tk_Get3DBorderFromObj(menuPtr->tkwin, - (mePtr->borderPtr == NULL) - ? menuPtr->borderPtr : mePtr->borderPtr); - if (strictMotif) { - activeBorder = bgBorder; - } else { - activeBorder = Tk_Get3DBorderFromObj(menuPtr->tkwin, - (mePtr->activeBorderPtr == NULL) - ? menuPtr->activeBorderPtr : mePtr->activeBorderPtr); - } - - if (mePtr->fontPtr == NULL) { - fmPtr = menuMetricsPtr; - } else { - tkfont = Tk_GetFontFromObj(menuPtr->tkwin, mePtr->fontPtr); - Tk_GetFontMetrics(tkfont, &entryMetrics); - fmPtr = &entryMetrics; - } - - /* - * Need to draw the entire background, including padding. On Unix, for - * menubars, we have to draw the rest of the entry taking into account the - * padding. - */ - - DrawMenuEntryBackground(menuPtr, mePtr, d, activeBorder, bgBorder, x, y, - width, height); - - if (mePtr->type == SEPARATOR_ENTRY) { - DrawMenuSeparator(menuPtr, mePtr, d, gc, tkfont, - fmPtr, x, adjustedY, width, adjustedHeight); - } else if (mePtr->type == TEAROFF_ENTRY) { - DrawTearoffEntry(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, adjustedY, - width, adjustedHeight); - } else { - DrawMenuEntryLabel(menuPtr, mePtr, d, gc, tkfont, fmPtr, x, - adjustedY, width, adjustedHeight); - DrawMenuEntryAccelerator(menuPtr, mePtr, d, gc, tkfont, fmPtr, - activeBorder, x, adjustedY, width, adjustedHeight, drawArrow); - if (!mePtr->hideMargin) { - DrawMenuEntryIndicator(menuPtr, mePtr, d, gc, indicatorGC, tkfont, - fmPtr, x, adjustedY, width, adjustedHeight); - } - } -} - -/* - *-------------------------------------------------------------- - * - * TkpComputeStandardMenuGeometry -- - * - * This procedure is invoked to recompute the size and layout of a menu - * that is not a menubar clone. - * - * Results: - * None. - * - * Side effects: - * Fields of menu entries are changed to reflect their current positions, - * and the size of the menu window itself may be changed. - * - *-------------------------------------------------------------- - */ - -void -TkpComputeStandardMenuGeometry( - TkMenu *menuPtr) /* Structure describing menu. */ -{ - Tk_Font tkfont, menuFont; - Tk_FontMetrics menuMetrics, entryMetrics, *fmPtr; - int x, y, height, modifierWidth, labelWidth, indicatorSpace; - int windowWidth, windowHeight, accelWidth, maxAccelTextWidth; - int i, j, lastColumnBreak, maxModifierWidth, maxWidth, nonAccelMargin; - int maxNonAccelMargin, maxEntryWithAccelWidth, maxEntryWithoutAccelWidth; - int entryWidth, maxIndicatorSpace, borderWidth, activeBorderWidth; - TkMenuEntry *mePtr, *columnEntryPtr; - EntryGeometry *geometryPtr; - int haveAccel = 0; - - if (menuPtr->tkwin == NULL) { - return; - } - - Tk_GetPixelsFromObj(NULL, menuPtr->tkwin, menuPtr->borderWidthPtr, - &borderWidth); - Tk_GetPixelsFromObj(NULL, menuPtr->tkwin, menuPtr->activeBorderWidthPtr, - &activeBorderWidth); - x = y = borderWidth; - indicatorSpace = labelWidth = accelWidth = maxAccelTextWidth = 0; - windowHeight = maxWidth = lastColumnBreak = 0; - maxModifierWidth = maxNonAccelMargin = 0; - maxEntryWithAccelWidth = maxEntryWithoutAccelWidth = 0; - maxIndicatorSpace = 0; - - /* - * On the Mac especially, getting font metrics can be quite slow, so we - * want to do it intelligently. We are going to precalculate them and pass - * them down to all of the measuring and drawing routines. We will measure - * the font metrics of the menu once. If an entry does not have its own - * font set, then we give the geometry/drawing routines the menu's font - * and metrics. If an entry has its own font, we will measure that font - * and give all of the geometry/drawing the entry's font and metrics. - */ - - menuFont = Tk_GetFontFromObj(menuPtr->tkwin, menuPtr->fontPtr); - Tk_GetFontMetrics(menuFont, &menuMetrics); - - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - if (mePtr->type == CASCADE_ENTRY || mePtr->accelLength > 0) { - haveAccel = 1; - break; - } - } - - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - if (mePtr->fontPtr == NULL) { - tkfont = menuFont; - fmPtr = &menuMetrics; - } else { - tkfont = Tk_GetFontFromObj(menuPtr->tkwin, mePtr->fontPtr); - Tk_GetFontMetrics(tkfont, &entryMetrics); - fmPtr = &entryMetrics; - } - - if ((i > 0) && mePtr->columnBreak) { - if (maxIndicatorSpace != 0) { - maxIndicatorSpace += 2; - } - for (j = lastColumnBreak; j < i; j++) { - columnEntryPtr = menuPtr->entries[j]; - geometryPtr = - (EntryGeometry *) columnEntryPtr->platformEntryData; - - columnEntryPtr->indicatorSpace = maxIndicatorSpace; - columnEntryPtr->width = maxIndicatorSpace + maxWidth - + 2 * activeBorderWidth; - geometryPtr->accelTextWidth = maxAccelTextWidth; - geometryPtr->modifierWidth = maxModifierWidth; - columnEntryPtr->x = x; - columnEntryPtr->entryFlags &= ~ENTRY_LAST_COLUMN; - if (maxEntryWithoutAccelWidth > maxEntryWithAccelWidth) { - geometryPtr->nonAccelMargin = maxEntryWithoutAccelWidth - - maxEntryWithAccelWidth; - if (geometryPtr->nonAccelMargin > maxNonAccelMargin) { - geometryPtr->nonAccelMargin = maxNonAccelMargin; - } - } else { - geometryPtr->nonAccelMargin = 0; - } - } - x += maxIndicatorSpace + maxWidth + 2 * borderWidth; - windowWidth = x; - maxWidth = maxIndicatorSpace = maxAccelTextWidth = 0; - maxModifierWidth = maxNonAccelMargin = maxEntryWithAccelWidth = 0; - maxEntryWithoutAccelWidth = 0; - lastColumnBreak = i; - y = borderWidth; - } - /*geometryPtr = (EntryGeometry *) mePtr->platformEntryData;*/ /* dead code */ - - if (mePtr->type == SEPARATOR_ENTRY) { - GetMenuSeparatorGeometry(menuPtr, mePtr, tkfont, - fmPtr, &entryWidth, &height); - mePtr->height = height; - } else if (mePtr->type == TEAROFF_ENTRY) { - GetTearoffEntryGeometry(menuPtr, mePtr, tkfont, - fmPtr, &entryWidth, &height); - mePtr->height = height; - } else { - /* - * For each entry, compute the height required by that particular - * entry, plus three widths: the width of the label, the width to - * allow for an indicator to be displayed to the left of the label - * (if any), and the width of the accelerator to be displayed to - * the right of the label (if any). These sizes depend, of course, - * on the type of the entry. - */ - - GetMenuLabelGeometry(mePtr, tkfont, fmPtr, &labelWidth, &height); - mePtr->height = height; - - nonAccelMargin = 0; - if (mePtr->type == CASCADE_ENTRY) { - GetMenuAccelGeometry(menuPtr, mePtr, tkfont, fmPtr, - &modifierWidth, &accelWidth, &height); - } else if (mePtr->accelLength == 0) { - if (haveAccel && !mePtr->hideMargin) { - if (IS_THEME_MENU_FONT(tkfont)) { - nonAccelMargin = menuSymbols[COMMAND_SYMBOL].width; - } else { - nonAccelMargin = Tk_TextWidth(tkfont, - menuSymbols[COMMAND_SYMBOL].utf, - menuSymbols[COMMAND_SYMBOL].utfLen); - } - } - accelWidth = modifierWidth = 0; - } else { - GetMenuAccelGeometry(menuPtr, mePtr, tkfont, - fmPtr, &modifierWidth, &accelWidth, &height); - if (height > mePtr->height) { - mePtr->height = height; - } - } - - if (!(mePtr->hideMargin)) { - GetMenuIndicatorGeometry(menuPtr, mePtr, tkfont, - fmPtr, &indicatorSpace, &height); - if (height > mePtr->height) { - mePtr->height = height; - } - } else { - indicatorSpace = 0; - } - - if (nonAccelMargin > maxNonAccelMargin) { - maxNonAccelMargin = nonAccelMargin; - } - if (accelWidth > maxAccelTextWidth) { - maxAccelTextWidth = accelWidth; - } - if (modifierWidth > maxModifierWidth) { - maxModifierWidth = modifierWidth; - } - if (indicatorSpace > maxIndicatorSpace) { - maxIndicatorSpace = indicatorSpace; - } - - entryWidth = labelWidth + modifierWidth + accelWidth - + nonAccelMargin; - - if (entryWidth > maxWidth) { - maxWidth = entryWidth; - } - - if (mePtr->accelLength > 0) { - if (entryWidth > maxEntryWithAccelWidth) { - maxEntryWithAccelWidth = entryWidth; - } - } else { - if (entryWidth > maxEntryWithoutAccelWidth) { - maxEntryWithoutAccelWidth = entryWidth; - } - } - mePtr->height += 2 * activeBorderWidth; - } - mePtr->y = y; - y += menuPtr->entries[i]->height + borderWidth; - if (y > windowHeight) { - windowHeight = y; - } - } - - for (j = lastColumnBreak; j < menuPtr->numEntries; j++) { - columnEntryPtr = menuPtr->entries[j]; - geometryPtr = (EntryGeometry *) columnEntryPtr->platformEntryData; - - columnEntryPtr->indicatorSpace = maxIndicatorSpace; - columnEntryPtr->width = maxIndicatorSpace + maxWidth - + 2 * activeBorderWidth; - geometryPtr->accelTextWidth = maxAccelTextWidth; - columnEntryPtr->x = x; - columnEntryPtr->entryFlags |= ENTRY_LAST_COLUMN; - if (maxEntryWithoutAccelWidth > maxEntryWithAccelWidth) { - geometryPtr->nonAccelMargin = maxEntryWithoutAccelWidth - - maxEntryWithAccelWidth; - if (geometryPtr->nonAccelMargin > maxNonAccelMargin) { - geometryPtr->nonAccelMargin = maxNonAccelMargin; - } - } else { - geometryPtr->nonAccelMargin = 0; - } - } - windowWidth = x + maxIndicatorSpace + maxWidth - + 2 * activeBorderWidth + borderWidth; - windowHeight += borderWidth; - - /* - * The X server doesn't like zero dimensions, so round up to at least 1 (a - * zero-sized menu should never really occur, anyway). - */ - - if (windowWidth <= 0) { - windowWidth = 1; - } - if (windowHeight <= 0) { - windowHeight = 1; - } - menuPtr->totalWidth = windowWidth; - menuPtr->totalHeight = windowHeight; -} - -/* - *---------------------------------------------------------------------- - * - * DrawMenuEntryLabel -- - * - * This procedure draws the label part of a menu. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuEntryLabel( - TkMenu *menuPtr, /* The menu we are drawing */ - TkMenuEntry *mePtr, /* The entry we are drawing */ - Drawable d, /* What we are drawing into */ - GC gc, /* The gc we are drawing into */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated font metrics */ - int x, /* left edge */ - int y, /* right edge */ - int width, /* width of entry */ - int height) /* height of entry */ -{ - int imageWidth, imageHeight, textWidth = 0, textHeight = 0; - int indicatorSpace = mePtr->indicatorSpace; - int leftEdge = x + indicatorSpace; - int haveImage = 0, haveText = 0; - int imageXOffset = 0, imageYOffset = 0; - int textXOffset = 0, textYOffset = 0; - Pixmap bitmap = (Pixmap) NULL; - Tcl_DString itemTextDString; - - /* - * Work out what we will need to draw first. - */ - - if (mePtr->image != NULL) { - Tk_SizeOfImage(mePtr->image, &imageWidth, &imageHeight); - haveImage = 1; - } else if (mePtr->bitmapPtr != NULL) { - bitmap = Tk_GetBitmapFromObj(menuPtr->tkwin, mePtr->bitmapPtr); - Tk_SizeOfBitmap(menuPtr->display, bitmap, &imageWidth, &imageHeight); - haveImage = 1; - } - if (!haveImage || (mePtr->compound != COMPOUND_NONE)) { - if (mePtr->labelLength > 0) { - GetEntryText(mePtr, &itemTextDString); - if (mePtr->compound != COMPOUND_NONE) { - textWidth = Tk_TextWidth(tkfont, - Tcl_DStringValue(&itemTextDString), - Tcl_DStringLength(&itemTextDString)) + - menuTextLeadingEdgeMargin + menuTextTrailingEdgeMargin; - textHeight = fmPtr->linespace; - } - haveText = 1; - } - } - - /* - * Now work out what the relative positions are. - */ - - if (haveImage && haveText && (mePtr->compound != COMPOUND_NONE)) { - int fullWidth = (imageWidth > textWidth ? imageWidth : textWidth); - - switch ((enum compound) mePtr->compound) { - case COMPOUND_TOP: - textXOffset = (fullWidth - textWidth)/2; - textYOffset = imageHeight/2 + 2; - imageXOffset = (fullWidth - imageWidth)/2; - imageYOffset = -textHeight/2; - break; - case COMPOUND_BOTTOM: - textXOffset = (fullWidth - textWidth)/2; - textYOffset = -imageHeight/2; - imageXOffset = (fullWidth - imageWidth)/2; - imageYOffset = textHeight/2 + 2; - break; - case COMPOUND_LEFT: - /* - * Position image in the indicator space to the left of the - * entries, unless this entry is a radio|check button because then - * the indicator space will be used. - */ - - textXOffset = imageWidth + 2 - menuTextLeadingEdgeMargin; - if ((mePtr->type != CHECK_BUTTON_ENTRY) - && (mePtr->type != RADIO_BUTTON_ENTRY)) { - textXOffset -= indicatorSpace; - imageXOffset = -indicatorSpace; - } - if (textXOffset < 0) { - textXOffset = 0; - } - break; - case COMPOUND_RIGHT: - imageXOffset = textWidth + 2 - menuTextTrailingEdgeMargin; - break; - case COMPOUND_CENTER: - textXOffset = (fullWidth - textWidth)/2; - imageXOffset = (fullWidth - imageWidth)/2; - break; - case COMPOUND_NONE: - /* - * Never reached. - */ - break; - } - } - - /* - * Draw label and/or bitmap or image for entry. - */ - - if (mePtr->image != NULL) { - if ((mePtr->selectImage != NULL) - && (mePtr->entryFlags & ENTRY_SELECTED)) { - Tk_RedrawImage(mePtr->selectImage, 0, 0, imageWidth, imageHeight, - d, leftEdge + imageXOffset, - y + (mePtr->height - imageHeight)/2 + imageYOffset); - } else { - Tk_RedrawImage(mePtr->image, 0, 0, imageWidth, imageHeight, - d, leftEdge + imageXOffset, - y + (mePtr->height - imageHeight)/2 + imageYOffset); - } - } else if (mePtr->bitmapPtr != NULL) { - XCopyPlane(menuPtr->display, bitmap, d, gc, 0, 0, imageWidth, - imageHeight, leftEdge + imageXOffset, - y + (mePtr->height - imageHeight)/2 + imageYOffset, 1); - } - if (haveText) { - int baseline = y + (height + fmPtr->ascent - fmPtr->descent)/2; - - Tk_DrawChars(menuPtr->display, d, gc, tkfont, - Tcl_DStringValue(&itemTextDString), - Tcl_DStringLength(&itemTextDString), - leftEdge + menuTextLeadingEdgeMargin + textXOffset, - baseline + textYOffset); - Tcl_DStringFree(&itemTextDString); - } - - if (mePtr->state == ENTRY_DISABLED) { - if (menuPtr->disabledFgPtr == NULL) { - /* XFillRectangle(menuPtr->display, d, menuPtr->disabledGC, x, y, - width, height); */ - } else if ((mePtr->image != NULL) - && (menuPtr->disabledImageGC != None)) { - XFillRectangle(menuPtr->display, d, menuPtr->disabledImageGC, - leftEdge + imageXOffset, - y + (mePtr->height - imageHeight)/2 + imageYOffset, - imageWidth, imageHeight); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * DrawMenuEntryBackground -- - * - * This procedure draws the background part of a menu entry. Under - * Appearance, we only draw the background if the entry's border is set, - * we DO NOT inherit it from the menu... - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menu in its current mode. - * - *---------------------------------------------------------------------- - */ - -void -DrawMenuEntryBackground( - TkMenu *menuPtr, /* The menu we are drawing. */ - TkMenuEntry *mePtr, /* The entry we are drawing. */ - Drawable d, /* What we are drawing into */ - Tk_3DBorder activeBorder, /* Border for active items */ - Tk_3DBorder bgBorder, /* Border for the background */ - int x, /* left edge */ - int y, /* top edge */ - int width, /* width of rectangle to draw */ - int height) /* height of rectangle to draw */ -{ - if ((menuPtr->menuType == TEAROFF_MENU) - || ((mePtr->state == ENTRY_ACTIVE) - && (mePtr->activeBorderPtr != None)) - || ((mePtr->state != ENTRY_ACTIVE) && (mePtr->borderPtr != None))) { - if (mePtr->state == ENTRY_ACTIVE) { - bgBorder = activeBorder; - } - Tk_Fill3DRectangle(menuPtr->tkwin, d, bgBorder, - x, y, width, height, 0, TK_RELIEF_FLAT); - } -} - -/* - *---------------------------------------------------------------------- - * - * GetMenuLabelGeometry -- - * - * Figures out the size of the label portion of a menu item. - * - * Results: - * widthPtr and heightPtr are filled in with the correct geometry - * information. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -GetMenuLabelGeometry( - TkMenuEntry *mePtr, /* The entry we are computing */ - Tk_Font tkfont, /* The precalculated font */ - const Tk_FontMetrics *fmPtr,/* The precalculated metrics */ - int *widthPtr, /* The resulting width of the label portion */ - int *heightPtr) /* The resulting height of the label portion */ -{ - TkMenu *menuPtr = mePtr->menuPtr; - int haveImage = 0, tornOff = (menuPtr->menuType == TEAROFF_MENU); -#ifdef USE_TK_MDEF - const int useMDEF = ((MacMenu *) menuPtr->platformData)->useMDEF; -#endif - - if (mePtr->image != NULL && (useMDEF || tornOff)) { - Tk_SizeOfImage(mePtr->image, widthPtr, heightPtr); - haveImage = 1; - } else if (mePtr->bitmapPtr != NULL && (useMDEF || tornOff)) { - Pixmap bitmap = Tk_GetBitmapFromObj(menuPtr->tkwin, mePtr->bitmapPtr); - Tk_SizeOfBitmap(menuPtr->display, bitmap, widthPtr, heightPtr); - haveImage = 1; - } - if (!haveImage || (mePtr->compound != COMPOUND_NONE)) { - int textWidth = 0, textHeight = fmPtr->linespace; - - if (mePtr->labelPtr != NULL) { - Tcl_DString itemTextDString; - - GetEntryText(mePtr, &itemTextDString); - textWidth = Tk_TextWidth(tkfont, - Tcl_DStringValue(&itemTextDString), - Tcl_DStringLength(&itemTextDString)) + - menuTextLeadingEdgeMargin + menuTextTrailingEdgeMargin; - Tcl_DStringFree(&itemTextDString); - - if (haveImage && (mePtr->compound != COMPOUND_NONE)) { - switch ((enum compound) mePtr->compound) { - int margin; - - case COMPOUND_TOP: - case COMPOUND_BOTTOM: - if (textWidth > *widthPtr) { - *widthPtr = textWidth; - } - *heightPtr += textHeight + 2; - break; - case COMPOUND_LEFT: - margin = *widthPtr + 2; - if (margin > menuTextLeadingEdgeMargin) { - margin = menuTextLeadingEdgeMargin; - } - *widthPtr += textWidth + 2 - margin; - if (textHeight > *heightPtr) { - *heightPtr = textHeight; - } - break; - case COMPOUND_RIGHT: - margin = menuTextTrailingEdgeMargin; - *widthPtr += textWidth + 2 - margin; - if (textHeight > *heightPtr) { - *heightPtr = textHeight; - } - break; - case COMPOUND_CENTER: - if (textWidth > *widthPtr) { - *widthPtr = textWidth; - } - if (textHeight > *heightPtr) { - *heightPtr = textHeight; - } - break; - case COMPOUND_NONE: - /* - * Never reached. - */ - break; - } - goto labelGeomDone; - } - } - *widthPtr = textWidth; - *heightPtr = textHeight; - } - - labelGeomDone: - *heightPtr += menuItemExtraHeight; - *widthPtr += menuItemExtraWidth; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGenerateParentMenuSelectEvent -- - * - * Respond to a hierarchical menu being opened. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Places a virtual event on the event queue. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXGenerateParentMenuSelectEvent( - MenuRef menu) -{ - TkMenu *menuPtr = MenuPtrForMenuRef(menu); - - if (menuPtr) { - TkMenuEntry *parentEntryPtr = GetParentMenuEntry(menuPtr); - - if (parentEntryPtr && (menuPtr = parentEntryPtr->menuPtr)) { - TkActivateMenuEntry(menuPtr, parentEntryPtr->index); - MenuSelectEvent(menuPtr); - Tcl_ServiceAll(); - return true; - } - } - return false; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGenerateMenuSelectEvent -- - * - * Respond to a menu item being selected. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Places a virtual event on the event queue. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXGenerateMenuSelectEvent( - MenuRef menu, - MenuItemIndex index) -{ - TkMenu *menuPtr = MenuPtrForMenuRef(menu); - int item = index - 1; - - if (menuPtr) { - if (item < 0 || item >= menuPtr->numEntries || - (menuPtr->entries[item])->state == ENTRY_DISABLED) { - TkActivateMenuEntry(menuPtr, -1); - } else { - TkActivateMenuEntry(menuPtr, item); - MenuSelectEvent(menuPtr); - Tcl_ServiceAll(); - return true; - } - } - return false; -} - -/* - *---------------------------------------------------------------------- - * - * MenuSelectEvent -- - * - * Generates a "MenuSelect" virtual event. This can be used to do - * context-sensitive menu help. - * - * Results: - * None. - * - * Side effects: - * Places a virtual event on the event queue. - * - *---------------------------------------------------------------------- - */ - -void -MenuSelectEvent( - TkMenu *menuPtr) /* the menu we have selected. */ -{ - XVirtualEvent event; - - bzero(&event, sizeof(XVirtualEvent)); - event.type = VirtualEvent; - event.serial = menuPtr->display->request; - event.send_event = false; - event.display = menuPtr->display; - Tk_MakeWindowExist(menuPtr->tkwin); - event.event = Tk_WindowId(menuPtr->tkwin); - event.root = XRootWindow(menuPtr->display, 0); - event.subwindow = None; - event.time = TkpGetMS(); - - XQueryPointer(NULL, None, NULL, NULL, &event.x_root, &event.y_root, NULL, - NULL, &event.state); - event.same_screen = true; - event.name = Tk_GetUid("MenuSelect"); - Tk_QueueWindowEvent((XEvent *) &event, TCL_QUEUE_TAIL); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXClearActiveMenu -- - * - * Clears Tk's active entry for the given MenuRef. - * - * Results: - * None. - * - * Side effects: - * Generates <<MenuSelect>> virtual events. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXClearActiveMenu( - MenuRef menu) -{ - TkMenu *menuPtr = MenuPtrForMenuRef(menu); - - if (menuPtr) { - RecursivelyClearActiveMenu(menuPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * RecursivelyClearActiveMenu -- - * - * Recursively clears the active entry in the menu's cascade hierarchy. - * - * Results: - * None. - * - * Side effects: - * Generates <<MenuSelect>> virtual events. - * - *---------------------------------------------------------------------- - */ - -void -RecursivelyClearActiveMenu( - TkMenu *menuPtr) /* The menu to reset. */ -{ - int i; - TkMenuEntry *mePtr; - - TkActivateMenuEntry(menuPtr, -1); - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - if (mePtr->type == CASCADE_ENTRY) { - if ((mePtr->childMenuRefPtr != NULL) - && (mePtr->childMenuRefPtr->menuPtr != NULL)) { - RecursivelyClearActiveMenu(mePtr->childMenuRefPtr->menuPtr); - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXClearMenubarActive -- - * - * Recursively clears the active entry in the current menubar hierarchy. - * - * Results: - * None. - * - * Side effects: - * Generates <<MenuSelect>> virtual events. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXClearMenubarActive(void) -{ - TkMenuReferences *menuBarRefPtr; - - if (currentMenuBarName != NULL) { - menuBarRefPtr = TkFindMenuReferences(currentMenuBarInterp, - currentMenuBarName); - if ((menuBarRefPtr != NULL) && (menuBarRefPtr->menuPtr != NULL)) { - TkMenu *menuPtr; - - for (menuPtr = menuBarRefPtr->menuPtr->masterMenuPtr; - menuPtr != NULL; menuPtr = menuPtr->nextInstancePtr) { - if (menuPtr->menuType == MENUBAR) { - RecursivelyClearActiveMenu(menuPtr); - } - } - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpMenuNotifyToplevelCreate -- - * - * This routine reconfigures the menu and the clones indicated by - * menuName becuase a toplevel has been created and any system menus need - * to be created. Only applicable to Windows. - * - * Results: - * None. - * - * Side effects: - * An idle handler is set up to do the reconfiguration. - * - *---------------------------------------------------------------------- - */ - -void -TkpMenuNotifyToplevelCreate( - Tcl_Interp *interp, /* The interp the menu lives in. */ - const char *menuName) /* The name of the menu to reconfigure. */ -{ - /* - * Nothing to do. - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpMenuInit -- - * - * Initializes Mac-specific menu data. - * - * Results: - * None. - * - * Side effects: - * Allocates a hash table. - * - *---------------------------------------------------------------------- - */ - -void -TkpMenuInit(void) -{ - MenuSymbol *ms = menuSymbols; - CFStringRef cfStr; - - lastMenuID = 256; - Tcl_InitHashTable(&commandTable, TCL_ONE_WORD_KEYS); - currentMenuBarOwner = NULL; - currentAppleMenuID = 0; - currentHelpMenuID = 0; - currentMenuBarInterp = NULL; - currentMenuBarName = NULL; - windowListPtr = NULL; - -#ifdef USE_TK_MDEF - tkThemeMenuItemDrawingUPP - = NewMenuItemDrawingUPP(ThemeMenuItemDrawingProc); - useMDEFVar = Tcl_NewStringObj("::tk::mac::useCustomMDEF", -1); - macMDEFDrawable.winPtr = NULL; - macMDEFDrawable.xOff = 0; - macMDEFDrawable.yOff = 0; - macMDEFDrawable.visRgn = NULL; - macMDEFDrawable.aboveVisRgn = NULL; - macMDEFDrawable.drawRect = CGRectNull; - macMDEFDrawable.referenceCount = 0; - macMDEFDrawable.toplevel = NULL; - macMDEFDrawable.flags = 0; - macMDEFDrawable.grafPtr = NULL; - macMDEFDrawable.context = NULL; - macMDEFDrawable.size = CGSizeZero; -#endif - - ChkErr(GetThemeMetric, kThemeMetricMenuMarkColumnWidth, - &menuMarkColumnWidth); - ChkErr(GetThemeMetric, kThemeMetricMenuMarkIndent, &menuMarkIndent); - ChkErr(GetThemeMetric, kThemeMetricMenuTextLeadingEdgeMargin, - &menuTextLeadingEdgeMargin); - ChkErr(GetThemeMetric, kThemeMetricMenuTextTrailingEdgeMargin, - &menuTextTrailingEdgeMargin); - ChkErr(GetThemeMenuItemExtra, kThemeMenuItemPlain, &menuItemExtraHeight, - &menuItemExtraWidth); - ChkErr(GetThemeMenuSeparatorHeight, &menuSeparatorHeight); - - while (ms->unicode) { - ms->utfLen = Tcl_UniCharToUtf(ms->unicode, ms->utf); - ms->utf[ms->utfLen] = 0; - cfStr = CFStringCreateWithCharacters(NULL, &ms->unicode, 1); - if (cfStr) { - ms->width = MeasureThemeText(cfStr, kThemeMenuItemCmdKeyFont); - CFRelease(cfStr); - } - ms++; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpMenuThreadInit -- - * - * Does platform-specific initialization of thread-specific menu state. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpMenuThreadInit(void) -{ - /* - * Nothing to do. - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpPreprocessMacMenu -- - * - * Handle preprocessing of menubar if it exists. - * - * Results: - * None. - * - * Side effects: - * All post commands for the current menubar get executed. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXPreprocessMenu(void) -{ - if ((currentMenuBarName != NULL) && (currentMenuBarInterp != NULL)) { - TkMenuReferences *mbRefPtr = - TkFindMenuReferences(currentMenuBarInterp,currentMenuBarName); - - if ((mbRefPtr != NULL) && (mbRefPtr->menuPtr != NULL)) { - int code; - - Tcl_Preserve(currentMenuBarInterp); - code = TkPreprocessMenu(mbRefPtr->menuPtr->masterMenuPtr); - if ((code != TCL_OK) && (code != TCL_CONTINUE) - && (code != TCL_BREAK)) { - Tcl_AddErrorInfo(currentMenuBarInterp, - "\n (menu preprocess)"); - Tcl_BackgroundException(currentMenuBarInterp, code); - } - Tcl_Release(currentMenuBarInterp); - } - } -} - -#ifdef USE_TK_MDEF -#pragma mark MDEF -/* - *---------------------------------------------------------------------- - * - * MenuDefProc -- - * - * This routine is the MDEF handler for Tk. It receives all messages for - * the menu and dispatches them. - * - * Results: - * None. - * - * Side effects: - * This routine causes menus to be drawn and will certainly allocate - * memory as a result. Also, the menu can scroll up and down, and various - * other interface actions can take place. - * - *---------------------------------------------------------------------- - */ - -void -MenuDefProc( - SInt16 message, /* What action are we taking? */ - MenuRef menu, /* The menu we are working with */ - Rect *menuRectPtr, /* A pointer to the rect for the whole - * menu. */ - Point hitPt, /* Where the mouse was clicked for the - * appropriate messages. */ - SInt16 *whichItem) /* Output result. Which item was hit by the - * user? */ -{ - TkMenu *menuPtr; - Tcl_HashEntry *commandEntryPtr; - MenuID menuID; - - menuID = GetMenuID(menu); - commandEntryPtr = Tcl_FindHashEntry(&commandTable, (char*)(intptr_t)menuID); - if (!commandEntryPtr) return; - menuPtr = Tcl_GetHashValue(commandEntryPtr); - - switch (message) { - case kMenuInitMsg: - *whichItem = noErr; - break; - case kMenuDisposeMsg: - break; - case kMenuHiliteItemMsg: - HandleMenuHiliteMsg(menu, menuRectPtr, hitPt, whichItem, menuPtr); - break; - case kMenuCalcItemMsg: - HandleMenuCalcItemMsg(menu, menuRectPtr, hitPt, whichItem, menuPtr); - break; - case kMenuDrawItemsMsg: -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: DrawItemsMsg"); -#endif - /* - * We do nothing here, because we don't support the Menu Managers - * dynamic item groups - */ - - break; - case kMenuThemeSavvyMsg: - *whichItem = kThemeSavvyMenuResponse; - break; - case kMenuSizeMsg: -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: SizeMsg %d, %d", hitPt.h, hitPt.v); -#endif - SetMenuWidth(menu, hitPt.h < menuPtr->totalWidth ? hitPt.h : - menuPtr->totalWidth); - SetMenuHeight(menu, hitPt.v < menuPtr->totalHeight ? hitPt.v : - menuPtr->totalHeight); - break; - case kMenuDrawMsg: - HandleMenuDrawMsg(menu, menuRectPtr, hitPt, whichItem, menuPtr); - break; - case kMenuFindItemMsg: - HandleMenuFindItemMsg(menu, menuRectPtr, hitPt, whichItem, menuPtr); - break; - case kMenuPopUpMsg: - HandleMenuPopUpMsg(menu, menuRectPtr, hitPt, whichItem, menuPtr); - break; - } -} - -/* - *---------------------------------------------------------------------- - * - * HandleMenuHiliteMsg -- - * - * Handles the MenuDefProc's hilite message. - * - * Results: - * A menu entry is drawn - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -void -HandleMenuHiliteMsg( - MenuRef menu, - Rect *menuRectPtr, - Point hitPt, - SInt16 *whichItem, - TkMenu *menuPtr) -{ - OSStatus err; - Tk_Font tkfont; - Tk_FontMetrics fontMetrics; - MDEFHiliteItemData *hidPtr = (MDEFHiliteItemData *) whichItem; - int oldItem = hidPtr->previousItem - 1; - int newItem = hidPtr->newItem - 1; - MenuTrackingData mtd, *mtdPtr = &mtd; - -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: HiliteMsg %d -> %d", hidPtr->previousItem, - hidPtr->newItem); -#endif - GetPort(&macMDEFDrawable.grafPtr); - macMDEFDrawable.context = (CGContextRef) hidPtr->context; - - err = ChkErr(GetMenuTrackingData, menu, mtdPtr); - if (err != noErr) { - return; - } - - tkfont = Tk_GetFontFromObj(menuPtr->tkwin, menuPtr->fontPtr); - Tk_GetFontMetrics(tkfont, &fontMetrics); - if (oldItem >= 0) { - AppearanceEntryDrawWrapper(menuPtr->entries[oldItem], menuRectPtr, - mtdPtr, (Drawable) &macMDEFDrawable, &fontMetrics, tkfont, 1); - } - if (newItem >= 0) { - AppearanceEntryDrawWrapper(menuPtr->entries[newItem], menuRectPtr, - mtdPtr, (Drawable) &macMDEFDrawable, &fontMetrics, tkfont, 0); - } -} - -/* - *---------------------------------------------------------------------- - * - * HandleMenuDrawMsg -- - * - * Handles the MenuDefProc's draw message. - * - * Results: - * A menu entry is drawn - * - * Side effects: - * None - * - *---------------------------------------------------------------------- - */ - -void -HandleMenuDrawMsg( - MenuRef menu, - Rect *menuRectPtr, - Point hitPt, - SInt16 *whichItem, - TkMenu *menuPtr) -{ - Tk_Font menuFont; - Tk_FontMetrics fontMetrics; - TkMenuEntry *mePtr; - int i; - Rect menuClipRect, bounds; - MDEFDrawData *ddPtr = (MDEFDrawData *) whichItem; - MenuTrackingData *mtdPtr = &(ddPtr->trackingData); - TkWindow *winPtr = (TkWindow *) menuPtr->tkwin; - - GetPort(&macMDEFDrawable.grafPtr); - GetPortBounds(macMDEFDrawable.grafPtr, &bounds); - macMDEFDrawable.context = (CGContextRef) ddPtr->context; -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: DrawMsg %d - %d; %d - %d", menuRectPtr->top, - menuRectPtr->bottom, bounds.top, bounds.bottom); -#endif - winPtr->changes.x = menuRectPtr->left; - winPtr->changes.y = menuRectPtr->top; - winPtr->changes.width = menuRectPtr->right - menuRectPtr->left; - winPtr->changes.height = menuRectPtr->bottom - menuRectPtr->top; - TkpClipDrawableToRect(menuPtr->display, (Drawable) &macMDEFDrawable, - 0, 0, -1, -1); -#if 0 - if (menuPtr->menuRefPtr->topLevelListPtr != NULL) { - menuType = kThemeMenuTypePullDown; - } else if (menuPtr->menuRefPtr->parentEntryPtr != NULL) { - menuType = kThemeMenuTypeHierarchical; - } else { - menuType = kThemeMenuTypePopUp; - } -#endif - DrawMenuBackground(menuPtr, menuRectPtr, (Drawable) &macMDEFDrawable); - menuFont = Tk_GetFontFromObj(menuPtr->tkwin, menuPtr->fontPtr); - Tk_GetFontMetrics(menuFont, &fontMetrics); - menuClipRect = *menuRectPtr; - mtdPtr->virtualMenuBottom = mtdPtr->virtualMenuTop + menuPtr->totalHeight; - - /* - * Next, figure out scrolling information. - */ - - if ((menuRectPtr->bottom - menuRectPtr->top) < menuPtr->totalHeight) { - short arrowHeight = fontMetrics.linespace + 1; - Rect arrowRect, eraseRect; - ThemeMenuState menuState = IsMenuItemEnabled(menu, 0) ? - kThemeMenuActive : kThemeMenuDisabled; - - if (mtdPtr->virtualMenuTop < menuRectPtr->top) { - arrowRect = bounds; - /*arrowRect.top += 1;*/ - arrowRect.bottom = arrowRect.top + arrowHeight; - eraseRect = arrowRect; - eraseRect.top = menuRectPtr->top; - menuClipRect.top = arrowRect.bottom; - ChkErr(EraseMenuBackground, menu, &eraseRect, - macMDEFDrawable.context); - ChkErr(DrawThemeMenuItem, menuRectPtr, &arrowRect, - mtdPtr->virtualMenuTop, mtdPtr->virtualMenuBottom, - menuState, kThemeMenuItemScrollUpArrow, NULL, 0); -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("upArrow: %d - %d, %d - %d", arrowRect.top, - arrowRect.bottom, arrowRect.left, arrowRect.right); -#endif - } - if (mtdPtr->virtualMenuBottom > menuRectPtr->bottom) { - arrowRect = bounds; - arrowRect.bottom -= 1; - arrowRect.top = arrowRect.bottom - arrowHeight; - eraseRect = arrowRect; - eraseRect.bottom = menuRectPtr->bottom; - menuClipRect.bottom = arrowRect.top; - ChkErr(EraseMenuBackground, menu, &eraseRect, - macMDEFDrawable.context); - ChkErr(DrawThemeMenuItem, menuRectPtr, &arrowRect, - mtdPtr->virtualMenuTop, mtdPtr->virtualMenuBottom, - menuState, kThemeMenuItemScrollDownArrow, NULL, 0); -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("downArrow: %d - %d, %d - %d", arrowRect.top, - arrowRect.bottom, arrowRect.left, arrowRect.right); -#endif - } - TkpClipDrawableToRect(menuPtr->display, (Drawable) &macMDEFDrawable, - menuClipRect.left, menuClipRect.top, menuClipRect.right - - menuClipRect.left, menuClipRect.bottom - menuClipRect.top); - } - - /* - * Now, actually draw the menu. Don't draw entries that are higher than - * the top arrow, and don't draw entries that are lower than the bottom. - */ - - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - if (mtdPtr->virtualMenuTop + mePtr->y + mePtr->height < - menuClipRect.top || mtdPtr->virtualMenuTop + mePtr->y > - menuClipRect.bottom) { - continue; - } - AppearanceEntryDrawWrapper(mePtr, menuRectPtr, mtdPtr, - (Drawable) &macMDEFDrawable, &fontMetrics, menuFont, 0); - } - MDEFScrollFlag = 1; -} - -/* - *---------------------------------------------------------------------- - * - * HandleMenuFindItemMsg -- - * - * Handles the MenuDefProc's FindItems message. We have to respond by - * filling in the itemSelected, itemUnderMouse and itemRect fields. This - * is also the time to scroll the menu if it is too long to fit on the - * screen. - * - * Results: - * The Menu system is informed of the selected item & the item under the - * mouse. - * - * Side effects: - * The menu might get scrolled. - * - *---------------------------------------------------------------------- - */ - -void -HandleMenuFindItemMsg( - MenuRef menu, - Rect *menuRectPtr, - Point hitPt, - SInt16 *whichItem, - TkMenu *menuPtr) -{ - Tk_Font menuFont; - Tk_FontMetrics fontMetrics; - TkMenuEntry *mePtr; - int i, newItem = -1, itemUnderMouse = -1; - Rect itemRect = {0, 0, 0, 0}, menuClipRect, bounds; - int hasTopScroll, hasBottomScroll; - MDEFFindItemData *fiPtr = (MDEFFindItemData *)whichItem; - MenuTrackingData *mtdPtr = &(fiPtr->trackingData), topMtd; - enum { - DONT_SCROLL, DOWN_SCROLL, UP_SCROLL - } scrollDirection; - short arrowHeight; - -#ifdef TK_MAC_DEBUG_MENUS - static Point lastHitPt = {0, 0}; - - if (hitPt.h != lastHitPt.h || hitPt.v != lastHitPt.v) { - lastHitPt = hitPt; - TkMacOSXDbgMsg("MDEF: FindItemMsg: %d, %d", hitPt.h, hitPt.v); - } -#endif - - GetPort(&macMDEFDrawable.grafPtr); - GetPortBounds(macMDEFDrawable.grafPtr, &bounds); - macMDEFDrawable.context = (CGContextRef) fiPtr->context; - - /* - * Now we need to take care of scrolling the menu. - */ - - menuFont = Tk_GetFontFromObj(menuPtr->tkwin, menuPtr->fontPtr); - Tk_GetFontMetrics(menuFont, &fontMetrics); - arrowHeight = fontMetrics.linespace + 1; - menuClipRect = *menuRectPtr; - hasTopScroll = mtdPtr->virtualMenuTop < menuRectPtr->top; - hasBottomScroll = mtdPtr->virtualMenuBottom > menuRectPtr->bottom; - scrollDirection = DONT_SCROLL; - if (hasTopScroll) { - menuClipRect.top = bounds.top + arrowHeight; - if (hitPt.v < menuClipRect.top) { - newItem = -1; - scrollDirection = DOWN_SCROLL; - } - } - if (hasBottomScroll) { - menuClipRect.bottom = bounds.bottom - 1 - arrowHeight; - if (hitPt.v > menuClipRect.bottom) { - newItem = -1; - scrollDirection = UP_SCROLL; - } - } - if (MDEFScrollFlag) { - scrollDirection = DONT_SCROLL; - MDEFScrollFlag = 0; - } - /* - * Don't scroll if there are other menus open above us - */ - ChkErr(GetMenuTrackingData, NULL, &topMtd); - if (menu != topMtd.menu) { - scrollDirection = DONT_SCROLL; - } - if (scrollDirection == DONT_SCROLL) { - /* - * Find out which item was hit. If it is the same as the old item, we - * don't need to do anything. - */ - - if (PtInRect(hitPt, menuRectPtr)) { - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - itemRect.left = menuRectPtr->left + mePtr->x; - itemRect.top = mtdPtr->virtualMenuTop + mePtr->y; - itemRect.right = mePtr->entryFlags & ENTRY_LAST_COLUMN ? - menuRectPtr->right : itemRect.left + mePtr->width; - itemRect.bottom = itemRect.top + mePtr->height; - if (PtInRect(hitPt, &itemRect)) { - if ((mePtr->type == SEPARATOR_ENTRY) - || (mePtr->state == ENTRY_DISABLED)) { - newItem = -1; - itemUnderMouse = i; - } else { - TkMenuEntry *parentEntryPtr = - GetParentMenuEntry(menuPtr); - - if (parentEntryPtr && - parentEntryPtr->state == ENTRY_DISABLED) { - newItem = -1; - itemUnderMouse = i; - } else { - newItem = i; - itemUnderMouse = i; - } - } - break; - } - } - } - } else { - short scrollAmt; - unsigned long scrollDelay; - Rect arrowRect, eraseRect, scrolledMenuClipRect; - ThemeMenuState menuState = IsMenuItemEnabled(menu, 0) ? - kThemeMenuActive : kThemeMenuDisabled; - int oldItem = mtdPtr->itemSelected - 1; - short d; - - TkpClipDrawableToRect(menuPtr->display, (Drawable) &macMDEFDrawable, - 0, 0, -1, -1); - scrollAmt = fontMetrics.linespace + menuItemExtraHeight; - if (scrollDirection == UP_SCROLL) { - scrollAmt = -scrollAmt; - d = hitPt.v - bounds.bottom; - } else { - d = bounds.top - hitPt.v; - } - scrollDelay = (d >= scrollAmt/2) ? 1 : 10; - menuClipRect = *menuRectPtr; - if (mtdPtr->virtualMenuTop + scrollAmt < menuRectPtr->top) { - arrowRect = bounds; - /*arrowRect.top += 1;*/ - arrowRect.bottom = arrowRect.top + arrowHeight; - eraseRect = arrowRect; - eraseRect.top = menuRectPtr->top; - menuClipRect.top = arrowRect.bottom; - if (!hasTopScroll) { - ChkErr(EraseMenuBackground, menu, &eraseRect, - macMDEFDrawable.context); - ChkErr(DrawThemeMenuItem, menuRectPtr, &arrowRect, - mtdPtr->virtualMenuTop + scrollAmt, - mtdPtr->virtualMenuBottom + scrollAmt, - menuState, kThemeMenuItemScrollUpArrow, NULL, 0); -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("upArrow: %d - %d, %d - %d", arrowRect.top, - arrowRect.bottom, arrowRect.left, arrowRect.right); -#endif - } - } - if (mtdPtr->virtualMenuBottom + scrollAmt > menuRectPtr->bottom) { - arrowRect = bounds; - arrowRect.bottom -= 1; - arrowRect.top = arrowRect.bottom - arrowHeight; - eraseRect = arrowRect; - eraseRect.bottom = menuRectPtr->bottom; - menuClipRect.bottom = arrowRect.top; - if (!hasBottomScroll) { - ChkErr(EraseMenuBackground, menu, &eraseRect, - macMDEFDrawable.context); - ChkErr(DrawThemeMenuItem, menuRectPtr, &arrowRect, - mtdPtr->virtualMenuTop + scrollAmt, - mtdPtr->virtualMenuBottom + scrollAmt, - menuState, kThemeMenuItemScrollDownArrow, NULL, 0); -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("downArrow: %d - %d, %d - %d", arrowRect.top, - arrowRect.bottom, arrowRect.left, arrowRect.right); -#endif - } - } - TkpClipDrawableToRect(menuPtr->display, (Drawable) &macMDEFDrawable, - menuClipRect.left, menuClipRect.top, menuClipRect.right - - menuClipRect.left, menuClipRect.bottom - menuClipRect.top); - TkActivateMenuEntry(menuPtr, -1); - if (oldItem >= 0) { - AppearanceEntryDrawWrapper(menuPtr->entries[oldItem], menuRectPtr, - mtdPtr, (Drawable) &macMDEFDrawable, &fontMetrics, - menuFont, 1); - } - ChkErr(ScrollMenuImage, menu, &menuClipRect, 0, scrollAmt, - macMDEFDrawable.context); - mtdPtr->virtualMenuTop += scrollAmt; - mtdPtr->virtualMenuBottom += scrollAmt; - scrolledMenuClipRect = menuClipRect; - OffsetRect(&scrolledMenuClipRect, 0, scrollAmt); - menuClipRect = bounds; - if (mtdPtr->virtualMenuTop < menuRectPtr->top) { - menuClipRect.top += arrowHeight; - } - if (mtdPtr->virtualMenuBottom > menuRectPtr->bottom) { - menuClipRect.bottom -= arrowHeight; - } - TkpClipDrawableToRect(menuPtr->display, (Drawable) &macMDEFDrawable, - menuClipRect.left, menuClipRect.top, menuClipRect.right - - menuClipRect.left, menuClipRect.bottom - menuClipRect.top); - if (scrolledMenuClipRect.bottom < menuClipRect.bottom) { - menuClipRect.top = scrolledMenuClipRect.bottom; - } else if (scrolledMenuClipRect.top < menuClipRect.top) { - menuClipRect.bottom = scrolledMenuClipRect.top; - } - for (i = 0; i < menuPtr->numEntries; i++) { - mePtr = menuPtr->entries[i]; - if (mtdPtr->virtualMenuTop + mePtr->y + mePtr->height < - menuClipRect.top || mtdPtr->virtualMenuTop + mePtr->y > - menuClipRect.bottom) { - continue; - } -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("Drawing item %i", i); -#endif - AppearanceEntryDrawWrapper(mePtr, menuRectPtr, mtdPtr, - (Drawable) &macMDEFDrawable, &fontMetrics, menuFont, 1); - } - Delay(scrollDelay, NULL); - } - mtdPtr->itemSelected = newItem + 1; - mtdPtr->itemUnderMouse = itemUnderMouse + 1; - mtdPtr->itemRect = itemRect; -} - -/* - *---------------------------------------------------------------------- - * - * HandleMenuPopUpMsg -- - * - * Handles the MenuDefProc's PopUp message. The menu is posted with the - * selected item at the point given in hitPt. - * - * Results: - * A menu is posted. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -HandleMenuPopUpMsg( - MenuRef menu, - Rect *menuRectPtr, - Point hitPt, - SInt16 *whichItem, - TkMenu *menuPtr) -{ - int maxMenuHeight; - int oldItem; - Rect portRect; - BitMap screenBits; - static SInt16 menuBarHeight = 0; - -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: PopUpMsg"); -#endif - - if (!menuBarHeight) { - ChkErr(GetThemeMenuBarHeight, &menuBarHeight); - } - GetQDGlobalsScreenBits(&screenBits); - - /* - * Note that for some oddball reason, h and v are reversed in the point - * given to us by the MDEF. - */ - - oldItem = *whichItem; - if (oldItem >= menuPtr->numEntries) { - oldItem = -1; - } - portRect.top = 0; - portRect.bottom = 1280; - maxMenuHeight = screenBits.bounds.bottom - screenBits.bounds.top - - menuBarHeight - SCREEN_MARGIN; - if (menuPtr->totalHeight > maxMenuHeight) { - menuRectPtr->top = menuBarHeight; - } else { - int delta; - - menuRectPtr->top = hitPt.h; - if (oldItem >= 0) { - menuRectPtr->top -= menuPtr->entries[oldItem]->y; - } - - if (menuRectPtr->top < menuBarHeight) { - /* - * Displace downward if the menu would stick off the top of the - * screen. - */ - - menuRectPtr->top = menuBarHeight + SCREEN_MARGIN; - } else { - /* - * Or upward if the menu sticks off the bottom end... - */ - - delta = menuRectPtr->top + menuPtr->totalHeight - maxMenuHeight; - if (delta > 0) { - menuRectPtr->top -= delta; - } - } - } - menuRectPtr->left = hitPt.v; - menuRectPtr->right = menuRectPtr->left + menuPtr->totalWidth; - menuRectPtr->bottom = menuRectPtr->top + - ((maxMenuHeight < menuPtr->totalHeight) - ? maxMenuHeight : menuPtr->totalHeight); - if (menuRectPtr->top == menuBarHeight) { - *whichItem = hitPt.h; - } else { - *whichItem = menuRectPtr->top; - } -} - -/* - *---------------------------------------------------------------------- - * - * HandleMenuCalcItemMsg -- - * - * Handles the MenuDefProc's CalcItem message. It is supposed to - * calculate the Rect of the menu entry in whichItem in the menu, and put - * that in menuRectPtr. I assume this works, but I have never seen the - * MenuManager send this message. - * - * Results: - * The Menu Manager is informed of the bounding rect of a menu rect. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -HandleMenuCalcItemMsg( - MenuRef menu, - Rect *menuRectPtr, - Point hitPt, - SInt16 *whichItem, - TkMenu *menuPtr) -{ - TkMenuEntry *mePtr; - MenuTrackingData mtd, *mtdPtr = &mtd; - OSStatus err; - int virtualTop, item = *whichItem-1; - - err = ChkErr(GetMenuTrackingData, menu, mtdPtr); - if (err == noErr) { - virtualTop = mtdPtr->virtualMenuTop; - } else { - virtualTop = 0; - } - - if (item >= 0 && item < menuPtr->numEntries) { - mePtr = menuPtr->entries[item]; - menuRectPtr->left = mePtr->x; - menuRectPtr->top = mePtr->y + virtualTop; - if (mePtr->entryFlags & ENTRY_LAST_COLUMN) { - menuRectPtr->right = menuPtr->totalWidth; - } else { - menuRectPtr->right = mePtr->x + mePtr->width; - } - menuRectPtr->bottom = menuRectPtr->top + mePtr->height; - } -#ifdef TK_MAC_DEBUG_MENUS - TkMacOSXDbgMsg("MDEF: CalcItemMsg %d: %d, %d", *whichItem, - menuRectPtr->left, menuRectPtr->top); -#endif -} -#endif /* USE_TK_MDEF */ - -/* - * Local Variables: - * fill-column: 78 - * c-basic-offset: 4 - * End: - */ diff --git a/carbon/tkMacOSXMenubutton.c b/carbon/tkMacOSXMenubutton.c deleted file mode 100644 index 58fc787..0000000 --- a/carbon/tkMacOSXMenubutton.c +++ /dev/null @@ -1,950 +0,0 @@ -/* - * tkMacOSXMenubutton.c -- - * - * This file implements the Macintosh specific portion of the - * menubutton widget. - * - * Copyright (c) 1996 by Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMenu.h" -#include "tkMenubutton.h" -#include "tkMacOSXFont.h" -#include "tkMacOSXDebug.h" - -#define kShadowOffset (3) /* amount to offset shadow from frame */ -#define kTriangleWidth (11) /* width of the triangle */ -#define kTriangleHeight (6) /* height of the triangle */ -#define kTriangleMargin (5) /* margin around triangle */ - -#define TK_POPUP_OFFSET 32 /* size of popup marker */ - -#define FIRST_DRAW 2 -#define ACTIVE 4 - -MODULE_SCOPE int TkMacOSXGetNewMenuID(Tcl_Interp *interp, TkMenu *menuInstPtr, - int cascade, short *menuIDPtr); -MODULE_SCOPE void TkMacOSXFreeMenuID(short menuID); - -typedef struct { - SInt16 initialValue; - SInt16 minValue; - SInt16 maxValue; - SInt16 procID; - int isBevel; -} MenuButtonControlParams; - -typedef struct { - int len; - Str255 title; - ControlFontStyleRec style; -} ControlTitleParams; - -/* - * Declaration of Mac specific button structure. - */ - -typedef struct MacMenuButton { - TkMenuButton info; /* Generic button info. */ - WindowRef windowRef; - ControlRef userPane; - ControlRef control; - MenuRef menuRef; - unsigned long userPaneBackground; - int flags; - MenuButtonControlParams params; - ControlTitleParams titleParams; - ControlButtonContentInfo bevelButtonContent; - OpenCPicParams picParams; -} MacMenuButton; - -/* - * Forward declarations for procedures defined later in this file: - */ - -static OSStatus SetUserPaneDrawProc(ControlRef control, - ControlUserPaneDrawProcPtr upp); -static OSStatus SetUserPaneSetUpSpecialBackgroundProc(ControlRef control, - ControlUserPaneBackgroundProcPtr upp); -static void UserPaneDraw(ControlRef control, ControlPartCode cpc); -static void UserPaneBackgroundProc(ControlHandle, - ControlBackgroundPtr info); -static int MenuButtonInitControl (MacMenuButton *mbPtr, Rect *paneRect, - Rect *cntrRect ); -static void MenuButtonEventProc(ClientData clientData, XEvent *eventPtr); -static int UpdateControlColors(MacMenuButton *mbPtr); -static void ComputeMenuButtonControlParams(TkMenuButton *mbPtr, - MenuButtonControlParams * paramsPtr); -static void ComputeControlTitleParams(TkMenuButton *mbPtr, - ControlTitleParams *paramsPtr); -static void CompareControlTitleParams(ControlTitleParams *p1Ptr, - ControlTitleParams *p2Ptr, int *titleChanged, int *styleChanged); - - -/* - *---------------------------------------------------------------------- - * - * TkpCreateMenuButton -- - * - * Allocate a new TkMenuButton structure. - * - * Results: - * Returns a newly allocated TkMenuButton structure. - * - * Side effects: - * Registers an event handler for the widget. - * - *---------------------------------------------------------------------- - */ - -TkMenuButton * -TkpCreateMenuButton( - Tk_Window tkwin) -{ - MacMenuButton *mbPtr = ckalloc(sizeof(MacMenuButton)); - - Tk_CreateEventHandler(tkwin, ActivateMask, - MenuButtonEventProc, (ClientData) mbPtr); - mbPtr->flags = 0; - mbPtr->userPaneBackground = PIXEL_MAGIC << 24; - mbPtr->userPane = NULL; - mbPtr->control = NULL; - mbPtr->menuRef = NULL; - bzero(&mbPtr->params, sizeof(mbPtr->params)); - bzero(&mbPtr->titleParams, sizeof(mbPtr->titleParams)); - - return (TkMenuButton *) mbPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDisplayMenuButton -- - * - * This procedure is invoked to display a menubutton widget. - * - * Results: - * None. - * - * Side effects: - * Commands are output to X to display the menubutton in its - * current mode. - * - *---------------------------------------------------------------------- - */ - -void -TkpDisplayMenuButton( - ClientData clientData) /* Information about widget. */ -{ - TkMenuButton *butPtr = (TkMenuButton *) clientData; - Tk_Window tkwin = butPtr->tkwin; - TkWindow *winPtr; - Pixmap pixmap; - MacMenuButton *mbPtr = (MacMenuButton *) butPtr; - CGrafPtr destPort, savePort; - Boolean portChanged = false; - int hasImageOrBitmap = 0, width, height; - OSStatus err; - ControlButtonGraphicAlignment theAlignment; - Rect paneRect, cntrRect; - int active, enabled; - - butPtr->flags &= ~REDRAW_PENDING; - if ((butPtr->tkwin == NULL) || !Tk_IsMapped(tkwin)) { - return; - } - pixmap = (Pixmap) Tk_WindowId(tkwin); - TkMacOSXSetUpClippingRgn(Tk_WindowId(tkwin)); - - winPtr = (TkWindow *)butPtr->tkwin; - paneRect.left = winPtr->privatePtr->xOff; - paneRect.top = winPtr->privatePtr->yOff; - paneRect.right = paneRect.left+Tk_Width(butPtr->tkwin); - paneRect.bottom = paneRect.top+Tk_Height(butPtr->tkwin); - - cntrRect = paneRect; - - cntrRect.left += butPtr->inset; - cntrRect.top += butPtr->inset; - cntrRect.right -= butPtr->inset; - cntrRect.bottom -= butPtr->inset; - - if (mbPtr->userPane) { - MenuButtonControlParams params; - bzero(¶ms, sizeof(params)); - ComputeMenuButtonControlParams(butPtr, ¶ms); - if ( -#ifdef TK_REBUILD_TOPLEVEL - (winPtr->flags & TK_REBUILD_TOPLEVEL) || -#endif - bcmp(¶ms,&mbPtr->params,sizeof(params))) { - if (mbPtr->userPane) { - DisposeControl(mbPtr->userPane); - mbPtr->userPane = NULL; - mbPtr->control = NULL; - } - } - } - if (!mbPtr->userPane) { - if (MenuButtonInitControl(mbPtr, &paneRect, &cntrRect)) { - TkMacOSXDbgMsg("Init Control failed"); - return; - } - } - SetControlBounds(mbPtr->userPane, &paneRect); - SetControlBounds(mbPtr->control, &cntrRect); - - if (butPtr->image != None) { - Tk_SizeOfImage(butPtr->image, &width, &height); - hasImageOrBitmap = 1; - } else if (butPtr->bitmap != None) { - Tk_SizeOfBitmap(butPtr->display, butPtr->bitmap, &width, &height); - hasImageOrBitmap = 1; - } - - /* - * We need to cache the title and its style - */ - - if (!(mbPtr->flags & FIRST_DRAW)) { - ControlTitleParams titleParams; - int titleChanged; - int styleChanged; - - ComputeControlTitleParams(butPtr, &titleParams); - CompareControlTitleParams(&titleParams, &mbPtr->titleParams, - &titleChanged, &styleChanged); - if (titleChanged) { - CFStringRef cf = CFStringCreateWithCString(NULL, - (char*) titleParams.title, kCFStringEncodingUTF8); - - if (hasImageOrBitmap) { - SetControlTitleWithCFString(mbPtr->control, cf); - } else { - SetMenuItemTextWithCFString(mbPtr->menuRef, 1, cf); - } - CFRelease(cf); - bcopy(titleParams.title, mbPtr->titleParams.title, - titleParams.len + 1); - mbPtr->titleParams.len = titleParams.len; - } - if ((titleChanged||styleChanged) && titleParams .len) { - if (hasImageOrBitmap) { - err = ChkErr(SetControlFontStyle, mbPtr->control, - &titleParams.style); - if (err != noErr) { - return; - } - } - bcopy(&titleParams.style, &mbPtr->titleParams.style, - sizeof(titleParams.style)); - } - } - if (hasImageOrBitmap) { - { - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - mbPtr->picParams.version = -2; - mbPtr->picParams.hRes = 0x00480000; - mbPtr->picParams.vRes = 0x00480000; - mbPtr->picParams.srcRect.top = 0; - mbPtr->picParams.srcRect.left = 0; - mbPtr->picParams.srcRect.bottom = height; - mbPtr->picParams.srcRect.right = width; - mbPtr->picParams.reserved1 = 0; - mbPtr->picParams.reserved2 = 0; - mbPtr->bevelButtonContent.contentType = kControlContentPictHandle; - mbPtr->bevelButtonContent.u.picture = OpenCPicture(&mbPtr->picParams); - if (!mbPtr->bevelButtonContent.u.picture) { - TkMacOSXDbgMsg("OpenCPicture failed"); - } - tkPictureIsOpen = 1; - - /* - * TO DO - There is one case where XCopyPlane calls CopyDeepMask, - * which does not get recorded in the picture. So the bitmap code - * will fail in that case. - */ - } - if (butPtr->image != NULL) { - Tk_RedrawImage(butPtr->image, 0, 0, width, height, pixmap, 0, 0); - } else { - GC gc; - - if (butPtr->state == STATE_DISABLED) { - gc = butPtr->disabledGC; - } else if (butPtr->state == STATE_ACTIVE) { - gc = butPtr->activeTextGC; - } else { - gc = butPtr->normalTextGC; - } - XCopyPlane(butPtr->display, butPtr->bitmap, pixmap, gc, 0, 0, - width, height, 0, 0, 1); - } - { - ClosePicture(); - tkPictureIsOpen = 0; - if (portChanged) { - QDSwapPort(savePort, NULL); - } - } - ChkErr(SetControlData, mbPtr->control, kControlButtonPart, - kControlBevelButtonContentTag, - sizeof(ControlButtonContentInfo), - (char *) &mbPtr->bevelButtonContent); - switch (butPtr->anchor) { - case TK_ANCHOR_N: - theAlignment = kControlBevelButtonAlignTop; - break; - case TK_ANCHOR_NE: - theAlignment = kControlBevelButtonAlignTopRight; - break; - case TK_ANCHOR_E: - theAlignment = kControlBevelButtonAlignRight; - break; - case TK_ANCHOR_SE: - theAlignment = kControlBevelButtonAlignBottomRight; - break; - case TK_ANCHOR_S: - theAlignment = kControlBevelButtonAlignBottom; - break; - case TK_ANCHOR_SW: - theAlignment = kControlBevelButtonAlignBottomLeft; - break; - case TK_ANCHOR_W: - theAlignment = kControlBevelButtonAlignLeft; - break; - case TK_ANCHOR_NW: - theAlignment = kControlBevelButtonAlignTopLeft; - break; - case TK_ANCHOR_CENTER: - theAlignment = kControlBevelButtonAlignCenter; - break; - } - - ChkErr(SetControlData, mbPtr->control, kControlButtonPart, - kControlBevelButtonGraphicAlignTag, - sizeof(ControlButtonGraphicAlignment), (char *) &theAlignment); - } - active = ((mbPtr->flags & ACTIVE) != 0); - if (active != IsControlActive(mbPtr->control)) { - if (active) { - ChkErr(ActivateControl, mbPtr->control); - } else { - ChkErr(DeactivateControl, mbPtr->control); - } - } - enabled = !(butPtr->state == STATE_DISABLED); - if (enabled != IsControlEnabled(mbPtr->control)) { - if (enabled) { - ChkErr(EnableControl, mbPtr->control); - } else { - ChkErr(DisableControl, mbPtr->control); - } - } - if (active && enabled) { - if (butPtr->state == STATE_ACTIVE) { - if (hasImageOrBitmap) { - HiliteControl(mbPtr->control, kControlButtonPart); - } else { - HiliteControl(mbPtr->control, kControlLabelPart); - } - } else { - HiliteControl(mbPtr->control, kControlNoPart); - } - } - UpdateControlColors(mbPtr); - if (mbPtr->flags & FIRST_DRAW) { - ShowControl(mbPtr->control); - ShowControl(mbPtr->userPane); - mbPtr->flags ^= FIRST_DRAW; - } else { - SetControlVisibility(mbPtr->control, true, true); - Draw1Control(mbPtr->userPane); - } - if (hasImageOrBitmap) { - if (mbPtr->bevelButtonContent.contentType == - kControlContentPictHandle) { - KillPicture(mbPtr->bevelButtonContent.u.picture); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyMenuButton -- - * - * Free data structures associated with the menubutton control. - * - * Results: - * None. - * - * Side effects: - * Restores the default control state. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyMenuButton( - TkMenuButton *mbPtr) -{ - MacMenuButton *macMbPtr = (MacMenuButton *) mbPtr; - - if (macMbPtr->userPane) { - DisposeControl(macMbPtr->userPane); - macMbPtr->userPane = NULL; - } - if (macMbPtr->menuRef) { - short menuID = GetMenuID(macMbPtr->menuRef); - - TkMacOSXFreeMenuID(menuID); - DisposeMenu(macMbPtr->menuRef); - macMbPtr->menuRef = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpComputeMenuButtonGeometry -- - * - * After changes in a menu button's text or bitmap, this procedure - * recomputes the menu button's geometry and passes this information - * along to the geometry manager for the window. - * - * Results: - * None. - * - * Side effects: - * The menu button's window may change size. - * - *---------------------------------------------------------------------- - */ - -void -TkpComputeMenuButtonGeometry( - register TkMenuButton *mbPtr) /* Widget record for menu button. */ -{ - int width, height; - int hasImageOrBitmap = 0; - - mbPtr->inset = mbPtr->highlightWidth + mbPtr->borderWidth; - if (mbPtr->image != None) { - Tk_SizeOfImage(mbPtr->image, &width, &height); - hasImageOrBitmap = 1; - } else if (mbPtr->bitmap != None) { - Tk_SizeOfBitmap(mbPtr->display, mbPtr->bitmap, &width, &height); - hasImageOrBitmap = 1; - } else { - hasImageOrBitmap = 0; - Tk_FreeTextLayout(mbPtr->textLayout); - mbPtr->textLayout = Tk_ComputeTextLayout(mbPtr->tkfont, mbPtr->text, - -1, mbPtr->wrapLength, mbPtr->justify, 0, &mbPtr->textWidth, - &mbPtr->textHeight); - width = mbPtr->textWidth; - height = mbPtr->textHeight; - if (mbPtr->width > 0) { - width = mbPtr->width * Tk_TextWidth(mbPtr->tkfont, "0", 1); - } - if (mbPtr->height > 0) { - Tk_FontMetrics fm; - - Tk_GetFontMetrics(mbPtr->tkfont, &fm); - height = mbPtr->height * fm.linespace; - } - width += 2*mbPtr->padX; - height += 2*mbPtr->padY; - } - if (hasImageOrBitmap) { - if (mbPtr->width > 0) { - width = mbPtr->width; - } - if (mbPtr->height > 0) { - height = mbPtr->height; - } - mbPtr->inset = mbPtr->highlightWidth + 2; - width += (2 * mbPtr->borderWidth + 4); - height += (2 * mbPtr->borderWidth + 4); - } else { - width += TK_POPUP_OFFSET; - } - if (mbPtr->indicatorOn) { - mbPtr->indicatorHeight = kTriangleHeight; - mbPtr->indicatorWidth = kTriangleWidth + kTriangleMargin; - width += mbPtr->indicatorWidth; - } else { - mbPtr->indicatorHeight = 0; - mbPtr->indicatorWidth = 0; - } - - Tk_GeometryRequest(mbPtr->tkwin, (int) (width + 2*mbPtr->inset), - (int) (height + 2*mbPtr->inset)); - Tk_SetInternalBorder(mbPtr->tkwin, mbPtr->inset); -} - -/* - *---------------------------------------------------------------------- - * - * ComputeMenuButtonControlParams -- - * - * This procedure computes the various parameters used - * when creating a Carbon control (NewControl) - * These are determined by the various tk menu button parameters - * - * Results: - * None. - * - * Side effects: - * Sets the control initialisation parameters - * - *---------------------------------------------------------------------- - */ - -static void -ComputeMenuButtonControlParams( - TkMenuButton *mbPtr, - MenuButtonControlParams *paramsPtr) -{ - int fakeMenuID = 256; - - /* - * Determine ProcID based on button type and dimensions - * - * We need to set minValue to some non-zero value, - * Otherwise, the markers do not show up - */ - - paramsPtr->minValue = kControlBehaviorMultiValueMenu; - paramsPtr->maxValue = 0; - if (mbPtr->image || mbPtr->bitmap) { - paramsPtr->isBevel = 1; - if (mbPtr->borderWidth <= 2) { - paramsPtr->procID = kControlBevelButtonSmallBevelProc; - } else if (mbPtr->borderWidth == 3) { - paramsPtr->procID = kControlBevelButtonNormalBevelProc; - } else { - paramsPtr->procID = kControlBevelButtonLargeBevelProc; - } - if (mbPtr->indicatorOn) { - paramsPtr->initialValue = fakeMenuID; - } else { - paramsPtr->initialValue = 0; - } - } else { - paramsPtr->isBevel = 0; - paramsPtr->procID = kControlPopupButtonProc - + kControlPopupVariableWidthVariant; - paramsPtr->minValue = -12345; - paramsPtr->maxValue = -1; - paramsPtr->initialValue = 0; - } -} - -/* - *---------------------------------------------------------------------- - * - * returns 0 if same, 1 otherwise - * - *---------------------------------------------------------------------- - */ - -static void -CompareControlTitleParams( - ControlTitleParams *p1Ptr, - ControlTitleParams *p2Ptr, - int *titleChanged, - int *styleChanged) -{ - if (p1Ptr->len != p2Ptr->len) { - *titleChanged = 1; - } else if (bcmp(p1Ptr->title,p2Ptr->title,p1Ptr->len)) { - *titleChanged = 1; - } else { - *titleChanged = 0; - } - - if (p1Ptr->len && p2Ptr->len) { - *styleChanged = bcmp(&p1Ptr->style, &p2Ptr->style, - sizeof(p2Ptr->style)); - } else { - *styleChanged = p1Ptr->len||p2Ptr->len; - } -} - -static void -ComputeControlTitleParams( - TkMenuButton *butPtr, - ControlTitleParams *paramsPtr) -{ - Tk_Font font; - - paramsPtr->len = TkFontGetFirstTextLayout(butPtr->textLayout, &font, - (char*) paramsPtr->title); - paramsPtr->title[paramsPtr->len] = 0; - if (paramsPtr->len) { - TkMacOSXInitControlFontStyle(font,¶msPtr->style); - } -} - -/* - *---------------------------------------------------------------------- - * - * MenuButtonInitControl -- - * - * This procedure initialises a Carbon control - * - * Results: - * 0 on success, 1 on failure. - * - * Side effects: - * A background pane control and the control itself is created - * The contol is embedded in the background control - * The background control is embedded in the root control - * of the containing window - * The creation parameters for the control are also computed - * - *---------------------------------------------------------------------- - */ -int -MenuButtonInitControl( - MacMenuButton *mbPtr, /* Mac button. */ - Rect *paneRect, - Rect *cntrRect) -{ - OSStatus err; - TkMenuButton *butPtr = (TkMenuButton *) mbPtr; - SInt16 procID, initialValue, minValue, maxValue; - Boolean initiallyVisible; - SInt32 controlReference; - short menuID; - ControlRef rootControl = - TkMacOSXGetRootControl(Tk_WindowId(butPtr->tkwin)); - - mbPtr->windowRef = TkMacOSXDrawableWindow(Tk_WindowId(butPtr->tkwin)); - - /* - * Set up the user pane - */ - - initiallyVisible = false; - initialValue = kControlSupportsEmbedding | kControlHasSpecialBackground; - minValue = 0; - maxValue = 1; - procID = kControlUserPaneProc; - controlReference = (SInt32)mbPtr; - mbPtr->userPane = NewControl(mbPtr->windowRef, paneRect, "\p", - initiallyVisible, initialValue, minValue, maxValue, procID, - controlReference); - if (!mbPtr->userPane) { - TkMacOSXDbgMsg("Failed to create user pane control"); - return 1; - } - err = ChkErr(EmbedControl, mbPtr->userPane, rootControl); - if (err != noErr) { - return 1; - } - SetUserPaneSetUpSpecialBackgroundProc(mbPtr->userPane, - UserPaneBackgroundProc); - SetUserPaneDrawProc(mbPtr->userPane,UserPaneDraw); - initiallyVisible = false; - ComputeMenuButtonControlParams(butPtr,&mbPtr->params); - - /* - * Do this only if we are using bevel buttons. - */ - - ComputeControlTitleParams(butPtr, &mbPtr->titleParams); - mbPtr->control = NewControl(mbPtr->windowRef, - cntrRect, "\p" /* mbPtr->titleParams.title */, - initiallyVisible, mbPtr->params.initialValue, - mbPtr->params.minValue, mbPtr->params.maxValue, - mbPtr->params.procID, controlReference); - if (!mbPtr->control) { - TkMacOSXDbgMsg("Failed to create control of type %d", - mbPtr->params.procID); - return 1; - } - err = ChkErr(EmbedControl, mbPtr->control, mbPtr->userPane); - if (err != noErr ) { - return 1; - } - if (mbPtr->params.isBevel) { - CFStringRef cf = CFStringCreateWithCString(NULL, - (char*) mbPtr->titleParams.title, kCFStringEncodingUTF8); - - SetControlTitleWithCFString(mbPtr->control, cf); - CFRelease(cf); - if (mbPtr->titleParams.len) { - err = ChkErr(SetControlFontStyle, mbPtr->control, - &mbPtr->titleParams.style); - if (err != noErr) { - return 1; - } - } - } else { - CFStringRef cfStr; - - err = TkMacOSXGetNewMenuID(mbPtr->info.interp, (TkMenu *) mbPtr, 0, - &menuID); - if (err != TCL_OK) { - return 1; - } - err = ChkErr(CreateNewMenu, menuID, kMenuAttrDoNotUseUserCommandKeys, - &(mbPtr->menuRef)); - if (err != noErr) { - return 1; - } - cfStr = CFStringCreateWithCString(NULL, Tk_PathName(mbPtr->info.tkwin), - kCFStringEncodingUTF8); - if (!cfStr) { - TkMacOSXDbgMsg("CFStringCreateWithCString failed"); - return 1; - } - err = ChkErr(SetMenuTitleWithCFString, mbPtr->menuRef, cfStr); - CFRelease(cfStr); - if (err != noErr) { - return 1; - } - cfStr = CFStringCreateWithCString(NULL, - (char*) mbPtr->titleParams.title, kCFStringEncodingUTF8); - AppendMenuItemText(mbPtr->menuRef, "\px"); - if (cfStr) { - SetMenuItemTextWithCFString(mbPtr->menuRef, 1, cfStr); - CFRelease(cfStr); - } - ChkErr(SetControlData, mbPtr->control, kControlNoPart, - kControlPopupButtonMenuRefTag, sizeof(mbPtr->menuRef), - &mbPtr->menuRef); - SetControlMinimum(mbPtr->control, 1); - SetControlMaximum(mbPtr->control, 1); - SetControlValue(mbPtr->control, 1); - } - mbPtr->flags |= FIRST_DRAW; - if (IsWindowActive(mbPtr->windowRef)) { - mbPtr->flags |= ACTIVE; - } - return 0; -} - -/* - *-------------------------------------------------------------- - * - * SetUserPane - * - * Utility function to add a UserPaneDrawProc - * to a userPane control. From MoreControls code - * from Apple DTS. - * - * Results: - * MacOS system error. - * - * Side effects: - * The user pane gets a new UserPaneDrawProc. - * - *-------------------------------------------------------------- - */ -OSStatus -SetUserPaneDrawProc( - ControlRef control, - ControlUserPaneDrawProcPtr upp) -{ - ControlUserPaneDrawUPP myControlUserPaneDrawUPP = - NewControlUserPaneDrawUPP(upp); - - return SetControlData(control, kControlNoPart,kControlUserPaneDrawProcTag, - sizeof(myControlUserPaneDrawUPP), (Ptr)&myControlUserPaneDrawUPP); -} - -/* - *-------------------------------------------------------------- - * - * SetUserPaneSetUpSpecialBackgroundProc -- - * - * Utility function to add a UserPaneBackgroundProc - * to a userPane control - * - * Results: - * MacOS system error. - * - * Side effects: - * The user pane gets a new UserPaneBackgroundProc. - * - *-------------------------------------------------------------- - */ - -OSStatus -SetUserPaneSetUpSpecialBackgroundProc( - ControlRef control, - ControlUserPaneBackgroundProcPtr upp) -{ - ControlUserPaneBackgroundUPP myControlUserPaneBackgroundUPP = - NewControlUserPaneBackgroundUPP(upp); - - return SetControlData(control, kControlNoPart, - kControlUserPaneBackgroundProcTag, - sizeof(myControlUserPaneBackgroundUPP), - (Ptr) &myControlUserPaneBackgroundUPP); -} - -/* - *-------------------------------------------------------------- - * - * UserPaneDraw -- - * - * This function draws the background of the user pane that will - * lie under checkboxes and radiobuttons. - * - * Results: - * None. - * - * Side effects: - * The user pane gets updated to the current color. - * - *-------------------------------------------------------------- - */ - -void -UserPaneDraw( - ControlRef control, - ControlPartCode cpc) -{ - Rect contrlRect; - MacMenuButton * mbPtr = - (MacMenuButton *)(intptr_t)GetControlReference(control); - CGrafPtr port; - - GetPort(&port); - GetControlBounds(control,&contrlRect); - TkMacOSXSetColorInPort(mbPtr->userPaneBackground, 0, NULL, port); - EraseRect (&contrlRect); -} - -/* - *-------------------------------------------------------------- - * - * UserPaneBackgroundProc -- - * - * This function sets up the background of the user pane that will - * lie under checkboxes and radiobuttons. - * - * Results: - * None. - * - * Side effects: - * The user pane background gets set to the current color. - * - *-------------------------------------------------------------- - */ - -void -UserPaneBackgroundProc( - ControlHandle control, - ControlBackgroundPtr info) -{ - MacMenuButton *mbPtr = - (MacMenuButton *)(intptr_t)GetControlReference(control); - - if (info->colorDevice) { - CGrafPtr port; - - GetPort(&port); - TkMacOSXSetColorInPort(mbPtr->userPaneBackground, 0, NULL, port); - } -} - -/* - *-------------------------------------------------------------- - * - * UpdateControlColors -- - * - * This function will review the colors used to display - * a Macintosh button. If any non-standard colors are - * used we create a custom palette for the button, populate - * with the colors for the button and install the palette. - * - * Under Appearance, we just set the pointer that will be - * used by the UserPaneDrawProc. - * - * Results: - * None. - * - * Side effects: - * The Macintosh control may get a custom palette installed. - * - *-------------------------------------------------------------- - */ - -static int -UpdateControlColors( - MacMenuButton *mbPtr) -{ - XColor *xcolor; - TkMenuButton * butPtr = (TkMenuButton *) mbPtr; - - /* - * Under Appearance we cannot change the background of the - * button itself. However, the color we are setting is the color - * of the containing userPane. This will be the color that peeks - * around the rounded corners of the button. - * We make this the highlightbackground rather than the background, - * because if you color the background of a frame containing a - * button, you usually also color the highlightbackground as well, - * or you will get a thin grey ring around the button. - */ - - xcolor = Tk_3DBorderColor(butPtr->normalBorder); - mbPtr->userPaneBackground = xcolor->pixel; - - return false; -} - -/* - *-------------------------------------------------------------- - * - * MenuButtonEventProc -- - * - * This procedure is invoked by the Tk dispatcher for various - * events on buttons. - * - * Results: - * None. - * - * Side effects: - * When it gets exposed, it is redisplayed. - * - *-------------------------------------------------------------- - */ - -static void -MenuButtonEventProc( - ClientData clientData, /* Information about window. */ - XEvent *eventPtr) /* Information about event. */ -{ - TkMenuButton *buttonPtr = (TkMenuButton *) clientData; - MacMenuButton *mbPtr = (MacMenuButton *) clientData; - - if (eventPtr->type == ActivateNotify - || eventPtr->type == DeactivateNotify) { - if ((buttonPtr->tkwin == NULL) || !Tk_IsMapped(buttonPtr->tkwin)) { - return; - } - if (eventPtr->type == ActivateNotify) { - mbPtr->flags |= ACTIVE; - } else { - mbPtr->flags &= ~ACTIVE; - } - if (!(buttonPtr->flags & REDRAW_PENDING)) { - Tcl_DoWhenIdle(TkpDisplayMenuButton, buttonPtr); - buttonPtr->flags |= REDRAW_PENDING; - } - } -} diff --git a/carbon/tkMacOSXMenus.c b/carbon/tkMacOSXMenus.c deleted file mode 100644 index 8509f8c..0000000 --- a/carbon/tkMacOSXMenus.c +++ /dev/null @@ -1,406 +0,0 @@ -/* - * tkMacOSXMenus.c -- - * - * These calls set up and manage the menubar for the Macintosh version of - * Tk. - * - * Copyright (c) 1995-1996 Sun Microsystems, Inc. - * Copyright (c) 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" - -#define kAppleMenu 256 -#define kAppleAboutItem 1 -#define kFileMenu 2 -#define kEditMenu 3 - -#define kSourceItem 1 -#define kDemoItem 2 -#define kCloseItem 3 - -#define EDIT_CUT 1 -#define EDIT_COPY 2 -#define EDIT_PASTE 3 -#define EDIT_CLEAR 4 - -MenuRef tkAppleMenu; -MenuRef tkFileMenu; -MenuRef tkEditMenu; - -static Tcl_Interp *gInterp = NULL; /* Standard menu interpreter. */ -static EventHandlerRef menuEventHandlerRef = NULL; - -static void GenerateEditEvent(int flag); -static Tcl_Obj * GetWidgetDemoPath(Tcl_Interp *interp); -static OSStatus MenuEventHandlerProc(EventHandlerCallRef callRef, - EventRef event, void *userData); - -/* - *---------------------------------------------------------------------- - * - * GetWidgetDemoPath -- - * - * Get path to the widget demo. - * - * Results: - * pathObj with ref count 0. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static Tcl_Obj * -GetWidgetDemoPath( - Tcl_Interp *interp) -{ - Tcl_Obj *libpath, *result = NULL; - - libpath = Tcl_GetVar2Ex(gInterp, "tk_library", NULL, TCL_GLOBAL_ONLY); - if (libpath) { - Tcl_Obj *demo[2] = { Tcl_NewStringObj("demos", 5), - Tcl_NewStringObj("widget", 6) }; - - Tcl_IncrRefCount(libpath); - result = Tcl_FSJoinToPath(libpath, 2, demo); - Tcl_DecrRefCount(libpath); - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXHandleMenuSelect -- - * - * Handles events that occur in the Menu bar. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXHandleMenuSelect( - MenuID theMenu, - MenuItemIndex theItem, - int optionKeyPressed) -{ - Tk_Window tkwin; - Window window; - TkDisplay *dispPtr; - Tcl_CmdInfo dummy; - int code; - - if (theItem == 0) { - TkMacOSXClearMenubarActive(); - return; - } - - switch (theMenu) { - case kAppleMenu: - switch (theItem) { - case kAppleAboutItem: - if (optionKeyPressed || gInterp == NULL || - Tcl_GetCommandInfo(gInterp, "tkAboutDialog", &dummy) == 0) { - TkAboutDlg(); - } else { - code = Tcl_EvalEx(gInterp, "tkAboutDialog", -1, - TCL_EVAL_GLOBAL); - if (code != TCL_OK) { - Tcl_BackgroundException(gInterp, code); - } - Tcl_ResetResult(gInterp); - } - break; - } - break; - case kFileMenu: - switch (theItem) { - case kSourceItem: - if (gInterp) { - if (Tcl_EvalEx(gInterp, "tk_getOpenFile -filetypes {" - "{{TCL Scripts} {.tcl} TEXT} {{Text Files} {} TEXT}}", - -1, TCL_EVAL_GLOBAL) == TCL_OK) { - Tcl_Obj *path = Tcl_GetObjResult(gInterp); - int len; - - Tcl_GetStringFromObj(path, &len); - if (len) { - Tcl_IncrRefCount(path); - code = Tcl_FSEvalFile(gInterp, path); - if (code != TCL_OK) { - Tcl_BackgroundException(gInterp, code); - } - Tcl_DecrRefCount(path); - } - } - Tcl_ResetResult(gInterp); - } - break; - case kDemoItem: - if (gInterp) { - Tcl_Obj *path = GetWidgetDemoPath(gInterp); - - if (path) { - Tcl_IncrRefCount(path); - code = Tcl_FSEvalFile(gInterp, path); - if (code != TCL_OK) { - Tcl_BackgroundException(gInterp, code); - } - Tcl_DecrRefCount(path); - Tcl_ResetResult(gInterp); - } - } - break; - case kCloseItem: - /* Send close event */ - window = TkMacOSXGetXWindow(ActiveNonFloatingWindow()); - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, window); - TkGenWMDestroyEvent(tkwin); - break; - } - break; - case kEditMenu: - /* - * This implementation just send the keysyms Tk thinks are associated - * with function keys that do Cut, Copy & Paste on a Sun keyboard. - */ - - GenerateEditEvent(theItem); - break; - default: - TkMacOSXDispatchMenuEvent(theMenu, theItem); - break; - } - - /* - * Finally we unhighlight the menu. - */ - - HiliteMenu(0); -} - -/* - *---------------------------------------------------------------------- - * - * MenuEventHandlerProc -- - * - * One-time handler of kEventMenuEnableItems for the edit menu. - * - * Results: - * OS status code. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static OSStatus -MenuEventHandlerProc( - EventHandlerCallRef callRef, - EventRef event, - void *userData) -{ - OSStatus result = eventNotHandledErr, err; - int menuContext; - - err = ChkErr(GetEventParameter, event, kEventParamMenuContext, typeUInt32, - NULL, sizeof(menuContext), NULL, &menuContext); - if (err == noErr && (menuContext & kMenuContextMenuBarTracking)) { - if (gInterp) { - Tcl_Obj *path = GetWidgetDemoPath(gInterp); - - if (path) { - Tcl_IncrRefCount(path); - if (Tcl_FSAccess(path, R_OK) == 0) { - EnableMenuItem(tkFileMenu, kDemoItem); - } - Tcl_DecrRefCount(path); - } - } - ChkErr(RemoveEventHandler, menuEventHandlerRef); - menuEventHandlerRef = NULL; - result = noErr; - } - - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitMenus -- - * - * This procedure initializes the Macintosh menu bar. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInitMenus( - Tcl_Interp *interp) -{ - OSStatus err; - EventHandlerUPP menuEventHandlerUPP; - const EventTypeSpec menuEventTypes[] = { - {kEventClassMenu, kEventMenuEnableItems}, - }; - - gInterp = interp; - if (TkMacOSXUseMenuID(kAppleMenu) != TCL_OK) { - Tcl_Panic("Menu ID %d is already in use!", kAppleMenu); - } - err = ChkErr(CreateNewMenu, kAppleMenu, kMenuAttrDoNotUseUserCommandKeys, - &tkAppleMenu); - if (err != noErr) { - Tcl_Panic("CreateNewMenu failed !"); - } - SetMenuTitle(tkAppleMenu, "\p\024"); - InsertMenu(tkAppleMenu, 0); - AppendMenu(tkAppleMenu, "\pAbout Tcl & Tk\xc9"); - AppendMenu(tkAppleMenu, "\p(-"); - - if (TkMacOSXUseMenuID(kFileMenu) != TCL_OK) { - Tcl_Panic("Menu ID %d is already in use!", kFileMenu); - } - err = ChkErr(CreateNewMenu, kFileMenu, kMenuAttrDoNotUseUserCommandKeys, - &tkFileMenu); - if (err != noErr) { - Tcl_Panic("CreateNewMenu failed !"); - } - SetMenuTitle(tkFileMenu, "\pFile"); - InsertMenu(tkFileMenu, 0); - InsertMenuItem(tkFileMenu, "\pSource\xc9", kSourceItem - 1); - InsertMenuItem(tkFileMenu, "\pRun Widget Demo", kDemoItem - 1); - InsertMenuItem(tkFileMenu, "\pClose/W", kCloseItem - 1); - DisableMenuItem(tkFileMenu, kDemoItem); - menuEventHandlerUPP = NewEventHandlerUPP(MenuEventHandlerProc); - ChkErr(InstallEventHandler, GetMenuEventTarget(tkFileMenu), - menuEventHandlerUPP, GetEventTypeCount(menuEventTypes), - menuEventTypes, NULL, &menuEventHandlerRef); - DisposeEventHandlerUPP(menuEventHandlerUPP); - - if (TkMacOSXUseMenuID(kEditMenu) != TCL_OK) { - Tcl_Panic("Menu ID %d is already in use!", kEditMenu); - } - err = ChkErr(CreateNewMenu, kEditMenu, kMenuAttrDoNotUseUserCommandKeys, - &tkEditMenu); - if (err != noErr) { - Tcl_Panic("CreateNewMenu failed !"); - } - SetMenuTitle(tkEditMenu, "\pEdit"); - InsertMenu(tkEditMenu, 0); - AppendMenu(tkEditMenu, "\pCut/X"); - AppendMenu(tkEditMenu, "\pCopy/C"); - AppendMenu(tkEditMenu, "\pPaste/V"); - AppendMenu(tkEditMenu, "\pClear"); - if (TkMacOSXUseMenuID(kHMHelpMenuID) != TCL_OK) { - Tcl_Panic("Help menu ID %s is already in use!", kHMHelpMenuID); - } - - /* - * Workaround a Carbon bug with kHICommandPreferences: the first call to - * IsMenuKeyEvent returns false for the preferences menu item key shorcut - * event (even if the corresponding menu item is dynamically enabled by a - * kEventCommandUpdateStatus handler), unless the kHICommandPreferences - * menu item has previously been enabled manually. [Bug 1481503] - */ - - EnableMenuCommand(NULL, kHICommandPreferences); - - DrawMenuBar(); - return; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateEditEvent -- - * - * Takes an edit menu item and posts the corasponding a virtual event to - * Tk's event queue. - * - * Results: - * None. - * - * Side effects: - * May place events of queue. - * - *---------------------------------------------------------------------- - */ - -static void -GenerateEditEvent( - int flag) -{ - XVirtualEvent event; - int x, y; - Tk_Window tkwin; - Window window; - TkDisplay *dispPtr; - - window = TkMacOSXGetXWindow(ActiveNonFloatingWindow()); - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, window); - tkwin = (Tk_Window) ((TkWindow *) tkwin)->dispPtr->focusPtr; - if (tkwin == NULL) { - return; - } - - bzero(&event, sizeof(XVirtualEvent)); - event.type = VirtualEvent; - event.serial = Tk_Display(tkwin)->request; - event.send_event = false; - event.display = Tk_Display(tkwin); - event.event = Tk_WindowId(tkwin); - event.root = XRootWindow(Tk_Display(tkwin), 0); - event.subwindow = None; - event.time = TkpGetMS(); - - XQueryPointer(NULL, None, NULL, NULL, - &event.x_root, &event.y_root, &x, &y, &event.state); - Tk_TopCoordsToWindow(tkwin, x, y, &event.x, &event.y); - event.same_screen = true; - - switch (flag) { - case EDIT_CUT: - event.name = Tk_GetUid("Cut"); - break; - case EDIT_COPY: - event.name = Tk_GetUid("Copy"); - break; - case EDIT_PASTE: - event.name = Tk_GetUid("Paste"); - break; - case EDIT_CLEAR: - event.name = Tk_GetUid("Clear"); - break; - } - Tk_QueueWindowEvent((XEvent *) &event, TCL_QUEUE_TAIL); -} - -/* - * Local Variables: - * fill-column: 78 - * c-basic-offset: 4 - * End: - */ diff --git a/carbon/tkMacOSXMouseEvent.c b/carbon/tkMacOSXMouseEvent.c deleted file mode 100644 index 697e00d..0000000 --- a/carbon/tkMacOSXMouseEvent.c +++ /dev/null @@ -1,1190 +0,0 @@ -/* - * tkMacOSXMouseEvent.c -- - * - * This file implements functions that decode & handle mouse events on - * MacOS X. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software unless - * explicitly disclaimed in individual files. - * - * Apple hereby grants permission to use, copy, modify, distribute, and - * license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that - * this notice is included verbatim in any distributions. No written - * agreement, license, or royalty fee is required for any of the - * authorized uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms described here, - * provided that the new terms are clearly indicated on the first page of - * each file where they apply. - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE SOFTWARE - * BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS - * DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF APPLE OR THE - * AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. APPLE, - * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND - * NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND - * APPLE,THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf of the - * U.S. government, the Government shall have only "Restricted Rights" in - * the software and related documentation as defined in the Federal - * Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are - * acquiring the software on behalf of the Department of Defense, the - * software shall be classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in Clause - * 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the - * authors grant the U.S. Government and others acting in its behalf - * permission to use and distribute the software in accordance with the - * terms specified in this license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -typedef struct { - WindowRef whichWin; - WindowRef activeNonFloating; - WindowPartCode windowPart; - unsigned int state; - long delta; - Window window; - Point global; - Point local; -} MouseEventData; - -/* - * Declarations of static variables used in this file. - */ - -static int gEatButtonUp = 0; /* 1 if we need to eat the next up event. */ - -/* - * Declarations of functions used only in this file. - */ - -static void BringWindowForward(WindowRef wRef, int isFrontProcess, - int frontWindowOnly); -static int GeneratePollingEvents(MouseEventData *medPtr); -static int GenerateMouseWheelEvent(MouseEventData *medPtr); -static int GenerateButtonEvent(MouseEventData *medPtr); -static int GenerateToolbarButtonEvent(MouseEventData *medPtr); -static int HandleWindowTitlebarMouseDown(MouseEventData *medPtr, - Tk_Window tkwin); -static unsigned int ButtonModifiers2State(UInt32 buttonState, - UInt32 keyModifiers); -static Tk_Window GetGrabWindowForWindow(Tk_Window tkwin); -static int TkMacOSXGetEatButtonUp(void); -static void TkMacOSXSetEatButtonUp(int f); - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessMouseEvent -- - * - * This routine processes the event in eventPtr, and generates the - * appropriate Tk events from it. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessMouseEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - Tk_Window tkwin; - Point where, where2; - int result; - TkDisplay *dispPtr; - OSStatus err; - MouseEventData mouseEventData, *medPtr = &mouseEventData; - int isFrontProcess; - - switch (eventPtr->eKind) { - case kEventMouseDown: - case kEventMouseUp: - case kEventMouseMoved: - case kEventMouseDragged: - case kEventMouseWheelMoved: - break; - default: - return false; - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMouseLocation, typeQDPoint, NULL, sizeof(where), NULL, - &where); - if (err != noErr) { - GetGlobalMouse(&where); - } - - err = ChkErr(GetEventParameter, eventPtr->eventRef, kEventParamWindowRef, - typeWindowRef, NULL, sizeof(WindowRef), NULL, &medPtr->whichWin); - if (err == noErr) { - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamWindowPartCode, typeWindowPartCode, NULL, - sizeof(WindowPartCode), NULL, &medPtr->windowPart); - } - if (err != noErr) { - medPtr->windowPart = FindWindow(where, &medPtr->whichWin); - } - medPtr->window = TkMacOSXGetXWindow(medPtr->whichWin); - if (medPtr->whichWin != NULL && medPtr->window == None) { - return false; - } - if (eventPtr->eKind == kEventMouseDown) { - if (IsWindowActive(medPtr->whichWin) && IsWindowPathSelectEvent( - medPtr->whichWin, eventPtr->eventRef)) { - ChkErr(WindowPathSelect, medPtr->whichWin, NULL, NULL); - return false; - } - if (medPtr->windowPart == inProxyIcon) { - TkMacOSXTrackingLoop(1); - err = ChkErr(TrackWindowProxyDrag, medPtr->whichWin, where); - TkMacOSXTrackingLoop(0); - if (err == errUserWantsToDragWindow) { - medPtr->windowPart = inDrag; - } else { - return false; - } - } - } - isFrontProcess = Tk_MacOSXIsAppInFront(); - if (isFrontProcess) { - medPtr->state = ButtonModifiers2State(GetCurrentEventButtonState(), - GetCurrentEventKeyModifiers()); - } else { - medPtr->state = ButtonModifiers2State(GetCurrentButtonState(), - GetCurrentKeyModifiers()); - } - medPtr->global = where; - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamWindowMouseLocation, typeQDPoint, NULL, - sizeof(Point), NULL, &medPtr->local); - if (err == noErr) { - if (medPtr->whichWin) { - Rect widths; - - GetWindowStructureWidths(medPtr->whichWin, &widths); - medPtr->local.h -= widths.left; - medPtr->local.v -= widths.top; - } - } else { - medPtr->local = where; - if (medPtr->whichWin) { - QDGlobalToLocalPoint(GetWindowPort(medPtr->whichWin), - &medPtr->local); - } - } - medPtr->activeNonFloating = ActiveNonFloatingWindow(); - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, medPtr->window); - - if (eventPtr->eKind != kEventMouseDown) { - int res = false; - - switch (eventPtr->eKind) { - case kEventMouseUp: - /* - * The window manager only needs to know about mouse down events - * and sometimes we need to "eat" the mouse up. Otherwise, we just - * pass the event to Tk. - */ - - if (TkMacOSXGetEatButtonUp()) { - TkMacOSXSetEatButtonUp(false); - } else { - res = GenerateButtonEvent(medPtr); - } - break; - case kEventMouseWheelMoved: - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMouseWheelDelta, typeLongInteger, NULL, - sizeof(long), NULL, &medPtr->delta); - if (err != noErr ) { - statusPtr->err = 1; - } else { - EventMouseWheelAxis axis; - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamMouseWheelAxis, typeMouseWheelAxis, NULL, - sizeof(EventMouseWheelAxis), NULL, &axis); - if (err == noErr && axis == kEventMouseWheelAxisX) { - medPtr->state |= ShiftMask; - } - res = GenerateMouseWheelEvent(medPtr); - } - break; - case kEventMouseMoved: - case kEventMouseDragged: - res = GeneratePollingEvents(medPtr); - break; - default: - Tcl_Panic("Unknown mouse event !"); - } - if (res) { - statusPtr->stopProcessing = 1; - } - return res; - } - - TkMacOSXSetEatButtonUp(false); - if (!medPtr->whichWin) { - return false; - } - - /* - * We got a mouse down in a window, so see if this is the activate click. - * This click moves the window forward. We don't want the corresponding - * mouse-up to be reported to the application or else it will mess up some - * Tk scripts. - */ - - if (!(TkpIsWindowFloating(medPtr->whichWin)) - && (medPtr->whichWin != medPtr->activeNonFloating - || !isFrontProcess)) { - int frontWindowOnly = 1; - int cmdDragGrow = ((medPtr->windowPart == inDrag || - medPtr->windowPart == inGrow) && medPtr->state & Mod1Mask); - - if (!cmdDragGrow) { - Tk_Window grabWin = GetGrabWindowForWindow(tkwin); - - frontWindowOnly = !grabWin; - if (grabWin && grabWin != tkwin) { - TkMacOSXSetEatButtonUp(true); - BringWindowForward(TkMacOSXDrawableWindow( - ((TkWindow *) grabWin)->window), isFrontProcess, - frontWindowOnly); - return false; - } - } - - /* - * Clicks in the titlebar widgets are handled without bringing the - * window forward. - */ - - result = HandleWindowTitlebarMouseDown(medPtr, tkwin); - if (result != -1) { - statusPtr->stopProcessing = 1; - return result; - } - - /* - * Only windows with the kWindowNoActivatesAttribute can receive mouse - * events in the background. - */ - - if (!(((TkWindow *)tkwin)->wmInfoPtr->attributes & - kWindowNoActivatesAttribute)) { - /* - * Allow background window dragging & growing with Command down. - */ - - if (!cmdDragGrow) { - TkMacOSXSetEatButtonUp(true); - BringWindowForward(medPtr->whichWin, isFrontProcess, - frontWindowOnly); - } - - /* - * Allow dragging & growing of windows that were/are in the - * background. - */ - - if (!(medPtr->windowPart == inDrag || - medPtr->windowPart == inGrow)) { - return false; - } - } - } else { - result = HandleWindowTitlebarMouseDown(medPtr, tkwin); - if (result != -1) { - statusPtr->stopProcessing = 1; - return result; - } - } - - switch (medPtr->windowPart) { - case inDrag: { - WindowAttributes attributes; - - GetWindowAttributes(medPtr->whichWin, &attributes); - if (!(attributes & kWindowAsyncDragAttribute)) { - TkMacOSXTrackingLoop(1); - DragWindow(medPtr->whichWin, where, NULL); - TkMacOSXTrackingLoop(0); - where2.h = where2.v = 0; - QDLocalToGlobalPoint(GetWindowPort(medPtr->whichWin), &where2); - return (EqualPt(where, where2)) ? false : true; - } - break; - } - case inGrow: { - /* - * Generally the content region is the domain of Tk sub-windows. - * However, one exception is the grow region. A button down in this - * area will be handled by the window manager. Note: this means that - * Tk may not get button down events in this area! - */ - - XPoint p = {where.h, where.v}; - if (TkMacOSXGrowToplevel(medPtr->whichWin, p) == true) { - statusPtr->stopProcessing = 1; - return true; - } - } - case inContent: - return GenerateButtonEvent(medPtr); - } - return false; -} - -/* - *---------------------------------------------------------------------- - * - * HandleWindowTitlebarMouseDown -- - * - * Handle clicks in window titlebar. - * - * Results: - * 1 if event was handled, 0 if event was not handled, -1 if MouseDown - * was not in window titlebar. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -int -HandleWindowTitlebarMouseDown( - MouseEventData *medPtr, - Tk_Window tkwin) -{ - int result = INT_MAX; - - switch (medPtr->windowPart) { - case inGoAway: - case inCollapseBox: - case inZoomIn: - case inZoomOut: - case inToolbarButton: - if (!IsWindowActive(medPtr->whichWin)) { - WindowRef frontWindow = FrontNonFloatingWindow(); - WindowModality frontWindowModality = kWindowModalityNone; - - if (frontWindow && frontWindow != medPtr->whichWin) { - ChkErr(GetWindowModality, frontWindow, - &frontWindowModality, NULL); - } - if (frontWindowModality == kWindowModalityAppModal) { - result = 0; - } - } - break; - default: - result = -1; - break; - } - - if (result == INT_MAX) { - result = 0; - TkMacOSXTrackingLoop(1); - switch (medPtr->windowPart) { - case inGoAway: - if (TrackGoAway(medPtr->whichWin, medPtr->global) && tkwin) { - TkGenWMDestroyEvent(tkwin); - result = 1; - } - break; - case inCollapseBox: - if (TrackBox(medPtr->whichWin, medPtr->global, - medPtr->windowPart) && tkwin) { - TkpWmSetState((TkWindow *) tkwin, IconicState); - result = 1; - } - break; - case inZoomIn: - case inZoomOut: - if (TrackBox(medPtr->whichWin, medPtr->global, - medPtr->windowPart)) { - result = TkMacOSXZoomToplevel(medPtr->whichWin, - medPtr->windowPart); - } - break; - case inToolbarButton: - if (TrackBox(medPtr->whichWin, medPtr->global, - medPtr->windowPart)) { - result = GenerateToolbarButtonEvent(medPtr); - } - break; - } - TkMacOSXTrackingLoop(0); - } - - return result; -} - -/* - *---------------------------------------------------------------------- - * - * GeneratePollingEvents -- - * - * This function polls the mouse position and generates X Motion, Enter & - * Leave events. The cursor is also updated at this time. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. The cursor may - * be changed. - * - *---------------------------------------------------------------------- - */ - -static int -GeneratePollingEvents( - MouseEventData *medPtr) -{ - Tk_Window tkwin, rootwin, grabWin; - int local_x, local_y; - TkDisplay *dispPtr; - - grabWin = TkMacOSXGetCapture(); - - if ((!TkpIsWindowFloating(medPtr->whichWin) - && (medPtr->activeNonFloating != medPtr->whichWin))) { - /* - * If the window for this event is not floating, and is not the active - * non-floating window, don't generate polling events. We don't send - * events to backgrounded windows. So either send it to the grabWin, - * or NULL if there is no grabWin. - */ - - tkwin = grabWin; - } else { - /* - * First check whether the toplevel containing this mouse event is the - * grab window. If not, then send the event to the grab window. - * Otherwise, set tkWin to the subwindow which most closely contains - * the mouse event. - */ - - dispPtr = TkGetDisplayList(); - rootwin = Tk_IdToWindow(dispPtr->display, medPtr->window); - if ((rootwin == NULL) - || ((grabWin != NULL) && (rootwin != grabWin))) { - tkwin = grabWin; - } else { - tkwin = Tk_TopCoordsToWindow(rootwin, medPtr->local.h, - medPtr->local.v, &local_x, &local_y); - } - } - - /* - * The following call will generate the appropiate X events and adjust any - * state that Tk must remember. - */ - - Tk_UpdatePointer(tkwin, medPtr->global.h, medPtr->global.v, - medPtr->state); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * BringWindowForward -- - * - * Bring this background window to the front. - * - * Results: - * None. - * - * Side effects: - * The window is brought forward. - * - *---------------------------------------------------------------------- - */ - -static void -BringWindowForward( - WindowRef wRef, - int isFrontProcess, - int frontWindowOnly) -{ - if (wRef && !TkpIsWindowFloating(wRef) && IsValidWindowPtr(wRef)) { - WindowRef frontWindow = FrontNonFloatingWindow(); - WindowModality frontWindowModality = kWindowModalityNone; - - if (frontWindow && frontWindow != wRef) { - ChkErr(GetWindowModality, frontWindow, &frontWindowModality, NULL); - } - if (frontWindowModality != kWindowModalityAppModal) { - Window window = TkMacOSXGetXWindow(wRef); - - if (window != None) { - TkDisplay *dispPtr = TkGetDisplayList(); - TkWindow *winPtr = (TkWindow *) - Tk_IdToWindow(dispPtr->display, window); - - if (winPtr && winPtr->wmInfoPtr && - winPtr->wmInfoPtr->master != None) { - TkWindow *masterWinPtr = (TkWindow *)Tk_IdToWindow( - dispPtr->display, winPtr->wmInfoPtr->master); - - if (masterWinPtr && masterWinPtr->window != None && - TkMacOSXHostToplevelExists(masterWinPtr)) { - WindowRef masterMacWin = - TkMacOSXDrawableWindow(masterWinPtr->window); - - if (masterMacWin) { - BringToFront(masterMacWin); - } - } - } - } - SelectWindow(wRef); - } else { - frontWindowOnly = 0; - } - } - if (!isFrontProcess) { - ProcessSerialNumber ourPsn = {0, kCurrentProcess}; - - ChkErr(SetFrontProcessWithOptions, &ourPsn, - frontWindowOnly ? kSetFrontProcessFrontWindowOnly : 0); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXBringWindowForward -- - * - * Bring this window to the front in response to a mouse click. If a grab - * is in effect, bring the grab window to the front instead. - * - * Results: - * None. - * - * Side effects: - * The window is brought forward. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXBringWindowForward( - WindowRef wRef) -{ - TkDisplay *dispPtr = TkGetDisplayList(); - Tk_Window tkwin = - Tk_IdToWindow(dispPtr->display, TkMacOSXGetXWindow(wRef)); - Tk_Window grabWin = GetGrabWindowForWindow(tkwin); - - if (grabWin && grabWin != tkwin) { - wRef = TkMacOSXDrawableWindow(((TkWindow *) grabWin)->window); - } - TkMacOSXSetEatButtonUp(true); - BringWindowForward(wRef, Tk_MacOSXIsAppInFront(), !grabWin); -} - -/* - *---------------------------------------------------------------------- - * - * GetGrabWindowForWindow -- - * - * Get the grab window for the given window, if any. - * - * Results: - * Grab Tk_Window or None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Tk_Window -GetGrabWindowForWindow( - Tk_Window tkwin) -{ - Tk_Window grabWin = TkMacOSXGetCapture(); - - if (!grabWin) { - int grabState = TkGrabState((TkWindow *) tkwin); - - if (grabState != TK_GRAB_NONE && grabState != TK_GRAB_IN_TREE) { - grabWin = (Tk_Window) (((TkWindow *) tkwin)->dispPtr->grabWinPtr); - } - } - - return grabWin; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateMouseWheelEvent -- - * - * Generates a "MouseWheel" Tk event. - * - * Results: - * None. - * - * Side effects: - * Places a mousewheel event on the event queue. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateMouseWheelEvent( - MouseEventData *medPtr) -{ - Tk_Window tkwin, rootwin; - TkDisplay *dispPtr; - TkWindow *winPtr; - XEvent xEvent; - - dispPtr = TkGetDisplayList(); - rootwin = Tk_IdToWindow(dispPtr->display, medPtr->window); - if (rootwin == NULL) { - tkwin = NULL; - } else { - tkwin = Tk_TopCoordsToWindow(rootwin, medPtr->local.h, - medPtr->local.v, &xEvent.xbutton.x, &xEvent.xbutton.y); - } - - /* - * The following call will generate the appropiate X events and adjust any - * state that Tk must remember. - */ - - if (!tkwin) { - tkwin = TkMacOSXGetCapture(); - } - if (!tkwin) { - return false; - } - - winPtr = (TkWindow *) tkwin; - xEvent.type = MouseWheelEvent; - xEvent.xkey.keycode = medPtr->delta; - xEvent.xbutton.x_root = medPtr->global.h; - xEvent.xbutton.y_root = medPtr->global.v; - xEvent.xbutton.state = medPtr->state; - xEvent.xany.serial = LastKnownRequestProcessed(winPtr->display); - xEvent.xany.send_event = false; - xEvent.xany.display = winPtr->display; - xEvent.xany.window = Tk_WindowId(winPtr); - Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetEatButtonUp -- - * - * Results: - * Return the flag indicating if we need to eat the next mouse up event. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXGetEatButtonUp(void) -{ - return gEatButtonUp; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetEatButtonUp -- - * - * Results: - * None. - * - * Side effects: - * Sets the flag indicating if we need to eat the next mouse up event - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetEatButtonUp( - int f) -{ - gEatButtonUp = f; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXKeyModifiers -- - * - * Returns the current state of the modifier keys. - * - * Results: - * An OS Modifier state. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -EventModifiers -TkMacOSXModifierState(void) -{ - UInt32 keyModifiers; - int isFrontProcess = (GetCurrentEvent() && Tk_MacOSXIsAppInFront()); - - keyModifiers = isFrontProcess ? GetCurrentEventKeyModifiers() : - GetCurrentKeyModifiers(); - - return (EventModifiers) (keyModifiers & USHRT_MAX); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXButtonKeyState -- - * - * Returns the current state of the button & modifier keys. - * - * Results: - * A bitwise inclusive OR of a subset of the following: Button1Mask, - * ShiftMask, LockMask, ControlMask, Mod*Mask. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -unsigned int -TkMacOSXButtonKeyState(void) -{ - UInt32 buttonState = 0, keyModifiers; - int isFrontProcess = (GetCurrentEvent() && Tk_MacOSXIsAppInFront()); - - if (!TkMacOSXGetEatButtonUp()) { - buttonState = isFrontProcess ? GetCurrentEventButtonState() : - GetCurrentButtonState(); - } - keyModifiers = isFrontProcess ? GetCurrentEventKeyModifiers() : - GetCurrentKeyModifiers(); - - return ButtonModifiers2State(buttonState, keyModifiers); -} - -/* - *---------------------------------------------------------------------- - * - * ButtonModifiers2State -- - * - * Converts Carbon mouse button state and modifier values into a Tk - * button/modifier state. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static unsigned int -ButtonModifiers2State( - UInt32 buttonState, - UInt32 keyModifiers) -{ - unsigned int state; - - /* - * Tk supports at most 5 buttons. - */ - - state = (buttonState & ((1<<5) - 1)) << 8; - - if (keyModifiers & alphaLock) { - state |= LockMask; - } - if (keyModifiers & shiftKey) { - state |= ShiftMask; - } - if (keyModifiers & controlKey) { - state |= ControlMask; - } - if (keyModifiers & cmdKey) { - state |= Mod1Mask; /* command key */ - } - if (keyModifiers & optionKey) { - state |= Mod2Mask; /* option key */ - } - if (keyModifiers & kEventKeyModifierNumLockMask) { - state |= Mod3Mask; - } - if (keyModifiers & kEventKeyModifierFnMask) { - state |= Mod4Mask; - } - - return state; -} - -/* - *---------------------------------------------------------------------- - * - * XQueryPointer -- - * - * Check the current state of the mouse. This is not a complete - * implementation of this function. It only computes the root coordinates - * and the current mask. - * - * Results: - * Sets root_x_return, root_y_return, and mask_return. Returns true on - * success. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Bool -XQueryPointer( - Display *display, - Window w, - Window *root_return, - Window *child_return, - int *root_x_return, - int *root_y_return, - int *win_x_return, - int *win_y_return, - unsigned int *mask_return) -{ - int getGlobal = (root_x_return && root_y_return); - int getLocal = (win_x_return && win_y_return); - - if (getGlobal || getLocal) { - Point where, local; - OSStatus err = noErr; - int gotMouseLoc = 0; - EventRef ev = GetCurrentEvent(); - - if (ev && getLocal) { - err = ChkErr(GetEventParameter, ev, kEventParamWindowMouseLocation, - typeQDPoint, NULL, sizeof(Point), NULL, &local); - gotMouseLoc = (err == noErr); - } - if (getGlobal || !gotMouseLoc) { - if (ev) { - err = ChkErr(GetEventParameter, ev, kEventParamMouseLocation, - typeQDPoint, NULL, sizeof(Point), NULL, &where); - } - if (!ev || err != noErr) { - GetGlobalMouse(&where); - } - } - if (getLocal) { - WindowRef whichWin; - - if (ev) { - err = ChkErr(GetEventParameter, ev, kEventParamWindowRef, - typeWindowRef, NULL, sizeof(WindowRef), NULL, - &whichWin); - } - if (!ev || err != noErr) { - FindWindow(where, &whichWin); - } - if (gotMouseLoc) { - if (whichWin) { - Rect widths; - - ChkErr(GetWindowStructureWidths, whichWin, &widths); - local.h -= widths.left; - local.v -= widths.top; - } - } else { - local = where; - if (whichWin) { - QDGlobalToLocalPoint(GetWindowPort(whichWin), &local); - } - } - } - if (getGlobal) { - *root_x_return = where.h; - *root_y_return = where.v; - } - if (getLocal) { - *win_x_return = local.h; - *win_y_return = local.v; - } - } - if (mask_return) { - *mask_return = TkMacOSXButtonKeyState(); - } - return True; -} - -/* - *---------------------------------------------------------------------- - * - * TkGenerateButtonEventForXPointer -- - * - * This procedure generates an X button event for the current pointer - * state as reported by XQueryPointer(). - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. Grab state may - * also change. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkGenerateButtonEventForXPointer( - Window window) /* X Window containing button event. */ -{ - MouseEventData med; - int global_x, global_y, local_x, local_y; - - bzero(&med, sizeof(MouseEventData)); - XQueryPointer(NULL, None, NULL, NULL, &global_x, &global_y, - &local_x, &local_y, &med.state); - med.global.h = global_x; - med.global.v = global_y; - med.local.h = local_x; - med.local.v = local_y; - med.window = window; - med.activeNonFloating = ActiveNonFloatingWindow(); - - return GenerateButtonEvent(&med); -} - -/* - *---------------------------------------------------------------------- - * - * TkGenerateButtonEvent -- - * - * Given a global x & y position and the button key status this procedure - * generates the appropiate X button event. It also handles the state - * changes needed to implement implicit grabs. - * - * Results: - * True if event(s) are generated, false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. Grab state may - * also change. - * - *---------------------------------------------------------------------- - */ - -int -TkGenerateButtonEvent( - int x, /* X location of mouse, */ - int y, /* Y location of mouse. */ - Window window, /* X Window containing button event. */ - unsigned int state) /* Button Key state suitable for X event. */ -{ - MouseEventData med; - - bzero(&med, sizeof(MouseEventData)); - med.state = state; - med.window = window; - med.global.h = x; - med.global.v = y; - FindWindow(med.global, &med.whichWin); - med.activeNonFloating = ActiveNonFloatingWindow(); - med.local = med.global; - QDGlobalToLocalPoint(GetWindowPort(med.whichWin), &med.local); - - return GenerateButtonEvent(&med); -} - -/* - *---------------------------------------------------------------------- - * - * GenerateButtonEvent -- - * - * Generate an X button event from a MouseEventData structure. Handles - * the state changes needed to implement implicit grabs. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. Grab state may - * also change. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateButtonEvent( - MouseEventData *medPtr) -{ - Tk_Window tkwin; - int dummy; - TkDisplay *dispPtr; - -#if UNUSED - /* - * ButtonDown events will always occur in the front window. ButtonUp - * events, however, may occur anywhere on the screen. ButtonUp events - * should only be sent to Tk if in the front window or during an implicit - * grab. - */ - - if ((medPtr->activeNonFloating == NULL) - || ((!(TkpIsWindowFloating(medPtr->whichWin)) - && (medPtr->activeNonFloating != medPtr->whichWin)) - && TkMacOSXGetCapture() == NULL)) { - return false; - } -#endif - - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, medPtr->window); - - if (tkwin != NULL) { - tkwin = Tk_TopCoordsToWindow(tkwin, medPtr->local.h, medPtr->local.v, - &dummy, &dummy); - } - - Tk_UpdatePointer(tkwin, medPtr->global.h, medPtr->global.v, medPtr->state); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateToolbarButtonEvent -- - * - * Generates a "ToolbarButton" virtual event. This can be used to manage - * disappearing toolbars. - * - * Results: - * None. - * - * Side effects: - * Places a virtual event on the event queue. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateToolbarButtonEvent( - MouseEventData *medPtr) -{ - Tk_Window rootwin, tkwin = NULL; - TkDisplay *dispPtr; - TkWindow *winPtr; - XVirtualEvent event; - - dispPtr = TkGetDisplayList(); - rootwin = Tk_IdToWindow(dispPtr->display, medPtr->window); - if (rootwin) { - tkwin = Tk_TopCoordsToWindow(rootwin, - medPtr->local.h, medPtr->local.v, &event.x, &event.y); - } - if (!tkwin) { - return true; - } - winPtr = (TkWindow *) tkwin; - - bzero(&event, sizeof(XVirtualEvent)); - event.type = VirtualEvent; - event.serial = LastKnownRequestProcessed(winPtr->display); - event.send_event = false; - event.display = winPtr->display; - event.event = winPtr->window; - event.root = XRootWindow(winPtr->display, 0); - event.subwindow = None; - event.time = TkpGetMS(); - event.x_root = medPtr->global.h; - event.y_root = medPtr->global.v; - event.state = medPtr->state; - event.same_screen = true; - event.name = Tk_GetUid("ToolbarButton"); - - Tk_QueueWindowEvent((XEvent *) &event, TCL_QUEUE_TAIL); - return true; -} - -void -TkpWarpPointer( - TkDisplay *dispPtr) -{ - CGPoint pt; - UInt32 buttonState; - - if (dispPtr->warpWindow) { - int x, y; - - Tk_GetRootCoords(dispPtr->warpWindow, &x, &y); - pt.x = x + dispPtr->warpX; - pt.y = y + dispPtr->warpY; - } else { - pt.x = dispPtr->warpX; - pt.y = dispPtr->warpY; - } - - /* - * Tell the OSX core to generate the events to make it happen. This is - * fairly ugly, but means that under most circumstances we'll register all - * the events that would normally be generated correctly. If we use - * CGWarpMouseCursorPosition instead, strange things happen. - */ - - buttonState = (GetCurrentEvent() && Tk_MacOSXIsAppInFront()) - ? GetCurrentEventButtonState() : GetCurrentButtonState(); - - CGPostMouseEvent(pt, 1 /* generate motion events */, 5, - buttonState&1 ? 1 : 0, buttonState&2 ? 1 : 0, - buttonState&4 ? 1 : 0, buttonState&8 ? 1 : 0, - buttonState&16 ? 1 : 0); -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXNotify.c b/carbon/tkMacOSXNotify.c deleted file mode 100644 index fdd5afd..0000000 --- a/carbon/tkMacOSXNotify.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * tkMacOSXNotify.c -- - * - * This file contains the implementation of a tcl event source - * for the Carbon event loop. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" -#include <pthread.h> - -/* - * The following static indicates whether this module has been initialized - * in the current thread. - */ - -typedef struct ThreadSpecificData { - int initialized; -} ThreadSpecificData; -static Tcl_ThreadDataKey dataKey; - -static void TkMacOSXNotifyExitHandler(ClientData clientData); -static void CarbonEventsSetupProc(ClientData clientData, int flags); -static void CarbonEventsCheckProc(ClientData clientData, int flags); - -/* - *---------------------------------------------------------------------- - * - * Tk_MacOSXSetupTkNotifier -- - * - * This procedure is called during Tk initialization to create - * the event source for Carbon events. - * - * Results: - * None. - * - * Side effects: - * A new event source is created. - * - *---------------------------------------------------------------------- - */ - -void -Tk_MacOSXSetupTkNotifier(void) -{ - ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, - sizeof(ThreadSpecificData)); - - if (!tsdPtr->initialized) { - /* HACK ALERT: There is a bug in Jaguar where when it goes to make - * the event queue for the Main Event Loop, it stores the Current - * event loop rather than the Main Event Loop in the Queue structure. - * So we have to make sure that the Main Event Queue gets set up on - * the main thread. Calling GetMainEventQueue will force this to - * happen. - */ - GetMainEventQueue(); - - tsdPtr->initialized = 1; - - /* - * Install Carbon events event source in main event loop thread. - */ - - if (GetCurrentEventLoop() == GetMainEventLoop()) { - if (!pthread_main_np()) { - /* - * Panic if the Carbon main event loop thread (i.e. the thread - * where HIToolbox was first loaded) is not the main - * application thread, as Carbon does not support this - * properly. - */ - - Tcl_Panic("Tk_MacOSXSetupTkNotifier: %s", - "first [load] of TkAqua has to occur in the main thread!"); - } - Tcl_CreateEventSource(CarbonEventsSetupProc, - CarbonEventsCheckProc, GetMainEventQueue()); - TkCreateExitHandler(TkMacOSXNotifyExitHandler, NULL); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXNotifyExitHandler -- - * - * This function is called during finalization to clean up the - * TkMacOSXNotify module. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -TkMacOSXNotifyExitHandler( - ClientData clientData) /* Not used. */ -{ - ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, - sizeof(ThreadSpecificData)); - - Tcl_DeleteEventSource(CarbonEventsSetupProc, - CarbonEventsCheckProc, GetMainEventQueue()); - tsdPtr->initialized = 0; -} - -/* - *---------------------------------------------------------------------- - * - * CarbonEventsSetupProc -- - * - * This procedure implements the setup part of the Carbon Events event - * source. It is invoked by Tcl_DoOneEvent before entering the notifier - * to check for events. - * - * Results: - * None. - * - * Side effects: - * If Carbon events are queued, then the maximum block time will be set - * to 0 to ensure that the notifier returns control to Tcl. - * - *---------------------------------------------------------------------- - */ - -static void -CarbonEventsSetupProc( - ClientData clientData, - int flags) -{ - static Tcl_Time blockTime = { 0, 0 }; - - if (!(flags & TCL_WINDOW_EVENTS)) { - return; - } - - if (GetNumEventsInQueue((EventQueueRef) clientData)) { - Tcl_SetMaxBlockTime(&blockTime); - } -} - -/* - *---------------------------------------------------------------------- - * - * CarbonEventsCheckProc -- - * - * This procedure processes events sitting in the Carbon event queue. - * - * Results: - * None. - * - * Side effects: - * Moves applicable queued Carbon events onto the Tcl event queue. - * - *---------------------------------------------------------------------- - */ - -static void -CarbonEventsCheckProc( - ClientData clientData, - int flags) -{ - int numFound; - OSStatus err = noErr; - - if (!(flags & TCL_WINDOW_EVENTS)) { - return; - } - - numFound = GetNumEventsInQueue((EventQueueRef) clientData); - - /* - * Avoid starving other event sources: - */ - - if (numFound > 4) { - numFound = 4; - } - while (numFound > 0 && err == noErr) { - err = TkMacOSXReceiveAndDispatchEvent(); - numFound--; - } -} diff --git a/carbon/tkMacOSXPort.h b/carbon/tkMacOSXPort.h deleted file mode 100644 index 41da041..0000000 --- a/carbon/tkMacOSXPort.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * tkMacOSXPort.h -- - * - * This file is included by all of the Tk C files. It contains - * information that may be configuration-dependent, such as - * #includes for system include files and a few other things. - * - * Copyright (c) 1994-1996 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#ifndef _TKMACPORT -#define _TKMACPORT - -#include <stdio.h> -#include <ctype.h> -#include <fcntl.h> -#include <limits.h> -#include <math.h> -#include <pwd.h> -#include <stdlib.h> -#include <string.h> -#include <sys/types.h> -#include <sys/file.h> -#ifdef HAVE_SYS_SELECT_H -# include <sys/select.h> -#endif -#include <sys/stat.h> -#ifndef _TCL -# include <tcl.h> -#endif -#if TIME_WITH_SYS_TIME -# include <sys/time.h> -# include <time.h> -#else -# if HAVE_SYS_TIME_H -# include <sys/time.h> -# else -# include <time.h> -# endif -#endif -#if HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#include <unistd.h> -#include <X11/Xlib.h> -#include <X11/cursorfont.h> -#include <X11/keysym.h> -#include <X11/Xatom.h> -#include <X11/Xfuncproto.h> -#include <X11/Xutil.h> -#include "tkIntXlibDecls.h" - -/* - * The following macro defines the type of the mask arguments to - * select: - */ - -#ifndef NO_FD_SET -# define SELECT_MASK fd_set -#else -# ifndef _AIX - typedef long fd_mask; -# endif -# if defined(_IBMR2) -# define SELECT_MASK void -# else -# define SELECT_MASK int -# endif -#endif - -/* - * The following macro defines the number of fd_masks in an fd_set: - */ - -#ifndef FD_SETSIZE -# ifdef OPEN_MAX -# define FD_SETSIZE OPEN_MAX -# else -# define FD_SETSIZE 256 -# endif -#endif -#if !defined(howmany) -# define howmany(x, y) (((x)+((y)-1))/(y)) -#endif -#ifndef NFDBITS -# define NFDBITS NBBY*sizeof(fd_mask) -#endif -#define MASK_SIZE howmany(FD_SETSIZE, NFDBITS) - -/* - * Define "NBBY" (number of bits per byte) if it's not already defined. - */ - -#ifndef NBBY -# define NBBY 8 -#endif - -/* - * The following define causes Tk to use its internal keysym hash table - */ - -#define REDO_KEYSYM_LOOKUP - -/* - * Defines for X functions that are used by Tk but are treated as - * no-op functions on the Macintosh. - */ - -#define XFlush(display) -#define XFree(data) {if ((data) != NULL) ckfree(data);} -#define XGrabServer(display) -#define XNoOp(display) {display->request++;} -#define XUngrabServer(display) -#define XSynchronize(display, bool) {display->request++;} -#define XVisualIDFromVisual(visual) (visual->visualid) - -/* - * The following functions are not used on the Mac, so we stub them out. - */ - -#define TkpButtonSetDefaults() {} -#define TkpCmapStressed(tkwin,colormap) (0) -#define TkpFreeColor(tkColPtr) -#define TkSetPixmapColormap(p,c) {} -#define TkpSync(display) - -/* - * The following macro returns the pixel value that corresponds to the - * RGB values in the given XColor structure. - */ - -#define PIXEL_MAGIC ((unsigned char) 0x69) -#define TkpGetPixel(p) ((((((PIXEL_MAGIC << 8) \ - | (((p)->red >> 8) & 0xff)) << 8) \ - | (((p)->green >> 8) & 0xff)) << 8) \ - | (((p)->blue >> 8) & 0xff)) - -/* - * This macro stores a representation of the window handle in a string. - * This should perhaps use the real size of an XID. - */ - -#define TkpPrintWindowId(buf,w) \ - sprintf((buf), "0x%x", (unsigned int) (w)) - -/* - * TkpScanWindowId is just an alias for Tcl_GetInt on Unix. - */ - -#define TkpScanWindowId(i,s,wp) \ - Tcl_GetInt((i),(s),(int *) (wp)) - -/* - * Turn off Tk double-buffering as Aqua windows are already double-buffered. - */ - -#define TK_NO_DOUBLE_BUFFERING 1 - -/* - * Magic pixel code values for system colors. - * - * NOTE: values must be kept in sync with indices into the - * systemColorMap array in tkMacOSXColor.c ! - */ - -#define TRANSPARENT_PIXEL 30 -#define HIGHLIGHT_PIXEL 31 -#define HIGHLIGHT_SECONDARY_PIXEL 32 -#define HIGHLIGHT_TEXT_PIXEL 33 -#define HIGHLIGHT_ALTERNATE_PIXEL 34 -#define CONTROL_TEXT_PIXEL 35 -#define CONTROL_BODY_PIXEL 37 -#define CONTROL_FRAME_PIXEL 39 -#define WINDOW_BODY_PIXEL 41 -#define MENU_ACTIVE_PIXEL 43 -#define MENU_ACTIVE_TEXT_PIXEL 45 -#define MENU_BACKGROUND_PIXEL 47 -#define MENU_DISABLED_PIXEL 49 -#define MENU_TEXT_PIXEL 51 -#define APPEARANCE_PIXEL 52 - -#endif /* _TKMACPORT */ diff --git a/carbon/tkMacOSXPrivate.h b/carbon/tkMacOSXPrivate.h deleted file mode 100644 index 72b418e..0000000 --- a/carbon/tkMacOSXPrivate.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * tkMacOSXPrivate.h -- - * - * Macros and declarations that are purely internal & private to TkAqua. - * - * Copyright (c) 2005-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. - */ - -#ifndef _TKMACPRIV -#define _TKMACPRIV - -#ifndef _TKMACINT -#include "tkMacOSXInt.h" -#endif - -/* Define constants only available on Mac OS X 10.3 or later */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 -# define kEventAppAvailableWindowBoundsChanged 110 -# define kEventParamTransactionID 'trns' -# define kEventParamWindowPartCode 'wpar' -# define typeWindowPartCode 'wpar' -# define kMenuAttrDoNotUseUserCommandKeys (1 << 7) -# define kSimpleWindowClass 18 -# define kWindowDoesNotCycleAttribute (1L << 15) -# define kWindowAsyncDragAttribute (1L << 23) -# define kThemeBrushAlternatePrimaryHighlightColor -5 -# define kThemeResizeUpCursor 19 -# define kThemeResizeDownCursor 19 -# define kThemeResizeUpDownCursor 19 -# define kThemePoofCursor 19 -# define kThemeBackgroundMetal 6 -# define kThemeIncDecButtonSmall 21 -# define kThemeIncDecButtonMini 22 -# define kThemeComboBox 16 -# define kThemeMiniSystemFont 109 -# define kAppearancePartUpButton 20 -# define kAppearancePartDownButton 21 -# define kAppearancePartPageUpArea 22 -# define kAppearancePartPageDownArea 23 -# define kAppearancePartIndicator 129 -# define kUIModeAllSuppressed 4 -# define FixedToInt(a) ((short)(((Fixed)(a) + fixed1/2) >> 16)) -# define IntToFixed(a) ((Fixed)(a) << 16) -#endif -/* Define constants only available on Mac OS X 10.4 or later */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1040 -# define kWindowNoTitleBarAttribute (1L << 9) -# define kWindowMetalNoContentSeparatorAttribute (1L << 11) -# define kThemeDisclosureTriangle 6 -# define kThemeBrushListViewOddRowBackground 56 -# define kThemeBrushListViewEvenRowBackground 57 -# define kThemeBrushListViewColumnDivider 58 -# define kThemeMetricScrollBarMinThumbHeight 132 -# define kThemeMetricSmallScrollBarMinThumbHeight 134 -# define kThemeScrollBarMedium kThemeMediumScrollBar -# define kThemeScrollBarSmall kThemeSmallScrollBar -# ifdef __BIG_ENDIAN__ -# define kCGBitmapByteOrder32Host (4 << 12) -# else -# define kCGBitmapByteOrder32Host (2 << 12) -# endif -#endif -/* Define constants only available on Mac OS X 10.5 or later */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1050 -# define kWindowUnifiedTitleAndToolbarAttribute (1L << 7) -# define kWindowTexturedSquareCornersAttribute (1L << 10) -#endif -/* HIToolbox version constants */ -#ifndef kHIToolboxVersionNumber10_3 -# define kHIToolboxVersionNumber10_3 (145) -#endif -#ifndef kHIToolboxVersionNumber10_4 -# define kHIToolboxVersionNumber10_4 (219) -#endif -#ifndef kHIToolboxVersionNumber10_5 -# define kHIToolboxVersionNumber10_5 (343) -#endif -/* Macros for HIToolbox runtime version checking */ -MODULE_SCOPE float tkMacOSXToolboxVersionNumber; -#define TK_IF_HI_TOOLBOX(vers, ...) \ - tk_if_mac_os_x_min_10_##vers(tkMacOSXToolboxVersionNumber >= \ - kHIToolboxVersionNumber10_##vers, 1, __VA_ARGS__) -#define TK_ELSE_HI_TOOLBOX(vers, ...) \ - tk_else_mac_os_x_min_10_##vers(__VA_ARGS__) -/* Macros for Mac OS X API availability checking */ -#define TK_IF_MAC_OS_X_API(vers, symbol, ...) \ - tk_if_mac_os_x_10_##vers(symbol != NULL, 1, __VA_ARGS__) -#define TK_ELSE_MAC_OS_X(vers, ...) \ - tk_else_mac_os_x_10_##vers(__VA_ARGS__) -#define TK_IF_MAC_OS_X_API_COND(vers, symbol, cond, ...) \ - tk_if_mac_os_x_10_##vers(symbol != NULL, cond, __VA_ARGS__) -#define TK_ELSE(...) \ - } else { __VA_ARGS__ -#define TK_ENDIF \ - } -/* Private macros that implement the checking macros above */ -#define tk_if_mac_os_x_yes(chk, cond, ...) \ - if (cond) { __VA_ARGS__ -#define tk_else_mac_os_x_yes(...) \ - } else { -#define tk_if_mac_os_x_chk(chk, cond, ...) \ - if ((chk) && (cond)) { __VA_ARGS__ -#define tk_else_mac_os_x_chk(...) \ - } else { __VA_ARGS__ -#define tk_if_mac_os_x_no(chk, cond, ...) \ - if (0) { -#define tk_else_mac_os_x_no(...) \ - } else { __VA_ARGS__ -/* Private mapping macros defined according to Mac OS X version requirements */ -/* 10.3 Panther */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1030 -#define tk_if_mac_os_x_min_10_3 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_min_10_3 tk_else_mac_os_x_yes -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 -#define tk_if_mac_os_x_10_3 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_10_3 tk_else_mac_os_x_yes -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#else /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#define tk_if_mac_os_x_min_10_3 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_min_10_3 tk_else_mac_os_x_chk -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 -#define tk_if_mac_os_x_10_3 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_10_3 tk_else_mac_os_x_chk -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 -#define tk_if_mac_os_x_10_3 tk_if_mac_os_x_no -#define tk_else_mac_os_x_10_3 tk_else_mac_os_x_no -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -/* 10.4 Tiger */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1040 -#define tk_if_mac_os_x_min_10_4 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_min_10_4 tk_else_mac_os_x_yes -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 -#define tk_if_mac_os_x_10_4 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_10_4 tk_else_mac_os_x_yes -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#else /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#define tk_if_mac_os_x_min_10_4 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_min_10_4 tk_else_mac_os_x_chk -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1040 -#define tk_if_mac_os_x_10_4 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_10_4 tk_else_mac_os_x_chk -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1040 -#define tk_if_mac_os_x_10_4 tk_if_mac_os_x_no -#define tk_else_mac_os_x_10_4 tk_else_mac_os_x_no -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -/* 10.5 Leopard */ -#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 -#define tk_if_mac_os_x_min_10_5 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_min_10_5 tk_else_mac_os_x_yes -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 -#define tk_if_mac_os_x_10_5 tk_if_mac_os_x_yes -#define tk_else_mac_os_x_10_5 tk_else_mac_os_x_yes -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#else /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#define tk_if_mac_os_x_min_10_5 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_min_10_5 tk_else_mac_os_x_chk -#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1050 -#define tk_if_mac_os_x_10_5 tk_if_mac_os_x_chk -#define tk_else_mac_os_x_10_5 tk_else_mac_os_x_chk -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ -#endif /* MAC_OS_X_VERSION_MIN_REQUIRED */ -#if MAC_OS_X_VERSION_MAX_ALLOWED < 1050 -#define tk_if_mac_os_x_10_5 tk_if_mac_os_x_no -#define tk_else_mac_os_x_10_5 tk_else_mac_os_x_no -#endif /* MAC_OS_X_VERSION_MAX_ALLOWED */ - -/* - * Macros for DEBUG_ASSERT_MESSAGE et al from Debugging.h. - */ - -#undef kComponentSignatureString -#undef COMPONENT_SIGNATURE -#define kComponentSignatureString "TkMacOSX" -#define COMPONENT_SIGNATURE 'Tk ' - -/* - * Macros abstracting checks only active in a debug build. - */ - -#ifdef TK_MAC_DEBUG -/* - * Macro to do debug message output. - */ -#define TkMacOSXDbgMsg(m, ...) \ - do { \ - fprintf(stderr, "%s:%d: %s(): " m "\n", strrchr(__FILE__, '/')+1, \ - __LINE__, __func__, ##__VA_ARGS__); \ - } while (0) - -/* - * Macro to do debug API failure message output. - */ -#if !defined(DEBUGLEVEL) || !DEBUGLEVEL -#define TkMacOSXDbgOSErr(f, err) \ - do { \ - TkMacOSXDbgMsg("%s failed: %ld", #f, err); \ - } while (0) -#else -#define TkMacOSXDbgOSErr(f, err) \ - do { \ - DEBUG_ASSERT_MESSAGE(kComponentSignatureString, #f " failed:", \ - __func__, 0, strrchr(__FILE__, '/')+1, __LINE__, err); \ - } while (0) -#endif - -/* - * Macro to do very common check for noErr return from given API and output - * debug message in case of failure. - */ -#define ChkErr(f, ...) ({ \ - OSStatus err = f(__VA_ARGS__); \ - if (err != noErr) { \ - TkMacOSXDbgOSErr(f, err); \ - } \ - err;}) - -/* - * Macro to check emptyness of shared QD tmp region before use in debug builds. - */ -#define TkMacOSXCheckTmpQdRgnEmpty() \ - do { \ - if (!EmptyRgn(tkMacOSXtmpQdRgn)) { \ - Tcl_Panic("tkMacOSXtmpQdRgn nonempty"); \ - } \ - } while(0) -#else /* TK_MAC_DEBUG */ -#define TkMacOSXDbgMsg(m, ...) -#define TkMacOSXDbgOSErr(f, err) -#define ChkErr(f, ...) ({f(__VA_ARGS__);}) -#define TkMacOSXCheckTmpQdRgnEmpty() -#endif /* TK_MAC_DEBUG */ - -/* - * Macro abstracting use of TkMacOSXGetNamedSymbol to init named symbols. - */ - -#define TkMacOSXInitNamedSymbol(module, ret, symbol, ...) \ - static ret (* symbol)(__VA_ARGS__) = (void*)(-1L); \ - if (symbol == (void*)(-1L)) { \ - symbol = TkMacOSXGetNamedSymbol(STRINGIFY(module), \ - STRINGIFY(_##symbol)); \ - } - -/* - * Structure encapsulating current drawing environment. - */ - -typedef struct TkMacOSXDrawingContext { - CGContextRef context; - CGrafPtr port, savePort; - ThemeDrawingState saveState; - RgnHandle saveClip; - HIShapeRef clipRgn; - PixPatHandle penPat; - Rect portBounds; - Boolean portChanged; -} TkMacOSXDrawingContext; - -/* - * Variables internal to TkAqua. - */ - -MODULE_SCOPE RgnHandle tkMacOSXtmpQdRgn; -MODULE_SCOPE int tkMacOSXUseCGDrawing; - -/* - * Prototypes for TkMacOSXRegion.c. - */ - -#if 0 -MODULE_SCOPE void TkMacOSXEmtpyRegion(TkRegion r); -MODULE_SCOPE int TkMacOSXIsEmptyRegion(TkRegion r); -#endif -MODULE_SCOPE HIShapeRef TkMacOSXGetNativeRegion(TkRegion r); -MODULE_SCOPE void TkMacOSXSetWithNativeRegion(TkRegion r, - HIShapeRef rgn); -MODULE_SCOPE void TkMacOSXOffsetRegion(TkRegion r, short dx, short dy); -MODULE_SCOPE HIShapeRef TkMacOSXHIShapeCreateEmpty(void); -MODULE_SCOPE HIMutableShapeRef TkMacOSXHIShapeCreateMutableWithRect( - const CGRect *inRect); -MODULE_SCOPE OSStatus TkMacOSXHIShapeSetWithShape( - HIMutableShapeRef inDestShape, - HIShapeRef inSrcShape); -#if 0 -MODULE_SCOPE OSStatus TkMacOSXHIShapeSetWithRect(HIMutableShapeRef inShape, - const CGRect *inRect); -#endif -MODULE_SCOPE OSStatus TkMacOSHIShapeDifferenceWithRect( - HIMutableShapeRef inShape, const CGRect *inRect); -MODULE_SCOPE OSStatus TkMacOSHIShapeUnionWithRect(HIMutableShapeRef inShape, - const CGRect *inRect); -MODULE_SCOPE OSStatus TkMacOSHIShapeUnion(HIShapeRef inShape1, - HIShapeRef inShape2, HIMutableShapeRef outResult); - -/* - * Prototypes of TkAqua internal procs. - */ - -MODULE_SCOPE void * TkMacOSXGetNamedSymbol(const char *module, - const char *symbol); -MODULE_SCOPE void TkMacOSXDisplayChanged(Display *display); -MODULE_SCOPE void TkMacOSXInitScrollbarMetrics(void); -MODULE_SCOPE int TkMacOSXUseAntialiasedText(Tcl_Interp *interp, - int enable); -MODULE_SCOPE void TkMacOSXInitCarbonEvents(Tcl_Interp *interp); -MODULE_SCOPE int TkMacOSXInitCGDrawing(Tcl_Interp *interp, int enable, - int antiAlias); -MODULE_SCOPE void TkMacOSXInitKeyboard(Tcl_Interp *interp); -MODULE_SCOPE int TkMacOSXGenerateFocusEvent(Window window, - int activeFlag); -MODULE_SCOPE int TkMacOSXGenerateParentMenuSelectEvent(MenuRef menu); -MODULE_SCOPE int TkMacOSXGenerateMenuSelectEvent(MenuRef menu, - MenuItemIndex index); -MODULE_SCOPE void TkMacOSXClearActiveMenu(MenuRef menu); -MODULE_SCOPE WindowClass TkMacOSXWindowClass(TkWindow *winPtr); -MODULE_SCOPE int TkMacOSXIsWindowZoomed(TkWindow *winPtr); -MODULE_SCOPE int TkGenerateButtonEventForXPointer(Window window); -MODULE_SCOPE EventModifiers TkMacOSXModifierState(void); -MODULE_SCOPE int TkMacOSXSetupDrawingContext(Drawable d, GC gc, - int useCG, TkMacOSXDrawingContext *dcPtr); -MODULE_SCOPE void TkMacOSXRestoreDrawingContext( - TkMacOSXDrawingContext *dcPtr); -MODULE_SCOPE void TkMacOSXSetColorInPort(unsigned long pixel, int fg, - PixPatHandle penPat, CGrafPtr port); -MODULE_SCOPE void TkMacOSXSetColorInContext(unsigned long pixel, - CGContextRef context); -MODULE_SCOPE int TkMacOSXRunTclEventLoop(void); -MODULE_SCOPE OSStatus TkMacOSXStartTclEventLoopCarbonTimer(void); -MODULE_SCOPE OSStatus TkMacOSXStopTclEventLoopCarbonTimer(void); -MODULE_SCOPE void TkMacOSXTrackingLoop(int tracking); -MODULE_SCOPE OSStatus TkMacOSXReceiveAndDispatchEvent(void); -MODULE_SCOPE void TkMacOSXInstallWindowCarbonEventHandler( - Tcl_Interp *interp, WindowRef window); -MODULE_SCOPE int TkMacOSXMakeFullscreen(TkWindow *winPtr, - WindowRef window, int fullscreen, - Tcl_Interp *interp); -MODULE_SCOPE void TkMacOSXEnterExitFullscreen(TkWindow *winPtr, - int active); -MODULE_SCOPE void TkMacOSXBringWindowForward(WindowRef wRef); -MODULE_SCOPE WindowRef TkMacOSXDrawableWindow(Drawable drawable); -MODULE_SCOPE void TkMacOSXWinCGBounds(TkWindow *winPtr, CGRect *bounds); -MODULE_SCOPE HIShapeRef TkMacOSXGetClipRgn(Drawable drawable); -MODULE_SCOPE Tcl_Obj * TkMacOSXGetStringObjFromCFString(CFStringRef str); - -#endif /* _TKMACPRIV */ diff --git a/carbon/tkMacOSXRegion.c b/carbon/tkMacOSXRegion.c deleted file mode 100644 index e2faab0..0000000 --- a/carbon/tkMacOSXRegion.c +++ /dev/null @@ -1,644 +0,0 @@ -/* - * tkMacOSXRegion.c -- - * - * Implements X window calls for manipulating regions - * - * Copyright (c) 1995-1996 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" - - -/* - *---------------------------------------------------------------------- - * - * TkCreateRegion -- - * - * Implements the equivelent of the X window function XCreateRegion. See - * Xwindow documentation for more details. - * - * Results: - * Returns an allocated region handle. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkRegion -TkCreateRegion(void) -{ - return (TkRegion) HIShapeCreateMutable(); -} - -/* - *---------------------------------------------------------------------- - * - * TkDestroyRegion -- - * - * Implements the equivelent of the X window function XDestroyRegion. See - * Xwindow documentation for more details. - * - * Results: - * None. - * - * Side effects: - * Memory is freed. - * - *---------------------------------------------------------------------- - */ - -void -TkDestroyRegion( - TkRegion r) -{ - if (r) { - CFRelease(r); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkIntersectRegion -- - * - * Implements the equivalent of the X window function XIntersectRegion. - * See Xwindow documentation for more details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkIntersectRegion( - TkRegion sra, - TkRegion srb, - TkRegion dr_return) -{ - ChkErr(HIShapeIntersect, (HIShapeRef) sra, (HIShapeRef) srb, - (HIMutableShapeRef) dr_return); -} - -/* - *---------------------------------------------------------------------- - * - * TkSubtractRegion -- - * - * Implements the equivalent of the X window function XSubtractRegion. - * See X window documentation for more details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkSubtractRegion( - TkRegion sra, - TkRegion srb, - TkRegion dr_return) -{ - ChkErr(HIShapeDifference, (HIShapeRef) sra, (HIShapeRef) srb, - (HIMutableShapeRef) dr_return); -} - -/* - *---------------------------------------------------------------------- - * - * TkUnionRectWithRegion -- - * - * Implements the equivelent of the X window function - * XUnionRectWithRegion. See Xwindow documentation for more details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkUnionRectWithRegion( - XRectangle* rectangle, - TkRegion src_region, - TkRegion dest_region_return) -{ - const CGRect r = CGRectMake(rectangle->x, rectangle->y, - rectangle->width, rectangle->height); - - if (src_region == dest_region_return) { - ChkErr(TkMacOSHIShapeUnionWithRect, - (HIMutableShapeRef) dest_region_return, &r); - } else { - HIShapeRef rectRgn = HIShapeCreateWithRect(&r); - - ChkErr(TkMacOSHIShapeUnion, rectRgn, (HIShapeRef) src_region, - (HIMutableShapeRef) dest_region_return); - CFRelease(rectRgn); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkRectInRegion -- - * - * Implements the equivelent of the X window function XRectInRegion. See - * Xwindow documentation for more details. - * - * Results: - * Returns RectanglePart or RectangleOut. Note that this is not a - * complete implementation since it doesn't test for RectangleIn. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkRectInRegion( - TkRegion region, - int x, - int y, - unsigned int width, - unsigned int height) -{ - int result; - const CGRect r = CGRectMake(x, y, width, height); - - TK_IF_MAC_OS_X_API (4, HIShapeIntersectsRect, - result = HIShapeIntersectsRect((HIShapeRef) region, &r) ? - RectanglePart : RectangleOut; - ) TK_ELSE_MAC_OS_X (4, - HIShapeRef rectRgn = HIShapeCreateWithRect(&r); - HIShapeRef sectRgn = HIShapeCreateIntersection((HIShapeRef) region, - rectRgn); - -#if 1 - result = !HIShapeIsEmpty(sectRgn) ? RectanglePart : RectangleOut; -#else - /* - * More expensive full implementation that tests for RectangleIn, - * unused by Tk at present. - */ - - if (!HIShapeIsEmpty(sectRgn)) { - HIShapeRef diffRgn = HIShapeCreateDifference(rectRgn, sectRgn); - - if (HIShapeIsEmpty(diffRgn)) { - result = RectangleIn; - } else { - result = RectanglePart; - } - CFRelease(diffRgn); - } else { - result = RectangleOut; - } -#endif - CFRelease(sectRgn); - CFRelease(rectRgn); - ) TK_ENDIF; - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkClipBox -- - * - * Implements the equivelent of the X window function XClipBox. See - * Xwindow documentation for more details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkClipBox( - TkRegion r, - XRectangle* rect_return) -{ - CGRect rect; - - HIShapeGetBounds((HIShapeRef) r, &rect); - rect_return->x = rect.origin.x; - rect_return->y = rect.origin.y; - rect_return->width = rect.size.width; - rect_return->height = rect.size.height; -} - -/* - *---------------------------------------------------------------------- - * - * TkpBuildRegionFromAlphaData -- - * - * Set up a rectangle of the given region based on the supplied alpha - * data. - * - * Results: - * None - * - * Side effects: - * The region is updated, with extra pixels added to it. - * - *---------------------------------------------------------------------- - */ - -void -TkpBuildRegionFromAlphaData( - TkRegion 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. */ - unsigned int height, /* Size of rectangle to update. */ - unsigned char *dataPtr, /* Data to read from. */ - unsigned int pixelStride, /* num bytes from one piece of alpha - * data to the next in the line. */ - unsigned int lineStride) /* num bytes from one line of alpha - * data to the next line. */ -{ - unsigned char *lineDataPtr; - unsigned int x1, y1, end; - XRectangle rect; - - for (y1 = 0; y1 < height; y1++) { - lineDataPtr = dataPtr; - for (x1 = 0; x1 < width; x1 = end) { - /* - * Search for first non-transparent pixel. - */ - - while ((x1 < width) && !*lineDataPtr) { - x1++; - lineDataPtr += pixelStride; - } - end = x1; - - /* - * Search for first transparent pixel. - */ - - while ((end < width) && *lineDataPtr) { - end++; - lineDataPtr += pixelStride; - } - if (end > x1) { - rect.x = x + x1; - rect.y = y + y1; - rect.width = end - x1; - rect.height = 1; - TkUnionRectWithRegion(&rect, region, region); - } - } - dataPtr += lineStride; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpRetainRegion -- - * - * Increases reference count of region. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpRetainRegion( - TkRegion r) -{ - CFRetain(r); -} - -/* - *---------------------------------------------------------------------- - * - * TkpReleaseRegion -- - * - * Decreases reference count of region. - * - * Results: - * None. - * - * Side effects: - * May free memory. - * - *---------------------------------------------------------------------- - */ - -void -TkpReleaseRegion( - TkRegion r) -{ - CFRelease(r); -} -#if 0 - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXEmtpyRegion -- - * - * Set region to emtpy. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXEmtpyRegion( - TkRegion r) -{ - ChkErr(HIShapeSetEmpty, (HIMutableShapeRef) r); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXIsEmptyRegion -- - * - * Return native region for given tk region. - * - * Results: - * 1 if empty, 0 otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXIsEmptyRegion( - TkRegion r) -{ - return HIShapeIsEmpty((HIMutableShapeRef) r) ? 1 : 0; -} -#endif - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetNativeRegion -- - * - * Return native region for given tk region. - * - * Results: - * Native region, CFRelease when done. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -HIShapeRef -TkMacOSXGetNativeRegion( - TkRegion r) -{ - return (HIShapeRef) CFRetain(r); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetWithNativeRegion -- - * - * Set region to the native region. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetWithNativeRegion( - TkRegion r, - HIShapeRef rgn) -{ - ChkErr(TkMacOSXHIShapeSetWithShape, (HIMutableShapeRef) r, rgn); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXOffsetRegion -- - * - * Offsets region by given distances. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXOffsetRegion( - TkRegion r, - short dx, - short dy) -{ - ChkErr(HIShapeOffset, (HIMutableShapeRef) r, dx, dy); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXHIShapeCreateEmpty, TkMacOSXHIShapeCreateMutableWithRect, - * TkMacOSXHIShapeSetWithShape, TkMacOSXHIShapeSetWithRect, - * TkMacOSHIShapeDifferenceWithRect, TkMacOSHIShapeUnionWithRect, - * TkMacOSHIShapeUnion -- - * - * Wrapper functions for missing/buggy HIShape API - * - *---------------------------------------------------------------------- - */ - -HIShapeRef -TkMacOSXHIShapeCreateEmpty(void) -{ - HIShapeRef result; - - TK_IF_MAC_OS_X_API (4, HIShapeCreateEmpty, - result = HIShapeCreateEmpty(); - ) TK_ELSE_MAC_OS_X (4, - static HIShapeRef emptyRgn = NULL; - - if (!emptyRgn) { - HIMutableShapeRef rgn = HIShapeCreateMutable(); - - emptyRgn = HIShapeCreateCopy(rgn); - CFRelease(rgn); - } - result = HIShapeCreateCopy(emptyRgn); - ) TK_ENDIF; - - return result; -} - -HIMutableShapeRef -TkMacOSXHIShapeCreateMutableWithRect( - const CGRect *inRect) -{ - HIMutableShapeRef result; - - TK_IF_MAC_OS_X_API (5, HIShapeCreateMutableWithRect, - result = HIShapeCreateMutableWithRect(inRect); - ) TK_ELSE_MAC_OS_X (5, - HIShapeRef rgn = HIShapeCreateWithRect(inRect); - - result = HIShapeCreateMutableCopy(rgn); - CFRelease(rgn); - ) TK_ENDIF; - - return result; -} - -OSStatus -TkMacOSXHIShapeSetWithShape( - HIMutableShapeRef inDestShape, - HIShapeRef inSrcShape) -{ - OSStatus result; - - TK_IF_MAC_OS_X_API (5, HIShapeSetWithShape, - result = HIShapeSetWithShape(inDestShape, inSrcShape); - ) TK_ELSE_MAC_OS_X (5, - result = HIShapeSetEmpty(inDestShape); - if (result == noErr) { - result = HIShapeDifference(inSrcShape, inDestShape, inDestShape); - } - ) TK_ENDIF; - - return result; -} - -#if 0 -OSStatus -TkMacOSXHIShapeSetWithRect( - HIMutableShapeRef inShape, - const CGRect *inRect) -{ - OSStatus result; - HIShapeRef rgn = HIShapeCreateWithRect(inRect); - - result = TkMacOSXHIShapeSetWithShape(inShape, rgn); - CFRelease(rgn); - - return result; -} -#endif - -OSStatus -TkMacOSHIShapeDifferenceWithRect( - HIMutableShapeRef inShape, - const CGRect *inRect) -{ - OSStatus result; - HIShapeRef rgn = HIShapeCreateWithRect(inRect); - - result = HIShapeDifference(inShape, rgn, inShape); - CFRelease(rgn); - - return result; -} - -OSStatus -TkMacOSHIShapeUnionWithRect( - HIMutableShapeRef inShape, - const CGRect *inRect) -{ - OSStatus result; - - TK_IF_MAC_OS_X_API (5, HIShapeUnionWithRect, - result = HIShapeUnionWithRect(inShape, inRect); - ) TK_ELSE_MAC_OS_X (5, - HIShapeRef rgn = HIShapeCreateWithRect(inRect); - - result = TkMacOSHIShapeUnion(rgn, inShape, inShape); - CFRelease(rgn); - ) TK_ENDIF; - - return result; -} - -OSStatus -TkMacOSHIShapeUnion( - HIShapeRef inShape1, - HIShapeRef inShape2, - HIMutableShapeRef outResult) -{ - OSStatus result; - - TK_IF_HI_TOOLBOX (4, - result = HIShapeUnion(inShape1, inShape2, outResult); - ) TK_ELSE_HI_TOOLBOX (4, - /* - * Workaround HIShapeUnion bug in 10.3 and earlier. - */ - - HIShapeRef rgn = HIShapeCreateCopy(outResult); - - result = HIShapeUnion(inShape1, inShape2, (HIMutableShapeRef) rgn); - if (result == noErr) { - result = HIShapeSetEmpty(outResult); - if (result == noErr) { - result = HIShapeDifference(rgn, outResult, outResult); - } - } - CFRelease(rgn); - ) TK_ENDIF; - - return result; -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXScale.c b/carbon/tkMacOSXScale.c deleted file mode 100644 index bc46596..0000000 --- a/carbon/tkMacOSXScale.c +++ /dev/null @@ -1,482 +0,0 @@ -/* - * tkMacOSXScale.c -- - * - * This file implements the Macintosh specific portion of the - * scale widget. - * - * Copyright (c) 1996 by Sun Microsystems, Inc. - * Copyright (c) 1998-2000 by Scriptics Corporation. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkScale.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_SCALE -#endif -*/ - -/* - * Defines used in this file. - */ - -#define slider 1110 -#define inSlider 1 -#define inInc 2 -#define inDecr 3 - -/* - * Declaration of Macintosh specific scale structure. - */ - -typedef struct MacScale { - TkScale info; /* Generic scale info. */ - int flags; /* Flags. */ - ControlRef scaleHandle; /* Handle to the Scale control struct. */ -} MacScale; - -/* - * Globals uses locally in this file. - */ -static ControlActionUPP scaleActionProc = NULL; /* Pointer to func. */ - -/* - * Forward declarations for procedures defined later in this file: - */ - -static void MacScaleEventProc(ClientData clientData, XEvent *eventPtr); -static pascal void ScaleActionProc(ControlRef theControl, - ControlPartCode partCode); - - -/* - *---------------------------------------------------------------------- - * - * TkpCreateScale -- - * - * Allocate a new TkScale structure. - * - * Results: - * Returns a newly allocated TkScale structure. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkScale * -TkpCreateScale( - Tk_Window tkwin) -{ - MacScale *macScalePtr = ckalloc(sizeof(MacScale)); - - macScalePtr->scaleHandle = NULL; - if (scaleActionProc == NULL) { - scaleActionProc = NewControlActionUPP(ScaleActionProc); - } - - Tk_CreateEventHandler(tkwin, ButtonPressMask, - MacScaleEventProc, (ClientData) macScalePtr); - - return (TkScale *) macScalePtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyScale -- - * - * Free Macintosh specific resources. - * - * Results: - * None - * - * Side effects: - * The slider control is destroyed. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyScale( - TkScale *scalePtr) -{ - MacScale *macScalePtr = (MacScale *) scalePtr; - - /* - * Free Macintosh control. - */ - - if (macScalePtr->scaleHandle != NULL) { - DisposeControl(macScalePtr->scaleHandle); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpDisplayScale -- - * - * This procedure is invoked as an idle handler to redisplay - * the contents of a scale widget. - * - * Results: - * None. - * - * Side effects: - * The scale gets redisplayed. - * - *---------------------------------------------------------------------- - */ - -void -TkpDisplayScale( - ClientData clientData) /* Widget record for scale. */ -{ - TkScale *scalePtr = (TkScale *) clientData; - Tk_Window tkwin = scalePtr->tkwin; - Tcl_Interp *interp = scalePtr->interp; - int result; - char string[PRINT_CHARS]; - MacScale *macScalePtr = (MacScale *) clientData; - Rect r; - WindowRef windowRef; - CGrafPtr destPort, savePort; - Boolean portChanged; - MacDrawable *macDraw; - SInt32 initialValue, minValue, maxValue; - UInt16 numTicks; - -#ifdef TK_MAC_DEBUG_SCALE - TkMacOSXDbgMsg("TkpDisplayScale"); -#endif - scalePtr->flags &= ~REDRAW_PENDING; - if ((scalePtr->tkwin == NULL) || !Tk_IsMapped(scalePtr->tkwin)) { - goto done; - } - - /* - * Invoke the scale's command if needed. - */ - - Tcl_Preserve((ClientData) scalePtr); - if ((scalePtr->flags & INVOKE_COMMAND) && (scalePtr->command != NULL)) { - Tcl_Preserve((ClientData) interp); - sprintf(string, scalePtr->format, scalePtr->value); - result = Tcl_VarEval(interp, scalePtr->command, " ", string, NULL); - if (result != TCL_OK) { - Tcl_AddErrorInfo(interp, "\n (command executed by scale)"); - Tcl_BackgroundException(interp, result); - } - Tcl_Release((ClientData) interp); - } - scalePtr->flags &= ~INVOKE_COMMAND; - if (scalePtr->flags & SCALE_DELETED) { - Tcl_Release((ClientData) scalePtr); - return; - } - Tcl_Release((ClientData) scalePtr); - - /* - * Now handle the part of redisplay that is the same for - * horizontal and vertical scales: border and traversal - * highlight. - */ - - if (scalePtr->highlightWidth != 0) { - GC gc = Tk_GCForColor(scalePtr->highlightColorPtr, Tk_WindowId(tkwin)); - - Tk_DrawFocusHighlight(tkwin, gc, scalePtr->highlightWidth, - Tk_WindowId(tkwin)); - } - Tk_Draw3DRectangle(tkwin, Tk_WindowId(tkwin), scalePtr->bgBorder, - scalePtr->highlightWidth, scalePtr->highlightWidth, - Tk_Width(tkwin) - 2*scalePtr->highlightWidth, - Tk_Height(tkwin) - 2*scalePtr->highlightWidth, - scalePtr->borderWidth, scalePtr->relief); - - /* - * Set up port for drawing Macintosh control. - */ - - macDraw = (MacDrawable *) Tk_WindowId(tkwin); - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(tkwin)); - windowRef = TkMacOSXDrawableWindow(Tk_WindowId(tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - TkMacOSXSetUpClippingRgn(Tk_WindowId(tkwin)); - - /* - * Create Macintosh control. - */ - -#define MAC_OSX_SCROLL_WIDTH 10 - - if (scalePtr->orient == ORIENT_HORIZONTAL) { - int offset = (Tk_Height(tkwin) - MAC_OSX_SCROLL_WIDTH)/2; - - if (offset < 0) { - offset = 0; - } - - r.left = macDraw->xOff + scalePtr->inset; - r.top = macDraw->yOff + offset; - r.right = macDraw->xOff+Tk_Width(tkwin) - scalePtr->inset; - r.bottom = macDraw->yOff + offset + MAC_OSX_SCROLL_WIDTH/2; - } else { - int offset = (Tk_Width(tkwin) - MAC_OSX_SCROLL_WIDTH)/2; - - if (offset < 0) { - offset = 0; - } - - r.left = macDraw->xOff + offset; - r.top = macDraw->yOff + scalePtr->inset; - r.right = macDraw->xOff + offset + MAC_OSX_SCROLL_WIDTH/2; - r.bottom = macDraw->yOff+Tk_Height(tkwin) - scalePtr->inset; - } - - if (macScalePtr->scaleHandle == NULL) { -#ifdef TK_MAC_DEBUG_SCALE - TkMacOSXDbgMsg("Initialising scale"); -#endif - initialValue = scalePtr->value; - if (scalePtr->orient == ORIENT_HORIZONTAL) { - minValue = scalePtr->fromValue; - maxValue = scalePtr->toValue; - } else { - minValue = scalePtr->fromValue; - maxValue = scalePtr->toValue; - } - - if (scalePtr->tickInterval == 0) { - numTicks = 0; - } else { - numTicks = (maxValue - minValue)/scalePtr->tickInterval; - } - - CreateSliderControl(windowRef, &r, initialValue, minValue, maxValue, - kControlSliderPointsDownOrRight, numTicks, 1, scaleActionProc, - &(macScalePtr->scaleHandle)); - SetControlReference(macScalePtr->scaleHandle, (UInt32) scalePtr); - - if (IsWindowActive(windowRef)) { - macScalePtr->flags |= ACTIVE; - } - } else { - SetControlBounds(macScalePtr->scaleHandle, &r); - SetControl32BitValue(macScalePtr->scaleHandle, scalePtr->value); - SetControl32BitMinimum(macScalePtr->scaleHandle, scalePtr->fromValue); - SetControl32BitMaximum(macScalePtr->scaleHandle, scalePtr->toValue); - } - - /* - * Finally draw the control. - */ - - SetControlVisibility(macScalePtr->scaleHandle,true,true); - HiliteControl(macScalePtr->scaleHandle,0); - Draw1Control(macScalePtr->scaleHandle); - - if (portChanged) { - QDSwapPort(savePort, NULL); - } -done: - scalePtr->flags &= ~REDRAW_ALL; -} - -/* - *---------------------------------------------------------------------- - * - * TkpScaleElement -- - * - * Determine which part of a scale widget lies under a given - * point. - * - * Results: - * The return value is either TROUGH1, SLIDER, TROUGH2, or - * OTHER, depending on which of the scale's active elements - * (if any) is under the point at (x,y). - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkpScaleElement( - TkScale *scalePtr, /* Widget record for scale. */ - int x, int y) /* Coordinates within scalePtr's window. */ -{ - MacScale *macScalePtr = (MacScale *) scalePtr; - ControlPartCode part; - Point where; - Rect bounds; - CGrafPtr destPort, savePort; - Boolean portChanged; - -#ifdef TK_MAC_DEBUG_SCALE - TkMacOSXDbgMsg("TkpScaleElement"); -#endif - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(scalePtr->tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - - /* - * All of the calculations in this procedure mirror those in - * DisplayScrollbar. Be sure to keep the two consistent. - */ - - TkMacOSXWinBounds((TkWindow *) scalePtr->tkwin, &bounds); - where.h = x + bounds.left; - where.v = y + bounds.top; - part = TestControl(macScalePtr->scaleHandle, where); - - if (portChanged) { - QDSwapPort(savePort, NULL); - } - -#ifdef TK_MAC_DEBUG_SCALE - fprintf (stderr,"ScalePart %d, pos ( %d %d )\n", part, where.h, where.v ); -#endif - - switch (part) { - case inSlider: - return SLIDER; - case inInc: - if (scalePtr->orient == ORIENT_VERTICAL) { - return TROUGH1; - } else { - return TROUGH2; - } - case inDecr: - if (scalePtr->orient == ORIENT_VERTICAL) { - return TROUGH2; - } else { - return TROUGH1; - } - default: - return OTHER; - } -} - -/* - *-------------------------------------------------------------- - * - * MacScaleEventProc -- - * - * This procedure is invoked by the Tk dispatcher for - * ButtonPress events on scales. - * - * Results: - * None. - * - * Side effects: - * When the window gets deleted, internal structures get - * cleaned up. When it gets exposed, it is redisplayed. - * - *-------------------------------------------------------------- - */ - -static void -MacScaleEventProc( - ClientData clientData, /* Information about window. */ - XEvent *eventPtr) /* Information about event. */ -{ - MacScale *macScalePtr = (MacScale *) clientData; - Point where; - Rect bounds; - int part; - CGrafPtr destPort, savePort; - Boolean portChanged; - -#ifdef TK_MAC_DEBUG_SCALE - fprintf(stderr,"MacScaleEventProc\n" ); -#endif - - /* - * 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. - */ - - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(macScalePtr->info.tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - TkMacOSXSetUpClippingRgn(Tk_WindowId(macScalePtr->info.tkwin)); - - 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 - TkMacOSXDbgMsg("calling TestControl"); -#endif - part = TestControl(macScalePtr->scaleHandle, where); - if (part == 0) { - return; - } - - TkMacOSXTrackingLoop(1); - part = HandleControlClick(macScalePtr->scaleHandle, where, - TkMacOSXModifierState(), scaleActionProc); - TkMacOSXTrackingLoop(0); - - /* - * Update the value for the widget. - */ - - macScalePtr->info.value = GetControlValue(macScalePtr->scaleHandle); - /* TkScaleSetValue(&macScalePtr->info, macScalePtr->info.value, 1, 0); */ - - /* - * The HandleControlClick call will "eat" the ButtonUp event. We now - * generate a ButtonUp event so Tk will unset implicit grabs etc. - */ - - TkGenerateButtonEventForXPointer(Tk_WindowId(macScalePtr->info.tkwin)); - - if (portChanged) { - QDSwapPort(savePort, NULL); - } -} - -/* - *-------------------------------------------------------------- - * - * ScaleActionProc -- - * - * Callback procedure used by the Macintosh toolbox call - * HandleControlClick. This call will update the display - * while the scrollbar is being manipulated by the user. - * - * Results: - * None. - * - * Side effects: - * May change the display. - * - *-------------------------------------------------------------- - */ - -static pascal void -ScaleActionProc( - ControlRef theControl, /* Handle to scrollbat control */ - ControlPartCode partCode) /* Part of scrollbar that was "hit" */ -{ - int value; - TkScale *scalePtr = (TkScale *) GetControlReference(theControl); - -#ifdef TK_MAC_DEBUG_SCALE - TkMacOSXDbgMsg("ScaleActionProc"); -#endif - value = GetControlValue(theControl); - TkScaleSetValue(scalePtr, value, 1, 1); - Tcl_Preserve((ClientData) scalePtr); - TkMacOSXRunTclEventLoop(); - Tcl_Release((ClientData) scalePtr); -} - diff --git a/carbon/tkMacOSXScrlbr.c b/carbon/tkMacOSXScrlbr.c deleted file mode 100644 index c991c88..0000000 --- a/carbon/tkMacOSXScrlbr.c +++ /dev/null @@ -1,1017 +0,0 @@ -/* - * tkMacOSXScrollbar.c -- - * - * This file implements the Macintosh specific portion of the scrollbar - * widget. The Macintosh scrollbar may also draw a windows grow region - * under certain cases. - * - * Copyright (c) 1996 by Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkScrollbar.h" -#include "tkMacOSXDebug.h" - -#define MIN_SCROLLBAR_VALUE 0 -#define SCROLLBAR_SCALING_VALUE ((double)(LONG_MAX>>1)) - -/* - * Declaration of Mac specific scrollbar structure. - */ - -typedef struct MacScrollbar { - TkScrollbar info; /* Generic scrollbar info */ - ControlRef sbHandle; /* Scrollbar control */ - int macFlags; /* Various flags; see below */ - Rect eraseRect; /* Rect to erase before drawing control */ -} MacScrollbar; - -/* - * Flag bits for scrollbars on the Mac: - * - * ALREADY_DEAD: Non-zero means this scrollbar has been - * destroyed, but has not been cleaned up. - * IN_MODAL_LOOP: Non-zero means this scrollbar is in the middle - * of a modal loop. - * ACTIVE: Non-zero means this window is currently - * active (in the foreground). - */ - -#define ALREADY_DEAD 1 -#define IN_MODAL_LOOP 2 -#define ACTIVE 4 - -/* - * Globals uses locally in this file. - */ -static ControlActionUPP scrollActionProc = NULL; /* Pointer to func. */ -static ControlActionUPP thumbActionProc = NULL; /* Pointer to func. */ -static Point mouseDownPoint; /* Used to store the coordinates where the - * mouse was first pressed to begin dragging - * the thumb, because ThumbActionProc can't - * take any args. */ - -typedef struct ScrollbarMetrics { - SInt32 width, minHeight, minThumbHeight; - short topArrowHeight, bottomArrowHeight; - ControlSize size; -} ScrollbarMetrics; - -static ScrollbarMetrics metrics[2] = { - {15, 54, 26, 14, 14, kControlSizeNormal}, /* kThemeScrollBarMedium */ - {11, 40, 20, 10, 10, kControlSizeSmall}, /* kThemeScrollBarSmall */ -}; - -/* - * Forward declarations for procedures defined later in this file: - */ - -static pascal void ScrollbarActionProc(ControlRef theControl, - ControlPartCode partCode); -static pascal void ThumbActionProc(ControlRef theControl, - ControlPartCode partCode); -static int ScrollbarPress(MacScrollbar *, XEvent *); -static void ScrollbarEventProc(ClientData clientData, - XEvent *eventPtr); -static void UpdateControlValues(MacScrollbar *macScrollPtr); - -/* - * The class procedure table for the scrollbar widget. Leave the proc fields - * initialized to NULL, which should happen automatically because of the scope - * at which the variable is declared. - */ - -const Tk_ClassProcs tkpScrollbarProcs = { - sizeof(Tk_ClassProcs), /* size */ - NULL, /* worldChangedProc */ - NULL, /* createProc */ - NULL /* modalProc */ -}; - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInitScrollbarMetrics -- - * - * This function initializes the current system metrics for a scrollbar. - * - * Results: - * None. - * - * Side effects: - * Updates the geometry cache info for all scrollbars. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInitScrollbarMetrics(void) -{ - const short height = 100, width = 50; - ThemeTrackDrawInfo info = {0, {0, 0, height, width}, 0, 1, 0, 0, - kThemeTrackShowThumb, kThemeTrackActive, 0, {{1, 0}}}; - Rect bounds; - - ChkErr(GetThemeMetric, kThemeMetricScrollBarWidth, &metrics[0].width); - ChkErr(GetThemeMetric, kThemeMetricScrollBarMinThumbHeight, - &metrics[0].minThumbHeight); - info.kind = kThemeScrollBarMedium; - ChkErr(GetThemeTrackDragRect, &info, &bounds); - metrics[0].topArrowHeight = bounds.top; - metrics[0].bottomArrowHeight = height - bounds.bottom; - metrics[0].minHeight = metrics[0].minThumbHeight + - metrics[0].topArrowHeight + metrics[0].bottomArrowHeight; - ChkErr(GetThemeMetric, kThemeMetricSmallScrollBarWidth, &metrics[1].width); - ChkErr(GetThemeMetric, kThemeMetricSmallScrollBarMinThumbHeight, - &metrics[1].minThumbHeight); - info.kind = kThemeScrollBarSmall; - ChkErr(GetThemeTrackDragRect, &info, &bounds); - metrics[1].topArrowHeight = bounds.top; - metrics[1].bottomArrowHeight = height - bounds.bottom; - metrics[1].minHeight = metrics[1].minThumbHeight + - metrics[1].topArrowHeight + metrics[1].bottomArrowHeight; - - sprintf(tkDefScrollbarWidth, "%ld", metrics[0].width); -} - -/* - *---------------------------------------------------------------------- - * - * TkpCreateScrollbar -- - * - * Allocate a new TkScrollbar structure. - * - * Results: - * Returns a newly allocated TkScrollbar structure. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkScrollbar * -TkpCreateScrollbar( - Tk_Window tkwin) /* New Tk Window. */ -{ - static int initialized = 0; - MacScrollbar * macScrollPtr; - - if (scrollActionProc == NULL) { - scrollActionProc = NewControlActionUPP(ScrollbarActionProc); - thumbActionProc = NewControlActionUPP(ThumbActionProc); - } - if (!initialized) { - TkMacOSXInitScrollbarMetrics(); - initialized = 1; - } - macScrollPtr = ckalloc(sizeof(MacScrollbar)); - macScrollPtr->sbHandle = NULL; - macScrollPtr->macFlags = 0; - SetRect(&macScrollPtr->eraseRect, 0, 0, 0, 0); - - Tk_CreateEventHandler(tkwin, ActivateMask|ExposureMask| - StructureNotifyMask|FocusChangeMask|ButtonPressMask, - ScrollbarEventProc, (ClientData) macScrollPtr); - - return (TkScrollbar *) macScrollPtr; -} - -/* - *-------------------------------------------------------------- - * - * TkpDisplayScrollbar -- - * - * This procedure redraws the contents of a scrollbar window. It is - * invoked as a do-when-idle handler, so it only runs when there's - * nothing else for the application to do. - * - * Results: - * None. - * - * Side effects: - * Information appears on the screen. - * - *-------------------------------------------------------------- - */ - -void -TkpDisplayScrollbar( - ClientData clientData) /* Information about window. */ -{ - TkScrollbar *scrollPtr = (TkScrollbar *) clientData; - MacScrollbar *macScrollPtr = (MacScrollbar *) clientData; - Tk_Window tkwin = scrollPtr->tkwin; - CGrafPtr destPort, savePort; - Boolean portChanged; - WindowRef windowRef; - - if ((scrollPtr->tkwin == NULL) || !Tk_IsMapped(tkwin)) { - goto done; - } - - /* - * Draw the focus or any 3D relief we may have. - */ - if (scrollPtr->highlightWidth != 0) { - GC fgGC, bgGC; - - bgGC = Tk_GCForColor(scrollPtr->highlightBgColorPtr, - Tk_WindowId(tkwin)); - - if (scrollPtr->flags & GOT_FOCUS) { - fgGC = Tk_GCForColor(scrollPtr->highlightColorPtr, - Tk_WindowId(tkwin)); - TkpDrawHighlightBorder(tkwin, fgGC, bgGC, scrollPtr->highlightWidth, - Tk_WindowId(tkwin)); - } else { - TkpDrawHighlightBorder(tkwin, bgGC, bgGC, scrollPtr->highlightWidth, - Tk_WindowId(tkwin)); - } - } - Tk_Draw3DRectangle(tkwin, Tk_WindowId(tkwin), scrollPtr->bgBorder, - scrollPtr->highlightWidth, scrollPtr->highlightWidth, - Tk_Width(tkwin) - 2*scrollPtr->highlightWidth, - Tk_Height(tkwin) - 2*scrollPtr->highlightWidth, - scrollPtr->borderWidth, scrollPtr->relief); - - if (macScrollPtr->sbHandle == NULL) { - Rect r = {0, 0, 1, 1}; - - windowRef = TkMacOSXDrawableWindow(Tk_WindowId(tkwin)); - CreateScrollBarControl(windowRef, &r, 0, 0, 0, 0, true, NULL, - &(macScrollPtr->sbHandle)); - SetControlReference(macScrollPtr->sbHandle, (SInt32) scrollPtr); - - if (IsWindowActive(windowRef)) { - macScrollPtr->macFlags |= ACTIVE; - } - } - - /* - * Update the control values before we draw. - */ - - UpdateControlValues(macScrollPtr); - - /* - * Set up port for drawing Macintosh control. - */ - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - TkMacOSXSetUpClippingRgn(Tk_WindowId(tkwin)); - - /* - * Scrollbars do not erase the complete control bounds if they are wider - * than the standard width, so manually erase the extra space. - */ - - if (!EmptyRect(&macScrollPtr->eraseRect)) { - EraseRect(&macScrollPtr->eraseRect); - } - - Draw1Control(macScrollPtr->sbHandle); - - if (portChanged) { - QDSwapPort(savePort, NULL); - } - - done: - scrollPtr->flags &= ~REDRAW_PENDING; -} - -/* - *---------------------------------------------------------------------- - * - * TkpConfigureScrollbar -- - * - * This procedure is called after the generic code has finished - * processing configuration options, in order to configure platform - * specific options. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpConfigureScrollbar( - register TkScrollbar *scrollPtr) - /* Information about widget; may or may not - * already have values for some fields. */ -{ -} - -/* - *---------------------------------------------------------------------- - * - * TkpComputeScrollbarGeometry -- - * - * After changes in a scrollbar's size or configuration, this procedure - * recomputes various geometry information used in displaying the - * scrollbar. - * - * Results: - * None. - * - * Side effects: - * The scrollbar will be displayed differently. - * - *---------------------------------------------------------------------- - */ - -void -TkpComputeScrollbarGeometry( - register TkScrollbar *scrollPtr) /* Scrollbar whose geometry may - * have changed. */ -{ - int variant, fieldLength; - - if (scrollPtr->highlightWidth < 0) { - scrollPtr->highlightWidth = 0; - } - scrollPtr->inset = scrollPtr->highlightWidth + scrollPtr->borderWidth; - variant = ((scrollPtr->vertical ? Tk_Width(scrollPtr->tkwin) : - Tk_Height(scrollPtr->tkwin)) - 2 * scrollPtr->inset - < metrics[0].width) ? 1 : 0; - scrollPtr->arrowLength = (metrics[variant].topArrowHeight + - metrics[variant].bottomArrowHeight) / 2; - fieldLength = (scrollPtr->vertical ? Tk_Height(scrollPtr->tkwin) - : Tk_Width(scrollPtr->tkwin)) - - 2 * (scrollPtr->arrowLength + scrollPtr->inset); - if (fieldLength < 0) { - fieldLength = 0; - } - scrollPtr->sliderFirst = fieldLength * scrollPtr->firstFraction; - scrollPtr->sliderLast = fieldLength * scrollPtr->lastFraction; - - /* - * Adjust the slider so that some piece of it is always displayed in the - * scrollbar and so that it has at least a minimal width (so it can be - * grabbed with the mouse). - */ - - if (scrollPtr->sliderFirst > (fieldLength - 2*scrollPtr->borderWidth)) { - scrollPtr->sliderFirst = fieldLength - 2*scrollPtr->borderWidth; - } - if (scrollPtr->sliderFirst < 0) { - scrollPtr->sliderFirst = 0; - } - if (scrollPtr->sliderLast < (scrollPtr->sliderFirst + - metrics[variant].minThumbHeight)) { - scrollPtr->sliderLast = scrollPtr->sliderFirst + - metrics[variant].minThumbHeight; - } - if (scrollPtr->sliderLast > fieldLength) { - scrollPtr->sliderLast = fieldLength; - } - scrollPtr->sliderFirst += scrollPtr->inset + - metrics[variant].topArrowHeight; - scrollPtr->sliderLast += scrollPtr->inset + - metrics[variant].bottomArrowHeight; - - /* - * Register the desired geometry for the window (leave enough space for - * the two arrows plus a minimum-size slider, plus border around the whole - * window, if any). Then arrange for the window to be redisplayed. - */ - - if (scrollPtr->vertical) { - Tk_GeometryRequest(scrollPtr->tkwin, scrollPtr->width + - 2 * scrollPtr->inset, 2 * (scrollPtr->arrowLength + - scrollPtr->borderWidth + scrollPtr->inset) + - metrics[variant].minThumbHeight); - } else { - Tk_GeometryRequest(scrollPtr->tkwin, 2 * (scrollPtr->arrowLength + - scrollPtr->borderWidth + scrollPtr->inset) + - metrics[variant].minThumbHeight, scrollPtr->width + - 2 * scrollPtr->inset); - } - Tk_SetInternalBorder(scrollPtr->tkwin, scrollPtr->inset); -} - -/* - *---------------------------------------------------------------------- - * - * TkpDestroyScrollbar -- - * - * Free data structures associated with the scrollbar control. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkpDestroyScrollbar( - TkScrollbar *scrollPtr) /* Scrollbar to destroy. */ -{ - MacScrollbar *macScrollPtr = (MacScrollbar *)scrollPtr; - - if (macScrollPtr->sbHandle != NULL) { - if (!(macScrollPtr->macFlags & IN_MODAL_LOOP)) { - DisposeControl(macScrollPtr->sbHandle); - macScrollPtr->sbHandle = NULL; - } - } - macScrollPtr->macFlags |= ALREADY_DEAD; -} - -/* - *-------------------------------------------------------------- - * - * TkpScrollbarPosition -- - * - * Determine the scrollbar element corresponding to a given position. - * - * Results: - * One of TOP_ARROW, TOP_GAP, etc., indicating which element of the - * scrollbar covers the position given by (x, y). If (x,y) is outside the - * scrollbar entirely, then OUTSIDE is returned. - * - * Side effects: - * None. - * - *-------------------------------------------------------------- - */ - -int -TkpScrollbarPosition( - TkScrollbar *scrollPtr, /* Scrollbar widget record. */ - int x, int y) /* Coordinates within scrollPtr's - * window. */ -{ - MacScrollbar *macScrollPtr = (MacScrollbar *) scrollPtr; - CGrafPtr destPort, savePort; - Boolean portChanged; - int inactive = 0; - ControlPartCode part; - Point where = {y, x}; - Rect bounds; - - if ((x < scrollPtr->inset) || (x >= (Tk_Width(scrollPtr->tkwin) - - scrollPtr->inset)) || (y < scrollPtr->inset) || - (y >= (Tk_Height(scrollPtr->tkwin) - scrollPtr->inset))) { - return OUTSIDE; - } - - /* - * All of the calculations in this procedure mirror those in - * DisplayScrollbar. Be sure to keep the two consistent. On the Macintosh - * we use the OS call TestControl to do this mapping. For TestControl to - * work, the scrollbar must be active and must be in the current port. - */ - - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(scrollPtr->tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - UpdateControlValues(macScrollPtr); - if (!IsControlActive(macScrollPtr->sbHandle)) { - inactive = true; - ActivateControl(macScrollPtr->sbHandle); - } - TkMacOSXWinBounds((TkWindow *) scrollPtr->tkwin, &bounds); - where.h += bounds.left; - where.v += bounds.top; - part = TestControl(((MacScrollbar *) scrollPtr)->sbHandle, where); - if (inactive) { - DeactivateControl(macScrollPtr->sbHandle); - } - if (portChanged) { - QDSwapPort(savePort, NULL); - } - switch (part) { - case kAppearancePartUpButton: - return TOP_ARROW; - case kAppearancePartPageUpArea: - return TOP_GAP; - case kAppearancePartIndicator: - return SLIDER; - case kAppearancePartPageDownArea: - return BOTTOM_GAP; - case kAppearancePartDownButton: - return BOTTOM_ARROW; - default: - return OUTSIDE; - } -} - -/* - *-------------------------------------------------------------- - * - * ThumbActionProc -- - * - * Callback procedure used by the Macintosh toolbox call - * HandleControlClick. This call is used to track the thumb of the - * scrollbar. Unlike the ScrollbarActionProc function this function is - * called once and basically takes over tracking the scrollbar from the - * control. This is done to avoid conflicts with what the control plans - * to draw. - * - * Results: - * None. - * - * Side effects: - * May change the display. - * - *-------------------------------------------------------------- - */ - -static pascal void -ThumbActionProc( - ControlRef theControl, - ControlPartCode partCode) -{ - TkScrollbar *scrollPtr = (TkScrollbar *)(intptr_t) - GetControlReference(theControl); - MacScrollbar *macScrollPtr = (MacScrollbar *) scrollPtr; - Tcl_DString cmdString; - /*int origValue;*/ /* dead code */ - int variant; - short trackBarSize; - double oldFirstFraction, newFirstFraction; - char valueString[40]; - Point currentPoint = { 0, 0 }; - Rect trackRect; - Tcl_Interp *interp; - MouseTrackingResult trackingResult; - OSStatus err; - - if (scrollPtr == NULL) { - return; - } - - Tcl_DStringInit(&cmdString); - /*origValue = GetControl32BitValue(macScrollPtr->sbHandle);*/ /* dead code */ - GetControlBounds(macScrollPtr->sbHandle, &trackRect); - - if (scrollPtr->vertical) { - variant = (trackRect.right - trackRect.left) < metrics[0].width ? 1 : 0; - trackBarSize = trackRect.bottom - trackRect.top - - metrics[variant].topArrowHeight - - metrics[variant].bottomArrowHeight; - InsetRect(&trackRect, -25, -113); - } else { - variant = (trackRect.bottom - trackRect.top) < metrics[0].width ? 1 : 0; - trackBarSize = trackRect.right - trackRect.left - - metrics[variant].topArrowHeight - - metrics[variant].bottomArrowHeight; - InsetRect(&trackRect, -113, -25); - } - - /* - * Track the mouse while the button is held down. If the mouse is moved, - * we calculate the value that should be passed to the "command" part of - * the scrollbar. Since the mouse may move a distance too small to cause a - * change to the first fraction, each calculation must be done versus what - * the first fraction was when the mouse button was initially pressed. - * Otherwise, moving the mouse too slowly will cause the calculated - * fraction delta to be zero and the scrollbar won't respond. - */ - - oldFirstFraction = scrollPtr->firstFraction; - - TkMacOSXTrackingLoop(1); - do { - err = ChkErr(TrackMouseLocationWithOptions, NULL, - kTrackMouseLocationOptionDontConsumeMouseUp, - kEventDurationForever, ¤tPoint, NULL, &trackingResult); - if ((err == noErr) && ((trackingResult == kMouseTrackingMouseDragged) - || (trackingResult == kMouseTrackingMouseMoved))) { - /* - * Calculate where the scrollbar should move to, based on where the - * mouse button was pressed and where the scrollbar initially was - * at that time. Note that PtInRect() will return false if - * currentPoint or trackRect are not in is not in current graphics - * port, which may happen if any of the waiting idle events change - * the port (e.g. with SetPort()) but fail to restore it before - * returning and the scrollbar will lock in place. - */ - - newFirstFraction = oldFirstFraction; - if (PtInRect(currentPoint, &trackRect)) { - short pixDiff; - - if (scrollPtr->vertical) { - pixDiff = currentPoint.v - mouseDownPoint.v; - } else { - pixDiff = currentPoint.h - mouseDownPoint.h; - } - newFirstFraction += (double)pixDiff / trackBarSize; - if (newFirstFraction > 1.0) { - newFirstFraction = 1.0; - } else if (newFirstFraction < 0.0) { - newFirstFraction = 0.0; - } - } - - /* - * Move the scrollbar thumb to the new first fraction given its - * position when initially pressed and how far the mouse has - * moved. Process waiting idle tasks afterward to allow for the - * display to update. - */ - - Tcl_PrintDouble(NULL, newFirstFraction, valueString); - Tcl_DStringSetLength(&cmdString, 0); - Tcl_DStringAppend(&cmdString, scrollPtr->command, - scrollPtr->commandSize); - Tcl_DStringAppendElement(&cmdString, "moveto"); - Tcl_DStringAppendElement(&cmdString, valueString); - interp = scrollPtr->interp; - Tcl_Preserve(interp); - Tcl_EvalEx(interp, Tcl_DStringValue(&cmdString), - Tcl_DStringLength(&cmdString), TCL_EVAL_GLOBAL); - Tcl_Release(interp); - TkMacOSXRunTclEventLoop(); - } - } while ((err == noErr) && trackingResult != kMouseTrackingMouseReleased); - TkMacOSXTrackingLoop(0); - Tcl_DStringFree(&cmdString); - return; -} - -/* - *-------------------------------------------------------------- - * - * ScrollbarActionProc -- - * - * Callback procedure used by the Macintosh toolbox call - * HandleControlClick. This call will update the display while the - * scrollbar is being manipulated by the user. - * - * Results: - * None. - * - * Side effects: - * May change the display. - * - *-------------------------------------------------------------- - */ - -static pascal void -ScrollbarActionProc( - ControlRef theControl, /* Handle to scrollbat control */ - ControlPartCode partCode) /* Part of scrollbar that was "hit" */ -{ - TkScrollbar *scrollPtr = (TkScrollbar *)(intptr_t) - GetControlReference(theControl); - MacScrollbar *macScrollPtr = (MacScrollbar *) scrollPtr; - Tcl_DString cmdString; - - Tcl_DStringInit(&cmdString); - Tcl_DStringAppend(&cmdString, scrollPtr->command, - scrollPtr->commandSize); - - if ( partCode == kAppearancePartUpButton || - partCode == kAppearancePartDownButton ) { - Tcl_DStringAppendElement(&cmdString, "scroll"); - Tcl_DStringAppendElement(&cmdString, - (partCode == kAppearancePartUpButton) ? "-1" : "1"); - Tcl_DStringAppendElement(&cmdString, "unit"); - } else if (partCode == kAppearancePartPageUpArea || - partCode == kAppearancePartPageDownArea ) { - Tcl_DStringAppendElement(&cmdString, "scroll"); - Tcl_DStringAppendElement(&cmdString, - (partCode == kAppearancePartPageUpArea) ? "-1" : "1"); - Tcl_DStringAppendElement(&cmdString, "page"); - } else if (partCode == kAppearancePartIndicator) { - char valueString[TCL_DOUBLE_SPACE]; - - Tcl_PrintDouble(NULL, (GetControl32BitValue(macScrollPtr->sbHandle) - - MIN_SCROLLBAR_VALUE) / SCROLLBAR_SCALING_VALUE, valueString); - Tcl_DStringAppendElement(&cmdString, "moveto"); - Tcl_DStringAppendElement(&cmdString, valueString); - } - Tcl_Preserve(scrollPtr->interp); - Tcl_EvalEx(scrollPtr->interp, Tcl_DStringValue(&cmdString), - Tcl_DStringLength(&cmdString), TCL_EVAL_GLOBAL); - Tcl_Release(scrollPtr->interp); - Tcl_DStringFree(&cmdString); - TkMacOSXRunTclEventLoop(); -} - -/* - *-------------------------------------------------------------- - * - * ScrollbarPress -- - * - * This procedure is invoked in response to <ButtonPress> events. - * Enters a modal loop to handle scrollbar interactions. - * - *-------------------------------------------------------------- - */ - -static int -ScrollbarPress(MacScrollbar *macScrollPtr, XEvent *eventPtr) -{ - TkScrollbar *scrollPtr = &macScrollPtr->info; - Point where; - Rect bounds; - ControlPartCode part; - CGrafPtr destPort, savePort; - Boolean portChanged; - Window window; - - Tcl_Preserve(scrollPtr); - macScrollPtr->macFlags |= IN_MODAL_LOOP; - - /* - * 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. - */ - - destPort = TkMacOSXGetDrawablePort(Tk_WindowId(scrollPtr->tkwin)); - portChanged = QDSwapPort(destPort, &savePort); - TkMacOSXSetUpClippingRgn(Tk_WindowId(scrollPtr->tkwin)); - - TkMacOSXWinBounds((TkWindow *) scrollPtr->tkwin, &bounds); - where.h = eventPtr->xbutton.x + bounds.left; - where.v = eventPtr->xbutton.y + bounds.top; - part = TestControl(macScrollPtr->sbHandle, where); - TkMacOSXTrackingLoop(1); - if (part == kAppearancePartIndicator && scrollPtr->jump == false) { - /* - * Case 1: In thumb, no jump scrolling. Call track control with - * the thumb action proc which will do most of the work. - */ - - mouseDownPoint.h = where.h; - mouseDownPoint.v = where.v; - HandleControlClick(macScrollPtr->sbHandle, where, - TkMacOSXModifierState(), thumbActionProc); - } else if (part == kAppearancePartIndicator) { - /* - * Case 2: in thumb with jump scrolling. Call HandleControlClick - * with a NULL action proc. Use the new value of the control to - * set update the control. - */ - - part = HandleControlClick(macScrollPtr->sbHandle, where, - TkMacOSXModifierState(), NULL); - if (part == kAppearancePartIndicator) { - Tcl_Interp *interp = scrollPtr->interp; - Tcl_DString cmdString; - char valueString[TCL_DOUBLE_SPACE]; - - Tcl_PrintDouble(NULL, - (GetControl32BitValue(macScrollPtr->sbHandle) - - MIN_SCROLLBAR_VALUE) / SCROLLBAR_SCALING_VALUE, - valueString); - Tcl_DStringInit(&cmdString); - Tcl_DStringAppend(&cmdString, scrollPtr->command, - strlen(scrollPtr->command)); - Tcl_DStringAppendElement(&cmdString, "moveto"); - Tcl_DStringAppendElement(&cmdString, valueString); - - Tcl_Preserve(interp); - Tcl_EvalEx(interp, Tcl_DStringValue(&cmdString), - Tcl_DStringLength(&cmdString), TCL_EVAL_GLOBAL); - Tcl_Release(interp); - Tcl_DStringFree(&cmdString); - TkMacOSXRunTclEventLoop(); - } - } else if (part != 0) { - /* - * Case 3: in any other part of the scrollbar. We call - * HandleControlClick with the scrollActionProc which will do most - * all the work. - */ - - HandleControlClick(macScrollPtr->sbHandle, where, - TkMacOSXModifierState(), scrollActionProc); - - /* - * Workaround for Carbon bug where the scrollbar down arrow - * sometimes gets "stuck" after the mousebutton has been released. - */ - - if (scrollPtr->tkwin) { - TkMacOSXSetUpClippingRgn(Tk_WindowId(scrollPtr->tkwin)); - } - Draw1Control(macScrollPtr->sbHandle); - } - TkMacOSXTrackingLoop(0); - - /* - * The HandleControlClick call will "eat" the ButtonUp event. We now - * generate a ButtonUp event so Tk will unset implicit grabs etc. - */ - - if (scrollPtr->tkwin) { - window = Tk_WindowId(scrollPtr->tkwin); - TkGenerateButtonEventForXPointer(window); - } - - if (portChanged) { - QDSwapPort(savePort, NULL); - } - - if (macScrollPtr->sbHandle && (macScrollPtr->macFlags & ALREADY_DEAD)) { - DisposeControl(macScrollPtr->sbHandle); - macScrollPtr->sbHandle = NULL; - } - macScrollPtr->macFlags &= ~IN_MODAL_LOOP; - Tcl_Release(scrollPtr); - - return TCL_OK; -} - -/* - *-------------------------------------------------------------- - * - * ScrollbarEventProc -- - * - * This procedure is invoked by the Tk dispatcher for various events on - * scrollbars. - * - * Results: - * None. - * - * Side effects: - * When the window gets deleted, internal structures get cleaned up. When - * it gets exposed, it is redisplayed. - * - *-------------------------------------------------------------- - */ - -static void -ScrollbarEventProc( - ClientData clientData, /* Information about window. */ - XEvent *eventPtr) /* Information about event. */ -{ - TkScrollbar *scrollPtr = (TkScrollbar *) clientData; - MacScrollbar *macScrollPtr = (MacScrollbar *) clientData; - - if (eventPtr->type == UnmapNotify) { - TkMacOSXSetScrollbarGrow((TkWindow *) scrollPtr->tkwin, false); - } else if (eventPtr->type == ActivateNotify) { - macScrollPtr->macFlags |= ACTIVE; - TkScrollbarEventuallyRedraw((ClientData) scrollPtr); - } else if (eventPtr->type == DeactivateNotify) { - macScrollPtr->macFlags &= ~ACTIVE; - TkScrollbarEventuallyRedraw((ClientData) scrollPtr); - } else if (eventPtr->type == ButtonPress) { - ScrollbarPress(macScrollPtr, eventPtr); - } else { - TkScrollbarEventProc(clientData, eventPtr); - } -} - -/* - *-------------------------------------------------------------- - * - * UpdateControlValues -- - * - * This procedure updates the Macintosh scrollbar control to display the - * values defined by the Tk scrollbar. - * - * Results: - * None. - * - * Side effects: - * The Macintosh control is updated. - * - *-------------------------------------------------------------- - */ - -static void -UpdateControlValues( - MacScrollbar *macScrollPtr) /* Scrollbar data struct. */ -{ - TkScrollbar *scrollPtr = (TkScrollbar *) macScrollPtr; - Tk_Window tkwin = scrollPtr->tkwin; - MacDrawable *macDraw = (MacDrawable *) Tk_WindowId(scrollPtr->tkwin); - double dViewSize; - Rect contrlRect, portRect; - int variant, active; - short width, height; - - contrlRect.left = macDraw->xOff + scrollPtr->inset; - contrlRect.top = macDraw->yOff + scrollPtr->inset; - contrlRect.right = macDraw->xOff + Tk_Width(tkwin) - scrollPtr->inset; - contrlRect.bottom = macDraw->yOff + Tk_Height(tkwin) - scrollPtr->inset; - - GetPortBounds(GetWindowPort(GetControlOwner(macScrollPtr->sbHandle)), - &portRect); - - /* - * If the scrollbar is flush against the bottom right hand corner then we - * leave space to draw the grow region for the window. - */ - - if (portRect.bottom == contrlRect.bottom && - portRect.right == contrlRect.right) { - TkMacOSXSetScrollbarGrow((TkWindow *) tkwin, true); - if (macDraw->toplevel && - TkMacOSXResizable(macDraw->toplevel->winPtr)) { - int growSize; - - switch (TkMacOSXWindowClass(macDraw->toplevel->winPtr)) { - case kFloatingWindowClass: - case kUtilityWindowClass: - growSize = metrics[1].width - 1; - break; - case kDocumentWindowClass: - case kMovableAlertWindowClass: - case kMovableModalWindowClass: - default: - growSize = metrics[0].width - 1; - break; - } - if (scrollPtr->vertical) { - contrlRect.bottom -= growSize; - } else { - contrlRect.right -= growSize; - } - } - } else { - TkMacOSXSetScrollbarGrow((TkWindow *) tkwin, false); - } - - if (IsControlVisible (macScrollPtr->sbHandle)) { - SetControlVisibility(macScrollPtr->sbHandle, false, false); - } - - if (scrollPtr->vertical) { - width = contrlRect.right - contrlRect.left; - height = contrlRect.bottom - contrlRect.top; - } else { - width = contrlRect.bottom - contrlRect.top; - height = contrlRect.right - contrlRect.left; - } - variant = width < metrics[0].width ? 1 : 0; - SetControlData(macScrollPtr->sbHandle, kControlEntireControl, - kControlSizeTag, sizeof(ControlSize), - &(metrics[variant].size)); - - macScrollPtr->eraseRect = contrlRect; - if (scrollPtr->vertical) { - macScrollPtr->eraseRect.left += metrics[variant].width; - } else { - macScrollPtr->eraseRect.top += metrics[variant].width; - } - - /* - * Ensure we set scrollbar control bounds only once all size adjustments - * have been computed. - */ - - SetControlBounds(macScrollPtr->sbHandle, &contrlRect); - - /* - * Given the Tk parameters for the fractions of the start and end of the - * thumb, the following calculation determines the location for the - * Macintosh thumb. The Aqua scroll control works as follows. The - * scrollbar's value is the position of the left (or top) side of the view - * area in the content area being scrolled. The maximum value of the - * control is therefore the dimension of the content area less the size of - * the view area. Since these values are all integers, and Tk gives the - * thumb position as fractions, we have introduced a scaling factor. - */ - - dViewSize = (scrollPtr->lastFraction - scrollPtr->firstFraction) - * SCROLLBAR_SCALING_VALUE; - SetControl32BitMinimum(macScrollPtr->sbHandle, MIN_SCROLLBAR_VALUE); - SetControl32BitMaximum(macScrollPtr->sbHandle, MIN_SCROLLBAR_VALUE + - SCROLLBAR_SCALING_VALUE - dViewSize); - SetControlViewSize(macScrollPtr->sbHandle, dViewSize); - SetControl32BitValue(macScrollPtr->sbHandle, MIN_SCROLLBAR_VALUE + - SCROLLBAR_SCALING_VALUE * scrollPtr->firstFraction); - - if((scrollPtr->firstFraction <= 0.0 && scrollPtr->lastFraction >= 1.0) - || height <= metrics[variant].minHeight) { - /* Disable scrollbar */ - SetControl32BitMaximum(macScrollPtr->sbHandle, MIN_SCROLLBAR_VALUE); - } - active = ((macScrollPtr->macFlags & ACTIVE) != 0); - if (active != IsControlActive(macScrollPtr->sbHandle)) { - if (active) { - ActivateControl(macScrollPtr->sbHandle); - } else { - DeactivateControl(macScrollPtr->sbHandle); - } - } - SetControlVisibility(macScrollPtr->sbHandle, true, false); -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 78 - * End: - */ diff --git a/carbon/tkMacOSXSend.c b/carbon/tkMacOSXSend.c deleted file mode 100644 index df6b2af..0000000 --- a/carbon/tkMacOSXSend.c +++ /dev/null @@ -1,506 +0,0 @@ -/* - * tkMacOSXSend.c -- - * - * This file provides procedures that implement the "send" command, - * allowing commands to be passed from interpreter to interpreter. This - * current implementation for the Mac has most functionality stubed out. - * - * The current plan, which we have not had time to implement, is for the - * first Wish app to create a gestalt of type 'WIsH'. This gestalt will - * point to a table, in system memory, of Tk apps. Each Tk app, when it - * starts up, will register their name, and process ID, in this table. - * This will allow us to implement "tk appname". - * - * Then the send command will look up the process id of the target app in - * this table, and send an AppleEvent to that process. The AppleEvent - * handler is much like the do script handler, except that you have to - * specify the name of the tk app as well, since there may be many - * interps in one wish app, and you need to send it to the right one. - * - * Implementing this has been on our list of things to do, but what with - * the demise of Tcl at Sun, and the lack of resources at Scriptics it - * may not get done for awhile. So this sketch is offered for the brave - * to attempt if they need the functionality... - * - * Copyright (c) 1989-1994 The Regents of the University of California. - * Copyright (c) 1994-1998 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXInt.h" - -/* - * The following structure is used to keep track of the interpreters - * registered by this process. - */ - -typedef struct RegisteredInterp { - char *name; /* Interpreter's name (malloc-ed). */ - Tcl_Interp *interp; /* Interpreter associated with name. */ - struct RegisteredInterp *nextPtr; - /* Next in list of names associated with - * interps in this process. NULL means end of - * list. */ -} RegisteredInterp; - -/* - * A registry of all interpreters for a display is kept in a property - * "InterpRegistry" on the root window of the display. It is organized as a - * series of zero or more concatenated strings (in no particular order), each - * of the form - * window space name '\0' - * where "window" is the hex id of the comm. window to use to talk to an - * interpreter named "name". - * - * When the registry is being manipulated by an application (e.g. to add or - * remove an entry), it is loaded into memory using a structure of the - * following type: - */ - -typedef struct NameRegistry { - TkDisplay *dispPtr; /* Display from which the registry was - * read. */ - int locked; /* Non-zero means that the display was locked - * when the property was read in. */ - int modified; /* Non-zero means that the property has been - * modified, so it needs to be written out - * when the NameRegistry is closed. */ - unsigned long propLength; /* Length of the property, in bytes. */ - char *property; /* The contents of the property, or NULL if - * none. See format description above; this is - * *not* terminated by the first null - * character. Dynamically allocated. */ - int allocedByX; /* Non-zero means must free property with - * XFree; zero means use ckfree. */ -} NameRegistry; - -static int initialized = false; /* A flag to denote if we have initialized - * yet. */ - -static RegisteredInterp *interpListPtr = NULL; - /* List of all interpreters registered by this - * process. */ - -/* - * The information below is used for communication between processes during - * "send" commands. Each process keeps a private window, never even mapped, - * with one property, "Comm". When a command is sent to an interpreter, the - * command is appended to the comm property of the communication window - * associated with the interp's process. Similarly, when a result is returned - * from a sent command, it is also appended to the comm property. - * - * Each command and each result takes the form of ASCII text. For a command, - * the text consists of a zero character followed by several null-terminated - * ASCII strings. The first string consists of the single letter "c". - * Subsequent strings have the form "option value" where the following options - * are supported: - * - * -r commWindow serial - * - * This option means that a response should be sent to the window whose X - * identifier is "commWindow" (in hex), and the response should be - * identified with the serial number given by "serial" (in decimal). If - * this option isn't specified then the send is asynchronous and no - * response is sent. - * - * -n name - * - * "Name" gives the name of the application for which the command is - * intended. This option must be present. - * - * -s script - * - * "Script" is the script to be executed. This option must be present. - * - * The options may appear in any order. The -n and -s options must be present, - * but -r may be omitted for asynchronous RPCs. For compatibility with future - * releases that may add new features, there may be additional options - * present; as long as they start with a "-" character, they will be ignored. - * - * - * A result also consists of a zero character followed by several null- - * terminated ASCII strings. The first string consists of the single letter - * "r". Subsequent strings have the form "option value" where the following - * options are supported: - * - * -s serial - * - * Identifies the command for which this is the result. It is the same as - * the "serial" field from the -s option in the command. This option must - * be present. - * - * -c code - * - * "Code" is the completion code for the script, in decimal. If the code - * is omitted it defaults to TCL_OK. - * - * -r result - * - * "Result" is the result string for the script, which may be either a - * result or an error message. If this field is omitted then it defaults - * to an empty string. - * - * -i errorInfo - * - * "ErrorInfo" gives a string with which to initialize the errorInfo - * variable. This option may be omitted; it is ignored unless the - * completion code is TCL_ERROR. - * - * -e errorCode - * - * "ErrorCode" gives a string with with to initialize the errorCode - * variable. This option may be omitted; it is ignored unless the - * completion code is TCL_ERROR. - * - * Options may appear in any order, and only the -s option must be present. As - * with commands, there may be additional options besides these; unknown - * options are ignored. - */ - -/* - * Maximum size property that can be read at one time by this module: - */ - -#define MAX_PROP_WORDS 100000 - -/* - * Forward declarations for procedures defined later in this file: - */ - -static int SendInit(Tcl_Interp *interp); - -/* - *-------------------------------------------------------------- - * - * Tk_SetAppName -- - * - * This procedure is called to associate an ASCII name with a Tk - * application. If the application has already been named, the name - * replaces the old one. - * - * Results: - * The return value is the name actually given to the application. This - * will normally be the same as name, but if name was already in use for - * an application then a name of the form "name #2" will be chosen, with - * a high enough number to make the name unique. - * - * Side effects: - * Registration info is saved, thereby allowing the "send" command to be - * used later to invoke commands in the application. In addition, the - * "send" command is created in the application's interpreter. The - * registration will be removed automatically if the interpreter is - * deleted or the "send" command is removed. - * - *-------------------------------------------------------------- - */ - -const char * -Tk_SetAppName( - Tk_Window tkwin, /* Token for any window in the application to - * be named: it is just used to identify the - * application and the display. */ - const char *name) /* The name that will be used to refer to the - * interpreter in later "send" commands. Must - * be globally unique. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - Tcl_Interp *interp = winPtr->mainPtr->interp; - int i, suffix, offset, result; - RegisteredInterp *riPtr, *prevPtr; - const char *actualName; - Tcl_DString dString; - Tcl_Obj *resultObjPtr, *interpNamePtr; - char *interpName; - - if (!initialized) { - SendInit(interp); - } - - /* - * See if the application is already registered; if so, remove its current - * name from the registry. The deletion of the command will take care of - * disposing of this entry. - */ - - for (riPtr = interpListPtr, prevPtr = NULL; riPtr != NULL; - prevPtr = riPtr, riPtr = riPtr->nextPtr) { - if (riPtr->interp == interp) { - if (prevPtr == NULL) { - interpListPtr = interpListPtr->nextPtr; - } else { - prevPtr->nextPtr = riPtr->nextPtr; - } - break; - } - } - - /* - * Pick a name to use for the application. Use "name" if it's not already - * in use. Otherwise add a suffix such as " #2", trying larger and larger - * numbers until we eventually find one that is unique. - */ - - actualName = name; - suffix = 1; - offset = 0; - Tcl_DStringInit(&dString); - - TkGetInterpNames(interp, tkwin); - resultObjPtr = Tcl_GetObjResult(interp); - Tcl_IncrRefCount(resultObjPtr); - for (i = 0; ; ) { - result = Tcl_ListObjIndex(NULL, resultObjPtr, i, &interpNamePtr); - if (result != TCL_OK || interpNamePtr == NULL) { - break; - } - interpName = Tcl_GetString(interpNamePtr); - if (strcmp(actualName, interpName) == 0) { - if (suffix == 1) { - Tcl_DStringAppend(&dString, name, -1); - Tcl_DStringAppend(&dString, " #", 2); - offset = Tcl_DStringLength(&dString); - Tcl_DStringSetLength(&dString, offset + 10); - actualName = Tcl_DStringValue(&dString); - } - suffix++; - sprintf(Tcl_DStringValue(&dString) + offset, "%d", suffix); - i = 0; - } else { - i++; - } - } - - Tcl_DecrRefCount(resultObjPtr); - Tcl_ResetResult(interp); - - /* - * We have found a unique name. Now add it to the registry. - */ - - riPtr = ckalloc(sizeof(RegisteredInterp)); - riPtr->interp = interp; - riPtr->name = ckalloc(strlen(actualName) + 1); - riPtr->nextPtr = interpListPtr; - interpListPtr = riPtr; - strcpy(riPtr->name, actualName); - - /* - * TODO: DeleteProc - */ - - Tcl_CreateObjCommand(interp, "send", Tk_SendObjCmd, riPtr, NULL); - if (Tcl_IsSafe(interp)) { - Tcl_HideCommand(interp, "send", "send"); - } - Tcl_DStringFree(&dString); - - return riPtr->name; -} - -/* - *-------------------------------------------------------------- - * - * Tk_SendObjCmd -- - * - * This procedure is invoked to process the "send" Tcl command. See the - * user documentation for details on what it does. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See the user documentation. - * - *-------------------------------------------------------------- - */ - -int -Tk_SendObjCmd( - ClientData clientData, /* Used only for deletion */ - 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; - /*int async = 0;*/ - int i, index, firstArg; - RegisteredInterp *riPtr; - Tcl_Obj *listObjPtr; - int result = TCL_OK; - - for (i = 1; i < (objc - 1); ) { - stringRep = Tcl_GetString(objv[i]); - if (stringRep[0] == '-') { - if (Tcl_GetIndexFromObj(interp, objv[i], sendOptions, "option", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (index == 0) { - /*async = 1;*/ - i++; - } else if (index == 1) { - i += 2; - } else { - i++; - } - } else { - break; - } - } - - if (objc < (i + 2)) { - Tcl_WrongNumArgs(interp, 1, objv, - "?-option value ...? interpName arg ?arg ...?"); - return TCL_ERROR; - } - - destName = Tcl_GetString(objv[i]); - firstArg = i + 1; - - /* - * See if the target interpreter is local. If so, execute the command - * directly without going through the DDE server. The only tricky thing is - * passing the result from the target interpreter to the invoking - * interpreter. Watch out: they could be the same! - */ - - for (riPtr = interpListPtr; (riPtr != NULL) - && (strcmp(destName, riPtr->name)); riPtr = riPtr->nextPtr) { - /* - * Empty loop body. - */ - } - - if (riPtr != NULL) { - /* - * This command is to a local interp. No need to go through the - * server. - */ - - Tcl_Interp *localInterp; - - Tcl_Preserve(riPtr); - localInterp = riPtr->interp; - Tcl_Preserve(localInterp); - if (firstArg == (objc - 1)) { - /* - * This might be one of those cases where the new parser is - * faster. - */ - - result = Tcl_EvalObjEx(localInterp, objv[firstArg], - TCL_EVAL_DIRECT); - } else { - listObjPtr = Tcl_NewListObj(0, NULL); - for (i = firstArg; i < objc; i++) { - Tcl_ListObjAppendList(interp, listObjPtr, objv[i]); - } - Tcl_IncrRefCount(listObjPtr); - result = Tcl_EvalObjEx(localInterp, listObjPtr, TCL_EVAL_DIRECT); - Tcl_DecrRefCount(listObjPtr); - } - if (interp != localInterp) { - if (result == TCL_ERROR) { - /* Tcl_Obj *errorObjPtr; */ - - /* - * An error occurred, so transfer error information from the - * destination interpreter back to our interpreter. Must clear - * interp's result before calling Tcl_AddErrorInfo, since - * Tcl_AddErrorInfo will store the interp's result in - * errorInfo before appending riPtr's $errorInfo; we've - * already got everything we need in riPtr's $errorInfo. - */ - - Tcl_ResetResult(interp); - Tcl_AddErrorInfo(interp, Tcl_GetVar2(localInterp, - "errorInfo", NULL, TCL_GLOBAL_ONLY)); - /* errorObjPtr = Tcl_GetObjVar2(localInterp, "errorCode", NULL, - TCL_GLOBAL_ONLY); - Tcl_SetObjErrorCode(interp, errorObjPtr); */ - } - Tcl_SetObjResult(interp, Tcl_GetObjResult(localInterp)); - } - Tcl_Release(riPtr); - Tcl_Release(localInterp); - } else { - /* - * TODO: This is a non-local request. Send the script to the server - * and poll it for a result. - */ - } - - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkGetInterpNames -- - * - * This procedure is invoked to fetch a list of all the interpreter names - * currently registered for the display of a particular window. - * - * Results: - * A standard Tcl return value. Interp->result will be set to hold a list - * of all the interpreter names defined for tkwin's display. If an error - * occurs, then TCL_ERROR is returned and interp->result will hold an - * error message. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkGetInterpNames( - Tcl_Interp *interp, /* Interpreter for returning a result. */ - Tk_Window tkwin) /* Window whose display is to be used for the - * lookup. */ -{ - Tcl_Obj *listObjPtr; - RegisteredInterp *riPtr; - - listObjPtr = Tcl_NewListObj(0, NULL); - riPtr = interpListPtr; - while (riPtr != NULL) { - Tcl_ListObjAppendElement(interp, listObjPtr, - Tcl_NewStringObj(riPtr->name, -1)); - riPtr = riPtr->nextPtr; - } - - Tcl_SetObjResult(interp, listObjPtr); - return TCL_OK; -} - -/* - *-------------------------------------------------------------- - * - * SendInit -- - * - * This procedure is called to initialize the communication channels for - * sending commands and receiving results. - * - * Results: - * None. - * - * Side effects: - * Sets up various data structures and windows. - * - *-------------------------------------------------------------- - */ - -static int -SendInit( - Tcl_Interp *interp) /* Interpreter to use for error reporting (no - * errors are ever returned, but the - * interpreter is needed anyway). */ -{ - return TCL_OK; -} diff --git a/carbon/tkMacOSXSubwindows.c b/carbon/tkMacOSXSubwindows.c deleted file mode 100644 index 437906f..0000000 --- a/carbon/tkMacOSXSubwindows.c +++ /dev/null @@ -1,1476 +0,0 @@ -/* - * tkMacOSXSubwindows.c -- - * - * Implements subwindows for the macintosh version of Tk. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXDebug.h" -#include "tkMacOSXWm.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_CLIP_REGIONS -#endif -*/ - -/* - * Prototypes for functions used only in this file. - */ - -static void MoveResizeWindow(MacDrawable *macWin); -static void GenerateConfigureNotify(TkWindow *winPtr, - int includeWin); -static void UpdateOffsets(TkWindow *winPtr, int deltaX, - int deltaY); -static void NotifyVisibility(TkWindow *winPtr, XEvent *eventPtr); - -/* - *---------------------------------------------------------------------- - * - * AllocGWorld -- - * Simplifies the allocation of new drawable ports. - * - *---------------------------------------------------------------------- - */ - -static inline void -AllocGWorld( - int width, - int height, - int mono, - CGrafPtr *grafPtrPtr) -{ - Rect bounds = {0, 0, height, width}; - -#ifdef __LITTLE_ENDIAN__ - ChkErr(NewGWorld, grafPtrPtr, mono ? 1 : 0, &bounds, NULL, NULL, - kNativeEndianPixMap); -#else - ChkErr(NewGWorld, grafPtrPtr, mono ? 1 : 0, &bounds, NULL, NULL, 0); -#endif -} - -/* - *---------------------------------------------------------------------- - * - * XDestroyWindow -- - * - * Dealocates the given X Window. - * - * Results: - * The window id is returned. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XDestroyWindow( - Display *display, /* Display. */ - Window window) /* Window. */ -{ - MacDrawable *macWin = (MacDrawable *) window; - WindowRef winRef; - - /* - * Remove any dangling pointers that may exist if the window we are - * deleting is being tracked by the grab code. - */ - - TkPointerDeadWindow(macWin->winPtr); - macWin->toplevel->referenceCount--; - - if (!Tk_IsTopLevel(macWin->winPtr)) { - TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); - if (macWin->winPtr->parentPtr != NULL) { - TkMacOSXInvalClipRgns((Tk_Window) macWin->winPtr->parentPtr); - } - if (macWin->visRgn) { - CFRelease(macWin->visRgn); - } - if (macWin->aboveVisRgn) { - CFRelease(macWin->aboveVisRgn); - } - - if (macWin->toplevel->referenceCount == 0) { - ckfree(macWin->toplevel); - } - ckfree(macWin); - return; - } - - /* - * We are relying on the Activate Mac OS event to pass the focus away from - * a window that is getting Destroyed to the Front non-floating window. BUT - * we don't get activate events when a floating window is destroyed, since - * the front non-floating window doesn't in fact get activated... So maybe - * we can check here and if we are destroying a floating window, we can - * pass the focus back to the front non-floating window... - */ - - if (macWin->grafPtr != NULL) { - TkWindow *focusPtr = TkGetFocusWin(macWin->winPtr); - - if (focusPtr == NULL - || (focusPtr->mainPtr->winPtr == macWin->winPtr)) { - winRef = TkMacOSXDrawableWindow(window); - if (TkpIsWindowFloating (winRef)) { - Window window = TkMacOSXGetXWindow(ActiveNonFloatingWindow()); - - if (window != None) { - TkMacOSXGenerateFocusEvent(window, 1); - } - } - } - } - if (macWin->visRgn) { - CFRelease(macWin->visRgn); - } - if (macWin->aboveVisRgn) { - CFRelease(macWin->aboveVisRgn); - } - - /* - * Delete the Mac window and remove it from the windowTable. The window - * could be NULL if the window was never mapped. However, we don't do this - * for embedded windows, they don't go in the window list, and they do not - * own their portPtr's. - */ - - if (!Tk_IsEmbedded(macWin->winPtr)) { - WindowRef winRef = TkMacOSXDrawableWindow(window); - - if (winRef) { - TkMacOSXWindowList *listPtr, *prevPtr; - WindowGroupRef group; - - if (GetWindowProperty(winRef, 'Tk ', 'TsGp', sizeof(group), NULL, - &group) == noErr) { - TkDisplay *dispPtr = TkGetDisplayList(); - ItemCount i = CountWindowGroupContents(group, - kWindowGroupContentsReturnWindows); - WindowRef macWin; - WindowGroupRef newGroup; - Window window; - - while (i > 0) { - ChkErr(GetIndexedWindow, group, i--, 0, &macWin); - if (!macWin) { - continue; - } - - window = TkMacOSXGetXWindow(macWin); - newGroup = NULL; - if (window != None) { - TkWindow *winPtr = (TkWindow *) - Tk_IdToWindow(dispPtr->display, window); - - if (winPtr && winPtr->wmInfoPtr) { - newGroup = GetWindowGroupOfClass( - winPtr->wmInfoPtr->macClass); - } - } - if (!newGroup) { - newGroup = - GetWindowGroupOfClass(kDocumentWindowClass); - } - ChkErr(SetWindowGroup, macWin, newGroup); - } - ChkErr(SetWindowGroupOwner, group, NULL); - ChkErr(ReleaseWindowGroup, group); - } - TkMacOSXUnregisterMacWindow(winRef); - DisposeWindow(winRef); - - for (listPtr=tkMacOSXWindowListPtr, prevPtr=NULL; - tkMacOSXWindowListPtr != NULL; - prevPtr=listPtr, listPtr=listPtr->nextPtr) { - if (listPtr->winPtr == macWin->winPtr) { - if (prevPtr == NULL) { - tkMacOSXWindowListPtr = listPtr->nextPtr; - } else { - prevPtr->nextPtr = listPtr->nextPtr; - } - ckfree(listPtr); - break; - } - } - } - } - - macWin->grafPtr = NULL; - - /* - * Delay deletion of a toplevel data structure untill all children have - * been deleted. - */ - - if (macWin->toplevel->referenceCount == 0) { - ckfree(macWin->toplevel); - } -} - -/* - *---------------------------------------------------------------------- - * - * XMapWindow -- - * - * Map the given X Window to the screen. See X window documentation for - * more details. - * - * Results: - * None. - * - * Side effects: - * The subwindow or toplevel may appear on the screen. - * - *---------------------------------------------------------------------- - */ - -void -XMapWindow( - Display *display, /* Display. */ - Window window) /* Window. */ -{ - MacDrawable *macWin = (MacDrawable *) window; - XEvent event; - - /* - * Under certain situations it's possible for this function to be called - * before the toplevel window it's associated with has actually been - * mapped. In that case we need to create the real Macintosh window now as - * this function as well as other X functions assume that the portPtr is - * valid. - */ - - if (!TkMacOSXHostToplevelExists(macWin->toplevel->winPtr)) { - TkMacOSXMakeRealWindowExist(macWin->toplevel->winPtr); - } - - display->request++; - macWin->winPtr->flags |= TK_MAPPED; - if (Tk_IsTopLevel(macWin->winPtr)) { - if (!Tk_IsEmbedded(macWin->winPtr)) { - /* - * XXX This should be ShowSheetWindow for kSheetWindowClass - * XXX windows that have a wmPtr->master parent set. - */ - - WindowRef wRef = TkMacOSXDrawableWindow(window); - - if ((macWin->winPtr->wmInfoPtr->macClass == kSheetWindowClass) - && (macWin->winPtr->wmInfoPtr->master != None)) { - ShowSheetWindow(wRef, TkMacOSXDrawableWindow( - macWin->winPtr->wmInfoPtr->master)); - } else { - ShowWindow(wRef); - } - } - TkMacOSXInvalClipRgns((Tk_Window) macWin->winPtr); - - /* - * We only need to send the MapNotify event for toplevel windows. - */ - - event.xany.serial = display->request; - event.xany.send_event = False; - event.xany.display = display; - - event.xmap.window = window; - event.xmap.type = MapNotify; - event.xmap.event = window; - event.xmap.override_redirect = macWin->winPtr->atts.override_redirect; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - } else { - /* - * Generate damage for that area of the window. - */ - - TkMacOSXInvalClipRgns((Tk_Window) macWin->winPtr->parentPtr); - TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); - } - - /* - * Generate VisibilityNotify events for window and all mapped children. - */ - - event.xany.send_event = False; - event.xany.display = display; - event.xvisibility.type = VisibilityNotify; - event.xvisibility.state = VisibilityUnobscured; - NotifyVisibility(macWin->winPtr, &event); -} - -/* - *---------------------------------------------------------------------- - * - * NotifyVisibility -- - * - * Recursively called helper proc for XMapWindow(). - - * Results: - * None. - * - * Side effects: - * VisibilityNotify events are queued. - * - *---------------------------------------------------------------------- - */ - -static void -NotifyVisibility( - TkWindow *winPtr, - XEvent *eventPtr) -{ - if (winPtr->atts.event_mask & VisibilityChangeMask) { - eventPtr->xany.serial = LastKnownRequestProcessed(winPtr->display); - eventPtr->xvisibility.window = winPtr->window; - Tk_QueueWindowEvent(eventPtr, TCL_QUEUE_TAIL); - } - for (winPtr = winPtr->childList; winPtr != NULL; - winPtr = winPtr->nextPtr) { - if (winPtr->flags & TK_MAPPED) { - NotifyVisibility(winPtr, eventPtr); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * XUnmapWindow -- - * - * Unmap the given X Window to the screen. See X window documentation for - * more details. - * - * Results: - * None. - * - * Side effects: - * The subwindow or toplevel may be removed from the screen. - * - *---------------------------------------------------------------------- - */ - -void -XUnmapWindow( - Display *display, /* Display. */ - Window window) /* Window. */ -{ - MacDrawable *macWin = (MacDrawable *) window; - XEvent event; - - display->request++; - macWin->winPtr->flags &= ~TK_MAPPED; - if (Tk_IsTopLevel(macWin->winPtr)) { - if (!Tk_IsEmbedded(macWin->winPtr) && - macWin->winPtr->wmInfoPtr->hints.initial_state!=IconicState) { - /* - * XXX This should be HideSheetWindow for kSheetWindowClass - * XXX windows that have a wmPtr->master parent set. - */ - - WindowRef wref = TkMacOSXDrawableWindow(window); - - if ((macWin->winPtr->wmInfoPtr->macClass == kSheetWindowClass) - && (macWin->winPtr->wmInfoPtr->master != None)) { - HideSheetWindow(wref); - } else { - HideWindow(wref); - } - } - TkMacOSXInvalClipRgns((Tk_Window) macWin->winPtr); - - /* - * We only need to send the UnmapNotify event for toplevel windows. - */ - - event.xany.serial = display->request; - event.xany.send_event = False; - event.xany.display = display; - - event.xunmap.type = UnmapNotify; - event.xunmap.window = window; - event.xunmap.event = window; - event.xunmap.from_configure = false; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - } else { - /* - * Generate damage for that area of the window. - */ - - TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); - TkMacOSXInvalClipRgns((Tk_Window) macWin->winPtr->parentPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * XResizeWindow -- - * - * Resize a given X window. See X windows documentation for further - * details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XResizeWindow( - Display *display, /* Display. */ - Window window, /* Window. */ - unsigned int width, - unsigned int height) -{ - MacDrawable *macWin = (MacDrawable *) window; - - display->request++; - if (Tk_IsTopLevel(macWin->winPtr) && !Tk_IsEmbedded(macWin->winPtr)) { - WindowRef w = TkMacOSXDrawableWindow(window); - - if (w) { - Rect bounds; - - ChkErr(GetWindowBounds, w, kWindowContentRgn, &bounds); - bounds.right = bounds.left + width; - bounds.bottom = bounds.top + height; - ChkErr(SetWindowBounds, w, kWindowContentRgn, &bounds); - } - } else { - MoveResizeWindow(macWin); - } -} - -/* - *---------------------------------------------------------------------- - * - * XMoveResizeWindow -- - * - * Move or resize a given X window. See X windows documentation - * for further details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XMoveResizeWindow( - Display *display, /* Display. */ - Window window, /* Window. */ - int x, int y, - unsigned int width, - unsigned int height) -{ - MacDrawable *macWin = (MacDrawable *) window; - - display->request++; - if (Tk_IsTopLevel(macWin->winPtr) && !Tk_IsEmbedded(macWin->winPtr)) { - WindowRef w = TkMacOSXDrawableWindow(window); - - if (w) { - Rect bounds; - - bounds.left = x + macWin->winPtr->wmInfoPtr->xInParent; - bounds.right = bounds.left + width; - bounds.top = y + macWin->winPtr->wmInfoPtr->yInParent; - bounds.bottom = bounds.top + height; - ChkErr(SetWindowBounds, w, kWindowContentRgn, &bounds); - } - } else { - MoveResizeWindow(macWin); - } -} - -/* - *---------------------------------------------------------------------- - * - * XMoveWindow -- - * - * Move a given X window. See X windows documentation for further - * details. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XMoveWindow( - Display *display, /* Display. */ - Window window, /* Window. */ - int x, int y) -{ - MacDrawable *macWin = (MacDrawable *) window; - - display->request++; - if (Tk_IsTopLevel(macWin->winPtr) && !Tk_IsEmbedded(macWin->winPtr)) { - WindowRef w = TkMacOSXDrawableWindow(window); - - if (w) { - ChkErr(MoveWindowStructure, w, x, y); - } - } else { - MoveResizeWindow(macWin); - } -} - -/* - *---------------------------------------------------------------------- - * - * MoveResizeWindow -- - * - * Helper proc for XResizeWindow, XMoveResizeWindow and XMoveWindow. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -MoveResizeWindow( - MacDrawable *macWin) -{ - int deltaX = 0, deltaY = 0, parentBorderwidth = 0; - MacDrawable *macParent = NULL; - CGrafPtr destPort = TkMacOSXGetDrawablePort((Drawable) macWin); - - /* - * Find the Parent window, for an embedded window it will be its container. - */ - - if (Tk_IsEmbedded(macWin->winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(macWin->winPtr); - - if (contWinPtr) { - macParent = contWinPtr->privatePtr; - } else { - /* - * Here we should handle out of process embedding. At this point, - * we are assuming that the changes.x,y is not maintained, if you - * need the info get it from Tk_GetRootCoords, and that the - * toplevel sits at 0,0 when it is drawn. - */ - } - } else { - /* - * TODO: update all xOff & yOffs - */ - - macParent = macWin->winPtr->parentPtr->privatePtr; - parentBorderwidth = macWin->winPtr->parentPtr->changes.border_width; - } - - if (macParent) { - deltaX = macParent->xOff + parentBorderwidth + - macWin->winPtr->changes.x - macWin->xOff; - deltaY = macParent->yOff + parentBorderwidth + - macWin->winPtr->changes.y - macWin->yOff; - } - if (destPort) { - TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); - if (macParent) { - TkMacOSXInvalClipRgns((Tk_Window) macParent->winPtr); - } - } - UpdateOffsets(macWin->winPtr, deltaX, deltaY); - if (destPort) { - TkMacOSXInvalidateWindow(macWin, TK_PARENT_WINDOW); - } - GenerateConfigureNotify(macWin->winPtr, 0); -} - -/* - *---------------------------------------------------------------------- - * - * GenerateConfigureNotify -- - * - * Generates ConfigureNotify events for all the child widgets of the - * widget passed in the winPtr parameter. If includeWin is true, also - * generates ConfigureNotify event for the widget itself. - * - * Results: - * None. - * - * Side effects: - * ConfigureNotify events will be posted. - * - *---------------------------------------------------------------------- - */ - -static void -GenerateConfigureNotify( - TkWindow *winPtr, - int includeWin) -{ - TkWindow *childPtr; - - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - if (!Tk_IsMapped(childPtr) || Tk_IsTopLevel(childPtr)) { - continue; - } - GenerateConfigureNotify(childPtr, 1); - } - if (includeWin) { - TkDoConfigureNotify(winPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * XRaiseWindow -- - * - * Change the stacking order of a window. - * - * Results: - * None. - * - * Side effects: - * Changes the stacking order of the specified window. - * - *---------------------------------------------------------------------- - */ - -void -XRaiseWindow( - Display *display, /* Display. */ - Window window) /* Window. */ -{ - MacDrawable *macWin = (MacDrawable *) window; - - display->request++; - if (Tk_IsTopLevel(macWin->winPtr) && !Tk_IsEmbedded(macWin->winPtr)) { - TkWmRestackToplevel(macWin->winPtr, Above, NULL); - } else { - /* - * TODO: this should generate damage - */ - } -} - -#if 0 -/* - *---------------------------------------------------------------------- - * - * XLowerWindow -- - * - * Change the stacking order of a window. - * - * Results: - * None. - * - * Side effects: - * Changes the stacking order of the specified window. - * - *---------------------------------------------------------------------- - */ - -void -XLowerWindow( - Display *display, /* Display. */ - Window window) /* Window. */ -{ - MacDrawable *macWin = (MacDrawable *) window; - - display->request++; - if (Tk_IsTopLevel(macWin->winPtr) && !Tk_IsEmbedded(macWin->winPtr)) { - TkWmRestackToplevel(macWin->winPtr, Below, NULL); - } else { - /* - * TODO: this should generate damage - */ - } -} -#endif - -/* - *---------------------------------------------------------------------- - * - * XConfigureWindow -- - * - * Change the size, position, stacking, or border of the specified window. - * - * Results: - * None. - * - * Side effects: - * Changes the attributes of the specified window. Note that we ignore the - * passed in values and use the values stored in the TkWindow data - * structure. - * - *---------------------------------------------------------------------- - */ - -void -XConfigureWindow( - Display *display, /* Display. */ - Window w, /* Window. */ - unsigned int value_mask, - XWindowChanges *values) -{ - MacDrawable *macWin = (MacDrawable *) w; - TkWindow *winPtr = macWin->winPtr; - - display->request++; - - /* - * Change the shape and/or position of the window. - */ - - if (value_mask & (CWX|CWY|CWWidth|CWHeight)) { - XMoveResizeWindow(display, w, winPtr->changes.x, winPtr->changes.y, - winPtr->changes.width, winPtr->changes.height); - } - - /* - * Change the stacking order of the window. Tk actually keeps all the - * information we need for stacking order. All we need to do is make sure - * the clipping regions get updated and generate damage that will ensure - * things get drawn correctly. - */ - - if (value_mask & CWStackMode) { - Rect bounds; - WindowRef wRef = TkMacOSXDrawableWindow(w); - - if (wRef) { - TkMacOSXInvalClipRgns((Tk_Window) winPtr->parentPtr); - TkMacOSXWinBounds(winPtr, &bounds); - InvalWindowRect(wRef, &bounds); - } - } - - /* TkGenWMMoveRequestEvent(macWin->winPtr, - macWin->winPtr->changes.x, macWin->winPtr->changes.y); */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXUpdateClipRgn -- - * - * This function updates the cliping regions for a given window and all of - * its children. Once updated the TK_CLIP_INVALID flag in the subwindow - * data structure is unset. The TK_CLIP_INVALID flag should always be - * unset before any drawing is attempted. - * - * Results: - * None. - * - * Side effects: - * The clip regions for the window and its children are updated. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXUpdateClipRgn( - TkWindow *winPtr) -{ - MacDrawable *macWin; - - if (winPtr == NULL) { - return; - } - macWin = winPtr->privatePtr; - if (macWin && macWin->flags & TK_CLIP_INVALID) { - TkWindow *win2Ptr; - - if (Tk_IsMapped(winPtr)) { - int rgnChanged = 0; - CGRect bounds; - HIMutableShapeRef rgn; - - /* - * Start with a region defined by the window bounds. - */ - - TkMacOSXWinCGBounds(winPtr, &bounds); - rgn = TkMacOSXHIShapeCreateMutableWithRect(&bounds); - - /* - * Clip away the area of any windows that may obscure this window. - * For a non-toplevel window, first, clip to the parents visible - * clip region. Second, clip away any siblings that are higher in - * the stacking order. For an embedded toplevel, just clip to the - * container's visible clip region. Remember, we only allow one - * contained window in a frame, and don't support any other widgets - * in the frame either. This is not currently enforced, however. - */ - - if (!Tk_IsTopLevel(winPtr)) { - TkMacOSXUpdateClipRgn(winPtr->parentPtr); - if (winPtr->parentPtr) { - ChkErr(HIShapeIntersect, - winPtr->parentPtr->privatePtr->aboveVisRgn, - rgn, rgn); - } - win2Ptr = winPtr; - while ((win2Ptr = win2Ptr->nextPtr)) { - if (Tk_IsTopLevel(win2Ptr) || !Tk_IsMapped(win2Ptr)) { - continue; - } - TkMacOSXWinCGBounds(win2Ptr, &bounds); - ChkErr(TkMacOSHIShapeDifferenceWithRect, rgn, &bounds); - } - } else if (Tk_IsEmbedded(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); - if (win2Ptr) { - TkMacOSXUpdateClipRgn(win2Ptr); - ChkErr(HIShapeIntersect, - win2Ptr->privatePtr->aboveVisRgn, rgn, rgn); - } else if (tkMacOSXEmbedHandler != NULL) { - HIShapeRef visRgn; - - TkMacOSXCheckTmpQdRgnEmpty(); - tkMacOSXEmbedHandler->getClipProc((Tk_Window) winPtr, - tkMacOSXtmpQdRgn); - visRgn = HIShapeCreateWithQDRgn(tkMacOSXtmpQdRgn); - SetEmptyRgn(tkMacOSXtmpQdRgn); - ChkErr(HIShapeIntersect, visRgn, rgn, rgn); - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } else if (winPtr->wmInfoPtr->attributes & - kWindowResizableAttribute) { - HIViewRef growBoxView; - OSErr err = HIViewFindByID(HIViewGetRoot( - TkMacOSXDrawableWindow(winPtr->window)), - kHIViewWindowGrowBoxID, &growBoxView); - - if (err == noErr) { - ChkErr(HIViewGetFrame, growBoxView, &bounds); - bounds = CGRectOffset(bounds, - -winPtr->wmInfoPtr->xInParent, - -winPtr->wmInfoPtr->yInParent); - ChkErr(TkMacOSHIShapeDifferenceWithRect, rgn, &bounds); - } - } - macWin->aboveVisRgn = HIShapeCreateCopy(rgn); - - /* - * The final clip region is the aboveVis region (or visible region) - * minus all the children of this window. If the window is a - * container, we must also subtract the region of the embedded - * window. - */ - - win2Ptr = winPtr->childList; - while (win2Ptr) { - if (Tk_IsTopLevel(win2Ptr) || !Tk_IsMapped(win2Ptr)) { - win2Ptr = win2Ptr->nextPtr; - continue; - } - TkMacOSXWinCGBounds(win2Ptr, &bounds); - ChkErr(TkMacOSHIShapeDifferenceWithRect, rgn, &bounds); - rgnChanged = 1; - win2Ptr = win2Ptr->nextPtr; - } - - if (Tk_IsContainer(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); - if (win2Ptr) { - if (Tk_IsMapped(win2Ptr)) { - TkMacOSXWinCGBounds(win2Ptr, &bounds); - ChkErr(TkMacOSHIShapeDifferenceWithRect, rgn, &bounds); - rgnChanged = 1; - } - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } - - if (rgnChanged) { - HIShapeRef diffRgn = HIShapeCreateDifference( - macWin->aboveVisRgn, rgn); - - if (!HIShapeIsEmpty(diffRgn)) { - macWin->visRgn = HIShapeCreateCopy(rgn); - } - CFRelease(diffRgn); - } - CFRelease(rgn); - } else { - /* - * An unmapped window has empty clip regions to prevent any - * (erroneous) drawing into it or its children from becoming - * visible. [Bug 940117] - */ - - if (!Tk_IsTopLevel(winPtr)) { - TkMacOSXUpdateClipRgn(winPtr->parentPtr); - } else if (Tk_IsEmbedded(winPtr)) { - win2Ptr = TkpGetOtherWindow(winPtr); - if (win2Ptr) { - TkMacOSXUpdateClipRgn(win2Ptr); - } - } - macWin->aboveVisRgn = TkMacOSXHIShapeCreateEmpty(); - } - if (!macWin->visRgn) { - macWin->visRgn = HIShapeCreateCopy(macWin->aboveVisRgn); - } - macWin->flags &= ~TK_CLIP_INVALID; - -#ifdef TK_MAC_DEBUG_CLIP_REGIONS - TkMacOSXDebugFlashRegion((Drawable) macWin, macWin->visRgn); -#endif /* TK_MAC_DEBUG_CLIP_REGIONS */ - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXVisableClipRgn -- - * - * This function returnd the Macintosh cliping region for the given - * window. A NULL Rgn means the window is not visible. - * - * Results: - * The region. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkRegion -TkMacOSXVisableClipRgn( - TkWindow *winPtr) -{ - if (winPtr->privatePtr->flags & TK_CLIP_INVALID) { - TkMacOSXUpdateClipRgn(winPtr); - } - return (TkRegion)HIShapeCreateMutableCopy(winPtr->privatePtr->visRgn); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInvalidateWindow -- - * - * This function makes the window as invalid will generate damage for the - * window. - * - * Results: - * None. - * - * Side effects: - * Damage is created. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInvalidateWindow( - MacDrawable *macWin, /* Make window that's causing damage. */ - int flag) /* Should be TK_WINDOW_ONLY or - * TK_PARENT_WINDOW */ -{ - WindowRef windowRef; - HIShapeRef rgn; - - windowRef = TkMacOSXDrawableWindow((Drawable)macWin); - if (macWin->flags & TK_CLIP_INVALID) { - TkMacOSXUpdateClipRgn(macWin->winPtr); - } - rgn = (flag == TK_WINDOW_ONLY) ? macWin->visRgn : macWin->aboveVisRgn; - if (!HIShapeIsEmpty(rgn)) { - TkMacOSXCheckTmpQdRgnEmpty(); - ChkErr(HIShapeGetAsQDRgn, rgn, tkMacOSXtmpQdRgn); - InvalWindowRgn(windowRef, tkMacOSXtmpQdRgn); - SetEmptyRgn(tkMacOSXtmpQdRgn); - } -#ifdef TK_MAC_DEBUG_CLIP_REGIONS - TkMacOSXDebugFlashRegion((Drawable) macWin, rgn); -#endif /* TK_MAC_DEBUG_CLIP_REGIONS */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetDrawableWindow -- - * - * This function returns the WindowRef for a given X drawable. - * - * Results: - * A WindowRef, or NULL for off screen pixmaps. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -WindowRef -TkMacOSXDrawableWindow( - Drawable drawable) -{ - MacDrawable *macWin = (MacDrawable *) drawable; - WindowRef result = NULL; - - if (!macWin || macWin->flags & TK_IS_PIXMAP) { - result = NULL; - } else { - result = GetWindowFromPort(TkMacOSXGetDrawablePort(drawable)); - } - return result; -} - -void * -TkMacOSXDrawable( - Drawable drawable) -{ - return TkMacOSXDrawableWindow(drawable); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetDrawablePort -- - * - * This function returns the Graphics Port for a given X drawable. - * - * Results: - * A CGrafPort. Either an off screen pixmap or a Window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void * -TkMacOSXGetDrawablePort( - Drawable drawable) -{ - MacDrawable *macWin = (MacDrawable *) drawable; - CGrafPtr resultPort = NULL; - - if (!macWin) { - return NULL; - } - - /* - * Handle toplevel windows. - */ - - if (macWin->toplevel) { - TkWindow *contWinPtr; - - if (!(macWin->toplevel->flags & TK_EMBEDDED)) { - return macWin->toplevel->grafPtr; - } - - /* - * If the Drawable is in an embedded window, use the Port of its - * container. - * - * TRICKY POINT: we can have cases when a toplevel is being destroyed - * where the winPtr for the toplevel has been freed, but the children - * are not all the way destroyed. The children will call this function - * as they are being destroyed, but Tk_IsEmbedded will return garbage. - * So we check the copy of the TK_EMBEDDED flag we put into the - * toplevel's macWin flags. - */ - - contWinPtr = TkpGetOtherWindow(macWin->toplevel->winPtr); - - resultPort = NULL; - if (contWinPtr != NULL) { - resultPort = TkMacOSXGetDrawablePort((Drawable) - contWinPtr->privatePtr); - } else if (tkMacOSXEmbedHandler != NULL) { - resultPort = tkMacOSXEmbedHandler->getPortProc((Tk_Window) - macWin->winPtr); - } - - if (!resultPort) { - /* - * FIXME: So far as I can tell, the only time that this happens is - * when we are tearing down an embedded child interpreter, and most - * of the time, this is harmless... However, we really need to find - * why the embedding loses. - */ - - TkMacOSXDbgMsg("Couldn't find container"); - } - - /* - * TODO: Here we should handle out of process embedding. - */ - - return resultPort; - } - - if ((macWin->flags & TK_IS_PIXMAP) && !macWin->grafPtr) { - AllocGWorld(macWin->size.width, macWin->size.height, - macWin->flags & TK_IS_BW_PIXMAP, &macWin->grafPtr); - } - return macWin->grafPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetRootControl -- - * - * This function returns the Root Control for a given X drawable. - * - * Results: - * A ControlRef . - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void * -TkMacOSXGetRootControl( - Drawable drawable) -{ - /* - * will probably need to fix this up for embedding - */ - - MacDrawable *macWin = (MacDrawable *) drawable; - TkWindow *contWinPtr; - - if (macWin == NULL) { - return NULL; - } - - if (!(macWin->toplevel->flags & TK_EMBEDDED)) { - return macWin->toplevel->rootControl; - } - - contWinPtr = TkpGetOtherWindow(macWin->toplevel->winPtr); - if (contWinPtr == NULL) { - return NULL; - } - - return TkMacOSXGetRootControl((Drawable) contWinPtr->privatePtr); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXInvalClipRgns -- - * - * This function invalidates the clipping regions for a given window and - * all of its children. This function should be called whenever changes - * are made to subwindows that would affect the size or position of - * windows. - * - * Results: - * None. - * - * Side effects: - * The cliping regions for the window and its children are mark invalid. - * (Make sure they are valid before drawing.) - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXInvalClipRgns( - Tk_Window tkwin) -{ - TkWindow *winPtr = (TkWindow *) tkwin; - TkWindow *childPtr; - MacDrawable *macWin = winPtr->privatePtr; - - /* - * If already marked we can stop because all descendants will also already - * be marked. - */ - - if (!macWin || macWin->flags & TK_CLIP_INVALID) { - return; - } - - macWin->flags |= TK_CLIP_INVALID; - if (macWin->visRgn) { - CFRelease(macWin->visRgn); - macWin->visRgn = NULL; - } - if (macWin->aboveVisRgn) { - CFRelease(macWin->aboveVisRgn); - macWin->aboveVisRgn = NULL; - } - - /* - * Invalidate clip regions for all children & their descendants, unless the - * child is a toplevel. - */ - - childPtr = winPtr->childList; - while (childPtr) { - if (!Tk_IsTopLevel(childPtr)) { - TkMacOSXInvalClipRgns((Tk_Window) childPtr); - } - childPtr = childPtr->nextPtr; - } - - /* - * Also, if the window is a container, mark its embedded window. - */ - - if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); - - if (childPtr) { - TkMacOSXInvalClipRgns((Tk_Window) childPtr); - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXWinBounds -- - * - * Given a Tk window this function determines the windows bounds in - * relation to the Macintosh window's coordinate system. This is also the - * same coordinate system as the Tk toplevel window in which this window - * is contained. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXWinBounds( - TkWindow *winPtr, - void *b) -{ - Rect *bounds = b; - bounds->left = winPtr->privatePtr->xOff; - bounds->top = winPtr->privatePtr->yOff; - bounds->right = bounds->left + winPtr->changes.width; - bounds->bottom = bounds->top + winPtr->changes.height; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXWinCGBounds -- - * - * Given a Tk window this function determines the windows bounds in - * relation to the Macintosh window's coordinate system. This is also the - * same coordinate system as the Tk toplevel window in which this window - * is contained. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXWinCGBounds( - TkWindow *winPtr, - CGRect *bounds) -{ - bounds->origin.x = winPtr->privatePtr->xOff; - bounds->origin.y = winPtr->privatePtr->yOff; - bounds->size.width = winPtr->changes.width; - bounds->size.height = winPtr->changes.height; -} - -/* - *---------------------------------------------------------------------- - * - * UpdateOffsets -- - * - * Updates the X & Y offsets of the given TkWindow from the TopLevel it is - * a decendant of. - * - * Results: - * None. - * - * Side effects: - * The xOff & yOff fields for the Mac window datastructure is updated to - * the proper offset. - * - *---------------------------------------------------------------------- - */ - -static void -UpdateOffsets( - TkWindow *winPtr, - int deltaX, - int deltaY) -{ - TkWindow *childPtr; - - if (winPtr->privatePtr == NULL) { - /* - * We haven't called Tk_MakeWindowExist for this window yet. The offset - * information will be postponed and calulated at that time. (This will - * usually only happen when a mapped parent is being moved but has - * child windows that have yet to be mapped.) - */ - - return; - } - - winPtr->privatePtr->xOff += deltaX; - winPtr->privatePtr->yOff += deltaY; - - childPtr = winPtr->childList; - while (childPtr != NULL) { - if (!Tk_IsTopLevel(childPtr)) { - UpdateOffsets(childPtr, deltaX, deltaY); - } - childPtr = childPtr->nextPtr; - } - - if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); - if (childPtr != NULL) { - UpdateOffsets(childPtr,deltaX,deltaY); - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetPixmap -- - * - * Creates an in memory drawing surface. - * - * Results: - * Returns a handle to a new pixmap. - * - * Side effects: - * Allocates a new Macintosh GWorld. - * - *---------------------------------------------------------------------- - */ - -Pixmap -Tk_GetPixmap( - Display *display, /* Display for new pixmap (can be null). */ - Drawable d, /* Drawable where pixmap will be used (ignored). */ - int width, /* Dimensions of pixmap. */ - int height, - int depth) /* Bits per pixel for pixmap. */ -{ - MacDrawable *macPix; - - if (display != NULL) { - display->request++; - } - macPix = ckalloc(sizeof(MacDrawable)); - macPix->winPtr = NULL; - macPix->xOff = 0; - macPix->yOff = 0; - macPix->visRgn = NULL; - macPix->aboveVisRgn = NULL; - macPix->drawRect = CGRectNull; - macPix->referenceCount = 0; - macPix->toplevel = NULL; - macPix->flags = TK_IS_PIXMAP | (depth == 1 ? TK_IS_BW_PIXMAP : 0); - macPix->grafPtr = NULL; - macPix->context = NULL; - macPix->size = CGSizeMake(width, height); - AllocGWorld(width, height, depth==1, &macPix->grafPtr); - - return (Pixmap) macPix; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_FreePixmap -- - * - * Release the resources associated with a pixmap. - * - * Results: - * None. - * - * Side effects: - * Deletes the Macintosh GWorld created by Tk_GetPixmap. - * - *---------------------------------------------------------------------- - */ - -void -Tk_FreePixmap( - Display *display, /* Display. */ - Pixmap pixmap) /* Pixmap to destroy */ -{ - MacDrawable *macPix = (MacDrawable *) pixmap; - - display->request++; - if (macPix->grafPtr) { - DisposeGWorld(macPix->grafPtr); - } - if (macPix->context) { - TkMacOSXDbgMsg("Cannot free CG backed Pixmap"); - } - ckfree(macPix); -} - -/* - * Local Variables: - * mode: c - * c-basic-offset: 4 - * fill-column: 79 - * coding: utf-8 - * End: - */ diff --git a/carbon/tkMacOSXTest.c b/carbon/tkMacOSXTest.c deleted file mode 100644 index d8e8aca..0000000 --- a/carbon/tkMacOSXTest.c +++ /dev/null @@ -1,80 +0,0 @@ -/* - * tkMacOSXTest.c -- - * - * Contains commands for platform specific tests for - * the Macintosh platform. - * - * Copyright (c) 1996 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXInt.h" - -/* - * Forward declarations of procedures defined later in this file: - */ - -static int DebuggerCmd (ClientData dummy, Tcl_Interp *interp, - int argc, const char **argv); - -/* - *---------------------------------------------------------------------- - * - * TkplatformtestInit -- - * - * Defines commands that test platform specific functionality for - * Unix platforms. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * Defines new commands. - * - *---------------------------------------------------------------------- - */ - -int -TkplatformtestInit( - Tcl_Interp *interp) /* Interpreter to add commands to. */ -{ - /* - * Add commands for platform specific tests on MacOS here. - */ - - Tcl_CreateCommand(interp, "debugger", DebuggerCmd, - (ClientData) 0, (Tcl_CmdDeleteProc *) NULL); - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * DebuggerCmd -- - * - * This procedure simply calls the low level debugger. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -DebuggerCmd( - ClientData clientData, /* Not used. */ - Tcl_Interp *interp, /* Not used. */ - int argc, /* Not used. */ - const char **argv) /* Not used. */ -{ - Debugger(); - return TCL_OK; -} diff --git a/carbon/tkMacOSXWindowEvent.c b/carbon/tkMacOSXWindowEvent.c deleted file mode 100644 index 99ab918..0000000 --- a/carbon/tkMacOSXWindowEvent.c +++ /dev/null @@ -1,984 +0,0 @@ -/* - * tkMacOSXWindowEvent.c -- - * - * This file defines the routines for both creating and handling Window - * Manager class events for Tk. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software unless - * explicitly disclaimed in individual files. - * - * Apple hereby grants permission to use, copy, modify, distribute, and - * license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that - * this notice is included verbatim in any distributions. No written - * agreement, license, or royalty fee is required for any of the - * authorized uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms described here, - * provided that the new terms are clearly indicated on the first page of - * each file where they apply. - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE SOFTWARE - * BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR - * CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS - * DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF APPLE OR THE - * AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. APPLE, - * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND - * NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND - * APPLE, THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf of the - * U.S. government, the Government shall have only "Restricted Rights" in - * the software and related documentation as defined in the Federal - * Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are - * acquiring the software on behalf of the Department of Defense, the - * software shall be classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in Clause - * 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the - * authors grant the U.S. Government and others acting in its behalf - * permission to use and distribute the software in accordance with the - * terms specified in this license. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_CLIP_REGIONS -#endif -*/ - -/* - * Declaration of functions used only in this file - */ - -static int GenerateUpdateEvent(Window window); -static int GenerateUpdates(HIMutableShapeRef updateRgn, - CGRect *updateBounds, TkWindow *winPtr); -static int GenerateActivateEvents(Window window, int activeFlag); -static void ClearPort(CGrafPtr port, HIShapeRef updateRgn); - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessApplicationEvent -- - * - * This processes Application level events, mainly activate and - * deactivate. - * - * Results: - * 0. - * - * Side effects: - * Hide or reveal floating windows. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessApplicationEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - Tcl_CmdInfo dummy; - - /* - * This is a bit of a hack. We get "show" events both when we come back - * from being hidden, and whenever we are activated. I only want to run - * the "show" proc when we have been hidden already, not as a substitute - * for <Activate>. So I use this toggle... - */ - - static int toggleHide = 0; - - switch (eventPtr->eKind) { - case kEventAppActivated: - ShowFloatingWindows(); - break; - case kEventAppDeactivated: - TkSuspendClipboard(); - HideFloatingWindows(); - break; - case kEventAppQuit: - statusPtr->stopProcessing = 1; - break; - case kEventAppHidden: - if (toggleHide == 0) { - toggleHide = 1; - if (eventPtr->interp && Tcl_GetCommandInfo(eventPtr->interp, - "::tk::mac::OnHide", &dummy)) { - Tcl_GlobalEval(eventPtr->interp, "::tk::mac::OnHide"); - } - } - statusPtr->stopProcessing = 1; - break; - case kEventAppShown: - if (toggleHide == 1) { - toggleHide = 0; - if (eventPtr->interp && Tcl_GetCommandInfo(eventPtr->interp, - "::tk::mac::OnShow", &dummy)) { - Tcl_GlobalEval(eventPtr->interp, "::tk::mac::OnShow"); - } - } - statusPtr->stopProcessing = 1; - break; - case kEventAppAvailableWindowBoundsChanged: { - static UInt32 prevId = 0; - UInt32 id; - OSStatus err; - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamTransactionID, typeUInt32, NULL, sizeof(id), NULL, - &id); - if (err != noErr || id != prevId) { - TkDisplay *dispPtr = TkGetDisplayList(); - - prevId = id; - TkMacOSXDisplayChanged(dispPtr->display); - } - /* - * Should we call ::tk::mac::OnDisplayChanged? - */ - break; - } - default: - break; - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessAppearanceEvent -- - * - * This processes Appearance events. - * - * Results: - * 0. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessAppearanceEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - switch (eventPtr->eKind) { - case kEventAppearanceScrollBarVariantChanged: - TkMacOSXInitScrollbarMetrics(); - break; - default: - break; - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXProcessWindowEvent -- - * - * This processes Window level events, mainly activate and deactivate. - * - * Results: - * 0. - * - * Side effects: - * Cause Windows to be moved forward or backward in the window stack. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXProcessWindowEvent( - TkMacOSXEvent *eventPtr, - MacEventStatus *statusPtr) -{ - OSStatus err; - WindowRef whichWindow; - Window window; - int eventFound = false; - TkDisplay *dispPtr; - TkWindow *winPtr; - - switch (eventPtr->eKind) { - case kEventWindowActivated: - case kEventWindowDeactivated: - case kEventWindowUpdate: - case kEventWindowExpanding: - case kEventWindowBoundsChanged: - case kEventWindowDragStarted: - case kEventWindowDragCompleted: - case kEventWindowConstrain: - case kEventWindowGetRegion: - case kEventWindowDrawContent: - break; - default: - return 0; - break; - } - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamDirectObject, typeWindowRef, NULL, sizeof(whichWindow), - NULL, &whichWindow); - if (err != noErr) { - return 0; - } - - window = TkMacOSXGetXWindow(whichWindow); - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, window); - - switch (eventPtr->eKind) { - case kEventWindowActivated: - case kEventWindowDeactivated: - if (window != None) { - int activate = (eventPtr->eKind == kEventWindowActivated); - - eventFound |= GenerateActivateEvents(window, activate); - eventFound |= TkMacOSXGenerateFocusEvent(window, activate); - if (winPtr) { - TkMacOSXEnterExitFullscreen(winPtr, activate); - } - statusPtr->stopProcessing = 1; - } - break; - case kEventWindowUpdate: - if (window != None && GenerateUpdateEvent(window)) { - eventFound = true; - statusPtr->stopProcessing = 1; - } - break; - case kEventWindowExpanding: - if (winPtr) { - winPtr->wmInfoPtr->hints.initial_state = - TkMacOSXIsWindowZoomed(winPtr) ? ZoomState : NormalState; - Tk_MapWindow((Tk_Window) winPtr); - - /* - * Need to process all Tk events generated by Tk_MapWindow() - * before returning to ensure all children are mapped, as - * otherwise the Activate event that follows Expanding would not - * be processed by any unmapped children. - */ - - while (Tcl_ServiceEvent(TCL_WINDOW_EVENTS)) {/*empty body*/}; - while (Tcl_DoOneEvent(TCL_IDLE_EVENTS)) {/*empty body*/}; - } - break; - case kEventWindowBoundsChanged: - if (winPtr) { - WmInfo *wmPtr = winPtr->wmInfoPtr; - UInt32 attr; - Rect bounds; - int x = -1, y = -1, width = -1, height = -1, flags = 0; - - ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamAttributes, typeUInt32, NULL, sizeof(attr), - NULL, &attr); - ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamCurrentBounds, typeQDRectangle, NULL, - sizeof(bounds), NULL, &bounds); - if (attr & kWindowBoundsChangeOriginChanged) { - x = bounds.left - wmPtr->xInParent; - y = bounds.top - wmPtr->yInParent; - flags |= TK_LOCATION_CHANGED; - } - if (attr & kWindowBoundsChangeSizeChanged) { - width = bounds.right - bounds.left; - height = bounds.bottom - bounds.top; - flags |= TK_SIZE_CHANGED; - } - TkMacOSXInvalClipRgns((Tk_Window) winPtr); - TkMacOSXInvalidateWindow((MacDrawable*) window, TK_PARENT_WINDOW); - TkGenWMConfigureEvent((Tk_Window)winPtr, x, y, width, height, - flags); - if (attr & kWindowBoundsChangeUserResize || - attr & kWindowBoundsChangeUserDrag) { - TkMacOSXRunTclEventLoop(); - } - if (wmPtr->attributes & kWindowResizableAttribute) { - HIViewRef growBoxView; - - err = HIViewFindByID(HIViewGetRoot(whichWindow), - kHIViewWindowGrowBoxID, &growBoxView); - if (err == noErr) { - ChkErr(HIViewSetNeedsDisplay, growBoxView, true); - } - } - } - break; - case kEventWindowDragStarted: - if (!(TkMacOSXModifierState() & cmdKey)) { - TkMacOSXBringWindowForward(whichWindow); - } - TkMacOSXTrackingLoop(1); - break; - case kEventWindowDragCompleted: { - Rect maxBounds, bounds, strWidths; - int h = 0, v = 0; - - TkMacOSXTrackingLoop(0); - ChkErr(GetWindowGreatestAreaDevice, whichWindow, kWindowDragRgn, NULL, - &maxBounds); - ChkErr(GetWindowBounds, whichWindow, kWindowStructureRgn, &bounds); - ChkErr(GetWindowStructureWidths, whichWindow, &strWidths); - if (bounds.left > maxBounds.right - strWidths.left) { - h = maxBounds.right - (strWidths.left ? strWidths.left : 40) - - bounds.left; - } else if (bounds.right < maxBounds.left + strWidths.right) { - h = maxBounds.left + (strWidths.right ? strWidths.right : 40) - - bounds.right; - } - if (bounds.top > maxBounds.bottom - strWidths.top) { - v = maxBounds.bottom - (strWidths.top ? strWidths.top : 40) - - bounds.top; - } else if (bounds.bottom < maxBounds.top + strWidths.bottom) { - v = maxBounds.top + (strWidths.bottom ? strWidths.bottom : 40) - - bounds.bottom; - } else if (strWidths.top && bounds.top < maxBounds.top) { - v = maxBounds.top - bounds.top; - } - if (h || v) { - OffsetRect(&bounds, h, v); - ChkErr(SetWindowBounds, whichWindow, kWindowStructureRgn,&bounds); - } - break; - } - case kEventWindowConstrain: - if (winPtr && (winPtr->wmInfoPtr->flags & WM_FULLSCREEN) && - TkMacOSXMakeFullscreen(winPtr,whichWindow,1,NULL) == TCL_OK) { - statusPtr->stopProcessing = 1; - } - break; - case kEventWindowGetRegion: - if (winPtr && (winPtr->wmInfoPtr->flags & WM_TRANSPARENT)) { - WindowRegionCode code; - - statusPtr->stopProcessing = (CallNextEventHandler( - eventPtr->callRef, eventPtr->eventRef) == noErr); - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamWindowRegionCode, typeWindowRegionCode, NULL, - sizeof(code), NULL, &code); - if (err == noErr && code == kWindowOpaqueRgn) { - RgnHandle rgn; - - err = ChkErr(GetEventParameter, eventPtr->eventRef, - kEventParamRgnHandle, typeQDRgnHandle, NULL, - sizeof(rgn), NULL, &rgn); - if (err == noErr) { - SetEmptyRgn(rgn); - statusPtr->stopProcessing = 1; - } - } - } - break; - case kEventWindowDrawContent: - if (winPtr && (winPtr->wmInfoPtr->flags & WM_TRANSPARENT)) { - CGrafPtr port; - - GetPort(&port); - ClearPort(port, NULL); - } - break; - } - - return eventFound; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateUpdateEvent -- - * - * Given a Macintosh window update event this function generates all the - * Expose XEvents needed by Tk. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateUpdateEvent( - Window window) -{ - WindowRef macWindow; - TkDisplay *dispPtr; - TkWindow *winPtr; - int result = 0; - CGRect updateBounds; - HIShapeRef rgn; - HIMutableShapeRef updateRgn; - int dx, dy; - - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *)Tk_IdToWindow(dispPtr->display, window); - - if (winPtr ==NULL ){ - return result; - } - macWindow = TkMacOSXDrawableWindow(window); - TK_IF_MAC_OS_X_API (5, HIWindowCopyShape, - ChkErr(HIWindowCopyShape, macWindow, kWindowUpdateRgn, - kHICoordSpaceWindow, &rgn); - dx = -winPtr->wmInfoPtr->xInParent; - dy = -winPtr->wmInfoPtr->yInParent; - ) TK_ELSE_MAC_OS_X (5, - Rect bounds; - - TkMacOSXCheckTmpQdRgnEmpty(); - ChkErr(GetWindowRegion, macWindow, kWindowUpdateRgn, tkMacOSXtmpQdRgn); - rgn = HIShapeCreateWithQDRgn(tkMacOSXtmpQdRgn); - SetEmptyRgn(tkMacOSXtmpQdRgn); - ChkErr(GetWindowBounds, macWindow, kWindowContentRgn, &bounds); - dx = -bounds.left; - dy = -bounds.top; - ) TK_ENDIF; - - updateRgn = HIShapeCreateMutableCopy(rgn); - CFRelease(rgn); - ChkErr(HIShapeOffset, updateRgn, dx, dy); - HIShapeGetBounds(updateRgn, &updateBounds); -#ifdef TK_MAC_DEBUG_CLIP_REGIONS - TkMacOSXDebugFlashRegion(window, updateRgn); -#endif /* TK_MAC_DEBUG_CLIP_REGIONS */ - BeginUpdate(macWindow); - if (winPtr->wmInfoPtr->flags & WM_TRANSPARENT) { - ClearPort(TkMacOSXGetDrawablePort(window), updateRgn); - } - result = GenerateUpdates(updateRgn, &updateBounds, winPtr); - EndUpdate(macWindow); - CFRelease(updateRgn); - if (result) { - /* - * Ensure there are no pending idle-time redraws that could prevent - * the just posted Expose events from generating new redraws. - */ - - Tcl_DoOneEvent(TCL_IDLE_EVENTS|TCL_DONT_WAIT); - } - return result; - } - -/* - *---------------------------------------------------------------------- - * - * GenerateUpdates -- - * - * Given a Macintosh update region and a Tk window this function geneates - * a X Expose event for the window if it is within the update region. The - * function will then recursivly have each damaged window generate Expose - * events for its child windows. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -static int -GenerateUpdates( - HIMutableShapeRef updateRgn, - CGRect *updateBounds, - TkWindow *winPtr) -{ - TkWindow *childPtr; - XEvent event; - CGRect bounds, damageBounds; - HIShapeRef boundsRgn, damageRgn; - - TkMacOSXWinCGBounds(winPtr, &bounds); - if (!CGRectIntersectsRect(bounds, *updateBounds)) { - return 0; - } - TK_IF_MAC_OS_X_API (4, HIShapeIntersectsRect, - if (!HIShapeIntersectsRect(updateRgn, &bounds)) { - return 0; - } - ) TK_ENDIF - - /* - * Compute the bounding box of the area that the damage occured in. - */ - - boundsRgn = HIShapeCreateWithRect(&bounds); - damageRgn = HIShapeCreateIntersection(updateRgn, boundsRgn); - if (HIShapeIsEmpty(damageRgn)) { - CFRelease(damageRgn); - CFRelease(boundsRgn); - return 0; - } - HIShapeGetBounds(damageRgn, &damageBounds); - ChkErr(TkMacOSHIShapeUnion, boundsRgn, updateRgn, updateRgn); - HIShapeGetBounds(updateRgn, updateBounds); - CFRelease(damageRgn); - CFRelease(boundsRgn); - - event.xany.serial = Tk_Display(winPtr)->request; - event.xany.send_event = false; - event.xany.window = Tk_WindowId(winPtr); - event.xany.display = Tk_Display(winPtr); - event.type = Expose; - event.xexpose.x = damageBounds.origin.x - bounds.origin.x; - event.xexpose.y = damageBounds.origin.y - bounds.origin.y; - event.xexpose.width = damageBounds.size.width; - event.xexpose.height = damageBounds.size.height; - event.xexpose.count = 0; - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - - /* - * Generate updates for the children of this window - */ - - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - if (!Tk_IsMapped(childPtr) || Tk_IsTopLevel(childPtr)) { - continue; - } - GenerateUpdates(updateRgn, updateBounds, childPtr); - } - - /* - * Generate updates for any contained windows - */ - - if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); - if (childPtr != NULL && Tk_IsMapped(childPtr)) { - GenerateUpdates(updateRgn, updateBounds, childPtr); - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } - - return 1; -} - -/* - *---------------------------------------------------------------------- - * - * GenerateActivateEvents -- - * - * Given a Macintosh window activate event this function generates all - * the X Activate events needed by Tk. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -int -GenerateActivateEvents( - Window window, /* Root X window for event. */ - int activeFlag) -{ - TkWindow *winPtr; - TkDisplay *dispPtr; - - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, window); - if (winPtr == NULL || winPtr->window == None) { - return false; - } - - TkGenerateActivateEvents(winPtr,activeFlag); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGenerateFocusEvent -- - * - * Given a Macintosh window activate event this function generates all - * the X Focus events needed by Tk. - * - * Results: - * True if event(s) are generated - false otherwise. - * - * Side effects: - * Additional events may be place on the Tk event queue. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXGenerateFocusEvent( - Window window, /* Root X window for event. */ - int activeFlag) -{ - XEvent event; - Tk_Window tkwin; - TkDisplay *dispPtr; - - dispPtr = TkGetDisplayList(); - tkwin = Tk_IdToWindow(dispPtr->display, window); - if (tkwin == NULL) { - return false; - } - - /* - * Don't send focus events to windows of class help or to windows with the - * kWindowNoActivatesAttribute. - */ - - if (((TkWindow *)tkwin)->wmInfoPtr->macClass == kHelpWindowClass || - ((TkWindow *)tkwin)->wmInfoPtr->attributes & - kWindowNoActivatesAttribute) { - return false; - } - - /* - * Generate FocusIn and FocusOut events. This event is only sent to the - * toplevel window. - */ - - if (activeFlag) { - event.xany.type = FocusIn; - } else { - event.xany.type = FocusOut; - } - - event.xany.serial = dispPtr->display->request; - event.xany.send_event = False; - event.xfocus.display = dispPtr->display; - event.xfocus.window = window; - event.xfocus.mode = NotifyNormal; - event.xfocus.detail = NotifyDetailNone; - - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * TkGenWMConfigureEvent -- - * - * Generate a ConfigureNotify event for Tk. Depending on the value of - * flag the values of width/height, x/y, or both may be changed. - * - * Results: - * None. - * - * Side effects: - * A ConfigureNotify event is sent to Tk. - * - *---------------------------------------------------------------------- - */ - -void -TkGenWMConfigureEvent( - Tk_Window tkwin, - int x, - int y, - int width, - int height, - int flags) -{ - XEvent event; - WmInfo *wmPtr; - TkWindow *winPtr = (TkWindow *) tkwin; - - if (tkwin == NULL) { - return; - } - - event.type = ConfigureNotify; - event.xconfigure.serial = Tk_Display(tkwin)->request; - event.xconfigure.send_event = False; - event.xconfigure.display = Tk_Display(tkwin); - event.xconfigure.event = Tk_WindowId(tkwin); - event.xconfigure.window = Tk_WindowId(tkwin); - event.xconfigure.border_width = winPtr->changes.border_width; - event.xconfigure.override_redirect = winPtr->atts.override_redirect; - if (winPtr->changes.stack_mode == Above) { - event.xconfigure.above = winPtr->changes.sibling; - } else { - event.xconfigure.above = None; - } - - if (!(flags & TK_LOCATION_CHANGED)) { - x = Tk_X(tkwin); - y = Tk_Y(tkwin); - } - if (!(flags & TK_SIZE_CHANGED)) { - width = Tk_Width(tkwin); - height = Tk_Height(tkwin); - } - event.xconfigure.x = x; - event.xconfigure.y = y; - event.xconfigure.width = width; - event.xconfigure.height = height; - - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); - - /* - * Update window manager information. - */ - - if (Tk_IsTopLevel(winPtr)) { - wmPtr = winPtr->wmInfoPtr; - if (flags & TK_LOCATION_CHANGED) { - wmPtr->x = x; - wmPtr->y = y; - wmPtr->flags &= ~(WM_NEGATIVE_X | WM_NEGATIVE_Y); - } - if ((flags & TK_SIZE_CHANGED) && !(wmPtr->flags & WM_SYNC_PENDING) && - ((width != Tk_Width(tkwin)) || (height != Tk_Height(tkwin)))) { - if ((wmPtr->width == -1) && (width == winPtr->reqWidth)) { - /* - * Don't set external width, since the user didn't change it - * from what the widgets asked for. - */ - } else { - if (wmPtr->gridWin != NULL) { - wmPtr->width = wmPtr->reqGridWidth - + (width - winPtr->reqWidth)/wmPtr->widthInc; - if (wmPtr->width < 0) { - wmPtr->width = 0; - } - } else { - wmPtr->width = width; - } - } - if ((wmPtr->height == -1) && (height == winPtr->reqHeight)) { - /* - * Don't set external height, since the user didn't change it - * from what the widgets asked for. - */ - } else { - if (wmPtr->gridWin != NULL) { - wmPtr->height = wmPtr->reqGridHeight - + (height - winPtr->reqHeight)/wmPtr->heightInc; - if (wmPtr->height < 0) { - wmPtr->height = 0; - } - } else { - wmPtr->height = height; - } - } - wmPtr->configWidth = width; - wmPtr->configHeight = height; - } - } - - /* - * Now set up the changes structure. Under X we wait for the - * ConfigureNotify to set these values. On the Mac we know imediatly that - * this is what we want - so we just set them. However, we need to make - * sure the windows clipping region is marked invalid so the change is - * visible to the subwindow. - */ - - winPtr->changes.x = x; - winPtr->changes.y = y; - winPtr->changes.width = width; - winPtr->changes.height = height; - TkMacOSXInvalClipRgns(tkwin); -} - -/* - *---------------------------------------------------------------------- - * - * TkGenWMDestroyEvent -- - * - * Generate a WM Destroy event for Tk. - * - * Results: - * None. - * - * Side effects: - * A WM_PROTOCOL/WM_DELETE_WINDOW event is sent to Tk. - * - *---------------------------------------------------------------------- - */ - -void -TkGenWMDestroyEvent( - Tk_Window tkwin) -{ - XEvent event; - - event.xany.serial = Tk_Display(tkwin)->request; - event.xany.send_event = False; - event.xany.display = Tk_Display(tkwin); - - event.xclient.window = Tk_WindowId(tkwin); - event.xclient.type = ClientMessage; - event.xclient.message_type = Tk_InternAtom(tkwin, "WM_PROTOCOLS"); - event.xclient.format = 32; - event.xclient.data.l[0] = Tk_InternAtom(tkwin, "WM_DELETE_WINDOW"); - Tk_QueueWindowEvent(&event, TCL_QUEUE_TAIL); -} - -/* - *---------------------------------------------------------------------- - * - * TkWmProtocolEventProc -- - * - * This procedure is called by the Tk_HandleEvent whenever a - * ClientMessage event arrives whose type is "WM_PROTOCOLS". This - * procedure handles the message from the window manager in an - * appropriate fashion. - * - * Results: - * None. - * - * Side effects: - * Depends on what sort of handler, if any, was set up for the protocol. - * - *---------------------------------------------------------------------- - */ - -void -TkWmProtocolEventProc( - TkWindow *winPtr, /* Window to which the event was sent. */ - XEvent *eventPtr) /* X event. */ -{ - WmInfo *wmPtr; - ProtocolHandler *protPtr; - Tcl_Interp *interp; - Atom protocol; - int result; - - wmPtr = winPtr->wmInfoPtr; - if (wmPtr == NULL) { - return; - } - protocol = (Atom) eventPtr->xclient.data.l[0]; - for (protPtr = wmPtr->protPtr; protPtr != NULL; - protPtr = protPtr->nextPtr) { - if (protocol == protPtr->protocol) { - Tcl_Preserve(protPtr); - interp = protPtr->interp; - Tcl_Preserve(interp); - result = Tcl_GlobalEval(interp, protPtr->command); - if (result != TCL_OK) { - Tcl_AppendObjToErrorInfo(interp, Tcl_ObjPrintf( - "\n (command for \"%s\" window manager protocol)", - Tk_GetAtomName((Tk_Window) winPtr, protocol))); - Tcl_BackgroundException(interp, result); - } - Tcl_Release(interp); - Tcl_Release(protPtr); - return; - } - } - - /* - * No handler was present for this protocol. If this is a WM_DELETE_WINDOW - * message then just destroy the window. - */ - - if (protocol == Tk_InternAtom((Tk_Window) winPtr, "WM_DELETE_WINDOW")) { - Tk_DestroyWindow((Tk_Window) winPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_MacOSXIsAppInFront -- - * - * Returns 1 if this app is the foreground app. - * - * Results: - * 1 if app is in front, 0 otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -Tk_MacOSXIsAppInFront(void) -{ - OSStatus err; - ProcessSerialNumber frontPsn, ourPsn = {0, kCurrentProcess}; - Boolean isFrontProcess = true; - - err = ChkErr(GetFrontProcess, &frontPsn); - if (err == noErr) { - ChkErr(SameProcess, &frontPsn, &ourPsn, &isFrontProcess); - } - - return (isFrontProcess == true); -} - -/* - *---------------------------------------------------------------------- - * - * ClearPort -- - * - * Clear (i.e. fill with transparent color) the given port. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -ClearPort( - CGrafPtr port, - HIShapeRef updateRgn) -{ - CGContextRef context; - Rect bounds; - CGRect rect; - - GetPortBounds(port, &bounds); - QDBeginCGContext(port, &context); - SyncCGContextOriginWithPort(context, port); - CGContextConcatCTM(context, CGAffineTransformMake(1.0, 0.0, 0.0, -1.0, 0.0, - bounds.bottom - bounds.top)); - if (updateRgn) { - ChkErr(HIShapeReplacePathInCGContext, updateRgn, context); - CGContextEOClip(context); - } - rect = CGRectMake(0, 0, bounds.right, bounds.bottom); - CGContextClearRect(context, rect); - QDEndCGContext(port, &context); -} - -/* - * Local Variables: - * fill-column: 78 - * c-basic-offset: 4 - * End: - */ diff --git a/carbon/tkMacOSXWm.c b/carbon/tkMacOSXWm.c deleted file mode 100644 index d4b7665..0000000 --- a/carbon/tkMacOSXWm.c +++ /dev/null @@ -1,6559 +0,0 @@ -/* - * tkMacOSXWm.c -- - * - * This module takes care of the interactions between a Tk-based - * application and the window manager. Among other things, it implements - * the "wm" command and passes geometry information to the window - * manager. - * - * Copyright (c) 1994-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkScrollbar.h" -#include "tkMacOSXWm.h" -#include "tkMacOSXEvent.h" -#include "tkMacOSXDebug.h" - -/* -#ifdef TK_MAC_DEBUG -#define TK_MAC_DEBUG_WINDOWS -#endif -*/ - -/* - * Data for [wm attributes] command: - */ -typedef enum { - WMATT_ALPHA, WMATT_FULLSCREEN, WMATT_MODIFIED, WMATT_NOTIFY, - WMATT_TITLEPATH, WMATT_TOPMOST, WMATT_TRANSPARENT, - _WMATT_LAST_ATTRIBUTE -} WmAttribute; - -static const char *const WmAttributeNames[] = { - "-alpha", "-fullscreen", "-modified", "-notify", - "-titlepath", "-topmost", "-transparent", - NULL -}; - -/* - * This is a list of all of the toplevels that have been mapped so far. It is - * used by the menu code to inval windows that were damaged by menus, and will - * eventually also be used to keep track of floating windows. - */ - -TkMacOSXWindowList *tkMacOSXWindowListPtr = NULL; - -/* - * The variable below is used to enable or disable tracing in this module. If - * tracing is enabled, then information is printed on standard output about - * interesting interactions with the window manager. - */ - -static int wmTracing = 0; - -/* - * The following structure is the official type record for geometry management - * of top-level windows. - */ - -static void TopLevelReqProc(ClientData dummy, Tk_Window tkwin); - -static const Tk_GeomMgr wmMgrType = { - "wm", /* name */ - TopLevelReqProc, /* requestProc */ - NULL, /* lostSlaveProc */ -}; - -/* - * The following keeps state for Aqua dock icon bounce notification. - */ - -static int tkMacOSXWmAttrNotifyVal = 0; - -/* - * Hash table for Mac Window -> TkWindow mapping. - */ - -static Tcl_HashTable windowTable; -static int windowHashInit = false; - -/* - * Forward declarations for procedures defined in this file: - */ - -static void InitialWindowBounds(TkWindow *winPtr, - WindowRef macWindow, Rect *geometry); -static int ParseGeometry(Tcl_Interp *interp, char *string, - TkWindow *winPtr); -static void TopLevelEventProc(ClientData clientData, - XEvent *eventPtr); -static void WmStackorderToplevelWrapperMap(TkWindow *winPtr, - Display *display, Tcl_HashTable *table); -static void UpdateGeometryInfo(ClientData 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_Obj *const objv[]); -static int WmAttributesCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmClientCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmColormapwindowsCmd(Tk_Window tkwin, - TkWindow *winPtr, Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmCommandCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmDeiconifyCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmFocusmodelCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmForgetCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmFrameCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmGeometryCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmGridCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmGroupCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconbitmapCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconifyCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconmaskCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconnameCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconphotoCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconpositionCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmIconwindowCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmManageCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmMaxsizeCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmMinsizeCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmOverrideredirectCmd(Tk_Window tkwin, - TkWindow *winPtr, Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmPositionfromCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmProtocolCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmResizableCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmSizefromCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmStackorderCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmStateCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmTitleCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmTransientCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int objc, - Tcl_Obj *const objv[]); -static int WmWithdrawCmd(Tk_Window tkwin, TkWindow *winPtr, - Tcl_Interp *interp, int 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 void ApplyWindowClassAttributeChanges(TkWindow *winPtr, - WindowRef macWindow, WindowClass oldClass, - WindowAttributes oldAttributes, int create); -static void ApplyMasterOverrideChanges(TkWindow *winPtr, - WindowRef macWindow); -static WindowGroupRef WmGetWindowGroup(TkWindow *winPtr); -static void GetMinSize(TkWindow *winPtr, int *minWidthPtr, - int *minHeightPtr); -static void GetMaxSize(TkWindow *winPtr, int *maxWidthPtr, - int *maxHeightPtr); -static void RemapWindows(TkWindow *winPtr, - MacDrawable *parentWin); - -/* - *---------------------------------------------------------------------- - * - * TkWmNewWindow -- - * - * This procedure is invoked whenever a new top-level window is created. - * Its job is to initialize the WmInfo structure for the window. - * - * Results: - * None. - * - * Side effects: - * A WmInfo structure gets allocated and initialized. - * - *---------------------------------------------------------------------- - */ - -void -TkWmNewWindow( - TkWindow *winPtr) /* Newly-created top-level window. */ -{ - WmInfo *wmPtr = ckalloc(sizeof(WmInfo)); - - wmPtr->winPtr = winPtr; - wmPtr->reparent = None; - wmPtr->titleUid = NULL; - wmPtr->iconName = NULL; - wmPtr->master = None; - wmPtr->hints.flags = InputHint | StateHint; - wmPtr->hints.input = True; - wmPtr->hints.initial_state = NormalState; - wmPtr->hints.icon_pixmap = None; - wmPtr->hints.icon_window = None; - wmPtr->hints.icon_x = wmPtr->hints.icon_y = 0; - wmPtr->hints.icon_mask = None; - wmPtr->hints.window_group = None; - wmPtr->leaderName = NULL; - wmPtr->masterWindowName = NULL; - wmPtr->icon = NULL; - wmPtr->iconFor = NULL; - wmPtr->sizeHintsFlags = 0; - wmPtr->minWidth = wmPtr->minHeight = 1; - wmPtr->maxWidth = 0; - wmPtr->maxHeight = 0; - wmPtr->gridWin = NULL; - wmPtr->widthInc = wmPtr->heightInc = 1; - wmPtr->minAspect.x = wmPtr->minAspect.y = 1; - wmPtr->maxAspect.x = wmPtr->maxAspect.y = 1; - wmPtr->reqGridWidth = wmPtr->reqGridHeight = -1; - wmPtr->gravity = NorthWestGravity; - wmPtr->width = -1; - wmPtr->height = -1; - wmPtr->x = winPtr->changes.x; - wmPtr->y = winPtr->changes.y; - wmPtr->parentWidth = winPtr->changes.width - + 2*winPtr->changes.border_width; - wmPtr->parentHeight = winPtr->changes.height - + 2*winPtr->changes.border_width; - wmPtr->xInParent = 0; - wmPtr->yInParent = 0; - wmPtr->cmapList = NULL; - wmPtr->cmapCount = 0; - wmPtr->configX = 0; - wmPtr->configY = 0; - wmPtr->configWidth = -1; - wmPtr->configHeight = -1; - wmPtr->vRoot = None; - wmPtr->protPtr = NULL; - wmPtr->cmdArgv = NULL; - wmPtr->clientMachine = NULL; - wmPtr->flags = WM_NEVER_MAPPED; - wmPtr->style = -1; - wmPtr->macClass = kDocumentWindowClass; - wmPtr->attributes = kWindowStandardDocumentAttributes - | kWindowLiveResizeAttribute; - wmPtr->scrollWinPtr = NULL; - winPtr->wmInfoPtr = wmPtr; - - UpdateVRootGeometry(wmPtr); - - /* - * Tk must monitor structure events for top-level windows, in order to - * detect size and position changes caused by window managers. - */ - - Tk_CreateEventHandler((Tk_Window) winPtr, StructureNotifyMask, - TopLevelEventProc, winPtr); - - /* - * Arrange for geometry requests to be reflected from the window to the - * window manager. - */ - - Tk_ManageGeometry((Tk_Window) winPtr, &wmMgrType, (ClientData) 0); -} - -/* - *---------------------------------------------------------------------- - * - * TkWmMapWindow -- - * - * This procedure is invoked to map a top-level window. This module gets - * a chance to update all window-manager-related information in - * properties before the window manager sees the map event and checks the - * properties. It also gets to decide whether or not to even map the - * window after all. - * - * Results: - * None. - * - * Side effects: - * Properties of winPtr may get updated to provide up-to-date information - * to the window manager. The window may also get mapped, but it may not - * be if this procedure decides that isn't appropriate (e.g. because the - * window is withdrawn). - * - *---------------------------------------------------------------------- - */ - -void -TkWmMapWindow( - TkWindow *winPtr) /* Top-level window that's about to be - * mapped. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (wmPtr->flags & WM_NEVER_MAPPED) { - wmPtr->flags &= ~WM_NEVER_MAPPED; - - /* - * Create the underlying Mac window for this Tk window. - */ - - if (!TkMacOSXHostToplevelExists(winPtr)) { - TkMacOSXMakeRealWindowExist(winPtr); - } - - /* - * Generate configure event when we first map the window. - */ - - TkGenWMConfigureEvent((Tk_Window) winPtr, wmPtr->x, wmPtr->y, -1, -1, - TK_LOCATION_CHANGED); - - /* - * This is the first time this window has ever been mapped. Store all - * the window-manager-related information for the window. - */ - - if (wmPtr->titleUid == NULL) { - wmPtr->titleUid = winPtr->nameUid; - } - - if (!Tk_IsEmbedded(winPtr)) { - TkSetWMName(winPtr, wmPtr->titleUid); - } - - TkWmSetClass(winPtr); - - if (wmPtr->iconName != NULL) { - XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName); - } - - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - } - if (wmPtr->hints.initial_state == WithdrawnState) { - return; - } - - /* - * TODO: we need to display a window if it's iconic on creation. - */ - - if (wmPtr->hints.initial_state == IconicState) { - return; - } - - /* - * Update geometry information. - */ - - wmPtr->flags |= WM_ABOUT_TO_MAP; - if (wmPtr->flags & WM_UPDATE_PENDING) { - Tk_CancelIdleCall(UpdateGeometryInfo, winPtr); - } - UpdateGeometryInfo(winPtr); - wmPtr->flags &= ~WM_ABOUT_TO_MAP; - - /* - * Map the window. - */ - - XMapWindow(winPtr->display, winPtr->window); -} - -/* - *---------------------------------------------------------------------- - * - * TkWmUnmapWindow -- - * - * This procedure is invoked to unmap a top-level window. On the - * Macintosh all we do is call XUnmapWindow. - * - * Results: - * None. - * - * Side effects: - * Unmaps the window. - * - *---------------------------------------------------------------------- - */ - -void -TkWmUnmapWindow( - TkWindow *winPtr) /* Top-level window that's about to be - * mapped. */ -{ - XUnmapWindow(winPtr->display, winPtr->window); -} - -/* - *---------------------------------------------------------------------- - * - * TkWmDeadWindow -- - * - * This procedure is invoked when a top-level window is about to be - * deleted. It cleans up the wm-related data structures for the window. - * - * Results: - * None. - * - * Side effects: - * The WmInfo structure for winPtr gets freed up. - * - *---------------------------------------------------------------------- - */ - -void -TkWmDeadWindow( - TkWindow *winPtr) /* Top-level window that's being deleted. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WmInfo *wmPtr2; - - if (wmPtr == NULL) { - return; - } - if (wmPtr->hints.flags & IconPixmapHint) { - Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap); - } - if (wmPtr->hints.flags & IconMaskHint) { - Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_mask); - } - if (wmPtr->iconName != NULL) { - ckfree(wmPtr->iconName); - } - if (wmPtr->leaderName != NULL) { - ckfree(wmPtr->leaderName); - } - if (wmPtr->masterWindowName != NULL) { - ckfree(wmPtr->masterWindowName); - } - if (wmPtr->icon != NULL) { - wmPtr2 = ((TkWindow *) wmPtr->icon)->wmInfoPtr; - wmPtr2->iconFor = NULL; - } - if (wmPtr->iconFor != NULL) { - wmPtr2 = ((TkWindow *) wmPtr->iconFor)->wmInfoPtr; - wmPtr2->icon = NULL; - wmPtr2->hints.flags &= ~IconWindowHint; - } - while (wmPtr->protPtr != NULL) { - ProtocolHandler *protPtr; - - protPtr = wmPtr->protPtr; - wmPtr->protPtr = protPtr->nextPtr; - Tcl_EventuallyFree(protPtr, TCL_DYNAMIC); - } - if (wmPtr->cmdArgv != NULL) { - ckfree(wmPtr->cmdArgv); - } - if (wmPtr->clientMachine != NULL) { - ckfree(wmPtr->clientMachine); - } - if (wmPtr->flags & WM_UPDATE_PENDING) { - Tk_CancelIdleCall(UpdateGeometryInfo, winPtr); - } - ckfree(wmPtr); - winPtr->wmInfoPtr = NULL; -} - -/* - *---------------------------------------------------------------------- - * - * TkWmSetClass -- - * - * This procedure is invoked whenever a top-level window's class is - * changed. If the window has been mapped then this procedure updates the - * window manager property for the class. If the window hasn't been - * mapped, the update is deferred until just before the first mapping. - * - * Results: - * None. - * - * Side effects: - * A window property may get updated. - * - *---------------------------------------------------------------------- - */ - -void -TkWmSetClass( - TkWindow *winPtr) /* Newly-created top-level window. */ -{ - return; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_WmObjCmd -- - * - * This procedure is invoked to process the "wm" Tcl command. See the - * user documentation for details on what it does. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See the user documentation. - * - *---------------------------------------------------------------------- - */ - -/* ARGSUSED */ -int -Tk_WmObjCmd( - ClientData clientData, /* Main window associated with interpreter. */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ - Tk_Window tkwin = (Tk_Window) clientData; - static const char *const optionStrings[] = { - "aspect", "attributes", "client", "colormapwindows", - "command", "deiconify", "focusmodel", "forget", - "frame", "geometry", "grid", "group", - "iconbitmap", "iconify", "iconmask", "iconname", - "iconphoto", "iconposition", "iconwindow", - "manage", "maxsize", "minsize", "overrideredirect", - "positionfrom", "protocol", "resizable", "sizefrom", - "stackorder", "state", "title", "transient", - "withdraw", NULL }; - 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_ICONBITMAP, WMOPT_ICONIFY, WMOPT_ICONMASK, WMOPT_ICONNAME, - WMOPT_ICONPHOTO, WMOPT_ICONPOSITION, WMOPT_ICONWINDOW, - WMOPT_MANAGE, WMOPT_MAXSIZE, WMOPT_MINSIZE, WMOPT_OVERRIDEREDIRECT, - WMOPT_POSITIONFROM, WMOPT_PROTOCOL, WMOPT_RESIZABLE, WMOPT_SIZEFROM, - WMOPT_STACKORDER, WMOPT_STATE, WMOPT_TITLE, WMOPT_TRANSIENT, - WMOPT_WITHDRAW }; - int index, length; - char *argv1; - TkWindow *winPtr; - - if (objc < 2) { - wrongNumArgs: - Tcl_WrongNumArgs(interp, 1, objv, "option window ?arg ...?"); - return TCL_ERROR; - } - - argv1 = Tcl_GetStringFromObj(objv[1], &length); - if ((argv1[0] == 't') && (strncmp(argv1, "tracing", length) == 0) - && (length >= 3)) { - if ((objc != 2) && (objc != 3)) { - Tcl_WrongNumArgs(interp, 2, objv, "?boolean?"); - return TCL_ERROR; - } - if (objc == 2) { - Tcl_SetObjResult(interp, Tcl_NewBooleanObj(wmTracing)); - return TCL_OK; - } - return Tcl_GetBooleanFromObj(interp, objv[2], &wmTracing); - } - - if (Tcl_GetIndexFromObj(interp, objv[1], optionStrings, "option", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - - if (objc < 3) { - goto wrongNumArgs; - } - - if (TkGetWindowFromObj(interp, tkwin, objv[2], (Tk_Window *) &winPtr) - != TCL_OK) { - return TCL_ERROR; - } - if (!Tk_IsTopLevel(winPtr) - && (index != WMOPT_MANAGE) && (index != WMOPT_FORGET)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" isn't a top-level window", winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "LOOKUP", "TOPLEVEL", winPtr->pathName, - NULL); - return TCL_ERROR; - } - - switch ((enum options) index) { - case WMOPT_ASPECT: - return WmAspectCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ATTRIBUTES: - return WmAttributesCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_CLIENT: - return WmClientCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_COLORMAPWINDOWS: - return WmColormapwindowsCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_COMMAND: - return WmCommandCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_DEICONIFY: - return WmDeiconifyCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_FOCUSMODEL: - return WmFocusmodelCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_FORGET: - return WmForgetCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_FRAME: - return WmFrameCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_GEOMETRY: - return WmGeometryCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_GRID: - return WmGridCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_GROUP: - return WmGroupCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONBITMAP: - return WmIconbitmapCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONIFY: - return WmIconifyCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONMASK: - return WmIconmaskCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONNAME: - return WmIconnameCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONPHOTO: - return WmIconphotoCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONPOSITION: - return WmIconpositionCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_ICONWINDOW: - return WmIconwindowCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_MANAGE: - return WmManageCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_MAXSIZE: - return WmMaxsizeCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_MINSIZE: - return WmMinsizeCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_OVERRIDEREDIRECT: - return WmOverrideredirectCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_POSITIONFROM: - return WmPositionfromCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_PROTOCOL: - return WmProtocolCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_RESIZABLE: - return WmResizableCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_SIZEFROM: - return WmSizefromCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_STACKORDER: - return WmStackorderCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_STATE: - return WmStateCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_TITLE: - return WmTitleCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_TRANSIENT: - return WmTransientCmd(tkwin, winPtr, interp, objc, objv); - case WMOPT_WITHDRAW: - return WmWithdrawCmd(tkwin, winPtr, interp, objc, objv); - } - - /* This should not happen */ - return TCL_ERROR; -} - -/* - *---------------------------------------------------------------------- - * - * WmAspectCmd -- - * - * This procedure is invoked to process the "wm aspect" 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 -WmAspectCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int numer1, denom1, numer2, denom2; - - if ((objc != 3) && (objc != 7)) { - Tcl_WrongNumArgs(interp, 2, objv, - "window ?minNumer minDenom maxNumer maxDenom?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->sizeHintsFlags & PAspect) { - Tcl_Obj *aspect[4]; - - aspect[0] = Tcl_NewIntObj(wmPtr->minAspect.x); - aspect[1] = Tcl_NewIntObj(wmPtr->minAspect.y); - aspect[2] = Tcl_NewIntObj(wmPtr->maxAspect.x); - aspect[3] = Tcl_NewIntObj(wmPtr->maxAspect.y); - Tcl_SetObjResult(interp, Tcl_NewListObj(4, aspect)); - } - return TCL_OK; - } - if (*Tcl_GetString(objv[3]) == '\0') { - wmPtr->sizeHintsFlags &= ~PAspect; - } else { - if ((Tcl_GetIntFromObj(interp, objv[3], &numer1) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &denom1) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[5], &numer2) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[6], &denom2) != TCL_OK)) { - return TCL_ERROR; - } - if ((numer1 <= 0) || (denom1 <= 0) || (numer2 <= 0) || - (denom2 <= 0)) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "aspect number can't be <= 0", -1)); - Tcl_SetErrorCode(interp, "TK", "WM", "ASPECT", NULL); - return TCL_ERROR; - } - wmPtr->minAspect.x = numer1; - wmPtr->minAspect.y = denom1; - wmPtr->maxAspect.x = numer2; - wmPtr->maxAspect.y = denom2; - wmPtr->sizeHintsFlags |= PAspect; - } - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmSetAttribute -- - * - * Helper routine for WmAttributesCmd. Sets the value of the specified - * attribute. - * - * Returns: - * - * TCL_OK if successful, TCL_ERROR otherwise. In case of an error, leaves - * a message in the interpreter's result. - * - *---------------------------------------------------------------------- - */ - -static int -WmSetAttribute( - TkWindow *winPtr, /* Toplevel to work with */ - WindowRef macWindow, - Tcl_Interp *interp, /* Current interpreter */ - WmAttribute attribute, /* Code of attribute to set */ - Tcl_Obj *value) /* New value */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - int boolean; - - switch (attribute) { - case WMATT_ALPHA: { - double dval; - - if (Tcl_GetDoubleFromObj(interp, value, &dval) != TCL_OK) { - return TCL_ERROR; - } - - /* - * The user should give (transparent) 0 .. 1.0 (opaque) - */ - - if (dval < 0.0) { - dval = 0.0; - } else if (dval > 1.0) { - dval = 1.0; - } - ChkErr(SetWindowAlpha, macWindow, dval); - break; - } - case WMATT_FULLSCREEN: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { - return TCL_ERROR; - } - if (boolean != ((wmPtr->flags & WM_FULLSCREEN) != 0)) { - if (TkMacOSXMakeFullscreen(winPtr, macWindow, boolean, interp) - != TCL_OK) { - return TCL_ERROR; - } - } - break; - case WMATT_MODIFIED: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { - return TCL_ERROR; - } - if (boolean != IsWindowModified(macWindow)) { - ChkErr(SetWindowModified, macWindow, boolean); - } - break; - case WMATT_NOTIFY: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { - return TCL_ERROR; - } - if (boolean == !tkMacOSXWmAttrNotifyVal) { - static NMRec notifyRec; - - if (boolean) { - bzero(¬ifyRec, sizeof(notifyRec)); - notifyRec.qType = nmType; - notifyRec.nmMark = 1; - ChkErr(NMInstall, ¬ifyRec); - } else { - ChkErr(NMRemove, ¬ifyRec); - } - tkMacOSXWmAttrNotifyVal = boolean; - } - break; - case WMATT_TITLEPATH: { - const char *path = Tcl_FSGetNativePath(value); - OSStatus err; - - if (path && *path) { - FSRef ref; - Boolean d; - - err = ChkErr(FSPathMakeRef, (const unsigned char*)path, &ref, &d); - if (err == noErr) { - TK_IF_MAC_OS_X_API (4, HIWindowSetProxyFSRef, - err = ChkErr(HIWindowSetProxyFSRef, macWindow, &ref); - ) TK_ELSE_MAC_OS_X (4, - AliasHandle alias; - - err = ChkErr(FSNewAlias, NULL, &ref, &alias); - if (err == noErr) { - err = ChkErr(SetWindowProxyAlias, macWindow, alias); - DisposeHandle((Handle) alias); - } - ) TK_ENDIF - } - } else { - int len; - - Tcl_GetStringFromObj(value, &len); - if (!len) { - err = ChkErr(RemoveWindowProxy, macWindow); - } else { - err = fnfErr; - } - } - if (err != noErr) { - return TCL_ERROR; - } - break; - } - case WMATT_TOPMOST: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { - return TCL_ERROR; - } - if (boolean != ((wmPtr->flags & WM_TOPMOST) != 0)) { - WindowGroupRef group; - - if (boolean) { - wmPtr->flags |= WM_TOPMOST; - } else { - wmPtr->flags &= ~WM_TOPMOST; - } - group = WmGetWindowGroup(winPtr); - if (group && group != GetWindowGroup(macWindow)) { - ChkErr(SetWindowGroup, macWindow, group); - } - } - break; - case WMATT_TRANSPARENT: - if (Tcl_GetBooleanFromObj(interp, value, &boolean) != TCL_OK) { - return TCL_ERROR; - } - if (boolean != ((wmPtr->flags & WM_TRANSPARENT) != 0)) { - WindowAttributes oldAttributes = wmPtr->attributes; - - if (boolean) { - wmPtr->flags |= WM_TRANSPARENT; - wmPtr->attributes |= kWindowNoShadowAttribute; - TK_IF_MAC_OS_X_API (3, HIWindowChangeFeatures, - UInt32 features; - - ChkErr(GetWindowFeatures, macWindow, &features); - if (features & kWindowIsOpaque) { - ChkErr(HIWindowChangeFeatures, macWindow, 0, - kWindowIsOpaque); - } - ) TK_ENDIF - } else { - wmPtr->flags &= ~WM_TRANSPARENT; - wmPtr->attributes &= ~kWindowNoShadowAttribute; - } - ApplyWindowClassAttributeChanges(winPtr, macWindow, - wmPtr->macClass, oldAttributes, 1); - ChkErr(ReshapeCustomWindow, macWindow); - TkMacOSXInvalidateWindow((MacDrawable *) winPtr->window, - TK_PARENT_WINDOW); - } - break; - case _WMATT_LAST_ATTRIBUTE: - default: - return TCL_ERROR; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmGetAttribute -- - * - * Helper routine for WmAttributesCmd. Returns the current value of the - * specified attribute. - * - *---------------------------------------------------------------------- - */ - -static Tcl_Obj * -WmGetAttribute( - TkWindow *winPtr, /* Toplevel to work with */ - WindowRef macWindow, - WmAttribute attribute) /* Code of attribute to get */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - Tcl_Obj *result = NULL; - - switch (attribute) { - case WMATT_ALPHA: { - float fval = 1.0; - - ChkErr(GetWindowAlpha, macWindow, &fval); - result = Tcl_NewDoubleObj(fval); - break; - } - case WMATT_FULLSCREEN: - result = Tcl_NewBooleanObj(wmPtr->flags & WM_FULLSCREEN); - break; - case WMATT_MODIFIED: - result = Tcl_NewBooleanObj(IsWindowModified(macWindow)); - break; - case WMATT_NOTIFY: - result = Tcl_NewBooleanObj(tkMacOSXWmAttrNotifyVal); - break; - case WMATT_TITLEPATH: { - FSRef ref; - UInt8 path[PATH_MAX+1]; - OSStatus err; - - TK_IF_MAC_OS_X_API (4, HIWindowSetProxyFSRef, - err = ChkErr(HIWindowGetProxyFSRef, macWindow, &ref); - ) TK_ELSE_MAC_OS_X (4, - Boolean wasChanged; - AliasHandle alias; - - err = ChkErr(GetWindowProxyAlias, macWindow, &alias); - if (err == noErr) { - err = ChkErr(FSResolveAlias, NULL, alias, &ref, &wasChanged); - } - ) TK_ENDIF - if (err == noErr) { - err = ChkErr(FSRefMakePath, &ref, path, PATH_MAX); - } - if (err != noErr) { - *path = 0; - } - result = Tcl_NewStringObj((char*) path, -1); - break; - } - case WMATT_TOPMOST: - result = Tcl_NewBooleanObj(wmPtr->flags & WM_TOPMOST); - break; - case WMATT_TRANSPARENT: - result = Tcl_NewBooleanObj(wmPtr->flags & WM_TRANSPARENT); - break; - case _WMATT_LAST_ATTRIBUTE: - default: - break; - } - return result; -} - -/* - *---------------------------------------------------------------------- - * - * WmAttributesCmd -- - * - * This procedure is invoked to process the "wm attributes" 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 -WmAttributesCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - int attribute = 0; - WindowRef macWindow; - - if (winPtr->window == None) { - Tk_MakeWindowExist((Tk_Window) winPtr); - } - if (!TkMacOSXHostToplevelExists(winPtr)) { - TkMacOSXMakeRealWindowExist(winPtr); - } - macWindow = TkMacOSXDrawableWindow(winPtr->window); - - if (objc == 3) { /* wm attributes $win */ - Tcl_Obj *result = Tcl_NewObj(); - - for (attribute = 0; attribute < _WMATT_LAST_ATTRIBUTE; ++attribute) { - Tcl_ListObjAppendElement(NULL, result, - Tcl_NewStringObj(WmAttributeNames[attribute], -1)); - Tcl_ListObjAppendElement(NULL, result, - WmGetAttribute(winPtr, macWindow, attribute)); - } - Tcl_SetObjResult(interp, result); - } else if (objc == 4) { /* wm attributes $win -attribute */ - if (Tcl_GetIndexFromObj(interp, objv[3], WmAttributeNames, - "attribute", 0, &attribute) != TCL_OK) { - return TCL_ERROR; - } - Tcl_SetObjResult(interp, WmGetAttribute(winPtr, macWindow, attribute)); - } else if ((objc - 3) % 2 == 0) { /* wm attributes $win -att value... */ - int i; - - for (i = 3; i < objc; i += 2) { - if (Tcl_GetIndexFromObj(interp, objv[i], WmAttributeNames, - "attribute", 0, &attribute) != TCL_OK) { - return TCL_ERROR; - } - if (WmSetAttribute(winPtr, macWindow, interp, attribute, objv[i+1]) - != TCL_OK) { - return TCL_ERROR; - } - } - } else { - Tcl_WrongNumArgs(interp, 2, objv, "window ?-attribute ?value ...??"); - return TCL_ERROR; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmClientCmd -- - * - * This procedure is invoked to process the "wm client" 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 -WmClientCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - char *argv3; - int length; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?name?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->clientMachine != NULL) { - Tcl_SetObjResult(interp, - Tcl_NewStringObj(wmPtr->clientMachine, -1)); - } - return TCL_OK; - } - argv3 = Tcl_GetStringFromObj(objv[3], &length); - if (argv3[0] == 0) { - if (wmPtr->clientMachine != NULL) { - ckfree(wmPtr->clientMachine); - wmPtr->clientMachine = NULL; - } - return TCL_OK; - } - if (wmPtr->clientMachine != NULL) { - ckfree(wmPtr->clientMachine); - } - wmPtr->clientMachine = ckalloc(length + 1); - strcpy(wmPtr->clientMachine, argv3); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmColormapwindowsCmd -- - * - * This procedure is invoked to process the "wm colormapwindows" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - TkWindow **cmapList, *winPtr2; - int i, windowObjc, gotToplevel = 0; - Tcl_Obj **windowObjv, *resultObj; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?windowList?"); - return TCL_ERROR; - } - if (objc == 3) { - Tk_MakeWindowExist((Tk_Window) winPtr); - resultObj = Tcl_NewObj(); - for (i = 0; i < wmPtr->cmapCount; i++) { - if ((i == (wmPtr->cmapCount-1)) - && (wmPtr->flags & WM_ADDED_TOPLEVEL_COLORMAP)) { - break; - } - Tcl_ListObjAppendElement(NULL, resultObj, - TkNewWindowObj((Tk_Window) wmPtr->cmapList[i])); - } - Tcl_SetObjResult(interp, resultObj); - return TCL_OK; - } - if (Tcl_ListObjGetElements(interp, objv[3], &windowObjc, &windowObjv) - != TCL_OK) { - return TCL_ERROR; - } - cmapList = ckalloc((windowObjc+1) * sizeof(TkWindow*)); - for (i = 0; i < windowObjc; i++) { - if (TkGetWindowFromObj(interp, tkwin, windowObjv[i], - (Tk_Window *) &winPtr2) != TCL_OK) { - ckfree(cmapList); - return TCL_ERROR; - } - if (winPtr2 == winPtr) { - gotToplevel = 1; - } - if (winPtr2->window == None) { - Tk_MakeWindowExist((Tk_Window) winPtr2); - } - cmapList[i] = winPtr2; - } - if (!gotToplevel) { - wmPtr->flags |= WM_ADDED_TOPLEVEL_COLORMAP; - cmapList[windowObjc] = winPtr; - windowObjc++; - } else { - wmPtr->flags &= ~WM_ADDED_TOPLEVEL_COLORMAP; - } - wmPtr->flags |= WM_COLORMAPS_EXPLICIT; - if (wmPtr->cmapList != NULL) { - ckfree(wmPtr->cmapList); - } - wmPtr->cmapList = cmapList; - wmPtr->cmapCount = windowObjc; - - /* - * On the Macintosh all of this is just an excercise in compatability as - * we don't support colormaps. If we did they would be installed here. - */ - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmCommandCmd -- - * - * This procedure is invoked to process the "wm command" 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 -WmCommandCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - char *argv3; - int cmdArgc; - const char **cmdArgv; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?value?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->cmdArgv != NULL) { - argv3 = Tcl_Merge(wmPtr->cmdArgc, wmPtr->cmdArgv); - Tcl_SetObjResult(interp, Tcl_NewStringObj(argv3, -1)); - ckfree(argv3); - } - return TCL_OK; - } - argv3 = Tcl_GetString(objv[3]); - if (argv3[0] == 0) { - if (wmPtr->cmdArgv != NULL) { - ckfree(wmPtr->cmdArgv); - wmPtr->cmdArgv = NULL; - } - return TCL_OK; - } - if (Tcl_SplitList(interp, argv3, &cmdArgc, &cmdArgv) != TCL_OK) { - return TCL_ERROR; - } - if (wmPtr->cmdArgv != NULL) { - ckfree(wmPtr->cmdArgv); - } - wmPtr->cmdArgc = cmdArgc; - wmPtr->cmdArgv = cmdArgv; - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmDeiconifyCmd -- - * - * This procedure is invoked to process the "wm deiconify" 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 -WmDeiconifyCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (objc != 3) { - Tcl_WrongNumArgs(interp, 2, objv, "window"); - return TCL_ERROR; - } - if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't deiconify %s: it is an icon for %s", - Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor))); - Tcl_SetErrorCode(interp, "TK", "WM", "DEICONIFY", "ICON", NULL); - return TCL_ERROR; - } - if (winPtr->flags & TK_EMBEDDED) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't deiconify %s: it is an embedded window", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "DEICONIFY", "EMBEDDED", NULL); - return TCL_ERROR; - } - TkpWmSetState(winPtr, TkMacOSXIsWindowZoomed(winPtr) ? - ZoomState : NormalState); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmFocusmodelCmd -- - * - * This procedure is invoked to process the "wm focusmodel" 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 -WmFocusmodelCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - static const char *const optionStrings[] = { - "active", "passive", NULL }; - enum options { - OPT_ACTIVE, OPT_PASSIVE }; - int index; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?active|passive?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - wmPtr->hints.input ? "passive" : "active", -1)); - return TCL_OK; - } - - if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (index == OPT_ACTIVE) { - wmPtr->hints.input = False; - } else { /* OPT_PASSIVE */ - wmPtr->hints.input = True; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmForgetCmd -- - * - * This procedure is invoked to process the "wm forget" 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 -WmForgetCmd( - Tk_Window tkwin, /* Main window of the application. */ - TkWindow *winPtr, /* Toplevel or Frame to work with */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ -#if 1 - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "wm forget is not yet supported", -1)); - Tcl_SetErrorCode(interp, "TK", "WM", "UNSUPPORTED", NULL); - return TCL_ERROR; -#else - register Tk_Window frameWin = (Tk_Window)winPtr; - char *oldClass = (char*)Tk_Class(frameWin); - - if (Tk_IsTopLevel(frameWin)) { - MacDrawable *macWin = (MacDrawable *) winPtr->window; - CGrafPtr destPort = TkMacOSXGetDrawablePort(winPtr->window); - - TkFocusJoin(winPtr); - Tk_UnmapWindow(frameWin); - - if (destPort != NULL) { - WindowRef winRef = GetWindowFromPort(destPort); - - TkMacOSXUnregisterMacWindow(winRef); - DisposeWindow(winRef); - } - macWin->grafPtr = NULL; - macWin->toplevel = winPtr->parentPtr->privatePtr->toplevel; - macWin->flags &= ~TK_HOST_EXISTS; - - RemapWindows(winPtr, macWin); - TkWmDeadWindow(winPtr); - winPtr->flags &= - ~(TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); - - TkMapTopFrame(frameWin); - } else { - /* Already not managed by wm - ignore it */ - } - return TCL_OK; -#endif -} - -/* - *---------------------------------------------------------------------- - * - * WmFrameCmd -- - * - * This procedure is invoked to process the "wm frame" 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 -WmFrameCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Window window; - - if (objc != 3) { - Tcl_WrongNumArgs(interp, 2, objv, "window"); - return TCL_ERROR; - } - window = wmPtr->reparent; - if (window == None) { - window = Tk_WindowId((Tk_Window) winPtr); - } - Tcl_SetObjResult(interp, Tcl_ObjPrintf("0x%x", (unsigned) window)); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmGeometryCmd -- - * - * This procedure is invoked to process the "wm geometry" 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 -WmGeometryCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - char xSign, ySign; - int width, height; - char *argv3; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?newGeometry?"); - return TCL_ERROR; - } - if (objc == 3) { - xSign = (wmPtr->flags & WM_NEGATIVE_X) ? '-' : '+'; - ySign = (wmPtr->flags & WM_NEGATIVE_Y) ? '-' : '+'; - if (wmPtr->gridWin != NULL) { - width = wmPtr->reqGridWidth + (winPtr->changes.width - - winPtr->reqWidth)/wmPtr->widthInc; - height = wmPtr->reqGridHeight + (winPtr->changes.height - - winPtr->reqHeight)/wmPtr->heightInc; - } else { - width = winPtr->changes.width; - height = winPtr->changes.height; - } - Tcl_SetObjResult(interp, Tcl_ObjPrintf("%dx%d%c%d%c%d", - width, height, xSign, wmPtr->x, ySign, wmPtr->y)); - return TCL_OK; - } - argv3 = Tcl_GetString(objv[3]); - if (*argv3 == '\0') { - wmPtr->width = -1; - wmPtr->height = -1; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; - } - return ParseGeometry(interp, argv3, winPtr); -} - -/* - *---------------------------------------------------------------------- - * - * WmGridCmd -- - * - * This procedure is invoked to process the "wm grid" 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 -WmGridCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int reqWidth, reqHeight, widthInc, heightInc; - const char *errorMsg; - - if ((objc != 3) && (objc != 7)) { - Tcl_WrongNumArgs(interp, 2, objv, - "window ?baseWidth baseHeight widthInc heightInc?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->sizeHintsFlags & PBaseSize) { - Tcl_Obj *grid[4]; - - grid[0] = Tcl_NewIntObj(wmPtr->reqGridWidth); - grid[1] = Tcl_NewIntObj(wmPtr->reqGridHeight); - grid[2] = Tcl_NewIntObj(wmPtr->widthInc); - grid[3] = Tcl_NewIntObj(wmPtr->heightInc); - Tcl_SetObjResult(interp, Tcl_NewListObj(4, grid)); - } - return TCL_OK; - } - if (*Tcl_GetString(objv[3]) == '\0') { - /* - * Turn off gridding and reset the width and height to make sense as - * ungridded numbers. - */ - - wmPtr->sizeHintsFlags &= ~(PBaseSize|PResizeInc); - if (wmPtr->width != -1) { - wmPtr->width = winPtr->reqWidth + (wmPtr->width - - wmPtr->reqGridWidth)*wmPtr->widthInc; - wmPtr->height = winPtr->reqHeight + (wmPtr->height - - wmPtr->reqGridHeight)*wmPtr->heightInc; - } - wmPtr->widthInc = 1; - wmPtr->heightInc = 1; - } else { - if ((Tcl_GetIntFromObj(interp, objv[3], &reqWidth) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &reqHeight) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[5], &widthInc) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[6], &heightInc)!=TCL_OK)) { - return TCL_ERROR; - } - if (reqWidth < 0) { - errorMsg = "baseWidth can't be < 0"; - goto error; - } else if (reqHeight < 0) { - errorMsg = "baseHeight can't be < 0"; - goto error; - } else if (widthInc <= 0) { - errorMsg = "widthInc can't be <= 0"; - goto error; - } else if (heightInc <= 0) { - errorMsg = "heightInc can't be <= 0"; - goto error; - } - Tk_SetGrid((Tk_Window) winPtr, reqWidth, reqHeight, widthInc, - heightInc); - } - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; - - error: - Tcl_SetObjResult(interp, Tcl_NewStringObj(errorMsg, -1)); - Tcl_SetErrorCode(interp, "TK", "WM", "GRID", NULL); - return TCL_ERROR; -} - -/* - *---------------------------------------------------------------------- - * - * WmGroupCmd -- - * - * This procedure is invoked to process the "wm group" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Tk_Window tkwin2; - char *argv3; - int length; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?pathName?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->hints.flags & WindowGroupHint) { - Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->leaderName, -1)); - } - return TCL_OK; - } - argv3 = Tcl_GetStringFromObj(objv[3], &length); - if (*argv3 == '\0') { - wmPtr->hints.flags &= ~WindowGroupHint; - if (wmPtr->leaderName != NULL) { - ckfree(wmPtr->leaderName); - } - wmPtr->leaderName = NULL; - } else { - if (TkGetWindowFromObj(interp, tkwin, objv[3], &tkwin2) != TCL_OK) { - return TCL_ERROR; - } - Tk_MakeWindowExist(tkwin2); - if (wmPtr->leaderName != NULL) { - ckfree(wmPtr->leaderName); - } - wmPtr->hints.window_group = Tk_WindowId(tkwin2); - wmPtr->hints.flags |= WindowGroupHint; - wmPtr->leaderName = ckalloc(length + 1); - strcpy(wmPtr->leaderName, argv3); - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconbitmapCmd -- - * - * This procedure is invoked to process the "wm iconbitmap" 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 -WmIconbitmapCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Pixmap pixmap; - char *str; - int len; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?bitmap?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->hints.flags & IconPixmapHint) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - Tk_NameOfBitmap(winPtr->display, - wmPtr->hints.icon_pixmap), -1)); - } - return TCL_OK; - } - str = Tcl_GetStringFromObj(objv[3], &len); - if (winPtr->window == None) { - Tk_MakeWindowExist((Tk_Window) winPtr); - } - if (!TkMacOSXHostToplevelExists(winPtr)) { - TkMacOSXMakeRealWindowExist(winPtr); - } - if (WmSetAttribute(winPtr, TkMacOSXDrawableWindow(winPtr->window), interp, - WMATT_TITLEPATH, objv[3]) == TCL_OK) { - if (!len) { - if (wmPtr->hints.icon_pixmap != None) { - Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_pixmap); - wmPtr->hints.icon_pixmap = None; - } - wmPtr->hints.flags &= ~IconPixmapHint; - } - } else { - pixmap = Tk_GetBitmap(interp, (Tk_Window) winPtr, Tk_GetUid(str)); - if (pixmap == None) { - return TCL_ERROR; - } - wmPtr->hints.icon_pixmap = pixmap; - wmPtr->hints.flags |= IconPixmapHint; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconifyCmd -- - * - * This procedure is invoked to process the "wm iconify" 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 -WmIconifyCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - if (objc != 3) { - Tcl_WrongNumArgs(interp, 2, objv, "window"); - return TCL_ERROR; - } - - if (Tk_Attributes((Tk_Window) winPtr)->override_redirect) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify \"%s\": override-redirect flag is set", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "OVERRIDE_REDIRECT", - NULL); - return TCL_ERROR; - } else if (wmPtr->master != None) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify \"%s\": it is a transient", winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "TRANSIENT", NULL); - return TCL_ERROR; - } else if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "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", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONIFY", "EMBEDDED", NULL); - return TCL_ERROR; - } - - TkpWmSetState(winPtr, IconicState); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconmaskCmd -- - * - * This procedure is invoked to process the "wm iconmask" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Pixmap pixmap; - char *argv3; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?bitmap?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->hints.flags & IconMaskHint) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - Tk_NameOfBitmap(winPtr->display, - wmPtr->hints.icon_mask), -1)); - } - return TCL_OK; - } - argv3 = Tcl_GetString(objv[3]); - if (*argv3 == '\0') { - if (wmPtr->hints.icon_mask != None) { - Tk_FreeBitmap(winPtr->display, wmPtr->hints.icon_mask); - } - wmPtr->hints.flags &= ~IconMaskHint; - } else { - pixmap = Tk_GetBitmap(interp, tkwin, argv3); - if (pixmap == None) { - return TCL_ERROR; - } - wmPtr->hints.icon_mask = pixmap; - wmPtr->hints.flags |= IconMaskHint; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconnameCmd -- - * - * This procedure is invoked to process the "wm iconname" 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 -WmIconnameCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - const char *argv3; - int length; - - if (objc > 4) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?newName?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->iconName != NULL) { - Tcl_SetObjResult(interp, Tcl_NewStringObj(wmPtr->iconName, -1)); - } - return TCL_OK; - } - - if (wmPtr->iconName != NULL) { - ckfree(wmPtr->iconName); - } - argv3 = Tcl_GetStringFromObj(objv[3], &length); - wmPtr->iconName = ckalloc(length + 1); - strcpy(wmPtr->iconName, argv3); - if (!(wmPtr->flags & WM_NEVER_MAPPED)) { - XSetIconName(winPtr->display, winPtr->window, wmPtr->iconName); - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconphotoCmd -- - * - * This procedure is invoked to process the "wm iconphoto" Tcl command. - * See the user documentation for details on what it does. Not yet - * implemented for OS X. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * See the user documentation. - * - *---------------------------------------------------------------------- - */ - -static int -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_Obj *const objv[]) /* Argument objects. */ -{ - Tk_PhotoHandle photo; - int i, width, height, isDefault = 0; - - if (objc < 4) { - Tcl_WrongNumArgs(interp, 2, objv, - "window ?-default? image1 ?image2 ...?"); - return TCL_ERROR; - } - if (strcmp(Tcl_GetString(objv[3]), "-default") == 0) { - isDefault = 1; - if (objc == 4) { - Tcl_WrongNumArgs(interp, 2, objv, - "window ?-default? image1 ?image2 ...?"); - return TCL_ERROR; - } - } - - /* - * Iterate over all images to retrieve their sizes, in order to allocate a - * buffer large enough to hold all images. - */ - - for (i = 3 + isDefault; i < objc; i++) { - photo = Tk_FindPhoto(interp, Tcl_GetString(objv[i])); - if (photo == NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't use \"%s\" as iconphoto: not a photo image", - Tcl_GetString(objv[i]))); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONPHOTO", "PHOTO", NULL); - return TCL_ERROR; - } - Tk_PhotoGetSize(photo, &width, &height); - } - - /* - * TODO: This requires implementation for OS X, but we silently return for - * now. - */ - - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconpositionCmd -- - * - * This procedure is invoked to process the "wm iconposition" 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 -WmIconpositionCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int x, y; - - if ((objc != 3) && (objc != 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?x y?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->hints.flags & IconPositionHint) { - Tcl_Obj *pos[2]; - - pos[0] = Tcl_NewIntObj(wmPtr->hints.icon_x); - pos[1] = Tcl_NewIntObj(wmPtr->hints.icon_y); - Tcl_SetObjResult(interp, Tcl_NewListObj(2, pos)); - } - return TCL_OK; - } - if (*Tcl_GetString(objv[3]) == '\0') { - wmPtr->hints.flags &= ~IconPositionHint; - } else { - if ((Tcl_GetIntFromObj(interp, objv[3], &x) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &y) != TCL_OK)){ - return TCL_ERROR; - } - wmPtr->hints.icon_x = x; - wmPtr->hints.icon_y = y; - wmPtr->hints.flags |= IconPositionHint; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmIconwindowCmd -- - * - * This procedure is invoked to process the "wm iconwindow" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Tk_Window tkwin2; - WmInfo *wmPtr2; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?pathName?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->icon != NULL) { - Tcl_SetObjResult(interp, TkNewWindowObj(wmPtr->icon)); - } - return TCL_OK; - } - if (*Tcl_GetString(objv[3]) == '\0') { - wmPtr->hints.flags &= ~IconWindowHint; - if (wmPtr->icon != NULL) { - wmPtr2 = ((TkWindow *) wmPtr->icon)->wmInfoPtr; - wmPtr2->iconFor = NULL; - wmPtr2->hints.initial_state = WithdrawnState; - } - wmPtr->icon = NULL; - } else { - if (TkGetWindowFromObj(interp, tkwin, objv[3], &tkwin2) != TCL_OK) { - return TCL_ERROR; - } - if (!Tk_IsTopLevel(tkwin2)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't use %s as icon window: not at top level", - Tk_PathName(tkwin2))); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONWINDOW", "TOPLEVEL", - NULL); - return TCL_ERROR; - } - wmPtr2 = ((TkWindow *) tkwin2)->wmInfoPtr; - if (wmPtr2->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "%s is already an icon for %s", - Tcl_GetString(objv[3]), Tk_PathName(wmPtr2->iconFor))); - Tcl_SetErrorCode(interp, "TK", "WM", "ICONWINDOW", "ICON", NULL); - return TCL_ERROR; - } - if (wmPtr->icon != NULL) { - WmInfo *wmPtr3 = ((TkWindow *) wmPtr->icon)->wmInfoPtr; - wmPtr3->iconFor = NULL; - } - Tk_MakeWindowExist(tkwin2); - wmPtr->hints.icon_window = Tk_WindowId(tkwin2); - wmPtr->hints.flags |= IconWindowHint; - wmPtr->icon = tkwin2; - wmPtr2->iconFor = (Tk_Window) winPtr; - if (!(wmPtr2->flags & WM_NEVER_MAPPED)) { - /* - * Don't have iconwindows on the Mac. We just withdraw. - */ - - Tk_UnmapWindow(tkwin2); - } - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmManageCmd -- - * - * This procedure is invoked to process the "wm manage" 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 -WmManageCmd( - Tk_Window tkwin, /* Main window of the application. */ - TkWindow *winPtr, /* Toplevel or Frame to work with */ - Tcl_Interp *interp, /* Current interpreter. */ - int objc, /* Number of arguments. */ - Tcl_Obj *const objv[]) /* Argument objects. */ -{ -#if 1 - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "wm manage is not yet supported", -1)); - Tcl_SetErrorCode(interp, "TK", "WM", "UNSUPPORTED", NULL); - return TCL_ERROR; -#else - register Tk_Window frameWin = (Tk_Window)winPtr; - register WmInfo *wmPtr = winPtr->wmInfoPtr; - char *oldClass = (char*)Tk_Class(frameWin); - - if (!Tk_IsTopLevel(frameWin)) { - MacDrawable *macWin = (MacDrawable *) winPtr->window; - - if (!Tk_IsManageable(frameWin)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" is not manageable: must be a" - " frame, labelframe or toplevel", - Tk_PathName(frameWin))); - Tcl_SetErrorCode(interp, "TK", "WM", "MANAGE", NULL); - return TCL_ERROR; - } - TkFocusSplit(winPtr); - Tk_UnmapWindow(frameWin); - if (wmPtr == NULL) { - TkWmNewWindow(winPtr); - if (winPtr->window == None) { - Tk_MakeWindowExist((Tk_Window) winPtr); - macWin = (MacDrawable *) winPtr->window; - } - TkWmMapWindow(winPtr); - Tk_UnmapWindow(frameWin); - } - wmPtr = winPtr->wmInfoPtr; - winPtr->flags &= ~TK_MAPPED; - macWin->grafPtr = NULL; - macWin->toplevel = macWin; - RemapWindows(winPtr, macWin); - winPtr->flags |= - (TK_TOP_HIERARCHY|TK_TOP_LEVEL|TK_HAS_WRAPPER|TK_WIN_MANAGED); - TkMapTopFrame(frameWin); - } else if (Tk_IsTopLevel(frameWin)) { - /* Already managed by wm - ignore it */ - } - return TCL_OK; -#endif -} - -/* - *---------------------------------------------------------------------- - * - * WmMaxsizeCmd -- - * - * This procedure is invoked to process the "wm maxsize" 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 -WmMaxsizeCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int width, height; - - if ((objc != 3) && (objc != 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?width height?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_Obj *size[2]; - - GetMaxSize(winPtr, &width, &height); - size[0] = Tcl_NewIntObj(width); - size[1] = Tcl_NewIntObj(height); - Tcl_SetObjResult(interp, Tcl_NewListObj(2, size)); - return TCL_OK; - } - if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &height) != TCL_OK)) { - return TCL_ERROR; - } - wmPtr->maxWidth = width; - wmPtr->maxHeight = height; - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmMinsizeCmd -- - * - * This procedure is invoked to process the "wm minsize" 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 -WmMinsizeCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int width, height; - - if ((objc != 3) && (objc != 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?width height?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_Obj *size[2]; - - GetMinSize(winPtr, &width, &height); - size[0] = Tcl_NewIntObj(width); - size[1] = Tcl_NewIntObj(height); - Tcl_SetObjResult(interp, Tcl_NewListObj(2, size)); - return TCL_OK; - } - if ((Tcl_GetIntFromObj(interp, objv[3], &width) != TCL_OK) - || (Tcl_GetIntFromObj(interp, objv[4], &height) != TCL_OK)) { - return TCL_ERROR; - } - wmPtr->minWidth = width; - wmPtr->minHeight = height; - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmOverrideredirectCmd -- - * - * This procedure is invoked to process the "wm overrideredirect" 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 -WmOverrideredirectCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - int boolean; - XSetWindowAttributes atts; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?boolean?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_SetObjResult(interp, Tcl_NewBooleanObj( - Tk_Attributes((Tk_Window) winPtr)->override_redirect)); - return TCL_OK; - } - if (Tcl_GetBooleanFromObj(interp, objv[3], &boolean) != TCL_OK) { - return TCL_ERROR; - } - atts.override_redirect = (boolean) ? True : False; - Tk_ChangeWindowAttributes((Tk_Window) winPtr, CWOverrideRedirect, &atts); - ApplyMasterOverrideChanges(winPtr, NULL); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmPositionfromCmd -- - * - * This procedure is invoked to process the "wm positionfrom" 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 -WmPositionfromCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - static const char *const optionStrings[] = { - "program", "user", NULL }; - enum options { - OPT_PROGRAM, OPT_USER }; - int index; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?user/program?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->sizeHintsFlags & USPosition) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1)); - } else if (wmPtr->sizeHintsFlags & PPosition) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1)); - } - return TCL_OK; - } - if (*Tcl_GetString(objv[3]) == '\0') { - wmPtr->sizeHintsFlags &= ~(USPosition|PPosition); - } else { - if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (index == OPT_USER) { - wmPtr->sizeHintsFlags &= ~PPosition; - wmPtr->sizeHintsFlags |= USPosition; - } else { - wmPtr->sizeHintsFlags &= ~USPosition; - wmPtr->sizeHintsFlags |= PPosition; - } - } - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmProtocolCmd -- - * - * This procedure is invoked to process the "wm protocol" 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 -WmProtocolCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - register ProtocolHandler *protPtr, *prevPtr; - Atom protocol; - char *cmd; - int cmdLength; - Tcl_Obj *resultObj; - - if ((objc < 3) || (objc > 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?name? ?command?"); - return TCL_ERROR; - } - if (objc == 3) { - /* - * Return a list of all defined protocols for the window. - */ - - resultObj = Tcl_NewObj(); - for (protPtr = wmPtr->protPtr; protPtr != NULL; - protPtr = protPtr->nextPtr) { - Tcl_ListObjAppendElement(NULL, resultObj, Tcl_NewStringObj( - Tk_GetAtomName((Tk_Window)winPtr, protPtr->protocol),-1)); - } - Tcl_SetObjResult(interp, resultObj); - return TCL_OK; - } - protocol = Tk_InternAtom((Tk_Window) winPtr, Tcl_GetString(objv[3])); - if (objc == 4) { - /* - * Return the command to handle a given protocol. - */ - - for (protPtr = wmPtr->protPtr; protPtr != NULL; - protPtr = protPtr->nextPtr) { - if (protPtr->protocol == protocol) { - Tcl_SetObjResult(interp, - Tcl_NewStringObj(protPtr->command, -1)); - return TCL_OK; - } - } - return TCL_OK; - } - - /* - * Delete any current protocol handler, then create a new one with the - * specified command, unless the command is empty. - */ - - for (protPtr = wmPtr->protPtr, prevPtr = NULL; protPtr != NULL; - prevPtr = protPtr, protPtr = protPtr->nextPtr) { - if (protPtr->protocol == protocol) { - if (prevPtr == NULL) { - wmPtr->protPtr = protPtr->nextPtr; - } else { - prevPtr->nextPtr = protPtr->nextPtr; - } - Tcl_EventuallyFree(protPtr, TCL_DYNAMIC); - break; - } - } - cmd = Tcl_GetStringFromObj(objv[4], &cmdLength); - if (cmdLength > 0) { - protPtr = ckalloc(HANDLER_SIZE(cmdLength)); - protPtr->protocol = protocol; - protPtr->nextPtr = wmPtr->protPtr; - wmPtr->protPtr = protPtr; - protPtr->interp = interp; - strcpy(protPtr->command, cmd); - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmResizableCmd -- - * - * This procedure is invoked to process the "wm resizable" 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 -WmResizableCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - int width, height; - WindowAttributes oldAttributes = wmPtr->attributes; - - if ((objc != 3) && (objc != 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?width height?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_Obj *resize[2]; - - resize[0] = Tcl_NewBooleanObj(!(wmPtr->flags & WM_WIDTH_NOT_RESIZABLE)); - resize[1] = Tcl_NewBooleanObj(!(wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE)); - Tcl_SetObjResult(interp, Tcl_NewListObj(2, resize)); - return TCL_OK; - } - if ((Tcl_GetBooleanFromObj(interp, objv[3], &width) != TCL_OK) - || (Tcl_GetBooleanFromObj(interp, objv[4], &height) != TCL_OK)) { - return TCL_ERROR; - } - if (width) { - wmPtr->flags &= ~WM_WIDTH_NOT_RESIZABLE; - wmPtr->attributes |= kWindowHorizontalZoomAttribute; - } else { - wmPtr->flags |= WM_WIDTH_NOT_RESIZABLE; - wmPtr->attributes &= ~kWindowHorizontalZoomAttribute; - } - if (height) { - wmPtr->flags &= ~WM_HEIGHT_NOT_RESIZABLE; - wmPtr->attributes |= kWindowVerticalZoomAttribute; - } else { - wmPtr->flags |= WM_HEIGHT_NOT_RESIZABLE; - wmPtr->attributes &= ~kWindowVerticalZoomAttribute; - } - if (width || height) { - wmPtr->attributes |= kWindowResizableAttribute; - } else { - wmPtr->attributes &= ~kWindowResizableAttribute; - } - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - if (wmPtr->scrollWinPtr != NULL) { - TkScrollbarEventuallyRedraw(wmPtr->scrollWinPtr->instanceData); - } - WmUpdateGeom(wmPtr, winPtr); - ApplyWindowClassAttributeChanges(winPtr, NULL, wmPtr->macClass, - oldAttributes, 1); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmSizefromCmd -- - * - * This procedure is invoked to process the "wm sizefrom" 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 -WmSizefromCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - static const char *const optionStrings[] = { - "program", "user", NULL }; - enum options { - OPT_PROGRAM, OPT_USER }; - int index; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?user|program?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->sizeHintsFlags & USSize) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("user", -1)); - } else if (wmPtr->sizeHintsFlags & PSize) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("program", -1)); - } - return TCL_OK; - } - - if (*Tcl_GetString(objv[3]) == '\0') { - wmPtr->sizeHintsFlags &= ~(USSize|PSize); - } else { - if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (index == OPT_USER) { - wmPtr->sizeHintsFlags &= ~PSize; - wmPtr->sizeHintsFlags |= USSize; - } else { /* OPT_PROGRAM */ - wmPtr->sizeHintsFlags &= ~USSize; - wmPtr->sizeHintsFlags |= PSize; - } - } - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - WmUpdateGeom(wmPtr, winPtr); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmStackorderCmd -- - * - * This procedure is invoked to process the "wm stackorder" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - TkWindow **windows, **windowPtr; - static const char *const optionStrings[] = { - "isabove", "isbelow", NULL - }; - enum options { - OPT_ISABOVE, OPT_ISBELOW - }; - Tcl_Obj *resultObj; - int index; - - if ((objc != 3) && (objc != 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?isabove|isbelow window?"); - return TCL_ERROR; - } - - if (objc == 3) { - windows = TkWmStackorderToplevel(winPtr); - if (windows == NULL) { - Tcl_Panic("TkWmStackorderToplevel failed"); - } - - resultObj = Tcl_NewObj(); - for (windowPtr = windows; *windowPtr ; windowPtr++) { - Tcl_ListObjAppendElement(NULL, resultObj, - TkNewWindowObj((Tk_Window) *windowPtr)); - } - Tcl_SetObjResult(interp, resultObj); - ckfree(windows); - return TCL_OK; - } else { - TkWindow *winPtr2; - int index1 = -1, index2 = -1, result; - - if (TkGetWindowFromObj(interp, tkwin, objv[4], (Tk_Window *) &winPtr2) - != TCL_OK) { - return TCL_ERROR; - } - - if (!Tk_IsTopLevel(winPtr2)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" isn't a top-level window", - winPtr2->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "TOPLEVEL", NULL); - return TCL_ERROR; - } - - if (!Tk_IsMapped(winPtr)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" isn't mapped", winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "MAPPED", NULL); - return TCL_ERROR; - } else if (!Tk_IsMapped(winPtr2)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" isn't mapped", winPtr2->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "MAPPED", NULL); - return TCL_ERROR; - } - - /* - * Lookup stacking order of all toplevels that are children of "." and - * find the position of winPtr and winPtr2 in the stacking order. - */ - - windows = TkWmStackorderToplevel(winPtr->mainPtr->winPtr); - if (windows == NULL) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "TkWmStackorderToplevel failed", -1)); - Tcl_SetErrorCode(interp, "TK", "WM", "STACK", "FAIL", NULL); - return TCL_ERROR; - } - - for (windowPtr = windows; *windowPtr ; windowPtr++) { - if (*windowPtr == winPtr) { - index1 = windowPtr - windows; - } - if (*windowPtr == winPtr2) { - index2 = windowPtr - windows; - } - } - if (index1 == -1) { - Tcl_Panic("winPtr window not found"); - } - if (index2 == -1) { - Tcl_Panic("winPtr2 window not found"); - } - - ckfree(windows); - - if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (index == OPT_ISABOVE) { - result = index1 > index2; - } else { /* OPT_ISBELOW */ - result = index1 < index2; - } - Tcl_SetObjResult(interp, Tcl_NewBooleanObj(result)); - return TCL_OK; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmStateCmd -- - * - * This procedure is invoked to process the "wm state" 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 -WmStateCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - static const char *const optionStrings[] = { - "normal", "iconic", "withdrawn", "zoomed", NULL }; - enum options { - OPT_NORMAL, OPT_ICONIC, OPT_WITHDRAWN, OPT_ZOOMED }; - int index; - - if ((objc < 3) || (objc > 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?state?"); - return TCL_ERROR; - } - if (objc == 4) { - if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "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", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "EMBEDDED", NULL); - return TCL_ERROR; - } - - if (Tcl_GetIndexFromObj(interp, objv[3], optionStrings, "argument", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - - if (index == OPT_NORMAL) { - TkpWmSetState(winPtr, NormalState); - - /* - * This varies from 'wm deiconify' because it does not force the - * window to be raised and receive focus - */ - } else if (index == OPT_ICONIC) { - if (Tk_Attributes((Tk_Window) winPtr)->override_redirect) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify \"%s\": override-redirect flag is set", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STATE", - "OVERRIDE_REDIRECT", NULL); - return TCL_ERROR; - } - if (wmPtr->master != None) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't iconify \"%s\": it is a transient", - winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WM", "STATE", "TRANSIENT", - NULL); - return TCL_ERROR; - } - TkpWmSetState(winPtr, IconicState); - } else if (index == OPT_WITHDRAWN) { - TkpWmSetState(winPtr, WithdrawnState); - } else { /* OPT_ZOOMED */ - TkpWmSetState(winPtr, ZoomState); - } - } else if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_NewStringObj("icon", -1)); - } else { - if (wmPtr->hints.initial_state == NormalState || - wmPtr->hints.initial_state == ZoomState) { - wmPtr->hints.initial_state = (TkMacOSXIsWindowZoomed(winPtr) ? - ZoomState : NormalState); - } - switch (wmPtr->hints.initial_state) { - case NormalState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("normal", -1)); - break; - case IconicState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("iconic", -1)); - break; - case WithdrawnState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("withdrawn", -1)); - break; - case ZoomState: - Tcl_SetObjResult(interp, Tcl_NewStringObj("zoomed", -1)); - break; - } - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmTitleCmd -- - * - * This procedure is invoked to process the "wm title" 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 -WmTitleCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - char *argv3; - int length; - - if (objc > 4) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?newTitle?"); - return TCL_ERROR; - } - if (objc == 3) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - wmPtr->titleUid ? wmPtr->titleUid : winPtr->nameUid, -1)); - return TCL_OK; - } - argv3 = Tcl_GetStringFromObj(objv[3], &length); - wmPtr->titleUid = Tk_GetUid(argv3); - if (!(wmPtr->flags & WM_NEVER_MAPPED) && !Tk_IsEmbedded(winPtr)) { - TkSetWMName(winPtr, wmPtr->titleUid); - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmTransientCmd -- - * - * This procedure is invoked to process the "wm transient" 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 -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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - Tk_Window master; - WmInfo *wmPtr2; - char *argv3; - int length; - - if ((objc != 3) && (objc != 4)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?master?"); - return TCL_ERROR; - } - if (objc == 3) { - if (wmPtr->master != None) { - Tcl_SetObjResult(interp, - Tcl_NewStringObj(wmPtr->masterWindowName, -1)); - } - return TCL_OK; - } - if (Tcl_GetString(objv[3])[0] == '\0') { - wmPtr->master = None; - if (wmPtr->masterWindowName != NULL) { - ckfree(wmPtr->masterWindowName); - } - wmPtr->masterWindowName = NULL; - } else { - if (TkGetWindowFromObj(interp, tkwin, objv[3], &master) != TCL_OK) { - return TCL_ERROR; - } - Tk_MakeWindowExist(master); - - if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't make \"%s\" a transient: it is an icon for %s", - Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor))); - Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "ICON", NULL); - return TCL_ERROR; - } - - wmPtr2 = ((TkWindow *) master)->wmInfoPtr; - - /* Under some circumstances, wmPtr2 is NULL here */ - if (wmPtr2 != NULL && wmPtr2->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't make \"%s\" a master: 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; - } - - if ((TkWindow *) master == winPtr) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't make \"%s\" its own master", Tk_PathName(winPtr))); - Tcl_SetErrorCode(interp, "TK", "WM", "TRANSIENT", "SELF", NULL); - return TCL_ERROR; - } - - argv3 = Tcl_GetStringFromObj(objv[3], &length); - wmPtr->master = Tk_WindowId(master); - if (wmPtr->masterWindowName != NULL) { - ckfree(wmPtr->masterWindowName); - } - wmPtr->masterWindowName = ckalloc(length+1); - strcpy(wmPtr->masterWindowName, argv3); - } - ApplyMasterOverrideChanges(winPtr, NULL); - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * WmWithdrawCmd -- - * - * This procedure is invoked to process the "wm withdraw" 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 -WmWithdrawCmd( - 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_Obj *const objv[]) /* Argument objects. */ -{ - register WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (objc != 3) { - Tcl_WrongNumArgs(interp, 2, objv, "window"); - return TCL_ERROR; - } - if (wmPtr->iconFor != NULL) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't withdraw %s: it is an icon for %s", - Tcl_GetString(objv[2]), Tk_PathName(wmPtr->iconFor))); - Tcl_SetErrorCode(interp, "TK", "WM", "WITHDRAW", "ICON", NULL); - return TCL_ERROR; - } - TkpWmSetState(winPtr, WithdrawnState); - return TCL_OK; -} - -/* - * Invoked by those wm subcommands that affect geometry. - * Schedules a geometry update. - */ - -static void -WmUpdateGeom( - WmInfo *wmPtr, - TkWindow *winPtr) -{ - if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) { - Tcl_DoWhenIdle(UpdateGeometryInfo, winPtr); - wmPtr->flags |= WM_UPDATE_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_SetGrid -- - * - * This procedure is invoked by a widget when it wishes to set a grid - * coordinate system that controls the size of a top-level window. It - * provides a C interface equivalent to the "wm grid" command and is - * usually asscoiated with the -setgrid option. - * - * Results: - * None. - * - * Side effects: - * Grid-related information will be passed to the window manager, so that - * the top-level window associated with tkwin will resize on even grid - * units. If some other window already controls gridding for the - * top-level window then this procedure call has no effect. - * - *---------------------------------------------------------------------- - */ - -void -Tk_SetGrid( - Tk_Window tkwin, /* Token for window. New window mgr info will - * be posted for the top-level window - * associated with this window. */ - int reqWidth, /* Width (in grid units) corresponding to the - * requested geometry for tkwin. */ - int reqHeight, /* Height (in grid units) corresponding to the - * requested geometry for tkwin. */ - int widthInc, int heightInc)/* Pixel increments corresponding to a change - * of one grid unit. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - WmInfo *wmPtr; - - /* - * Ensure widthInc and heightInc are greater than 0 - */ - - if (widthInc <= 0) { - widthInc = 1; - } - if (heightInc <= 0) { - heightInc = 1; - } - - /* - * Find the top-level window for tkwin, plus the window manager - * information. - */ - - while (!(winPtr->flags & TK_TOP_LEVEL)) { - winPtr = winPtr->parentPtr; - } - wmPtr = winPtr->wmInfoPtr; - - if ((wmPtr->gridWin != NULL) && (wmPtr->gridWin != tkwin)) { - return; - } - - if ((wmPtr->reqGridWidth == reqWidth) - && (wmPtr->reqGridHeight == reqHeight) - && (wmPtr->widthInc == widthInc) - && (wmPtr->heightInc == heightInc) - && ((wmPtr->sizeHintsFlags & (PBaseSize|PResizeInc)) - == (PBaseSize|PResizeInc))) { - return; - } - - /* - * If gridding was previously off, then forget about any window size - * requests made by the user or via "wm geometry": these are in pixel - * units and there's no easy way to translate them to grid units since the - * new requested size of the top-level window in pixels may not yet have - * been registered yet (it may filter up the hierarchy in DoWhenIdle - * handlers). However, if the window has never been mapped yet then just - * leave the window size alone: assume that it is intended to be in grid - * units but just happened to have been specified before this procedure - * was called. - */ - - if ((wmPtr->gridWin == NULL) && !(wmPtr->flags & WM_NEVER_MAPPED)) { - wmPtr->width = -1; - wmPtr->height = -1; - } - - /* - * Set the new gridding information, and start the process of passing all - * of this information to the window manager. - */ - - wmPtr->gridWin = tkwin; - wmPtr->reqGridWidth = reqWidth; - wmPtr->reqGridHeight = reqHeight; - wmPtr->widthInc = widthInc; - wmPtr->heightInc = heightInc; - wmPtr->sizeHintsFlags |= PBaseSize|PResizeInc; - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) { - Tcl_DoWhenIdle(UpdateGeometryInfo, winPtr); - wmPtr->flags |= WM_UPDATE_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_UnsetGrid -- - * - * This procedure cancels the effect of a previous call to Tk_SetGrid. - * - * Results: - * None. - * - * Side effects: - * If tkwin currently controls gridding for its top-level window, - * gridding is cancelled for that top-level window; if some other window - * controls gridding then this procedure has no effect. - * - *---------------------------------------------------------------------- - */ - -void -Tk_UnsetGrid( - Tk_Window tkwin) /* Token for window that is currently - * controlling gridding. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - WmInfo *wmPtr; - - /* - * Find the top-level window for tkwin, plus the window manager - * information. - */ - - while (!(winPtr->flags & TK_TOP_LEVEL)) { - winPtr = winPtr->parentPtr; - } - wmPtr = winPtr->wmInfoPtr; - if (tkwin != wmPtr->gridWin) { - return; - } - - wmPtr->gridWin = NULL; - wmPtr->sizeHintsFlags &= ~(PBaseSize|PResizeInc); - if (wmPtr->width != -1) { - wmPtr->width = winPtr->reqWidth + (wmPtr->width - - wmPtr->reqGridWidth)*wmPtr->widthInc; - wmPtr->height = winPtr->reqHeight + (wmPtr->height - - wmPtr->reqGridHeight)*wmPtr->heightInc; - } - wmPtr->widthInc = 1; - wmPtr->heightInc = 1; - - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) { - Tcl_DoWhenIdle(UpdateGeometryInfo, winPtr); - wmPtr->flags |= WM_UPDATE_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * TopLevelEventProc -- - * - * This procedure is invoked when a top-level (or other externally- - * managed window) is restructured in any way. - * - * Results: - * None. - * - * Side effects: - * Tk's internal data structures for the window get modified to reflect - * the structural change. - * - *---------------------------------------------------------------------- - */ - -static void -TopLevelEventProc( - ClientData clientData, /* Window for which event occurred. */ - XEvent *eventPtr) /* Event that just happened. */ -{ - TkWindow *winPtr = clientData; - - winPtr->wmInfoPtr->flags |= WM_VROOT_OFFSET_STALE; - if (eventPtr->type == DestroyNotify) { - if (!(winPtr->flags & TK_ALREADY_DEAD)) { - /* - * A top-level window was deleted externally (e.g., by the window - * manager). This is probably not a good thing, but cleanup as - * best we can. The error handler is needed because - * Tk_DestroyWindow will try to destroy the window, but of course - * it's already gone. - */ - - Tk_ErrorHandler handler = Tk_CreateErrorHandler(winPtr->display, - -1, -1, -1, NULL, NULL); - - Tk_DestroyWindow((Tk_Window) winPtr); - Tk_DeleteErrorHandler(handler); - } - if (wmTracing) { - TkMacOSXDbgMsg("TopLevelEventProc: %s deleted", winPtr->pathName); - } - } else if (eventPtr->type == ReparentNotify) { - Tcl_Panic("recieved unwanted reparent event"); - } -} - -/* - *---------------------------------------------------------------------- - * - * TopLevelReqProc -- - * - * This procedure is invoked by the geometry manager whenever the - * requested size for a top-level window is changed. - * - * Results: - * None. - * - * Side effects: - * Arrange for the window to be resized to satisfy the request (this - * happens as a when-idle action). - * - *---------------------------------------------------------------------- - */ - - /* ARGSUSED */ -static void -TopLevelReqProc( - ClientData dummy, /* Not used. */ - Tk_Window tkwin) /* Information about window. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - WmInfo *wmPtr; - - wmPtr = winPtr->wmInfoPtr; - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) { - Tcl_DoWhenIdle(UpdateGeometryInfo, winPtr); - wmPtr->flags |= WM_UPDATE_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * UpdateGeometryInfo -- - * - * This procedure is invoked when a top-level window is first mapped, and - * also as a when-idle procedure, to bring the geometry and/or position - * of a top-level window back into line with what has been requested by - * the user and/or widgets. This procedure doesn't return until the - * window manager has responded to the geometry change. - * - * Results: - * None. - * - * Side effects: - * The window's size and location may change, unless the WM prevents that - * from happening. - * - *---------------------------------------------------------------------- - */ - -static void -UpdateGeometryInfo( - ClientData clientData) /* Pointer to the window's record. */ -{ - TkWindow *winPtr = clientData; - WmInfo *wmPtr = winPtr->wmInfoPtr; - int x, y, width, height, min, max; - - wmPtr->flags &= ~WM_UPDATE_PENDING; - - if (wmPtr->flags & WM_FULLSCREEN) { - return; - } - - /* - * Compute the new size for the top-level window. See the user - * documentation for details on this, but the size requested depends on - * (a) the size requested internally by the window's widgets, (b) the size - * requested by the user in a "wm geometry" command or via wm-based - * interactive resizing (if any), and (c) whether or not the window is - * gridded. Don't permit sizes <= 0 because this upsets the X server. - */ - - if (wmPtr->width == -1) { - width = winPtr->reqWidth; - } else if (wmPtr->gridWin != NULL) { - width = winPtr->reqWidth - + (wmPtr->width - wmPtr->reqGridWidth)*wmPtr->widthInc; - } else { - width = wmPtr->width; - } - if (width <= 0) { - width = 1; - } - - /* - * Account for window max/min width - */ - - if (wmPtr->gridWin != NULL) { - min = winPtr->reqWidth - + (wmPtr->minWidth - wmPtr->reqGridWidth)*wmPtr->widthInc; - if (wmPtr->maxWidth > 0) { - max = winPtr->reqWidth - + (wmPtr->maxWidth - wmPtr->reqGridWidth)*wmPtr->widthInc; - } else { - max = 0; - } - } else { - min = wmPtr->minWidth; - max = wmPtr->maxWidth; - } - if (width < min) { - width = min; - } else if ((max > 0) && (width > max)) { - width = max; - } - - if (wmPtr->height == -1) { - height = winPtr->reqHeight; - } else if (wmPtr->gridWin != NULL) { - height = winPtr->reqHeight - + (wmPtr->height - wmPtr->reqGridHeight)*wmPtr->heightInc; - } else { - height = wmPtr->height; - } - if (height <= 0) { - height = 1; - } - - /* - * Account for window max/min height - */ - - if (wmPtr->gridWin != NULL) { - min = winPtr->reqHeight - + (wmPtr->minHeight - wmPtr->reqGridHeight)*wmPtr->heightInc; - if (wmPtr->maxHeight > 0) { - max = winPtr->reqHeight - + (wmPtr->maxHeight-wmPtr->reqGridHeight)*wmPtr->heightInc; - } else { - max = 0; - } - } else { - min = wmPtr->minHeight; - max = wmPtr->maxHeight; - } - if (height < min) { - height = min; - } else if ((max > 0) && (height > max)) { - height = max; - } - - /* - * Compute the new position for the upper-left pixel of the window's - * decorative frame. This is tricky, because we need to include the border - * widths supplied by a reparented parent in this calculation, but can't - * use the parent's current overall size since that may change as a result - * of this code. - */ - - if (wmPtr->flags & WM_NEGATIVE_X) { - x = wmPtr->vRootWidth - wmPtr->x - - (width + (wmPtr->parentWidth - winPtr->changes.width)); - } else { - x = wmPtr->x; - } - if (wmPtr->flags & WM_NEGATIVE_Y) { - y = wmPtr->vRootHeight - wmPtr->y - - (height + (wmPtr->parentHeight - winPtr->changes.height)); - } else { - y = wmPtr->y; - } - - /* - * If the window's size is going to change and the window is supposed to - * not be resizable by the user, then we have to update the size hints. - * There may also be a size-hint-update request pending from somewhere - * else, too. - */ - - if (((width != winPtr->changes.width) - || (height != winPtr->changes.height)) - && (wmPtr->gridWin == NULL) - && !(wmPtr->sizeHintsFlags & (PMinSize|PMaxSize))) { - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - } - if (wmPtr->flags & WM_UPDATE_SIZE_HINTS) { - UpdateSizeHints(winPtr); - } - - /* - * Reconfigure the window if it isn't already configured correctly. A few - * tricky points: - * - * 1. If the window is embedded and the container is also in this process, - * don't actually reconfigure the window; just pass the desired size on - * to the container. Also, zero out any position information, since - * embedded windows are not allowed to move. - * 2. Sometimes the window manager will give us a different size than we - * asked for (e.g. mwm has a minimum size for windows), so base the - * size check on what we *asked for* last time, not what we got. - * 3. Don't move window unless a new position has been requested for it. - * This is because of "features" in some window managers (e.g. twm, as - * of 4/24/91) where they don't interpret coordinates according to - * ICCCM. Moving a window to its current location may cause it to shift - * position on the screen. - */ - - if (Tk_IsEmbedded(winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(winPtr); - - /* - * TODO: Here we should handle out of process embedding. - */ - - if (contWinPtr != NULL) { - /* - * This window is embedded and the container is also in this - * process, so we don't need to do anything special about the - * geometry, except to make sure that the desired size is known by - * the container. Also, zero out any position information, since - * embedded windows are not allowed to move. - */ - - wmPtr->x = wmPtr->y = 0; - wmPtr->flags &= ~(WM_NEGATIVE_X|WM_NEGATIVE_Y); - Tk_GeometryRequest((Tk_Window) contWinPtr, width, height); - } - return; - } - if (wmPtr->flags & WM_MOVE_PENDING) { - wmPtr->configWidth = width; - wmPtr->configHeight = height; - if (wmTracing) { - TkMacOSXDbgMsg("Moving to %d %d, resizing to %d x %d", x, y, - width, height); - } - wmPtr->flags |= WM_SYNC_PENDING; - XMoveResizeWindow(winPtr->display, winPtr->window, x, y, - (unsigned) width, (unsigned) height); - wmPtr->flags &= ~WM_SYNC_PENDING; - } else if ((width != wmPtr->configWidth) - || (height != wmPtr->configHeight)) { - wmPtr->configWidth = width; - wmPtr->configHeight = height; - if (wmTracing) { - TkMacOSXDbgMsg("Resizing to %d x %d\n", width, height); - } - wmPtr->flags |= WM_SYNC_PENDING; - XResizeWindow(winPtr->display, winPtr->window, (unsigned) width, - (unsigned) height); - wmPtr->flags &= ~WM_SYNC_PENDING; - } -} - -/* - *---------------------------------------------------------------------- - * - * UpdateSizeHints -- - * - * This procedure is called to update the window manager's size hints - * information from the information in a WmInfo structure. - * - * Results: - * None. - * - * Side effects: - * Properties get changed for winPtr. - * - *---------------------------------------------------------------------- - */ - -static void -UpdateSizeHints( - TkWindow *winPtr) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - - wmPtr->flags &= ~WM_UPDATE_SIZE_HINTS; -} - -/* - *---------------------------------------------------------------------- - * - * ParseGeometry -- - * - * This procedure parses a geometry string and updates information used - * to control the geometry of a top-level window. - * - * Results: - * A standard Tcl return value, plus an error message in the interp's - * result if an error occurs. - * - * Side effects: - * The size and/or location of winPtr may change. - * - *---------------------------------------------------------------------- - */ - -static int -ParseGeometry( - Tcl_Interp *interp, /* Used for error reporting. */ - char *string, /* String containing new geometry. Has the - * standard form "=wxh+x+y". */ - TkWindow *winPtr) /* Pointer to top-level window whose geometry - * is to be changed. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - int x, y, width, height, flags; - char *end; - char *p = string; - - /* - * The leading "=" is optional. - */ - - if (*p == '=') { - p++; - } - - /* - * Parse the width and height, if they are present. Don't actually update - * any of the fields of wmPtr until we've successfully parsed the entire - * geometry string. - */ - - width = wmPtr->width; - height = wmPtr->height; - x = wmPtr->x; - y = wmPtr->y; - flags = wmPtr->flags; - if (isdigit(UCHAR(*p))) { - width = strtoul(p, &end, 10); - p = end; - if (*p != 'x') { - goto error; - } - p++; - if (!isdigit(UCHAR(*p))) { - goto error; - } - height = strtoul(p, &end, 10); - p = end; - } - - /* - * Parse the X and Y coordinates, if they are present. - */ - - if (*p != '\0') { - flags &= ~(WM_NEGATIVE_X | WM_NEGATIVE_Y); - if (*p == '-') { - flags |= WM_NEGATIVE_X; - } else if (*p != '+') { - goto error; - } - p++; - if (!isdigit(UCHAR(*p)) && (*p != '-')) { - goto error; - } - x = strtol(p, &end, 10); - p = end; - if (*p == '-') { - flags |= WM_NEGATIVE_Y; - } else if (*p != '+') { - goto error; - } - p++; - if (!isdigit(UCHAR(*p)) && (*p != '-')) { - goto error; - } - y = strtol(p, &end, 10); - if (*end != '\0') { - goto error; - } - - /* - * Assume that the geometry information came from the user, unless an - * explicit source has been specified. Otherwise most window managers - * assume that the size hints were program-specified and they ignore - * them. - */ - - if (!(wmPtr->sizeHintsFlags & (USPosition|PPosition))) { - wmPtr->sizeHintsFlags |= USPosition; - flags |= WM_UPDATE_SIZE_HINTS; - } - } - - /* - * Everything was parsed OK. Update the fields of *wmPtr and arrange for - * the appropriate information to be percolated out to the window manager - * at the next idle moment. - */ - - wmPtr->width = width; - wmPtr->height = height; - if ((x != wmPtr->x) || (y != wmPtr->y) - || ((flags & (WM_NEGATIVE_X|WM_NEGATIVE_Y)) - != (wmPtr->flags & (WM_NEGATIVE_X|WM_NEGATIVE_Y)))) { - if (wmPtr->flags & WM_FULLSCREEN) { - wmPtr->configX = x; - wmPtr->configY = y; - } else { - wmPtr->x = x; - wmPtr->y = y; - } - flags |= WM_MOVE_PENDING; - } - wmPtr->flags = flags; - - if (!(wmPtr->flags & (WM_UPDATE_PENDING|WM_NEVER_MAPPED))) { - Tcl_DoWhenIdle(UpdateGeometryInfo, winPtr); - wmPtr->flags |= WM_UPDATE_PENDING; - } - return TCL_OK; - - error: - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "bad geometry specifier \"%s\"", string)); - Tcl_SetErrorCode(interp, "TK", "VALUE", "GEOMETRY", NULL); - return TCL_ERROR; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetRootCoords -- - * - * Given a token for a window, this procedure traces through the window's - * lineage to find the (virtual) root-window coordinates corresponding to - * point (0,0) in the window. - * - * Results: - * The locations pointed to by xPtr and yPtr are filled in with the root - * coordinates of the (0,0) point in tkwin. If a virtual root window is - * in effect for the window, then the coordinates in the virtual root are - * returned. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -Tk_GetRootCoords( - Tk_Window tkwin, /* Token for window. */ - int *xPtr, /* Where to store x-displacement of (0,0). */ - int *yPtr) /* Where to store y-displacement of (0,0). */ -{ - int x, y; - TkWindow *winPtr = (TkWindow *) tkwin; - - /* - * Search back through this window's parents all the way to a top-level - * window, combining the offsets of each window within its parent. - */ - - x = y = 0; - while (1) { - x += winPtr->changes.x + winPtr->changes.border_width; - y += winPtr->changes.y + winPtr->changes.border_width; - if (winPtr->flags & TK_TOP_LEVEL) { - TkWindow *otherPtr; - - if (!(Tk_IsEmbedded(winPtr))) { - x += winPtr->wmInfoPtr->xInParent; - y += winPtr->wmInfoPtr->yInParent; - break; - } - - otherPtr = TkpGetOtherWindow(winPtr); - if (otherPtr == NULL) { - if (tkMacOSXEmbedHandler->getOffsetProc != NULL) { - Point theOffset; - - /* - * We do not require that the changes.x & changes.y for a - * non-Tk master 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; - } - - /* - * The container window is in the same application. Query its - * coordinates. - */ - - winPtr = otherPtr; - - /* - * Remember to offset by the container window here, since at the - * end of this if branch, we will pop out to the container's - * parent... - */ - - x += winPtr->changes.x + winPtr->changes.border_width; - y += winPtr->changes.y + winPtr->changes.border_width; - } - winPtr = winPtr->parentPtr; - } - *xPtr = x; - *yPtr = y; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_CoordsToWindow -- - * - * This is a Macintosh specific implementation of this function. Given - * the root coordinates of a point, this procedure returns the token for - * the top-most window covering that point, if there exists such a window - * in this application. - * - * Results: - * The return result is either a token for the window corresponding to - * rootX and rootY, or else NULL to indicate that there is no such - * window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Tk_Window -Tk_CoordsToWindow( - int rootX, int rootY, /* Coordinates of point in root window. If a - * virtual-root window manager is in use, - * these coordinates refer to the virtual - * root, not the real root. */ - Tk_Window tkwin) /* Token for any window in application; used - * to identify the display. */ -{ - WindowPtr whichWin; - Point where; - Window rootChild; - TkWindow *winPtr, *childPtr; - TkWindow *nextPtr; /* Coordinates of highest child found so far - * that contains point. */ - int x, y; /* Coordinates in winPtr. */ - int tmpx, tmpy, bd; - TkDisplay *dispPtr; - - /* - * Step 1: find the top-level window that contains the desired point. - */ - - where.h = rootX; - where.v = rootY; - FindWindow(where, &whichWin); - if (whichWin == NULL) { - return NULL; - } - rootChild = TkMacOSXGetXWindow(whichWin); - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, rootChild); - if (winPtr == NULL) { - return NULL; - } - - /* - * Step 2: work down through the hierarchy underneath this window. At each - * level, scan through all the children to find the highest one in the - * stacking order that contains the point. Then repeat the whole process - * on that child. - */ - - x = rootX - winPtr->wmInfoPtr->xInParent; - y = rootY - winPtr->wmInfoPtr->yInParent; - while (1) { - x -= winPtr->changes.x; - y -= winPtr->changes.y; - nextPtr = NULL; - - /* - * Container windows cannot have children. So if it is a container, - * look there, otherwise inspect the children. - */ - - if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); - if (childPtr != NULL) { - if (Tk_IsMapped(childPtr)) { - tmpx = x - childPtr->changes.x; - tmpy = y - childPtr->changes.y; - bd = childPtr->changes.border_width; - - if ((tmpx >= -bd) && (tmpy >= -bd) - && (tmpx < (childPtr->changes.width + bd)) - && (tmpy < (childPtr->changes.height + bd))) { - nextPtr = childPtr; - } - } - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } else { - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - if (!Tk_IsMapped(childPtr) || - (childPtr->flags & TK_TOP_LEVEL)) { - continue; - } - tmpx = x - childPtr->changes.x; - tmpy = y - childPtr->changes.y; - bd = childPtr->changes.border_width; - if ((tmpx >= -bd) && (tmpy >= -bd) - && (tmpx < (childPtr->changes.width + bd)) - && (tmpy < (childPtr->changes.height + bd))) { - nextPtr = childPtr; - } - } - } - if (nextPtr == NULL) { - break; - } - winPtr = nextPtr; - } - return (Tk_Window) winPtr; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_TopCoordsToWindow -- - * - * Given a Tk Window, and coordinates of a point relative to that window - * this procedure returns the top-most child of the window (excluding - * toplevels) covering that point, if there exists such a window in this - * application. It also sets newX, and newY to the coords of the point - * relative to the window returned. - * - * Results: - * The return result is either a token for the window corresponding to - * rootX and rootY, or else NULL to indicate that there is no such - * window. newX and newY are also set to the coords of the point relative - * to the returned window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Tk_Window -Tk_TopCoordsToWindow( - Tk_Window tkwin, /* Token for a Tk Window which defines the - * coordinates for rootX & rootY */ - int rootX, int rootY, /* Coordinates of a point in tkWin. */ - int *newX, int *newY) /* Coordinates of point in the upperMost child - * of tkWin containing (rootX,rootY) */ -{ - TkWindow *winPtr, *childPtr; - TkWindow *nextPtr; /* Coordinates of highest child found so far - * that contains point. */ - int x, y; /* Coordinates in winPtr. */ - Window *children; /* Children of winPtr, or NULL. */ - - winPtr = (TkWindow *) tkwin; - x = rootX; - y = rootY; - while (1) { - nextPtr = NULL; - children = NULL; - - /* - * Container windows cannot have children. So if it is a container, - * look there, otherwise inspect the children. - */ - - if (Tk_IsContainer(winPtr)) { - childPtr = TkpGetOtherWindow(winPtr); - if (childPtr != NULL) { - if (Tk_IsMapped(childPtr) && - x > childPtr->changes.x && - x < childPtr->changes.x + childPtr->changes.width && - y > childPtr->changes.y && - y < childPtr->changes.y + childPtr->changes.height) { - nextPtr = childPtr; - } - } - - /* - * TODO: Here we should handle out of process embedding. - */ - } else { - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - if (!Tk_IsMapped(childPtr) || - (childPtr->flags & TK_TOP_LEVEL)) { - continue; - } - if (x < childPtr->changes.x || y < childPtr->changes.y) { - continue; - } - if (x > childPtr->changes.x + childPtr->changes.width || - y > childPtr->changes.y + childPtr->changes.height) { - continue; - } - nextPtr = childPtr; - } - } - if (nextPtr == NULL) { - break; - } - winPtr = nextPtr; - x -= winPtr->changes.x; - y -= winPtr->changes.y; - } - *newX = x; - *newY = y; - return (Tk_Window) winPtr; -} - -/* - *---------------------------------------------------------------------- - * - * UpdateVRootGeometry -- - * - * This procedure is called to update all the virtual root geometry - * information in wmPtr. - * - * Results: - * None. - * - * Side effects: - * The vRootX, vRootY, vRootWidth, and vRootHeight fields in wmPtr are - * filled with the most up-to-date information. - * - *---------------------------------------------------------------------- - */ - -static void -UpdateVRootGeometry( - WmInfo *wmPtr) /* Window manager information to be updated. - * The wmPtr->vRoot field must be valid. */ -{ - TkWindow *winPtr = wmPtr->winPtr; - unsigned int bd, dummy; - Window dummy2; - Status status; - Tk_ErrorHandler handler; - - /* - * If this isn't a virtual-root window manager, just return information - * about the screen. - */ - - wmPtr->flags &= ~WM_VROOT_OFFSET_STALE; - if (wmPtr->vRoot == None) { - noVRoot: - wmPtr->vRootX = wmPtr->vRootY = 0; - wmPtr->vRootWidth = DisplayWidth(winPtr->display, winPtr->screenNum); - wmPtr->vRootHeight = DisplayHeight(winPtr->display, winPtr->screenNum); - return; - } - - /* - * Refresh the virtual root information if it's out of date. - */ - - handler = Tk_CreateErrorHandler(winPtr->display, -1, -1, -1, NULL, NULL); - status = XGetGeometry(winPtr->display, wmPtr->vRoot, - &dummy2, &wmPtr->vRootX, &wmPtr->vRootY, - &wmPtr->vRootWidth, &wmPtr->vRootHeight, &bd, &dummy); - if (wmTracing) { - TkMacOSXDbgMsg("x = %d, y = %d, width = %d, height = %d, status = %d", - wmPtr->vRootX, wmPtr->vRootY, wmPtr->vRootWidth, - wmPtr->vRootHeight, status); - } - Tk_DeleteErrorHandler(handler); - if (status == 0) { - /* - * The virtual root is gone! Pretend that it never existed. - */ - - wmPtr->vRoot = None; - goto noVRoot; - } -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetVRootGeometry -- - * - * This procedure returns information about the virtual root window - * corresponding to a particular Tk window. - * - * Results: - * The values at xPtr, yPtr, widthPtr, and heightPtr are set with the - * offset and dimensions of the root window corresponding to tkwin. If - * tkwin is being managed by a virtual root window manager these values - * correspond to the virtual root window being used for tkwin; otherwise - * the offsets will be 0 and the dimensions will be those of the screen. - * - * Side effects: - * Vroot window information is refreshed if it is out of date. - * - *---------------------------------------------------------------------- - */ - -void -Tk_GetVRootGeometry( - Tk_Window tkwin, /* Window whose virtual root is to be - * queried. */ - int *xPtr, int *yPtr, /* Store x and y offsets of virtual root - * here. */ - int *widthPtr, /* Store dimensions of virtual root here. */ - int *heightPtr) -{ - WmInfo *wmPtr; - TkWindow *winPtr = (TkWindow *) tkwin; - - /* - * Find the top-level window for tkwin, and locate the window manager - * information for that window. - */ - - while (!(winPtr->flags & TK_TOP_LEVEL)) { - winPtr = winPtr->parentPtr; - } - wmPtr = winPtr->wmInfoPtr; - - /* - * Make sure that the geometry information is up-to-date, then copy it out - * to the caller. - */ - - if (wmPtr->flags & WM_VROOT_OFFSET_STALE) { - UpdateVRootGeometry(wmPtr); - } - *xPtr = wmPtr->vRootX; - *yPtr = wmPtr->vRootY; - *widthPtr = wmPtr->vRootWidth; - *heightPtr = wmPtr->vRootHeight; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_MoveToplevelWindow -- - * - * This procedure is called instead of Tk_MoveWindow to adjust the x-y - * location of a top-level window. It delays the actual move to a later - * time and keeps window-manager information up-to-date with the move. - * - * Results: - * None. - * - * Side effects: - * The window is eventually moved so that its upper-left corner - * (actually, the upper-left corner of the window's decorative frame, if - * there is one) is at (x,y). - * - *---------------------------------------------------------------------- - */ - -void -Tk_MoveToplevelWindow( - Tk_Window tkwin, /* Window to move. */ - int x, int y) /* New location for window (within parent). */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (!(winPtr->flags & TK_TOP_LEVEL)) { - Tcl_Panic("Tk_MoveToplevelWindow called with non-toplevel window"); - } - wmPtr->x = x; - wmPtr->y = y; - wmPtr->flags |= WM_MOVE_PENDING; - wmPtr->flags &= ~(WM_NEGATIVE_X|WM_NEGATIVE_Y); - if (!(wmPtr->sizeHintsFlags & (USPosition|PPosition))) { - wmPtr->sizeHintsFlags |= USPosition; - wmPtr->flags |= WM_UPDATE_SIZE_HINTS; - } - - /* - * If the window has already been mapped, must bring its geometry - * up-to-date immediately, otherwise an event might arrive from the server - * that would overwrite wmPtr->x and wmPtr->y and lose the new position. - */ - - if (!(wmPtr->flags & WM_NEVER_MAPPED)) { - if (wmPtr->flags & WM_UPDATE_PENDING) { - Tk_CancelIdleCall(UpdateGeometryInfo, winPtr); - } - UpdateGeometryInfo(winPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkWmRestackToplevel -- - * - * This procedure restacks a top-level window. - * - * Results: - * None. - * - * Side effects: - * WinPtr gets restacked as specified by aboveBelow and otherPtr. This - * procedure doesn't return until the restack has taken effect and the - * ConfigureNotify event for it has been received. - * - *---------------------------------------------------------------------- - */ - -void -TkWmRestackToplevel( - TkWindow *winPtr, /* Window to restack. */ - int aboveBelow, /* Gives relative position for restacking; - * must be Above or Below. */ - TkWindow *otherPtr) /* Window relative to which to restack; if - * NULL, then winPtr gets restacked above or - * below *all* siblings. */ -{ - WmInfo *wmPtr; - - WindowRef macWindow, otherMacWindow, frontWindow, tmpWindow; - - wmPtr = winPtr->wmInfoPtr; - - /* - * Get the mac window. Make sure it exists & is mapped. - */ - - if (winPtr->window == None) { - Tk_MakeWindowExist((Tk_Window) winPtr); - } - if (winPtr->wmInfoPtr->flags & WM_NEVER_MAPPED) { - /* - * Can't set stacking order properly until the window is on the screen - * (mapping it may give it a reparent window), so make sure it's on - * the screen. - */ - - TkWmMapWindow(winPtr); - } - macWindow = TkMacOSXDrawableWindow(winPtr->window); - - /* - * Get the window in which a raise or lower is in relation to. - */ - - if (otherPtr != NULL) { - if (otherPtr->window == None) { - Tk_MakeWindowExist((Tk_Window) otherPtr); - } - if (otherPtr->wmInfoPtr->flags & WM_NEVER_MAPPED) { - TkWmMapWindow(otherPtr); - } - otherMacWindow = TkMacOSXDrawableWindow(otherPtr->window); - } else { - otherMacWindow = NULL; - } - - frontWindow = ActiveNonFloatingWindow(); - - if (aboveBelow == Above) { - if (macWindow == frontWindow) { - /* - * Do nothing - it's already at the top. - */ - } else if (otherMacWindow == frontWindow || otherMacWindow == NULL) { - /* - * Raise the window to the top. If the window is visible then we - * also make it the active window. - */ - - if (wmPtr->hints.initial_state == WithdrawnState) { - BringToFront(macWindow); - } else { - SelectWindow(macWindow); - } - } else { - /* - * Find the window to be above. (Front window will actually be the - * window to be behind.) Front window is NULL if no other windows. - */ - - while (frontWindow != NULL && - (tmpWindow=GetNextWindow(frontWindow)) != otherMacWindow) { - frontWindow = tmpWindow; - } - if (frontWindow != NULL) { - SendBehind(macWindow, frontWindow); - } - } - } else { - /* - * Send behind. If it was in front find another window to make active. - */ - - if (macWindow == frontWindow) { - tmpWindow = GetNextWindow(macWindow); - if (tmpWindow != NULL) { - SelectWindow(tmpWindow); - } - } - SendBehind(macWindow, otherMacWindow); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkWmAddToColormapWindows -- - * - * This procedure is called to add a given window to the - * WM_COLORMAP_WINDOWS property for its top-level, if it isn't already - * there. It is invoked by the Tk code that creates a new colormap, in - * order to make sure that colormap information is propagated to the - * window manager by default. - * - * Results: - * None. - * - * Side effects: - * WinPtr's window gets added to the WM_COLORMAP_WINDOWS property of its - * nearest top-level ancestor, unless the colormaps have been set - * explicitly with the "wm colormapwindows" command. - * - *---------------------------------------------------------------------- - */ - -void -TkWmAddToColormapWindows( - TkWindow *winPtr) /* Window with a non-default colormap. Should - * not be a top-level window. */ -{ - TkWindow *topPtr; - TkWindow **oldPtr, **newPtr; - int count, i; - - if (winPtr->window == None) { - return; - } - - for (topPtr = winPtr->parentPtr; ; topPtr = topPtr->parentPtr) { - if (topPtr == NULL) { - /* - * Window is being deleted. Skip the whole operation. - */ - - return; - } - if (topPtr->flags & TK_TOP_LEVEL) { - break; - } - } - if (topPtr->wmInfoPtr->flags & WM_COLORMAPS_EXPLICIT) { - return; - } - - /* - * Make sure that the window isn't already in the list. - */ - - count = topPtr->wmInfoPtr->cmapCount; - oldPtr = topPtr->wmInfoPtr->cmapList; - - for (i = 0; i < count; i++) { - if (oldPtr[i] == winPtr) { - return; - } - } - - /* - * Make a new bigger array and use it to reset the property. Automatically - * add the toplevel itself as the last element of the list. - */ - - newPtr = ckalloc((count+2) * sizeof(TkWindow *)); - if (count > 0) { - memcpy(newPtr, oldPtr, count * sizeof(TkWindow *)); - } - if (count == 0) { - count++; - } - newPtr[count-1] = winPtr; - newPtr[count] = topPtr; - if (oldPtr != NULL) { - ckfree(oldPtr); - } - - topPtr->wmInfoPtr->cmapList = newPtr; - topPtr->wmInfoPtr->cmapCount = count+1; - - /* - * On the Macintosh all of this is just an excercise in compatability as - * we don't support colormaps. If we did they would be installed here. - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkWmRemoveFromColormapWindows -- - * - * This procedure is called to remove a given window from the - * WM_COLORMAP_WINDOWS property for its top-level. It is invoked when - * windows are deleted. - * - * Results: - * None. - * - * Side effects: - * WinPtr's window gets removed from the WM_COLORMAP_WINDOWS property of - * its nearest top-level ancestor, unless the top-level itself is being - * deleted too. - * - *---------------------------------------------------------------------- - */ - -void -TkWmRemoveFromColormapWindows( - TkWindow *winPtr) /* Window that may be present in - * WM_COLORMAP_WINDOWS property for its - * top-level. Should not be a top-level - * window. */ -{ - TkWindow *topPtr, **oldPtr; - int count, i, j; - - for (topPtr = winPtr->parentPtr; ; topPtr = topPtr->parentPtr) { - if (topPtr == NULL) { - /* - * Ancestors have been deleted, so skip the whole operation. Seems - * like this can't ever happen? - */ - - return; - } - if (topPtr->flags & TK_TOP_LEVEL) { - break; - } - } - if (topPtr->flags & TK_ALREADY_DEAD) { - /* - * Top-level is being deleted, so there's no need to cleanup the - * WM_COLORMAP_WINDOWS property. - */ - - return; - } - - /* - * Find the window and slide the following ones down to cover it up. - */ - - count = topPtr->wmInfoPtr->cmapCount; - oldPtr = topPtr->wmInfoPtr->cmapList; - for (i = 0; i < count; i++) { - if (oldPtr[i] == winPtr) { - for (j = i ; j < count-1; j++) { - oldPtr[j] = oldPtr[j+1]; - } - topPtr->wmInfoPtr->cmapCount = count - 1; - break; - } - } -} - -/* - *---------------------------------------------------------------------- - * - * TkGetPointerCoords -- - * - * Fetch the position of the mouse pointer. - * - * Results: - * *xPtr and *yPtr are filled in with the (virtual) root coordinates of - * the mouse pointer for tkwin's display. If the pointer isn't on tkwin's - * screen, then -1 values are returned for both coordinates. The argument - * tkwin must be a toplevel window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkGetPointerCoords( - Tk_Window tkwin, /* Toplevel window that identifies screen on - * which lookup is to be done. */ - int *xPtr, int *yPtr) /* Store pointer coordinates here. */ -{ - XQueryPointer(NULL, None, NULL, NULL, xPtr, yPtr, NULL, NULL, NULL); -} - -/* - *---------------------------------------------------------------------- - * - * InitialWindowBounds -- - * - * This function calculates the initial bounds for a new Mac toplevel - * window. Unless the geometry is specified by the user this code will - * auto place the windows in a cascade diagonially across the main - * monitor of the Mac. - * - * Results: - * The bounds are returned in geometry. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -InitialWindowBounds( - TkWindow *winPtr, /* Window to get initial bounds for. */ - WindowRef macWindow, - Rect *geometry) /* On return the initial bounds. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (!(wmPtr->sizeHintsFlags & (USPosition | PPosition))) { - WindowRef parent; - - parent = GetFrontWindowOfClass(wmPtr->macClass, false); - if (parent && parent == macWindow) { - parent = GetNextWindowOfClass(parent, wmPtr->macClass, false); - } - if (parent && parent != macWindow) { - Rect bounds; - - ChkErr(RepositionWindow, macWindow, parent, - kWindowCascadeOnParentWindowScreen); - ChkErr(GetWindowBounds, macWindow, kWindowStructureRgn, &bounds); - wmPtr->x = bounds.left; - wmPtr->y = bounds.top; - } else { - static SInt16 menuBarHeight = 0; - - if (!menuBarHeight) { - ChkErr(GetThemeMenuBarHeight, &menuBarHeight); - } - wmPtr->x = 5; - wmPtr->y = menuBarHeight + 5; - } - } - - geometry->left = wmPtr->x; - geometry->top = wmPtr->y; - geometry->right = wmPtr->x + winPtr->changes.width; - geometry->bottom = wmPtr->y + winPtr->changes.height; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXResizable -- - * - * This function determines if the passed in window is part of a toplevel - * window that is resizable. If the window is resizable in the x, y or - * both directions, true is returned. - * - * Results: - * True if resizable, false otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXResizable( - TkWindow *winPtr) /* Tk window or NULL. */ -{ - WmInfo *wmPtr; - - if (winPtr == NULL) { - return false; - } - while (winPtr->wmInfoPtr == NULL) { - winPtr = winPtr->parentPtr; - } - - wmPtr = winPtr->wmInfoPtr; - if ((wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) && - (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE)) { - return false; - } else { - return true; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGrowToplevel -- - * - * The function is invoked when the user clicks in the grow region of a - * Tk window. The function will handle the dragging procedure and not - * return until completed. Finally, the function may place information - * Tk's event queue is the window was resized. - * - * Results: - * True if events were placed on event queue, false otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXGrowToplevel( - void *whichWindow, - XPoint s) -{ - Point start = {s.y, s.x}; - Point where = start; - TkDisplay *dispPtr; - Rect portRect; - CGrafPtr destPort = GetWindowPort(whichWindow); - - QDGlobalToLocalPoint(destPort, &where); - GetPortBounds(destPort, &portRect); - if (where.h > (portRect.right - 16) && - where.v > (portRect.bottom - 16)) { - Window window; - TkWindow *winPtr; - WmInfo *wmPtr; - int minWidth, minHeight, maxWidth, maxHeight; - Rect limits, bounds, *maxBounds; - Boolean resizeResult; - - window = TkMacOSXGetXWindow(whichWindow); - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, window); - wmPtr = winPtr->wmInfoPtr; - maxBounds = (Rect*)(dispPtr->display->screens->ext_data); - - if ((wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) && - (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE)) { - return false; - } - GetMinSize(winPtr, &minWidth, &minHeight); - GetMaxSize(winPtr, &maxWidth, &maxHeight); - if (wmPtr->gridWin != NULL) { - int base = winPtr->reqWidth - (wmPtr->reqGridWidth - * wmPtr->widthInc); - - if (base < 0) { - base = 0; - } - limits.left = base + (minWidth * wmPtr->widthInc); - limits.right = base + (maxWidth * wmPtr->widthInc); - base = winPtr->reqHeight - (wmPtr->reqGridHeight - * wmPtr->heightInc); - if (base < 0) { - base = 0; - } - limits.top = base + (minHeight * wmPtr->heightInc); - limits.bottom = base + (maxHeight * wmPtr->heightInc); - } else { - limits.left = minWidth; - limits.right = maxWidth; - limits.top = minHeight; - limits.bottom = maxHeight; - } - if (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) { - limits.left = limits.right = winPtr->changes.width; - } - if (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) { - limits.top = limits.bottom = winPtr->changes.height; - } - if (PtInRect(start, maxBounds)) { - Rect strBounds, strWidths, limitBounds; - - ChkErr(GetWindowBounds, whichWindow, kWindowStructureRgn, - &strBounds); - ChkErr(GetWindowStructureWidths, whichWindow, &strWidths); - - limitBounds.left = limits.left + (strBounds.left + strWidths.left); - limitBounds.right = limits.right + - (strBounds.left + strWidths.left + strWidths.right); - limitBounds.top = limits.top + (strBounds.top + strWidths.top); - limitBounds.bottom = limits.bottom + - (strBounds.top + strWidths.top + strWidths.bottom); - if (limitBounds.left < maxBounds->left) { - limitBounds.left = maxBounds->left; - } - if (limitBounds.right > maxBounds->right) { - limitBounds.right = maxBounds->right; - } - if (limitBounds.top < maxBounds->top) { - limitBounds.top = maxBounds->top; - } - if (limitBounds.bottom > maxBounds->bottom) { - limitBounds.bottom = maxBounds->bottom; - } - limits.left = limitBounds.left - (strBounds.left + strWidths.left); - limits.right = limitBounds.right - - (strBounds.left + strWidths.left + strWidths.right); - limits.top = limitBounds.top - (strBounds.top + strWidths.top); - limits.bottom = limitBounds.bottom - - (strBounds.top + strWidths.top + strWidths.bottom); - } - TkMacOSXTrackingLoop(1); - resizeResult = ResizeWindow(whichWindow, start, &limits, &bounds); - TkMacOSXTrackingLoop(0); - if (resizeResult) { - return true; - } - } - return false; -} - -/* - *---------------------------------------------------------------------- - * - * TkSetWMName -- - * - * Set the title for a toplevel window. If the window is embedded, do not - * change the window title. - * - * Results: - * None. - * - * Side effects: - * The title of the window is changed. - * - *---------------------------------------------------------------------- - */ - -void -TkSetWMName( - TkWindow *winPtr, - Tk_Uid titleUid) -{ - CFStringRef title; - - if (Tk_IsEmbedded(winPtr)) { - return; - } - - title = CFStringCreateWithBytes(NULL, (const unsigned char *) titleUid, - strlen(titleUid), kCFStringEncodingUTF8, false); - if (title) { - WindowRef macWin = TkMacOSXDrawableWindow(winPtr->window); - - SetWindowTitleWithCFString(macWin, title); - CFRelease(title); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkGetTransientMaster -- - * - * If the passed window has the TRANSIENT_FOR property set this will - * return the master window. Otherwise it will return None. - * - * Results: - * The master window or None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Window -TkGetTransientMaster( - TkWindow *winPtr) -{ - if (winPtr->wmInfoPtr != NULL) { - return winPtr->wmInfoPtr->master; - } - return None; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXGetXWindow -- - * - * Returns the X window Id associated with the given WindowRef. - * - * Results: - * The window id is returned. None is returned if not a Tk window. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -Window -TkMacOSXGetXWindow( - void *macWinPtr) -{ - Tcl_HashEntry *hPtr; - - if ((macWinPtr == NULL) || !windowHashInit) { - return None; - } - hPtr = Tcl_FindHashEntry(&windowTable, (char *) macWinPtr); - if (hPtr == NULL) { - return None; - } - return (Window) Tcl_GetHashValue(hPtr); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXIsWindowZoomed -- - * - * Ask Carbon if the given window is in the zoomed out state. Because - * dragging & growing a window can change the Carbon zoom state, we - * cannot rely on wmInfoPtr->hints.initial_state for this information. - * - * Results: - * True if window is zoomed out, false otherwise. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE int -TkMacOSXIsWindowZoomed( - TkWindow *winPtr) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - int maxWidth, maxHeight; - Point idealSize; - - if ((wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) && - (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE)) { - return false; - } - GetMaxSize(winPtr, &maxWidth, &maxHeight); - if (wmPtr->gridWin != NULL) { - int base = winPtr->reqWidth - (wmPtr->reqGridWidth * wmPtr->widthInc); - - if (base < 0) { - base = 0; - } - maxWidth = base + (maxWidth * wmPtr->widthInc); - base = winPtr->reqHeight - (wmPtr->reqGridHeight * wmPtr->heightInc); - if (base < 0) { - base = 0; - } - maxHeight = base + (maxHeight * wmPtr->heightInc); - } - if (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) { - idealSize.h = winPtr->changes.width; - } else { - idealSize.h = maxWidth; - } - if (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) { - idealSize.v = winPtr->changes.height; - } else { - idealSize.v = maxHeight; - } - - return IsWindowInStandardState(TkMacOSXDrawableWindow(winPtr->window), - &idealSize, NULL); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXZoomToplevel -- - * - * The function is invoked when the user clicks in the zoom region of a - * Tk window or when the window state is set/unset to "zoomed" manually. - * If the window is to be zoomed (in or out), the window size is changed - * and events are generated to let Tk know what happened. - * - * Results: - * True if events were placed on event queue, false otherwise. - * - * Side effects: - * The window may be resized & events placed on Tk's queue. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXZoomToplevel( - void *whichWindow, /* The Macintosh window to zoom. */ - short zoomPart) /* Either inZoomIn or inZoomOut */ -{ - Window window; - TkDisplay *dispPtr; - TkWindow *winPtr; - WmInfo *wmPtr; - Point idealSize; - int maxWidth, maxHeight; - OSStatus err; - - window = TkMacOSXGetXWindow(whichWindow); - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, window); - wmPtr = winPtr->wmInfoPtr; - - if ((wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) && - (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE)) { - return false; - } - GetMaxSize(winPtr, &maxWidth, &maxHeight); - if (wmPtr->gridWin != NULL) { - int base = winPtr->reqWidth - (wmPtr->reqGridWidth * wmPtr->widthInc); - - if (base < 0) { - base = 0; - } - maxWidth = base + (maxWidth * wmPtr->widthInc); - base = winPtr->reqHeight - (wmPtr->reqGridHeight * wmPtr->heightInc); - if (base < 0) { - base = 0; - } - maxHeight = base + (maxHeight * wmPtr->heightInc); - } - if (wmPtr->flags & WM_WIDTH_NOT_RESIZABLE) { - idealSize.h = winPtr->changes.width; - } else { - idealSize.h = maxWidth; - } - if (wmPtr->flags & WM_HEIGHT_NOT_RESIZABLE) { - idealSize.v = winPtr->changes.height; - } else { - idealSize.v = maxHeight; - } - - /* - * Do nothing if already in desired zoom state. - */ - - if (!IsWindowInStandardState(whichWindow, &idealSize, NULL) == - (zoomPart == inZoomIn)) { - return false; - } - - err = ChkErr(ZoomWindowIdeal, whichWindow, zoomPart, &idealSize); - if (err != noErr) { - return false; - } - wmPtr->hints.initial_state = - (zoomPart == inZoomIn ? NormalState : ZoomState); - return true; -} - -/* - *---------------------------------------------------------------------- - * - * TkUnsupported1Cmd -- - * - * This procedure is invoked to process the - * "::tk::unsupported::MacWindowStyle" Tcl command. This command allows - * you to set the style of decoration for a Macintosh window. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * Changes the style of a new Mac window. - * - *---------------------------------------------------------------------- - */ - -/* ARGSUSED */ -int -TkUnsupported1ObjCmd( - ClientData 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", NULL - }; - enum SubCmds { - TKMWS_STYLE - }; - Tk_Window tkwin = clientData; - TkWindow *winPtr; - int index; - - if (objc < 3) { - Tcl_WrongNumArgs(interp, 1, objv, "option window ?arg ...?"); - return TCL_ERROR; - } - - winPtr = (TkWindow *) - Tk_NameToWindow(interp, Tcl_GetString(objv[2]), tkwin); - if (winPtr == NULL) { - return TCL_ERROR; - } - if (!(winPtr->flags & TK_TOP_LEVEL)) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "window \"%s\" isn't a top-level window", winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "WINDOWSTYLE", "TOPLEVEL", NULL); - return TCL_ERROR; - } - - if (Tcl_GetIndexFromObj(interp, objv[1], subcmds, "option", 0, - &index) != TCL_OK) { - return TCL_ERROR; - } - if (((enum SubCmds) index) == TKMWS_STYLE) { - if ((objc < 3) || (objc > 5)) { - Tcl_WrongNumArgs(interp, 2, objv, "window ?class attributes?"); - return TCL_ERROR; - } - return WmWinStyle(interp, winPtr, objc, objv); - } - /* won't be reached */ - return TCL_ERROR; -} - -/* - *---------------------------------------------------------------------- - * - * WmWinStyle -- - * - * This procedure is invoked to process the - * "::tk::unsupported::MacWindowStyle style" subcommand. This command - * allows you to set the style of decoration for a Macintosh window. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * Changes the style of a new Mac window. - * - *---------------------------------------------------------------------- - */ - -static int -WmWinStyle( - Tcl_Interp *interp, /* Current interpreter. */ - TkWindow *winPtr, /* Window to be manipulated. */ - int objc, /* Number of arguments. */ - Tcl_Obj * const objv[]) /* Argument objects. */ -{ - struct StrIntMap { - const char *strValue; - UInt32 intValue; - }; - static const struct StrIntMap styleMap[] = { - { "documentProc", documentProc }, - { "noGrowDocProc", documentProc }, - { "dBoxProc", dBoxProc }, - { "plainDBox", plainDBox }, - { "altDBoxProc", altDBoxProc }, - { "movableDBoxProc", movableDBoxProc }, - { "zoomDocProc", zoomDocProc }, - { "zoomNoGrow", zoomNoGrow }, - { "floatProc", floatGrowProc }, - { "floatGrowProc", floatGrowProc }, - { "floatZoomProc", floatZoomGrowProc }, - { "floatZoomGrowProc", floatZoomGrowProc }, - { "floatSideProc", floatSideGrowProc }, - { "floatSideGrowProc", floatSideGrowProc }, - { "floatSideZoomProc", floatSideZoomGrowProc }, - { "floatSideZoomGrowProc", floatSideZoomGrowProc }, - { NULL, 0 } - }; - static const struct StrIntMap classMap[] = { - { "alert", kAlertWindowClass }, - { "moveableAlert", kMovableAlertWindowClass }, - { "modal", kModalWindowClass }, - { "moveableModal", kMovableModalWindowClass }, - { "floating", kFloatingWindowClass }, - { "document", kDocumentWindowClass }, - { "utility", kUtilityWindowClass }, - { "help", kHelpWindowClass }, - { "sheet", kSheetWindowClass }, - { "toolbar", kToolbarWindowClass }, - { "plain", kPlainWindowClass }, - { "overlay", kOverlayWindowClass }, - { "sheetAlert", kSheetAlertWindowClass }, - { "altPlain", kAltPlainWindowClass }, - { "simple", kSimpleWindowClass }, - { "drawer", kDrawerWindowClass }, - { NULL, 0 } - }; - static const struct StrIntMap compositeAttrMap[] = { - { "none", kWindowNoAttributes }, - { "standardDocument", kWindowStandardDocumentAttributes }, - { "standardFloating", kWindowStandardFloatingAttributes }, - { "fullZoom", kWindowFullZoomAttribute }, - { NULL, 0 } - }; - static const struct StrIntMap attrMap[] = { - { "closeBox", kWindowCloseBoxAttribute }, - { "horizontalZoom", kWindowHorizontalZoomAttribute }, - { "verticalZoom", kWindowVerticalZoomAttribute }, - { "collapseBox", kWindowCollapseBoxAttribute }, - { "resizable", kWindowResizableAttribute }, - { "sideTitlebar", kWindowSideTitlebarAttribute }, - { "toolbarButton", kWindowToolbarButtonAttribute }, - { "unifiedTitleAndToolbar", kWindowUnifiedTitleAndToolbarAttribute }, - { "metal", kWindowMetalAttribute }, - { "noTitleBar", kWindowNoTitleBarAttribute }, - { "texturedSquareCorners", kWindowTexturedSquareCornersAttribute }, - { "metalNoContentSeparator", kWindowMetalNoContentSeparatorAttribute }, - { "doesNotCycle", kWindowDoesNotCycleAttribute }, - { "noUpdates", kWindowNoUpdatesAttribute }, - { "noActivates", kWindowNoActivatesAttribute }, - { "opaqueForEvents", kWindowOpaqueForEventsAttribute }, - { "noShadow", kWindowNoShadowAttribute }, - { "hideOnSuspend", kWindowHideOnSuspendAttribute }, - { "hideOnFullScreen", kWindowHideOnFullScreenAttribute }, - { "inWindowMenu", kWindowInWindowMenuAttribute }, - { "liveResize", kWindowLiveResizeAttribute }, - { "ignoreClicks", kWindowIgnoreClicksAttribute }, - { "noConstrain", kWindowNoConstrainAttribute }, - { NULL, 0 } - }; - int index, i; - WmInfo *wmPtr = winPtr->wmInfoPtr; - - if (objc == 3) { - if (wmPtr->style != -1) { - for (i = 0; styleMap[i].strValue != NULL; i++) { - if (wmPtr->style == (short) styleMap[i].intValue) { - Tcl_SetObjResult(interp, - Tcl_NewStringObj(styleMap[i].strValue, -1)); - return TCL_OK; - } - } - Tcl_Panic("invalid style"); - } else { - Tcl_Obj *attributeList, *newResult = NULL; - WindowAttributes attributes; - - for (i = 0; classMap[i].strValue != NULL; i++) { - if (wmPtr->macClass == classMap[i].intValue) { - newResult = Tcl_NewStringObj(classMap[i].strValue, -1); - break; - } - } - if (newResult == NULL) { - Tcl_Panic("invalid class"); - } - - attributeList = Tcl_NewObj(); - attributes = wmPtr->attributes; - - for (i = 0; compositeAttrMap[i].strValue != NULL; i++) { - UInt32 intValue = compositeAttrMap[i].intValue; - - if (intValue && (attributes & intValue) == intValue) { - Tcl_ListObjAppendElement(NULL, attributeList, - Tcl_NewStringObj(compositeAttrMap[i].strValue, - -1)); - attributes &= ~intValue; - break; - } - } - for (i = 0; attrMap[i].strValue != NULL; i++) { - if (attributes & attrMap[i].intValue) { - Tcl_ListObjAppendElement(NULL, attributeList, - Tcl_NewStringObj(attrMap[i].strValue, -1)); - } - } - Tcl_ListObjAppendElement(NULL, newResult, attributeList); - Tcl_SetObjResult(interp, newResult); - } - } else if (objc == 4) { - if (Tcl_GetIndexFromObjStruct(interp, objv[3], styleMap, - sizeof(struct StrIntMap), "style", 0, &index) != TCL_OK) { - return TCL_ERROR; - } - wmPtr->style = styleMap[index].intValue; - } else if (objc == 5) { - int attrObjc; - Tcl_Obj **attrObjv = NULL; - WindowClass oldClass = wmPtr->macClass; - WindowAttributes oldAttributes = wmPtr->attributes; - - if (Tcl_GetIndexFromObjStruct(interp, objv[3], classMap, - sizeof(struct StrIntMap), "class", 0, &index) != TCL_OK) { - goto badClassAttrs; - } - wmPtr->macClass = classMap[index].intValue; - if (!IsValidWindowClass(wmPtr->macClass)) { - goto badClassAttrs; - } - if (Tcl_ListObjGetElements(interp, objv[4], &attrObjc, &attrObjv) - != TCL_OK) { - goto badClassAttrs; - } - wmPtr->attributes = kWindowNoAttributes; - for (i = 0; i < attrObjc; i++) { - if (Tcl_GetIndexFromObjStruct(interp, attrObjv[i], - compositeAttrMap, sizeof(struct StrIntMap), - "attribute", 0, &index) == TCL_OK) { - wmPtr->attributes |= compositeAttrMap[index].intValue; - } else if (Tcl_GetIndexFromObjStruct(interp, attrObjv[i], - attrMap, sizeof(struct StrIntMap), - "attribute", 0, &index) == TCL_OK) { - Tcl_ResetResult(interp); - wmPtr->attributes |= attrMap[index].intValue; - } else { - goto badClassAttrs; - } - } - ApplyWindowClassAttributeChanges(winPtr, NULL, oldClass, oldAttributes, - 0); - wmPtr->style = -1; - return TCL_OK; - - badClassAttrs: - wmPtr->macClass = oldClass; - wmPtr->attributes = oldAttributes; - return TCL_ERROR; - } - return TCL_OK; -} - -/* - *---------------------------------------------------------------------- - * - * TkpMakeMenuWindow -- - * - * Configure the window to be either a undecorated pull-down (or pop-up) - * menu, or as a toplevel floating menu (palette). - * - * Results: - * None. - * - * Side effects: - * Changes the style bit used to create a new Mac toplevel. - * - *---------------------------------------------------------------------- - */ - -void -TkpMakeMenuWindow( - Tk_Window tkwin, /* New window. */ - int transient) /* 1 means menu is only posted briefly as a - * popup or pulldown or cascade. 0 means menu - * is always visible, e.g. as a floating - * menu. */ -{ - TkWindow *winPtr = (TkWindow *) tkwin; - - if (transient) { - winPtr->wmInfoPtr->macClass = kSimpleWindowClass; - winPtr->wmInfoPtr->attributes = kWindowNoActivatesAttribute; - } else { - winPtr->wmInfoPtr->macClass = kFloatingWindowClass; - winPtr->wmInfoPtr->attributes = kWindowStandardFloatingAttributes; - winPtr->wmInfoPtr->flags |= WM_WIDTH_NOT_RESIZABLE; - winPtr->wmInfoPtr->flags |= WM_HEIGHT_NOT_RESIZABLE; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXMakeRealWindowExist -- - * - * This function finally creates the real Macintosh window that the Mac - * actually understands. - * - * Results: - * None. - * - * Side effects: - * A new Macintosh toplevel is created. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXMakeRealWindowExist( - TkWindow *winPtr) /* Tk window. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WindowRef newWindow = NULL; - ControlRef rootControl = NULL; - MacDrawable *macWin; - Rect initialBounds = {42, 0, 43, 1}, geometry, strWidths; - short structureW, structureH; - TkMacOSXWindowList *listPtr; - OSStatus err; - - if (TkMacOSXHostToplevelExists(winPtr)) { - return; - } - - macWin = (MacDrawable *) winPtr->window; - - /* - * If this is embedded, make sure its container's toplevel exists, - * then return... - */ - - if (Tk_IsEmbedded(winPtr)) { - TkWindow *contWinPtr = TkpGetOtherWindow(winPtr); - - if (contWinPtr != NULL) { - TkMacOSXMakeRealWindowExist( - contWinPtr->privatePtr->toplevel->winPtr); - macWin->flags |= TK_HOST_EXISTS; - 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"); - } - return; - - /* - * TODO: Here we should handle out of process embedding. - */ - } - - if (wmPtr->style == -1) { - if (!IsValidWindowClass(wmPtr->macClass)) { - TkMacOSXDbgMsg("Invalid window class: %ld", wmPtr->macClass); - wmPtr->macClass = kPlainWindowClass; - } - wmPtr->attributes = (wmPtr->attributes | kWindowAsyncDragAttribute) & - GetAvailableWindowAttributes(wmPtr->macClass); - err = ChkErr(CreateNewWindow, wmPtr->macClass, wmPtr->attributes, - &initialBounds, &newWindow); - if (err != noErr) { - newWindow = NULL; - } - } else { - TkMacOSXDbgMsg("Window creation via NewCWindow API is deprecated, " - "use a window class instead of style %d", wmPtr->style); - newWindow = NewCWindow(NULL, &initialBounds, "\p", false, - wmPtr->style, (WindowRef) -1, true, 0); - } - - if (newWindow == NULL) { - Tcl_Panic("couldn't allocate new Mac window"); - } - - ChkErr(GetWindowStructureWidths, newWindow, &strWidths); - if (wmPtr->macClass == kFloatingWindowClass) { - /* - * Workaround GetWindowStructureWidths() Carbon bug: - */ - - strWidths.top = 16; - } - wmPtr->xInParent = strWidths.left; - wmPtr->yInParent = strWidths.top; - structureW = strWidths.left + strWidths.right; - structureH = strWidths.top + strWidths.bottom; - wmPtr->parentWidth = winPtr->changes.width + structureW; - wmPtr->parentHeight = winPtr->changes.height + structureH; - InitialWindowBounds(winPtr, newWindow, &geometry); - geometry.right += structureW; - geometry.bottom += structureH; - ChkErr(SetWindowBounds, newWindow, kWindowStructureRgn, &geometry); - - TkMacOSXInstallWindowCarbonEventHandler(NULL, newWindow); - if (ChkErr(CreateRootControl, newWindow, &rootControl) != noErr ) { - Tcl_Panic("couldn't create root control for new Mac window"); - } - if (wmPtr->attributes & kWindowResizableAttribute) { - HIViewRef growBoxView; - - err = HIViewFindByID(HIViewGetRoot(newWindow), - kHIViewWindowGrowBoxID, &growBoxView); - if (err == noErr && !HIGrowBoxViewIsTransparent(growBoxView)) { - ChkErr(HIGrowBoxViewSetTransparent, growBoxView, true); - } - } - - /* - * Add this window to the list of toplevel windows. - */ - - listPtr = ckalloc(sizeof(TkMacOSXWindowList)); - listPtr->nextPtr = tkMacOSXWindowListPtr; - listPtr->winPtr = winPtr; - tkMacOSXWindowListPtr = listPtr; - - macWin->grafPtr = GetWindowPort(newWindow); - macWin->rootControl = rootControl; - - if (wmPtr->master != None || winPtr->atts.override_redirect) { - ApplyMasterOverrideChanges(winPtr, newWindow); - } - SetWindowModified(newWindow, false); - TkMacOSXRegisterOffScreenWindow((Window) macWin, (GWorldPtr) newWindow); - macWin->flags |= TK_HOST_EXISTS; - ChkErr(GetWindowClass, newWindow, &(wmPtr->macClass)); - ChkErr(GetWindowAttributes, newWindow, &(wmPtr->attributes)); - -#ifdef TK_MAC_DEBUG_WINDOWS - TkMacOSXInitNamedDebugSymbol(HIToolbox, void, DebugPrintWindow, WindowRef); - if (DebugPrintWindow) { - DebugPrintWindow(newWindow); - } -#endif /* TK_MAC_DEBUG_WINDOWS */ -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXRegisterOffScreenWindow -- - * - * This function adds the passed in Off Screen Port to the hash table - * that maps Mac windows to root X windows. - * - * Results: - * None. - * - * Side effects: - * An entry is added to the windowTable hash table. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXRegisterOffScreenWindow( - Window window, /* Window structure. */ - void *portPtr) /* Pointer to a Mac GWorld. */ -{ - Tcl_HashEntry *valueHashPtr; - int isNew; - - if (!windowHashInit) { - Tcl_InitHashTable(&windowTable, TCL_ONE_WORD_KEYS); - windowHashInit = true; - } - valueHashPtr = Tcl_CreateHashEntry(&windowTable, (char *) portPtr, &isNew); - if (!isNew) { - Tcl_Panic("Same macintosh window allocated twice!"); - } - Tcl_SetHashValue(valueHashPtr, window); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXUnregisterMacWindow -- - * - * Given a macintosh port window, this function removes the association - * between this window and the root X window that Tk cares about. - * - * Results: - * None. - * - * Side effects: - * An entry is removed from the windowTable hash table. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXUnregisterMacWindow( - void *macWinPtr) /* Reference to a Mac Window */ -{ - Tcl_HashEntry *entryPtr; - - if (!windowHashInit) { - Tcl_Panic("TkMacOSXUnregisterMacWindow: unmapping before inited"); - } - entryPtr = Tcl_FindHashEntry(&windowTable,(char *) macWinPtr); - if (!entryPtr) { - TkMacOSXDbgMsg("Failed to find window %08x", (int) macWinPtr); - } else { - Tcl_DeleteHashEntry(entryPtr); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXSetScrollbarGrow -- - * - * Sets a flag for a toplevel window indicating that the passed Tk - * scrollbar window will display the grow region for the toplevel window. - * - * Results: - * None. - * - * Side effects: - * A flag is set int windows toplevel parent. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXSetScrollbarGrow( - TkWindow *winPtr, /* Tk scrollbar window. */ - int flag) /* Boolean value true or false. */ -{ - if (flag) { - winPtr->privatePtr->toplevel->flags |= TK_SCROLLBAR_GROW; - winPtr->privatePtr->toplevel->winPtr->wmInfoPtr->scrollWinPtr = winPtr; - } else if (winPtr->privatePtr->toplevel->winPtr->wmInfoPtr->scrollWinPtr - == winPtr) { - winPtr->privatePtr->toplevel->flags &= ~TK_SCROLLBAR_GROW; - winPtr->privatePtr->toplevel->winPtr->wmInfoPtr->scrollWinPtr = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * TkWmFocusToplevel -- - * - * This is a utility procedure invoked by focus-management code. It - * exists because of the extra wrapper windows that exist under Unix; its - * job is to map from wrapper windows to the corresponding toplevel - * windows. On PCs and Macs there are no wrapper windows so no mapping is - * necessary; this procedure just determines whether a window is a - * toplevel or not. - * - * Results: - * If winPtr is a toplevel window, returns the pointer to the window; - * otherwise returns NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkWindow * -TkWmFocusToplevel( - TkWindow *winPtr) /* Window that received a focus-related - * event. */ -{ - if (!(winPtr->flags & TK_TOP_LEVEL)) { - return NULL; - } - return winPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetWrapperWindow -- - * - * This is a utility procedure invoked by focus-management code. It maps - * to the wrapper for a top-level, which is just the same as the - * top-level on Macs and PCs. - * - * Results: - * If winPtr is a toplevel window, returns the pointer to the window; - * otherwise returns NULL. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkWindow * -TkpGetWrapperWindow( - TkWindow *winPtr) /* Window that received a focus-related - * event. */ -{ - if (!(winPtr->flags & TK_TOP_LEVEL)) { - return NULL; - } - return winPtr; -} - -/* - *---------------------------------------------------------------------- - * - * TkpWmSetState -- - * - * Sets the window manager state for the wrapper window of a given - * toplevel window. - * - * Results: - * None. - * - * Side effects: - * May maximize, minimize, restore, or withdraw a window. - * - *---------------------------------------------------------------------- - */ - -void -TkpWmSetState( - TkWindow *winPtr, /* Toplevel window to operate on. */ - int state) /* One of IconicState, ZoomState, NormalState, - * or WithdrawnState. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WindowRef macWin; - - wmPtr->hints.initial_state = state; - if (wmPtr->flags & WM_NEVER_MAPPED) { - return; - } - - macWin = TkMacOSXDrawableWindow(winPtr->window); - - if (state == WithdrawnState) { - Tk_UnmapWindow((Tk_Window) winPtr); - } else if (state == IconicState) { - /* - * The window always gets unmapped. If we can show the icon version of - * the window we also collapse it. - */ - - if (IsWindowCollapsable(macWin) && !IsWindowCollapsed(macWin)) { - CollapseWindow(macWin, true); - } - Tk_UnmapWindow((Tk_Window) winPtr); - } else if (state == NormalState) { - Tk_MapWindow((Tk_Window) winPtr); - if (IsWindowCollapsable(macWin) && IsWindowCollapsed(macWin)) { - CollapseWindow(macWin, false); - } - TkMacOSXZoomToplevel(macWin, inZoomIn); - } else if (state == ZoomState) { - Tk_MapWindow((Tk_Window) winPtr); - if (IsWindowCollapsable(macWin) && IsWindowCollapsed(macWin)) { - CollapseWindow(macWin, false); - } - TkMacOSXZoomToplevel(macWin, inZoomOut); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpIsWindowFloating -- - * - * Returns 1 if a window is floating, 0 otherwise. - * - * Results: - * 1 or 0 depending on window's floating attribute. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkpIsWindowFloating( - void *wRef) -{ - WindowClass class; - - if (wRef == NULL) { - return 0; - } - - GetWindowClass(wRef, &class); - return (class == kFloatingWindowClass); -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXWindowClass -- - * - * Returns OS X window class of window - * - * Results: - * 1 or 0 depending on window's floating attribute. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -MODULE_SCOPE WindowClass -TkMacOSXWindowClass( - TkWindow *winPtr) -{ - return winPtr->wmInfoPtr->macClass; -} - -/* - *-------------------------------------------------------------- - * - * TkMacOSXWindowOffset -- - * - * Determines the x and y offset from the orgin of the toplevel window - * dressing (the structure region, i.e. title bar) and the orgin of the - * content area. - * - * Results: - * The x & y offset in pixels. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXWindowOffset( - void *wRef, - int *xOffset, - int *yOffset) -{ - Window window; - TkDisplay *dispPtr; - TkWindow *winPtr; - - window = TkMacOSXGetXWindow(wRef); - dispPtr = TkGetDisplayList(); - winPtr = (TkWindow *) Tk_IdToWindow(dispPtr->display, window); - *xOffset = winPtr->wmInfoPtr->xInParent; - *yOffset = winPtr->wmInfoPtr->yInParent; -} - -/* - *---------------------------------------------------------------------- - * - * TkpGetMS -- - * - * Return a relative time in milliseconds. It doesn't matter when the - * epoch was. - * - * Results: - * Number of milliseconds. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -unsigned long -TkpGetMS(void) -{ - Tcl_Time now; - - Tcl_GetTime(&now); - return (long) now.sec * 1000 + now.usec / 1000; -} - -/* - *---------------------------------------------------------------------- - * - * XSetInputFocus -- - * - * Change the focus window for the application. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XSetInputFocus( - Display* display, - Window focus, - int revert_to, - Time time) -{ - /* - * Don't need to do a thing. Tk manages the focus for us. - */ -} - -/* - *---------------------------------------------------------------------- - * - * TkpChangeFocus -- - * - * This procedure is a stub on the Mac because we always own the focus if - * we are a front most application. - * - * Results: - * The return value is the serial number of the command that changed the - * focus. It may be needed by the caller to filter out focus change - * events that were queued before the command. If the procedure doesn't - * actually change the focus then it returns 0. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkpChangeFocus( - TkWindow *winPtr, /* Window that is to receive the X focus. */ - int force) /* Non-zero means claim the focus even if it - * didn't originally belong to topLevelPtr's - * application. */ -{ - /* - * We don't really need to do anything on the Mac. Tk will keep all this - * state for us. - */ - - if (winPtr->atts.override_redirect) { - return 0; - } - - /* - * Remember the current serial number for the X server and issue a dummy - * server request. This marks the position at which we changed the focus, - * so we can distinguish FocusIn and FocusOut events on either side of the - * mark. - */ - - return NextRequest(winPtr->display); -} - -/* - *---------------------------------------------------------------------- - * - * WmStackorderToplevelWrapperMap -- - * - * This procedure will create a table that maps the reparent wrapper X id - * for a toplevel to the TkWindow structure that is wraps. Tk keeps track - * of a mapping from the window X id to the TkWindow structure but that - * does us no good here since we only get the X id of the wrapper window. - * Only those toplevel windows that are mapped have a position in the - * stacking order. - * - * Results: - * None. - * - * Side effects: - * Adds entries to the passed hashtable. - * - *---------------------------------------------------------------------- - */ - -static void -WmStackorderToplevelWrapperMap( - TkWindow *winPtr, /* TkWindow to recurse on */ - Display *display, /* X display of parent window */ - Tcl_HashTable *table) /* Maps mac window to TkWindow */ -{ - TkWindow *childPtr; - Tcl_HashEntry *hPtr; - WindowRef macWindow; - int newEntry; - - if (Tk_IsMapped(winPtr) && Tk_IsTopLevel(winPtr) - && (winPtr->display == display)) { - macWindow = TkMacOSXDrawableWindow(winPtr->window); - - hPtr = Tcl_CreateHashEntry(table, - (const char *) macWindow, &newEntry); - Tcl_SetHashValue(hPtr, winPtr); - } - - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - WmStackorderToplevelWrapperMap(childPtr, display, table); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkWmStackorderToplevel -- - * - * This procedure returns the stack order of toplevel windows. - * - * Results: - * An array of pointers to tk window objects in stacking order or else - * NULL if there was an error. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -TkWindow ** -TkWmStackorderToplevel( - TkWindow *parentPtr) /* Parent toplevel window. */ -{ - WindowRef frontWindow; - TkWindow *childWinPtr, **windows, **windowPtr; - Tcl_HashTable table; - Tcl_HashEntry *hPtr; - Tcl_HashSearch search; - - /* - * Map mac windows to a TkWindow of the wrapped toplevel. - */ - - Tcl_InitHashTable(&table, TCL_ONE_WORD_KEYS); - WmStackorderToplevelWrapperMap(parentPtr, parentPtr->display, &table); - - windows = ckalloc((table.numEntries+1) * sizeof(TkWindow *)); - - /* - * Special cases: If zero or one toplevels were mapped there is no need to - * enumerate Windows. - */ - - switch (table.numEntries) { - case 0: - windows[0] = NULL; - goto done; - case 1: - hPtr = Tcl_FirstHashEntry(&table, &search); - windows[0] = Tcl_GetHashValue(hPtr); - windows[1] = NULL; - goto done; - } - - frontWindow = GetFrontWindowOfClass(kAllWindowClasses, false); - if (frontWindow == NULL) { - ckfree(windows); - windows = NULL; - } else { - windowPtr = windows + table.numEntries; - *windowPtr-- = NULL; - while (frontWindow != NULL) { - hPtr = Tcl_FindHashEntry(&table, (char *) frontWindow); - if (hPtr != NULL) { - childWinPtr = Tcl_GetHashValue(hPtr); - *windowPtr-- = childWinPtr; - } - frontWindow = GetNextWindow(frontWindow); - } - if (windowPtr != windows-1) { - Tcl_Panic("num matched toplevel windows does not equal num " - "children"); - } - } - - done: - Tcl_DeleteHashTable(&table); - return windows; -} - -/* - *---------------------------------------------------------------------- - * - * ApplyWindowClassAttributeChanges -- - * - * This procedure applies carbon window class and attribute changes. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -ApplyWindowClassAttributeChanges( - TkWindow *winPtr, - WindowRef macWindow, - WindowClass oldClass, - WindowAttributes oldAttributes, - int create) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WindowAttributes newAttributes = wmPtr->attributes | - kWindowAsyncDragAttribute; - - if (wmPtr->macClass != oldClass || newAttributes != oldAttributes) { - Rect strWidths; - - if (!macWindow) { - if (winPtr->window == None) { - if (create) { - Tk_MakeWindowExist((Tk_Window) winPtr); - } else { - return; - } - } - if (!TkMacOSXHostToplevelExists(winPtr)) { - if (create) { - TkMacOSXMakeRealWindowExist(winPtr); - } else { - return; - } - } - macWindow = TkMacOSXDrawableWindow(winPtr->window); - } - if (wmPtr->macClass != oldClass) { - TK_IF_MAC_OS_X_API (4, HIWindowChangeClass, - ChkErr(HIWindowChangeClass, macWindow, wmPtr->macClass); - ) TK_ENDIF - ChkErr(GetWindowClass, macWindow, &(wmPtr->macClass)); - } - if (newAttributes != oldAttributes) { - newAttributes &= GetAvailableWindowAttributes(wmPtr->macClass); - ChkErr(ChangeWindowAttributes, macWindow, - newAttributes & (newAttributes ^ oldAttributes), - oldAttributes & (newAttributes ^ oldAttributes)); - } - ChkErr(GetWindowAttributes, macWindow, &(wmPtr->attributes)); - if ((wmPtr->attributes ^ oldAttributes) & kWindowResizableAttribute) { - if (wmPtr->attributes & kWindowResizableAttribute) { - HIViewRef growBoxView; - OSStatus err = HIViewFindByID(HIViewGetRoot(macWindow), - kHIViewWindowGrowBoxID, &growBoxView); - - if (err == noErr && !HIGrowBoxViewIsTransparent(growBoxView)) { - ChkErr(HIGrowBoxViewSetTransparent, growBoxView, true); - } - } - TkMacOSXInvalClipRgns((Tk_Window) winPtr); - TkMacOSXInvalidateWindow((MacDrawable *) winPtr->window, - TK_PARENT_WINDOW); - } - - /* - * The change of window class/attributes might have changed the window - * structure widths: - */ - - GetWindowStructureWidths(macWindow, &strWidths); - wmPtr->xInParent = strWidths.left; - wmPtr->yInParent = strWidths.top; - wmPtr->parentWidth = winPtr->changes.width + strWidths.left - + strWidths.right; - wmPtr->parentHeight = winPtr->changes.height + strWidths.top - + strWidths.bottom; - } -} - -/* - *---------------------------------------------------------------------- - * - * ApplyMasterOverrideChanges -- - * - * This procedure applies changes to override_redirect or master. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -ApplyMasterOverrideChanges( - TkWindow *winPtr, - WindowRef macWindow) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WindowClass oldClass = wmPtr->macClass; - WindowAttributes oldAttributes = wmPtr->attributes; - - /* - * FIX: We need an UpdateWrapper equivalent to make this 100% correct - */ - - if (winPtr->atts.override_redirect) { - if (oldClass == kDocumentWindowClass) { - wmPtr->macClass = kSimpleWindowClass; - wmPtr->attributes = kWindowNoAttributes; - } - wmPtr->attributes |= kWindowNoActivatesAttribute; - } else { - if (oldClass == kSimpleWindowClass && - oldAttributes == kWindowNoActivatesAttribute) { - wmPtr->macClass = kDocumentWindowClass; - wmPtr->attributes = kWindowStandardDocumentAttributes - | kWindowLiveResizeAttribute; - } - wmPtr->attributes &= ~kWindowNoActivatesAttribute; - } - if (!macWindow && winPtr->window != None && - TkMacOSXHostToplevelExists(winPtr)) { - macWindow = TkMacOSXDrawableWindow(winPtr->window); - } - if (macWindow) { - WindowGroupRef group; - - ApplyWindowClassAttributeChanges(winPtr, macWindow, oldClass, - oldAttributes, 0); - - if (winPtr->atts.override_redirect && wmPtr->master != None) { - wmPtr->flags |= WM_TOPMOST; - } else { - wmPtr->flags &= ~WM_TOPMOST; - } - group = WmGetWindowGroup(winPtr); - if (group && group != GetWindowGroup(macWindow)) { - ChkErr(SetWindowGroup, macWindow, group); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * WmGetWindowGroup -- - * - * Gets the window group a toplevel should be placed in. - * - * Results: - * A WindowGroupRef. - * - * Side effects: - * A transient window group for the master (if any) may be created. - * - *---------------------------------------------------------------------- - */ - -static WindowGroupRef -WmGetWindowGroup( - TkWindow *winPtr) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - WindowGroupRef group = NULL; - - if (wmPtr->flags & WM_TOPMOST) { - group = GetWindowGroupOfClass(kUtilityWindowClass); - } else if (wmPtr->master != None) { - TkDisplay *dispPtr = TkGetDisplayList(); - TkWindow *masterWinPtr = (TkWindow *) - Tk_IdToWindow(dispPtr->display, wmPtr->master); - - if (masterWinPtr && masterWinPtr->window != None && - TkMacOSXHostToplevelExists(masterWinPtr)) { - WindowRef masterMacWin = - TkMacOSXDrawableWindow(masterWinPtr->window); - - if (masterMacWin && GetWindowProperty(masterMacWin, 'Tk ', 'TsGp', - sizeof(group), NULL, &group) != noErr) { - ChkErr(CreateWindowGroup, 0, &group); - if (group) { - ChkErr(SetWindowGroupParent, group, - GetWindowGroup(masterMacWin)); - ChkErr(SetWindowGroupOwner, group, masterMacWin); - ChkErr(SetWindowProperty, masterMacWin, 'Tk ', 'TsGp', - sizeof(group), &group); - } - } - } - } - if (!group) { - group = GetWindowGroupOfClass(wmPtr->macClass); - } - return group; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXMakeFullscreen -- - * - * This procedure sets a fullscreen window to the size of the screen. - * - * Results: - * A standard Tcl result. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -int -TkMacOSXMakeFullscreen( - TkWindow *winPtr, - WindowRef window, - int fullscreen, - Tcl_Interp *interp) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - int result = TCL_OK, wasFullscreen = (wmPtr->flags & WM_FULLSCREEN); - - if (fullscreen) { - int screenWidth = WidthOfScreen(Tk_Screen(winPtr)); - int screenHeight = HeightOfScreen(Tk_Screen(winPtr)); - - /* - * Check max width and height if set by the user. - */ - - if ((wmPtr->maxWidth > 0 && wmPtr->maxWidth < screenWidth) - || (wmPtr->maxHeight > 0 && wmPtr->maxHeight < screenHeight)) { - if (interp) { - Tcl_SetObjResult(interp, Tcl_ObjPrintf( - "can't set fullscreen attribute for \"%s\": max" - " width/height is too small", winPtr->pathName)); - Tcl_SetErrorCode(interp, "TK", "FULLSCREEN", - "CONSTRAINT_FAILURE", NULL); - } - result = TCL_ERROR; - wmPtr->flags &= ~WM_FULLSCREEN; - } else { - Rect bounds, screenBounds = {0, 0, screenHeight, screenWidth}; - - ChkErr(GetWindowBounds, window, kWindowContentRgn, &bounds); - if (!EqualRect(&bounds, &screenBounds)) { - if (!wasFullscreen) { - wmPtr->configX = wmPtr->x; - wmPtr->configY = wmPtr->y; - wmPtr->configAttributes = wmPtr->attributes; - wmPtr->attributes &= ~kWindowResizableAttribute; - ApplyWindowClassAttributeChanges(winPtr, window, - wmPtr->macClass, wmPtr->configAttributes, 0); - } - wmPtr->flags |= WM_SYNC_PENDING; - ChkErr(SetWindowBounds, window, kWindowContentRgn, - &screenBounds); - wmPtr->flags &= ~WM_SYNC_PENDING; - } - wmPtr->flags |= WM_FULLSCREEN; - } - } else { - wmPtr->flags &= ~WM_FULLSCREEN; - } - if (wasFullscreen && !(wmPtr->flags & WM_FULLSCREEN)) { - WindowAttributes oldAttributes = wmPtr->attributes; - Rect bounds = {wmPtr->configY, wmPtr->configX, - wmPtr->configY + wmPtr->yInParent + wmPtr->configHeight, - wmPtr->configX + wmPtr->xInParent + wmPtr->configWidth}; - - wmPtr->attributes |= wmPtr->configAttributes & - kWindowResizableAttribute; - ApplyWindowClassAttributeChanges(winPtr, window, wmPtr->macClass, - oldAttributes, 0); - wmPtr->flags |= WM_SYNC_PENDING; - ChkErr(SetWindowBounds, window, kWindowStructureRgn, &bounds); - wmPtr->flags &= ~WM_SYNC_PENDING; - } - TkMacOSXEnterExitFullscreen(winPtr, IsWindowActive(window)); - return result; -} - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXEnterExitFullscreen -- - * - * This procedure enters or exits fullscreen mode if required. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXEnterExitFullscreen( - TkWindow *winPtr, - int active) -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - SystemUIMode mode; - SystemUIOptions options; - - GetSystemUIMode(&mode, &options); - if (wmPtr->flags & WM_FULLSCREEN && active) { - static SystemUIMode fullscreenMode = 0; - static SystemUIOptions fullscreenOptions = 0; - - if (!fullscreenMode) { - TK_IF_HI_TOOLBOX (3, - fullscreenMode = kUIModeAllSuppressed; - ) TK_ELSE_HI_TOOLBOX (3, - fullscreenMode = kUIModeAllHidden; - fullscreenOptions = kUIOptionAutoShowMenuBar; - ) TK_ENDIF - } - if (mode != fullscreenMode) { - ChkErr(SetSystemUIMode, fullscreenMode, fullscreenOptions); - } - } else { - if (mode != kUIModeNormal) { - ChkErr(SetSystemUIMode, kUIModeNormal, 0); - } - } -} - -/* - *---------------------------------------------------------------------- - * - * GetMinSize -- - * - * This function computes the current minWidth and minHeight values for a - * window, taking into account the possibility that they may be - * defaulted. - * - * Results: - * The values at *minWidthPtr and *minHeightPtr are filled in with the - * minimum allowable dimensions of wmPtr's window, in grid units. If the - * requested minimum is smaller than the system required minimum, then - * this function computes the smallest size that will satisfy both the - * system and the grid constraints. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -GetMinSize( - TkWindow *winPtr, /* Toplevel window to operate on. */ - int *minWidthPtr, /* Where to store the current minimum width of - * the window. */ - int *minHeightPtr) /* Where to store the current minimum height - * of the window. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - int minWidth = 1, minHeight = 1; - - /* - * Compute the minimum width & height by taking the default client size and - * rounding it up to the nearest grid unit. Return the greater of the - * default minimum and the specified minimum. - */ - - switch (wmPtr->macClass) { - case kDocumentWindowClass: - case kMovableAlertWindowClass: - case kMovableModalWindowClass: - minWidth = 72; - if (wmPtr->attributes & kWindowResizableAttribute) { - minHeight = 15; - } - if (wmPtr->attributes & kWindowToolbarButtonAttribute) { - minWidth += 29; - } - break; - case kFloatingWindowClass: - case kUtilityWindowClass: - minWidth = 59; - if (wmPtr->attributes & kWindowResizableAttribute) { - minHeight = 11; - } - if (wmPtr->attributes & kWindowSideTitlebarAttribute) { - int tmp = minWidth; - - minWidth = minHeight; - minHeight = tmp; - } else if (wmPtr->attributes & kWindowToolbarButtonAttribute) { - minWidth += 29; - } - break; - default: - if (wmPtr->attributes & kWindowResizableAttribute) { - minWidth = 15; - minHeight = 15; - } - break; - } - - if (wmPtr->gridWin != NULL) { - int base = winPtr->reqWidth - (wmPtr->reqGridWidth * wmPtr->widthInc); - - if (base < 0) { - base = 0; - } - minWidth = ((minWidth - base) + wmPtr->widthInc-1)/wmPtr->widthInc; - base = winPtr->reqHeight - (wmPtr->reqGridHeight * wmPtr->heightInc); - if (base < 0) { - base = 0; - } - minHeight = ((minHeight - base) + wmPtr->heightInc-1)/wmPtr->heightInc; - } - if (minWidth < wmPtr->minWidth) { - minWidth = wmPtr->minWidth; - } - if (minHeight < wmPtr->minHeight) { - minHeight = wmPtr->minHeight; - } - *minWidthPtr = minWidth; - *minHeightPtr = minHeight; -} - -/* - *---------------------------------------------------------------------- - * - * GetMaxSize -- - * - * This function computes the current maxWidth and maxHeight values for a - * window, taking into account the possibility that they may be - * defaulted. - * - * Results: - * The values at *maxWidthPtr and *maxHeightPtr are filled in with the - * maximum allowable dimensions of wmPtr's window, in grid units. If no - * maximum has been specified for the window, then this function computes - * the largest sizes that will fit on the screen. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static void -GetMaxSize( - TkWindow *winPtr, /* Toplevel window to operate on. */ - int *maxWidthPtr, /* Where to store the current maximum width of - * the window. */ - int *maxHeightPtr) /* Where to store the current maximum height - * of the window. */ -{ - WmInfo *wmPtr = winPtr->wmInfoPtr; - Rect *maxBounds = (Rect*)(winPtr->display->screens->ext_data); - - if (wmPtr->maxWidth > 0) { - *maxWidthPtr = wmPtr->maxWidth; - } else { - int maxWidth = maxBounds->right - maxBounds->left - wmPtr->xInParent; - - if (wmPtr->gridWin != NULL) { - maxWidth = wmPtr->reqGridWidth - + (maxWidth - winPtr->reqWidth)/wmPtr->widthInc; - } - *maxWidthPtr = maxWidth; - } - if (wmPtr->maxHeight > 0) { - *maxHeightPtr = wmPtr->maxHeight; - } else { - int maxHeight = maxBounds->bottom - maxBounds->top - wmPtr->yInParent; - - if (wmPtr->gridWin != NULL) { - maxHeight = wmPtr->reqGridHeight - + (maxHeight - winPtr->reqHeight)/wmPtr->heightInc; - } - *maxHeightPtr = maxHeight; - } -} - -/* - *---------------------------------------------------------------------- - * - * RemapWindows - * - * Adjust parent/child relation ships of the given window hierarchy. - * - * Results: - * none - * - * Side effects: - * keeps windowing system (X11) happy - * - *---------------------------------------------------------------------- - */ - -static void -RemapWindows( - TkWindow *winPtr, - MacDrawable *parentWin) -{ - TkWindow *childPtr; - - /* - * Remove the OS specific window. It will get rebuilt when the window gets - * Mapped. - */ - - if (winPtr->window != None) { - MacDrawable *macWin = (MacDrawable *) winPtr->window; - - macWin->grafPtr = NULL; - macWin->toplevel = parentWin->toplevel; - winPtr->flags &= ~TK_MAPPED; -#ifdef TK_REBUILD_TOPLEVEL - winPtr->flags |= TK_REBUILD_TOPLEVEL; -#endif - } - - /* Repeat for all the children */ - for (childPtr = winPtr->childList; childPtr != NULL; - childPtr = childPtr->nextPtr) { - RemapWindows(childPtr, (MacDrawable *) winPtr->window); - } -} - -/* - * Local Variables: - * fill-column: 78 - * c-basic-offset: 4 - * End: - */ diff --git a/carbon/tkMacOSXWm.h b/carbon/tkMacOSXWm.h deleted file mode 100644 index ce4bede..0000000 --- a/carbon/tkMacOSXWm.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - * tkMacOSXWm.h -- - * - * Declarations of Macintosh specific window manager structures. - * - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2006-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. - * - * The following terms apply to all files originating from Apple - * Computer, Inc. ("Apple") and associated with the software - * unless explicitly disclaimed in individual files. - * - * - * Apple hereby grants permission to use, copy, modify, - * distribute, and license this software and its documentation - * for any purpose, provided that existing copyright notices are - * retained in all copies and that this notice is included - * verbatim in any distributions. No written agreement, license, - * or royalty fee is required for any of the authorized - * uses. Modifications to this software may be copyrighted by - * their authors and need not follow the licensing terms - * described here, provided that the new terms are clearly - * indicated on the first page of each file where they apply. - * - * - * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE - * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, - * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF - * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, - * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND - * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, - * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS - * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE - * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE - * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf - * of the U.S. government, the Government shall have only - * "Restricted Rights" in the software and related documentation - * as defined in the Federal Acquisition Regulations (FARs) in - * Clause 52.227.19 (c) (2). If you are acquiring the software - * on behalf of the Department of Defense, the software shall be - * classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in - * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the - * foregoing, the authors grant the U.S. Government and others - * acting in its behalf permission to use and distribute the - * software in accordance with the terms specified in this - * license. - */ - -#ifndef _TKMACWM -#define _TKMACWM - -#include "tkMacOSXInt.h" - -/* - * A data structure of the following type holds information for - * each window manager protocol (such as WM_DELETE_WINDOW) for - * which a handler (i.e. a Tcl command) has been defined for a - * particular top-level window. - */ - -typedef struct ProtocolHandler { - Atom protocol; /* Identifies the protocol. */ - struct ProtocolHandler *nextPtr; - /* Next in list of protocol handlers for - * the same top-level window, or NULL for - * end of list. */ - Tcl_Interp *interp; /* Interpreter in which to invoke command. */ - char command[4]; /* Tcl command to invoke when a client - * message for this protocol arrives. - * The actual size of the structure varies - * to accommodate the needs of the actual - * command. THIS MUST BE THE LAST FIELD OF - * THE STRUCTURE. */ -} ProtocolHandler; - -#define HANDLER_SIZE(cmdLength) \ -((unsigned) (sizeof(ProtocolHandler) - 3 + cmdLength)) - -/* - * A data structure of the following type holds window-manager-related - * information for each top-level window in an application. - */ - -typedef struct TkWmInfo { - TkWindow *winPtr; /* Pointer to main Tk information for - * this window. */ - Window reparent; /* If the window has been reparented, this - * gives the ID of the ancestor of the window - * that is a child of the root window (may - * not be window's immediate parent). If - * the window isn't reparented, this has the - * value None. */ - Tk_Uid titleUid; /* Title to display in window caption. If - * NULL, use name of widget. */ - char *iconName; /* Name to display in icon. */ - Window master; /* Master window for TRANSIENT_FOR property, - * or None. */ - XWMHints hints; /* Various pieces of information for - * window manager. */ - char *leaderName; /* Path name of leader of window group - * (corresponds to hints.window_group). - * Malloc-ed. Note: this field doesn't - * get updated if leader is destroyed. */ - char *masterWindowName; /* Path name of window specified as master - * in "wm transient" command, or NULL. - * Malloc-ed. Note: this field doesn't - * get updated if masterWindowName is - * destroyed. */ - Tk_Window icon; /* Window to use as icon for this window, - * or NULL. */ - Tk_Window iconFor; /* Window for which this window is icon, or - * NULL if this isn't an icon for anyone. */ - - /* - * Information used to construct an XSizeHints structure for - * the window manager: - */ - - int sizeHintsFlags; /* Flags word for XSizeHints structure. - * If the PBaseSize flag is set then the - * window is gridded; otherwise it isn't - * gridded. */ - int minWidth, minHeight; /* Minimum dimensions of window, in - * grid units, not pixels. */ - int maxWidth, maxHeight; /* Maximum dimensions of window, in - * grid units, not pixels. */ - Tk_Window gridWin; /* Identifies the window that controls - * gridding for this top-level, or NULL if - * the top-level isn't currently gridded. */ - int widthInc, heightInc; /* Increments for size changes (# pixels - * per step). */ - struct { - int x; /* numerator */ - int y; /* denominator */ - } minAspect, maxAspect; /* Min/max aspect ratios for window. */ - int reqGridWidth, reqGridHeight; - /* The dimensions of the window (in - * grid units) requested through - * the geometry manager. */ - int gravity; /* Desired window gravity. */ - - /* - * Information used to manage the size and location of a window. - */ - - int width, height; /* Desired dimensions of window, specified - * in grid units. These values are - * set by the "wm geometry" command and by - * ConfigureNotify events (for when wm - * resizes window). -1 means user hasn't - * requested dimensions. */ - int x, y; /* Desired X and Y coordinates for window. - * These values are set by "wm geometry", - * plus by ConfigureNotify events (when wm - * moves window). These numbers are - * different than the numbers stored in - * winPtr->changes because (a) they could be - * measured from the right or bottom edge - * of the screen (see WM_NEGATIVE_X and - * WM_NEGATIVE_Y flags) and (b) if the window - * has been reparented then they refer to the - * parent rather than the window itself. */ - int parentWidth, parentHeight; - /* Width and height of reparent, in pixels - * *including border*. If window hasn't been - * reparented then these will be the outer - * dimensions of the window, including - * border. */ - int xInParent, yInParent; /* Offset of window within reparent, measured - * from upper-left outer corner of parent's - * border to upper-left outer corner of child's - * border. If not reparented then these are - * zero. */ - int configX, configY; /* x,y position of toplevel when window is - * switched into fullscreen state, */ - int configWidth, configHeight; - /* Dimensions passed to last request that we - * issued to change geometry of window. Used - * to eliminate redundant resize operations. */ - - /* - * Information about the virtual root window for this top-level, - * if there is one. - */ - - Window vRoot; /* Virtual root window for this top-level, - * or None if there is no virtual root - * window (i.e. just use the screen's root). */ - int vRootX, vRootY; /* Position of the virtual root inside the - * root window. If the WM_VROOT_OFFSET_STALE - * flag is set then this information may be - * incorrect and needs to be refreshed from - * the X server. If vRoot is None then these - * values are both 0. */ - unsigned int vRootWidth, vRootHeight; - /* Dimensions of the virtual root window. - * If vRoot is None, gives the dimensions - * of the containing screen. This information - * is never stale, even though vRootX and - * vRootY can be. */ - - /* - * List of children of the toplevel which have private colormaps. - */ - - TkWindow **cmapList; /* Array of window with private colormaps. */ - int cmapCount; /* Number of windows in array. */ - - /* - * Miscellaneous information. - */ - - ProtocolHandler *protPtr; /* First in list of protocol handlers for - * this window (NULL means none). */ - int cmdArgc; /* Number of elements in cmdArgv below. */ - const char **cmdArgv; /* Array of strings to store in the - * WM_COMMAND property. NULL means nothing - * available. */ - char *clientMachine; /* String to store in WM_CLIENT_MACHINE - * property, or NULL. */ - int flags; /* Miscellaneous flags, defined below. */ - - /* - * Macintosh information. - */ - WindowClass macClass; - WindowAttributes attributes, configAttributes; - TkWindow *scrollWinPtr; /* Ptr to scrollbar handling grow widget. */ - short style; /* Legacy window style. */ -} WmInfo; - - -/* - * Flag values for WmInfo structures: - * - * WM_NEVER_MAPPED - non-zero means window has never been - * mapped; need to update all info when - * window is first mapped. - * WM_UPDATE_PENDING - non-zero means a call to UpdateGeometryInfo - * has already been scheduled for this - * window; no need to schedule another one. - * WM_NEGATIVE_X - non-zero means x-coordinate is measured in - * pixels from right edge of screen, rather - * than from left edge. - * WM_NEGATIVE_Y - non-zero means y-coordinate is measured in - * pixels up from bottom of screen, rather than - * down from top. - * WM_UPDATE_SIZE_HINTS - non-zero means that new size hints need to be - * propagated to window manager. - * WM_SYNC_PENDING - set to non-zero while waiting for the window - * manager to respond to some state change. - * WM_VROOT_OFFSET_STALE - non-zero means that (x,y) offset information - * about the virtual root window is stale and - * needs to be fetched fresh from the X server. - * WM_ABOUT_TO_MAP - non-zero means that the window is about to - * be mapped by TkWmMapWindow. This is used - * by UpdateGeometryInfo to modify its behavior. - * WM_MOVE_PENDING - non-zero means the application has requested - * a new position for the window, but it hasn't - * been reflected through the window manager - * yet. - * WM_COLORMAPS_EXPLICIT - non-zero means the colormap windows were - * set explicitly via "wm colormapwindows". - * WM_ADDED_TOPLEVEL_COLORMAP - non-zero means that when "wm colormapwindows" - * was called the top-level itself wasn't - * specified, so we added it implicitly at - * the end of the list. - * WM_WIDTH_NOT_RESIZABLE - non-zero means that we're not supposed to - * allow the user to change the width of the - * window (controlled by "wm resizable" - * command). - * WM_HEIGHT_NOT_RESIZABLE - non-zero means that we're not supposed to - * allow the user to change the height of the - * window (controlled by "wm resizable" - * command). - */ - -#define WM_NEVER_MAPPED 0x0001 -#define WM_UPDATE_PENDING 0x0002 -#define WM_NEGATIVE_X 0x0004 -#define WM_NEGATIVE_Y 0x0008 -#define WM_UPDATE_SIZE_HINTS 0x0010 -#define WM_SYNC_PENDING 0x0020 -#define WM_VROOT_OFFSET_STALE 0x0040 -#define WM_ABOUT_TO_MAP 0x0080 -#define WM_MOVE_PENDING 0x0100 -#define WM_COLORMAPS_EXPLICIT 0x0200 -#define WM_ADDED_TOPLEVEL_COLORMAP 0x0400 -#define WM_WIDTH_NOT_RESIZABLE 0x0800 -#define WM_HEIGHT_NOT_RESIZABLE 0x1000 -#define WM_TOPMOST 0x2000 -#define WM_FULLSCREEN 0x4000 -#define WM_TRANSPARENT 0x8000 - -#endif - diff --git a/carbon/tkMacOSXXCursors.r b/carbon/tkMacOSXXCursors.r deleted file mode 100644 index 81d2c00..0000000 --- a/carbon/tkMacOSXXCursors.r +++ /dev/null @@ -1,958 +0,0 @@ -/* - * tkMacOSXXCursors.r -- - * - * This file defines a set of Macintosh cursor resources that - * emulate the X cursor set. All of these cursors were - * constructed and donated by Grant Neufeld. (gneufeld@ccs.carleton.ca) - * - * Copyright (c) 1995-1996 Sun Microsystems, Inc. - * - * See the file "license.terms" for information on usage and redistribution - * of this file, and for a DISCLAIMER OF ALL WARRANTIES. - */ - -/* - * All of the X cursors are defined as 'CURS' resources. However, a - * subset of the X cursors are also defined as 'crsr' resources. Tk - * will attempt to first use the color cursors ('crsr') if it doesn't - * exist it will attempt to use the black & white cursor ('CURS'). - */ - -data 'CURS' (3000, "X_cursor") { - $"E007 F00F F81F 7C3E 3E7C 1FF8 0FF0 07E0" - $"07E0 0FF0 1FF8 3E7C 7C3E F81F F00F E007" - $"0000 6006 700E 381C 1C38 0E70 07E0 03C0" - $"03C0 07E0 0E70 1C38 381C 700E 6006 0000" - $"0007 0007" -}; - -data 'CURS' (3001, "arrow") { - $"0000 0006 001E 007C 01FC 07F8 00F8 01F0" - $"03B0 0720 0E20 1C00 3800 7000 2000 0000" - $"0007 001F 007F 01FE 07FE 1FFC 7FFC 03F8" - $"07F8 0FF0 1F70 3E60 7C60 F840 7040 2000" - $"0001 000E" -}; - -data 'CURS' (3002, "based_arrow_down") { - $"0000 0000 0000 1FE0 0000 1FE0 0300 0300" - $"0300 0B40 0780 0300 0000 0000 0000 0000" - $"0000 0000 0000 1FE0 0000 1FE0 0780 0780" - $"3FF0 1FE0 0FC0 0780 0300 0000 0000 0000" - $"000B 0006" -}; - -data 'CURS' (3003, "based_arrow_up") { - $"0000 0000 0000 0000 0300 0780 0B40 0300" - $"0300 0300 1FE0 0000 1FE0 0000 0000 0000" - $"0000 0000 0000 0300 0780 0FC0 1FE0 3FF0" - $"0780 0780 1FE0 0000 1FE0 0000 0000 0000" - $"0004 0006" -}; - -data 'CURS' (3004, "boat") { - $"0000 0000 0000 0000 0100 03C0 8460 FFFF" - $"0018 0020 0040 FFC0 0000 0000 0000 0000" - $"0000 0000 0000 0000 0100 03C0 87E0 FFFF" - $"FFF8 FFE0 FFC0 FFC0 0000 0000 0000 0000" - $"0007 000F" -}; - -data 'CURS' (3005, "bogosity") { - $"0000 711C 1110 1110 1110 7FFC 5114 5114" - $"5114 5114 7FFC 1110 1110 1110 711C 0000" - $"0000 0000 0000 0000 0000 7FFC 7FFC 7FFC" - $"7FFC 7FFC 7FFC 0000 0000 0000 0000 0000" - $"0001 0007" -}; - -data 'CURS' (3006, "bottom_left_corner") { - $"0000 0000 0000 0000 C000 C020 C840 C880" - $"C900 CA00 CC00 CFC0 C000 C000 FFF0 FFF0" - $"0000 0000 0000 0000 0000 0020 0840 0880" - $"0900 0A00 0C00 0FC0 0000 0000 0000 0000" - $"000F 0000" -}; - -data 'CURS' (3007, "bottom_right_corner") { - $"0000 0000 0000 0000 0003 0403 0213 0113" - $"0093 0053 0033 03F3 0003 0003 0FFF 0FFF" - $"0000 0000 0000 0000 0000 0400 0210 0110" - $"0090 0050 0030 03F0 0000 0000 0000 0000" - $"000F 000F" -}; - -data 'CURS' (3008, "bottom_side") { - $"0000 0000 0100 0100 0100 0100 0100 1110" - $"0920 0540 0380 0100 0000 7FFC 7FFC 0000" - $"0000 0000 0100 0100 0100 0100 0100 1110" - $"0920 0540 0380 0100 0000 0000 0000 0000" - $"000B 0007" -}; - -data 'CURS' (3009, "bottom_tee") { - $"0000 0000 0000 0180 0180 0180 0180 0180" - $"0180 0180 7FFE 7FFE 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000B 0007" -}; - -data 'CURS' (3010, "box_spiral") { - $"FFFE 8000 BFFE A002 AFFA A80A ABEA AA2A" - $"AAAA ABAA A82A AFEA A00A BFFA 8002 FFFE" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0008 0008" -}; - -data 'CURS' (3011, "center_ptr") { - $"0000 0300 0300 0780 0780 0FC0 0FC0 1FE0" - $"1FE0 3330 2310 0300 0300 0300 0300 0000" - $"0300 0780 0780 0FC0 0FC0 1FE0 1FE0 3FF0" - $"3FF0 7FF8 77B8 6798 0780 0780 0780 0780" - $"0001 0006" -}; - -data 'CURS' (3012, "circle") { - $"0000 03C0 0FF0 1FF8 3C3C 381C 700E 700E" - $"700E 700E 381C 3C3C 1FF8 0FF0 03C0 0000" - $"03C0 0FF0 1FF8 3FFC 7FFE 7C3E F81F F81F" - $"F81F F81F 7C3E 7FFE 3FFC 1FF8 0FF0 03C0" - $"0007 0007" -}; - -data 'CURS' (3013, "clock") { - $"1FF8 33CC 6466 4992 4F12 4422 63C6 3FFC" - $"2994 2994 2994 2BD4 6996 781E 7FFE 7FFE" - $"1FF8 3FFC 7FFE 7FFE 7FFE 7FFE 7FFE 3FFC" - $"3FFC 3FFC 3FFC 3FFC 7FFE 7FFE 7FFE 7FFE" - $"0004 0008" -}; - -data 'CURS' (3014, "coffee_mug") { - $"03F8 0C06 1001 1C07 33F9 7001 D001 9001" - $"960D DA55 7A55 36ED 10A1 1001 0802 07FC" - $"03F8 0FFE 1FFF 1FFF 3FFF 7FFF FFFF FFFF" - $"FFFF FFFF 7FFF 3FFF 1FFF 1FFF 0FFE 07FC" - $"0004 0003" -}; - -data 'CURS' (3015, "cross") { - $"0280 0280 0280 0280 0280 0280 FEFE 0000" - $"FEFE 0280 0280 0280 0280 0280 0280 0000" - $"0380 0380 0380 0380 0380 0380 FFFE FFFE" - $"FFFE 0380 0380 0380 0380 0380 0380 0000" - $"0007 0007" -}; - -data 'CURS' (3016, "cross_reverse") { - $"4284 A28A 5294 2AA8 16D0 0AA0 FD7E 0280" - $"FD7E 0AA0 16D0 2AA8 5294 A28A 4284 0000" - $"4384 E38E 739C 3BB8 1FF0 0FE0 FFFE FFFE" - $"FFFE 0FE0 1FF0 3BB8 739C E38E 4384 0000" - $"0007 0007" -}; - -data 'CURS' (3017, "crosshair") { - $"0100 0100 0100 0100 0100 0100 0100 FEFE" - $"0100 0100 0100 0100 0100 0100 0100 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3018, "diamond_cross") { - $"0280 06C0 0AA0 1290 2288 4284 FEFE 0000" - $"FEFE 4284 2288 1290 0AA0 06C0 0280 0000" - $"0280 06C0 0EE0 1EF0 3EF8 7EFC FEFE 0000" - $"FEFE 7EFC 3EF8 1EF0 0EE0 06C0 0280 0000" - $"0007 0007" -}; - -data 'CURS' (3019, "dot") { - $"0000 0000 0780 1FE0 1FE0 3FF0 3FF0 3FF0" - $"3FF0 1FE0 1FE0 0780 0000 0000 0000 0000" - $"0000 0780 1FE0 3FF0 3FF0 7FF8 7FF8 7FF8" - $"7FF8 3FF0 3FF0 1FE0 0780 0000 0000 0000" - $"0006 0006" -}; - -data 'CURS' (3020, "dotbox") { - $"0000 0000 3FFC 2004 2004 2004 2004 2184" - $"2184 2004 2004 2004 2004 3FFC 0000 0000" - $"0000 0000 3FFC 3FFC 300C 300C 318C 33CC" - $"33CC 318C 300C 300C 3FFC 3FFC 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3021, "double_arrow") { - $"0000 0180 03C0 07E0 0DB0 1998 0180 0180" - $"0180 0180 1998 0DB0 07E0 03C0 0180 0000" - $"0180 03C0 07E0 0FF0 1FF8 3FFC 3BDC 03C0" - $"03C0 3BDC 3FFC 1FF8 0FF0 07E0 03C0 0180" - $"0007 0007" -}; - -data 'CURS' (3022, "draft_large") { - $"0000 0002 000C 003C 00F8 03F8 0FF0 00F0" - $"0160 0260 0440 0840 1000 2000 4000 0000" - $"0003 000F 003E 00FE 03FC 0FFC 3FF8 FFF8" - $"03F0 07F0 0EE0 1CE0 38C0 70C0 E080 4080" - $"0001 000E" -}; - -data 'CURS' (3023, "draft_small") { - $"0000 0002 000C 003C 00F8 03F8 0070 00B0" - $"0120 0220 0400 0800 1000 2000 4000 0000" - $"0003 000F 003E 00FE 03FC 0FFC 3FF8 01F8" - $"03F0 0770 0E60 1C60 3840 7040 E000 4000" - $"0001 000E" -}; - -data 'CURS' (3024, "draped_box") { - $"0000 0000 3FFC 2244 2664 2C34 381C 2184" - $"2184 381C 2C34 2664 2244 3FFC 0000 0000" - $"0000 0000 3FFC 3E7C 3E7C 3C3C 399C 23C4" - $"23C4 399C 3C3C 3E7C 3E7C 3FFC 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3025, "exchange") { - $"0000 47C0 6FE0 7C30 4810 4C00 7E00 0000" - $"0000 00FC 0064 1024 187C 0FEC 07C4 0000" - $"C7C0 EFE0 FFF0 FFF8 FC38 FE10 FF00 FF80" - $"03FE 01FE 10FE 387E 3FFE 1FFE 0FEE 07C6" - $"0007 0007" -}; - -data 'CURS' (3026, "fleur") { - $"0000 0180 03C0 07E0 0180 1188 318C 7FFE" - $"7FFE 318C 1188 0180 07E0 03C0 0180 0000" - $"0180 03C0 07E0 0FF0 17E8 3BDC 7FFE FFFF" - $"FFFF 7FFE 3BDC 17E8 0FF0 07E0 03C0 0180" - $"0007 0007" -}; - -data 'CURS' (3027, "gobbler") { - $"0000 0078 0070 4036 4FB0 7FF0 7E30 7C30" - $"3038 00F0 0FE0 0400 0400 0400 0F00 0000" - $"00FC 00FC E0FF FFFF FFFF FFF8 FFF8 FFF8" - $"FFFC 7FFC 3FF8 1FF0 0E00 1F80 1F80 1F80" - $"0003 000E" -}; - -data 'CURS' (3028, "gumby") { - $"3F00 10C0 C820 EAA0 C820 CBA0 F838 383E" - $"0826 0826 092E 0926 0920 1110 2108 3EF8" - $"3F00 1FC0 CFE0 EFE0 CFE0 CFE0 FFF8 3FFE" - $"0FE6 0FE6 0FEE 0FE6 0FE0 1FF0 3FF8 3EF8" - $"0000 0002" -}; - -data 'CURS' (3029, "hand1") { - $"000C 003C 00F0 01E0 03C0 07E0 0FF0 2FE0" - $"7FF0 5FF0 07E0 07C0 4A00 6200 3400 1800" - $"000C 003C 00F0 01E0 03C0 07E0 0FF0 2FE0" - $"7FF0 7FF0 7FE0 7FC0 7E00 7E00 3C00 1800" - $"0000 000D" -}; - -data 'CURS' (3030, "hand2") { - $"0000 3FC0 4020 3F10 0808 0708 0808 0714" - $"0822 0641 0182 0124 0088 0050 0020 0000" - $"0000 3FC0 7FE0 3FF0 0FF8 07F8 0FF8 07FC" - $"0FFE 07FF 01FE 01FC 00F8 0070 0020 0000" - $"0002 0001" -}; - -data 'CURS' (3031, "heart") { - $"0000 3EF8 638C C106 8002 8002 8002 8002" - $"C006 600C 3018 1830 0C60 06C0 0380 0000" - $"0000 3EF8 7FFC FFFE FFFE FFFE FFFE FFFE" - $"FFFE 7FFC 3FF8 1FF0 0FE0 07C0 0380 0000" - $"0003 0007" -}; - -data 'CURS' (3032, "icon") { - $"FFFF D555 AAAB D555 A00B D005 A00B D005" - $"A00B D005 A00B D005 AAAB D555 AAAB FFFF" - $"FFFF FFFF FFFF FFFF F00F F00F F00F F00F" - $"F00F F00F F00F F00F FFFF FFFF FFFF FFFF" - $"0007 0007" -}; - -data 'CURS' (3033, "iron_cross") { - $"0000 3FFC 1FF8 4FF2 67E6 73CE 799E 7FFE" - $"7FFE 799E 73CE 67E6 4FF2 1FF8 3FFC 0000" - $"7FFE 7FFE FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF 7FFE 7FFE" - $"0007 0006" -}; - -data 'CURS' (3034, "left_ptr") { - $"0000 0800 0C00 0E00 0F00 0F80 0FC0 0FE0" - $"0FF0 0F80 0D80 08C0 00C0 0060 0060 0000" - $"1800 1C00 1E00 1F00 1F80 1FC0 1FE0 1FF0" - $"1FF8 1FFC 1FC0 1DE0 19E0 10F0 00F0 0070" - $"0001 0004" -}; - -data 'CURS' (3035, "left_side") { - $"0000 6000 6000 6080 6100 6200 6400 6FFC" - $"6400 6200 6100 6080 6000 6000 0000 0000" - $"0000 0000 0000 0080 0100 0200 0400 0FFC" - $"0400 0200 0100 0080 0000 0000 0000 0000" - $"0007 0004" -}; - -data 'CURS' (3036, "left_tee") { - $"0000 0C00 0C00 0C00 0C00 0C00 0C00 0FF8" - $"0FF8 0C00 0C00 0C00 0C00 0C00 0C00 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0007 0004" -}; - -data 'CURS' (3037, "leftbutton") { - $"8002 7FFC 7FFC 4444 4554 4554 4554 4554" - $"4444 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 8002" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"0004 0003" -}; - -data 'CURS' (3038, "ll_angle") { - $"0000 0000 0000 0C00 0C00 0C00 0C00 0C00" - $"0C00 0C00 0FF8 0FF8 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000B 0004" -}; - -data 'CURS' (3039, "lr_angle") { - $"0000 0000 0000 0030 0030 0030 0030 0030" - $"0030 0030 1FF0 1FF0 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000B 000B" -}; - -data 'CURS' (3040, "man") { - $"0380 1EF0 0280 8100 4387 244B 1D70 0540" - $"0440 0280 0440 0920 1290 1450 783C F83F" - $"0380 1FF0 0380 8100 4387 27CB 1FF0 07C0" - $"07C0 0380 07C0 0FE0 1EF0 1C70 783C F83F" - $"0001 0007" -}; - -data 'CURS' (3041, "middlebutton") { - $"8002 7FFC 7FFC 4444 5454 5454 5454 5454" - $"4444 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 8002" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"0004 0007" -}; - -data 'CURS' (3042, "mouse") { - $"0600 0100 0180 0FF0 1008 17E8 1428 1428" - $"17E8 1008 1008 1008 1008 1008 1008 0FF0" - $"0600 0100 0180 0FF0 1FF8 1FF8 1FF8 1FF8" - $"1FF8 1FF8 1FF8 1FF8 1FF8 1FF8 1FF8 0FF0" - $"0000 0000" -}; - -data 'CURS' (3043, "pencil") { - $"0000 00F0 0088 0108 0190 0270 0220 0440" - $"0440 0880 0880 1100 1E00 1C00 1800 1000" - $"0000 00F0 00F8 01F8 01F0 03F0 03E0 07C0" - $"07C0 0F80 0F80 1F00 1E00 1C00 1800 1000" - $"000F 0003" -}; - -data 'CURS' (3044, "pirate") { - $"03C0 07E0 0FF0 1998 1998 0FF0 07E0 03C0" - $"43C2 43C3 2184 1C38 03C0 0FF1 781F 4002" - $"07E0 0FF0 1FF8 3FFC 3FFC 1FF8 0FF0 47E2" - $"E7E7 E7E7 7FFF 3FFC 1FF9 7FFF FFFF F81F" - $"000A 0007" -}; - -data 'CURS' (3045, "plus") { - $"0000 0000 0000 0180 0180 0180 0180 1FF8" - $"1FF8 0180 0180 0180 0180 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3046, "question_arrow") { - $"07C0 0FE0 1C70 1830 1C30 0C70 00E0 03C0" - $"0380 0280 0280 0EE0 06C0 0380 0100 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 3FF8 1FF0 0FE0 07C0 0380 0100" - $"000E 0007" -}; - -data 'CURS' (3047, "right_ptr") { - $"0000 0010 0030 0070 00F0 01F0 03F0 07F0" - $"0FF0 01F0 01B0 0310 0300 0600 0600 0000" - $"0018 0038 0078 00F8 01F8 03F8 07F8 0FF8" - $"1FF8 3FF8 03F8 07B8 0798 0F08 0F00 0E00" - $"0001 000B" -}; - -data 'CURS' (3048, "right_side") { - $"0000 0000 0006 0006 0106 0086 0046 0026" - $"3FF6 0026 0046 0086 0106 0006 0006 0000" - $"0000 0000 0000 0000 0100 0080 0040 0020" - $"3FF0 0020 0040 0080 0100 0000 0000 0000" - $"0008 000B" -}; - -data 'CURS' (3049, "right_tee") { - $"0000 0030 0030 0030 0030 0030 0030 1FF0" - $"1FF0 0030 0030 0030 0030 0030 0030 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0007 000A" -}; - -data 'CURS' (3050, "rightbutton") { - $"8002 7FFC 7FFC 4444 5544 5544 5544 5544" - $"4444 7FFC 7FFC 7FFC 7FFC 7FFC 7FFC 8002" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"FFFE FFFE FFFE FFFE FFFE FFFE FFFE FFFE" - $"0004 0003" -}; - -data 'CURS' (3051, "rtl_logo") { - $"0000 7FFE 4022 4022 4022 7FE2 4422 4422" - $"4422 4422 47FE 4402 4402 4402 7FFE 0000" - $"0000 7FFE 7FFE 6076 7FF6 7FF6 7C36 6C36" - $"6C36 6C3E 6FFE 6FFE 6E06 7FFE 7FFE 0000" - $"0007 0007" -}; - -data 'CURS' (3052, "sailboat") { - $"0000 0040 0040 0160 0160 0360 0370 0770" - $"0770 0F78 0F78 1F78 1F7C 3E38 0000 0000" - $"0040 00E0 01E0 03F0 03F0 07F0 07F8 0FF8" - $"0FF8 1FFC 1FFC 3FFC 3FFE 7F7C 7E38 0000" - $"000C 0008" -}; - -data 'CURS' (3053, "sb_down_arrow") { - $"0280 0280 0280 0280 0280 0280 0280 0280" - $"0280 0280 0280 0FE0 07C0 0380 0100 0000" - $"0380 0380 0380 0380 0380 0380 0380 0380" - $"0380 0380 0380 1FF0 0FE0 07C0 0380 0100" - $"000E 0007" -}; - -data 'CURS' (3054, "sb_h_double_arrow") { - $"0000 0000 0000 0000 0810 1818 3FFC 781E" - $"3FFC 1818 0810 0000 0000 0000 0000 0000" - $"0000 0000 0000 0810 1818 381C 7FFE FFFF" - $"7FFE 381C 1818 0810 0000 0000 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3055, "sb_left_arrow") { - $"0000 0000 0000 0000 0800 1800 3FFF 7800" - $"3FFF 1800 0800 0000 0000 0000 0000 0000" - $"0000 0000 0000 0800 1800 3800 7FFF FFFF" - $"7FFF 3800 1800 0800 0000 0000 0000 0000" - $"0007 0001" -}; - -data 'CURS' (3056, "sb_right_arrow") { - $"0000 0000 0000 0000 0000 0010 0018 FFFC" - $"001E FFFC 0018 0010 0000 0000 0000 0000" - $"0000 0000 0000 0000 0010 0018 001C FFFE" - $"FFFF FFFE 001C 0018 0010 0000 0000 0000" - $"0008 000E" -}; - -data 'CURS' (3057, "sb_up_arrow") { - $"0000 0080 01C0 03E0 07F0 0140 0140 0140" - $"0140 0140 0140 0140 0140 0140 0140 0140" - $"0080 01C0 03E0 07F0 0FF8 01C0 01C0 01C0" - $"01C0 01C0 01C0 01C0 01C0 01C0 01C0 01C0" - $"0001 0008" -}; - -data 'CURS' (3058, "sb_v_double_arrow") { - $"0000 0100 0380 07C0 0FE0 0280 0280 0280" - $"0280 0280 0280 0FE0 07C0 0380 0100 0000" - $"0100 0380 07C0 0FE0 1FF0 0380 0380 0380" - $"0380 0380 0380 1FF0 0FE0 07C0 0380 0100" - $"0007 0007" -}; - -data 'CURS' (3059, "shuttle") { - $"0020 0070 00F8 01DE 05DE 09DE 11DE 11DE" - $"11DE 11DE 31DE 71DE FDDE 1888 0078 0030" - $"0020 0070 00F8 01FE 07FE 0FFE 1FFE 1FFE" - $"1FFE 1FFE 3FFE 7FFE FFFE 18F8 0078 0030" - $"0000 000A" -}; - -data 'CURS' (3060, "sizing") { - $"0000 7F80 4000 4000 4000 47E0 4420 4422" - $"4422 0422 07E2 0012 000A 0006 01FE 0000" - $"FFC0 FFC0 FFC0 E000 EFF0 EFF0 EC37 EC37" - $"EC37 EC37 0FF7 0FFF 001F 03FF 03FF 03FF" - $"000E 000E" -}; - -data 'CURS' (3061, "spider") { - $"2010 1020 1020 0840 0840 8787 6798 1FE0" - $"1FE0 6798 8787 0840 0840 1020 1020 2010" - $"7038 3870 3870 1CE0 9FE7 EFDF FFFF 7FF8" - $"7FF8 FFFF EFDF 9FE7 1CE0 3870 3870 7038" - $"0007 0007" -}; - -data 'CURS' (3062, "spraycan") { - $"0018 0040 0D18 1E40 1A18 3F00 2100 3900" - $"2900 3900 2900 3900 3900 2100 2100 3F00" - $"0000 0000 0C00 1E00 1E00 3F00 3F00 3F00" - $"3F00 3F00 3F00 3F00 3F00 3F00 3F00 3F00" - $"0002 0007" -}; - -data 'CURS' (3063, "star") { - $"0100 0280 0280 0280 0440 0440 0440 3938" - $"C006 3838 0920 1290 2448 2828 3018 2008" - $"0100 0380 0380 0380 07C0 07C0 07C0 3FF8" - $"FFFE 3FF8 0FE0 1EF0 3C78 3838 3018 2008" - $"0007 0007" -}; - -data 'CURS' (3064, "target") { - $"0000 0380 0FE0 1C70 3018 600C C106 C286" - $"C106 600C 3018 1C70 0FE0 0380 0000 0000" - $"0000 0380 0FE0 1FF0 3C78 701C E38E E38E" - $"E38E 701C 3C78 1FF0 0FE0 0380 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3065, "tcross") { - $"0100 0100 0100 0100 0100 0100 0100 FFFE" - $"0100 0100 0100 0100 0100 0100 0100 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0007 0007" -}; - -data 'CURS' (3066, "top_left_arrow") { - $"0000 6000 7800 3E00 3F80 1FE0 1E00 0D00" - $"0C80 0440 0420 0010 0008 0004 0000 0000" - $"E000 F800 FE00 7F80 7FE0 3FF8 3FFE 1F80" - $"1FC0 0EE0 0E70 0638 061C 020E 0204 0000" - $"0001 0001" -}; - -data 'CURS' (3067, "top_left_corner") { - $"FFF0 FFF0 C000 C000 CFC0 CC00 CA00 C900" - $"C880 C840 C020 C000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0FC0 0C00 0A00 0900" - $"0880 0840 0020 0000 0000 0000 0000 0000" - $"0000 0000" -}; - -data 'CURS' (3068, "top_right_corner") { - $"0FFF 0FFF 0003 0003 03F3 0033 0053 0093" - $"0113 0213 0403 0003 0000 0000 0000 0000" - $"0000 0000 0000 0000 03F0 0030 0050 0090" - $"0110 0210 0400 0000 0000 0000 0000 0000" - $"0000 000F" -}; - -data 'CURS' (3069, "top_side") { - $"0000 7FFC 7FFC 0000 0100 0380 0540 0920" - $"1110 0100 0100 0100 0100 0100 0000 0000" - $"0000 0000 0000 0000 0100 0380 0540 0920" - $"1110 0100 0100 0100 0100 0100 0000 0000" - $"0004 0007" -}; - -data 'CURS' (3070, "top_tee") { - $"0000 0000 0000 0000 7FFE 7FFE 0180 0180" - $"0180 0180 0180 0180 0180 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0004 0007" -}; - -data 'CURS' (3071, "trek") { - $"0100 0000 0380 07C0 0FE0 0EE0 0FE0 07C0" - $"0380 0100 0BA0 0D60 0920 0820 0820 0000" - $"0000 0380 07C0 0FE0 1FF0 1FF0 1FF0 0FE0" - $"07C0 0BA0 1FF0 1FF0 1FF0 1D70 1C70 0820" - $"0000 0007" -}; - -data 'CURS' (3072, "ul_angle") { - $"0000 0000 0000 0FF8 0FF8 0C00 0C00 0C00" - $"0C00 0C00 0C00 0C00 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0003 0004" -}; - -data 'CURS' (3073, "umbrella") { - $"0000 0890 0228 49A6 27C8 1930 610C 0100" - $"0100 0100 0100 0100 0140 0140 0080 0000" - $"0000 0FF0 1FF8 7FFE 7FFC FFFE FBBE E38E" - $"0380 0380 0380 03C0 03E0 03E0 01C0 0080" - $"0004 0007" -}; - -data 'CURS' (3074, "ur_angle") { - $"0000 0000 0000 0000 1FF0 1FF0 0030 0030" - $"0030 0030 0030 0030 0030 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0004 000B" -}; - -data 'CURS' (3075, "watch") { - $"07E0 07E0 07E0 07E0 0810 1088 1088 108C" - $"138C 1008 1008 0810 07E0 07E0 07E0 07E0" - $"07E0 07E0 07E0 07E0 0FF0 1FF8 1FF8 1FFC" - $"1FFC 1FF8 1FF8 0FF0 07E0 07E0 07E0 07E0" - $"0008 000D" -}; - -data 'CURS' (3076, "xterm") { - $"0C60 0280 0100 0100 0100 0100 0100 0100" - $"0100 0100 0100 0100 0100 0100 0280 0C60" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000B 0007" -}; - -/* - * The following are color versions of some of the - * cursors defined above. The color cursors will be - * used if the exist in preference to the black & white - * cursors. - */ - -data 'crsr' (3004, "boat", purgeable) { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0100 03C0" - $"8460 FFFF 0018 0020 0040 FFC0 0000 0000" - $"0000 0000 0000 0000 0000 0000 0100 03C0" - $"87E0 FFFF FFF8 FFE0 FFC0 FFC0 0000 0000" - $"0000 0000 0007 000F 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 000F 0000 0000 0000 00FF FF00" - $"0000 F000 0F32 25F0 0000 6FFF FFFF FFFF" - $"FFFF 2222 2222 221F F000 2222 2222 21F0" - $"0000 3333 3333 4F00 0000 FFFF FFFF FF00" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0007 0000 FFFF FFFF" - $"FFFF 0001 BBBB BBBB BBBB 0002 EEEE EEEE" - $"EEEE 0003 DDDD DDDD DDDD 0004 CCCC CCCC" - $"CCCC 0005 4444 4444 4444 0006 1111 1111" - $"1111 000F 0000 0000 0000" -}; - -data 'crsr' (3013, "clock") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 1FF8 33CC 6466 4992 4F12 4422" - $"63C6 3FFC 2994 2994 2994 2BD4 6996 781E" - $"7FFE 7FFE 1FF8 3FFC 7FFE 7FFE 7FFE 7FFE" - $"7FFE 3FFC 3FFC 3FFC 3FFC 3FFC 7FFE 7FFE" - $"7FFE 7FFE 0004 0008 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 000F FFFF FFFF F000 00F6 05FF FF50" - $"6F00 0F60 5F00 56F5 06F0 0F00 F021 F30F" - $"00F0 0F00 F6F1 000F 00F0 0F00 5F00 00F5" - $"00F0 0F60 05FF FF50 06F0 00FF FFFF FFFF" - $"FF00 00F0 F001 100F 0F00 00F0 F001 100F" - $"0F00 00F0 F021 120F 0F00 00F0 F01F F10F" - $"0F00 0FF0 F021 120F 0FF0 0FF4 F500 005F" - $"4FF0 0FFF FFFF FFFF FFF0 0FFF FFFF FFFF" - $"FFF0 0000 0000 0000 0007 0000 FFFF FFFF" - $"FFFF 0001 4444 4444 4444 0002 AAAA AAAA" - $"AAAA 0003 EEEE EEEE EEEE 0004 5555 5555" - $"5555 0005 DDDD DDDD DDDD 0006 7777 7777" - $"7777 000F 0000 0000 0000" -}; - -data 'crsr' (3014, "coffee_mug") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 03F8 0C06 1001 1C07 33F9 7001" - $"D001 9001 960D DA55 7A55 36ED 10A1 1001" - $"0802 07FC 03F8 0FFE 1FFF 1FFF 3FFF 7FFF" - $"FFFF FFFF FFFF FFFF 7FFF 3FFF 1FFF 1FFF" - $"0FFE 07FC 0004 0003 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 00FF FFFF F000 0000 FF42 2222" - $"4FF0 000F 4221 1111 224F 000F FF11 1111" - $"1FFF 00FF 24FF FFFF F42F 0F5F 2222 2222" - $"222F F52F 2222 2222 222F F40F 2222 2222" - $"222F F40F 4FF2 2224 FF2F F52F F2F2 2F2F" - $"2F2F 0F5F F2F2 535F 2F2F 00FF 4FF2 F3F4" - $"FF2F 000F 2222 F2F2 222F 000F 4222 2222" - $"224F 0000 F422 2222 24F0 0000 0FFF FFFF" - $"FF00 0000 0000 0000 0006 0000 FFFF FFFF" - $"FFFF 0001 CCCC 9999 6666 0002 CCCC CCCC" - $"FFFF 0003 3333 3333 6666 0004 9999 9999" - $"FFFF 0005 6666 6666 CCCC 000F 0000 0000" - $"0000" -}; - -data 'crsr' (3027, "gobbler") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0000 0078 0070 4036 4FB0 7FF0" - $"7E30 7C30 3038 00F0 0FE0 0400 0400 0400" - $"0F00 0000 00FC 00FC E0FF FFFF FFFF FFF8" - $"FFF8 FFF8 FFFC 7FFC 3FF8 1FF0 0E00 1F80" - $"1F80 1F80 0003 000E 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0000 0000 0000 0000 0000 0222" - $"2000 0000 0000 0111 0000 0300 0000 0011" - $"0220 0100 1616 1011 0000 0361 6111 1111" - $"0000 0111 1114 4415 0000 0311 1144 4451" - $"0000 0011 4444 4415 1000 0004 4444 5151" - $"0000 0000 1515 1510 0000 0000 0200 0000" - $"0000 0000 0300 0000 0000 0000 0200 0000" - $"0000 0000 2323 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0006 0000 FFFF FFFF" - $"FFFF 0001 CCCC 9999 6666 0002 DDDD 0000" - $"0000 0003 FFFF 6666 3333 0004 CCCC CCCC" - $"CCCC 0005 8888 8888 8888 0006 FFFF CCCC" - $"9999" -}; - -data 'crsr' (3028, "gumby") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 3F00 10C0 C820 EAA0 C820 CBA0" - $"F838 383E 0826 0826 092E 0926 0920 1110" - $"2108 3EF8 3F00 1FC0 CFE0 EFE0 CFE0 CFE0" - $"FFF8 3FFE 0FE6 0FE6 0FEE 0FE6 0FE0 1FF0" - $"3FF8 3EF8 0000 0002 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 00FF FFFF 0000 0000 000F 1212 FF00" - $"0000 FF00 F131 31F0 0000 FFF0 F3F3 F3F0" - $"0000 FF00 F131 31F0 0000 FF00 F2FF F2F0" - $"0000 4FFF F121 21FF F000 00FF F212 12FF" - $"FF40 0000 F121 21F0 0FF0 0000 F212 12F0" - $"0FF0 0000 F12F 21F0 FFF0 0000 F21F 12F0" - $"0FF0 0000 F12F 21F0 0000 000F 121F 121F" - $"0000 00F1 212F 2121 F000 00FF FFF0 FFFF" - $"F000 0000 0000 0000 0005 0000 FFFF FFFF" - $"FFFF 0001 0000 BBBB 0000 0002 CCCC CCCC" - $"CCCC 0003 AAAA AAAA AAAA 0004 4444 4444" - $"4444 000F 0000 0000 0000" -}; - -data 'crsr' (3031, "heart") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0000 3EF8 638C C106 8002 8002" - $"8002 8002 C006 600C 3018 1830 0C60 06C0" - $"0380 0000 0000 3EF8 7FFC FFFE FFFE FFFE" - $"FFFE FFFE FFFE 7FFC 3FF8 1FF0 0FE0 07C0" - $"0380 0000 0003 0007 0000 0000 0000 0000" - $"0000 0000 8004 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0002 0001 0002 0000 0000 0000 00D2 0000" - $"0000 0000 0000 0FFC FFC0 3AAB AA70 E99B" - $"999C E665 A65C E999 999C E666 665C E999" - $"999C D666 665C 3599 9970 0D66 65C0 0359" - $"9700 00D6 5C00 0035 7000 000F C000 0000" - $"0000 0000 0000 0000 0003 0000 FFFF FFFF" - $"FFFF 0001 DDDD 0000 0000 0002 FFFF 6666" - $"CCCC 0003 0000 0000 0000" -}; - -data 'crsr' (3042, "mouse", purgeable) { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 BE00 0100 0180 0FF0 1008 17E8" - $"1428 1428 17E8 1008 1008 1008 1008 1008" - $"1008 0FF0 FE00 0100 0180 0FF0 1FF8 1FF8" - $"1FF8 1FF8 1FF8 1FF8 1FF8 1FF8 1FF8 1FF8" - $"1FF8 0FF0 0001 0007 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 1379 4AF0 0000 0000 0000 000F 0000" - $"0000 0000 000F F000 0000 0000 FFFF FFFF" - $"0000 000F 2111 1112 F000 000F 3655 5563" - $"F000 000F 3513 1351 F000 000F 3533 3351" - $"F000 000F 3655 5561 F000 000F 3311 1111" - $"F000 000F 3333 3333 F000 000F 3333 3333" - $"F000 000F 2222 2222 F000 000F 8888 8888" - $"F000 000F 7888 8887 F000 0000 FFFF FFFF" - $"0000 0000 0000 0000 000B 0000 FFFF FFFF" - $"FFFF 0001 EEEE EEEE EEEE 0002 CCCC CCCC" - $"CCCC 0003 DDDD DDDD DDDD 0004 4444 4444" - $"4444 0005 2222 2222 2222 0006 5555 5555" - $"5555 0007 AAAA AAAA AAAA 0008 BBBB BBBB" - $"BBBB 0009 7777 7777 7777 000A 1111 1111" - $"1111 000F 0000 0000 0000" -}; - -data 'crsr' (3043, "pencil", purgeable) { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0000 00F0 0088 0108 0190 0270" - $"0220 0440 0440 0880 0880 1100 1E00 1C00" - $"1800 1000 0000 00F0 00F8 01F8 01F0 03F0" - $"03E0 07C0 07C0 0F80 0F80 1F00 1E00 1C00" - $"1800 1000 000F 0003 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0000 0000 0000 0000 0000 FFFF" - $"0000 0000 0000 F404 F000 0000 000F 4042" - $"F000 0000 000F F42F 0000 0000 00F5 3FFF" - $"0000 0000 00F3 52F0 0000 0000 0F35 1F00" - $"0000 0000 0F53 2F00 0000 0000 F532 F000" - $"0000 0000 F312 F000 0000 000F 352F 0000" - $"0000 000F FFF0 0000 0000 000F FF00 0000" - $"0000 000F F000 0000 0000 000F 0000 0000" - $"0000 0000 0000 0000 0006 0000 FFFF FFFF" - $"FFFF 0001 CCCC CCCC CCCC 0002 8888 8888" - $"8888 0003 FFFF FFFF 0000 0004 DDDD 0000" - $"0000 0005 FFFF 6666 3333 000F 0000 0000" - $"0000" -}; - -data 'crsr' (3059, "shuttle") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0020 0070 00F8 01DE 05DE 09DE" - $"11DE 11DE 11DE 11DE 31DE 71DE FDDE 1888" - $"0078 0030 0020 0070 00F8 01FE 07FE 0FFE" - $"1FFE 1FFE 1FFE 1FFE 3FFE 7FFE FFFE 18F8" - $"0078 0030 0000 000A 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0000 00F0 0000 0000 0000 0F3F" - $"0000 0000 0000 F343 F000 0000 000F 3404" - $"3FF0 0000 0F4F 3404 3FF0 0000 F55F 3404" - $"3FF0 000F 505F 3404 3FF0 000F 005F 3404" - $"3FF0 000F 005F 3404 3FF0 000F 005F 3404" - $"3FF0 00F3 005F 3404 3FF0 0F33 505F 3404" - $"3FF0 FFF3 3F4F 3404 3FF0 000F F000 1222" - $"1000 0000 0000 0111 1000 0000 0000 0011" - $"0000 0000 0000 0000 0006 0000 FFFF FFFF" - $"FFFF 0001 FFFF 6666 3333 0002 DDDD 0000" - $"0000 0003 4444 4444 4444 0004 8888 8888" - $"8888 0005 DDDD DDDD DDDD 000F 0000 0000" - $"0000" -}; - -data 'crsr' (3062, "spraycan") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0018 0040 0D18 1E40 1A18 3F00" - $"2100 3900 2900 3900 2900 3900 3900 2100" - $"2100 3F00 0000 0000 0C00 1E00 1E00 3F00" - $"3F00 3F00 3F00 3F00 3F00 3F00 3F00 3F00" - $"3F00 3F00 0002 0007 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0000 0005 2000 0000 0000 0460" - $"0000 0000 FF1F 6005 2000 000F 33F0 0460" - $"0000 000F 10F0 0005 2000 00FF FFFF 0000" - $"0000 00F8 170F 0000 0000 00F5 F70F 0000" - $"0000 00FA F70F 0000 0000 00F9 F70F 0000" - $"0000 00FA F70F 0000 0000 00F9 F70F 0000" - $"0000 00F5 F70F 0000 0000 00F8 170F 0000" - $"0000 00F8 170F 0000 0000 00FF FFFF 0000" - $"0000 0000 0000 0000 000B 0000 FFFF FFFF" - $"FFFF 0001 AAAA AAAA AAAA 0002 7777 7777" - $"7777 0003 5555 5555 5555 0004 2222 2222" - $"2222 0005 4444 4444 4444 0006 BBBB BBBB" - $"BBBB 0007 DDDD DDDD DDDD 0008 EEEE EEEE" - $"EEEE 0009 6666 6666 CCCC 000A CCCC CCCC" - $"FFFF 000F 0000 0000 0000" -}; - -data 'crsr' (3063, "star") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0100 0280 0280 0280 0440 0440" - $"0440 3938 C006 3838 0920 1290 2448 2828" - $"3018 2008 0100 0380 0380 0380 07C0 07C0" - $"07C0 3FF8 FFFE 3FF8 0FE0 1EF0 3C78 3838" - $"3018 2008 0007 0007 0000 0000 0000 0000" - $"0000 0000 8004 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0002 0001 0002 0000 0000 0000 00D2 0000" - $"0000 0003 0000 000D C000 000D C000 000D" - $"C000 0035 7000 0035 7000 0035 7000 0FD7" - $"5FC0 F555 557C 0FD5 5FC0 00D7 5C00 035C" - $"D700 0D70 35C0 0DC0 0DC0 0F00 03C0 0C00" - $"00C0 0000 0000 0000 0002 0000 FFFF FFFF" - $"FFFF 0001 FFFF FFFF 0000 0003 0000 0000" - $"0000" -}; - -data 'crsr' (3071, "trek") { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 0100 0000 0380 07C0 0FE0 0EE0" - $"0FE0 07C0 0380 0100 0BA0 0D60 0920 0820" - $"0820 0000 0000 0380 07C0 0FE0 1FF0 1FF0" - $"1FF0 0FE0 07C0 0BA0 1FF0 1FF0 1FF0 1D70" - $"1C70 0820 0000 0007 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0005 0000 0000 0000 0005 0000" - $"0000 0000 00FF F000 0000 0000 0F31 3F00" - $"0000 0000 F322 23F0 0000 0000 F110 11F0" - $"0000 0000 F311 13F0 0000 0000 0F31 3F00" - $"0000 0000 00FF F000 0000 0000 000F 0000" - $"0000 0000 F0FF F0F0 0000 0000 FF0F 0FF0" - $"0000 0000 400F 0040 0000 0000 4000 0040" - $"0000 0000 4000 0040 0000 0000 0000 0000" - $"0000 0000 0000 0000 0006 0000 FFFF FFFF" - $"FFFF 0001 EEEE EEEE EEEE 0002 9999 9999" - $"FFFF 0003 DDDD DDDD DDDD 0004 3333 3333" - $"6666 0005 DDDD 0000 0000 000F 0000 0000" - $"0000" -}; - -data 'crsr' (3075, "watch", purgeable) { - $"8001 0000 0060 0000 0092 0000 0000 0000" - $"0000 0000 07E0 07E0 07E0 07E0 0810 1088" - $"1088 108C 138C 1008 1008 0810 07E0 07E0" - $"07E0 07E0 07E0 07E0 07E0 07E0 0FF0 1FF8" - $"1FF8 1FF8 1FF8 1FF8 1FF8 0FF0 07E0 07E0" - $"07E0 07E0 0008 000D 0000 0000 0000 0000" - $"0000 0000 8008 0000 0000 0010 0010 0000" - $"0000 0000 0000 0048 0000 0048 0000 0000" - $"0004 0001 0004 0000 0000 0000 0112 0000" - $"0000 0000 0FFF FFF0 0000 0000 0FFF FFF0" - $"0000 0000 0FFF FFF0 0000 0000 0FFF FFF0" - $"0000 0000 F020 202F 0000 000F 0222 F221" - $"F000 000F 2222 F123 F000 000F 0222 F121" - $"FF00 000F 22FF F123 FF00 000F 0222 2221" - $"F000 000F 2222 2213 F000 0000 F131 313F" - $"0000 0000 0FFF FFF0 0000 0000 0FFF FFF0" - $"0000 0000 0FFF FFF0 0000 0000 0FFF FFF0" - $"0000 0000 0000 0000 0004 0000 FFFF FFFF" - $"FFFF 0001 CCCC CCCC CCCC 0002 EEEE EEEE" - $"EEEE 0003 BBBB BBBB BBBB 000F 0000 0000" - $"0000" -}; - diff --git a/carbon/tkMacOSXXStubs.c b/carbon/tkMacOSXXStubs.c deleted file mode 100644 index d88b419..0000000 --- a/carbon/tkMacOSXXStubs.c +++ /dev/null @@ -1,1285 +0,0 @@ -/* - * tkMacOSXXStubs.c -- - * - * This file contains most of the X calls called by Tk. Many of these - * calls are just stubs and either don't make sense on the Macintosh or - * their implamentation just doesn't do anything. Other calls will - * eventually be moved into other files. - * - * Copyright (c) 1995-1997 Sun Microsystems, Inc. - * Copyright 2001, Apple Computer, Inc. - * Copyright (c) 2005-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. - */ - -#include "tkMacOSXPrivate.h" -#include "tkMacOSXEvent.h" - -#include <IOKit/IOKitLib.h> - -/* - * Because this file is still under major development Debugger statements are - * used through out this file. The define TCL_DEBUG will decide whether the - * debugger statements actually call the debugger or not. - */ - -#ifndef TCL_DEBUG -# define Debugger() -#endif - -#define ROOT_ID 10 - -/* - * Declarations of static variables used in this file. - */ - -static TkDisplay *gMacDisplay = NULL; - /* Macintosh display. */ -static const char *macScreenName = ":0"; - /* Default name of macintosh display. */ - -/* - * Forward declarations of procedures used in this file. - */ - -static XID MacXIdAlloc(Display *display); -static int DefaultErrorHandler(Display *display, - XErrorEvent *err_evt); - -/* - * Other declarations - */ - -static int DestroyImage(XImage *image); -static unsigned long ImageGetPixel(XImage *image, int x, int y); -static int PutPixel(XImage *image, int x, int y, - unsigned long pixel); -#if 0 -static XImage * SubImage(XImage *image, int x, int y, - unsigned int width, unsigned int height); -static int AddPixel(XImage *image, long value); -#endif - -/* - *---------------------------------------------------------------------- - * - * TkMacOSXDisplayChanged -- - * - * Called to set up initial screen info or when an event indicated - * display (screen) change. - * - * Results: - * None. - * - * Side effects: - * May change info regarding the screen. - * - *---------------------------------------------------------------------- - */ - -void -TkMacOSXDisplayChanged( - Display *display) -{ - GDHandle graphicsDevice; - Screen *screen; - Rect bounds = {0, 0, 0, 0}, *maxBounds; - - if (display == NULL || display->screens == NULL) { - return; - } - screen = display->screens; - - graphicsDevice = GetMainDevice(); - screen->root_depth = (*(*graphicsDevice)->gdPMap)->cmpSize * - (*(*graphicsDevice)->gdPMap)->cmpCount; - screen->height = (*graphicsDevice)->gdRect.bottom - - (*graphicsDevice)->gdRect.top; - screen->width = (*graphicsDevice)->gdRect.right - - (*graphicsDevice)->gdRect.left; - - screen->mwidth = (screen->width * 254 + 360) / 720; - screen->mheight = (screen->height * 254 + 360) / 720; - - maxBounds = (Rect *) screen->ext_data; - *maxBounds = bounds; - graphicsDevice = GetDeviceList(); - while (graphicsDevice) { - OSStatus err; - - err = ChkErr(GetAvailableWindowPositioningBounds, graphicsDevice, - &bounds); - if (err == noErr) { - UnionRect(&bounds, maxBounds, maxBounds); - } - graphicsDevice = GetNextDevice(graphicsDevice); - } -} - -/* - *---------------------------------------------------------------------- - * - * TkpOpenDisplay -- - * - * Create the Display structure and fill it with device specific - * information. - * - * Results: - * Returns a Display structure on success or NULL on failure. - * - * Side effects: - * Allocates a new Display structure. - * - *---------------------------------------------------------------------- - */ - -TkDisplay * -TkpOpenDisplay( - const char *display_name) -{ - Display *display; - Screen *screen; - int fd = 0; - static Rect maxBounds = {0, 0, 0, 0}; - - if (gMacDisplay != NULL) { - if (strcmp(gMacDisplay->display->display_name, display_name) == 0) { - return gMacDisplay; - } else { - return NULL; - } - } - - display = ckalloc(sizeof(Display)); - screen = ckalloc(sizeof(Screen)); - bzero(display, sizeof(Display)); - bzero(screen, sizeof(Screen)); - - display->resource_alloc = MacXIdAlloc; - display->request = 0; - display->qlen = 0; - display->fd = fd; - display->screens = screen; - display->nscreens = 1; - display->default_screen = 0; - display->display_name = (char *) macScreenName; - - Gestalt(gestaltQuickdrawVersion, (long *) &display->proto_minor_version); - display->proto_major_version = 10; - display->proto_minor_version -= gestaltMacOSXQD; - display->vendor = (char*) "Apple"; - Gestalt(gestaltSystemVersion, (long *) &display->release); - - /* - * These screen bits never change - */ - screen->root = ROOT_ID; - screen->display = display; - screen->black_pixel = 0x00000000 | PIXEL_MAGIC << 24; - screen->white_pixel = 0x00FFFFFF | PIXEL_MAGIC << 24; - screen->ext_data = (XExtData *) &maxBounds; - - screen->root_visual = ckalloc(sizeof(Visual)); - screen->root_visual->visualid = 0; - screen->root_visual->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; - - /* - * Initialize screen bits that may change - */ - - TkMacOSXDisplayChanged(display); - - gMacDisplay = 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; - return gMacDisplay; -} - -/* - *---------------------------------------------------------------------- - * - * TkpCloseDisplay -- - * - * Deallocates a display structure created by TkpOpenDisplay. - * - * Results: - * None. - * - * Side effects: - * Frees memory. - * - *---------------------------------------------------------------------- - */ - -void -TkpCloseDisplay( - TkDisplay *displayPtr) -{ - Display *display = displayPtr->display; - - if (gMacDisplay != displayPtr) { - Tcl_Panic("TkpCloseDisplay: tried to call TkpCloseDisplay on bad display"); - } - - gMacDisplay = NULL; - if (display->screens != NULL) { - if (display->screens->root_visual != NULL) { - ckfree(display->screens->root_visual); - } - ckfree(display->screens); - } - ckfree(display); -} - -/* - *---------------------------------------------------------------------- - * - * TkClipCleanup -- - * - * This procedure is called to cleanup resources associated with claiming - * clipboard ownership and for receiving selection get results. This - * function is called in tkWindow.c. This has to be called by the display - * cleanup function because we still need the access display elements. - * - * Results: - * None. - * - * Side effects: - * Resources are freed - the clipboard may no longer be used. - * - *---------------------------------------------------------------------- - */ - -void -TkClipCleanup( - TkDisplay *dispPtr) /* display associated with clipboard */ -{ - /* - * Make sure that the local scrap is transfered to the global scrap if - * needed. - */ - - TkSuspendClipboard(); - - if (dispPtr->clipWindow != NULL) { - Tk_DeleteSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom, - dispPtr->applicationAtom); - Tk_DeleteSelHandler(dispPtr->clipWindow, dispPtr->clipboardAtom, - dispPtr->windowAtom); - - Tk_DestroyWindow(dispPtr->clipWindow); - Tcl_Release(dispPtr->clipWindow); - dispPtr->clipWindow = NULL; - } -} - -/* - *---------------------------------------------------------------------- - * - * MacXIdAlloc -- - * - * This procedure is invoked by Xlib as the resource allocator for a - * display. - * - * Results: - * The return value is an X resource identifier that isn't currently in - * use. - * - * Side effects: - * The identifier is removed from the stack of free identifiers, if it - * was previously on the stack. - * - *---------------------------------------------------------------------- - */ - -static XID -MacXIdAlloc( - Display *display) /* Display for which to allocate. */ -{ - static long int cur_id = 100; - /* - * Some special XIds are reserved - * - this is why we start at 100 - */ - - return ++cur_id; -} - -/* - *---------------------------------------------------------------------- - * - * DefaultErrorHandler -- - * - * This procedure is the default X error handler. Tk uses it's own error - * handler so this call should never be called. - * - * Results: - * None. - * - * Side effects: - * This function will call panic and exit. - * - *---------------------------------------------------------------------- - */ - -static int -DefaultErrorHandler( - Display* display, - XErrorEvent* err_evt) -{ - /* - * This call should never be called. Tk replaces it with its own error - * handler. - */ - - Tcl_Panic("Warning hit bogus error handler!"); - return 0; -} - -char * -XGetAtomName( - Display * display, - Atom atom) -{ - display->request++; - return NULL; -} - -int -_XInitImageFuncPtrs( - XImage *image) -{ - return 0; -} - -XErrorHandler -XSetErrorHandler( - XErrorHandler handler) -{ - return DefaultErrorHandler; -} - -Window -XRootWindow( - Display *display, - int screen_number) -{ - display->request++; - return ROOT_ID; -} - -int -XGetGeometry( - Display *display, - Drawable d, - Window *root_return, - int *x_return, - int *y_return, - unsigned int *width_return, - unsigned int *height_return, - unsigned int *border_width_return, - unsigned int *depth_return) -{ - TkWindow *winPtr = ((MacDrawable *) d)->winPtr; - - display->request++; - *root_return = ROOT_ID; - if (winPtr) { - *x_return = Tk_X(winPtr); - *y_return = Tk_Y(winPtr); - *width_return = Tk_Width(winPtr); - *height_return = Tk_Height(winPtr); - *border_width_return = winPtr->changes.border_width; - *depth_return = Tk_Depth(winPtr); - } else { - Rect boundsRect; - CGrafPtr destPort = TkMacOSXGetDrawablePort(d); - - GetPortBounds(destPort, &boundsRect); - *x_return = boundsRect.left; - *y_return = boundsRect.top; - *width_return = boundsRect.right - boundsRect.left; - *height_return = boundsRect.bottom - boundsRect.top; - *border_width_return = 0; - *depth_return = 32; - } - return 1; -} - -void -XChangeProperty( - Display* display, - Window w, - Atom property, - Atom type, - int format, - int mode, - _Xconst unsigned char* data, - int nelements) -{ - Debugger(); -} - -void -XSelectInput( - Display* display, - Window w, - long event_mask) -{ - Debugger(); -} - -int -XBell( - Display* display, - int percent) -{ - SysBeep(percent); - return Success; -} - -#if 0 -void -XSetWMNormalHints( - Display* display, - Window w, - XSizeHints* hints) -{ - /* - * 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( - GC gc) -{ - /* - * TODO: currently a no-op - */ - - return 0; -} - -Status -XSendEvent( - Display* display, - Window w, - Bool propagate, - long event_mask, - XEvent* event_send) -{ - Debugger(); - return 0; -} - -void -XClearWindow( - Display* display, - Window w) -{ -} - -/* -void -XDrawPoint( - Display* display, - Drawable d, - GC gc, - int x, - int y) -{ -} - -void -XDrawPoints( - Display* display, - Drawable d, - GC gc, - XPoint* points, - int npoints, - int mode) -{ -} -*/ - -int -XWarpPointer( - Display* display, - Window src_w, - Window dest_w, - int src_x, - int src_y, - unsigned int src_width, - unsigned int src_height, - int dest_x, - int dest_y) -{ - return Success; -} - -void -XQueryColor( - Display* display, - Colormap colormap, - XColor* def_in_out) -{ - unsigned long p; - unsigned char r, g, b; - XColor *d = def_in_out; - - p = d->pixel; - r = (p & 0x00FF0000) >> 16; - g = (p & 0x0000FF00) >> 8; - b = (p & 0x000000FF); - d->red = (r << 8) | r; - d->green = (g << 8) | g; - d->blue = (b << 8) | b; - d->flags = DoRed|DoGreen|DoBlue; - d->pad = 0; -} - -void -XQueryColors( - Display* display, - Colormap colormap, - XColor* defs_in_out, - int ncolors) -{ - int i; - unsigned long p; - unsigned char r, g, b; - XColor *d = defs_in_out; - - for (i = 0; i < ncolors; i++, d++) { - p = d->pixel; - r = (p & 0x00FF0000) >> 16; - g = (p & 0x0000FF00) >> 8; - b = (p & 0x000000FF); - d->red = (r << 8) | r; - d->green = (g << 8) | g; - d->blue = (b << 8) | b; - d->flags = DoRed|DoGreen|DoBlue; - d->pad = 0; - } -} - -int -XQueryTree(display, w, root_return, parent_return, children_return, - nchildren_return) - Display* display; - Window w; - Window* root_return; - Window* parent_return; - Window** children_return; - unsigned int* nchildren_return; -{ - return 0; -} - - -int -XGetWindowProperty( - Display *display, - Window w, - Atom property, - long long_offset, - long long_length, - Bool delete, - Atom req_type, - Atom *actual_type_return, - int *actual_format_return, - unsigned long *nitems_return, - unsigned long *bytes_after_return, - unsigned char ** prop_return) -{ - display->request++; - *actual_type_return = None; - *actual_format_return = *bytes_after_return = 0; - *nitems_return = 0; - return 0; -} - -void -XRefreshKeyboardMapping( - XMappingEvent *x) -{ - /* used by tkXEvent.c */ - Debugger(); -} - -void -XSetIconName( - Display* display, - Window w, - const char *icon_name) -{ - /* - * This is a no-op, no icon name for Macs. - */ - display->request++; -} - -void -XForceScreenSaver( - Display* display, - int mode) -{ - /* - * This function is just a no-op. It is defined to reset the screen saver. - * However, there is no real way to do this on a Mac. Let me know if there - * is! - */ - - display->request++; -} - -void -Tk_FreeXId( - Display *display, - XID xid) -{ - /* no-op function needed for stubs implementation. */ -} - -int -XSync( - Display *display, - Bool flag) -{ - TkMacOSXFlushWindows(); - display->request++; - return 0; -} - -#if 0 -int -XSetClipRectangles( - Display *d, - GC gc, - int clip_x_origin, - int clip_y_origin, - XRectangle* rectangles, - int n, - int ordering) -{ - TkRegion clipRgn = TkCreateRegion(); - - while (n--) { - XRectangle rect = *rectangles; - - rect.x += clip_x_origin; - rect.y += clip_y_origin; - TkUnionRectWithRegion(&rect, clipRgn, clipRgn); - rectangles++; - } - TkSetRegion(d, gc, clipRgn); - TkDestroyRegion(clipRgn); - return 1; -} -#endif - -/* - *---------------------------------------------------------------------- - * - * TkGetServerInfo -- - * - * Given a window, this procedure returns information about the window - * server for that window. This procedure provides the guts of the "winfo - * server" command. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -TkGetServerInfo( - Tcl_Interp *interp, /* The server information is returned in this - * interpreter's result. */ - Tk_Window tkwin) /* Token for window; this selects a particular - * display and server. */ -{ - char buffer[8 + TCL_INTEGER_SPACE * 2]; - char buffer2[TCL_INTEGER_SPACE]; - - sprintf(buffer, "QD%dR%x ", ProtocolVersion(Tk_Display(tkwin)), - ProtocolRevision(Tk_Display(tkwin))); - sprintf(buffer2, " %x", VendorRelease(Tk_Display(tkwin))); - Tcl_AppendResult(interp, buffer, ServerVendor(Tk_Display(tkwin)), - buffer2, NULL); -} - -#pragma mark XImage handling -/* - *---------------------------------------------------------------------- - * - * XCreateImage -- - * - * Allocates storage for a new XImage. - * - * Results: - * Returns a newly allocated XImage. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -XImage * -XCreateImage( - Display* display, - Visual* visual, - unsigned int depth, - int format, - int offset, - char* data, - unsigned int width, - unsigned int height, - int bitmap_pad, - int bytes_per_line) -{ - XImage *ximage; - - display->request++; - ximage = ckalloc(sizeof(XImage)); - - ximage->height = height; - ximage->width = width; - ximage->depth = depth; - ximage->xoffset = offset; - ximage->format = format; - ximage->data = data; - - if (format == ZPixmap) { - ximage->bits_per_pixel = 32; - ximage->bitmap_unit = 32; - } else { - ximage->bits_per_pixel = 1; - ximage->bitmap_unit = 8; - } - if (bitmap_pad) { - ximage->bitmap_pad = bitmap_pad; - } else { - /* Use 16 byte alignment for best Quartz perfomance */ - ximage->bitmap_pad = 128; - } - if (bytes_per_line) { - ximage->bytes_per_line = bytes_per_line; - } else { - ximage->bytes_per_line = ((width * ximage->bits_per_pixel + - (ximage->bitmap_pad - 1)) >> 3) & - ~((ximage->bitmap_pad >> 3) - 1); - } -#ifdef WORDS_BIGENDIAN - ximage->byte_order = MSBFirst; - ximage->bitmap_bit_order = MSBFirst; -#else - ximage->byte_order = LSBFirst; - ximage->bitmap_bit_order = LSBFirst; -#endif - ximage->red_mask = 0x00FF0000; - ximage->green_mask = 0x0000FF00; - ximage->blue_mask = 0x000000FF; - ximage->obdata = NULL; - ximage->f.create_image = NULL; - ximage->f.destroy_image = DestroyImage; - ximage->f.get_pixel = ImageGetPixel; - ximage->f.put_pixel = PutPixel; - ximage->f.sub_image = NULL; - ximage->f.add_pixel = NULL; - - return ximage; -} - -/* - *---------------------------------------------------------------------- - * - * XGetImage -- - * - * This function copies data from a pixmap or window into an XImage. - * - * Results: - * Returns a newly allocated image containing the data from the given - * rectangle of the given drawable. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -XImage * -XGetImage( - Display *display, - Drawable d, - int x, - int y, - unsigned int width, - unsigned int height, - unsigned long plane_mask, - int format) -{ - XImage * imagePtr = NULL; - Pixmap pixmap = (Pixmap) NULL; - Tk_Window win = (Tk_Window) ((MacDrawable *) d)->winPtr; - GC gc; - int depth = 32; - int offset = 0; - int bitmap_pad = 32; - int bytes_per_line = 0; - - if (TkMacOSXGetDrawablePort(d)) { - if (format == ZPixmap) { - if (width > 0 && height > 0) { - /* - * Tk_GetPixmap fails for zero width or height. - */ - - pixmap = Tk_GetPixmap(display, d, width, height, depth); - } - if (win) { - XGCValues values; - - gc = Tk_GetGC(win, 0, &values); - } else { - gc = XCreateGC(display, pixmap, 0, NULL); - } - if (pixmap) { - XCopyArea(display, d, pixmap, gc, x, y, width, height, 0, 0); - } - imagePtr = XCreateImage(display, NULL, depth, format, offset, - (char *) TkMacOSXGetDrawablePort(pixmap), - width, height, bitmap_pad, bytes_per_line); - - /* - * Track Pixmap underlying the XImage in the unused obdata field - * so that we can treat XImages coming from XGetImage specially. - */ - - imagePtr->obdata = (XPointer) pixmap; - if (!win) { - XFreeGC(display, gc); - } - } else { - TkpDisplayWarning( - "XGetImage: only ZPixmap types are implemented", - "XGetImage Failure"); - } - } - return imagePtr; -} - -/* - *---------------------------------------------------------------------- - * - * DestroyImage -- - * - * Destroys storage associated with an image. - * - * Results: - * None. - * - * Side effects: - * Deallocates the image. - * - *---------------------------------------------------------------------- - */ - -static int -DestroyImage( - XImage *image) -{ - if (image) { - if (image->obdata) { - Tk_FreePixmap((Display*) gMacDisplay, (Pixmap) image->obdata); - } else if (image->data) { - ckfree(image->data); - } - ckfree(image); - } - return 0; -} - -/* - *---------------------------------------------------------------------- - * - * ImageGetPixel -- - * - * Get a single pixel from an image. - * - * Results: - * Returns the 32 bit pixel value. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static unsigned long -ImageGetPixel( - XImage *image, - int x, - int y) -{ - CGrafPtr destPort, savePort; - Boolean portChanged; - RGBColor cPix; - unsigned long r, g, b, c; - - destPort = (CGrafPtr) image->data; - portChanged = QDSwapPort(destPort, &savePort); - GetCPixel(x, y, &cPix); - if (image->obdata) { - /* - * Image from XGetImage, 16 bit color values. - */ - - r = (cPix . red) >> 8; - g = (cPix . green) >> 8; - b = (cPix . blue) >> 8; - } else { - r = cPix . red; - g = cPix . green; - b = cPix . blue; - } - c = (r<<16)|(g<<8)|(b); - if (portChanged) { - QDSwapPort(savePort, NULL); - } - return c; -} - -/* - *---------------------------------------------------------------------- - * - * PutPixel -- - * - * Set a single pixel in an image. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -static int -PutPixel( - XImage *image, - int x, - int y, - unsigned long pixel) -{ - CGrafPtr destPort, savePort; - Boolean portChanged; - RGBColor cPix; - unsigned long r, g, b; - - destPort = (CGrafPtr)image->data; - portChanged = QDSwapPort(destPort, &savePort); - r = (pixel & image->red_mask)>>16; - g = (pixel & image->green_mask)>>8; - b = (pixel & image->blue_mask); - if (image->obdata) { - /* - * Image from XGetImage, 16 bit color values. - */ - - cPix.red = r << 8; - cPix.green = g << 8; - cPix.blue = b << 8; - } else { - cPix.red = r; - cPix.green = g; - cPix.blue = b; - } - SetCPixel(x, y, &cPix); - if (portChanged) { - QDSwapPort(savePort, NULL); - } - return 0; -} - -#if 0 -static XImage * -SubImage( - XImage *image, - int x, - int y, - unsigned int width, - unsigned int height) -{ - Debugger(); - return NULL; -} - -static int -AddPixel( - XImage *image, - long value) -{ - Debugger(); - return 0; -} -#endif - -/* - *---------------------------------------------------------------------- - * - * XChangeWindowAttributes, XSetWindowBackground, - * XSetWindowBackgroundPixmap, XSetWindowBorder, XSetWindowBorderPixmap, - * XSetWindowBorderWidth, XSetWindowColormap - * - * These functions are all no-ops. They all have equivalent Tk calls that - * should always be used instead. - * - * Results: - * None. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -void -XChangeWindowAttributes( - Display *display, - Window w, - unsigned long value_mask, - XSetWindowAttributes *attributes) -{ -} - -void -XSetWindowBackground( - Display *display, - Window window, - unsigned long value) -{ -} - -void -XSetWindowBackgroundPixmap( - Display *display, - Window w, - Pixmap background_pixmap) -{ -} - -void -XSetWindowBorder( - Display *display, - Window w, - unsigned long border_pixel) -{ -} - -void -XSetWindowBorderPixmap( - Display *display, - Window w, - Pixmap border_pixmap) -{ -} - -void -XSetWindowBorderWidth( - Display *display, - Window w, - unsigned int width) -{ -} - -void -XSetWindowColormap( - Display *display, - Window w, - Colormap colormap) -{ - Debugger(); -} - -Status -XStringListToTextProperty( - char **list, - int count, - XTextProperty *text_prop_return) -{ - Debugger(); - return (Status) 0; -} - -void -XSetWMClientMachine( - Display *display, - Window w, - XTextProperty *text_prop) -{ - Debugger(); -} - -XIC -XCreateIC(void) -{ - Debugger(); - return (XIC) 0; -} - -/* - *---------------------------------------------------------------------- - * - * TkGetDefaultScreenName -- - * - * Returns the name of the screen that Tk should use during - * initialization. - * - * Results: - * Returns a statically allocated string. - * - * Side effects: - * None. - * - *---------------------------------------------------------------------- - */ - -const char * -TkGetDefaultScreenName( - Tcl_Interp *interp, /* Not used. */ - const char *screenName) /* If NULL, use default string. */ -{ -#if 0 - if ((screenName == NULL) || (screenName[0] == '\0')) { - screenName = macScreenName; - } - return screenName; -#endif - return macScreenName; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_GetUserInactiveTime -- - * - * Return the number of milliseconds the user was inactive. - * - * Results: - * The number of milliseconds the user has been inactive, or -1 if - * querying the inactive time is not supported. - * - * Side effects: - * None. - *---------------------------------------------------------------------- - */ - -long -Tk_GetUserInactiveTime( - Display *dpy) -{ - io_registry_entry_t regEntry; - CFMutableDictionaryRef props = NULL; - CFTypeRef timeObj; - long ret = -1l; - uint64_t time; - IOReturn result; - - regEntry = IOServiceGetMatchingService(kIOMasterPortDefault, - IOServiceMatching("IOHIDSystem")); - - if (regEntry == 0) { - return -1l; - } - - result = IORegistryEntryCreateCFProperties(regEntry, &props, - kCFAllocatorDefault, 0); - IOObjectRelease(regEntry); - - if (result != KERN_SUCCESS || props == NULL) { - return -1l; - } - - timeObj = CFDictionaryGetValue(props, CFSTR("HIDIdleTime")); - - if (timeObj) { - CFTypeID type = CFGetTypeID(timeObj); - - if (type == CFDataGetTypeID()) { /* Jaguar */ - CFDataGetBytes((CFDataRef) timeObj, - CFRangeMake(0, sizeof(time)), (UInt8 *) &time); - /* Convert nanoseconds to milliseconds. */ - /* ret /= kMillisecondScale; */ - ret = (long) (time/kMillisecondScale); - } else if (type == CFNumberGetTypeID()) { /* Panther+ */ - CFNumberGetValue((CFNumberRef)timeObj, - kCFNumberSInt64Type, &time); - /* Convert nanoseconds to milliseconds. */ - /* ret /= kMillisecondScale; */ - ret = (long) (time/kMillisecondScale); - } else { - ret = -1l; - } - } - /* Cleanup */ - CFRelease(props); - - return ret; -} - -/* - *---------------------------------------------------------------------- - * - * Tk_ResetUserInactiveTime -- - * - * Reset the user inactivity timer - * - * Results: - * none - * - * Side effects: - * The user inactivity timer of the underlaying windowing system is reset - * to zero. - * - *---------------------------------------------------------------------- - */ - -void -Tk_ResetUserInactiveTime( - Display *dpy) -{ - UpdateSystemActivity(UsrActivity); -} diff --git a/carbon/ttkMacOSXTheme.c b/carbon/ttkMacOSXTheme.c deleted file mode 100644 index 5a895aa..0000000 --- a/carbon/ttkMacOSXTheme.c +++ /dev/null @@ -1,1132 +0,0 @@ -/* - * ttkMacOSXTheme.c -- - * - * Tk theme engine for Mac OSX, using the Appearance Manager API. - * - * Copyright (c) 2004 Joe English - * Copyright (c) 2005 Neil Madden - * Copyright (c) 2006-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. - * - * See also: - * - * <URL: http://developer.apple.com/documentation/Carbon/Reference/ - * Appearance_Manager/appearance_manager/APIIndex.html > - * - * Notes: - * "Active" means different things in Mac and Tk terminology -- - * On Aqua, widgets are "Active" if they belong to the foreground window, - * "Inactive" if they are in a background window. - * Tk uses the term "active" to mean that the mouse cursor - * is over a widget; aka "hover", "prelight", or "hot-tracked". - * Aqua doesn't use this kind of feedback. - * - * The QuickDraw/Carbon coordinate system is relative to the - * top-level window, not to the Tk_Window. BoxToRect() - * accounts for this. - */ - -#include "tkMacOSXPrivate.h" -#include "ttk/ttkTheme.h" - -#if !defined(BUILD_tile) -/* - * Use this version in the core: - */ -#define BEGIN_DRAWING(d) { \ - TkMacOSXDrawingContext dc; \ - if (!TkMacOSXSetupDrawingContext((d), NULL, 0, &dc)) {return;} -#define END_DRAWING \ - TkMacOSXRestoreDrawingContext(&dc); } -#else /* BUILD_tile */ -/* - * TkMacOSXSetupDrawingContext is not available to extensions, - * need to do this the hard way in Tile: - */ -#define BEGIN_DRAWING(d) { \ - CGrafPtr saveWorld; GDHandle saveDevice; \ - GetGWorld(&saveWorld, &saveDevice); \ - SetGWorld(TkMacOSXGetDrawablePort(d), 0); \ - TkMacOSXSetUpClippingRgn(d); -#define END_DRAWING \ - SetGWorld(saveWorld,saveDevice); } -#endif /* defined(BUILD_TILE) */ - -/*---------------------------------------------------------------------- - * +++ Utilities. - */ - -/* - * BoxToRect -- - * Convert a Ttk_Box in Tk coordinates relative to the given Drawable - * to a native Rect relative to the containing port. - */ -static inline Rect BoxToRect(Drawable d, Ttk_Box b) -{ - MacDrawable *md = (MacDrawable*)d; - Rect rect; - - rect.top = b.y + md->yOff; - rect.left = b.x + md->xOff; - rect.bottom = rect.top + b.height; - rect.right = rect.left + b.width; - - return rect; -} - -/* - * PatternOrigin -- - * Compute brush pattern origin for a Drawable relative to a Tk_Window. - * - * Notes: This will only be nonzero if the Drawable is an off-screen pixmap. - * See also SF bug #1157739. - */ -static Point PatternOrigin(Tk_Window tkwin, Drawable d) -{ - MacDrawable *md = (MacDrawable*)d; - Rect bounds; - Point origin; - - TkMacOSXWinBounds((TkWindow *) tkwin, &bounds); - origin.h = md->xOff - bounds.left; - origin.v = md->yOff - bounds.top; - - return origin; -} - -/* - * DontErase -- - * No-op ThemeEraseProc, can be passed to DrawThemeButton &c. - */ -static void DontErase( - const Rect *bounds, UInt32 eraseData, SInt16 depth, Boolean isColorDev) -{ } - -/* - * Table mapping Tk states to Appearance manager ThemeStates - */ - -static Ttk_StateTable ThemeStateTable[] = { - {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} -*/ -}; - -/*---------------------------------------------------------------------- - * +++ Button element: Used for elements drawn with DrawThemeButton. - */ - -/* - * Extra margins to account for drop shadow. - */ -static Ttk_Padding ButtonMargins = {2,2,2,2}; - -#define NoThemeMetric 0xFFFFFFFF - -typedef struct { - ThemeButtonKind kind; - ThemeMetric heightMetric; -} ThemeButtonParms; - -static ThemeButtonParms - PushButtonParms = { kThemePushButton, kThemeMetricPushButtonHeight }, - CheckBoxParms = { kThemeCheckBox, kThemeMetricCheckBoxHeight }, - RadioButtonParms = { kThemeRadioButton, kThemeMetricRadioButtonHeight }, - BevelButtonParms = { kThemeBevelButton, NoThemeMetric }, - PopupButtonParms = { kThemePopupButton, kThemeMetricPopupButtonHeight }, - DisclosureParms = { kThemeDisclosureButton, kThemeMetricDisclosureTriangleHeight }, - ListHeaderParms = { kThemeListHeaderButton, kThemeMetricListHeaderHeight }; - -static Ttk_StateTable ButtonValueTable[] = { - { kThemeButtonMixed, TTK_STATE_ALTERNATE, 0 }, - { kThemeButtonOn, TTK_STATE_SELECTED, 0 }, - { kThemeButtonOff, 0, 0 } -/* Others: kThemeDisclosureRight, kThemeDisclosureDown, kThemeDisclosureLeft */ -}; - -static Ttk_StateTable ButtonAdornmentTable[] = { - { kThemeAdornmentDefault| kThemeAdornmentFocus, - TTK_STATE_ALTERNATE| TTK_STATE_FOCUS, 0 }, - { kThemeAdornmentDefault, TTK_STATE_ALTERNATE, 0 }, - { kThemeAdornmentFocus, TTK_STATE_FOCUS, 0 }, - { kThemeAdornmentNone, 0, 0 } -}; - -/* - * computeButtonDrawInfo -- - * Fill in an appearance manager ThemeButtonDrawInfo record. - */ -static ThemeButtonDrawInfo computeButtonDrawInfo( - ThemeButtonParms *parms, Ttk_State state) -{ - ThemeButtonDrawInfo info; - - info.state = Ttk_StateTableLookup(ThemeStateTable, state); - info.value = Ttk_StateTableLookup(ButtonValueTable, state); - info.adornment = Ttk_StateTableLookup(ButtonAdornmentTable, state); - return info; -} - -static void ButtonElementSizeNoPadding( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - ThemeButtonParms *parms = clientData; - - if (parms->heightMetric != NoThemeMetric) { - SInt32 height; - - ChkErr(GetThemeMetric, parms->heightMetric, &height); - *heightPtr = height; - } -} - -static void ButtonElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - ThemeButtonParms *parms = clientData; - ThemeButtonDrawInfo info = computeButtonDrawInfo(parms, 0); - static const Rect scratchBounds = {0, 0, 100, 100}; - Rect contentBounds; - - ButtonElementSizeNoPadding( - clientData, elementRecord, tkwin, - widthPtr, heightPtr, paddingPtr); - - /* - * To compute internal padding, query the appearance manager - * for the content bounds of a dummy rectangle, then use - * the difference as the padding. - */ - ChkErr(GetThemeButtonContentBounds, - &scratchBounds, parms->kind, &info, &contentBounds); - - paddingPtr->left = contentBounds.left; - paddingPtr->top = contentBounds.top; - paddingPtr->right = scratchBounds.right - contentBounds.right + 1; - paddingPtr->bottom = scratchBounds.bottom - contentBounds.bottom; - - /* - * Now add a little extra padding to account for drop shadows. - * @@@ SHOULD: call GetThemeButtonBackgroundBounds() instead. - */ - - *paddingPtr = Ttk_AddPadding(*paddingPtr, ButtonMargins); - *widthPtr += Ttk_PaddingWidth(ButtonMargins); - *heightPtr += Ttk_PaddingHeight(ButtonMargins); -} - -static void ButtonElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - ThemeButtonParms *parms = clientData; - ThemeButtonDrawInfo info = computeButtonDrawInfo(parms, state); - Rect bounds = BoxToRect(d, Ttk_PadBox(b, ButtonMargins)); - - BEGIN_DRAWING(d) - ChkErr(DrawThemeButton, &bounds, parms->kind, &info, NULL, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec ButtonElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - ButtonElementSize, - ButtonElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Notebook elements. - */ - -static Ttk_StateTable TabStyleTable[] = { - { kThemeTabFrontInactive, TTK_STATE_SELECTED|TTK_STATE_BACKGROUND, 0 }, - { kThemeTabNonFrontInactive, TTK_STATE_BACKGROUND, 0 }, - { kThemeTabFrontUnavailable, TTK_STATE_DISABLED|TTK_STATE_SELECTED, 0 }, - { kThemeTabNonFrontUnavailable, TTK_STATE_DISABLED, 0 }, - { kThemeTabFront, TTK_STATE_SELECTED, 0 }, - { kThemeTabNonFrontPressed, TTK_STATE_PRESSED, 0 }, - { kThemeTabNonFront, 0,0 } -}; - -/* - * Quoth DrawThemeTab() reference manual: - * "Small tabs have a height of 16 pixels large tabs have a height of - * 21 pixels. (The widths of tabs are variable.) Additionally, the - * distance that the tab overlaps the pane must be included in the tab - * rectangle this overlap distance is always 3 pixels, although the - * 3-pixel overlap is only drawn for the front tab." - */ -static const int TAB_HEIGHT = 21; -static const int TAB_OVERLAP = 3; - -static void TabElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *heightPtr = TAB_HEIGHT + TAB_OVERLAP - 1; -} - -static void TabElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, b); - ThemeTabStyle tabStyle = Ttk_StateTableLookup(TabStyleTable, state); - - bounds.bottom += TAB_OVERLAP; - BEGIN_DRAWING(d) - ChkErr(DrawThemeTab, &bounds, tabStyle, kThemeTabNorth, 0, 0); - END_DRAWING -} - -static Ttk_ElementSpec TabElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - TabElementSize, - TabElementDraw -}; - -/* - * Notebook panes: - */ -static void PaneElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - /* Padding determined by trial-and-error */ - *paddingPtr = Ttk_MakePadding(2, 8, 2, 2); -} - -static void PaneElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, b); - ThemeDrawState drawState = Ttk_StateTableLookup(ThemeStateTable, state); - - BEGIN_DRAWING(d) - ChkErr(DrawThemeTabPane, &bounds, drawState); - END_DRAWING -} - -static Ttk_ElementSpec PaneElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - PaneElementSize, - PaneElementDraw -}; - -/* - * Labelframe borders: - * Use "primary group box ..." - * Quoth 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( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *paddingPtr = Ttk_UniformPadding(4); -} - -static void GroupElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, b); - ThemeDrawState drawState = Ttk_StateTableLookup(ThemeStateTable, state); - - BEGIN_DRAWING(d) - ChkErr(DrawThemePrimaryGroup, &bounds, drawState); - END_DRAWING -} - -static Ttk_ElementSpec GroupElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - GroupElementSize, - GroupElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Entry element -- - * 3 pixels padding for focus rectangle - * 2 pixels padding for EditTextFrame - */ - -typedef struct { - Tcl_Obj *backgroundObj; -} EntryElement; - -static Ttk_ElementOptionSpec EntryElementOptions[] = { - { "-background", TK_OPTION_BORDER, - Tk_Offset(EntryElement,backgroundObj), "white" }, - {0} -}; - -static void EntryElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *paddingPtr = Ttk_UniformPadding(5); -} - -static void EntryElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - EntryElement *e = elementRecord; - Tk_3DBorder backgroundPtr = Tk_Get3DBorderFromObj(tkwin,e->backgroundObj); - Ttk_Box inner = Ttk_PadBox(b, Ttk_UniformPadding(3)); - Rect bounds = BoxToRect(d, inner); - ThemeDrawState drawState = Ttk_StateTableLookup(ThemeStateTable, state); - - /* - * Erase w/background color: - */ - XFillRectangle(Tk_Display(tkwin), d, - Tk_3DBorderGC(tkwin, backgroundPtr, TK_3D_FLAT_GC), - inner.x,inner.y, inner.width, inner.height); - - BEGIN_DRAWING(d) - ChkErr(DrawThemeEditTextFrame, &bounds, drawState); - if (state & TTK_STATE_FOCUS) { - ChkErr(DrawThemeFocusRect, &bounds, 1); - } - END_DRAWING -} - -static Ttk_ElementSpec EntryElementSpec = { - TK_STYLE_VERSION_2, - sizeof(EntryElement), - EntryElementOptions, - EntryElementSize, - EntryElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Combobox: - * - * NOTES: - * kThemeMetricComboBoxLargeDisclosureWidth -> 17 - * Padding and margins guesstimated by trial-and-error. - */ - -static Ttk_Padding ComboboxPadding = { 2, 3, 17, 1 }; -static Ttk_Padding ComboboxMargins = { 3, 3, 4, 4 }; - -static void ComboboxElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *widthPtr = 0; - *heightPtr = 0; - *paddingPtr = Ttk_AddPadding(ComboboxMargins, ComboboxPadding); -} - -static void ComboboxElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - ThemeButtonParms *parms = clientData; - ThemeButtonDrawInfo info = computeButtonDrawInfo(parms, state); - Rect bounds = BoxToRect(d, Ttk_PadBox(b, ComboboxMargins)); - - BEGIN_DRAWING(d) - ChkErr(DrawThemeButton, - &bounds, kThemeComboBox, &info, NULL, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec ComboboxElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - ComboboxElementSize, - ComboboxElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Spinbuttons. - * - * From Apple HIG, part III, section "Controls", "The Stepper Control": - * there should be 2 pixels of space between the stepper control - * (AKA IncDecButton, AKA "little arrows") and the text field it modifies. - */ - -static Ttk_Padding SpinbuttonMargins = {2,0,2,0}; -static void SpinButtonElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - SInt32 s; - - ChkErr(GetThemeMetric, kThemeMetricLittleArrowsWidth, &s); - *widthPtr = s + Ttk_PaddingWidth(SpinbuttonMargins); - ChkErr(GetThemeMetric, kThemeMetricLittleArrowsHeight, &s); - *heightPtr = s + Ttk_PaddingHeight(SpinbuttonMargins); -} - -static void SpinButtonElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, Ttk_PadBox(b, SpinbuttonMargins)); - ThemeButtonDrawInfo info; - - /* @@@ can't currently distinguish PressedUp (== Pressed) from PressedDown; - * ignore this bit for now [see #2219588] - */ - info.state = Ttk_StateTableLookup(ThemeStateTable, - state & ~TTK_STATE_PRESSED); - info.value = Ttk_StateTableLookup(ButtonValueTable, state); - info.adornment = kThemeAdornmentNone; - - BEGIN_DRAWING(d) - ChkErr(DrawThemeButton, - &bounds, kThemeIncDecButton, &info, NULL, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec SpinButtonElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - SpinButtonElementSize, - SpinButtonElementDraw -}; - - -/*---------------------------------------------------------------------- - * +++ DrawThemeTrack-based elements -- - * Progress bars and scales. (See also: <<NOTE-TRACKS>>) - */ - -static Ttk_StateTable ThemeTrackEnableTable[] = { - { kThemeTrackDisabled, TTK_STATE_DISABLED, 0 }, - { kThemeTrackInactive, TTK_STATE_BACKGROUND, 0 }, - { kThemeTrackActive, 0, 0 } - /* { kThemeTrackNothingToScroll, ?, ? }, */ -}; - -typedef struct { /* TrackElement client data */ - ThemeTrackKind kind; - SInt32 thicknessMetric; -} TrackElementData; - -static TrackElementData ScaleData = { - kThemeSlider, kThemeMetricHSliderHeight -}; - -typedef struct { - Tcl_Obj *fromObj; /* minimum value */ - Tcl_Obj *toObj; /* maximum value */ - Tcl_Obj *valueObj; /* current value */ - Tcl_Obj *orientObj; /* horizontal / vertical */ -} TrackElement; - -static Ttk_ElementOptionSpec TrackElementOptions[] = { - { "-from", TK_OPTION_DOUBLE, Tk_Offset(TrackElement,fromObj) }, - { "-to", TK_OPTION_DOUBLE, Tk_Offset(TrackElement,toObj) }, - { "-value", TK_OPTION_DOUBLE, Tk_Offset(TrackElement,valueObj) }, - { "-orient", TK_OPTION_STRING, Tk_Offset(TrackElement,orientObj) }, - {0,0,0} -}; - -static void TrackElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - TrackElementData *data = clientData; - SInt32 size = 24; /* reasonable default ... */ - - ChkErr(GetThemeMetric, data->thicknessMetric, &size); - *widthPtr = *heightPtr = size; -} - -static void TrackElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - TrackElementData *data = clientData; - TrackElement *elem = elementRecord; - double from = 0, to = 100, value = 0; - int orientation = TTK_ORIENT_HORIZONTAL; - ThemeTrackDrawInfo info; - - Tcl_GetDoubleFromObj(NULL, elem->fromObj, &from); - Tcl_GetDoubleFromObj(NULL, elem->toObj, &to); - Tcl_GetDoubleFromObj(NULL, elem->valueObj, &value); - Ttk_GetOrientFromObj(NULL, elem->orientObj, &orientation); - - /* @@@ BUG: min, max, and value should account for resolution: - * @@@ if finer than 1.0, conversion to int breaks. - */ - info.kind = data->kind; - info.bounds = BoxToRect(d, b); - info.min = (int) from; /* @@@ */ - info.max = (int) to; /* @@@ */ - info.value = (int) value; /* @@@ */ - - info.attributes = orientation == TTK_ORIENT_HORIZONTAL - ? kThemeTrackHorizontal : 0; - info.attributes |= kThemeTrackShowThumb; - info.enableState = Ttk_StateTableLookup(ThemeTrackEnableTable, state); - - switch (data->kind) { - case kThemeProgressBar: - info.trackInfo.progress.phase = 0; /* 1-4: animation phase */ - break; - case kThemeSlider: - info.trackInfo.slider.pressState = 0; /* @@@ fill this in */ - info.trackInfo.slider.thumbDir = kThemeThumbPlain; - /* kThemeThumbUpward, kThemeThumbDownward, kThemeThumbPlain */ - break; - } - - BEGIN_DRAWING(d) - ChkErr(DrawThemeTrack, &info, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec TrackElementSpec = { - TK_STYLE_VERSION_2, - sizeof(TrackElement), - TrackElementOptions, - TrackElementSize, - TrackElementDraw -}; - -/* - * Slider element -- <<NOTE-TRACKS>> - * Has geometry only. The Scale widget adjusts the position of this element, - * and uses it for hit detection. In the Aqua theme, the slider is actually - * drawn as part of the trough element. - * - * Also buggy: The geometry here is a Wild-Assed-Guess; I can't - * figure out how to get the Appearance Manager to tell me the - * slider size. - */ -static void SliderElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *widthPtr = *heightPtr = 24; -} - -static Ttk_ElementSpec SliderElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - SliderElementSize, - TtkNullElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Progress bar element (new): - * - * @@@ NOTE: According to an older revision of the Aqua reference docs, - * @@@ the 'phase' field is between 0 and 4. Newer revisions say - * @@@ that it can be any UInt8 value. - */ - -typedef struct { - Tcl_Obj *orientObj; /* horizontal / vertical */ - Tcl_Obj *valueObj; /* current value */ - Tcl_Obj *maximumObj; /* maximum value */ - Tcl_Obj *phaseObj; /* animation phase */ - Tcl_Obj *modeObj; /* progress bar mode */ -} PbarElement; - -static Ttk_ElementOptionSpec PbarElementOptions[] = { - { "-orient", TK_OPTION_STRING, - Tk_Offset(PbarElement,orientObj), "horizontal" }, - { "-value", TK_OPTION_DOUBLE, - Tk_Offset(PbarElement,valueObj), "0" }, - { "-maximum", TK_OPTION_DOUBLE, - Tk_Offset(PbarElement,maximumObj), "100" }, - { "-phase", TK_OPTION_INT, - Tk_Offset(PbarElement,phaseObj), "0" }, - { "-mode", TK_OPTION_STRING, - Tk_Offset(PbarElement,modeObj), "determinate" }, - {0,0,0,0} -}; - -static void PbarElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - SInt32 size = 24; /* @@@ Check HIG for correct default */ - - ChkErr(GetThemeMetric, kThemeMetricLargeProgressBarThickness, &size); - *widthPtr = *heightPtr = size; -} - -static void PbarElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - PbarElement *pbar = elementRecord; - int orientation = TTK_ORIENT_HORIZONTAL; - double value = 0, maximum = 100; - int phase = 0; - ThemeTrackDrawInfo info; - - Ttk_GetOrientFromObj(NULL, pbar->orientObj, &orientation); - Tcl_GetDoubleFromObj(NULL, pbar->valueObj, &value); - Tcl_GetDoubleFromObj(NULL, pbar->maximumObj, &maximum); - Tcl_GetIntFromObj(NULL, pbar->phaseObj, &phase); - - if (!strcmp("indeterminate", Tcl_GetString(pbar->modeObj)) && value) { - info.kind = kThemeIndeterminateBar; - } else { - info.kind = kThemeProgressBar; - } - info.bounds = BoxToRect(d, b); - info.min = 0; - info.max = (int) maximum; /* @@@ See note above */ - info.value = (int) value; - info.attributes = orientation == TTK_ORIENT_HORIZONTAL - ? kThemeTrackHorizontal : 0; - info.attributes |= kThemeTrackShowThumb; - info.enableState = Ttk_StateTableLookup(ThemeTrackEnableTable, state); - info.trackInfo.progress.phase = phase; - - BEGIN_DRAWING(d) - ChkErr(DrawThemeTrack, &info, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec PbarElementSpec = { - TK_STYLE_VERSION_2, - sizeof(PbarElement), - PbarElementOptions, - PbarElementSize, - PbarElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Separator element. - * - * DrawThemeSeparator() guesses the orientation of the line from - * the width and height of the rectangle, so the same element can - * can be used for horizontal, vertical, and general separators. - */ - -static void SeparatorElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - *widthPtr = *heightPtr = 1; -} - -static void SeparatorElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, unsigned int state) -{ - Rect bounds = BoxToRect(d, b); - ThemeDrawState drawState; - - /* - * DrawThemeSeparator only supports kThemeStateActive / kThemeStateInactive - */ - state &= TTK_STATE_BACKGROUND; - drawState = Ttk_StateTableLookup(ThemeStateTable, state); - BEGIN_DRAWING(d) - ChkErr(DrawThemeSeparator, &bounds, drawState); - END_DRAWING -} - -static Ttk_ElementSpec SeparatorElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - SeparatorElementSize, - SeparatorElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Size grip element. - */ -static const ThemeGrowDirection sizegripGrowDirection - = kThemeGrowRight|kThemeGrowDown; - -static void SizegripElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - Point origin = {0, 0}; - Rect bounds; - - ChkErr(GetThemeStandaloneGrowBoxBounds, - origin, sizegripGrowDirection, false, &bounds); - *widthPtr = bounds.right - bounds.left; - *heightPtr = bounds.bottom - bounds.top; -} - -static void SizegripElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, unsigned int state) -{ - Rect bounds = BoxToRect(d, b); - Point origin = {bounds.top, bounds.left}; - - /* Grow box only supports kThemeStateActive, kThemeStateInactive */ - state &= TTK_STATE_BACKGROUND; - - BEGIN_DRAWING(d) - ChkErr(DrawThemeStandaloneGrowBox, - origin, sizegripGrowDirection, false, - Ttk_StateTableLookup(ThemeStateTable, state)); - END_DRAWING -} - -static Ttk_ElementSpec SizegripElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - SizegripElementSize, - SizegripElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Background and fill elements. - * - * This isn't quite right: In Aqua, the correct background for - * a control depends on what kind of container it belongs to, - * and the type of the top-level window. - * - * Also: patterned backgrounds should be aligned with the coordinate - * system of the top-level window. If we're drawing into an - * off-screen graphics port this leads to alignment glitches. - */ - -static void FillElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, b); - ThemeBrush brush = (state & TTK_STATE_BACKGROUND) - ? kThemeBrushModelessDialogBackgroundInactive - : kThemeBrushModelessDialogBackgroundActive; - - BEGIN_DRAWING(d) - ChkErr(SetThemeBackground, brush, 32, true); - QDSetPatternOrigin(PatternOrigin(tkwin, d)); - EraseRect(&bounds); - END_DRAWING -} - -static void BackgroundElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, unsigned int state) -{ - FillElementDraw( - clientData, elementRecord, tkwin, - d, Ttk_WinBox(tkwin), state); -} - -static Ttk_ElementSpec FillElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - TtkNullElementSize, - FillElementDraw -}; - -static Ttk_ElementSpec BackgroundElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - TtkNullElementSize, - BackgroundElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ ToolbarBackground element -- toolbar style for frames. - * - * This is very similar to the normal background element, but uses a - * different ThemeBrush in order to get the lighter pinstripe effect - * used in toolbars. We use SetThemeBackground() rather than - * ApplyThemeBackground() in order to get the right style. - * - * <URL: http://developer.apple.com/documentation/Carbon/Reference/ - * Appearance_Manager/appearance_manager/constant_7.html#/ - * /apple_ref/doc/uid/TP30000243/C005321> - * - */ -static void ToolbarBackgroundElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - ThemeBrush brush = kThemeBrushToolbarBackground; - Rect bounds = BoxToRect(d, Ttk_WinBox(tkwin)); - - BEGIN_DRAWING(d) - ChkErr(SetThemeBackground, brush, 32, true); - QDSetPatternOrigin(PatternOrigin(tkwin, d)); - EraseRect(&bounds); - END_DRAWING -} - -static Ttk_ElementSpec ToolbarBackgroundElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - TtkNullElementSize, - ToolbarBackgroundElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Treeview header - * Redefine the header to use a kThemeListHeaderButton. - */ - -static Ttk_StateTable TreeHeaderAdornmentTable[] = { - { kThemeAdornmentHeaderButtonSortUp, TTK_STATE_ALTERNATE, 0 }, - { kThemeAdornmentFocus, TTK_STATE_FOCUS, 0 }, - { kThemeAdornmentNone, 0, 0 } -}; - -static void TreeHeaderElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - ThemeButtonParms *parms = clientData; - Rect bounds = BoxToRect(d, b); - ThemeButtonDrawInfo info; - - info.state = Ttk_StateTableLookup(ThemeStateTable, state); - info.value = Ttk_StateTableLookup(ButtonValueTable, state); - info.adornment = Ttk_StateTableLookup(TreeHeaderAdornmentTable, state); - - BEGIN_DRAWING(d) - ChkErr(DrawThemeButton, &bounds, parms->kind, &info, NULL, NULL, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec TreeHeaderElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - ButtonElementSizeNoPadding, - TreeHeaderElementDraw -}; - -/* - * Disclosure triangle: - */ -#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 }, - { kThemeDisclosureRight, 0, 0 }, -}; - -static void DisclosureElementSize( - void *clientData, void *elementRecord, Tk_Window tkwin, - int *widthPtr, int *heightPtr, Ttk_Padding *paddingPtr) -{ - SInt32 s; - - ChkErr(GetThemeMetric, kThemeMetricDisclosureTriangleWidth, &s); - *widthPtr = s; - ChkErr(GetThemeMetric, kThemeMetricDisclosureTriangleHeight, &s); - *heightPtr = s; -} - -static void DisclosureElementDraw( - void *clientData, void *elementRecord, Tk_Window tkwin, - Drawable d, Ttk_Box b, Ttk_State state) -{ - Rect bounds = BoxToRect(d, b); - ThemeButtonDrawInfo info; - - if (state & TTK_TREEVIEW_STATE_LEAF) { - return; - } - - info.state = Ttk_StateTableLookup(ThemeStateTable, state); - info.value = Ttk_StateTableLookup(DisclosureValueTable, state); - info.adornment = kThemeAdornmentDrawIndicatorOnly; - - BEGIN_DRAWING(d) - ChkErr(DrawThemeButton, - &bounds, kThemeDisclosureTriangle, &info, NULL, DontErase, NULL, 0); - END_DRAWING -} - -static Ttk_ElementSpec DisclosureElementSpec = { - TK_STYLE_VERSION_2, - sizeof(NullElement), - TtkNullElementOptions, - DisclosureElementSize, - DisclosureElementDraw -}; - -/*---------------------------------------------------------------------- - * +++ Widget layouts. - */ - -TTK_BEGIN_LAYOUT_TABLE(LayoutTable) - -TTK_LAYOUT("Toolbar", - TTK_NODE("Toolbar.background", TTK_FILL_BOTH)) - -TTK_LAYOUT("TButton", - TTK_GROUP("Button.button", TTK_FILL_BOTH, - TTK_GROUP("Button.padding", TTK_FILL_BOTH, - TTK_NODE("Button.label", TTK_FILL_BOTH)))) - -TTK_LAYOUT("TRadiobutton", - TTK_GROUP("Radiobutton.button", TTK_FILL_BOTH, - TTK_GROUP("Radiobutton.padding", TTK_FILL_BOTH, - TTK_NODE("Radiobutton.label", TTK_PACK_LEFT)))) - -TTK_LAYOUT("TCheckbutton", - TTK_GROUP("Checkbutton.button", TTK_FILL_BOTH, - TTK_GROUP("Checkbutton.padding", TTK_FILL_BOTH, - TTK_NODE("Checkbutton.label", TTK_PACK_LEFT)))) - -TTK_LAYOUT("TMenubutton", - TTK_GROUP("Menubutton.button", TTK_FILL_BOTH, - TTK_GROUP("Menubutton.padding", TTK_FILL_BOTH, - TTK_NODE("Menubutton.label", TTK_PACK_LEFT)))) - -TTK_LAYOUT("TCombobox", - TTK_GROUP("Combobox.button", TTK_PACK_TOP|TTK_FILL_X, - TTK_GROUP("Combobox.padding", TTK_FILL_BOTH, - TTK_NODE("Combobox.textarea", TTK_FILL_X)))) - -/* Notebook tabs -- no focus ring */ -TTK_LAYOUT("Tab", - TTK_GROUP("Notebook.tab", TTK_FILL_BOTH, - TTK_GROUP("Notebook.padding", TTK_EXPAND|TTK_FILL_BOTH, - TTK_NODE("Notebook.label", TTK_EXPAND|TTK_FILL_BOTH)))) - -/* Progress bars -- track only */ -TTK_LAYOUT("TSpinbox", - TTK_NODE("Spinbox.spinbutton", TTK_PACK_RIGHT|TTK_STICK_E) - TTK_GROUP("Spinbox.field", TTK_EXPAND|TTK_FILL_X, - TTK_NODE("Spinbox.textarea", TTK_EXPAND|TTK_FILL_X))) - -TTK_LAYOUT("TProgressbar", - TTK_NODE("Progressbar.track", TTK_EXPAND|TTK_FILL_BOTH)) - -/* Tree heading -- no border, fixed height */ -TTK_LAYOUT("Heading", - TTK_NODE("Treeheading.cell", TTK_FILL_X) - TTK_NODE("Treeheading.image", TTK_PACK_RIGHT) - TTK_NODE("Treeheading.text", 0)) - -/* Tree items -- omit focus ring */ -TTK_LAYOUT("Item", - TTK_GROUP("Treeitem.padding", TTK_FILL_BOTH, - TTK_NODE("Treeitem.indicator", TTK_PACK_LEFT) - TTK_NODE("Treeitem.image", TTK_PACK_LEFT) - TTK_NODE("Treeitem.text", TTK_PACK_LEFT))) - -TTK_END_LAYOUT_TABLE - -/*---------------------------------------------------------------------- - * +++ Initialization. - */ - -static int AquaTheme_Init(Tcl_Interp *interp) -{ - Ttk_Theme themePtr = Ttk_CreateTheme(interp, "aqua", NULL); - - if (!themePtr) { - return TCL_ERROR; - } - - /* - * Elements: - */ - Ttk_RegisterElementSpec(themePtr, "background", &BackgroundElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "fill", &FillElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Toolbar.background", - &ToolbarBackgroundElementSpec, 0); - - Ttk_RegisterElementSpec(themePtr, "Button.button", - &ButtonElementSpec, &PushButtonParms); - Ttk_RegisterElementSpec(themePtr, "Checkbutton.button", - &ButtonElementSpec, &CheckBoxParms); - Ttk_RegisterElementSpec(themePtr, "Radiobutton.button", - &ButtonElementSpec, &RadioButtonParms); - Ttk_RegisterElementSpec(themePtr, "Toolbutton.border", - &ButtonElementSpec, &BevelButtonParms); - Ttk_RegisterElementSpec(themePtr, "Menubutton.button", - &ButtonElementSpec, &PopupButtonParms); - Ttk_RegisterElementSpec(themePtr, "Spinbox.spinbutton", - &SpinButtonElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Combobox.button", - &ComboboxElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Treeitem.indicator", - &DisclosureElementSpec, &DisclosureParms); - Ttk_RegisterElementSpec(themePtr, "Treeheading.cell", - &TreeHeaderElementSpec, &ListHeaderParms); - - Ttk_RegisterElementSpec(themePtr, "Notebook.tab", &TabElementSpec, 0); - Ttk_RegisterElementSpec(themePtr, "Notebook.client", &PaneElementSpec, 0); - - Ttk_RegisterElementSpec(themePtr, "Labelframe.border",&GroupElementSpec,0); - Ttk_RegisterElementSpec(themePtr, "Entry.field",&EntryElementSpec,0); - Ttk_RegisterElementSpec(themePtr, "Spinbox.field",&EntryElementSpec,0); - - Ttk_RegisterElementSpec(themePtr, "separator",&SeparatorElementSpec,0); - Ttk_RegisterElementSpec(themePtr, "hseparator",&SeparatorElementSpec,0); - Ttk_RegisterElementSpec(themePtr, "vseparator",&SeparatorElementSpec,0); - - Ttk_RegisterElementSpec(themePtr, "sizegrip",&SizegripElementSpec,0); - - /* - * <<NOTE-TRACKS>> - * The Progressbar widget adjusts the size of the pbar element. - * In the Aqua theme, the appearance manager computes the bar geometry; - * we do all the drawing in the ".track" element and leave the .pbar out. - */ - Ttk_RegisterElementSpec(themePtr,"Scale.trough", - &TrackElementSpec, &ScaleData); - Ttk_RegisterElementSpec(themePtr,"Scale.slider",&SliderElementSpec,0); - Ttk_RegisterElementSpec(themePtr,"Progressbar.track", &PbarElementSpec, 0); - - /* - * Layouts: - */ - Ttk_RegisterLayouts(themePtr, LayoutTable); - - Tcl_PkgProvide(interp, "ttk::theme::aqua", TTK_VERSION); - return TCL_OK; -} - -MODULE_SCOPE -int Ttk_MacOSXPlatformInit(Tcl_Interp *interp) -{ - return AquaTheme_Init(interp); -} - |