From 4d7273d2cb45ecbd3610e0cfc26cab66b4eccf24 Mon Sep 17 00:00:00 2001 From: wolfsuit Date: Fri, 25 Mar 2005 04:34:15 +0000 Subject: Add native drawing for Entry and Spinbox widgets. --- ChangeLog | 13 + generic/tkEntry.c | 505 +++++++-------------- generic/tkEntry.h | 307 +++++++++++++ macosx/Wish.pbproj/jingham.pbxuser | 896 ++++++++++++++++++++++++++++++++++++- macosx/Wish.pbproj/project.pbxproj | 560 ++++++++++++++++++++--- macosx/tkMacOSXDefault.h | 22 +- macosx/tkMacOSXEntry.c | 328 ++++++++++++++ 7 files changed, 2217 insertions(+), 414 deletions(-) create mode 100644 generic/tkEntry.h create mode 100644 macosx/tkMacOSXEntry.c diff --git a/ChangeLog b/ChangeLog index 0cc5c13..eca354e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2005-03-24 Jim Ingham + These changes allow us to draw the Entry and Spinbox widget + with a native look and feel on Mac OS X. + + * generic/tkEntry.h: New file, extracting the definitions of + Entry and Spinbox. + * generic/tkEntry.c (DisplayEntry): Call out to + TkpDrawEntryBorderAndFocus and TkpDrawSpinboxButtons. Also + provide default implementations for X11 & Win. + * macosx/tkMacOSXEntry.c: New file, implements the entry & focus + and spinbox button drawing. + * tkMacOSXDefaults.h: Change the Mac OS X defaults so they fit + the native widget shapes. + * xlib/xgc.c (XCreateGC): Set the default linewidth to 1, not 0. Some extensions seem to expect this. diff --git a/generic/tkEntry.c b/generic/tkEntry.c index 3f98ea8..2894686 100644 --- a/generic/tkEntry.c +++ b/generic/tkEntry.c @@ -14,263 +14,13 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkEntry.c,v 1.35 2003/02/25 00:46:41 hobbs Exp $ + * RCS: @(#) $Id: tkEntry.c,v 1.35.2.1 2005/03/25 04:34:16 wolfsuit Exp $ */ #include "tkInt.h" #include "default.h" +#include "tkEntry.h" -enum EntryType { - TK_ENTRY, TK_SPINBOX -}; - -/* - * A data structure of the following type is kept for each Entry - * widget managed by this file: - */ - -typedef struct { - Tk_Window tkwin; /* Window that embodies the entry. NULL - * means that the window has been destroyed - * but the data structures haven't yet been - * cleaned up.*/ - Display *display; /* Display containing widget. Used, among - * other things, so that resources can be - * freed even after tkwin has gone away. */ - Tcl_Interp *interp; /* Interpreter associated with entry. */ - Tcl_Command widgetCmd; /* Token for entry's widget command. */ - Tk_OptionTable optionTable; /* Table that defines configuration options - * available for this widget. */ - enum EntryType type; /* Specialized type of Entry widget */ - - /* - * Fields that are set by widget commands other than "configure". - */ - - CONST char *string; /* Pointer to storage for string; - * NULL-terminated; malloc-ed. */ - int insertPos; /* Character index before which next typed - * character will be inserted. */ - - /* - * Information about what's selected, if any. - */ - - int selectFirst; /* Character index of first selected - * character (-1 means nothing selected. */ - int selectLast; /* Character index just after last selected - * character (-1 means nothing selected. */ - int selectAnchor; /* Fixed end of selection (i.e. "select to" - * operation will use this as one end of the - * selection). */ - - /* - * Information for scanning: - */ - - int scanMarkX; /* X-position at which scan started (e.g. - * button was pressed here). */ - int scanMarkIndex; /* Character index of character that was at - * left of window when scan started. */ - - /* - * Configuration settings that are updated by Tk_ConfigureWidget. - */ - - Tk_3DBorder normalBorder; /* Used for drawing border around whole - * window, plus used for background. */ - Tk_3DBorder disabledBorder; /* Used for drawing border around whole - * window in disabled state, plus used for - * background. */ - Tk_3DBorder readonlyBorder; /* Used for drawing border around whole - * window in readonly state, plus used for - * background. */ - int borderWidth; /* Width of 3-D border around window. */ - Tk_Cursor cursor; /* Current cursor for window, or None. */ - int exportSelection; /* Non-zero means tie internal entry selection - * to X selection. */ - Tk_Font tkfont; /* Information about text font, or NULL. */ - XColor *fgColorPtr; /* Text color in normal mode. */ - XColor *dfgColorPtr; /* Text color in disabled mode. */ - XColor *highlightBgColorPtr;/* Color for drawing traversal highlight - * area when highlight is off. */ - XColor *highlightColorPtr; /* Color for drawing traversal highlight. */ - int highlightWidth; /* Width in pixels of highlight to draw - * around widget when it has the focus. - * <= 0 means don't draw a highlight. */ - Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion - * cursor. */ - int insertBorderWidth; /* Width of 3-D border around insert cursor. */ - int insertOffTime; /* Number of milliseconds cursor should spend - * in "off" state for each blink. */ - int insertOnTime; /* Number of milliseconds cursor should spend - * in "on" state for each blink. */ - int insertWidth; /* Total width of insert cursor. */ - Tk_Justify justify; /* Justification to use for text within - * window. */ - int relief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ - Tk_3DBorder selBorder; /* Border and background for selected - * characters. */ - int selBorderWidth; /* Width of border around selection. */ - XColor *selFgColorPtr; /* Foreground color for selected text. */ - int state; /* Normal or disabled. Entry is read-only - * when disabled. */ - char *textVarName; /* Name of variable (malloc'ed) or NULL. - * If non-NULL, entry's string tracks the - * contents of this variable and vice versa. */ - char *takeFocus; /* Value of -takefocus option; not used in - * the C code, but used by keyboard traversal - * scripts. Malloc'ed, but may be NULL. */ - int prefWidth; /* Desired width of window, measured in - * average characters. */ - char *scrollCmd; /* Command prefix for communicating with - * scrollbar(s). Malloc'ed. NULL means - * no command to issue. */ - char *showChar; /* Value of -show option. If non-NULL, first - * character is used for displaying all - * characters in entry. Malloc'ed. - * This is only used by the Entry widget. */ - - /* - * Fields whose values are derived from the current values of the - * configuration settings above. - */ - - CONST char *displayString; /* String to use when displaying. This may - * be a pointer to string, or a pointer to - * malloced memory with the same character - * length as string but whose characters - * are all equal to showChar. */ - int numBytes; /* Length of string in bytes. */ - int numChars; /* Length of string in characters. Both - * string and displayString have the same - * character length, but may have different - * byte lengths due to being made from - * different UTF-8 characters. */ - int numDisplayBytes; /* Length of displayString in bytes. */ - int inset; /* Number of pixels on the left and right - * sides that are taken up by XPAD, borderWidth - * (if any), and highlightWidth (if any). */ - Tk_TextLayout textLayout; /* Cached text layout information. */ - int layoutX, layoutY; /* Origin for layout. */ - int leftX; /* X position at which character at leftIndex - * is drawn (varies depending on justify). */ - int leftIndex; /* Character index of left-most character - * visible in window. */ - Tcl_TimerToken insertBlinkHandler; - /* Timer handler used to blink cursor on and - * off. */ - GC textGC; /* For drawing normal text. */ - GC selTextGC; /* For drawing selected text. */ - GC highlightGC; /* For drawing traversal highlight. */ - int avgWidth; /* Width of average character. */ - int xWidth; /* Extra width to reserve for widget. - * Used by spinboxes for button space. */ - int flags; /* Miscellaneous flags; see below for - * definitions. */ - - int validate; /* Non-zero means try to validate */ - char *validateCmd; /* Command prefix to use when invoking - * validate command. NULL means don't - * invoke commands. Malloc'ed. */ - char *invalidCmd; /* Command called when a validation returns 0 - * (successfully fails), defaults to {}. */ - -} Entry; - -/* - * A data structure of the following type is kept for each spinbox - * widget managed by this file: - */ - -typedef struct { - Entry entry; /* A pointer to the generic entry structure. - * This must be the first element of the - * Spinbox. */ - - /* - * Spinbox specific configuration settings. - */ - - Tk_3DBorder activeBorder; /* Used for drawing border around active - * buttons. */ - Tk_3DBorder buttonBorder; /* Used for drawing border around buttons. */ - Tk_Cursor bCursor; /* cursor for buttons, or None. */ - int bdRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ - int buRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ - char *command; /* Command to invoke for spin buttons. - * NULL means no command to issue. */ - - /* - * Spinbox specific fields for use with configuration settings above. - */ - - int wrap; /* whether to wrap around when spinning */ - - int selElement; /* currently selected control */ - int curElement; /* currently mouseover control */ - - int repeatDelay; /* repeat delay */ - int repeatInterval; /* repeat interval */ - - double fromValue; /* Value corresponding to left/top of dial */ - double toValue; /* Value corresponding to right/bottom - * of dial */ - double increment; /* If > 0, all values are rounded to an - * even multiple of this value. */ - char *formatBuf; /* string into which to format value. - * Malloc'ed. */ - char *reqFormat; /* Sprintf conversion specifier used for the - * value that the users requests. Malloc'ed. */ - char *valueFormat; /* Sprintf conversion specifier used for - * the value. */ - char digitFormat[10]; /* Sprintf conversion specifier computed from - * digits and other information; used for - * the value. */ - - char *valueStr; /* Values List. Malloc'ed. */ - Tcl_Obj *listObj; /* Pointer to the list object being used */ - int eIndex; /* Holds the current index into elements */ - int nElements; /* Holds the current count of elements */ - -} Spinbox; - -/* - * Assigned bits of "flags" fields of Entry structures, and what those - * bits mean: - * - * REDRAW_PENDING: Non-zero means a DoWhenIdle handler has - * already been queued to redisplay the entry. - * BORDER_NEEDED: Non-zero means 3-D border must be redrawn - * around window during redisplay. Normally - * only text portion needs to be redrawn. - * CURSOR_ON: Non-zero means insert cursor is displayed at - * present. 0 means it isn't displayed. - * GOT_FOCUS: Non-zero means this window has the input - * focus. - * UPDATE_SCROLLBAR: Non-zero means scrollbar should be updated - * during next redisplay operation. - * GOT_SELECTION: Non-zero means we've claimed the selection. - * ENTRY_DELETED: This entry has been effectively destroyed. - * VALIDATING: Non-zero means we are in a validateCmd - * VALIDATE_VAR: Non-zero means we are attempting to validate - * the entry's textvariable with validateCmd - * VALIDATE_ABORT: Non-zero if validatecommand signals an abort - * for current procedure and make no changes - * ENTRY_VAR_TRACED: Non-zero if a var trace is set. - */ - -#define REDRAW_PENDING 1 -#define BORDER_NEEDED 2 -#define CURSOR_ON 4 -#define GOT_FOCUS 8 -#define UPDATE_SCROLLBAR 0x10 -#define GOT_SELECTION 0x20 -#define ENTRY_DELETED 0x40 -#define VALIDATING 0x80 -#define VALIDATE_VAR 0x100 -#define VALIDATE_ABORT 0x200 -#define ENTRY_VAR_TRACED 0x400 /* * The following macro defines how many extra pixels to leave on each @@ -286,15 +36,6 @@ typedef struct { #define MIN_DBL_VAL 1E-9 #define DOUBLES_EQ(d1, d2) (fabs((d1) - (d2)) < MIN_DBL_VAL) -/* - * The following enum is used to define a type for the -state option - * of the Entry widget. These values are used as indices into the - * string table below. - */ - -enum state { - STATE_DISABLED, STATE_NORMAL, STATE_READONLY -}; static char *stateStrings[] = { "disabled", "normal", "readonly", (char *) NULL @@ -654,13 +395,14 @@ enum sbselCmd { * Extra for selection of elements */ +/* + * This is the string array corresponding to the enum in selelement. + * If you modify them, you must modify the strings here. + */ + static CONST char *selElementNames[] = { "none", "buttondown", "buttonup", (char *) NULL, "entry" }; -enum selelement { - SEL_NONE, SEL_BUTTONDOWN, SEL_BUTTONUP, SEL_NULL, SEL_ENTRY -}; - /* * Flags for GetEntryIndex procedure: */ @@ -1774,6 +1516,68 @@ EntryWorldChanged(instanceData) EventuallyRedraw(entryPtr); } +#ifndef MAC_OSX_TK +/* + *-------------------------------------------------------------- + * + * TkpDrawEntryBorderAndFocus -- + * + * This procedure redraws the border of an entry widget. + * 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 o, 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(entryPtr, pixmap, isSpinbox) + Entry *entryPtr; + Drawable pixmap; + int isSpinbox; +{ + return 0; +} + + +/* + *-------------------------------------------------------------- + * + * 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(sbPtr, pixmap) + Spinbox *sbPtr; + Pixmap pixmap; +{ + return 0; +} +#endif /* Not MAC_OSX_TK */ + /* *-------------------------------------------------------------- * @@ -1964,76 +1768,78 @@ DisplayEntry(clientData) /* * Draw the spin button controls. */ - xWidth = entryPtr->xWidth; - pad = XPAD + 1; - inset = entryPtr->inset - XPAD; - startx = Tk_Width(tkwin) - (xWidth + inset); - height = (Tk_Height(tkwin) - 2*inset)/2; + if (TkpDrawSpinboxButtons(sbPtr, pixmap) == 0) { + xWidth = entryPtr->xWidth; + pad = XPAD + 1; + inset = entryPtr->inset - XPAD; + startx = Tk_Width(tkwin) - (xWidth + inset); + height = (Tk_Height(tkwin) - 2*inset)/2; #if 0 - Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, - startx, inset, xWidth, height, 1, sbPtr->buRelief); - Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, - startx, inset+height, xWidth, height, 1, sbPtr->bdRelief); + Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, + startx, inset, xWidth, height, 1, sbPtr->buRelief); + Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, + startx, inset+height, xWidth, height, 1, sbPtr->bdRelief); #else - Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, - startx, inset, xWidth, height, 1, - (sbPtr->selElement == SEL_BUTTONUP) ? - TK_RELIEF_SUNKEN : TK_RELIEF_RAISED); - Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, - startx, inset+height, xWidth, height, 1, - (sbPtr->selElement == SEL_BUTTONDOWN) ? - TK_RELIEF_SUNKEN : TK_RELIEF_RAISED); + Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, + startx, inset, xWidth, height, 1, + (sbPtr->selElement == SEL_BUTTONUP) ? + TK_RELIEF_SUNKEN : TK_RELIEF_RAISED); + Tk_Fill3DRectangle(tkwin, pixmap, sbPtr->buttonBorder, + startx, inset+height, xWidth, height, 1, + (sbPtr->selElement == SEL_BUTTONDOWN) ? + TK_RELIEF_SUNKEN : TK_RELIEF_RAISED); #endif - xWidth -= 2*pad; - /* - * Only draw the triangles if we have enough display space - */ - if ((xWidth > 1)) { - XPoint points[3]; - int starty, space, offset; - - space = height - 2*pad; - /* - * Ensure width of triangle is odd to guarantee a sharp tip - */ - if (!(xWidth % 2)) { - xWidth++; - } - tHeight = (xWidth + 1) / 2; - if (tHeight > space) { - tHeight = space; - } - space = (space - tHeight) / 2; - startx += pad; - starty = inset + height - pad - space; - offset = (sbPtr->selElement == SEL_BUTTONUP); - /* - * The points are slightly different for the up and down arrows - * because (for *.x), we need to account for a bug in the way - * XFillPolygon draws triangles, and we want to shift - * the arrows differently when allowing for depressed behavior. - */ - points[0].x = startx + offset; - points[0].y = starty + (offset ? 0 : -1); - points[1].x = startx + xWidth/2 + offset; - points[1].y = starty - tHeight + (offset ? 0 : -1); - points[2].x = startx + xWidth + offset; - points[2].y = points[0].y; - XFillPolygon(entryPtr->display, pixmap, entryPtr->textGC, - points, 3, Convex, CoordModeOrigin); - - starty = inset + height + pad + space; - offset = (sbPtr->selElement == SEL_BUTTONDOWN); - points[0].x = startx + 1 + offset; - points[0].y = starty + (offset ? 1 : 0); - points[1].x = startx + xWidth/2 + offset; - points[1].y = starty + tHeight + (offset ? 0 : -1); - points[2].x = startx - 1 + xWidth + offset; - points[2].y = points[0].y; - XFillPolygon(entryPtr->display, pixmap, entryPtr->textGC, - points, 3, Convex, CoordModeOrigin); - } + xWidth -= 2*pad; + /* + * Only draw the triangles if we have enough display space + */ + if ((xWidth > 1)) { + XPoint points[3]; + int starty, space, offset; + + space = height - 2*pad; + /* + * Ensure width of triangle is odd to guarantee a sharp tip + */ + if (!(xWidth % 2)) { + xWidth++; + } + tHeight = (xWidth + 1) / 2; + if (tHeight > space) { + tHeight = space; + } + space = (space - tHeight) / 2; + startx += pad; + starty = inset + height - pad - space; + offset = (sbPtr->selElement == SEL_BUTTONUP); + /* + * The points are slightly different for the up and down arrows + * because (for *.x), we need to account for a bug in the way + * XFillPolygon draws triangles, and we want to shift + * the arrows differently when allowing for depressed behavior. + */ + points[0].x = startx + offset; + points[0].y = starty + (offset ? 0 : -1); + points[1].x = startx + xWidth/2 + offset; + points[1].y = starty - tHeight + (offset ? 0 : -1); + points[2].x = startx + xWidth + offset; + points[2].y = points[0].y; + XFillPolygon(entryPtr->display, pixmap, entryPtr->textGC, + points, 3, Convex, CoordModeOrigin); + + starty = inset + height + pad + space; + offset = (sbPtr->selElement == SEL_BUTTONDOWN); + points[0].x = startx + 1 + offset; + points[0].y = starty + (offset ? 1 : 0); + points[1].x = startx + xWidth/2 + offset; + points[1].y = starty + tHeight + (offset ? 0 : -1); + points[2].x = startx - 1 + xWidth + offset; + points[2].y = points[0].y; + XFillPolygon(entryPtr->display, pixmap, entryPtr->textGC, + points, 3, Convex, CoordModeOrigin); + } + } } /* @@ -2041,23 +1847,26 @@ DisplayEntry(clientData) * any text that extends past the viewable part of the window. */ - xBound = entryPtr->highlightWidth; - if (entryPtr->relief != TK_RELIEF_FLAT) { - Tk_Draw3DRectangle(tkwin, pixmap, border, xBound, xBound, - Tk_Width(tkwin) - 2 * xBound, - Tk_Height(tkwin) - 2 * xBound, - entryPtr->borderWidth, entryPtr->relief); - } - if (xBound > 0) { - GC fgGC, bgGC; - - bgGC = Tk_GCForColor(entryPtr->highlightBgColorPtr, pixmap); - if (entryPtr->flags & GOT_FOCUS) { - fgGC = Tk_GCForColor(entryPtr->highlightColorPtr, pixmap); - TkpDrawHighlightBorder(tkwin, fgGC, bgGC, xBound, pixmap); - } else { - TkpDrawHighlightBorder(tkwin, bgGC, bgGC, xBound, pixmap); - } + if (!TkpDrawEntryBorderAndFocus(entryPtr, pixmap, + (entryPtr->type == TK_SPINBOX))) { + xBound = entryPtr->highlightWidth; + if (entryPtr->relief != TK_RELIEF_FLAT) { + Tk_Draw3DRectangle(tkwin, pixmap, border, xBound, xBound, + Tk_Width(tkwin) - 2 * xBound, + Tk_Height(tkwin) - 2 * xBound, + entryPtr->borderWidth, entryPtr->relief); + } + if (xBound > 0) { + GC fgGC, bgGC; + + bgGC = Tk_GCForColor(entryPtr->highlightBgColorPtr, pixmap); + if (entryPtr->flags & GOT_FOCUS) { + fgGC = Tk_GCForColor(entryPtr->highlightColorPtr, pixmap); + TkpDrawHighlightBorder(tkwin, fgGC, bgGC, xBound, pixmap); + } else { + TkpDrawHighlightBorder(tkwin, bgGC, bgGC, xBound, pixmap); + } + } } /* diff --git a/generic/tkEntry.h b/generic/tkEntry.h new file mode 100644 index 0000000..3bb2f1d --- /dev/null +++ b/generic/tkEntry.h @@ -0,0 +1,307 @@ +/* + * tkEntry.h -- + * + * This module defined the structures for the Entry & SpinBox widgets. + * + * See the file "license.terms" for information on usage and redistribution + * of this file, and for a DISCLAIMER OF ALL WARRANTIES. + * + * Copyright (c) 2002 Apple Computer, Inc. + * + */ + +#ifndef _TKENTRY +#define _TKENTRY + +#ifndef _TKINT +#include "tkInt.h" +#endif + +#ifdef BUILD_tk +# undef TCL_STORAGE_CLASS +# define TCL_STORAGE_CLASS DLLEXPORT +#endif + +enum EntryType { + TK_ENTRY, TK_SPINBOX +}; + +/* + * A data structure of the following type is kept for each Entry + * widget managed by this file: + */ + +typedef struct { + Tk_Window tkwin; /* Window that embodies the entry. NULL + * means that the window has been destroyed + * but the data structures haven't yet been + * cleaned up.*/ + Display *display; /* Display containing widget. Used, among + * other things, so that resources can be + * freed even after tkwin has gone away. */ + Tcl_Interp *interp; /* Interpreter associated with entry. */ + Tcl_Command widgetCmd; /* Token for entry's widget command. */ + Tk_OptionTable optionTable; /* Table that defines configuration options + * available for this widget. */ + enum EntryType type; /* Specialized type of Entry widget */ + + /* + * Fields that are set by widget commands other than "configure". + */ + + CONST char *string; /* Pointer to storage for string; + * NULL-terminated; malloc-ed. */ + int insertPos; /* Character index before which next typed + * character will be inserted. */ + + /* + * Information about what's selected, if any. + */ + + int selectFirst; /* Character index of first selected + * character (-1 means nothing selected. */ + int selectLast; /* Character index just after last selected + * character (-1 means nothing selected. */ + int selectAnchor; /* Fixed end of selection (i.e. "select to" + * operation will use this as one end of the + * selection). */ + + /* + * Information for scanning: + */ + + int scanMarkX; /* X-position at which scan started (e.g. + * button was pressed here). */ + int scanMarkIndex; /* Character index of character that was at + * left of window when scan started. */ + + /* + * Configuration settings that are updated by Tk_ConfigureWidget. + */ + + Tk_3DBorder normalBorder; /* Used for drawing border around whole + * window, plus used for background. */ + Tk_3DBorder disabledBorder; /* Used for drawing border around whole + * window in disabled state, plus used for + * background. */ + Tk_3DBorder readonlyBorder; /* Used for drawing border around whole + * window in readonly state, plus used for + * background. */ + int borderWidth; /* Width of 3-D border around window. */ + Tk_Cursor cursor; /* Current cursor for window, or None. */ + int exportSelection; /* Non-zero means tie internal entry selection + * to X selection. */ + Tk_Font tkfont; /* Information about text font, or NULL. */ + XColor *fgColorPtr; /* Text color in normal mode. */ + XColor *dfgColorPtr; /* Text color in disabled mode. */ + XColor *highlightBgColorPtr;/* Color for drawing traversal highlight + * area when highlight is off. */ + XColor *highlightColorPtr; /* Color for drawing traversal highlight. */ + int highlightWidth; /* Width in pixels of highlight to draw + * around widget when it has the focus. + * <= 0 means don't draw a highlight. */ + Tk_3DBorder insertBorder; /* Used to draw vertical bar for insertion + * cursor. */ + int insertBorderWidth; /* Width of 3-D border around insert cursor. */ + int insertOffTime; /* Number of milliseconds cursor should spend + * in "off" state for each blink. */ + int insertOnTime; /* Number of milliseconds cursor should spend + * in "on" state for each blink. */ + int insertWidth; /* Total width of insert cursor. */ + Tk_Justify justify; /* Justification to use for text within + * window. */ + int relief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ + Tk_3DBorder selBorder; /* Border and background for selected + * characters. */ + int selBorderWidth; /* Width of border around selection. */ + XColor *selFgColorPtr; /* Foreground color for selected text. */ + int state; /* Normal or disabled. Entry is read-only + * when disabled. */ + char *textVarName; /* Name of variable (malloc'ed) or NULL. + * If non-NULL, entry's string tracks the + * contents of this variable and vice versa. */ + char *takeFocus; /* Value of -takefocus option; not used in + * the C code, but used by keyboard traversal + * scripts. Malloc'ed, but may be NULL. */ + int prefWidth; /* Desired width of window, measured in + * average characters. */ + char *scrollCmd; /* Command prefix for communicating with + * scrollbar(s). Malloc'ed. NULL means + * no command to issue. */ + char *showChar; /* Value of -show option. If non-NULL, first + * character is used for displaying all + * characters in entry. Malloc'ed. + * This is only used by the Entry widget. */ + + /* + * Fields whose values are derived from the current values of the + * configuration settings above. + */ + + CONST char *displayString; /* String to use when displaying. This may + * be a pointer to string, or a pointer to + * malloced memory with the same character + * length as string but whose characters + * are all equal to showChar. */ + int numBytes; /* Length of string in bytes. */ + int numChars; /* Length of string in characters. Both + * string and displayString have the same + * character length, but may have different + * byte lengths due to being made from + * different UTF-8 characters. */ + int numDisplayBytes; /* Length of displayString in bytes. */ + int inset; /* Number of pixels on the left and right + * sides that are taken up by XPAD, borderWidth + * (if any), and highlightWidth (if any). */ + Tk_TextLayout textLayout; /* Cached text layout information. */ + int layoutX, layoutY; /* Origin for layout. */ + int leftX; /* X position at which character at leftIndex + * is drawn (varies depending on justify). */ + int leftIndex; /* Character index of left-most character + * visible in window. */ + Tcl_TimerToken insertBlinkHandler; + /* Timer handler used to blink cursor on and + * off. */ + GC textGC; /* For drawing normal text. */ + GC selTextGC; /* For drawing selected text. */ + GC highlightGC; /* For drawing traversal highlight. */ + int avgWidth; /* Width of average character. */ + int xWidth; /* Extra width to reserve for widget. + * Used by spinboxes for button space. */ + int flags; /* Miscellaneous flags; see below for + * definitions. */ + + int validate; /* Non-zero means try to validate */ + char *validateCmd; /* Command prefix to use when invoking + * validate command. NULL means don't + * invoke commands. Malloc'ed. */ + char *invalidCmd; /* Command called when a validation returns 0 + * (successfully fails), defaults to {}. */ + +} Entry; + +/* + * A data structure of the following type is kept for each spinbox + * widget managed by this file: + */ + +typedef struct { + Entry entry; /* A pointer to the generic entry structure. + * This must be the first element of the + * Spinbox. */ + + /* + * Spinbox specific configuration settings. + */ + + Tk_3DBorder activeBorder; /* Used for drawing border around active + * buttons. */ + Tk_3DBorder buttonBorder; /* Used for drawing border around buttons. */ + Tk_Cursor bCursor; /* cursor for buttons, or None. */ + int bdRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ + int buRelief; /* 3-D effect: TK_RELIEF_RAISED, etc. */ + char *command; /* Command to invoke for spin buttons. + * NULL means no command to issue. */ + + /* + * Spinbox specific fields for use with configuration settings above. + */ + + int wrap; /* whether to wrap around when spinning */ + + int selElement; /* currently selected control */ + int curElement; /* currently mouseover control */ + + int repeatDelay; /* repeat delay */ + int repeatInterval; /* repeat interval */ + + double fromValue; /* Value corresponding to left/top of dial */ + double toValue; /* Value corresponding to right/bottom + * of dial */ + double increment; /* If > 0, all values are rounded to an + * even multiple of this value. */ + char *formatBuf; /* string into which to format value. + * Malloc'ed. */ + char *reqFormat; /* Sprintf conversion specifier used for the + * value that the users requests. Malloc'ed. */ + char *valueFormat; /* Sprintf conversion specifier used for + * the value. */ + char digitFormat[10]; /* Sprintf conversion specifier computed from + * digits and other information; used for + * the value. */ + + char *valueStr; /* Values List. Malloc'ed. */ + Tcl_Obj *listObj; /* Pointer to the list object being used */ + int eIndex; /* Holds the current index into elements */ + int nElements; /* Holds the current count of elements */ + +} Spinbox; + +/* + * Assigned bits of "flags" fields of Entry structures, and what those + * bits mean: + * + * REDRAW_PENDING: Non-zero means a DoWhenIdle handler has + * already been queued to redisplay the entry. + * BORDER_NEEDED: Non-zero means 3-D border must be redrawn + * around window during redisplay. Normally + * only text portion needs to be redrawn. + * CURSOR_ON: Non-zero means insert cursor is displayed at + * present. 0 means it isn't displayed. + * GOT_FOCUS: Non-zero means this window has the input + * focus. + * UPDATE_SCROLLBAR: Non-zero means scrollbar should be updated + * during next redisplay operation. + * GOT_SELECTION: Non-zero means we've claimed the selection. + * ENTRY_DELETED: This entry has been effectively destroyed. + * VALIDATING: Non-zero means we are in a validateCmd + * VALIDATE_VAR: Non-zero means we are attempting to validate + * the entry's textvariable with validateCmd + * VALIDATE_ABORT: Non-zero if validatecommand signals an abort + * for current procedure and make no changes + * ENTRY_VAR_TRACED: Non-zero if a var trace is set. + */ + +#define REDRAW_PENDING 1 +#define BORDER_NEEDED 2 +#define CURSOR_ON 4 +#define GOT_FOCUS 8 +#define UPDATE_SCROLLBAR 0x10 +#define GOT_SELECTION 0x20 +#define ENTRY_DELETED 0x40 +#define VALIDATING 0x80 +#define VALIDATE_VAR 0x100 +#define VALIDATE_ABORT 0x200 +#define ENTRY_VAR_TRACED 0x400 + +/* + * The following enum is used to define a type for the -state option + * of the Entry widget. These values are used as indices into the + * string table below. + */ + +enum state { + STATE_DISABLED, STATE_NORMAL, STATE_READONLY +}; + +/* + * This is the element index corresponding to the strings in selElementNames. + * If you modify them, you must modify the numbers here. + */ + +enum selelement { + SEL_NONE, SEL_BUTTONDOWN, SEL_BUTTONUP, SEL_NULL, SEL_ENTRY +}; + +/* + * Declaration of procedures used in the implementation of the native side + * of the Entry widget. + */ + +int TkpDrawEntryBorderAndFocus(Entry *entryPtr, Drawable d, int isSpinbox); +int TkpDrawSpinboxButtons(Spinbox *sbPtr, Drawable d); + +# undef TCL_STORAGE_CLASS +# define TCL_STORAGE_CLASS DLLIMPORT + +#endif /* _TKBUTTON */ diff --git a/macosx/Wish.pbproj/jingham.pbxuser b/macosx/Wish.pbproj/jingham.pbxuser index 7deb7ad..79685a9 100644 --- a/macosx/Wish.pbproj/jingham.pbxuser +++ b/macosx/Wish.pbproj/jingham.pbxuser @@ -1,23 +1,879 @@ // !$*UTF8*$! { + 4C26BFE606AF8D9A00889141 = { + fileReference = F5375551016C376E01DC9062; + functionName = "TkMacOSXSetUpCGContext()"; + isa = PBXFileBreakpoint; + lineNumber = 1730; + state = 2; + }; + 4C26BFE806AF8E8600889141 = { + fileReference = F5375551016C376E01DC9062; + functionName = "TkMacOSXReleaseCGContext()"; + isa = PBXFileBreakpoint; + lineNumber = 1833; + state = 2; + }; + 4CFCC13905E175AD00686F63 = { + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; + isa = PBXSourceControlManager; + scmConfiguration = { + }; + scmType = scm.cvs; + }; + 4CFCC13A05E175AD00686F63 = { + indexTemplatePath = ""; + isa = PBXCodeSenseManager; + usesDefaults = 1; + wantsCodeCompletion = 1; + wantsCodeCompletionAutoSuggestions = 0; + wantsCodeCompletionCaseSensitivity = 1; + wantsCodeCompletionListAlways = 1; + wantsCodeCompletionOnlyMatchingItems = 1; + wantsCodeCompletionParametersIncluded = 1; + wantsCodeCompletionPlaceholdersInserted = 1; + wantsCodeCompletionTabCompletes = 1; + wantsIndex = 1; + }; F537552A016C352C01DC9062 = { activeBuildStyle = F537552C016C352C01DC9062; activeExecutable = F9B92F14047876F1006F146B; - activeTarget = F53756A0016C4DD401DC9062; + activeTarget = F53755DF016C38D201DC9062; + addToTargets = ( + F53755DF016C38D201DC9062, + ); breakpoints = ( + 4C26BFE606AF8D9A00889141, + 4C26BFE806AF8E8600889141, ); + codeSenseManager = 4CFCC13A05E175AD00686F63; executables = ( F9B92F14047876F1006F146B, ); perUserDictionary = { - PBXPerProjectTemplateStateSaveDate = 79872368; - PBXWorkspaceStateSaveDate = 79872368; + PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; + PBXFileTableDataSourceColumnWidthsKey = ( + 20, + 280, + 20, + 55, + 43, + 43, + 20, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFileDataSource_FiletypeID, + PBXFileDataSource_Filename_ColumnID, + PBXFileDataSource_Built_ColumnID, + PBXFileDataSource_ObjectSize_ColumnID, + PBXFileDataSource_Errors_ColumnID, + PBXFileDataSource_Warnings_ColumnID, + PBXFileDataSource_Target_ColumnID, + ); + }; + PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = { + PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; + PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID; + PBXFileTableDataSourceColumnWidthsKey = ( + 196.2974, + 198.2085, + ); + PBXFileTableDataSourceColumnsKey = ( + PBXFindDataSource_MessageID, + PBXFindDataSource_LocationID, + ); + }; + PBXPerProjectTemplateStateSaveDate = 133417037; + PBXPrepackagedSmartGroups_v2 = ( + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + activationKey = OldTargetSmartGroup; + clz = PBXTargetSmartGroup; + description = "Displays all targets of the project."; + globalID = 1C37FABC04509CD000000102; + name = Targets; + preferences = { + image = Targets; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXTargetSmartGroup2; + description = "Displays all targets of the project as well as nested build phases."; + globalID = 1C37FBAC04509CD000000102; + name = Targets; + preferences = { + image = Targets; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXExecutablesSmartGroup; + description = "Displays all executables of the project."; + globalID = 1C37FAAC04509CD000000102; + name = Executables; + preferences = { + image = Executable; + }; + }, + { + " PBXTransientLocationAtTop " = bottom; + absolutePathToBundle = ""; + clz = PBXErrorsWarningsSmartGroup; + description = "Displays files with errors or warnings."; + globalID = 1C08E77C0454961000C914BD; + name = "Errors and Warnings"; + preferences = { + fnmatch = ""; + image = WarningsErrors; + recursive = 1; + regex = ""; + root = ""; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXFilenameSmartGroup; + description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; + globalID = 1CC0EA4004350EF90044410B; + name = "Implementation Files"; + preferences = { + canSave = 1; + fnmatch = ""; + image = SmartFolder; + isLeaf = 0; + recursive = 1; + regex = "?*\\.[mcMC]"; + root = ""; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXFilenameSmartGroup; + description = "This group displays Interface Builder NIB Files."; + globalID = 1CC0EA4004350EF90041110B; + name = "NIB Files"; + preferences = { + canSave = 1; + fnmatch = "*.nib"; + image = SmartFolder; + isLeaf = 0; + recursive = 1; + regex = ""; + root = ""; + }; + }, + { + PBXTransientLocationAtTop = no; + absolutePathToBundle = ""; + clz = PBXFindSmartGroup; + description = "Displays Find Results."; + globalID = 1C37FABC05509CD000000102; + name = "Find Results"; + preferences = { + image = spyglass; + }; + }, + { + PBXTransientLocationAtTop = no; + absolutePathToBundle = ""; + clz = PBXBookmarksSmartGroup; + description = "Displays Project Bookmarks."; + globalID = 1C37FABC05539CD112110102; + name = Bookmarks; + preferences = { + image = Bookmarks; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = XCSCMSmartGroup; + description = "Displays files with interesting SCM status."; + globalID = E2644B35053B69B200211256; + name = SCM; + preferences = { + image = PBXRepository; + isLeaf = 0; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXSymbolsSmartGroup; + description = "Displays all symbols for the project."; + globalID = 1C37FABC04509CD000100104; + name = "Project Symbols"; + preferences = { + image = ProjectSymbols; + isLeaf = 1; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXFilenameSmartGroup; + description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; + globalID = PBXTemplateMarker; + name = "Simple Filter SmartGroup"; + preferences = { + canSave = 1; + fnmatch = "*.nib"; + image = SmartFolder; + isLeaf = 0; + recursive = 1; + regex = ""; + root = ""; + }; + }, + { + PBXTransientLocationAtTop = bottom; + absolutePathToBundle = ""; + clz = PBXFilenameSmartGroup; + description = "Filters items in a given group (potentially recursively) based on matching the name with the regular expression of the filter."; + globalID = PBXTemplateMarker; + name = "Simple Regular Expression SmartGroup"; + preferences = { + canSave = 1; + fnmatch = ""; + image = SmartFolder; + isLeaf = 0; + recursive = 1; + regex = "?*\\.[mcMC]"; + root = ""; + }; + }, + { + PBXTransientLocationAtTop = bottom; + clz = XDDesignSmartGroup; + description = "Displays Xdesign models"; + globalID = 2E4A936305E6979E00701470; + name = Design; + preferences = { + image = Design; + isLeaf = 0; + }; + }, + ); + PBXWorkspaceContents = ( + { + PBXProjectWorkspaceModule_StateKey_Rev39 = { + PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { + BoundsStr = "{{0, 0}, {216, 426}}"; + Rows = ( + ); + VisibleRectStr = "{{0, 0}, {216, 426}}"; + }; + PBXProjectWorkspaceModule_EditorOpen = false; + PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { + PBXSplitModuleInNavigatorKey = { + SplitCount = 1; + }; + }; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + PBXProjectWorkspaceModule_SGTM_Geometry = { + _collapsingFrameDimension = 418; + _indexOfCollapsedView = 1; + _percentageOfCollapsedView = 0.6966667; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {413, 422}}", + ); + }; + }; + PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {231, 443}}"; + PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}"; + PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {231, 443}}"; + PBXProjectWorkspaceModule_SGTM = { + PBXBottomSmartGroupGIDs = ( + 1C37FBAC04509CD000000102, + 1C37FAAC04509CD000000102, + 1C08E77C0454961000C914BD, + 1CC0EA4004350EF90044410B, + 1CC0EA4004350EF90041110B, + 1C37FABC05509CD000000102, + 1C37FABC05539CD112110102, + E2644B35053B69B200211256, + 1C37FABC04509CD000100104, + ); + PBXSmartGroupTreeModuleColumnData = { + PBXSmartGroupTreeModuleColumnWidthsKey = ( + 396, + ); + PBXSmartGroupTreeModuleColumnsKey_v4 = ( + MainColumn, + ); + }; + PBXSmartGroupTreeModuleOutlineStateKey_v7 = { + PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( + F537552B016C352C01DC9062, + F537552E016C376E01DC9062, + F5375530016C376E01DC9062, + F537553C016C376E01DC9062, + F537553D016C376E01DC9062, + F5375546016C376E01DC9062, + F53755CC016C389901DC9062, + F53755CD016C389901DC9062, + 1C37FABC05509CD000000102, + ); + PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( + ( + 107, + 94, + 85, + 0, + ), + ); + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 1650}, {396, 404}}"; + }; + PBXTopSmartGroupGIDs = ( + ); + }; + }; + }, + ); + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXBuildResultsModule" = { + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugBreakpointsModule" = { + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { + Debugger = { + HorizontalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {301, 283}}", + "{{301, 0}, {504, 283}}", + ); + }; + VerticalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {805, 283}}", + "{{0, 283}, {805, 309}}", + ); + }; + }; + LauncherConfigVersion = 8; + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugSingleDataValueViewModule" = { + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { + PBXSplitModuleInNavigatorKey = { + SplitCount = 1; + }; + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectFindModule" = { + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { + PBXProjectWorkspaceModule_StateKey_Rev39 = { + PBXProjectWorkspaceModule_DataSourceSelectionKey_Rev6 = { + BoundsStr = "{{0, 0}, {216, 426}}"; + Rows = ( + ); + VisibleRectStr = "{{0, 0}, {216, 426}}"; + }; + PBXProjectWorkspaceModule_EditorOpen = false; + PBXProjectWorkspaceModule_EmbeddedNavigatorGroup = { + PBXSplitModuleInNavigatorKey = { + SplitCount = 1; + }; + }; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + PBXProjectWorkspaceModule_SGTM_Geometry = { + _collapsingFrameDimension = 418; + _indexOfCollapsedView = 1; + _percentageOfCollapsedView = 0.6966667; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {413, 422}}", + ); + }; + }; + PBXProjectWorkspaceModule_OldDetailFrame = "{{0, 0}, {231, 443}}"; + PBXProjectWorkspaceModule_OldEditorFrame = "{{0, 0}, {750, 480}}"; + PBXProjectWorkspaceModule_OldSuperviewFrame = "{{182, 0}, {231, 443}}"; + PBXProjectWorkspaceModule_SGTM = { + PBXBottomSmartGroupGIDs = ( + 1C37FBAC04509CD000000102, + 1C37FAAC04509CD000000102, + 1C08E77C0454961000C914BD, + 1CC0EA4004350EF90044410B, + 1CC0EA4004350EF90041110B, + 1C37FABC05509CD000000102, + 1C37FABC05539CD112110102, + E2644B35053B69B200211256, + 1C37FABC04509CD000100104, + ); + PBXSmartGroupTreeModuleColumnData = { + PBXSmartGroupTreeModuleColumnWidthsKey = ( + 396, + ); + PBXSmartGroupTreeModuleColumnsKey_v4 = ( + MainColumn, + ); + }; + PBXSmartGroupTreeModuleOutlineStateKey_v7 = { + PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( + F537552B016C352C01DC9062, + F537553C016C376E01DC9062, + F537553D016C376E01DC9062, + F5375546016C376E01DC9062, + F53755CC016C389901DC9062, + F53755CD016C389901DC9062, + 1C37FABC05509CD000000102, + ); + PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( + ( + 31, + 16, + 7, + 0, + ), + ); + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 400}, {396, 404}}"; + }; + PBXTopSmartGroupGIDs = ( + ); + }; + }; + }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXRunSessionModule" = { + LauncherConfigVersion = 3; + Runner = { + HorizontalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {365, 167}}", + "{{0, 176}, {365, 267}}", + ); + }; + VerticalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {405, 443}}", + "{{414, 0}, {514, 443}}", + ); + }; + }; + }; + PBXWorkspaceGeometries = ( + { + Frame = "{{0, 0}, {413, 422}}"; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + }; + RubberWindowFrame = "380 282 413 464 0 0 1024 746 "; + }, + ); + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = { + Frame = "{{0, 0}, {719, 443}}"; + PBXModuleWindowStatusBarHidden = YES; + RubberWindowFrame = "280 83 719 464 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugBreakpointsModule" = { + BreakpointsTreeTableConfiguration = ( + enabledColumn, + 16, + breakpointColumn, + 282.583, + ); + Frame = "{{0, 0}, {208, 495}}"; + PBXModuleWindowStatusBarHidden = YES; + RubberWindowFrame = "761 230 208 516 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { + Frame = "{{0, 0}, {500, 258}}"; + RubberWindowFrame = "469 103 500 300 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { + DebugConsoleDrawerSize = "{100, 120}"; + DebugConsoleVisible = None; + DebugConsoleWindowFrame = "{{65, 452}, {959, 294}}"; + DebugSTDIOWindowFrame = "{{469, 103}, {500, 300}}"; + Frame = "{{0, 0}, {805, 592}}"; + RubberWindowFrame = "145 107 805 634 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugSingleDataValueViewModule" = { + Frame = "{{0, 0}, {400, 657}}"; + RubberWindowFrame = "35 16 400 699 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { + Frame = "{{0, 0}, {597, 659}}"; + PBXModuleWindowStatusBarHidden = YES; + RubberWindowFrame = "253 66 597 680 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectFindModule" = { + Frame = "{{0, 0}, {654, 460}}"; + RubberWindowFrame = "293 148 654 502 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { + Frame = "{{0, 0}, {413, 422}}"; + PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + }; + RubberWindowFrame = "380 282 413 464 0 0 1024 746 "; + }; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = { + Frame = "{{0, 0}, {745, 443}}"; + PBXModuleWindowStatusBarHidden = YES; + RubberWindowFrame = "254 127 745 464 0 0 1024 746 "; + }; + PBXWorkspaceStateSaveDate = 133417037; }; - projectwideBuildSettings = { + sourceControlManager = 4CFCC13905E175AD00686F63; + userBuildSettings = { + OBJROOT = "${SRCROOT}/../../build/tk/"; SYMROOT = "${SRCROOT}/../../build/tk"; }; - wantsIndex = 1; - wantsSCM = -1; + }; + F5375540016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 7517}}"; + sepNavSelRange = "{9914, 0}"; + sepNavVisRect = "{{0, 3927}, {711, 449}}"; + sepNavWindowFrame = "{{180, 60}, {750, 534}}"; + }; + }; + F5375542016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 2267}}"; + sepNavSelRange = "{4985, 26}"; + sepNavVisRect = "{{0, 1790}, {711, 449}}"; + sepNavWindowFrame = "{{42, 186}, {750, 534}}"; + }; + }; + F537554A016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 22819}}"; + sepNavSelRange = "{5893, 16}"; + sepNavVisRect = "{{0, 4310}, {711, 449}}"; + sepNavWindowFrame = "{{65, 165}, {750, 534}}"; + }; + }; + F537554E016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 6761}}"; + sepNavSelRange = "{12868, 0}"; + sepNavVisRect = "{{0, 5874}, {711, 449}}"; + sepNavWindowFrame = "{{108, 212}, {750, 534}}"; + }; + }; + F5375550016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {819, 23267}}"; + sepNavSelRange = "{46489, 9}"; + sepNavVisRect = "{{0, 20155}, {819, 360}}"; + }; + }; + F5375551016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {558, 28671}}"; + sepNavSelRange = "{3970, 0}"; + sepNavVisRect = "{{0, 1641}, {558, 627}}"; + sepNavWindowFrame = "{{253, 34}, {597, 712}}"; + }; + }; + F5375553016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 4031}}"; + sepNavSelRange = "{4638, 20}"; + sepNavVisRect = "{{0, 2569}, {711, 449}}"; + sepNavWindowFrame = "{{19, 207}, {750, 534}}"; + }; + }; + F5375554016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {728, 32325}}"; + sepNavSelRange = "{34980, 12}"; + sepNavVisRect = "{{0, 13559}, {711, 449}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F5375556016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 3163}}"; + sepNavSelRange = "{3116, 0}"; + sepNavVisRect = "{{0, 1462}, {711, 449}}"; + sepNavWindowFrame = "{{22, 78}, {750, 534}}"; + }; + }; + F5375559016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 67157}}"; + sepNavSelRange = "{6813, 8}"; + sepNavVisRect = "{{0, 2947}, {711, 449}}"; + sepNavWindowFrame = "{{43, 66}, {750, 534}}"; + }; + }; + F537555C016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 11717}}"; + sepNavSelRange = "{6747, 0}"; + sepNavVisRect = "{{0, 2457}, {711, 449}}"; + sepNavWindowFrame = "{{115, 97}, {750, 534}}"; + }; + }; + F537555D016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 16491}}"; + sepNavSelRange = "{8857, 0}"; + sepNavVisRect = "{{0, 3812}, {711, 428}}"; + }; + }; + F537555E016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 3639}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {711, 449}}"; + sepNavWindowFrame = "{{65, 165}, {750, 534}}"; + }; + }; + F5375560016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 15959}}"; + sepNavSelRange = "{10001, 4}"; + sepNavVisRect = "{{0, 3955}, {711, 449}}"; + sepNavWindowFrame = "{{19, 207}, {750, 534}}"; + }; + }; + F5375562016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 19669}}"; + sepNavSelRange = "{6075, 0}"; + sepNavVisRect = "{{0, 3021}, {711, 449}}"; + sepNavWindowFrame = "{{296, 212}, {750, 534}}"; + }; + }; + F5375565016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 9687}}"; + sepNavSelRange = "{10015, 19}"; + sepNavVisRect = "{{0, 4314}, {711, 449}}"; + sepNavWindowFrame = "{{134, 102}, {750, 534}}"; + }; + }; + F5375567016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 79127}}"; + sepNavSelRange = "{2012, 27}"; + sepNavVisRect = "{{0, 805}, {711, 449}}"; + sepNavWindowFrame = "{{111, 123}, {750, 534}}"; + }; + }; + F537556B016C37A601DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 22763}}"; + sepNavSelRange = "{23942, 9}"; + sepNavVisRect = "{{0, 10195}, {711, 449}}"; + sepNavWindowFrame = "{{114, 212}, {750, 534}}"; + }; + }; + F5375574016C37A601DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 16477}}"; + sepNavSelRange = "{23833, 9}"; + sepNavVisRect = "{{0, 10380}, {711, 449}}"; + sepNavWindowFrame = "{{157, 81}, {750, 534}}"; + }; + }; + F537557A016C37A601DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {1910, 4213}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {711, 449}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F5375580016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {766, 20075}}"; + sepNavSelRange = "{29382, 0}"; + sepNavVisRect = "{{0, 14163}, {766, 277}}"; + }; + }; + F5375585016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 25115}}"; + sepNavSelRange = "{50483, 15}"; + sepNavVisRect = "{{0, 20194}, {711, 449}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F5375587016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {691, 80597}}"; + sepNavSelRange = "{73464, 0}"; + sepNavVisRect = "{{0, 30764}, {691, 633}}"; + sepNavWindowFrame = "{{166, 0}, {730, 718}}"; + }; + }; + F537558E016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {766, 24905}}"; + sepNavSelRange = "{3562, 0}"; + sepNavVisRect = "{{0, 1859}, {766, 272}}"; + }; + }; + F537558F016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 15497}}"; + sepNavSelRange = "{11262, 14}"; + sepNavVisRect = "{{0, 4732}, {711, 449}}"; + sepNavWindowFrame = "{{42, 186}, {750, 534}}"; + }; + }; + F5375591016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 29007}}"; + sepNavSelRange = "{31963, 9}"; + sepNavVisRect = "{{0, 16919}, {711, 449}}"; + sepNavWindowFrame = "{{65, 165}, {750, 534}}"; + }; + }; + F5375595016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 12375}}"; + sepNavSelRange = "{6236, 36}"; + sepNavVisRect = "{{0, 3185}, {711, 449}}"; + sepNavWindowFrame = "{{203, 39}, {750, 534}}"; + }; + }; + F5375596016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 65351}}"; + sepNavSelRange = "{60305, 0}"; + sepNavVisRect = "{{0, 25118}, {711, 449}}"; + sepNavWindowFrame = "{{216, 212}, {750, 534}}"; + }; + }; + F5375598016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 21307}}"; + sepNavSelRange = "{40237, 196}"; + sepNavVisRect = "{{0, 19495}, {711, 449}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F537559A016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 15063}}"; + sepNavSelRange = "{19488, 9}"; + sepNavVisRect = "{{0, 9130}, {711, 449}}"; + sepNavWindowFrame = "{{65, 165}, {750, 534}}"; + }; + }; + F537559C016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 27971}}"; + sepNavSelRange = "{44345, 12}"; + sepNavVisRect = "{{0, 19355}, {711, 449}}"; + sepNavWindowFrame = "{{134, 102}, {750, 534}}"; + }; + }; + F53755A0016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 22609}}"; + sepNavSelRange = "{33749, 0}"; + sepNavVisRect = "{{0, 14636}, {711, 449}}"; + sepNavWindowFrame = "{{134, 102}, {750, 534}}"; + }; + }; + F53755A8016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 48859}}"; + sepNavSelRange = "{56455, 0}"; + sepNavVisRect = "{{0, 25823}, {711, 449}}"; + sepNavWindowFrame = "{{19, 207}, {750, 534}}"; + }; + }; + F53755AB016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 50959}}"; + sepNavSelRange = "{12728, 16}"; + sepNavVisRect = "{{0, 3941}, {711, 449}}"; + sepNavWindowFrame = "{{157, 81}, {750, 534}}"; + }; + }; + F53755B0016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 14573}}"; + sepNavSelRange = "{13559, 12}"; + sepNavVisRect = "{{0, 6837}, {711, 449}}"; + sepNavWindowFrame = "{{135, 102}, {750, 534}}"; + }; + }; + F53755B2016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {766, 23408}}"; + sepNavSelRange = "{20282, 0}"; + sepNavVisRect = "{{0, 9139}, {766, 273}}"; + }; + }; + F53755B4016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 9281}}"; + sepNavSelRange = "{14480, 21}"; + sepNavVisRect = "{{0, 7749}, {711, 449}}"; + sepNavWindowFrame = "{{180, 60}, {750, 534}}"; + }; + }; + F53755BF016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {766, 73863}}"; + sepNavSelRange = "{54794, 0}"; + sepNavVisRect = "{{0, 23655}, {766, 277}}"; + }; + }; + F53755C8016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 44841}}"; + sepNavSelRange = "{64393, 13}"; + sepNavVisRect = "{{0, 29253}, {711, 449}}"; + sepNavWindowFrame = "{{157, 81}, {750, 534}}"; + }; + }; + F53755D2016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 9491}}"; + sepNavSelRange = "{5074, 20}"; + sepNavVisRect = "{{0, 1864}, {711, 449}}"; + sepNavWindowFrame = "{{70, 164}, {750, 534}}"; + }; + }; + F53755D5016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 17009}}"; + sepNavSelRange = "{20859, 9}"; + sepNavVisRect = "{{0, 7885}, {711, 449}}"; + sepNavWindowFrame = "{{226, 18}, {750, 534}}"; + }; + }; + F53755D9016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {766, 1189}}"; + sepNavSelRange = "{1660, 0}"; + sepNavVisRect = "{{0, 912}, {766, 277}}"; + }; }; F53755DF016C38D201DC9062 = { activeExec = 0; @@ -31,6 +887,29 @@ F548F8CE0313CEF0016F146B = { activeExec = 0; }; + F5C8865B017D625C01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 31583}}"; + sepNavSelRange = "{1450, 27}"; + sepNavVisRect = "{{0, 553}, {711, 428}}"; + sepNavWindowFrame = "{{111, 123}, {750, 534}}"; + }; + }; + F5DF0935016CD3F901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 5823}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 2446}, {711, 428}}"; + }; + }; + F5DF093D016CD3F901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 5935}}"; + sepNavSelRange = "{8810, 14}"; + sepNavVisRect = "{{0, 4152}, {711, 449}}"; + sepNavWindowFrame = "{{212, 193}, {750, 534}}"; + }; + }; F9B92F14047876F1006F146B = { activeArgIndex = 2147483647; activeArgIndices = ( @@ -39,12 +918,17 @@ ); configStateDict = { }; + cppStopOnCatchEnabled = 0; + cppStopOnThrowEnabled = 0; + customDataFormattersEnabled = 1; debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); isa = PBXExecutable; + libgmallocEnabled = 0; name = Wish; shlibInfoDictList = ( ); diff --git a/macosx/Wish.pbproj/project.pbxproj b/macosx/Wish.pbproj/project.pbxproj index 5532c9c..7a508d5 100644 --- a/macosx/Wish.pbproj/project.pbxproj +++ b/macosx/Wish.pbproj/project.pbxproj @@ -3,13 +3,15 @@ archiveVersion = 1; classes = { }; - objectVersion = 38; + objectVersion = 39; objects = { 4C3B4CF6040B18B200C916F0 = { fileEncoding = 30; isa = PBXFileReference; + lastKnownFileType = sourcecode.rez; path = tkMacOSXAETE.r; refType = 4; + sourceTree = ""; }; 4C3B4CF7040B18B200C916F0 = { fileRef = 4C3B4CF6040B18B200C916F0; @@ -17,6 +19,49 @@ settings = { }; }; + 4C9404EF07F3C84D004B0BCE = { + containerPortal = F537552A016C352C01DC9062; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = F548F8CE0313CEF0016F146B; + remoteInfo = TkStubLibrary; + }; + 4C9404F007F3C84D004B0BCE = { + containerPortal = F537552A016C352C01DC9062; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = F53755DF016C38D201DC9062; + remoteInfo = TkLibrary; + }; + 4C94055707F3C880004B0BCE = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = tkMacOSXEntry.c; + refType = 4; + sourceTree = ""; + }; + 4C94055807F3C880004B0BCE = { + fileRef = 4C94055707F3C880004B0BCE; + isa = PBXBuildFile; + settings = { + }; + }; + 4C94055B07F3C897004B0BCE = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = tkEntry.h; + path = "/Volumes/CodeBits/jingham/Tcl/Source-8-4/tk/generic/tkEntry.h"; + refType = 0; + sourceTree = ""; + }; + 4C94055C07F3C897004B0BCE = { + fileRef = 4C94055B07F3C897004B0BCE; + isa = PBXBuildFile; + settings = { + }; + }; //4C0 //4C1 //4C2 @@ -28,10 +73,12 @@ //F53 //F54 F50D96120196176E01DC9062 = { - isa = PBXFrameworkReference; + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; refType = 0; + sourceTree = ""; }; F50D96130196176E01DC9062 = { fileRef = F50D96120196176E01DC9062; @@ -127,16 +174,14 @@ buildActionMask = 2147483647; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "if [ \"${BUILD_STYLE}\" = \"Development\" ]; then\n\t# keep copy of debug library around, so that\n\t# Deployment build can be installed on top\n\t# of Development build without overwriting it\n\tcd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}\"\n\tcp -fp \"${PRODUCT_NAME}\" \"${PRODUCT_NAME}_debug\"\n\tln -fs \"Versions/Current/${PRODUCT_NAME}_debug\" ../..\n\tcp -fp \"libtkstub${FRAMEWORK_VERSION}.a\" \"libtkstub${FRAMEWORK_VERSION}g.a\"\n\n\t# force Deployment build to be relinked next time\n\tif [ -f \"${OBJROOT}/Deployment.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\" ]; then\n\t touch -t `date -r \\`expr \\\\\\`date +\"%s\"\\\\\\` + 30\\` +\"%Y%m%d%H%M.%S\"` \"${OBJROOT}/Deployment.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\"\n\tfi\nelse\n\t# force Development build to be relinked next time\n\tif [ -f \"${OBJROOT}/Development.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\" ]; then\n\t touch -t `date -r \\`expr \\\\\\`date +\"%s\"\\\\\\` + 30\\` +\"%Y%m%d%H%M.%S\"` \"${OBJROOT}/Development.build/${PROJECT_NAME}.build/${TARGET_NAME}.build/Objects-normal/LinkFileList\"\n\tfi\nfi\n\n# fixup Framework structure\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}\"\nln -fs `ls libtkstub* | sed -e \"s|.*|Versions/${FRAMEWORK_VERSION}/&|\"` ../..\nln -fs \"Versions/Current/tkConfig.sh\" ../..\nranlib libtkstub${FRAMEWORK_VERSION}*.a\n\n# create pkgIndex\n( echo \"if {[package vcompare [package provide Tcl] ${FRAMEWORK_VERSION}] != 0} { return }\" && \\\n echo \"package ifneeded Tk ${FRAMEWORK_VERSION} [list load [file join \\$dir .. .. Tk] Tk]\" \\\n) > \"Resources/Scripts/pkgIndex.tcl\""; }; F537552A016C352C01DC9062 = { + buildSettings = { + }; buildStyles = ( F537552C016C352C01DC9062, F537552D016C352C01DC9062, @@ -168,26 +213,30 @@ ); isa = PBXGroup; refType = 4; + sourceTree = ""; }; F537552C016C352C01DC9062 = { - buildRules = ( - ); buildSettings = { + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; OTHER_LDFLAGS = "\U0001-prebind"; TEMP_DIR = "${OBJROOT}/Development.build/$(PROJECT_NAME).build/$(TARGET_NAME).build"; UNSTRIPPED_PRODUCT = YES; + ZERO_LINK = YES; }; isa = PBXBuildStyle; name = Development; }; F537552D016C352C01DC9062 = { - buildRules = ( - ); buildSettings = { DEBUGGING_SYMBOLS = NO; + GCC_ENABLE_FIX_AND_CONTINUE = NO; OPTIMIZATION_CFLAGS = "-Os"; OTHER_LDFLAGS = "\U0001-prebind"; TEMP_DIR = "${OBJROOT}/Deployment.build/$(PROJECT_NAME).build/$(TARGET_NAME).build"; + ZERO_LINK = NO; }; isa = PBXBuildStyle; name = Deployment; @@ -200,9 +249,11 @@ isa = PBXGroup; name = Generic; refType = 4; + sourceTree = ""; }; F537552F016C376E01DC9062 = { children = ( + 4C94055B07F3C897004B0BCE, F5375569016C37A601DC9062, F537556A016C37A601DC9062, F537556B016C37A601DC9062, @@ -231,6 +282,7 @@ isa = PBXGroup; name = Headers; refType = 4; + sourceTree = ""; }; F5375530016C376E01DC9062 = { children = ( @@ -314,6 +366,7 @@ isa = PBXGroup; name = Source; refType = 4; + sourceTree = ""; }; F5375531016C376E01DC9062 = { children = ( @@ -323,6 +376,7 @@ isa = PBXGroup; name = Resources; refType = 4; + sourceTree = ""; }; F5375532016C376E01DC9062 = { children = ( @@ -335,35 +389,46 @@ isa = PBXGroup; name = "Resource Manager Resources"; refType = 4; + sourceTree = ""; }; F5375533016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.rez; path = tkAboutDlg.r; refType = 4; + sourceTree = ""; }; F5375535016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.rez; path = tkMacOSXCursors.r; refType = 4; + sourceTree = ""; }; F5375538016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.rez; path = tkMacOSXMenu.r; refType = 4; + sourceTree = ""; }; F537553A016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.rez; path = tkMacOSXXCursors.r; refType = 4; + sourceTree = ""; }; F537553B016C376E01DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.icns; path = Wish.icns; refType = 4; + sourceTree = ""; }; F537553C016C376E01DC9062 = { children = ( @@ -373,6 +438,7 @@ isa = PBXGroup; name = "MacOS X"; refType = 4; + sourceTree = ""; }; F537553D016C376E01DC9062 = { children = ( @@ -387,51 +453,67 @@ isa = PBXGroup; name = Headers; refType = 4; + sourceTree = ""; }; F537553E016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSX.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537553F016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXDebug.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375540016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXDefault.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375541016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXEvent.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375542016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXInt.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375543016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXPort.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375545016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; path = tkMacOSXWm.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375546016C376E01DC9062 = { children = ( + 4C94055707F3C880004B0BCE, F5375549016C376E01DC9062, F537554A016C376E01DC9062, F537554B016C376E01DC9062, @@ -465,859 +547,1112 @@ isa = PBXGroup; name = Source; refType = 4; + sourceTree = ""; }; F5375548016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkAppInit.c; path = ../unix/tkAppInit.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375549016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXBitmap.c; refType = 4; + sourceTree = ""; }; F537554A016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXButton.c; refType = 4; + sourceTree = ""; }; F537554B016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXClipboard.c; refType = 4; + sourceTree = ""; }; F537554C016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXColor.c; refType = 4; + sourceTree = ""; }; F537554D016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXConfig.c; refType = 4; + sourceTree = ""; }; F537554E016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXCursor.c; refType = 4; + sourceTree = ""; }; F537554F016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXDebug.c; refType = 4; + sourceTree = ""; }; F5375550016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXDialog.c; refType = 4; + sourceTree = ""; }; F5375551016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXDraw.c; refType = 4; + sourceTree = ""; }; F5375552016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXEmbed.c; refType = 4; + sourceTree = ""; }; F5375553016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXEvent.c; refType = 4; + sourceTree = ""; }; F5375554016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXFont.c; refType = 4; + sourceTree = ""; }; F5375555016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXHLEvents.c; refType = 4; + sourceTree = ""; }; F5375556016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXInit.c; refType = 4; + sourceTree = ""; }; F5375557016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyboard.c; refType = 4; + sourceTree = ""; }; F5375558016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXKeyEvent.c; refType = 4; + sourceTree = ""; }; F5375559016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenu.c; refType = 4; + sourceTree = ""; }; F537555A016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenubutton.c; refType = 4; + sourceTree = ""; }; F537555B016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXMenus.c; refType = 4; + sourceTree = ""; }; F537555C016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXMouseEvent.c; refType = 4; + sourceTree = ""; }; F537555D016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXNotify.c; refType = 4; + sourceTree = ""; }; F537555E016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXRegion.c; refType = 4; + sourceTree = ""; }; F5375560016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXScrlbr.c; refType = 4; + sourceTree = ""; }; F5375561016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXSend.c; refType = 4; + sourceTree = ""; }; F5375562016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXSubwindows.c; refType = 4; + sourceTree = ""; }; F5375563016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXTest.c; refType = 4; + sourceTree = ""; }; F5375565016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXWindowEvent.c; refType = 4; + sourceTree = ""; }; F5375567016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXWm.c; refType = 4; + sourceTree = ""; }; F5375568016C376E01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; path = tkMacOSXXStubs.c; refType = 4; + sourceTree = ""; }; F5375569016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = default.h; path = ../generic/default.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556A016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = ks_names.h; path = ../generic/ks_names.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556B016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tk.h; path = ../generic/tk.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556C016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tk3d.h; path = ../generic/tk3d.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556D016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkButton.h; path = ../generic/tkButton.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556E016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkCanvas.h; path = ../generic/tkCanvas.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537556F016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkColor.h; path = ../generic/tkColor.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375570016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkDecls.h; path = ../generic/tkDecls.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375571016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkFileFilter.h; path = ../generic/tkFileFilter.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375572016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkFont.h; path = ../generic/tkFont.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375573016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkInitScript.h; path = ../generic/tkInitScript.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375574016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkInt.h; path = ../generic/tkInt.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375575016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkIntDecls.h; path = ../generic/tkIntDecls.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375576016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkIntPlatDecls.h; path = ../generic/tkIntPlatDecls.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375577016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkIntXlibDecls.h; path = ../generic/tkIntXlibDecls.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375578016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkMenu.h; path = ../generic/tkMenu.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375579016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkMenubutton.h; path = ../generic/tkMenubutton.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557A016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkPlatDecls.h; path = ../generic/tkPlatDecls.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557B016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkPort.h; path = ../generic/tkPort.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557C016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkScale.h; path = ../generic/tkScale.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557D016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkScrollbar.h; path = ../generic/tkScrollbar.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557E016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkSelect.h; path = ../generic/tkSelect.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F537557F016C37A601DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = tkText.h; path = ../generic/tkText.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375580016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tk3d.c; path = ../generic/tk3d.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375581016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkArgv.c; path = ../generic/tkArgv.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375582016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkAtom.c; path = ../generic/tkAtom.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375583016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkBind.c; path = ../generic/tkBind.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375584016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkBitmap.c; path = ../generic/tkBitmap.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375585016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkButton.c; path = ../generic/tkButton.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375586016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvArc.c; path = ../generic/tkCanvArc.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375587016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvas.c; path = ../generic/tkCanvas.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375588016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvBmap.c; path = ../generic/tkCanvBmap.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375589016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvImg.c; path = ../generic/tkCanvImg.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558A016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvLine.c; path = ../generic/tkCanvLine.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558B016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvPoly.c; path = ../generic/tkCanvPoly.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558C016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvPs.c; path = ../generic/tkCanvPs.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558D016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvText.c; path = ../generic/tkCanvText.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558E016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvUtil.c; path = ../generic/tkCanvUtil.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537558F016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCanvWind.c; path = ../generic/tkCanvWind.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375590016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkClipboard.c; path = ../generic/tkClipboard.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375591016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCmds.c; path = ../generic/tkCmds.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375592016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkColor.c; path = ../generic/tkColor.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375593016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkConfig.c; path = ../generic/tkConfig.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375594016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkConsole.c; path = ../generic/tkConsole.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375595016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkCursor.c; path = ../generic/tkCursor.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375596016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkEntry.c; path = ../generic/tkEntry.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375597016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkError.c; path = ../generic/tkError.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375598016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkEvent.c; path = ../generic/tkEvent.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375599016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkFileFilter.c; path = ../generic/tkFileFilter.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559A016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkFocus.c; path = ../generic/tkFocus.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559B016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkFont.c; path = ../generic/tkFont.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559C016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkFrame.c; path = ../generic/tkFrame.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559D016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkGC.c; path = ../generic/tkGC.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559E016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkGeometry.c; path = ../generic/tkGeometry.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F537559F016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkGet.c; path = ../generic/tkGet.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A0016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkGrab.c; path = ../generic/tkGrab.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A1016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkGrid.c; path = ../generic/tkGrid.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A2016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImage.c; path = ../generic/tkImage.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A3016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImgBmap.c; path = ../generic/tkImgBmap.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A4016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImgGIF.c; path = ../generic/tkImgGIF.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A5016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImgPhoto.c; path = ../generic/tkImgPhoto.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A6016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImgPPM.c; path = ../generic/tkImgPPM.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A7016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkImgUtil.c; path = ../generic/tkImgUtil.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A8016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkListbox.c; path = ../generic/tkListbox.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755A9016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMacWinMenu.c; path = ../generic/tkMacWinMenu.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AA016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMain.c; path = ../generic/tkMain.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AB016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMenu.c; path = ../generic/tkMenu.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AC016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMenubutton.c; path = ../generic/tkMenubutton.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AD016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMenuDraw.c; path = ../generic/tkMenuDraw.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AE016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkMessage.c; path = ../generic/tkMessage.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755AF016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkObj.c; path = ../generic/tkObj.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B0016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkOldConfig.c; path = ../generic/tkOldConfig.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B1016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkOption.c; path = ../generic/tkOption.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B2016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkPack.c; path = ../generic/tkPack.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B3016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkPlace.c; path = ../generic/tkPlace.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B4016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkPointer.c; path = ../generic/tkPointer.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B5016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkRectOval.c; path = ../generic/tkRectOval.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B6016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkScale.c; path = ../generic/tkScale.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B7016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkScrollbar.c; path = ../generic/tkScrollbar.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B8016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkSelect.c; path = ../generic/tkSelect.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755B9016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkStubImg.c; path = ../generic/tkStubImg.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BA016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkStubInit.c; path = ../generic/tkStubInit.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BB016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkStubLib.c; path = ../generic/tkStubLib.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BC016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTest.c; path = ../generic/tkTest.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BD016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkText.c; path = ../generic/tkText.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BE016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextBTree.c; path = ../generic/tkTextBTree.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755BF016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextDisp.c; path = ../generic/tkTextDisp.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C0016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextImage.c; path = ../generic/tkTextImage.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C1016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextIndex.c; path = ../generic/tkTextIndex.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C2016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextMark.c; path = ../generic/tkTextMark.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C3016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextTag.c; path = ../generic/tkTextTag.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C4016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTextWind.c; path = ../generic/tkTextWind.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C5016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkTrig.c; path = ../generic/tkTrig.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C6016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkUtil.c; path = ../generic/tkUtil.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C7016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkVisual.c; path = ../generic/tkVisual.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C8016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkWindow.c; path = ../generic/tkWindow.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755C9016C389901DC9062 = { children = ( @@ -1328,20 +1663,25 @@ isa = PBXGroup; name = Unix; refType = 4; + sourceTree = ""; }; F53755CA016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkUnix3d.c; path = ../unix/tkUnix3d.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755CB016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkUnixScale.c; path = ../unix/tkUnixScale.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755CC016C389901DC9062 = { children = ( @@ -1351,6 +1691,7 @@ isa = PBXGroup; name = "X Emulation"; refType = 4; + sourceTree = ""; }; F53755CD016C389901DC9062 = { children = ( @@ -1367,69 +1708,88 @@ isa = PBXGroup; name = Headers; refType = 4; + sourceTree = ""; }; F53755CE016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = xbytes.h; path = ../xlib/xbytes.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755CF016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = cursorfont.h; path = ../xlib/X11/cursorfont.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D0016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = keysym.h; path = ../xlib/X11/keysym.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D1016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = keysymdef.h; path = ../xlib/X11/keysymdef.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D2016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = X.h; path = ../xlib/X11/X.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D3016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = Xatom.h; path = ../xlib/X11/Xatom.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D4016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = Xfuncproto.h; path = ../xlib/X11/Xfuncproto.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D5016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = Xlib.h; path = ../xlib/X11/Xlib.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D6016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; name = Xutil.h; path = ../xlib/X11/Xutil.h; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D7016C389901DC9062 = { children = ( @@ -1442,41 +1802,52 @@ isa = PBXGroup; name = Source; refType = 4; + sourceTree = ""; }; F53755D8016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = xcolors.c; path = ../xlib/xcolors.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755D9016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = xdraw.c; path = ../xlib/xdraw.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755DA016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = xgc.c; path = ../xlib/xgc.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755DB016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = ximage.c; path = ../xlib/ximage.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755DC016C389901DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = xutil.c; path = ../xlib/xutil.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F53755DD016C38D201DC9062 = { children = ( @@ -1487,11 +1858,14 @@ isa = PBXGroup; name = Products; refType = 4; + sourceTree = ""; }; F53755DE016C38D201DC9062 = { - isa = PBXFrameworkReference; + explicitFileType = wrapper.framework; + isa = PBXFileReference; path = Tk.framework; refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; F53755DF016C38D201DC9062 = { buildPhases = ( @@ -1629,6 +2003,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F537569B016C3F1001DC9062, F537569C016C3F1001DC9062, F5BFE59002F8C45B01DC9062, + 4C94055C07F3C897004B0BCE, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -1752,6 +2127,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F55BC46902B2D38B01DC9062, F5BFE58D02F8C41501DC9062, F5BFE58E02F8C41501DC9062, + 4C94055807F3C880004B0BCE, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -2689,12 +3065,15 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright isa = PBXGroup; name = "External Frameworks"; refType = 4; + sourceTree = ""; }; F537567D016C3ADB01DC9062 = { - isa = PBXFrameworkReference; + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; refType = 0; + sourceTree = ""; }; F537567E016C3ADB01DC9062 = { fileRef = F537567D016C3ADB01DC9062; @@ -2742,66 +3121,87 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright isa = PBXGroup; name = Bitmaps; refType = 4; + sourceTree = ""; }; F5375689016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = error.bmp; path = ../bitmaps/error.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568A016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = gray12.bmp; path = ../bitmaps/gray12.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568B016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = gray25.bmp; path = ../bitmaps/gray25.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568C016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = gray50.bmp; path = ../bitmaps/gray50.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568D016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = gray75.bmp; path = ../bitmaps/gray75.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568E016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = hourglass.bmp; path = ../bitmaps/hourglass.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F537568F016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = info.bmp; path = ../bitmaps/info.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375690016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = questhead.bmp; path = ../bitmaps/questhead.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375691016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = question.bmp; path = ../bitmaps/question.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375692016C3F1001DC9062 = { isa = PBXFileReference; + lastKnownFileType = image.bmp; name = warning.bmp; path = ../bitmaps/warning.bmp; refType = 2; + sourceTree = SOURCE_ROOT; }; F5375693016C3F1001DC9062 = { fileRef = F5375689016C3F1001DC9062; @@ -2870,9 +3270,11 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright }; }; F537569F016C4DD401DC9062 = { - isa = PBXApplicationReference; + explicitFileType = wrapper.application; + isa = PBXFileReference; path = "Wish Shell.app"; refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; F53756A0016C4DD401DC9062 = { buildPhases = ( @@ -3041,6 +3443,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F53756B2016C525F01DC9062 = { isa = PBXTargetDependency; target = F53755DF016C38D201DC9062; + targetProxy = 4C9404F007F3C84D004B0BCE; }; F548F8C80313C9E0016F146B = { buildActionMask = 2147483647; @@ -3106,9 +3509,11 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright productReference = F548F8CF0313CEF0016F146B; }; F548F8CF0313CEF0016F146B = { - isa = PBXLibraryReference; + explicitFileType = "compiled.mach-o.dylib"; + isa = PBXFileReference; path = libtkstub8.4.a; refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; F548F8D00313CF11016F146B = { fileRef = F53755B9016C389901DC9062; @@ -3125,16 +3530,13 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F548F8D20313CF93016F146B = { isa = PBXTargetDependency; target = F548F8CE0313CEF0016F146B; + targetProxy = 4C9404EF07F3C84D004B0BCE; }; F55A164E032A11B1016F146B = { buildActionMask = 2147483647; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "if [ -n \"${EMBEDDED_BUILD:-}\" ]; then\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Contents\"\n\n# if we are embedding frameworks, copy them into the app\nrm -rf \"Frameworks\"\nmkdir -p \"Frameworks\"\nif [ \"${DEPLOYMENT_LOCATION:-}\" = \"YES\" -o \"${ACTION}\" = \"install\" ]; then\n FWKDIR=\"${INSTALL_ROOT}${DYLIB_INSTALL_PATH}\"\nelse\n FWKDIR=\"${TARGET_BUILD_DIR}\"\nfi\ncp -fpRPH \"${FWKDIR}/Tcl.framework\" \"Frameworks\"\ncp -fpRPH \"${FWKDIR}/Tk.framework\" \"Frameworks\"\n\n# fix install names when embedding\nfix_install_id ( ) {\n chmod -RH a+w \"$1\"\n install_name_tool -id $(otool -L \"$1\" | awk \"/$(basename \"$1\")\\.framework.*[^:]\\$/ {sub(\\\"^.*/Frameworks\\\",\\\"@executable_path/../Frameworks\\\",\\$1); print \\$1}\") \"$1\"\n chmod -RH a-w \"$1\" \n}\nfix_install_name ( ) {\n chmod -RH a+w \"$1\"\n install_name_tool -change $(otool -L \"$1\" | awk \"/$2\\.framework.*[^:]\\$/ {print \\$1; sub(\\\"^.*/Frameworks\\\",\\\"@executable_path/../Frameworks\\\",\\$1); print \\$1}\") \"$1\"\n chmod -RH a-w \"$1\" \n}\nfix_install_id Frameworks/Tcl.framework/Tcl\nfix_install_id Frameworks/Tk.framework/Tk\nfix_install_name Frameworks/Tk.framework/Tk Tcl\nfix_install_name \"MacOS/${PRODUCT_NAME}\" Tcl\nfix_install_name \"MacOS/${PRODUCT_NAME}\" Tk\n\nfi"; @@ -3142,9 +3544,11 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F55BC46802B2D38B01DC9062 = { fileEncoding = 5; isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; name = tkPanedWindow.c; path = ../generic/tkPanedWindow.c; refType = 2; + sourceTree = SOURCE_ROOT; }; F55BC46902B2D38B01DC9062 = { fileRef = F55BC46802B2D38B01DC9062; @@ -3154,9 +3558,11 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright }; F55BC46A02B2D3F301DC9062 = { isa = PBXFileReference; + lastKnownFileType = text; name = panedwindow.tcl; path = ../library/panedwindow.tcl; refType = 2; + sourceTree = SOURCE_ROOT; }; F55BC46B02B2D3F301DC9062 = { fileRef = F55BC46A02B2D3F301DC9062; @@ -3165,10 +3571,12 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright }; }; F5875C7B016FEF1D01DC9062 = { - isa = PBXFrameworkReference; + isa = PBXFileReference; + lastKnownFileType = wrapper.framework; name = Tcl.framework; path = ../tcl/Tcl.framework; refType = 3; + sourceTree = BUILT_PRODUCTS_DIR; }; F5875C7D016FEF1D01DC9062 = { fileRef = F5875C7B016FEF1D01DC9062; @@ -3180,11 +3588,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright buildActionMask = 8; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; shellScript = "# ensure we can overwrite a previous install\nif [ -d \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\" ]; then\n chmod -RH u+w \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nfi"; @@ -3193,11 +3597,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright buildActionMask = 8; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; shellScript = "# ensure we can overwrite a previous install\nif [ -d \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\" ]; then\n chmod -RH u+w \"${INSTALL_ROOT}${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nfi"; @@ -3218,11 +3618,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright buildActionMask = 8; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; shellScript = "# redo prebinding\ncd \"${INSTALL_ROOT}/\"\nif [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi\nif [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi\nif [ ! -d ./${DYLIB_INSTALL_PATH}/Tcl.framework ]; then ln -fs ${TCL_FRAMEWORK_DIR}/Tcl.framework ./${DYLIB_INSTALL_PATH}; RM_TCL=1; fi\nredo_prebinding -r . \"./${INSTALL_PATH}/${PRODUCT_NAME}.${WRAPPER_EXTENSION}/Versions/${FRAMEWORK_VERSION}/${PRODUCT_NAME}\"\nif [ -n \"${RM_USRLIB:-}\" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi\nif [ -n \"${RM_SYSTEM:-}\" ]; then rm -f System; fi\nif [ -n \"${RM_TCL:-}\" ]; then rm -f ./${DYLIB_INSTALL_PATH}/Tcl.framework; fi\n\n# fix permissions on uninstalled products\nchmod a+w \"${TEMP_ROOT}/UninstalledProducts\"\nchmod a+w \"${TEMP_ROOT}\"/UninstalledProducts/libtkstub*.a"; @@ -3231,11 +3627,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright buildActionMask = 8; files = ( ); - generatedFileNames = ( - ); isa = PBXShellScriptBuildPhase; - neededFileNames = ( - ); runOnlyForDeploymentPostprocessing = 1; shellPath = /bin/sh; shellScript = "# redo prebinding\ncd \"${INSTALL_ROOT}/\"\nAPP_DIR=\"${PRODUCT_NAME}.${WRAPPER_EXTENSION}\"\nEXECUTABLE_DIR=\"${APP_DIR}/Contents/MacOS\"\nEXECUTABLE=\"${EXECUTABLE_DIR}/${PRODUCT_NAME}\"\nFWK_RSRC_DIR=\"${DYLIB_INSTALL_PATH}/Tk.framework/Versions/${FRAMEWORK_VERSION}/Resources\"\nif [ -z \"${EMBEDDED_BUILD:-}\" ]; then\n if [ ! -d usr/lib ]; then mkdir -p usr; ln -fs /usr/lib usr/; RM_USRLIB=1; fi\n if [ ! -d System ]; then ln -fs /System .; RM_SYSTEM=1; fi\n if [ ! -d ./${DYLIB_INSTALL_PATH}/Tcl.framework ]; then ln -fs ${TCL_FRAMEWORK_DIR}/Tcl.framework ./${DYLIB_INSTALL_PATH}; RM_TCL=1; fi\n PREBIND_OPTS=\"-r .\"\nfi\nredo_prebinding ${PREBIND_OPTS:-} -e \"./${INSTALL_PATH}/${EXECUTABLE_DIR}\" \"./${INSTALL_PATH}/${EXECUTABLE}\"\nif [ -n \"${RM_USRLIB:-}\" ]; then rm -f usr/lib; rmdir -p usr 2>&-; fi\nif [ -n \"${RM_SYSTEM:-}\" ]; then rm -f System; fi\nif [ -n \"${RM_TCL:-}\" ]; then rm -f ./${DYLIB_INSTALL_PATH}/Tcl.framework; fi\n\n# copy Wish.app into framework, install wish script & symbolic link\nif [ -z \"${EMBEDDED_BUILD:-}\" ]; then\nchmod -H a+w \"./${FWK_RSRC_DIR}\"\nif [ -e \"./${FWK_RSRC_DIR}/${APP_DIR}\" ]; then chmod -RH a+w \"./${FWK_RSRC_DIR}/${APP_DIR}\" && rm -rf \"./${FWK_RSRC_DIR}/${APP_DIR}\"; fi\ncp -fpRPH \"./${INSTALL_PATH}/${APP_DIR}\" \"./${FWK_RSRC_DIR}\"\nchmod -H ${INSTALL_MODE_FLAG} \"./${FWK_RSRC_DIR}\"\nmkdir -p \"./${BINDIR}\"\nrm -f \"./${BINDIR}/wish${FRAMEWORK_VERSION}\"\ncat > \"./${BINDIR}/wish${FRAMEWORK_VERSION}\" <= 0x1030) { + if (height < 11 || height > 28) { + *width = 0; + return (ThemeButtonKind) 0; + } + + if (height >= 21) { + *width = 13; + return kThemeIncDecButton; + } else if (height >= 18) { + *width = 12; + return kThemeIncDecButtonSmall; + } else { + *width = 11; + return kThemeIncDecButtonMini; + } + } else { + if (height < 21 || height > 28) { + *width = 0; + return (ThemeButtonKind) 0; + } + *width = 13; + return kThemeIncDecButton; + } +} + +/* + *-------------------------------------------------------------- + * + * 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; + CGrafPtr saveWorld; + GDHandle saveDevice; + GWorldPtr destPort; + GC bgGC; + Tk_Window tkwin = entryPtr->tkwin; + ThemeDrawState drawState; + int oldWidth; + + /* + * 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_RELEIF) { + return 0; + } + + destPort = TkMacOSXGetDrawablePort(d); + + /* + * 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); + + GetGWorld(&saveWorld, &saveDevice); + SetGWorld(destPort, NULL); + + /* + * Inset the entry Frame by the maximum width of the focus rect, + * which is 3 according to the Carbon docs. + */ + + bounds.top = MAC_OSX_FOCUS_WIDTH; + bounds.left = MAC_OSX_FOCUS_WIDTH; + bounds.right = Tk_Width(tkwin) - MAC_OSX_FOCUS_WIDTH; + bounds.bottom = Tk_Height(tkwin) - MAC_OSX_FOCUS_WIDTH; + if (entryPtr->state == STATE_DISABLED) { + drawState = kThemeStateInactive; + } else { + drawState = kThemeStateActive; + } + 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); + } + SetGWorld(saveWorld, saveDevice); + + if (isSpinbox) { + Tk_Width(tkwin) = oldWidth; + } + 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) +{ + OSStatus err; + 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; + CGrafPtr saveWorld; + GDHandle saveDevice; + GWorldPtr destPort; + XRectangle rects[1]; + GC bgGC; + + /* 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; + } + + destPort = TkMacOSXGetDrawablePort(d); + GetGWorld(&saveWorld, &saveDevice); + SetGWorld(destPort, NULL); + + 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 = Tk_Width(tkwin) - incDecWidth - 1; + inBounds.right = Tk_Width(tkwin) - 1; + inBounds.top = MAC_OSX_FOCUS_WIDTH; + inBounds.bottom = 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); + + err = DrawThemeButton (&inBounds, inKind, &inNewInfo, inPrevInfo, + inEraseProc, inLabelProc, inUserData); + + SetGWorld(saveWorld, saveDevice); + + return 1; +} + -- cgit v0.12