From aaefb48ff561e7d947da1c4fe5e268f4b1732d09 Mon Sep 17 00:00:00 2001 From: wolfsuit Date: Thu, 24 Mar 2005 07:16:12 +0000 Subject: Get the Entry and Spinbox widgets to draw with the native look & feel on Mac OS X. Also contains some more work on tkMacOSXScale.c, but this doesn't work all the way yet, so it's not currently built. --- ChangeLog | 13 + generic/tkEntry.c | 500 +++---- generic/tkEntry.h | 307 +++++ macosx/Wish.pbproj/jingham.pbxuser | 2550 +++++++++++++++++++++++++++++++++++- macosx/Wish.pbproj/project.pbxproj | 70 +- macosx/tkMacOSXDefault.h | 22 +- macosx/tkMacOSXEntry.c | 326 +++++ macosx/tkMacOSXScale.c | 85 +- 8 files changed, 3462 insertions(+), 411 deletions(-) create mode 100644 generic/tkEntry.h create mode 100644 macosx/tkMacOSXEntry.c diff --git a/ChangeLog b/ChangeLog index 2ac3749..cfd74dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2005-03-23 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. + This is cleanup thanks to Neil Madden . * macosx/tkMacOSXWm.c (TkMacOSXWinStyle) New function. diff --git a/generic/tkEntry.c b/generic/tkEntry.c index 3f98ea8..e347cff 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.36 2005/03/24 07:16:13 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,63 @@ 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(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(Spinbox *sbPtr, pixmap) +{ + return 0; +} +#endif /* Not MAC_OSX_TK */ + /* *-------------------------------------------------------------- * @@ -1964,76 +1763,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 +1842,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 55b4d5d..207347e 100644 --- a/macosx/Wish.pbproj/jingham.pbxuser +++ b/macosx/Wish.pbproj/jingham.pbxuser @@ -1,6 +1,2132 @@ // !$*UTF8*$! { + 4C148E2007ECCFAC0033822E = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {494, 4311}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {490, 743}}"; + }; + }; + 4C148E2407ECCFCF0033822E = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {798, 4577}}"; + sepNavSelRange = "{6127, 0}"; + sepNavVisRect = "{{0, 1997}, {798, 411}}"; + sepNavWindowFrame = "{{332, 49}, {851, 1045}}"; + }; + }; + 4C148E2607ECCFE30033822E = { + fRef = F5375551016C376E01DC9062; + isa = PBXTextBookmark; + name = "eCTM(outContext, a, b);\n\t\tarc1 = ra"; + rLen = 35; + rLoc = 42860; + rType = 0; + vrLen = 2073; + vrLoc = 41923; + }; + 4C148E2707ECCFE30033822E = { + fRef = 4C148E2007ECCFAC0033822E; + isa = PBXTextBookmark; + name = "tkEntry.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1522; + vrLoc = 0; + }; + 4C148E2907ECCFE30033822E = { + fRef = F5375551016C376E01DC9062; + isa = PBXTextBookmark; + name = "eCTM(outContext, a, b);\n\t\tarc1 = ra"; + rLen = 35; + rLoc = 42860; + rType = 0; + vrLen = 2073; + vrLoc = 41923; + }; + 4C148E2A07ECCFE30033822E = { + fRef = 4C148E2007ECCFAC0033822E; + isa = PBXTextBookmark; + name = "tkEntry.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1522; + vrLoc = 0; + }; + 4C148EA607ED3FB90033822E = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 199"; + rLen = 0; + rLoc = 8942; + rType = 0; + vrLen = 2219; + vrLoc = 5710; + }; + 4C148EA707ED3FB90033822E = { + fRef = F5375553016C376E01DC9062; + isa = PBXTextBookmark; + name = "tkMacOSXEvent.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1600; + vrLoc = 0; + }; + 4C148EA907ED3FB90033822E = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 199"; + rLen = 0; + rLoc = 8942; + rType = 0; + vrLen = 2219; + vrLoc = 5710; + }; + 4C148EAA07ED3FB90033822E = { + fRef = F5375553016C376E01DC9062; + isa = PBXTextBookmark; + name = "tkMacOSXEvent.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1600; + vrLoc = 0; + }; + 4C148EC207ED443A0033822E = { + fRef = F537555C016C376E01DC9062; + isa = PBXTextBookmark; + name = GetEventParameter; + rLen = 17; + rLoc = 5758; + rType = 0; + vrLen = 2269; + vrLoc = 5171; + }; + 4C148EC307ED443A0033822E = { + fRef = F5375598016C389901DC9062; + isa = PBXTextBookmark; + name = "tkEvent.c: 1308"; + rLen = 0; + rLoc = 36330; + rType = 0; + vrLen = 2148; + vrLoc = 43353; + }; + 4C148EC407ED443A0033822E = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = "tkEntry.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1968; + vrLoc = 0; + }; + 4C148EC507ED443A0033822E = { + fRef = F537555C016C376E01DC9062; + isa = PBXTextBookmark; + name = GetEventParameter; + rLen = 17; + rLoc = 5758; + rType = 0; + vrLen = 2269; + vrLoc = 5171; + }; + 4C148EC607ED443A0033822E = { + fRef = F5375598016C389901DC9062; + isa = PBXTextBookmark; + name = "tkEvent.c: 1308"; + rLen = 0; + rLoc = 36330; + rType = 0; + vrLen = 2148; + vrLoc = 43353; + }; + 4C148ECB07ED48390033822E = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1926; + vrLoc = 76289; + }; + 4C278C1007F273070034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C1107F273070034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C1707F273750034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C1F07F275760034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2307F275D30034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2707F275EC0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2807F276B40034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2B07F276D40034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2C07F276DE0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C2D07F276E70034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C3507F2774F0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C3C07F278180034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C4407F279210034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C4607F27AEF0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C4C07F27B8D0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C4D07F27B8D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + rLen = 0; + rLoc = 259; + rType = 1; + }; + 4C278C4E07F27B8D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8825; + rType = 0; + vrLen = 510; + vrLoc = 7150; + }; + 4C278C5107F27BA00034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C5207F27BA00034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8825; + rType = 0; + vrLen = 510; + vrLoc = 7150; + }; + 4C278C5307F27BB40034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C5407F27BB40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8825; + rType = 0; + vrLen = 510; + vrLoc = 7150; + }; + 4C278C5707F27BC90034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C5807F27BC90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8825; + rType = 0; + vrLen = 510; + vrLoc = 7150; + }; + 4C278C5D07F27BE00034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C5E07F27BE00034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8825; + rType = 0; + vrLen = 510; + vrLoc = 7150; + }; + 4C278C5F07F27C5C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6207F27C610034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C6307F27C610034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6407F27C720034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C6507F27C720034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6607F27CAC0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C6707F27CAC0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6807F27CFB0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C6907F27CFB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6C07F27E400034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryEventProc; + rLen = 14; + rLoc = 76488; + rType = 0; + vrLen = 1942; + vrLoc = 76272; + }; + 4C278C6D07F27E400034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C6E07F27E400034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C6F07F27F5C0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C7007F27F5C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C7107F27F850034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C7207F27F850034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 349; + vrLoc = 7187; + }; + 4C278C7507F283CB0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C7607F283CB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " if (sbPtr->entry.state == STATE_DISABLED) {\n"; + rLen = 48; + rLoc = 8847; + rType = 0; + vrLen = 311; + vrLoc = 7134; + }; + 4C278C7707F285D40034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C7807F285D40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + rLen = 1; + rLoc = 235; + rType = 1; + }; + 4C278C7907F285D40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8072; + rType = 0; + vrLen = 925; + vrLoc = 7634; + }; + 4C278C7A07F285E40034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C7B07F285E40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8072; + rType = 0; + vrLen = 925; + vrLoc = 7634; + }; + 4C278C8007F285FE0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C8107F285FE0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8072; + rType = 0; + vrLen = 925; + vrLoc = 7634; + }; + 4C278C8207F2868D0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C8307F2868D0034F48B = { + fRef = F5375596016C389901DC9062; + isa = PBXTextBookmark; + name = EntryComputeGeometry; + rLen = 20; + rLoc = 61869; + rType = 0; + vrLen = 2258; + vrLoc = 61869; + }; + 4C278C8407F2868D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2355; + vrLoc = 4549; + }; + 4C278C8507F2868D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C8A07F286A10034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2355; + vrLoc = 4549; + }; + 4C278C8B07F286A10034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C8C07F286C70034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2355; + vrLoc = 4549; + }; + 4C278C8D07F286C70034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C8E07F287030034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2257; + vrLoc = 4118; + }; + 4C278C8F07F287030034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C9207F2874B0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C9307F287550034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2343; + vrLoc = 4462; + }; + 4C278C9407F287550034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C9707F287630034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2343; + vrLoc = 4462; + }; + 4C278C9807F287630034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C9907F2884F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 166"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2343; + vrLoc = 4462; + }; + 4C278C9A07F2884F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 962; + vrLoc = 7639; + }; + 4C278C9B07F288F80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278C9C07F288F80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278C9D07F28A800034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278C9E07F28A800034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CA307F28A960034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CA407F28A960034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CA507F28AED0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CA607F28AED0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CA907F28B040034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CAA07F28B050034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CAB07F28B050034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CAC07F28B0C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CAD07F28B0C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CAE07F28B700034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CAF07F28B700034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CB007F28BD90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CB107F28BD90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CB407F28BE80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CB507F28BE80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CBD07F28C060034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CBE07F28C060034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8137; + rType = 0; + vrLen = 971; + vrLoc = 7626; + }; + 4C278CC107F28C990034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CC207F28C990034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8141; + rType = 0; + vrLen = 972; + vrLoc = 7626; + }; + 4C278CC507F28CA60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CC607F28CA60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8141; + rType = 0; + vrLen = 972; + vrLoc = 7626; + }; + 4C278CC707F28CBB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2387; + vrLoc = 4480; + }; + 4C278CC807F28CBB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8141; + rType = 0; + vrLen = 972; + vrLoc = 7626; + }; + 4C278CC907F28D2D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2417; + vrLoc = 4480; + }; + 4C278CCA07F28D2D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8089; + rType = 0; + vrLen = 972; + vrLoc = 7656; + }; + 4C278CCD07F28D3C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2417; + vrLoc = 4480; + }; + 4C278CCE07F28D3C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8089; + rType = 0; + vrLen = 972; + vrLoc = 7656; + }; + 4C278CCF07F28D790034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2365; + vrLoc = 4480; + }; + 4C278CD007F28D790034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8089; + rType = 0; + vrLen = 972; + vrLoc = 7604; + }; + 4C278CD307F28D870034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6071; + rType = 0; + vrLen = 2365; + vrLoc = 4480; + }; + 4C278CD407F28D870034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8089; + rType = 0; + vrLen = 972; + vrLoc = 7604; + }; + 4C278CD507F28E290034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6341; + rType = 0; + vrLen = 2365; + vrLoc = 4480; + }; + 4C278CD607F28E290034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8090; + rType = 0; + vrLen = 972; + vrLoc = 7604; + }; + 4C278CD907F28E360034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 168"; + rLen = 0; + rLoc = 6341; + rType = 0; + vrLen = 2365; + vrLoc = 4480; + }; + 4C278CDA07F28E360034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8090; + rType = 0; + vrLen = 972; + vrLoc = 7604; + }; + 4C278CDB07F28F040034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2275; + vrLoc = 4480; + }; + 4C278CDC07F28F040034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8138; + rType = 0; + vrLen = 909; + vrLoc = 7561; + }; + 4C278CDF07F28F160034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2275; + vrLoc = 4480; + }; + 4C278CE007F28F160034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = " int buttonHeight = height - 2 * MAC_OSX_FOCUS_WIDTH;\n"; + rLen = 57; + rLoc = 8138; + rType = 0; + vrLen = 909; + vrLoc = 7561; + }; + 4C278CE107F28F500034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2275; + vrLoc = 4480; + }; + 4C278CE207F28F500034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6459; + rType = 0; + vrLen = 1073; + vrLoc = 5756; + }; + 4C278CE307F28F6F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2311; + vrLoc = 4480; + }; + 4C278CE407F28F6F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 184"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 1048; + vrLoc = 5756; + }; + 4C278CE507F28F7A0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2311; + vrLoc = 4480; + }; + 4C278CE607F28F7A0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 184"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 1048; + vrLoc = 5756; + }; + 4C278CE907F28F8C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2311; + vrLoc = 4480; + }; + 4C278CEA07F28F8C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 184"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 1048; + vrLoc = 5756; + }; + 4C278CED07F28FCA0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2275; + vrLoc = 4480; + }; + 4C278CEE07F28FCA0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 975; + vrLoc = 5903; + }; + 4C278CF107F28FD80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2275; + vrLoc = 4480; + }; + 4C278CF207F28FD80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 975; + vrLoc = 5903; + }; + 4C278CF307F2903F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6346; + rType = 0; + vrLen = 2276; + vrLoc = 4480; + }; + 4C278CF407F2903F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6460; + rType = 0; + vrLen = 975; + vrLoc = 5904; + }; + 4C278CF707F2907E0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2276; + vrLoc = 4480; + }; + 4C278CF807F2907E0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 158"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 974; + vrLoc = 5444; + }; + 4C278CFB07F2908A0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 181"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2276; + vrLoc = 4480; + }; + 4C278CFC07F2908A0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 158"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 974; + vrLoc = 5444; + }; + 4C278CFD07F291C70034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 188"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2252; + vrLoc = 4480; + }; + 4C278CFE07F291C70034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 949; + vrLoc = 5444; + }; + 4C278D0107F291D80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 188"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2252; + vrLoc = 4480; + }; + 4C278D0207F291D80034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 949; + vrLoc = 5444; + }; + 4C278D0307F291E90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 188"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2252; + vrLoc = 4480; + }; + 4C278D0407F291E90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 949; + vrLoc = 5444; + }; + 4C278D0507F292270034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 188"; + rLen = 0; + rLoc = 6372; + rType = 0; + vrLen = 2252; + vrLoc = 4480; + }; + 4C278D0607F292270034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 5697; + rType = 0; + vrLen = 949; + vrLoc = 5444; + }; + 4C278D0707F292B50034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 188"; + rLen = 0; + rLoc = 6233; + rType = 0; + vrLen = 2230; + vrLoc = 4480; + }; + 4C278D0807F292B50034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 5558; + rType = 0; + vrLen = 960; + vrLoc = 5044; + }; + 4C278D0B07F2932B0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6233; + rType = 0; + vrLen = 2332; + vrLoc = 4480; + }; + 4C278D0C07F2932B0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5558; + rType = 0; + vrLen = 973; + vrLoc = 5044; + }; + 4C278D0F07F293390034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6233; + rType = 0; + vrLen = 2332; + vrLoc = 4480; + }; + 4C278D1007F293390034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5558; + rType = 0; + vrLen = 973; + vrLoc = 5044; + }; + 4C278D1107F293A60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 183"; + rLen = 0; + rLoc = 6394; + rType = 0; + vrLen = 2332; + vrLoc = 4480; + }; + 4C278D1207F293A60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5719; + rType = 0; + vrLen = 973; + vrLoc = 5044; + }; + 4C278D1507F295B60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6394; + rType = 0; + vrLen = 2367; + vrLoc = 4480; + }; + 4C278D1607F295B60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5719; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D1907F295C60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6394; + rType = 0; + vrLen = 2367; + vrLoc = 4480; + }; + 4C278D1A07F295C60034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5719; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D1B07F2964B0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6522; + rType = 0; + vrLen = 2367; + vrLoc = 4480; + }; + 4C278D1C07F2964B0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D1F07F2965C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6522; + rType = 0; + vrLen = 2367; + vrLoc = 4480; + }; + 4C278D2007F2965C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D2107F296DA0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D2207F296DC0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D2307F296E20034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D2A07F29A7E0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 182"; + rLen = 0; + rLoc = 6522; + rType = 0; + vrLen = 2367; + vrLoc = 4480; + }; + 4C278D2B07F29A7E0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 160"; + rLen = 0; + rLoc = 5847; + rType = 0; + vrLen = 1012; + vrLoc = 5040; + }; + 4C278D9A07F29B4F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 91"; + rLen = 0; + rLoc = 3615; + rType = 0; + vrLen = 1879; + vrLoc = 2853; + }; + 4C278D9B07F29B4F0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 971; + vrLoc = 5011; + }; + 4C278D9C07F29B4F0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + rLen = 7; + rLoc = 3324; + rType = 0; + }; + 4C278D9D07F29B4F0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DA407F29B630034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 91"; + rLen = 0; + rLoc = 3615; + rType = 0; + vrLen = 1879; + vrLoc = 2853; + }; + 4C278DA507F29B630034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 165"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 971; + vrLoc = 5011; + }; + 4C278DA607F29B630034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DA907F29CA90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DAA07F29CA90034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DAB07F29CA90034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DAE07F29CBB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DAF07F29CBB0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DB007F29CBB0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DB107F29CD40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DB207F29CD40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DB307F29CD40034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DB407F29D9C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DB507F29D9C0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DB607F29D9C0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DB707F29F4D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DB807F29F4D0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DB907F29F4D0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DBA07F29FC40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DBB07F29FC40034F48B = { + fRef = 4CB2D7CF0619F8EB0081E375; + isa = PBXTextBookmark; + name = "tkMacOSXScale.c: 252"; + rLen = 0; + rLoc = 6482; + rType = 0; + vrLen = 2177; + vrLoc = 2979; + }; + 4C278DBC07F29FC40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: ComputeIncDecParameters"; + rLen = 0; + rLoc = 4218; + rType = 0; + vrLen = 1889; + vrLoc = 2853; + }; + 4C278DBD07F29FC40034F48B = { + fRef = 4CB2D7CF0619F8EB0081E375; + isa = PBXTextBookmark; + name = "tkMacOSXScale.c: 252"; + rLen = 0; + rLoc = 6482; + rType = 0; + vrLen = 2177; + vrLoc = 2979; + }; + 4C278DBE07F29FC40034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DBF07F29FC40034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DC207F29FD30034F48B = { + fRef = 4CB2D7CF0619F8EB0081E375; + isa = PBXTextBookmark; + name = "tkMacOSXScale.c: 252"; + rLen = 0; + rLoc = 6482; + rType = 0; + vrLen = 2177; + vrLoc = 2979; + }; + 4C278DC307F29FD30034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DC407F29FD30034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DC607F2A0260034F48B = { + fRef = 4CB2D7CF0619F8EB0081E375; + isa = PBXTextBookmark; + name = "tkMacOSXScale.c: 252"; + rLen = 0; + rLoc = 6482; + rType = 0; + vrLen = 2177; + vrLoc = 2979; + }; + 4C278DC707F2A0260034F48B = { + fRef = F53755CB016C389901DC9062; + isa = PBXTextBookmark; + name = "tkUnixScale.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1734; + vrLoc = 0; + }; + 4C278DC807F2A0260034F48B = { + fRef = 4CB2D7CF0619F8EB0081E375; + isa = PBXTextBookmark; + name = "tkMacOSXScale.c: 252"; + rLen = 0; + rLoc = 6482; + rType = 0; + vrLen = 2177; + vrLoc = 2979; + }; + 4C278DC907F2A0260034F48B = { + fRef = F53755CB016C389901DC9062; + isa = PBXTextBookmark; + name = "tkUnixScale.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1734; + vrLoc = 0; + }; + 4C278DCA07F2A0260034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DCB07F2A0260034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4C278DD007F2A03E0034F48B = { + fRef = F53755CB016C389901DC9062; + isa = PBXTextBookmark; + name = "tkUnixScale.c: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 1734; + vrLoc = 0; + }; + 4C278DD107F2A03E0034F48B = { + fRef = 4C148E2407ECCFCF0033822E; + isa = PBXTextBookmark; + name = "tkMacOSXEntry.c: 179"; + rLen = 0; + rLoc = 6127; + rType = 0; + vrLen = 926; + vrLoc = 4974; + }; + 4C278DD207F2A03E0034F48B = { + fRef = F5375568016C376E01DC9062; + isa = PBXTextBookmark; + name = " Gestalt(gestaltSystemVersion, (long*)&display->release);\n"; + rLen = 61; + rLoc = 3320; + rType = 0; + vrLen = 1608; + vrLoc = 2724; + }; + 4CB2D7CF0619F8EB0081E375 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {614, 6705}}"; + sepNavSelRange = "{6482, 0}"; + sepNavVisRect = "{{0, 1964}, {614, 982}}"; + sepNavWindowFrame = "{{155, 20}, {623, 726}}"; + }; + }; 4CDDF1E7052BE83A00D368E9 = { + fallbackIsa = XCSourceControlManager; + isSCMEnabled = 0; isa = PBXSourceControlManager; scmConfiguration = { }; @@ -11,9 +2137,9 @@ isa = PBXCodeSenseManager; usesDefaults = 1; wantsCodeCompletion = 1; - wantsCodeCompletionAutoPopup = 0; wantsCodeCompletionAutoSuggestions = 0; wantsCodeCompletionCaseSensitivity = 1; + wantsCodeCompletionListAlways = 1; wantsCodeCompletionOnlyMatchingItems = 1; wantsCodeCompletionParametersIncluded = 1; wantsCodeCompletionPlaceholdersInserted = 1; @@ -72,9 +2198,9 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 10, + 391, 20, - 10, + 73, 43, 43, 20, @@ -123,7 +2249,7 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 98583016; + PBXPerProjectTemplateStateSaveDate = 133329667; PBXPrepackagedSmartGroups_v2 = ( { PBXTransientLocationAtTop = bottom; @@ -288,12 +2414,23 @@ 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}, {122, 474}}"; + BoundsStr = "{{0, 0}, {194, 474}}"; Rows = ( ); VisibleRectStr = "{{0, 0}, {104, 474}}"; @@ -332,24 +2469,34 @@ ); PBXSmartGroupTreeModuleColumnData = { PBXSmartGroupTreeModuleColumnWidthsKey = ( - 284, + 22, + 262, ); PBXSmartGroupTreeModuleColumnsKey_v4 = ( + TargetStatusColumn, MainColumn, ); }; PBXSmartGroupTreeModuleOutlineStateKey_v7 = { PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( - 1C37FBAC04509CD000000102, + F537552B016C352C01DC9062, + F537552E016C376E01DC9062, + F5375530016C376E01DC9062, + F537553C016C376E01DC9062, + F537553D016C376E01DC9062, + F5375546016C376E01DC9062, + F53755C9016C389901DC9062, 1C37FAAC04509CD000000102, ); PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( ( + 64, + 8, 6, - 5, + 0, ), ); - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 0}, {284, 452}}"; + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 1017}, {284, 452}}"; }; PBXTopSmartGroupGIDs = ( ); @@ -368,6 +2515,29 @@ "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { }; "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { + Debugger = { + HorizontalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {316, 299}}", + "{{316, 0}, {517, 299}}", + ); + }; + VerticalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {833, 299}}", + "{{0, 299}, {833, 306}}", + ); + }; + }; + LauncherConfigVersion = 8; }; "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { PBXSplitModuleInNavigatorKey = { @@ -416,33 +2586,64 @@ ); PBXSmartGroupTreeModuleColumnData = { PBXSmartGroupTreeModuleColumnWidthsKey = ( - 284, + 22, + 262, ); PBXSmartGroupTreeModuleColumnsKey_v4 = ( + TargetStatusColumn, MainColumn, ); }; PBXSmartGroupTreeModuleOutlineStateKey_v7 = { PBXSmartGroupTreeModuleOutlineStateExpansionKey = ( F537552B016C352C01DC9062, + F537552E016C376E01DC9062, + F5375530016C376E01DC9062, F537553C016C376E01DC9062, F5375546016C376E01DC9062, + F53755C9016C389901DC9062, 1C37FAAC04509CD000000102, ); PBXSmartGroupTreeModuleOutlineStateSelectionKey = ( ( - 9, - 7, + 112, + 87, + 85, 0, ), ); - PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 153}, {284, 452}}"; + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey = "{{0, 1742}, {284, 452}}"; }; PBXTopSmartGroupGIDs = ( ); }; }; }; + "PBXWorkspaceContents:PBXConfiguration.PBXModule.PBXRunSessionModule" = { + LauncherConfigVersion = 3; + Runner = { + HorizontalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {363, 167}}", + "{{0, 176}, {363, 267}}", + ); + }; + VerticalSplitView = { + _collapsingFrameDimension = 0; + _indexOfCollapsedView = 0; + _percentageOfCollapsedView = 0; + isCollapsed = yes; + sizes = ( + "{{0, 0}, {405, 443}}", + "{{414, 0}, {514, 443}}", + ); + }; + }; + }; PBXWorkspaceGeometries = ( { Frame = "{{0, 0}, {301, 470}}"; @@ -458,7 +2659,7 @@ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXBuildResultsModule" = { Frame = "{{0, 0}, {908, 553}}"; PBXModuleWindowStatusBarHidden = YES; - RubberWindowFrame = "95 97 908 574 0 0 1024 746 "; + RubberWindowFrame = "116 97 908 574 0 0 1024 746 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXCVSModule" = { Frame = "{{0, 0}, {482, 296}}"; @@ -477,28 +2678,247 @@ "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugCLIModule" = { Frame = "{{0, 0}, {400, 201}}"; PBXModuleWindowStatusBarHidden = YES; - WindowFrame = "{{50, 718}, {400, 222}}"; + RubberWindowFrame = "50 718 400 222 0 0 1024 746 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXDebugSessionModule" = { DebugConsoleDrawerSize = "{100, 120}"; DebugConsoleVisible = None; - DebugConsoleWindowFrame = "{{68, 71}, {714, 320}}"; - DebugSTDIOWindowFrame = "{{132, 34}, {500, 300}}"; - Frame = "{{0, 0}, {833, 601}}"; - WindowFrame = "{{170, 67}, {833, 679}}"; + DebugConsoleWindowFrame = "{{248, 4}, {714, 320}}"; + DebugSTDIOWindowFrame = "{{84, 37}, {500, 300}}"; + Frame = "{{0, 0}, {833, 605}}"; + RubberWindowFrame = "170 99 833 647 0 0 1024 746 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXNavigatorGroup" = { Frame = "{{0, 0}, {750, 481}}"; PBXModuleWindowStatusBarHidden = YES; - WindowFrame = "{{42, 186}, {750, 534}}"; + RubberWindowFrame = "19 239 750 502 0 0 1024 746 "; }; "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXProjectWorkspaceModule" = { Frame = "{{0, 0}, {301, 470}}"; PBXProjectWorkspaceModule_GeometryKey_Rev15 = { + PBXProjectWorkspaceModule_BuildResultsWindowVisible = true; + PBXProjectWorkspaceModule_DebuggerWindowVisible = true; }; RubberWindowFrame = "52 234 301 512 0 0 1024 746 "; }; - PBXWorkspaceStateSaveDate = 98583016; + "PBXWorkspaceGeometries:PBXConfiguration.PBXModule.PBXRunSessionModule" = { + Frame = "{{0, 0}, {745, 422}}"; + RubberWindowFrame = "141 272 745 464 0 0 1024 746 "; + }; + PBXWorkspaceStateSaveDate = 133329667; + }; + perUserProjectItems = { + 4C148E2607ECCFE30033822E = 4C148E2607ECCFE30033822E; + 4C148E2707ECCFE30033822E = 4C148E2707ECCFE30033822E; + 4C148E2907ECCFE30033822E = 4C148E2907ECCFE30033822E; + 4C148E2A07ECCFE30033822E = 4C148E2A07ECCFE30033822E; + 4C148EA607ED3FB90033822E = 4C148EA607ED3FB90033822E; + 4C148EA707ED3FB90033822E = 4C148EA707ED3FB90033822E; + 4C148EA907ED3FB90033822E = 4C148EA907ED3FB90033822E; + 4C148EAA07ED3FB90033822E = 4C148EAA07ED3FB90033822E; + 4C148EC207ED443A0033822E = 4C148EC207ED443A0033822E; + 4C148EC307ED443A0033822E = 4C148EC307ED443A0033822E; + 4C148EC407ED443A0033822E = 4C148EC407ED443A0033822E; + 4C148EC507ED443A0033822E = 4C148EC507ED443A0033822E; + 4C148EC607ED443A0033822E = 4C148EC607ED443A0033822E; + 4C148ECB07ED48390033822E = 4C148ECB07ED48390033822E; + 4C278C1007F273070034F48B = 4C278C1007F273070034F48B; + 4C278C1107F273070034F48B = 4C278C1107F273070034F48B; + 4C278C1707F273750034F48B = 4C278C1707F273750034F48B; + 4C278C1F07F275760034F48B = 4C278C1F07F275760034F48B; + 4C278C2307F275D30034F48B = 4C278C2307F275D30034F48B; + 4C278C2707F275EC0034F48B = 4C278C2707F275EC0034F48B; + 4C278C2807F276B40034F48B = 4C278C2807F276B40034F48B; + 4C278C2B07F276D40034F48B = 4C278C2B07F276D40034F48B; + 4C278C2C07F276DE0034F48B = 4C278C2C07F276DE0034F48B; + 4C278C2D07F276E70034F48B = 4C278C2D07F276E70034F48B; + 4C278C3507F2774F0034F48B = 4C278C3507F2774F0034F48B; + 4C278C3C07F278180034F48B = 4C278C3C07F278180034F48B; + 4C278C4407F279210034F48B = 4C278C4407F279210034F48B; + 4C278C4607F27AEF0034F48B = 4C278C4607F27AEF0034F48B; + 4C278C4C07F27B8D0034F48B = 4C278C4C07F27B8D0034F48B; + 4C278C4D07F27B8D0034F48B = 4C278C4D07F27B8D0034F48B; + 4C278C4E07F27B8D0034F48B = 4C278C4E07F27B8D0034F48B; + 4C278C5107F27BA00034F48B = 4C278C5107F27BA00034F48B; + 4C278C5207F27BA00034F48B = 4C278C5207F27BA00034F48B; + 4C278C5307F27BB40034F48B = 4C278C5307F27BB40034F48B; + 4C278C5407F27BB40034F48B = 4C278C5407F27BB40034F48B; + 4C278C5707F27BC90034F48B = 4C278C5707F27BC90034F48B; + 4C278C5807F27BC90034F48B = 4C278C5807F27BC90034F48B; + 4C278C5D07F27BE00034F48B = 4C278C5D07F27BE00034F48B; + 4C278C5E07F27BE00034F48B = 4C278C5E07F27BE00034F48B; + 4C278C5F07F27C5C0034F48B = 4C278C5F07F27C5C0034F48B; + 4C278C6207F27C610034F48B = 4C278C6207F27C610034F48B; + 4C278C6307F27C610034F48B = 4C278C6307F27C610034F48B; + 4C278C6407F27C720034F48B = 4C278C6407F27C720034F48B; + 4C278C6507F27C720034F48B = 4C278C6507F27C720034F48B; + 4C278C6607F27CAC0034F48B = 4C278C6607F27CAC0034F48B; + 4C278C6707F27CAC0034F48B = 4C278C6707F27CAC0034F48B; + 4C278C6807F27CFB0034F48B = 4C278C6807F27CFB0034F48B; + 4C278C6907F27CFB0034F48B = 4C278C6907F27CFB0034F48B; + 4C278C6C07F27E400034F48B = 4C278C6C07F27E400034F48B; + 4C278C6D07F27E400034F48B = 4C278C6D07F27E400034F48B; + 4C278C6E07F27E400034F48B = 4C278C6E07F27E400034F48B; + 4C278C6F07F27F5C0034F48B = 4C278C6F07F27F5C0034F48B; + 4C278C7007F27F5C0034F48B = 4C278C7007F27F5C0034F48B; + 4C278C7107F27F850034F48B = 4C278C7107F27F850034F48B; + 4C278C7207F27F850034F48B = 4C278C7207F27F850034F48B; + 4C278C7507F283CB0034F48B = 4C278C7507F283CB0034F48B; + 4C278C7607F283CB0034F48B = 4C278C7607F283CB0034F48B; + 4C278C7707F285D40034F48B = 4C278C7707F285D40034F48B; + 4C278C7807F285D40034F48B = 4C278C7807F285D40034F48B; + 4C278C7907F285D40034F48B = 4C278C7907F285D40034F48B; + 4C278C7A07F285E40034F48B = 4C278C7A07F285E40034F48B; + 4C278C7B07F285E40034F48B = 4C278C7B07F285E40034F48B; + 4C278C8007F285FE0034F48B = 4C278C8007F285FE0034F48B; + 4C278C8107F285FE0034F48B = 4C278C8107F285FE0034F48B; + 4C278C8207F2868D0034F48B = 4C278C8207F2868D0034F48B; + 4C278C8307F2868D0034F48B = 4C278C8307F2868D0034F48B; + 4C278C8407F2868D0034F48B = 4C278C8407F2868D0034F48B; + 4C278C8507F2868D0034F48B = 4C278C8507F2868D0034F48B; + 4C278C8A07F286A10034F48B = 4C278C8A07F286A10034F48B; + 4C278C8B07F286A10034F48B = 4C278C8B07F286A10034F48B; + 4C278C8C07F286C70034F48B = 4C278C8C07F286C70034F48B; + 4C278C8D07F286C70034F48B = 4C278C8D07F286C70034F48B; + 4C278C8E07F287030034F48B = 4C278C8E07F287030034F48B; + 4C278C8F07F287030034F48B = 4C278C8F07F287030034F48B; + 4C278C9207F2874B0034F48B = 4C278C9207F2874B0034F48B; + 4C278C9307F287550034F48B = 4C278C9307F287550034F48B; + 4C278C9407F287550034F48B = 4C278C9407F287550034F48B; + 4C278C9707F287630034F48B = 4C278C9707F287630034F48B; + 4C278C9807F287630034F48B = 4C278C9807F287630034F48B; + 4C278C9907F2884F0034F48B = 4C278C9907F2884F0034F48B; + 4C278C9A07F2884F0034F48B = 4C278C9A07F2884F0034F48B; + 4C278C9B07F288F80034F48B = 4C278C9B07F288F80034F48B; + 4C278C9C07F288F80034F48B = 4C278C9C07F288F80034F48B; + 4C278C9D07F28A800034F48B = 4C278C9D07F28A800034F48B; + 4C278C9E07F28A800034F48B = 4C278C9E07F28A800034F48B; + 4C278CA307F28A960034F48B = 4C278CA307F28A960034F48B; + 4C278CA407F28A960034F48B = 4C278CA407F28A960034F48B; + 4C278CA507F28AED0034F48B = 4C278CA507F28AED0034F48B; + 4C278CA607F28AED0034F48B = 4C278CA607F28AED0034F48B; + 4C278CA907F28B040034F48B = 4C278CA907F28B040034F48B; + 4C278CAA07F28B050034F48B = 4C278CAA07F28B050034F48B; + 4C278CAB07F28B050034F48B = 4C278CAB07F28B050034F48B; + 4C278CAC07F28B0C0034F48B = 4C278CAC07F28B0C0034F48B; + 4C278CAD07F28B0C0034F48B = 4C278CAD07F28B0C0034F48B; + 4C278CAE07F28B700034F48B = 4C278CAE07F28B700034F48B; + 4C278CAF07F28B700034F48B = 4C278CAF07F28B700034F48B; + 4C278CB007F28BD90034F48B = 4C278CB007F28BD90034F48B; + 4C278CB107F28BD90034F48B = 4C278CB107F28BD90034F48B; + 4C278CB407F28BE80034F48B = 4C278CB407F28BE80034F48B; + 4C278CB507F28BE80034F48B = 4C278CB507F28BE80034F48B; + 4C278CBD07F28C060034F48B = 4C278CBD07F28C060034F48B; + 4C278CBE07F28C060034F48B = 4C278CBE07F28C060034F48B; + 4C278CC107F28C990034F48B = 4C278CC107F28C990034F48B; + 4C278CC207F28C990034F48B = 4C278CC207F28C990034F48B; + 4C278CC507F28CA60034F48B = 4C278CC507F28CA60034F48B; + 4C278CC607F28CA60034F48B = 4C278CC607F28CA60034F48B; + 4C278CC707F28CBB0034F48B = 4C278CC707F28CBB0034F48B; + 4C278CC807F28CBB0034F48B = 4C278CC807F28CBB0034F48B; + 4C278CC907F28D2D0034F48B = 4C278CC907F28D2D0034F48B; + 4C278CCA07F28D2D0034F48B = 4C278CCA07F28D2D0034F48B; + 4C278CCD07F28D3C0034F48B = 4C278CCD07F28D3C0034F48B; + 4C278CCE07F28D3C0034F48B = 4C278CCE07F28D3C0034F48B; + 4C278CCF07F28D790034F48B = 4C278CCF07F28D790034F48B; + 4C278CD007F28D790034F48B = 4C278CD007F28D790034F48B; + 4C278CD307F28D870034F48B = 4C278CD307F28D870034F48B; + 4C278CD407F28D870034F48B = 4C278CD407F28D870034F48B; + 4C278CD507F28E290034F48B = 4C278CD507F28E290034F48B; + 4C278CD607F28E290034F48B = 4C278CD607F28E290034F48B; + 4C278CD907F28E360034F48B = 4C278CD907F28E360034F48B; + 4C278CDA07F28E360034F48B = 4C278CDA07F28E360034F48B; + 4C278CDB07F28F040034F48B = 4C278CDB07F28F040034F48B; + 4C278CDC07F28F040034F48B = 4C278CDC07F28F040034F48B; + 4C278CDF07F28F160034F48B = 4C278CDF07F28F160034F48B; + 4C278CE007F28F160034F48B = 4C278CE007F28F160034F48B; + 4C278CE107F28F500034F48B = 4C278CE107F28F500034F48B; + 4C278CE207F28F500034F48B = 4C278CE207F28F500034F48B; + 4C278CE307F28F6F0034F48B = 4C278CE307F28F6F0034F48B; + 4C278CE407F28F6F0034F48B = 4C278CE407F28F6F0034F48B; + 4C278CE507F28F7A0034F48B = 4C278CE507F28F7A0034F48B; + 4C278CE607F28F7A0034F48B = 4C278CE607F28F7A0034F48B; + 4C278CE907F28F8C0034F48B = 4C278CE907F28F8C0034F48B; + 4C278CEA07F28F8C0034F48B = 4C278CEA07F28F8C0034F48B; + 4C278CED07F28FCA0034F48B = 4C278CED07F28FCA0034F48B; + 4C278CEE07F28FCA0034F48B = 4C278CEE07F28FCA0034F48B; + 4C278CF107F28FD80034F48B = 4C278CF107F28FD80034F48B; + 4C278CF207F28FD80034F48B = 4C278CF207F28FD80034F48B; + 4C278CF307F2903F0034F48B = 4C278CF307F2903F0034F48B; + 4C278CF407F2903F0034F48B = 4C278CF407F2903F0034F48B; + 4C278CF707F2907E0034F48B = 4C278CF707F2907E0034F48B; + 4C278CF807F2907E0034F48B = 4C278CF807F2907E0034F48B; + 4C278CFB07F2908A0034F48B = 4C278CFB07F2908A0034F48B; + 4C278CFC07F2908A0034F48B = 4C278CFC07F2908A0034F48B; + 4C278CFD07F291C70034F48B = 4C278CFD07F291C70034F48B; + 4C278CFE07F291C70034F48B = 4C278CFE07F291C70034F48B; + 4C278D0107F291D80034F48B = 4C278D0107F291D80034F48B; + 4C278D0207F291D80034F48B = 4C278D0207F291D80034F48B; + 4C278D0307F291E90034F48B = 4C278D0307F291E90034F48B; + 4C278D0407F291E90034F48B = 4C278D0407F291E90034F48B; + 4C278D0507F292270034F48B = 4C278D0507F292270034F48B; + 4C278D0607F292270034F48B = 4C278D0607F292270034F48B; + 4C278D0707F292B50034F48B = 4C278D0707F292B50034F48B; + 4C278D0807F292B50034F48B = 4C278D0807F292B50034F48B; + 4C278D0B07F2932B0034F48B = 4C278D0B07F2932B0034F48B; + 4C278D0C07F2932B0034F48B = 4C278D0C07F2932B0034F48B; + 4C278D0F07F293390034F48B = 4C278D0F07F293390034F48B; + 4C278D1007F293390034F48B = 4C278D1007F293390034F48B; + 4C278D1107F293A60034F48B = 4C278D1107F293A60034F48B; + 4C278D1207F293A60034F48B = 4C278D1207F293A60034F48B; + 4C278D1507F295B60034F48B = 4C278D1507F295B60034F48B; + 4C278D1607F295B60034F48B = 4C278D1607F295B60034F48B; + 4C278D1907F295C60034F48B = 4C278D1907F295C60034F48B; + 4C278D1A07F295C60034F48B = 4C278D1A07F295C60034F48B; + 4C278D1B07F2964B0034F48B = 4C278D1B07F2964B0034F48B; + 4C278D1C07F2964B0034F48B = 4C278D1C07F2964B0034F48B; + 4C278D1F07F2965C0034F48B = 4C278D1F07F2965C0034F48B; + 4C278D2007F2965C0034F48B = 4C278D2007F2965C0034F48B; + 4C278D2107F296DA0034F48B = 4C278D2107F296DA0034F48B; + 4C278D2207F296DC0034F48B = 4C278D2207F296DC0034F48B; + 4C278D2307F296E20034F48B = 4C278D2307F296E20034F48B; + 4C278D2A07F29A7E0034F48B = 4C278D2A07F29A7E0034F48B; + 4C278D2B07F29A7E0034F48B = 4C278D2B07F29A7E0034F48B; + 4C278D9A07F29B4F0034F48B = 4C278D9A07F29B4F0034F48B; + 4C278D9B07F29B4F0034F48B = 4C278D9B07F29B4F0034F48B; + 4C278D9C07F29B4F0034F48B = 4C278D9C07F29B4F0034F48B; + 4C278D9D07F29B4F0034F48B = 4C278D9D07F29B4F0034F48B; + 4C278DA407F29B630034F48B = 4C278DA407F29B630034F48B; + 4C278DA507F29B630034F48B = 4C278DA507F29B630034F48B; + 4C278DA607F29B630034F48B = 4C278DA607F29B630034F48B; + 4C278DA907F29CA90034F48B = 4C278DA907F29CA90034F48B; + 4C278DAA07F29CA90034F48B = 4C278DAA07F29CA90034F48B; + 4C278DAB07F29CA90034F48B = 4C278DAB07F29CA90034F48B; + 4C278DAE07F29CBB0034F48B = 4C278DAE07F29CBB0034F48B; + 4C278DAF07F29CBB0034F48B = 4C278DAF07F29CBB0034F48B; + 4C278DB007F29CBB0034F48B = 4C278DB007F29CBB0034F48B; + 4C278DB107F29CD40034F48B = 4C278DB107F29CD40034F48B; + 4C278DB207F29CD40034F48B = 4C278DB207F29CD40034F48B; + 4C278DB307F29CD40034F48B = 4C278DB307F29CD40034F48B; + 4C278DB407F29D9C0034F48B = 4C278DB407F29D9C0034F48B; + 4C278DB507F29D9C0034F48B = 4C278DB507F29D9C0034F48B; + 4C278DB607F29D9C0034F48B = 4C278DB607F29D9C0034F48B; + 4C278DB707F29F4D0034F48B = 4C278DB707F29F4D0034F48B; + 4C278DB807F29F4D0034F48B = 4C278DB807F29F4D0034F48B; + 4C278DB907F29F4D0034F48B = 4C278DB907F29F4D0034F48B; + 4C278DBA07F29FC40034F48B = 4C278DBA07F29FC40034F48B; + 4C278DBB07F29FC40034F48B = 4C278DBB07F29FC40034F48B; + 4C278DBC07F29FC40034F48B = 4C278DBC07F29FC40034F48B; + 4C278DBD07F29FC40034F48B = 4C278DBD07F29FC40034F48B; + 4C278DBE07F29FC40034F48B = 4C278DBE07F29FC40034F48B; + 4C278DBF07F29FC40034F48B = 4C278DBF07F29FC40034F48B; + 4C278DC207F29FD30034F48B = 4C278DC207F29FD30034F48B; + 4C278DC307F29FD30034F48B = 4C278DC307F29FD30034F48B; + 4C278DC407F29FD30034F48B = 4C278DC407F29FD30034F48B; + 4C278DC607F2A0260034F48B = 4C278DC607F2A0260034F48B; + 4C278DC707F2A0260034F48B = 4C278DC707F2A0260034F48B; + 4C278DC807F2A0260034F48B = 4C278DC807F2A0260034F48B; + 4C278DC907F2A0260034F48B = 4C278DC907F2A0260034F48B; + 4C278DCA07F2A0260034F48B = 4C278DCA07F2A0260034F48B; + 4C278DCB07F2A0260034F48B = 4C278DCB07F2A0260034F48B; + 4C278DD007F2A03E0034F48B = 4C278DD007F2A03E0034F48B; + 4C278DD107F2A03E0034F48B = 4C278DD107F2A03E0034F48B; + 4C278DD207F2A03E0034F48B = 4C278DD207F2A03E0034F48B; }; sourceControlManager = 4CDDF1E7052BE83A00D368E9; userBuildSettings = { @@ -537,6 +2957,21 @@ sepNavWindowFrame = "{{300, 14}, {710, 732}}"; }; }; + F5375551016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {923, 28671}}"; + sepNavSelRange = "{15539, 17}"; + sepNavVisRect = "{{0, 6620}, {923, 522}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F5375553016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {614, 4031}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {614, 982}}"; + }; + }; F5375559016C376E01DC9062 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {656, 49294}}"; @@ -551,6 +2986,13 @@ sepNavVisRect = "{{0, 10164}, {561, 154}}"; }; }; + F537555C016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {841, 11801}}"; + sepNavSelRange = "{5741, 0}"; + sepNavVisRect = "{{0, 2075}, {841, 428}}"; + }; + }; F5375560016C376E01DC9062 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {632, 15959}}"; @@ -559,6 +3001,21 @@ sepNavWindowFrame = "{{202, 20}, {658, 726}}"; }; }; + F5375568016C376E01DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {994, 13691}}"; + sepNavSelRange = "{3320, 61}"; + sepNavVisRect = "{{0, 1498}, {994, 538}}"; + }; + }; + F537557C016C37A601DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 3597}}"; + sepNavSelRange = "{522, 0}"; + sepNavVisRect = "{{0, 1483}, {711, 449}}"; + sepNavWindowFrame = "{{65, 165}, {750, 534}}"; + }; + }; F537557D016C37A601DC9062 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {653, 2897}}"; @@ -582,6 +3039,20 @@ sepNavWindowFrame = "{{111, 123}, {750, 534}}"; }; }; + F5375596016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {614, 62621}}"; + sepNavSelRange = "{61869, 20}"; + sepNavVisRect = "{{0, 26690}, {614, 982}}"; + }; + }; + F5375598016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {614, 28699}}"; + sepNavSelRange = "{36330, 0}"; + sepNavVisRect = "{{0, 22180}, {614, 982}}"; + }; + }; F5375599016C389901DC9062 = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {794, 6915}}"; @@ -589,6 +3060,36 @@ sepNavVisRect = "{{0, 1708}, {794, 267}}"; }; }; + F53755AA016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 6607}}"; + sepNavSelRange = "{3482, 37}"; + sepNavVisRect = "{{0, 1519}, {711, 449}}"; + sepNavWindowFrame = "{{88, 144}, {750, 534}}"; + }; + }; + F53755B6016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {711, 20313}}"; + sepNavSelRange = "{34727, 19}"; + sepNavVisRect = "{{0, 19864}, {711, 449}}"; + sepNavWindowFrame = "{{19, 207}, {750, 534}}"; + }; + }; + F53755C6016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {923, 13579}}"; + sepNavSelRange = "{15286, 63}"; + sepNavVisRect = "{{0, 7782}, {923, 522}}"; + }; + }; + F53755CB016C389901DC9062 = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {614, 9953}}"; + sepNavSelRange = "{0, 0}"; + sepNavVisRect = "{{0, 0}, {614, 982}}"; + }; + }; F53755DF016C38D201DC9062 = { activeExec = 0; }; @@ -617,13 +3118,20 @@ ); configStateDict = { }; + cppStopOnCatchEnabled = 0; + cppStopOnThrowEnabled = 0; + customDataFormattersEnabled = 1; debuggerPlugin = GDBDebugging; + disassemblyDisplayState = 0; dylibVariantSuffix = ""; enableDebugStr = 1; environmentEntries = ( ); isa = PBXExecutable; + libgmallocEnabled = 0; name = Wish; + savedGlobals = { + }; shlibInfoDictList = ( ); sourceDirectories = ( diff --git a/macosx/Wish.pbproj/project.pbxproj b/macosx/Wish.pbproj/project.pbxproj index 204d338..13f0ac0 100644 --- a/macosx/Wish.pbproj/project.pbxproj +++ b/macosx/Wish.pbproj/project.pbxproj @@ -5,6 +5,41 @@ }; objectVersion = 39; objects = { + 4C148E2007ECCFAC0033822E = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.h; + name = tkEntry.h; + path = /Volumes/CodeBits/jingham/Tcl/Source/tk/generic/tkEntry.h; + refType = 0; + sourceTree = ""; + }; + 4C148E2107ECCFAC0033822E = { + fileRef = 4C148E2007ECCFAC0033822E; + isa = PBXBuildFile; + settings = { + }; + }; + 4C148E2407ECCFCF0033822E = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = tkMacOSXEntry.c; + refType = 4; + sourceTree = ""; + }; + 4C148E2507ECCFCF0033822E = { + fileRef = 4C148E2407ECCFCF0033822E; + isa = PBXBuildFile; + settings = { + }; + }; + 4C278DC507F2A0050034F48B = { + fileRef = F53755CB016C389901DC9062; + isa = PBXBuildFile; + settings = { + }; + }; 4C3B4CF6040B18B200C916F0 = { fileEncoding = 30; isa = PBXFileReference; @@ -19,6 +54,12 @@ settings = { }; }; + 4C69CD7D061A6CA500E36205 = { + fileRef = F53755B6016C389901DC9062; + isa = PBXBuildFile; + settings = { + }; + }; 4C8A204005E041E800C18A82 = { containerPortal = F537552A016C352C01DC9062; isa = PBXContainerItemProxy; @@ -47,6 +88,14 @@ settings = { }; }; + 4CB2D7CF0619F8EB0081E375 = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.c.c; + path = tkMacOSXScale.c; + refType = 4; + sourceTree = ""; + }; //4C0 //4C1 //4C2 @@ -238,6 +287,7 @@ }; F537552F016C376E01DC9062 = { children = ( + 4C148E2007ECCFAC0033822E, F5375569016C37A601DC9062, F537556A016C37A601DC9062, F537556B016C37A601DC9062, @@ -508,6 +558,7 @@ F5375550016C376E01DC9062, F5375551016C376E01DC9062, F5375552016C376E01DC9062, + 4C148E2407ECCFCF0033822E, F5375553016C376E01DC9062, F5375554016C376E01DC9062, F5375555016C376E01DC9062, @@ -520,6 +571,7 @@ F537555C016C376E01DC9062, F537555D016C376E01DC9062, F537555E016C376E01DC9062, + 4CB2D7CF0619F8EB0081E375, F5375560016C376E01DC9062, F5375561016C376E01DC9062, F5375562016C376E01DC9062, @@ -1987,6 +2039,7 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F537569B016C3F1001DC9062, F537569C016C3F1001DC9062, F5BFE59002F8C45B01DC9062, + 4C148E2107ECCFAC0033822E, ); isa = PBXHeadersBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -2055,7 +2108,6 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F5375637016C397D01DC9062, F5375638016C397D01DC9062, F5375639016C397D01DC9062, - F537563A016C397D01DC9062, F537563B016C397D01DC9062, F537563C016C397D01DC9062, F537563D016C397D01DC9062, @@ -2100,7 +2152,6 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F537566A016C39A101DC9062, F537566B016C39A101DC9062, F537566C016C39F201DC9062, - F537566D016C39F201DC9062, F5375677016C3A6D01DC9062, F5375678016C3A6D01DC9062, F5375679016C3A6D01DC9062, @@ -2111,6 +2162,9 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright F5BFE58D02F8C41501DC9062, F5BFE58E02F8C41501DC9062, 4C8A204505E0421900C18A82, + 4C69CD7D061A6CA500E36205, + 4C148E2507ECCFCF0033822E, + 4C278DC507F2A0050034F48B, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -2673,12 +2727,6 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright settings = { }; }; - F537563A016C397D01DC9062 = { - fileRef = F53755B6016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; F537563B016C397D01DC9062 = { fileRef = F53755B7016C389901DC9062; isa = PBXBuildFile; @@ -2943,12 +2991,6 @@ MacOS X Port by Jim Ingham <jingham@apple.com> & Ian Reid, Copyright settings = { }; }; - F537566D016C39F201DC9062 = { - fileRef = F53755CB016C389901DC9062; - isa = PBXBuildFile; - settings = { - }; - }; F537566E016C3A1F01DC9062 = { fileRef = F53755CE016C389901DC9062; isa = PBXBuildFile; diff --git a/macosx/tkMacOSXDefault.h b/macosx/tkMacOSXDefault.h index 3c04fc0..e4e833c 100644 --- a/macosx/tkMacOSXDefault.h +++ b/macosx/tkMacOSXDefault.h @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXDefault.h,v 1.6 2004/11/11 01:24:32 das Exp $ + * RCS: @(#) $Id: tkMacOSXDefault.h,v 1.7 2005/03/24 07:16:13 wolfsuit Exp $ */ #ifndef _TKMACDEFAULT @@ -138,11 +138,21 @@ /* * Defaults for entries: */ + +/* + * I test the following two values in TkpDrawEntryBorderAndFocus + * to determine whether to use the native entry widget. So if + * you change the defaults to be different from these, then you + * won't get the native widget by default. + */ + +#define MAC_OSX_FOCUS_WIDTH 3 +#define MAC_OSX_ENTRY_BORDER 5 +#define MAC_OSX_ENTRY_RELEIF TK_RELIEF_SUNKEN #define DEF_ENTRY_BG_COLOR NORMAL_BG #define DEF_ENTRY_BG_MONO WHITE -/* #define DEF_ENTRY_BORDER_WIDTH "2" */ -#define DEF_ENTRY_BORDER_WIDTH "1" +#define DEF_ENTRY_BORDER_WIDTH "5" #define DEF_ENTRY_CURSOR "xterm" #define DEF_ENTRY_DISABLED_BG_COLOR NORMAL_BG #define DEF_ENTRY_DISABLED_BG_MONO WHITE @@ -153,7 +163,7 @@ #define DEF_ENTRY_HIGHLIGHT_BG NORMAL_BG #define DEF_ENTRY_HIGHLIGHT BLACK /* #define DEF_ENTRY_HIGHLIGHT_WIDTH "3" */ -#define DEF_ENTRY_HIGHLIGHT_WIDTH "0" +#define DEF_ENTRY_HIGHLIGHT_WIDTH "3" #define DEF_ENTRY_INSERT_BG BLACK #define DEF_ENTRY_INSERT_BD_COLOR "0" #define DEF_ENTRY_INSERT_BD_MONO "0" @@ -164,8 +174,8 @@ #define DEF_ENTRY_JUSTIFY "left" #define DEF_ENTRY_READONLY_BG_COLOR NORMAL_BG #define DEF_ENTRY_READONLY_BG_MONO WHITE -/* #define DEF_ENTRY_RELIEF "sunken" */ -#define DEF_ENTRY_RELIEF "solid" +#define DEF_ENTRY_RELIEF "sunken" +/* #define DEF_ENTRY_RELIEF "solid" */ #define DEF_ENTRY_SCROLL_COMMAND "" #define DEF_ENTRY_SELECT_COLOR SELECT_BG #define DEF_ENTRY_SELECT_MONO BLACK diff --git a/macosx/tkMacOSXEntry.c b/macosx/tkMacOSXEntry.c new file mode 100644 index 0000000..d56245e --- /dev/null +++ b/macosx/tkMacOSXEntry.c @@ -0,0 +1,326 @@ +/* + * tkMacOSXEntry.c -- + * + * This file implements functions that decode & handle keyboard events + * on MacOS X. + * + * Copyright 2001, Apple Computer, Inc. + * + * The following terms apply to all files originating from Apple + * Computer, Inc. ("Apple") and associated with the software + * unless explicitly disclaimed in individual files. + * + * + * Apple hereby grants permission to use, copy, modify, + * distribute, and license this software and its documentation + * for any purpose, provided that existing copyright notices are + * retained in all copies and that this notice is included + * verbatim in any distributions. No written agreement, license, + * or royalty fee is required for any of the authorized + * uses. Modifications to this software may be copyrighted by + * their authors and need not follow the licensing terms + * described here, provided that the new terms are clearly + * indicated on the first page of each file where they apply. + * + * + * IN NO EVENT SHALL APPLE, THE AUTHORS OR DISTRIBUTORS OF THE + * SOFTWARE BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, + * INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF + * THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, + * EVEN IF APPLE OR THE AUTHORS HAVE BEEN ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. APPLE, THE AUTHORS AND + * DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS + * SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND APPLE,THE + * AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE + * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * GOVERNMENT USE: If you are acquiring this software on behalf + * of the U.S. government, the Government shall have only + * "Restricted Rights" in the software and related documentation + * as defined in the Federal Acquisition Regulations (FARs) in + * Clause 52.227.19 (c) (2). If you are acquiring the software + * on behalf of the Department of Defense, the software shall be + * classified as "Commercial Computer Software" and the + * Government shall have only "Restricted Rights" as defined in + * Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the + * foregoing, the authors grant the U.S. Government and others + * acting in its behalf permission to use and distribute the + * software in accordance with the terms specified in this + * license. + */ + +#include "tk.h" +#include "tkInt.h" +#include "tkMacOSXInt.h" +#include "tkMacOSXDefault.h" +#include "tkEntry.h" + +ThemeButtonKind ComputeIncDecParameters (int height, int *width); + +/* + *-------------------------------------------------------------- + * + * ComputeIncDecParameters -- + * + * This procedure figures out which of the kThemeIncDec + * buttons to use. It also sets width to the width of the + * IncDec button. + * + * Results: + * The ThemeButtonKind of the button we should use. + * + * Side effects: + * May draw the entry border into pixmap. + * + *-------------------------------------------------------------- + */ +ThemeButtonKind +ComputeIncDecParameters (int height, int *width) +{ + static int version = 0; + + if (version == 0) { + Gestalt(gestaltSystemVersion, (long *) &version); + } + + /* + * The small and mini incDec buttons were introduced in 10.3. + */ + + if (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); + + 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; +} + diff --git a/macosx/tkMacOSXScale.c b/macosx/tkMacOSXScale.c index c271ec0..d0d8de8 100644 --- a/macosx/tkMacOSXScale.c +++ b/macosx/tkMacOSXScale.c @@ -10,7 +10,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkMacOSXScale.c,v 1.3 2004/02/16 00:19:42 wolfsuit Exp $ + * RCS: @(#) $Id: tkMacOSXScale.c,v 1.4 2005/03/24 07:16:13 wolfsuit Exp $ */ #include "tkScale.h" @@ -147,12 +147,11 @@ TkpDisplayScale(clientData) CGrafPtr saveWorld; GDHandle saveDevice; MacDrawable *macDraw; - SInt16 initialValue; - SInt16 minValue; - SInt16 maxValue; - SInt16 procID; - SInt32 controlReference; - Boolean initiallyVisible = true; + SInt32 initialValue; + SInt32 minValue; + SInt32 maxValue; + UInt16 numTicks; + fprintf(stderr,"TkpDisplayScale\n"); scalePtr->flags &= ~REDRAW_PENDING; @@ -215,21 +214,58 @@ TkpDisplayScale(clientData) /* * Create Macintosh control. */ - if (macScalePtr->scaleHandle == NULL) { - fprintf(stderr,"Initialising scale\n"); - r.left = macDraw->xOff; - r.top = macDraw->yOff; + +#define MAC_OSX_SCROLL_WIDTH 10 + + if (scalePtr->orient == ORIENT_HORIZONTAL) { + int offset; + offset = (Tk_Height(tkwin) - MAC_OSX_SCROLL_WIDTH)/2; + if (offset < 0) { + offset = 0; + } + + r.left = macDraw->xOff + scalePtr->inset; + r.top = macDraw->yOff + offset; r.right = macDraw->xOff+Tk_Width(tkwin) - scalePtr->inset; + r.bottom = macDraw->yOff + offset + MAC_OSX_SCROLL_WIDTH/2; + } else { + int offset; + + offset = (Tk_Width(tkwin) - MAC_OSX_SCROLL_WIDTH)/2; + if (offset < 0) { + offset = 0; + } + + r.left = macDraw->xOff + offset; + r.top = macDraw->yOff + scalePtr->inset; + r.right = macDraw->xOff + offset + MAC_OSX_SCROLL_WIDTH/2; r.bottom = macDraw->yOff+Tk_Height(tkwin) - scalePtr->inset; + } + + if (macScalePtr->scaleHandle == NULL) { + + fprintf(stderr,"Initialising scale\n"); initialValue = scalePtr->value; - minValue = scalePtr->toValue; - maxValue = scalePtr->fromValue; - procID = kControlSliderProc; - controlReference = (SInt32) macScalePtr; - macScalePtr->scaleHandle = NewControl(windowRef, - &r, "\p", initiallyVisible, initialValue,minValue,maxValue, - procID, controlReference); + if (scalePtr->orient == ORIENT_HORIZONTAL) { + minValue = scalePtr->fromValue; + maxValue = scalePtr->toValue; + } else { + minValue = scalePtr->fromValue; + maxValue = scalePtr->toValue; + } + + if (scalePtr->tickInterval == 0) { + numTicks = 0; + } else { + numTicks = (maxValue - minValue)/scalePtr->tickInterval; + } + + CreateSliderControl(windowRef, &r, initialValue, minValue, maxValue, + kControlSliderPointsDownOrRight, numTicks, + 1, scaleActionProc, + &(macScalePtr->scaleHandle)); + SetControlReference(macScalePtr->scaleHandle, (UInt32) scalePtr); /* * If we are foremost than make us active. @@ -237,6 +273,11 @@ TkpDisplayScale(clientData) if (windowRef == FrontWindow()) { macScalePtr->flags |= ACTIVE; } + } else { + SetControlBounds(macScalePtr->scaleHandle, &r); + SetControl32BitValue(macScalePtr->scaleHandle, scalePtr->value); + SetControl32BitMinimum(macScalePtr->scaleHandle, scalePtr->fromValue); + SetControl32BitMaximum(macScalePtr->scaleHandle, scalePtr->toValue); } /* @@ -375,7 +416,7 @@ MacScaleEventProc(clientData, eventPtr) return; } - part = TrackControl(macScalePtr->scaleHandle, where, scaleActionProc); + part = TrackControl(macScalePtr->scaleHandle, where, (void *) -1); /* * Update the value for the widget. @@ -414,9 +455,9 @@ MacScaleEventProc(clientData, eventPtr) */ static pascal void -ScaleActionProc(ControlRef theControl, ControlPartCode partCode) - /* ControlRef theControl; /* Handle to scrollbat control */ - /* ControlPartCode partCode; /* Part of scrollbar that was "hit" */ +ScaleActionProc( + ControlRef theControl, /* Handle to scrollbat control */ + ControlPartCode partCode) /* Part of scrollbar that was "hit" */ { int value; TkScale *scalePtr = (TkScale *) GetControlReference(theControl); -- cgit v0.12