summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
Diffstat (limited to 'generic')
-rw-r--r--generic/README2
-rw-r--r--generic/default.h2
-rw-r--r--generic/ks_names.h1
-rw-r--r--generic/tk.decls30
-rw-r--r--generic/tk.h10
-rw-r--r--generic/tk3d.c2
-rw-r--r--generic/tk3d.h2
-rw-r--r--generic/tkArgv.c2
-rw-r--r--generic/tkAtom.c2
-rw-r--r--generic/tkBind.c30
-rw-r--r--generic/tkBitmap.c28
-rw-r--r--generic/tkBusy.c2
-rw-r--r--generic/tkBusy.h2
-rw-r--r--generic/tkButton.c72
-rw-r--r--generic/tkButton.h2
-rw-r--r--generic/tkCanvArc.c2
-rw-r--r--generic/tkCanvBmap.c2
-rw-r--r--generic/tkCanvImg.c2
-rw-r--r--generic/tkCanvLine.c2
-rw-r--r--generic/tkCanvPoly.c2
-rw-r--r--generic/tkCanvPs.c2
-rw-r--r--generic/tkCanvText.c2
-rw-r--r--generic/tkCanvUtil.c2
-rw-r--r--generic/tkCanvWind.c2
-rw-r--r--generic/tkCanvas.c3
-rw-r--r--generic/tkCanvas.h2
-rw-r--r--generic/tkClipboard.c9
-rw-r--r--generic/tkCmds.c2
-rw-r--r--generic/tkColor.c130
-rw-r--r--generic/tkColor.h2
-rw-r--r--generic/tkConfig.c2
-rw-r--r--generic/tkConsole.c28
-rw-r--r--generic/tkCursor.c6
-rw-r--r--generic/tkDecls.h45
-rw-r--r--generic/tkEntry.c67
-rw-r--r--generic/tkError.c2
-rw-r--r--generic/tkEvent.c8
-rw-r--r--generic/tkFileFilter.c2
-rw-r--r--generic/tkFileFilter.h3
-rw-r--r--generic/tkFocus.c10
-rw-r--r--generic/tkFont.c2
-rw-r--r--generic/tkFont.h2
-rw-r--r--generic/tkFrame.c22
-rw-r--r--generic/tkGC.c2
-rw-r--r--generic/tkGeometry.c2
-rw-r--r--generic/tkGet.c2
-rw-r--r--generic/tkGrab.c6
-rw-r--r--generic/tkGrid.c2
-rw-r--r--generic/tkImage.c2
-rw-r--r--generic/tkImgBmap.c6
-rw-r--r--generic/tkImgGIF.c2
-rw-r--r--generic/tkImgPNG.c21
-rw-r--r--generic/tkImgPPM.c2
-rw-r--r--generic/tkImgPhInstance.c6
-rw-r--r--generic/tkImgPhoto.c10
-rw-r--r--generic/tkImgPhoto.h4
-rw-r--r--generic/tkImgUtil.c2
-rw-r--r--generic/tkInt.decls302
-rw-r--r--generic/tkInt.h17
-rw-r--r--generic/tkIntDecls.h208
-rw-r--r--generic/tkIntPlatDecls.h74
-rw-r--r--generic/tkIntXlibDecls.h433
-rw-r--r--generic/tkListbox.c28
-rw-r--r--generic/tkMacWinMenu.c2
-rw-r--r--generic/tkMain.c44
-rw-r--r--generic/tkMenu.c14
-rw-r--r--generic/tkMenu.h2
-rw-r--r--generic/tkMenuDraw.c30
-rw-r--r--generic/tkMenubutton.c12
-rw-r--r--generic/tkMenubutton.h2
-rw-r--r--generic/tkMessage.c10
-rw-r--r--generic/tkObj.c163
-rw-r--r--generic/tkOldConfig.c2
-rw-r--r--generic/tkOldTest.c2
-rw-r--r--generic/tkOption.c2
-rw-r--r--generic/tkPack.c2
-rw-r--r--generic/tkPanedWindow.c12
-rw-r--r--generic/tkPlace.c4
-rw-r--r--generic/tkPlatDecls.h8
-rw-r--r--generic/tkPointer.c8
-rw-r--r--generic/tkPort.h2
-rw-r--r--generic/tkRectOval.c2
-rw-r--r--generic/tkScale.c20
-rw-r--r--generic/tkScale.h2
-rw-r--r--generic/tkScrollbar.c2
-rw-r--r--generic/tkScrollbar.h2
-rw-r--r--generic/tkSelect.c2
-rw-r--r--generic/tkSelect.h2
-rw-r--r--generic/tkSquare.c12
-rw-r--r--generic/tkStubInit.c317
-rw-r--r--generic/tkStubLib.c2
-rw-r--r--generic/tkStyle.c2
-rw-r--r--generic/tkTest.c22
-rw-r--r--generic/tkText.c123
-rw-r--r--generic/tkText.h9
-rw-r--r--generic/tkTextBTree.c39
-rw-r--r--generic/tkTextDisp.c18
-rw-r--r--generic/tkTextImage.c4
-rw-r--r--generic/tkTextIndex.c2
-rw-r--r--generic/tkTextMark.c96
-rw-r--r--generic/tkTextTag.c11
-rw-r--r--generic/tkTextWind.c4
-rw-r--r--generic/tkTrig.c2
-rw-r--r--generic/tkUndo.c2
-rw-r--r--generic/tkUndo.h2
-rw-r--r--generic/tkUtil.c2
-rw-r--r--generic/tkVisual.c2
-rw-r--r--generic/tkWindow.c244
-rw-r--r--generic/ttk/ttk.decls4
-rw-r--r--generic/ttk/ttkBlink.c2
-rw-r--r--generic/ttk/ttkButton.c15
-rw-r--r--generic/ttk/ttkCache.c1
-rw-r--r--generic/ttk/ttkClamTheme.c2
-rw-r--r--generic/ttk/ttkClassicTheme.c2
-rw-r--r--generic/ttk/ttkDecls.h2
-rw-r--r--generic/ttk/ttkDefaultTheme.c3
-rw-r--r--generic/ttk/ttkElements.c3
-rw-r--r--generic/ttk/ttkEntry.c48
-rw-r--r--generic/ttk/ttkFrame.c3
-rw-r--r--generic/ttk/ttkGenStubs.tcl2
-rw-r--r--generic/ttk/ttkImage.c4
-rw-r--r--generic/ttk/ttkInit.c4
-rw-r--r--generic/ttk/ttkLabel.c40
-rw-r--r--generic/ttk/ttkLayout.c2
-rw-r--r--generic/ttk/ttkManager.c3
-rw-r--r--generic/ttk/ttkManager.h3
-rw-r--r--generic/ttk/ttkNotebook.c5
-rw-r--r--generic/ttk/ttkPanedwindow.c6
-rw-r--r--generic/ttk/ttkProgress.c5
-rw-r--r--generic/ttk/ttkScale.c5
-rw-r--r--generic/ttk/ttkScroll.c3
-rw-r--r--generic/ttk/ttkScrollbar.c3
-rw-r--r--generic/ttk/ttkSeparator.c14
-rw-r--r--generic/ttk/ttkSquare.c5
-rw-r--r--generic/ttk/ttkState.c2
-rw-r--r--generic/ttk/ttkStubInit.c2
-rw-r--r--generic/ttk/ttkStubLib.c5
-rw-r--r--generic/ttk/ttkTagSet.c3
-rw-r--r--generic/ttk/ttkTheme.c2
-rw-r--r--generic/ttk/ttkTheme.h2
-rw-r--r--generic/ttk/ttkThemeInt.h2
-rw-r--r--generic/ttk/ttkTrace.c49
-rw-r--r--generic/ttk/ttkTrack.c2
-rw-r--r--generic/ttk/ttkTreeview.c15
-rw-r--r--generic/ttk/ttkWidget.c2
-rw-r--r--generic/ttk/ttkWidget.h25
146 files changed, 1840 insertions, 1413 deletions
diff --git a/generic/README b/generic/README
index b7c8c12..6ac6bb4 100644
--- a/generic/README
+++ b/generic/README
@@ -1,5 +1,3 @@
This directory contains Tk source files that work on all the platforms
where Tk runs (e.g. UNIX, PCs, and MacOSX). Platform-specific
sources are in the directories ../unix, ../win, and ../macosx.
-
-RCS ID: @(#) $Id: README,v 1.3 2004/03/17 18:15:42 das Exp $
diff --git a/generic/default.h b/generic/default.h
index 1f3a04c..6156f4d 100644
--- a/generic/default.h
+++ b/generic/default.h
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: default.h,v 1.6 2008/11/06 22:19:00 nijtmans Exp $
*/
#ifndef _DEFAULT
diff --git a/generic/ks_names.h b/generic/ks_names.h
index aec53e8..22d9fc5 100644
--- a/generic/ks_names.h
+++ b/generic/ks_names.h
@@ -1,6 +1,5 @@
/*
* This file is generated from $(INCLUDESRC)/keysymdef.h. Do not edit.
- * RCS: $Id: ks_names.h,v 1.5 2006/07/21 07:07:00 das Exp $
*/
{ "BackSpace", 0xFF08 },
{ "Tab", 0xFF09 },
diff --git a/generic/tk.decls b/generic/tk.decls
index f33200a..11b4f87 100644
--- a/generic/tk.decls
+++ b/generic/tk.decls
@@ -10,8 +10,6 @@
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#) $Id: tk.decls,v 1.55 2010/09/28 10:42:05 nijtmans Exp $
library tk
@@ -209,8 +207,8 @@ declare 43 {
const char *pathName, const char *screenName)
}
declare 44 {
- int Tk_OldDefineBitmap(Tcl_Interp *interp, const char *name,
- const char *source, int width, int height)
+ int Tk_DefineBitmap(Tcl_Interp *interp, const char *name,
+ const void *source, int width, int height)
}
declare 45 {
void Tk_DefineCursor(Tk_Window window, Tk_Cursor cursor)
@@ -361,8 +359,8 @@ declare 85 {
Pixmap Tk_GetBitmap(Tcl_Interp *interp, Tk_Window tkwin, const char *str)
}
declare 86 {
- Pixmap Tk_OldGetBitmapFromData(Tcl_Interp *interp,
- Tk_Window tkwin, const char *source, int width, int height)
+ Pixmap Tk_GetBitmapFromData(Tcl_Interp *interp,
+ Tk_Window tkwin, const void *source, int width, int height)
}
declare 87 {
int Tk_GetCapStyle(Tcl_Interp *interp, const char *str, int *capPtr)
@@ -748,7 +746,6 @@ declare 194 {
declare 195 {
void Tk_FreeConfigOptions(char *recordPtr, Tk_OptionTable optionToken,
Tk_Window tkwin)
-
}
declare 196 {
void Tk_FreeSavedOptions(Tk_SavedOptions *savePtr)
@@ -830,15 +827,12 @@ declare 216 {
declare 217 {
void Tk_CreateSmoothMethod(Tcl_Interp *interp, const Tk_SmoothMethod *method)
}
-
#declare 218 {
# void Tk_CreateCanvasVisitor(Tcl_Interp *interp, void *typePtr)
#}
-
#declare 219 {
# void *Tk_GetCanvasVisitor(Tcl_Interp *interp, const char *name)
#}
-
declare 220 {
int Tk_GetDash(Tcl_Interp *interp, const char *value, Tk_Dash *dash)
}
@@ -1075,15 +1069,11 @@ declare 273 {
void Tk_CreateOldPhotoImageFormat(const Tk_PhotoImageFormat *formatPtr)
}
-# See [Enhancement request 2636558] Tk_DefineBitmap and
-# Tk_GetBitmapFromData signature problem
declare 274 {
- int Tk_DefineBitmap(Tcl_Interp *interp, const char *name,
- const void *source, int width, int height)
+ void reserved274(void)
}
declare 275 {
- Pixmap Tk_GetBitmapFromData(Tcl_Interp *interp,
- Tk_Window tkwin, const void *source, int width, int height)
+ void reserved275(void)
}
# Define the platform specific public Tk interface. These functions are
@@ -1092,10 +1082,6 @@ declare 275 {
interface tkPlat
################################
-# Unix specific functions
-# (none)
-
-################################
# Windows specific functions
declare 0 win {
@@ -1169,3 +1155,7 @@ export {
const char *Tk_PkgInitStubsCheck(Tcl_Interp *interp, const char *version,
int exact)
}
+
+# Local Variables:
+# mode: tcl
+# End:
diff --git a/generic/tk.h b/generic/tk.h
index cb77f86..23b17f8 100644
--- a/generic/tk.h
+++ b/generic/tk.h
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tk.h,v 1.138 2010/12/16 09:03:07 nijtmans Exp $
*/
#ifndef _TK
@@ -52,10 +50,10 @@ extern "C" {
#define TK_MAJOR_VERSION 8
#define TK_MINOR_VERSION 6
#define TK_RELEASE_LEVEL TCL_BETA_RELEASE
-#define TK_RELEASE_SERIAL 1
+#define TK_RELEASE_SERIAL 2
#define TK_VERSION "8.6"
-#define TK_PATCH_LEVEL "8.6b1.2"
+#define TK_PATCH_LEVEL "8.6b2"
/*
* A special definition used to allow this header file to be included from
@@ -183,7 +181,7 @@ typedef struct Tk_OptionSpec {
* the record. */
int flags; /* Any combination of the values defined
* below. */
- ClientData clientData; /* An alternate place to put option-specific
+ const void *clientData; /* An alternate place to put option-specific
* data. Used for the monochrome default value
* for colors, etc. */
int typeMask; /* An arbitrary bit mask defined by the class
@@ -1473,7 +1471,7 @@ typedef struct Tk_ElementSpec {
#define Tk_Release Tcl_Release
/* Removed Tk_Main, use macro instead */
-#ifdef _WIN32
+#if defined(__WIN32__) || defined(__CYGWIN__)
#define Tk_Main(argc, argv, proc) Tk_MainEx(argc, argv, proc, \
(Tcl_FindExecutable(0), (Tcl_CreateInterp)()))
#else
diff --git a/generic/tk3d.c b/generic/tk3d.c
index 47c45c4..2920c76 100644
--- a/generic/tk3d.c
+++ b/generic/tk3d.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tk3d.c,v 1.26 2009/11/21 17:24:42 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tk3d.h b/generic/tk3d.h
index cce78bf..891e927 100644
--- a/generic/tk3d.h
+++ b/generic/tk3d.h
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tk3d.h,v 1.10 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TK3D
diff --git a/generic/tkArgv.c b/generic/tkArgv.c
index a69e3e3..3f235ad 100644
--- a/generic/tkArgv.c
+++ b/generic/tkArgv.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkArgv.c,v 1.18 2010/02/16 21:12:56 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkAtom.c b/generic/tkAtom.c
index 43995e6..2491fb2 100644
--- a/generic/tkAtom.c
+++ b/generic/tkAtom.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkAtom.c,v 1.13 2010/11/29 09:07:13 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkBind.c b/generic/tkBind.c
index e77667f..e58ad4d 100644
--- a/generic/tkBind.c
+++ b/generic/tkBind.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkBind.c,v 1.68 2010/06/21 12:14:08 nijtmans Exp $
*/
#include "tkInt.h"
@@ -2030,7 +2028,7 @@ ExpandPercents(
string = numStorage;
goto doString;
case 'k':
- if (flags & KEY) {
+ if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) {
number = eventPtr->xkey.keycode;
goto doNumber;
}
@@ -2149,7 +2147,7 @@ ExpandPercents(
}
goto doNumber;
case 'A':
- if (flags & KEY) {
+ if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) {
Tcl_DStringFree(&buf);
string = TkpGetString(winPtr, eventPtr, &buf);
}
@@ -2170,7 +2168,7 @@ ExpandPercents(
* This is used only by the MouseWheel event.
*/
- if (flags & KEY) {
+ if ((flags & KEY) && (eventPtr->type == MouseWheelEvent)) {
number = eventPtr->xkey.keycode;
goto doNumber;
}
@@ -2179,7 +2177,7 @@ ExpandPercents(
number = (int) eventPtr->xany.send_event;
goto doNumber;
case 'K':
- if (flags & KEY) {
+ if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) {
const char *name = TkKeysymToString(keySym);
if (name != NULL) {
@@ -2188,7 +2186,7 @@ ExpandPercents(
}
goto doString;
case 'N':
- if (flags & KEY) {
+ if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) {
number = (int) keySym;
goto doNumber;
}
@@ -2228,33 +2226,19 @@ ExpandPercents(
}
case 'X':
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- Tk_Window tkwin;
- int x, y;
- int width, height;
number = eventPtr->xkey.x_root;
- tkwin = Tk_IdToWindow(eventPtr->xany.display,
+ Tk_IdToWindow(eventPtr->xany.display,
eventPtr->xany.window);
- if (tkwin != NULL) {
- Tk_GetVRootGeometry(tkwin, &x, &y, &width, &height);
- number -= x;
- }
goto doNumber;
}
goto doString;
case 'Y':
if (flags & KEY_BUTTON_MOTION_CROSSING) {
- Tk_Window tkwin;
- int x, y;
- int width, height;
number = eventPtr->xkey.y_root;
- tkwin = Tk_IdToWindow(eventPtr->xany.display,
+ Tk_IdToWindow(eventPtr->xany.display,
eventPtr->xany.window);
- if (tkwin != NULL) {
- Tk_GetVRootGeometry(tkwin, &x, &y, &width, &height);
- number -= y;
- }
goto doNumber;
}
goto doString;
diff --git a/generic/tkBitmap.c b/generic/tkBitmap.c
index bdf160f..b0d1ecc 100644
--- a/generic/tkBitmap.c
+++ b/generic/tkBitmap.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkBitmap.c,v 1.28 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
@@ -25,7 +23,7 @@
* that warning message.
*/
-#if (defined(__WIN32__) || defined(_WIN32)) && !defined(__GNUC__)
+#if defined(_MSC_VER)
#pragma warning (disable : 4305)
#endif
@@ -40,7 +38,7 @@
#include "question.xbm"
#include "warning.xbm"
-#if (defined(__WIN32__) || defined(_WIN32)) && !defined(__GNUC__)
+#if defined(_MSC_VER)
#pragma warning (default : 4305)
#endif
@@ -460,18 +458,6 @@ GetBitmap(
*/
int
-Tk_OldDefineBitmap(
- Tcl_Interp *interp, /* Interpreter to use for error reporting. */
- const char *name, /* Name to use for bitmap. Must not already be
- * defined as a bitmap. */
- const char *source, /* Address of bits for bitmap. */
- int width, /* Width of bitmap. */
- int height) /* Height of bitmap. */
-{
- return Tk_DefineBitmap(interp, name, source, width, height);
-}
-
-int
Tk_DefineBitmap(
Tcl_Interp *interp, /* Interpreter to use for error reporting. */
const char *name, /* Name to use for bitmap. Must not already be
@@ -816,16 +802,6 @@ DupBitmapObjProc(
/* ARGSUSED */
Pixmap
-Tk_OldGetBitmapFromData(
- Tcl_Interp *interp, /* Interpreter to use for error reporting. */
- Tk_Window tkwin, /* Window in which bitmap will be used. */
- const char *source, /* Bitmap data for bitmap shape. */
- int width, int height) /* Dimensions of bitmap. */
-{
- return Tk_GetBitmapFromData(interp, tkwin, source, width, height);
-}
-
-Pixmap
Tk_GetBitmapFromData(
Tcl_Interp *interp, /* Interpreter to use for error reporting. */
Tk_Window tkwin, /* Window in which bitmap will be used. */
diff --git a/generic/tkBusy.c b/generic/tkBusy.c
index 3a683e3..fc7f6ab 100644
--- a/generic/tkBusy.c
+++ b/generic/tkBusy.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkBusy.c,v 1.9 2010/02/13 13:47:49 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkBusy.h b/generic/tkBusy.h
index 5014ebe..9e6b69b 100644
--- a/generic/tkBusy.h
+++ b/generic/tkBusy.h
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkBusy.h,v 1.1 2008/10/20 10:50:20 dkf Exp $
*/
typedef struct Busy {
diff --git a/generic/tkButton.c b/generic/tkButton.c
index 10b36fb..e2c754e 100644
--- a/generic/tkButton.c
+++ b/generic/tkButton.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkButton.c,v 1.39 2010/02/18 22:31:31 nijtmans Exp $
*/
#include "tkInt.h"
@@ -73,19 +71,19 @@ char tkDefLabelPady[TCL_INTEGER_SPACE] = DEF_LABCHKRAD_PADY;
static const Tk_OptionSpec labelOptionSpecs[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
DEF_BUTTON_ACTIVE_BG_COLOR, -1, Tk_Offset(TkButton, activeBorder),
- 0, (ClientData) DEF_BUTTON_ACTIVE_BG_MONO, 0},
+ 0, DEF_BUTTON_ACTIVE_BG_MONO, 0},
{TK_OPTION_COLOR, "-activeforeground", "activeForeground", "Background",
DEF_BUTTON_ACTIVE_FG_COLOR, -1, Tk_Offset(TkButton, activeFg),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_ACTIVE_FG_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_ACTIVE_FG_MONO, 0},
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
DEF_BUTTON_ANCHOR, -1, Tk_Offset(TkButton, anchor), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_BUTTON_BG_COLOR, -1, Tk_Offset(TkButton, normalBorder),
- 0, (ClientData) DEF_BUTTON_BG_MONO, 0},
+ 0, DEF_BUTTON_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_BITMAP, "-bitmap", "bitmap", "Bitmap",
DEF_BUTTON_BITMAP, -1, Tk_Offset(TkButton, bitmap),
TK_OPTION_NULL_OK, 0, 0},
@@ -94,7 +92,7 @@ static const Tk_OptionSpec labelOptionSpecs[] = {
Tk_Offset(TkButton, borderWidth), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound",
DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0,
- (ClientData) compoundStrings, 0},
+ compoundStrings, 0},
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor),
TK_OPTION_NULL_OK, 0, 0},
@@ -103,7 +101,7 @@ static const Tk_OptionSpec labelOptionSpecs[] = {
-1, Tk_Offset(TkButton, disabledFg), TK_OPTION_NULL_OK,
(ClientData) DEF_BUTTON_DISABLED_FG_MONO, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_BUTTON_FONT, -1, Tk_Offset(TkButton, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -136,7 +134,7 @@ static const Tk_OptionSpec labelOptionSpecs[] = {
DEF_LABCHKRAD_RELIEF, -1, Tk_Offset(TkButton, relief), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_LABEL_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
@@ -158,19 +156,19 @@ static const Tk_OptionSpec labelOptionSpecs[] = {
static const Tk_OptionSpec buttonOptionSpecs[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
DEF_BUTTON_ACTIVE_BG_COLOR, -1, Tk_Offset(TkButton, activeBorder),
- 0, (ClientData) DEF_BUTTON_ACTIVE_BG_MONO, 0},
+ 0, DEF_BUTTON_ACTIVE_BG_MONO, 0},
{TK_OPTION_COLOR, "-activeforeground", "activeForeground", "Background",
DEF_BUTTON_ACTIVE_FG_COLOR, -1, Tk_Offset(TkButton, activeFg),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_ACTIVE_FG_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_ACTIVE_FG_MONO, 0},
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
DEF_BUTTON_ANCHOR, -1, Tk_Offset(TkButton, anchor), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_BUTTON_BG_COLOR, -1, Tk_Offset(TkButton, normalBorder),
- 0, (ClientData) DEF_BUTTON_BG_MONO, 0},
+ 0, DEF_BUTTON_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_BITMAP, "-bitmap", "bitmap", "Bitmap",
DEF_BUTTON_BITMAP, -1, Tk_Offset(TkButton, bitmap),
TK_OPTION_NULL_OK, 0, 0},
@@ -182,19 +180,19 @@ static const Tk_OptionSpec buttonOptionSpecs[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound",
DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0,
- (ClientData) compoundStrings, 0},
+ compoundStrings, 0},
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-default", "default", "Default",
DEF_BUTTON_DEFAULT, -1, Tk_Offset(TkButton, defaultState),
- 0, (ClientData) defaultStrings, 0},
+ 0, defaultStrings, 0},
{TK_OPTION_COLOR, "-disabledforeground", "disabledForeground",
"DisabledForeground", DEF_BUTTON_DISABLED_FG_COLOR,
-1, Tk_Offset(TkButton, disabledFg), TK_OPTION_NULL_OK,
(ClientData) DEF_BUTTON_DISABLED_FG_MONO, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_BUTTON_FONT, -1, Tk_Offset(TkButton, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -237,7 +235,7 @@ static const Tk_OptionSpec buttonOptionSpecs[] = {
0, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
@@ -259,19 +257,19 @@ static const Tk_OptionSpec buttonOptionSpecs[] = {
static const Tk_OptionSpec checkbuttonOptionSpecs[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
DEF_BUTTON_ACTIVE_BG_COLOR, -1, Tk_Offset(TkButton, activeBorder),
- 0, (ClientData) DEF_BUTTON_ACTIVE_BG_MONO, 0},
+ 0, DEF_BUTTON_ACTIVE_BG_MONO, 0},
{TK_OPTION_COLOR, "-activeforeground", "activeForeground", "Background",
DEF_CHKRAD_ACTIVE_FG_COLOR, -1, Tk_Offset(TkButton, activeFg),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_ACTIVE_FG_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_ACTIVE_FG_MONO, 0},
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
DEF_BUTTON_ANCHOR, -1, Tk_Offset(TkButton, anchor), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_BUTTON_BG_COLOR, -1, Tk_Offset(TkButton, normalBorder),
- 0, (ClientData) DEF_BUTTON_BG_MONO, 0},
+ 0, DEF_BUTTON_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_BITMAP, "-bitmap", "bitmap", "Bitmap",
DEF_BUTTON_BITMAP, -1, Tk_Offset(TkButton, bitmap),
TK_OPTION_NULL_OK, 0, 0},
@@ -283,7 +281,7 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound",
DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0,
- (ClientData) compoundStrings, 0},
+ compoundStrings, 0},
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor),
TK_OPTION_NULL_OK, 0, 0},
@@ -292,7 +290,7 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = {
-1, Tk_Offset(TkButton, disabledFg), TK_OPTION_NULL_OK,
(ClientData) DEF_BUTTON_DISABLED_FG_MONO, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_BUTTON_FONT, -1, Tk_Offset(TkButton, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -336,13 +334,13 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = {
DEF_LABCHKRAD_RELIEF, -1, Tk_Offset(TkButton, relief), 0, 0, 0},
{TK_OPTION_BORDER, "-selectcolor", "selectColor", "Background",
DEF_BUTTON_SELECT_COLOR, -1, Tk_Offset(TkButton, selectBorder),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_SELECT_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_SELECT_MONO, 0},
{TK_OPTION_STRING, "-selectimage", "selectImage", "SelectImage",
DEF_BUTTON_SELECT_IMAGE, Tk_Offset(TkButton, selectImagePtr), -1,
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
@@ -372,19 +370,19 @@ static const Tk_OptionSpec checkbuttonOptionSpecs[] = {
static const Tk_OptionSpec radiobuttonOptionSpecs[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
DEF_BUTTON_ACTIVE_BG_COLOR, -1, Tk_Offset(TkButton, activeBorder),
- 0, (ClientData) DEF_BUTTON_ACTIVE_BG_MONO, 0},
+ 0, DEF_BUTTON_ACTIVE_BG_MONO, 0},
{TK_OPTION_COLOR, "-activeforeground", "activeForeground", "Background",
DEF_CHKRAD_ACTIVE_FG_COLOR, -1, Tk_Offset(TkButton, activeFg),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_ACTIVE_FG_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_ACTIVE_FG_MONO, 0},
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
DEF_BUTTON_ANCHOR, -1, Tk_Offset(TkButton, anchor), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_BUTTON_BG_COLOR, -1, Tk_Offset(TkButton, normalBorder),
- 0, (ClientData) DEF_BUTTON_BG_MONO, 0},
+ 0, DEF_BUTTON_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_BITMAP, "-bitmap", "bitmap", "Bitmap",
DEF_BUTTON_BITMAP, -1, Tk_Offset(TkButton, bitmap),
TK_OPTION_NULL_OK, 0, 0},
@@ -396,7 +394,7 @@ static const Tk_OptionSpec radiobuttonOptionSpecs[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound",
DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkButton, compound), 0,
- (ClientData) compoundStrings, 0},
+ compoundStrings, 0},
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
DEF_BUTTON_CURSOR, -1, Tk_Offset(TkButton, cursor),
TK_OPTION_NULL_OK, 0, 0},
@@ -405,7 +403,7 @@ static const Tk_OptionSpec radiobuttonOptionSpecs[] = {
-1, Tk_Offset(TkButton, disabledFg), TK_OPTION_NULL_OK,
(ClientData) DEF_BUTTON_DISABLED_FG_MONO, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_BUTTON_FONT, -1, Tk_Offset(TkButton, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -446,13 +444,13 @@ static const Tk_OptionSpec radiobuttonOptionSpecs[] = {
DEF_LABCHKRAD_RELIEF, -1, Tk_Offset(TkButton, relief), 0, 0, 0},
{TK_OPTION_BORDER, "-selectcolor", "selectColor", "Background",
DEF_BUTTON_SELECT_COLOR, -1, Tk_Offset(TkButton, selectBorder),
- TK_OPTION_NULL_OK, (ClientData) DEF_BUTTON_SELECT_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_BUTTON_SELECT_MONO, 0},
{TK_OPTION_STRING, "-selectimage", "selectImage", "SelectImage",
DEF_BUTTON_SELECT_IMAGE, Tk_Offset(TkButton, selectImagePtr), -1,
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_BUTTON_STATE, -1, Tk_Offset(TkButton, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_BUTTON_TAKE_FOCUS, Tk_Offset(TkButton, takeFocusPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
diff --git a/generic/tkButton.h b/generic/tkButton.h
index b11d591..7ed464f 100644
--- a/generic/tkButton.h
+++ b/generic/tkButton.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkButton.h,v 1.19 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKBUTTON
diff --git a/generic/tkCanvArc.c b/generic/tkCanvArc.c
index 58bb4c7..6cbc89b 100644
--- a/generic/tkCanvArc.c
+++ b/generic/tkCanvArc.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvArc.c,v 1.24 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvBmap.c b/generic/tkCanvBmap.c
index ffca675..ea16a29 100644
--- a/generic/tkCanvBmap.c
+++ b/generic/tkCanvBmap.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvBmap.c,v 1.21 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvImg.c b/generic/tkCanvImg.c
index 4a4b0f9..880070b 100644
--- a/generic/tkCanvImg.c
+++ b/generic/tkCanvImg.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvImg.c,v 1.19 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvLine.c b/generic/tkCanvLine.c
index 5ebd52f..7863680 100644
--- a/generic/tkCanvLine.c
+++ b/generic/tkCanvLine.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvLine.c,v 1.34 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvPoly.c b/generic/tkCanvPoly.c
index 69e1de6..c948b30 100644
--- a/generic/tkCanvPoly.c
+++ b/generic/tkCanvPoly.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvPoly.c,v 1.28 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvPs.c b/generic/tkCanvPs.c
index c5b582d..eafc07f 100644
--- a/generic/tkCanvPs.c
+++ b/generic/tkCanvPs.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvPs.c,v 1.30 2010/02/17 19:21:17 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvText.c b/generic/tkCanvText.c
index 9477c63..0861a21 100644
--- a/generic/tkCanvText.c
+++ b/generic/tkCanvText.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvText.c,v 1.40 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvUtil.c b/generic/tkCanvUtil.c
index a49e3f6..1a6a8c4 100644
--- a/generic/tkCanvUtil.c
+++ b/generic/tkCanvUtil.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvUtil.c,v 1.27 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvWind.c b/generic/tkCanvWind.c
index d11a001..f2cce7d 100644
--- a/generic/tkCanvWind.c
+++ b/generic/tkCanvWind.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvWind.c,v 1.24 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkCanvas.c b/generic/tkCanvas.c
index 1a3ed52..14d8261 100644
--- a/generic/tkCanvas.c
+++ b/generic/tkCanvas.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvas.c,v 1.66 2010/06/15 11:16:03 nijtmans Exp $
*/
/* #define USE_OLD_TAG_SEARCH 1 */
@@ -1651,6 +1649,7 @@ CanvasWidgetCmd(
if (itemPtr == NULL) {
Tcl_AppendResult(interp, "tag \"", Tcl_GetString(objv[3]),
"\" doesn't match any items", NULL);
+ result = TCL_ERROR;
goto done;
}
itemPtr = itemPtr->prevPtr;
diff --git a/generic/tkCanvas.h b/generic/tkCanvas.h
index 877ecfe..b8b1b46 100644
--- a/generic/tkCanvas.h
+++ b/generic/tkCanvas.h
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCanvas.h,v 1.14 2008/04/28 08:32:25 dkf Exp $
*/
#ifndef _TKCANVAS
diff --git a/generic/tkClipboard.c b/generic/tkClipboard.c
index bf79366..043c167 100644
--- a/generic/tkClipboard.c
+++ b/generic/tkClipboard.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkClipboard.c,v 1.24 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
@@ -647,11 +645,8 @@ TkClipInit(
* and set up an event handler for it.
*/
- dispPtr->clipWindow = Tk_CreateWindow(interp, NULL, "_clip",
- DisplayString(dispPtr->display));
- if (dispPtr->clipWindow == NULL) {
- return TCL_ERROR;
- }
+ dispPtr->clipWindow = (Tk_Window) TkAllocWindow(dispPtr,
+ DefaultScreen(dispPtr->display), NULL);
Tcl_Preserve(dispPtr->clipWindow);
atts.override_redirect = True;
Tk_ChangeWindowAttributes(dispPtr->clipWindow, CWOverrideRedirect, &atts);
diff --git a/generic/tkCmds.c b/generic/tkCmds.c
index c00cb71..63f626e 100644
--- a/generic/tkCmds.c
+++ b/generic/tkCmds.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCmds.c,v 1.52 2010/01/18 20:43:38 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkColor.c b/generic/tkColor.c
index f1a8680..ea03e28 100644
--- a/generic/tkColor.c
+++ b/generic/tkColor.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkColor.c,v 1.22 2009/12/09 22:41:52 dkf Exp $
*/
#include "tkInt.h"
@@ -373,6 +371,23 @@ Tk_NameOfColor(
sprintf(tsdPtr->rgbString, "#%04x%04x%04x", colorPtr->red,
colorPtr->green, colorPtr->blue);
+
+ /* If the string has the form #RSRSTUTUVWVW (where equal
+ * letters denote equal hexdigits) then this is
+ * equivalent to #RSTUVW. Then output the shorter form.
+ */
+ if ((tsdPtr->rgbString[1] == tsdPtr->rgbString[3])
+ && (tsdPtr->rgbString[2] == tsdPtr->rgbString[4])
+ && (tsdPtr->rgbString[5] == tsdPtr->rgbString[7])
+ && (tsdPtr->rgbString[6] == tsdPtr->rgbString[8])
+ && (tsdPtr->rgbString[9] == tsdPtr->rgbString[11])
+ && (tsdPtr->rgbString[10] == tsdPtr->rgbString[12])) {
+ tsdPtr->rgbString[3] = tsdPtr->rgbString[5];
+ tsdPtr->rgbString[4] = tsdPtr->rgbString[6];
+ tsdPtr->rgbString[5] = tsdPtr->rgbString[9];
+ tsdPtr->rgbString[6] = tsdPtr->rgbString[10];
+ tsdPtr->rgbString[7] = '\0';
+ }
return tsdPtr->rgbString;
}
}
@@ -809,7 +824,116 @@ TkDebugColor(
}
return resultPtr;
}
-
+
+#ifndef __WIN32__
+
+/* This function is not necessary for Win32,
+ * since XParseColor already does the right thing */
+
+#undef XParseColor
+
+const char *const tkWebColors[20] = {
+ /* 'a' */ "qua\0#0000ffffffff",
+ /* 'b' */ NULL,
+ /* 'c' */ "rimson\0#dcdc14143c3c",
+ /* 'd' */ NULL,
+ /* 'e' */ NULL,
+ /* 'f' */ "uchsia\0#ffff0000ffff",
+ /* 'g' */ "reen\0#000080800000",
+ /* 'h' */ NULL,
+ /* 'i' */ "ndigo\0#4b4b00008282",
+ /* 'j' */ NULL,
+ /* 'k' */ NULL,
+ /* 'l' */ "ime\0#0000ffff0000",
+ /* 'm' */ "aroon\0#808000000000",
+ /* 'n' */ NULL,
+ /* 'o' */ "live\0#808080800000",
+ /* 'p' */ "urple\0#808000008080",
+ /* 'q' */ NULL,
+ /* 'r' */ NULL,
+ /* 's' */ "ilver\0#c0c0c0c0c0c0",
+ /* 't' */ "eal\0#000080808080"
+};
+
+Status
+TkParseColor(
+ Display *display, /* The display */
+ Colormap map, /* Color map */
+ const char *name, /* String to be parsed */
+ XColor *color)
+{
+ char buf[14];
+ if (*name == '#') {
+ buf[0] = '#'; buf[13] = '\0';
+ if (!*(++name) || !*(++name) || !*(++name)) {
+ /* Not at least 3 hex digits, so invalid */
+ return 0;
+ } else if (!*(++name)) {
+ /* Exactly 3 hex digits */
+ buf[9] = buf[10] = buf[11] = buf[12] = *(--name);
+ buf[5] = buf[6] = buf[7] = buf[8] = *(--name);
+ buf[1] = buf[2] = buf[3] = buf[4] = *(--name);
+ name = buf;
+ } else if (!*(++name) || !*(++name)) {
+ /* Not at least 6 hex digits, so invalid */
+ return 0;
+ } else if (!*(++name)) {
+ /* Exactly 6 hex digits */
+ buf[10] = buf[12] = *(--name);
+ buf[9] = buf[11] = *(--name);
+ buf[6] = buf[8] = *(--name);
+ buf[5] = buf[7] = *(--name);
+ buf[2] = buf[4] = *(--name);
+ buf[1] = buf[3] = *(--name);
+ name = buf;
+ } else if (!*(++name) || !*(++name)) {
+ /* Not at least 9 hex digits, so invalid */
+ return 0;
+ } else if (!*(++name)) {
+ /* Exactly 9 hex digits */
+ buf[11] = *(--name);
+ buf[10] = *(--name);
+ buf[9] = buf[12] = *(--name);
+ buf[7] = *(--name);
+ buf[6] = *(--name);
+ buf[5] = buf[8] = *(--name);
+ buf[3] = *(--name);
+ buf[2] = *(--name);
+ buf[1] = buf[4] = *(--name);
+ name = buf;
+ } else if (!*(++name) || !*(++name) || *(++name)) {
+ /* Not exactly 12 hex digits, so invalid */
+ return 0;
+ } else {
+ name -= 13;
+ }
+ goto done;
+ } else if (((*name - 'A') & 0xdf) < sizeof(tkWebColors)/sizeof(tkWebColors[0])) {
+ if (!((name[0] - 'G') & 0xdf) && !((name[1] - 'R') & 0xdf)
+ && !((name[2] - 'A') & 0xdb) && !((name[3] - 'Y') & 0xdf)
+ && !name[4]) {
+ name = "#808080808080";
+ goto done;
+ } else {
+ const char *p = tkWebColors[((*name - 'A') & 0x1f)];
+ if (p) {
+ const char *q = name;
+ while (!((*p - *(++q)) & 0xdf)) {
+ if (!*p++) {
+ name = p;
+ goto done;
+ }
+ }
+ }
+ }
+ }
+ if (strlen(name) > 99) {
+ return 0;
+ }
+done:
+ return XParseColor(display, map, name, color);
+}
+#endif /* __WIN32__ */
/*
* Local Variables:
* mode: c
diff --git a/generic/tkColor.h b/generic/tkColor.h
index 48fea2d..05ef295 100644
--- a/generic/tkColor.h
+++ b/generic/tkColor.h
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkColor.h,v 1.13 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKCOLOR
diff --git a/generic/tkConfig.c b/generic/tkConfig.c
index ac5ff5d..5262f58 100644
--- a/generic/tkConfig.c
+++ b/generic/tkConfig.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkConfig.c,v 1.33 2010/02/22 23:38:53 nijtmans Exp $
*/
/*
diff --git a/generic/tkConsole.c b/generic/tkConsole.c
index cb16ca2..53f49c1 100644
--- a/generic/tkConsole.c
+++ b/generic/tkConsole.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkConsole.c,v 1.41 2010/01/13 23:08:09 nijtmans Exp $
*/
#include "tkInt.h"
@@ -114,25 +112,17 @@ ShouldUseConsoleChannel(
DCB dcb;
DWORD consoleParams;
DWORD fileType;
- int mode;
- const char *bufMode;
HANDLE handle;
switch (type) {
case TCL_STDIN:
handleId = STD_INPUT_HANDLE;
- mode = TCL_READABLE;
- bufMode = "line";
break;
case TCL_STDOUT:
handleId = STD_OUTPUT_HANDLE;
- mode = TCL_WRITABLE;
- bufMode = "line";
break;
case TCL_STDERR:
handleId = STD_ERROR_HANDLE;
- mode = TCL_WRITABLE;
- bufMode = "none";
break;
default:
return 0;
@@ -513,8 +503,22 @@ ConsoleOutput(
Tcl_Interp *consoleInterp = info->consoleInterp;
if (consoleInterp && !Tcl_InterpDeleted(consoleInterp)) {
+ Tcl_DString ds;
+ Tcl_Encoding utf8 = Tcl_GetEncoding(NULL, "utf-8");
+
+ /*
+ * Not checking for utf8 == NULL. Did not check for TCL_ERROR
+ * from Tcl_SetChannelOption() in Tk_InitConsoleChannels() either.
+ * Assumption is utf-8 Tcl_Encoding is reliably present.
+ */
+
+ const char *bytes
+ = Tcl_ExternalToUtfDString(utf8, buf, toWrite, &ds);
+ int numBytes = Tcl_DStringLength(&ds);
Tcl_Obj *cmd = Tcl_NewStringObj("tk::ConsoleOutput", -1);
+ Tcl_FreeEncoding(utf8);
+
if (data->type == TCL_STDERR) {
Tcl_ListObjAppendElement(NULL, cmd,
Tcl_NewStringObj("stderr", -1));
@@ -523,7 +527,9 @@ ConsoleOutput(
Tcl_NewStringObj("stdout", -1));
}
Tcl_ListObjAppendElement(NULL, cmd,
- Tcl_NewStringObj(buf, toWrite));
+ Tcl_NewStringObj(bytes, numBytes));
+
+ Tcl_DStringFree(&ds);
Tcl_IncrRefCount(cmd);
Tcl_GlobalEvalObj(consoleInterp, cmd);
Tcl_DecrRefCount(cmd);
diff --git a/generic/tkCursor.c b/generic/tkCursor.c
index 59e3477..2bbf861 100644
--- a/generic/tkCursor.c
+++ b/generic/tkCursor.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkCursor.c,v 1.23 2009/11/21 17:24:42 dkf Exp $
*/
#include "tkInt.h"
@@ -353,11 +351,11 @@ Tk_GetCursorFromData(
* add it to the database.
*/
- if (XParseColor(dataKey.display, Tk_Colormap(tkwin), fg, &fgColor) == 0) {
+ if (TkParseColor(dataKey.display, Tk_Colormap(tkwin), fg, &fgColor) == 0) {
Tcl_AppendResult(interp, "invalid color name \"", fg, "\"", NULL);
goto error;
}
- if (XParseColor(dataKey.display, Tk_Colormap(tkwin), bg, &bgColor) == 0) {
+ if (TkParseColor(dataKey.display, Tk_Colormap(tkwin), bg, &bgColor) == 0) {
Tcl_AppendResult(interp, "invalid color name \"", bg, "\"", NULL);
goto error;
}
diff --git a/generic/tkDecls.h b/generic/tkDecls.h
index 53a9458..d080e93 100644
--- a/generic/tkDecls.h
+++ b/generic/tkDecls.h
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkDecls.h,v 1.51 2010/10/11 21:50:46 nijtmans Exp $
*/
#ifndef _TKDECLS
@@ -183,9 +181,8 @@ EXTERN Tk_Window Tk_CreateWindowFromPath(Tcl_Interp *interp,
Tk_Window tkwin, const char *pathName,
const char *screenName);
/* 44 */
-EXTERN int Tk_OldDefineBitmap(Tcl_Interp *interp,
- const char *name, const char *source,
- int width, int height);
+EXTERN int Tk_DefineBitmap(Tcl_Interp *interp, const char *name,
+ const void *source, int width, int height);
/* 45 */
EXTERN void Tk_DefineCursor(Tk_Window window, Tk_Cursor cursor);
/* 46 */
@@ -306,8 +303,8 @@ EXTERN CONST84_RETURN char * Tk_GetBinding(Tcl_Interp *interp,
EXTERN Pixmap Tk_GetBitmap(Tcl_Interp *interp, Tk_Window tkwin,
const char *str);
/* 86 */
-EXTERN Pixmap Tk_OldGetBitmapFromData(Tcl_Interp *interp,
- Tk_Window tkwin, const char *source,
+EXTERN Pixmap Tk_GetBitmapFromData(Tcl_Interp *interp,
+ Tk_Window tkwin, const void *source,
int width, int height);
/* 87 */
EXTERN int Tk_GetCapStyle(Tcl_Interp *interp, const char *str,
@@ -864,12 +861,9 @@ EXTERN void Tk_CreateOldImageType(const Tk_ImageType *typePtr);
EXTERN void Tk_CreateOldPhotoImageFormat(
const Tk_PhotoImageFormat *formatPtr);
/* 274 */
-EXTERN int Tk_DefineBitmap(Tcl_Interp *interp, const char *name,
- const void *source, int width, int height);
+EXTERN void reserved274(void);
/* 275 */
-EXTERN Pixmap Tk_GetBitmapFromData(Tcl_Interp *interp,
- Tk_Window tkwin, const void *source,
- int width, int height);
+EXTERN void reserved275(void);
typedef struct TkStubHooks {
const struct TkPlatStubs *tkPlatStubs;
@@ -926,7 +920,7 @@ typedef struct TkStubs {
void (*tk_CreateSelHandler) (Tk_Window tkwin, Atom selection, Atom target, Tk_SelectionProc *proc, ClientData clientData, Atom format); /* 41 */
Tk_Window (*tk_CreateWindow) (Tcl_Interp *interp, Tk_Window parent, const char *name, const char *screenName); /* 42 */
Tk_Window (*tk_CreateWindowFromPath) (Tcl_Interp *interp, Tk_Window tkwin, const char *pathName, const char *screenName); /* 43 */
- int (*tk_OldDefineBitmap) (Tcl_Interp *interp, const char *name, const char *source, int width, int height); /* 44 */
+ int (*tk_DefineBitmap) (Tcl_Interp *interp, const char *name, const void *source, int width, int height); /* 44 */
void (*tk_DefineCursor) (Tk_Window window, Tk_Cursor cursor); /* 45 */
void (*tk_DeleteAllBindings) (Tk_BindingTable bindingTable, ClientData object); /* 46 */
int (*tk_DeleteBinding) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, const char *eventStr); /* 47 */
@@ -968,7 +962,7 @@ typedef struct TkStubs {
CONST84_RETURN char * (*tk_GetAtomName) (Tk_Window tkwin, Atom atom); /* 83 */
CONST84_RETURN char * (*tk_GetBinding) (Tcl_Interp *interp, Tk_BindingTable bindingTable, ClientData object, const char *eventStr); /* 84 */
Pixmap (*tk_GetBitmap) (Tcl_Interp *interp, Tk_Window tkwin, const char *str); /* 85 */
- Pixmap (*tk_OldGetBitmapFromData) (Tcl_Interp *interp, Tk_Window tkwin, const char *source, int width, int height); /* 86 */
+ Pixmap (*tk_GetBitmapFromData) (Tcl_Interp *interp, Tk_Window tkwin, const void *source, int width, int height); /* 86 */
int (*tk_GetCapStyle) (Tcl_Interp *interp, const char *str, int *capPtr); /* 87 */
XColor * (*tk_GetColor) (Tcl_Interp *interp, Tk_Window tkwin, Tk_Uid name); /* 88 */
XColor * (*tk_GetColorByValue) (Tk_Window tkwin, XColor *colorPtr); /* 89 */
@@ -1156,8 +1150,8 @@ typedef struct TkStubs {
Tcl_Interp * (*tk_Interp) (Tk_Window tkwin); /* 271 */
void (*tk_CreateOldImageType) (const Tk_ImageType *typePtr); /* 272 */
void (*tk_CreateOldPhotoImageFormat) (const Tk_PhotoImageFormat *formatPtr); /* 273 */
- int (*tk_DefineBitmap) (Tcl_Interp *interp, const char *name, const void *source, int width, int height); /* 274 */
- Pixmap (*tk_GetBitmapFromData) (Tcl_Interp *interp, Tk_Window tkwin, const void *source, int width, int height); /* 275 */
+ void (*reserved274) (void); /* 274 */
+ void (*reserved275) (void); /* 275 */
} TkStubs;
#ifdef __cplusplus
@@ -1262,8 +1256,8 @@ extern const TkStubs *tkStubsPtr;
(tkStubsPtr->tk_CreateWindow) /* 42 */
#define Tk_CreateWindowFromPath \
(tkStubsPtr->tk_CreateWindowFromPath) /* 43 */
-#define Tk_OldDefineBitmap \
- (tkStubsPtr->tk_OldDefineBitmap) /* 44 */
+#define Tk_DefineBitmap \
+ (tkStubsPtr->tk_DefineBitmap) /* 44 */
#define Tk_DefineCursor \
(tkStubsPtr->tk_DefineCursor) /* 45 */
#define Tk_DeleteAllBindings \
@@ -1346,8 +1340,8 @@ extern const TkStubs *tkStubsPtr;
(tkStubsPtr->tk_GetBinding) /* 84 */
#define Tk_GetBitmap \
(tkStubsPtr->tk_GetBitmap) /* 85 */
-#define Tk_OldGetBitmapFromData \
- (tkStubsPtr->tk_OldGetBitmapFromData) /* 86 */
+#define Tk_GetBitmapFromData \
+ (tkStubsPtr->tk_GetBitmapFromData) /* 86 */
#define Tk_GetCapStyle \
(tkStubsPtr->tk_GetCapStyle) /* 87 */
#define Tk_GetColor \
@@ -1720,10 +1714,10 @@ extern const TkStubs *tkStubsPtr;
(tkStubsPtr->tk_CreateOldImageType) /* 272 */
#define Tk_CreateOldPhotoImageFormat \
(tkStubsPtr->tk_CreateOldPhotoImageFormat) /* 273 */
-#define Tk_DefineBitmap \
- (tkStubsPtr->tk_DefineBitmap) /* 274 */
-#define Tk_GetBitmapFromData \
- (tkStubsPtr->tk_GetBitmapFromData) /* 275 */
+#define reserved274 \
+ (tkStubsPtr->reserved274) /* 274 */
+#define reserved275 \
+ (tkStubsPtr->reserved275) /* 275 */
#endif /* defined(USE_TK_STUBS) */
@@ -1736,8 +1730,9 @@ extern const TkStubs *tkStubsPtr;
#undef Tk_CreateConsoleWindow
#if defined(_WIN32) && defined(UNICODE)
-EXTERN void Tk_MainExW(int, TCHAR **, Tcl_AppInitProc *, Tcl_Interp *);
# define Tk_MainEx Tk_MainExW
+ EXTERN void Tk_MainExW(int argc, wchar_t **argv,
+ Tcl_AppInitProc *appInitProc, Tcl_Interp *interp);
#endif
#undef TCL_STORAGE_CLASS
diff --git a/generic/tkEntry.c b/generic/tkEntry.c
index 1db3888..044a35b 100644
--- a/generic/tkEntry.c
+++ b/generic/tkEntry.c
@@ -13,8 +13,6 @@
*
* 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.60 2010/01/13 23:08:10 nijtmans Exp $
*/
#include "tkInt.h"
@@ -66,11 +64,11 @@ enum validateType {
static const Tk_OptionSpec entryOptSpec[] = {
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_ENTRY_BG_COLOR, -1, Tk_Offset(Entry, normalBorder),
- 0, (ClientData) DEF_ENTRY_BG_MONO, 0},
+ 0, DEF_ENTRY_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_ENTRY_BORDER_WIDTH, -1, Tk_Offset(Entry, borderWidth), 0, 0, 0},
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor",
@@ -87,7 +85,7 @@ static const Tk_OptionSpec entryOptSpec[] = {
"ExportSelection", DEF_ENTRY_EXPORT_SELECTION, -1,
Tk_Offset(Entry, exportSelection), 0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_ENTRY_FONT, -1, Tk_Offset(Entry, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -117,7 +115,7 @@ static const Tk_OptionSpec entryOptSpec[] = {
DEF_ENTRY_INVALIDCMD, -1, Tk_Offset(Entry, invalidCmd),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_SYNONYM, "-invcmd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-invalidcommand", 0},
+ NULL, 0, -1, 0, "-invalidcommand", 0},
{TK_OPTION_JUSTIFY, "-justify", "justify", "Justify",
DEF_ENTRY_JUSTIFY, -1, Tk_Offset(Entry, justify), 0, 0, 0},
{TK_OPTION_BORDER, "-readonlybackground", "readonlyBackground",
@@ -128,20 +126,20 @@ static const Tk_OptionSpec entryOptSpec[] = {
DEF_ENTRY_RELIEF, -1, Tk_Offset(Entry, relief), 0, 0, 0},
{TK_OPTION_BORDER, "-selectbackground", "selectBackground", "Foreground",
DEF_ENTRY_SELECT_COLOR, -1, Tk_Offset(Entry, selBorder),
- 0, (ClientData) DEF_ENTRY_SELECT_MONO, 0},
+ 0, DEF_ENTRY_SELECT_MONO, 0},
{TK_OPTION_PIXELS, "-selectborderwidth", "selectBorderWidth",
"BorderWidth", DEF_ENTRY_SELECT_BD_COLOR, -1,
Tk_Offset(Entry, selBorderWidth),
- 0, (ClientData) DEF_ENTRY_SELECT_BD_MONO, 0},
+ 0, DEF_ENTRY_SELECT_BD_MONO, 0},
{TK_OPTION_COLOR, "-selectforeground", "selectForeground", "Background",
DEF_ENTRY_SELECT_FG_COLOR, -1, Tk_Offset(Entry, selFgColorPtr),
- TK_CONFIG_NULL_OK, (ClientData) DEF_ENTRY_SELECT_FG_MONO, 0},
+ TK_CONFIG_NULL_OK, DEF_ENTRY_SELECT_FG_MONO, 0},
{TK_OPTION_STRING, "-show", "show", "Show",
DEF_ENTRY_SHOW, -1, Tk_Offset(Entry, showChar),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_ENTRY_STATE, -1, Tk_Offset(Entry, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_ENTRY_TAKE_FOCUS, -1, Tk_Offset(Entry, takeFocus),
TK_OPTION_NULL_OK, 0, 0},
@@ -150,11 +148,11 @@ static const Tk_OptionSpec entryOptSpec[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-validate", "validate", "Validate",
DEF_ENTRY_VALIDATE, -1, Tk_Offset(Entry, validate),
- 0, (ClientData) validateStrings, 0},
+ 0, validateStrings, 0},
{TK_OPTION_STRING, "-validatecommand", "validateCommand","ValidateCommand",
NULL, -1, Tk_Offset(Entry, validateCmd), TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_SYNONYM, "-vcmd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-validatecommand", 0},
+ NULL, 0, -1, 0, "-validatecommand", 0},
{TK_OPTION_INT, "-width", "width", "Width",
DEF_ENTRY_WIDTH, -1, Tk_Offset(Entry, prefWidth), 0, 0, 0},
{TK_OPTION_STRING, "-xscrollcommand", "xScrollCommand", "ScrollCommand",
@@ -183,19 +181,19 @@ static const Tk_OptionSpec entryOptSpec[] = {
static const Tk_OptionSpec sbOptSpec[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Background",
DEF_BUTTON_ACTIVE_BG_COLOR, -1, Tk_Offset(Spinbox, activeBorder),
- 0, (ClientData) DEF_BUTTON_ACTIVE_BG_MONO, 0},
+ 0, DEF_BUTTON_ACTIVE_BG_MONO, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_ENTRY_BG_COLOR, -1, Tk_Offset(Entry, normalBorder),
- 0, (ClientData) DEF_ENTRY_BG_MONO, 0},
+ 0, DEF_ENTRY_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_ENTRY_BORDER_WIDTH, -1, Tk_Offset(Entry, borderWidth), 0, 0, 0},
{TK_OPTION_BORDER, "-buttonbackground", "Button.background", "Background",
DEF_BUTTON_BG_COLOR, -1, Tk_Offset(Spinbox, buttonBorder),
- 0, (ClientData) DEF_BUTTON_BG_MONO, 0},
+ 0, DEF_BUTTON_BG_MONO, 0},
{TK_OPTION_CURSOR, "-buttoncursor", "Button.cursor", "Cursor",
DEF_BUTTON_CURSOR, -1, Tk_Offset(Spinbox, bCursor),
TK_OPTION_NULL_OK, 0, 0},
@@ -220,7 +218,7 @@ static const Tk_OptionSpec sbOptSpec[] = {
"ExportSelection", DEF_ENTRY_EXPORT_SELECTION, -1,
Tk_Offset(Entry, exportSelection), 0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_ENTRY_FONT, -1, Tk_Offset(Entry, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -257,7 +255,7 @@ static const Tk_OptionSpec sbOptSpec[] = {
DEF_ENTRY_INVALIDCMD, -1, Tk_Offset(Entry, invalidCmd),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_SYNONYM, "-invcmd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-invalidcommand", 0},
+ NULL, 0, -1, 0, "-invalidcommand", 0},
{TK_OPTION_JUSTIFY, "-justify", "justify", "Justify",
DEF_ENTRY_JUSTIFY, -1, Tk_Offset(Entry, justify), 0, 0, 0},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief",
@@ -274,17 +272,17 @@ static const Tk_OptionSpec sbOptSpec[] = {
0, 0, 0},
{TK_OPTION_BORDER, "-selectbackground", "selectBackground", "Foreground",
DEF_ENTRY_SELECT_COLOR, -1, Tk_Offset(Entry, selBorder),
- 0, (ClientData) DEF_ENTRY_SELECT_MONO, 0},
+ 0, DEF_ENTRY_SELECT_MONO, 0},
{TK_OPTION_PIXELS, "-selectborderwidth", "selectBorderWidth",
"BorderWidth", DEF_ENTRY_SELECT_BD_COLOR, -1,
Tk_Offset(Entry, selBorderWidth),
- 0, (ClientData) DEF_ENTRY_SELECT_BD_MONO, 0},
+ 0, DEF_ENTRY_SELECT_BD_MONO, 0},
{TK_OPTION_COLOR, "-selectforeground", "selectForeground", "Background",
DEF_ENTRY_SELECT_FG_COLOR, -1, Tk_Offset(Entry, selFgColorPtr),
- TK_CONFIG_NULL_OK, (ClientData) DEF_ENTRY_SELECT_FG_MONO, 0},
+ TK_CONFIG_NULL_OK, DEF_ENTRY_SELECT_FG_MONO, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_ENTRY_STATE, -1, Tk_Offset(Entry, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_ENTRY_TAKE_FOCUS, -1, Tk_Offset(Entry, takeFocus),
TK_CONFIG_NULL_OK, 0, 0},
@@ -295,14 +293,14 @@ static const Tk_OptionSpec sbOptSpec[] = {
DEF_SPINBOX_TO, -1, Tk_Offset(Spinbox, toValue), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-validate", "validate", "Validate",
DEF_ENTRY_VALIDATE, -1, Tk_Offset(Entry, validate),
- 0, (ClientData) validateStrings, 0},
+ 0, validateStrings, 0},
{TK_OPTION_STRING, "-validatecommand", "validateCommand","ValidateCommand",
NULL, -1, Tk_Offset(Entry, validateCmd), TK_CONFIG_NULL_OK, 0, 0},
{TK_OPTION_STRING, "-values", "values", "Values",
DEF_SPINBOX_VALUES, -1, Tk_Offset(Spinbox, valueStr),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_SYNONYM, "-vcmd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-validatecommand", 0},
+ NULL, 0, -1, 0, "-validatecommand", 0},
{TK_OPTION_INT, "-width", "width", "Width",
DEF_ENTRY_WIDTH, -1, Tk_Offset(Entry, prefWidth), 0, 0, 0},
{TK_OPTION_BOOLEAN, "-wrap", "wrap", "Wrap",
@@ -1327,11 +1325,10 @@ ConfigureEntry(
* isn't a double value, we set it to -from.
*/
- int code;
double dvalue;
- code = Tcl_GetDouble(NULL, entryPtr->string, &dvalue);
- if (code != TCL_OK) {
+ if (sscanf(entryPtr->string, "%lf", &dvalue) == 0) {
+ /* Scan failure */
dvalue = sbPtr->fromValue;
} else if (dvalue > sbPtr->toValue) {
dvalue = sbPtr->toValue;
@@ -3272,17 +3269,19 @@ EntryValidateChange(
if (varValidate) {
entryPtr->validate = VALIDATE_NONE;
} else if (entryPtr->invalidCmd != NULL) {
+ int result;
+
Tcl_DStringInit(&script);
ExpandPercents(entryPtr, entryPtr->invalidCmd,
change, newValue, index, type, &script);
Tcl_DStringAppend(&script, "", 1);
p = Tcl_DStringValue(&script);
- code = Tcl_EvalEx(entryPtr->interp, p, -1,
+ result = Tcl_EvalEx(entryPtr->interp, p, -1,
TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT);
- if (code != TCL_OK) {
+ if (result != TCL_OK) {
Tcl_AddErrorInfo(entryPtr->interp,
"\n\t(in invalidcommand executed by entry)");
- Tcl_BackgroundException(entryPtr->interp, code);
+ Tcl_BackgroundException(entryPtr->interp, result);
code = TCL_ERROR;
entryPtr->validate = VALIDATE_NONE;
}
@@ -4227,9 +4226,9 @@ SpinboxInvoke(
} else if (!DOUBLES_EQ(sbPtr->fromValue, sbPtr->toValue)) {
double dvalue;
- if (Tcl_GetDouble(NULL, entryPtr->string, &dvalue) != TCL_OK) {
+ if (sscanf(entryPtr->string, "%lf", &dvalue) == 0) {
/*
- * If the string is empty, or isn't a valid double value, just
+ * If the string doesn't scan as a double value, just
* use the -from value
*/
diff --git a/generic/tkError.c b/generic/tkError.c
index 6facc53..fc223e6 100644
--- a/generic/tkError.c
+++ b/generic/tkError.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkError.c,v 1.8 2008/11/08 18:44:39 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkEvent.c b/generic/tkEvent.c
index 24880a3..1fbf1dd 100644
--- a/generic/tkEvent.c
+++ b/generic/tkEvent.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkEvent.c,v 1.44 2011/01/06 05:58:15 stwo Exp $
*/
#include "tkInt.h"
@@ -339,7 +337,7 @@ CreateXIC(
preedit_attlist = XVaCreateNestedList(0,
XNSpotLocation, &spot,
XNFontSet, dispPtr->inputXfs,
- (void *) NULL);
+ NULL);
}
winPtr->inputContext = XCreateIC(dispPtr->inputMethod,
@@ -347,7 +345,7 @@ CreateXIC(
XNClientWindow, winPtr->window,
XNFocusWindow, winPtr->window,
preedit_attname, preedit_attlist,
- (void *) NULL);
+ NULL);
if (preedit_attlist) {
XFree(preedit_attlist);
@@ -362,7 +360,7 @@ CreateXIC(
/*
* Adjust the window's event mask if the IM requires it.
*/
- XGetICValues(winPtr->inputContext, XNFilterEvents, &im_event_mask, (void *) NULL);
+ XGetICValues(winPtr->inputContext, XNFilterEvents, &im_event_mask, NULL);
if ((winPtr->atts.event_mask & im_event_mask) != im_event_mask) {
winPtr->atts.event_mask |= im_event_mask;
XSelectInput(winPtr->display, winPtr->window, winPtr->atts.event_mask);
diff --git a/generic/tkFileFilter.c b/generic/tkFileFilter.c
index 170b0b7..fba570b 100644
--- a/generic/tkFileFilter.c
+++ b/generic/tkFileFilter.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFileFilter.c,v 1.13 2009/11/09 11:56:57 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkFileFilter.h b/generic/tkFileFilter.h
index 5ddcc3d..131e423 100644
--- a/generic/tkFileFilter.h
+++ b/generic/tkFileFilter.h
@@ -8,9 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFileFilter.h,v 1.9 2010/04/23 08:32:56 nijtmans Exp $
- *
*/
#ifndef _TK_FILE_FILTER
diff --git a/generic/tkFocus.c b/generic/tkFocus.c
index 0448dc9..2f50009 100644
--- a/generic/tkFocus.c
+++ b/generic/tkFocus.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFocus.c,v 1.23 2009/09/07 07:29:03 das Exp $
*/
#include "tkInt.h"
@@ -717,7 +715,7 @@ TkFocusKeyEvent(
{
DisplayFocusInfo *displayFocusPtr;
TkWindow *focusWinPtr;
- int focusX, focusY, vRootX, vRootY, vRootWidth, vRootHeight;
+ int focusX, focusY;
displayFocusPtr = FindDisplayFocusInfo(winPtr->mainPtr, winPtr->dispPtr);
focusWinPtr = displayFocusPtr->focusWinPtr;
@@ -750,11 +748,9 @@ TkFocusKeyEvent(
eventPtr->xkey.x = -1;
eventPtr->xkey.y = -1;
} else {
- Tk_GetVRootGeometry((Tk_Window) focusWinPtr, &vRootX, &vRootY,
- &vRootWidth, &vRootHeight);
Tk_GetRootCoords((Tk_Window) focusWinPtr, &focusX, &focusY);
- eventPtr->xkey.x = eventPtr->xkey.x_root - vRootX - focusX;
- eventPtr->xkey.y = eventPtr->xkey.y_root - vRootY - focusY;
+ eventPtr->xkey.x = eventPtr->xkey.x_root - focusX;
+ eventPtr->xkey.y = eventPtr->xkey.y_root - focusY;
}
eventPtr->xkey.window = focusWinPtr->window;
return focusWinPtr;
diff --git a/generic/tkFont.c b/generic/tkFont.c
index 06bc0f1..32d0589 100644
--- a/generic/tkFont.c
+++ b/generic/tkFont.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFont.c,v 1.66 2010/12/02 11:38:29 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkFont.h b/generic/tkFont.h
index e59ecc1..b8de885 100644
--- a/generic/tkFont.h
+++ b/generic/tkFont.h
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFont.h,v 1.16 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKFONT
diff --git a/generic/tkFrame.c b/generic/tkFrame.c
index e215029..55f5d51 100644
--- a/generic/tkFrame.c
+++ b/generic/tkFrame.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkFrame.c,v 1.41 2010/02/05 22:45:03 nijtmans Exp $
*/
#include "default.h"
@@ -177,9 +175,9 @@ static const char *const labelAnchorStrings[] = {
static const Tk_OptionSpec commonOptSpec[] = {
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_FRAME_BG_COLOR, -1, Tk_Offset(Frame, border),
- TK_OPTION_NULL_OK, (ClientData) DEF_FRAME_BG_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_FRAME_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_STRING, "-colormap", "colormap", "Colormap",
DEF_FRAME_COLORMAP, -1, Tk_Offset(Frame, colormapName),
TK_OPTION_NULL_OK, 0, 0},
@@ -222,7 +220,7 @@ static const Tk_OptionSpec commonOptSpec[] = {
static const Tk_OptionSpec frameOptSpec[] = {
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_FRAME_BORDER_WIDTH, -1, Tk_Offset(Frame, borderWidth), 0, 0, 0},
{TK_OPTION_STRING, "-class", "class", "Class",
@@ -230,12 +228,12 @@ static const Tk_OptionSpec frameOptSpec[] = {
{TK_OPTION_RELIEF, "-relief", "relief", "Relief",
DEF_FRAME_RELIEF, -1, Tk_Offset(Frame, relief), 0, 0, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, 0, 0, (ClientData) commonOptSpec, 0}
+ NULL, 0, 0, 0, commonOptSpec, 0}
};
static const Tk_OptionSpec toplevelOptSpec[] = {
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_FRAME_BORDER_WIDTH, -1, Tk_Offset(Frame, borderWidth), 0, 0, 0},
{TK_OPTION_STRING, "-class", "class", "Class",
@@ -252,26 +250,26 @@ static const Tk_OptionSpec toplevelOptSpec[] = {
DEF_TOPLEVEL_USE, -1, Tk_Offset(Frame, useThis),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, 0, 0, (ClientData) commonOptSpec, 0}
+ NULL, 0, 0, 0, commonOptSpec, 0}
};
static const Tk_OptionSpec labelframeOptSpec[] = {
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_LABELFRAME_BORDER_WIDTH, -1, Tk_Offset(Frame, borderWidth),
0, 0, 0},
{TK_OPTION_STRING, "-class", "class", "Class",
DEF_LABELFRAME_CLASS, -1, Tk_Offset(Frame, className), 0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_LABELFRAME_FONT, -1, Tk_Offset(Labelframe, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
DEF_LABELFRAME_FG, -1, Tk_Offset(Labelframe, textColorPtr), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-labelanchor", "labelAnchor", "LabelAnchor",
DEF_LABELFRAME_LABELANCHOR, -1, Tk_Offset(Labelframe, labelAnchor),
- 0, (ClientData) labelAnchorStrings, 0},
+ 0, labelAnchorStrings, 0},
{TK_OPTION_WINDOW, "-labelwidget", "labelWidget", "LabelWidget",
NULL, -1, Tk_Offset(Labelframe, labelWin), TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief",
@@ -280,7 +278,7 @@ static const Tk_OptionSpec labelframeOptSpec[] = {
DEF_LABELFRAME_TEXT, Tk_Offset(Labelframe, textPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, 0, 0, (ClientData) commonOptSpec, 0}
+ NULL, 0, 0, 0, commonOptSpec, 0}
};
/*
diff --git a/generic/tkGC.c b/generic/tkGC.c
index 0fa55a3..5663ede 100644
--- a/generic/tkGC.c
+++ b/generic/tkGC.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkGC.c,v 1.11 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkGeometry.c b/generic/tkGeometry.c
index bcfdcf5..2c6c113 100644
--- a/generic/tkGeometry.c
+++ b/generic/tkGeometry.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkGeometry.c,v 1.16 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkGet.c b/generic/tkGet.c
index ad0de63..bd63971 100644
--- a/generic/tkGet.c
+++ b/generic/tkGet.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkGet.c,v 1.16 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkGrab.c b/generic/tkGrab.c
index a72fb0c..695690b 100644
--- a/generic/tkGrab.c
+++ b/generic/tkGrab.c
@@ -8,13 +8,13 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkGrab.c,v 1.21 2010/05/11 12:12:50 nijtmans Exp $
*/
#include "tkInt.h"
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK))
+#ifdef __WIN32__
+#include "tkWinInt.h"
+#elif !(defined(__WIN32__) || defined(MAC_OSX_TK))
#include "tkUnixInt.h"
#endif
diff --git a/generic/tkGrid.c b/generic/tkGrid.c
index 0789d97..70d463e 100644
--- a/generic/tkGrid.c
+++ b/generic/tkGrid.c
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkGrid.c,v 1.55 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkImage.c b/generic/tkImage.c
index 31a2fa3..5fa3671 100644
--- a/generic/tkImage.c
+++ b/generic/tkImage.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkImage.c,v 1.43 2009/02/03 23:55:47 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkImgBmap.c b/generic/tkImgBmap.c
index 1f06b7d..82374cb 100644
--- a/generic/tkImgBmap.c
+++ b/generic/tkImgBmap.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkImgBmap.c,v 1.32 2010/02/17 19:21:16 nijtmans Exp $
*/
#include "tkInt.h"
@@ -1249,7 +1247,7 @@ ImgBmapPostscript(
if ((masterPtr->bgUid != NULL) && (masterPtr->bgUid[0] != '\000')) {
XColor color;
- XParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin), masterPtr->bgUid,
+ TkParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin), masterPtr->bgUid,
&color);
if (Tk_PostscriptColor(interp, psinfo, &color) != TCL_OK) {
return TCL_ERROR;
@@ -1271,7 +1269,7 @@ ImgBmapPostscript(
if ((masterPtr->fgUid != NULL) && (masterPtr->data != NULL)) {
XColor color;
- XParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin), masterPtr->fgUid,
+ TkParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin), masterPtr->fgUid,
&color);
if (Tk_PostscriptColor(interp, psinfo, &color) != TCL_OK) {
return TCL_ERROR;
diff --git a/generic/tkImgGIF.c b/generic/tkImgGIF.c
index 05dc109..4cbf94d 100644
--- a/generic/tkImgGIF.c
+++ b/generic/tkImgGIF.c
@@ -28,8 +28,6 @@
* | notice appear in supporting documentation. This software is |
* | provided "as is" without express or implied warranty. |
* +--------------------------------------------------------------------+
- *
- * RCS: @(#) $Id: tkImgGIF.c,v 1.48 2010/07/18 23:58:17 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkImgPNG.c b/generic/tkImgPNG.c
index b71faed..8d6721e 100644
--- a/generic/tkImgPNG.c
+++ b/generic/tkImgPNG.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkImgPNG.c,v 1.7 2010/04/25 18:23:52 dkf Exp $
*/
#include "tkInt.h"
@@ -3182,6 +3180,7 @@ WriteExtraChunks(
static const unsigned char sBIT_contents[] = {
8, 8, 8, 8
};
+ int sBIT_length = 4;
Tcl_DString buf;
/*
@@ -3190,7 +3189,23 @@ WriteExtraChunks(
* data model is.
*/
- if (WriteChunk(interp, pngPtr, CHUNK_sBIT, sBIT_contents, 4) != TCL_OK) {
+ switch (pngPtr->colorType) {
+ case PNG_COLOR_GRAY:
+ sBIT_length = 1;
+ break;
+ case PNG_COLOR_GRAYALPHA:
+ sBIT_length = 2;
+ break;
+ case PNG_COLOR_RGB:
+ case PNG_COLOR_PLTE:
+ sBIT_length = 3;
+ break;
+ case PNG_COLOR_RGBA:
+ sBIT_length = 4;
+ break;
+ }
+ if (WriteChunk(interp, pngPtr, CHUNK_sBIT, sBIT_contents, sBIT_length)
+ != TCL_OK) {
return TCL_ERROR;
}
diff --git a/generic/tkImgPPM.c b/generic/tkImgPPM.c
index 71f4481..527efa2 100644
--- a/generic/tkImgPPM.c
+++ b/generic/tkImgPPM.c
@@ -12,8 +12,6 @@
* Author: Paul Mackerras (paulus@cs.anu.edu.au),
* Department of Computer Science,
* Australian National University.
- *
- * RCS: @(#) $Id: tkImgPPM.c,v 1.23 2010/01/18 20:43:38 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkImgPhInstance.c b/generic/tkImgPhInstance.c
index 5084e55..5429ee3 100644
--- a/generic/tkImgPhInstance.c
+++ b/generic/tkImgPhInstance.c
@@ -16,8 +16,6 @@
* Author: Paul Mackerras (paulus@cs.anu.edu.au),
* Department of Computer Science,
* Australian National University.
- *
- * RCS: @(#) $Id: tkImgPhInstance.c,v 1.4 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkImgPhoto.h"
@@ -637,7 +635,8 @@ TkImgPhotoDisplay(
(unsigned int)width, (unsigned int)height, AllPlanes, ZPixmap);
if (bgImg == NULL) {
Tk_DeleteErrorHandler(handler);
- return;
+ /* We failed to get the image so draw without blending alpha. It's the best we can do */
+ goto fallBack;
}
BlendComplexAlpha(bgImg, instancePtr, imageX, imageY, width, height);
@@ -659,6 +658,7 @@ TkImgPhotoDisplay(
* origin appropriately, and use it when drawing the image.
*/
+ fallBack:
TkSetRegion(display, instancePtr->gc,
instancePtr->masterPtr->validRegion);
XSetClipOrigin(display, instancePtr->gc, drawableX - imageX,
diff --git a/generic/tkImgPhoto.c b/generic/tkImgPhoto.c
index 0ad0738..5b172f1 100644
--- a/generic/tkImgPhoto.c
+++ b/generic/tkImgPhoto.c
@@ -16,8 +16,6 @@
* Author: Paul Mackerras (paulus@cs.anu.edu.au),
* Department of Computer Science,
* Australian National University.
- *
- * RCS: @(#) $Id: tkImgPhoto.c,v 1.98 2010/10/01 12:04:15 dkf Exp $
*/
#include "tkImgPhoto.h"
@@ -920,7 +918,7 @@ ImgPhotoCmd(
}
}
- if (!XParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin),
+ if (!TkParseColor(Tk_Display(tkwin), Tk_Colormap(tkwin),
colorString, &color)) {
Tcl_AppendResult(interp, "can't parse color \"",
colorString, "\"", NULL);
@@ -2684,7 +2682,7 @@ Tk_PhotoPutBlock(
/*
* Copy the data into our local 32-bit/pixel array. If we can do it with a
- * single memcpy, we do.
+ * single memmove, we do.
*/
destLinePtr = masterPtr->pix32 + (y * masterPtr->width + x) * 4;
@@ -2692,7 +2690,7 @@ Tk_PhotoPutBlock(
/*
* Test to see if we can do the whole write in a single copy. This test is
- * probably too restrictive. We should also be able to do a memcpy if
+ * probably too restrictive. We should also be able to do a memmove if
* pixelSize == 3 and alphaOffset == 0. Maybe other cases too.
*/
@@ -2702,7 +2700,7 @@ Tk_PhotoPutBlock(
&& ((height == 1) || ((x == 0) && (width == masterPtr->width)
&& (blockPtr->pitch == pitch)))
&& (compRule == TK_PHOTO_COMPOSITE_SET)) {
- memcpy(destLinePtr, blockPtr->pixelPtr + blockPtr->offset[0],
+ memmove(destLinePtr, blockPtr->pixelPtr + blockPtr->offset[0],
(size_t) (height * width * 4));
/*
diff --git a/generic/tkImgPhoto.h b/generic/tkImgPhoto.h
index bcbd67f..7bef76b 100644
--- a/generic/tkImgPhoto.h
+++ b/generic/tkImgPhoto.h
@@ -14,13 +14,13 @@
* Author: Paul Mackerras (paulus@cs.anu.edu.au),
* Department of Computer Science,
* Australian National University.
- *
- * RCS: @(#) $Id: tkImgPhoto.h,v 1.2 2010/02/05 22:45:03 nijtmans Exp $
*/
#include "tkInt.h"
#ifdef __WIN32__
#include "tkWinInt.h"
+#elif defined(__CYGWIN__)
+#include "tkUnixInt.h"
#endif
/*
diff --git a/generic/tkImgUtil.c b/generic/tkImgUtil.c
index 8752b2e..5487165 100644
--- a/generic/tkImgUtil.c
+++ b/generic/tkImgUtil.c
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkImgUtil.c,v 1.7 2007/12/13 15:24:14 dgp Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkInt.decls b/generic/tkInt.decls
index 4758f37..822d008 100644
--- a/generic/tkInt.decls
+++ b/generic/tkInt.decls
@@ -9,8 +9,6 @@
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
-#
-# RCS: @(#) $Id: tkInt.decls,v 1.67 2010/12/02 13:36:45 dkf Exp $
library tk
@@ -277,6 +275,9 @@ declare 74 {
declare 75 {
int TkpUseWindow(Tcl_Interp *interp, Tk_Window tkwin, const char *string)
}
+#
+# Slot 76 unused (WAS: TkpWindowWasRecentlyDeleted)
+#
declare 77 {
void TkQueueEventForAllChildren(TkWindow *winPtr, XEvent *eventPtr)
}
@@ -307,7 +308,6 @@ declare 83 {
# void TkSetClassProcs(Tk_Window tkwin,
# TkClassProcs *procs, ClientData instanceData)
#}
-
declare 85 {
void TkSetWindowMenuBar(Tcl_Interp *interp, Tk_Window tkwin,
const char *oldMenuName, const char *menuName)
@@ -401,26 +401,26 @@ declare 111 {
declare 112 {
void TkpMenuThreadInit(void)
}
-declare 113 {aqua win} {
+declare 113 {
void TkClipBox(TkRegion rgn, XRectangle *rect_return)
}
-declare 114 {aqua win} {
+declare 114 {
TkRegion TkCreateRegion(void)
}
-declare 115 {aqua win} {
+declare 115 {
void TkDestroyRegion(TkRegion rgn)
}
-declare 116 {aqua win} {
+declare 116 {
void TkIntersectRegion(TkRegion sra, TkRegion srcb, TkRegion dr_return)
}
-declare 117 {aqua win} {
+declare 117 {
int TkRectInRegion(TkRegion rgn, int x, int y, unsigned int width,
unsigned int height)
}
-declare 118 {aqua win} {
+declare 118 {
void TkSetRegion(Display *display, GC gc, TkRegion rgn)
}
-declare 119 {aqua win} {
+declare 119 {
void TkUnionRectWithRegion(XRectangle *rect,
TkRegion src, TkRegion dr_return)
}
@@ -432,7 +432,7 @@ declare 122 aqua {
}
declare 124 aqua {
Pixmap TkpGetNativeAppBitmap(Display *display,
- const char *name, int *width, int *height)
+ const char *name, int *width, int *height)
}
declare 135 {
void TkpDrawHighlightBorder(Tk_Window tkwin, GC fgGC, GC bgGC,
@@ -466,7 +466,7 @@ declare 143 {
declare 144 {
void TkGCCleanup(TkDisplay *dispPtr)
}
-declare 145 {win aqua} {
+declare 145 {
void TkSubtractRegion(TkRegion sra, TkRegion srcb, TkRegion dr_return)
}
declare 146 {
@@ -648,6 +648,10 @@ interface tkIntPlat
declare 0 x11 {
void TkCreateXEventSource(void)
}
+#
+# Slot 1 unused (WAS: TkFreeWindowId)
+# Slot 2 unused (WAS: TkInitXId)
+#
declare 3 x11 {
int TkpCmapStressed(Tk_Window tkwin, Colormap colormap)
}
@@ -672,6 +676,9 @@ declare 9 x11 {
declare 10 x11 {
void TkSendCleanup(TkDisplay *dispPtr)
}
+#
+# Slot 11 unused (WAS: TkFreeXId)
+#
declare 12 x11 {
int TkpWmSetState(TkWindow *winPtr, int state)
}
@@ -709,7 +716,7 @@ declare 8 win {
void TkpSetCursor(TkpCursor cursor)
}
declare 9 win {
- void TkpWmSetState(TkWindow *winPtr, int state)
+ int TkpWmSetState(TkWindow *winPtr, int state)
}
declare 10 win {
void TkSetPixmapColormap(Pixmap pixmap, Colormap colormap)
@@ -800,13 +807,44 @@ declare 35 win {
int TkWinGetPlatformTheme(void)
}
-# Exported through stub table since Tk 8.5.9
+# Exported through stub table since Tk 8.4.20/8.5.9
declare 36 win {
- LRESULT CALLBACK TkWinChildProc(HWND hwnd,
+ LRESULT __stdcall TkWinChildProc(HWND hwnd,
UINT message, WPARAM wParam, LPARAM lParam)
}
+# new for 8.4.20+/8.5.12+, Cygwin only
+declare 37 win {
+ void TkCreateXEventSource(void)
+}
+declare 38 win {
+ int TkpCmapStressed(Tk_Window tkwin, Colormap colormap)
+}
+declare 39 win {
+ void TkpSync(Display *display)
+}
+declare 40 win {
+ Window TkUnixContainerId(TkWindow *winPtr)
+}
+declare 41 win {
+ int TkUnixDoOneXEvent(Tcl_Time *timePtr)
+}
+declare 42 win {
+ void TkUnixSetMenubar(Tk_Window tkwin, Tk_Window menubar)
+}
+declare 43 win {
+ void TkWmCleanup(TkDisplay *dispPtr)
+}
+declare 44 win {
+ void TkSendCleanup(TkDisplay *dispPtr)
+}
+# only needed by tktest:
+declare 45 win {
+ int TkpTestsendCmd(ClientData clientData, Tcl_Interp *interp, int argc,
+ const char **argv)
+}
+
################################
# Aqua specific functions
@@ -989,6 +1027,11 @@ declare 51 aqua {
declare 53 aqua {
unsigned long TkpGetMS(void)
}
+
+# For Canvas3d, requested by Sean Woods
+declare 54 aqua {
+ void *TkMacOSXDrawable(Drawable drawable)
+}
##############################################################################
@@ -1001,7 +1044,7 @@ interface tkIntXlib
# X functions for Windows
declare 0 win {
- void XSetDashes(Display *display, GC gc, int dash_offset,
+ int XSetDashes(Display *display, GC gc, int dash_offset,
_Xconst char *dash_list, int n)
}
declare 1 win {
@@ -1031,7 +1074,8 @@ declare 7 win {
}
declare 8 win {
Cursor XCreateGlyphCursor(Display *d, Font f1, Font f2,
- unsigned int ui1, unsigned int ui2, XColor *x1, XColor *x2)
+ unsigned int ui1, unsigned int ui2, XColor _Xconst *x1,
+ XColor _Xconst *x2)
}
declare 9 win {
GContext XGContextFromGC(GC g)
@@ -1039,7 +1083,6 @@ declare 9 win {
declare 10 win {
XHostAddress *XListHosts(Display *d, int *i, Bool *b)
}
-
# second parameter was of type KeyCode
declare 11 win {
KeySym XKeycodeToKeysym(Display *d, unsigned int k, int i)
@@ -1066,82 +1109,82 @@ declare 18 win {
Status XAllocColor(Display *d, Colormap c, XColor *xp)
}
declare 19 win {
- void XBell(Display *d, int i)
+ int XBell(Display *d, int i)
}
declare 20 win {
- void XChangeProperty(Display *d, Window w, Atom a1, Atom a2, int i1,
+ int XChangeProperty(Display *d, Window w, Atom a1, Atom a2, int i1,
int i2, _Xconst unsigned char *c, int i3)
}
declare 21 win {
- void XChangeWindowAttributes(Display *d, Window w, unsigned long ul,
+ int XChangeWindowAttributes(Display *d, Window w, unsigned long ul,
XSetWindowAttributes *x)
}
declare 22 win {
- void XClearWindow(Display *d, Window w)
+ int XClearWindow(Display *d, Window w)
}
declare 23 win {
- void XConfigureWindow(Display *d, Window w, unsigned int i,
+ int XConfigureWindow(Display *d, Window w, unsigned int i,
XWindowChanges *x)
}
declare 24 win {
- void XCopyArea(Display *d, Drawable dr1, Drawable dr2, GC g, int i1,
+ int XCopyArea(Display *d, Drawable dr1, Drawable dr2, GC g, int i1,
int i2, unsigned int ui1, unsigned int ui2, int i3, int i4)
}
declare 25 win {
- void XCopyPlane(Display *d, Drawable dr1, Drawable dr2, GC g, int i1,
- int i2, unsigned int ui1,
- unsigned int ui2, int i3, int i4, unsigned long ul)
+ int XCopyPlane(Display *d, Drawable dr1, Drawable dr2, GC g, int i1,
+ int i2, unsigned int ui1, unsigned int ui2,
+ int i3, int i4, unsigned long ul)
}
declare 26 win {
Pixmap XCreateBitmapFromData(Display *display, Drawable d,
_Xconst char *data, unsigned int width, unsigned int height)
}
declare 27 win {
- void XDefineCursor(Display *d, Window w, Cursor c)
+ int XDefineCursor(Display *d, Window w, Cursor c)
}
declare 28 win {
- void XDeleteProperty(Display *d, Window w, Atom a)
+ int XDeleteProperty(Display *d, Window w, Atom a)
}
declare 29 win {
- void XDestroyWindow(Display *d, Window w)
+ int XDestroyWindow(Display *d, Window w)
}
declare 30 win {
- void XDrawArc(Display *d, Drawable dr, GC g, int i1, int i2,
+ int XDrawArc(Display *d, Drawable dr, GC g, int i1, int i2,
unsigned int ui1, unsigned int ui2, int i3, int i4)
}
declare 31 win {
- void XDrawLines(Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2)
+ int XDrawLines(Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2)
}
declare 32 win {
- void XDrawRectangle(Display *d, Drawable dr, GC g, int i1, int i2,
+ int XDrawRectangle(Display *d, Drawable dr, GC g, int i1, int i2,
unsigned int ui1, unsigned int ui2)
}
declare 33 win {
- void XFillArc(Display *d, Drawable dr, GC g, int i1, int i2,
+ int XFillArc(Display *d, Drawable dr, GC g, int i1, int i2,
unsigned int ui1, unsigned int ui2, int i3, int i4)
}
declare 34 win {
- void XFillPolygon(Display *d, Drawable dr, GC g, XPoint *x,
+ int XFillPolygon(Display *d, Drawable dr, GC g, XPoint *x,
int i1, int i2, int i3)
}
declare 35 win {
- void XFillRectangles(Display *d, Drawable dr, GC g, XRectangle *x, int i)
+ int XFillRectangles(Display *d, Drawable dr, GC g, XRectangle *x, int i)
}
declare 36 win {
- void XForceScreenSaver(Display *d, int i)
+ int XForceScreenSaver(Display *d, int i)
}
declare 37 win {
- void XFreeColormap(Display *d, Colormap c)
+ int XFreeColormap(Display *d, Colormap c)
}
declare 38 win {
- void XFreeColors(Display *d, Colormap c,
+ int XFreeColors(Display *d, Colormap c,
unsigned long *ulp, int i, unsigned long ul)
}
declare 39 win {
- void XFreeCursor(Display *d, Cursor c)
+ int XFreeCursor(Display *d, Cursor c)
}
declare 40 win {
- void XFreeModifiermap(XModifierKeymap *x)
+ int XFreeModifiermap(XModifierKeymap *x)
}
declare 41 win {
Status XGetGeometry(Display *d, Drawable dr, Window *w, int *i1,
@@ -1149,7 +1192,7 @@ declare 41 win {
unsigned int *ui4)
}
declare 42 win {
- void XGetInputFocus(Display *d, Window *w, int *i)
+ int XGetInputFocus(Display *d, Window *w, int *i)
}
declare 43 win {
int XGetWindowProperty(Display *d, Window w, Atom a1, long l1, long l2,
@@ -1174,23 +1217,23 @@ declare 48 win {
XColor *x1, XColor *x2)
}
declare 49 win {
- void XMapWindow(Display *d, Window w)
+ int XMapWindow(Display *d, Window w)
}
declare 50 win {
- void XMoveResizeWindow(Display *d, Window w, int i1, int i2,
+ int XMoveResizeWindow(Display *d, Window w, int i1, int i2,
unsigned int ui1, unsigned int ui2)
}
declare 51 win {
- void XMoveWindow(Display *d, Window w, int i1, int i2)
+ int XMoveWindow(Display *d, Window w, int i1, int i2)
}
declare 52 win {
- void XNextEvent(Display *d, XEvent *x)
+ int XNextEvent(Display *d, XEvent *x)
}
declare 53 win {
- void XPutBackEvent(Display *d, XEvent *x)
+ int XPutBackEvent(Display *d, XEvent *x)
}
declare 54 win {
- void XQueryColors(Display *d, Colormap c, XColor *x, int i)
+ int XQueryColors(Display *d, Colormap c, XColor *x, int i)
}
declare 55 win {
Bool XQueryPointer(Display *d, Window w1, Window *w2, Window *w3,
@@ -1201,66 +1244,66 @@ declare 56 win {
Window **w4, unsigned int *ui)
}
declare 57 win {
- void XRaiseWindow(Display *d, Window w)
+ int XRaiseWindow(Display *d, Window w)
}
declare 58 win {
- void XRefreshKeyboardMapping(XMappingEvent *x)
+ int XRefreshKeyboardMapping(XMappingEvent *x)
}
declare 59 win {
- void XResizeWindow(Display *d, Window w, unsigned int ui1,
+ int XResizeWindow(Display *d, Window w, unsigned int ui1,
unsigned int ui2)
}
declare 60 win {
- void XSelectInput(Display *d, Window w, long l)
+ int XSelectInput(Display *d, Window w, long l)
}
declare 61 win {
Status XSendEvent(Display *d, Window w, Bool b, long l, XEvent *x)
}
declare 62 win {
- void XSetCommand(Display *d, Window w, const char **c, int i)
+ int XSetCommand(Display *d, Window w, char **c, int i)
}
declare 63 win {
- void XSetIconName(Display *d, Window w, _Xconst char *c)
+ int XSetIconName(Display *d, Window w, _Xconst char *c)
}
declare 64 win {
- void XSetInputFocus(Display *d, Window w, int i, Time t)
+ int XSetInputFocus(Display *d, Window w, int i, Time t)
}
declare 65 win {
- void XSetSelectionOwner(Display *d, Atom a, Window w, Time t)
+ int XSetSelectionOwner(Display *d, Atom a, Window w, Time t)
}
declare 66 win {
- void XSetWindowBackground(Display *d, Window w, unsigned long ul)
+ int XSetWindowBackground(Display *d, Window w, unsigned long ul)
}
declare 67 win {
- void XSetWindowBackgroundPixmap(Display *d, Window w, Pixmap p)
+ int XSetWindowBackgroundPixmap(Display *d, Window w, Pixmap p)
}
declare 68 win {
- void XSetWindowBorder(Display *d, Window w, unsigned long ul)
+ int XSetWindowBorder(Display *d, Window w, unsigned long ul)
}
declare 69 win {
- void XSetWindowBorderPixmap(Display *d, Window w, Pixmap p)
+ int XSetWindowBorderPixmap(Display *d, Window w, Pixmap p)
}
declare 70 win {
- void XSetWindowBorderWidth(Display *d, Window w, unsigned int ui)
+ int XSetWindowBorderWidth(Display *d, Window w, unsigned int ui)
}
declare 71 win {
- void XSetWindowColormap(Display *d, Window w, Colormap c)
+ int XSetWindowColormap(Display *d, Window w, Colormap c)
}
declare 72 win {
Bool XTranslateCoordinates(Display *d, Window w1, Window w2, int i1,
int i2, int *i3, int *i4, Window *w3)
}
declare 73 win {
- void XUngrabKeyboard(Display *d, Time t)
+ int XUngrabKeyboard(Display *d, Time t)
}
declare 74 win {
- void XUngrabPointer(Display *d, Time t)
+ int XUngrabPointer(Display *d, Time t)
}
declare 75 win {
- void XUnmapWindow(Display *d, Window w)
+ int XUnmapWindow(Display *d, Window w)
}
declare 76 win {
- void XWindowEvent(Display *d, Window w, long l, XEvent *x)
+ int XWindowEvent(Display *d, Window w, long l, XEvent *x)
}
declare 77 win {
void XDestroyIC(XIC x)
@@ -1273,7 +1316,7 @@ declare 79 win {
KeySym *k, Status *s)
}
declare 80 win {
- void TkPutImage(unsigned long *colors, int ncolors, Display *display,
+ int TkPutImage(unsigned long *colors, int ncolors, Display *display,
Drawable d, GC gc, XImage *image, int src_x, int src_y,
int dest_x, int dest_y, unsigned int width, unsigned int height)
}
@@ -1292,59 +1335,59 @@ declare 83 win {
unsigned long valuemask, XGCValues *values)
}
declare 84 win {
- void XFreeGC(Display *display, GC gc)
+ int XFreeGC(Display *display, GC gc)
}
declare 85 win {
Atom XInternAtom(Display *display, _Xconst char *atom_name,
Bool only_if_exists)
}
declare 86 win {
- void XSetBackground(Display *display, GC gc, unsigned long foreground)
+ int XSetBackground(Display *display, GC gc, unsigned long foreground)
}
declare 87 win {
- void XSetForeground(Display *display, GC gc, unsigned long foreground)
+ int XSetForeground(Display *display, GC gc, unsigned long foreground)
}
declare 88 win {
- void XSetClipMask(Display *display, GC gc, Pixmap pixmap)
+ int XSetClipMask(Display *display, GC gc, Pixmap pixmap)
}
declare 89 win {
- void XSetClipOrigin(Display *display, GC gc,
+ int XSetClipOrigin(Display *display, GC gc,
int clip_x_origin, int clip_y_origin)
}
declare 90 win {
- void XSetTSOrigin(Display *display, GC gc,
+ int XSetTSOrigin(Display *display, GC gc,
int ts_x_origin, int ts_y_origin)
}
declare 91 win {
- void XChangeGC(Display *d, GC gc, unsigned long mask, XGCValues *values)
+ int XChangeGC(Display *d, GC gc, unsigned long mask, XGCValues *values)
}
declare 92 win {
- void XSetFont(Display *display, GC gc, Font font)
+ int XSetFont(Display *display, GC gc, Font font)
}
declare 93 win {
- void XSetArcMode(Display *display, GC gc, int arc_mode)
+ int XSetArcMode(Display *display, GC gc, int arc_mode)
}
declare 94 win {
- void XSetStipple(Display *display, GC gc, Pixmap stipple)
+ int XSetStipple(Display *display, GC gc, Pixmap stipple)
}
declare 95 win {
- void XSetFillRule(Display *display, GC gc, int fill_rule)
+ int XSetFillRule(Display *display, GC gc, int fill_rule)
}
declare 96 win {
- void XSetFillStyle(Display *display, GC gc, int fill_style)
+ int XSetFillStyle(Display *display, GC gc, int fill_style)
}
declare 97 win {
- void XSetFunction(Display *display, GC gc, int function)
+ int XSetFunction(Display *display, GC gc, int function)
}
declare 98 win {
- void XSetLineAttributes(Display *display, GC gc, unsigned int line_width,
+ int XSetLineAttributes(Display *display, GC gc, unsigned int line_width,
int line_style, int cap_style, int join_style)
}
declare 99 win {
int _XInitImageFuncPtrs(XImage *image)
}
declare 100 win {
- XIC XCreateIC(void)
+ XIC XCreateIC(XIM xim, ...)
}
declare 101 win {
XVisualInfo *XGetVisualInfo(Display *display, long vinfo_mask,
@@ -1359,23 +1402,49 @@ declare 103 win {
XTextProperty *text_prop_return)
}
declare 104 win {
- void XDrawLine(Display *d, Drawable dr, GC g, int x1, int y1,
+ int XDrawLine(Display *d, Drawable dr, GC g, int x1, int y1,
int x2, int y2)
}
+declare 105 win {
+ int XWarpPointer(Display *d, Window s, Window dw, int sx, int sy,
+ unsigned int sw, unsigned int sh, int dx, int dy)
+}
declare 106 win {
- void XFillRectangle(Display *display, Drawable d, GC gc,
+ int XFillRectangle(Display *display, Drawable d, GC gc,
int x, int y, unsigned int width, unsigned int height)
}
-declare 105 win {
- void XWarpPointer(Display *d, Window s, Window dw, int sx, int sy,
- unsigned int sw, unsigned int sh, int dx, int dy)
+
+# New in Tk 8.6
+declare 107 win {
+ int XFlush(Display *display)
+}
+declare 108 win {
+ int XGrabServer(Display *display)
+}
+declare 109 win {
+ int XUngrabServer(Display *display)
+}
+declare 110 win {
+ int XFree(void *data)
+}
+declare 111 win {
+ int XNoOp(Display *display)
+}
+declare 112 win {
+ XAfterFunction XSynchronize(Display *display, Bool onoff)
+}
+declare 113 win {
+ int XSync(Display *display, Bool discard)
+}
+declare 114 win {
+ VisualID XVisualIDFromVisual(Visual *visual)
}
################################
# X functions for Aqua
declare 0 aqua {
- void XSetDashes(Display *display, GC gc, int dash_offset,
+ int XSetDashes(Display *display, GC gc, int dash_offset,
_Xconst char *dash_list, int n)
}
declare 1 aqua {
@@ -1418,7 +1487,7 @@ declare 12 aqua {
Status XAllocColor(Display *d, Colormap c, XColor *xp)
}
declare 13 aqua {
- void XBell(Display *d, int i)
+ int XBell(Display *d, int i)
}
declare 14 aqua {
void XChangeProperty(Display *d, Window w, Atom a1, Atom a2, int i1,
@@ -1446,7 +1515,7 @@ declare 19 aqua {
_Xconst char *data, unsigned int width, unsigned int height)
}
declare 20 aqua {
- void XDefineCursor(Display *d, Window w, Cursor c)
+ int XDefineCursor(Display *d, Window w, Cursor c)
}
declare 21 aqua {
void XDestroyWindow(Display *d, Window w)
@@ -1456,7 +1525,7 @@ declare 22 aqua {
unsigned int ui1, unsigned int ui2, int i3, int i4)
}
declare 23 aqua {
- void XDrawLines(Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2)
+ int XDrawLines(Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2)
}
declare 24 aqua {
void XDrawRectangle(Display *d, Drawable dr, GC g, int i1, int i2,
@@ -1471,17 +1540,17 @@ declare 26 aqua {
int i1, int i2, int i3)
}
declare 27 aqua {
- void XFillRectangles(Display *d, Drawable dr, GC g, XRectangle *x, int i)
+ int XFillRectangles(Display *d, Drawable dr, GC g, XRectangle *x, int i)
}
declare 28 aqua {
- void XFreeColormap(Display *d, Colormap c)
+ int XFreeColormap(Display *d, Colormap c)
}
declare 29 aqua {
- void XFreeColors(Display *d, Colormap c,
+ int XFreeColors(Display *d, Colormap c,
unsigned long *ulp, int i, unsigned long ul)
}
declare 30 aqua {
- void XFreeModifiermap(XModifierKeymap *x)
+ int XFreeModifiermap(XModifierKeymap *x)
}
declare 31 aqua {
Status XGetGeometry(Display *d, Drawable dr, Window *w, int *i1,
@@ -1540,7 +1609,7 @@ declare 46 aqua {
void XSetInputFocus(Display *d, Window w, int i, Time t)
}
declare 47 aqua {
- void XSetSelectionOwner(Display *d, Atom a, Window w, Time t)
+ int XSetSelectionOwner(Display *d, Atom a, Window w, Time t)
}
declare 48 aqua {
void XSetWindowBackground(Display *d, Window w, unsigned long ul)
@@ -1564,13 +1633,13 @@ declare 54 aqua {
void XUngrabKeyboard(Display *d, Time t)
}
declare 55 aqua {
- void XUngrabPointer(Display *d, Time t)
+ int XUngrabPointer(Display *d, Time t)
}
declare 56 aqua {
void XUnmapWindow(Display *d, Window w)
}
declare 57 aqua {
- void TkPutImage(unsigned long *colors, int ncolors, Display *display,
+ int TkPutImage(unsigned long *colors, int ncolors, Display *display,
Drawable d, GC gc, XImage *image, int src_x, int src_y,
int dest_x, int dest_y, unsigned int width, unsigned int height)
}
@@ -1583,54 +1652,53 @@ declare 59 aqua {
unsigned long valuemask, XGCValues *values)
}
declare 60 aqua {
- void XFreeGC(Display *display, GC gc)
+ int XFreeGC(Display *display, GC gc)
}
declare 61 aqua {
Atom XInternAtom(Display *display, _Xconst char *atom_name,
Bool only_if_exists)
}
declare 62 aqua {
- void XSetBackground(Display *display, GC gc, unsigned long foreground)
+ int XSetBackground(Display *display, GC gc, unsigned long foreground)
}
declare 63 aqua {
- void XSetForeground(Display *display, GC gc, unsigned long foreground)
+ int XSetForeground(Display *display, GC gc, unsigned long foreground)
}
declare 64 aqua {
- void XSetClipMask(Display *display, GC gc, Pixmap pixmap)
+ int XSetClipMask(Display *display, GC gc, Pixmap pixmap)
}
declare 65 aqua {
- void XSetClipOrigin(Display *display, GC gc,
+ int XSetClipOrigin(Display *display, GC gc,
int clip_x_origin, int clip_y_origin)
}
declare 66 aqua {
- void XSetTSOrigin(Display *display, GC gc,
+ int XSetTSOrigin(Display *display, GC gc,
int ts_x_origin, int ts_y_origin)
}
declare 67 aqua {
- void XChangeGC(Display *d, GC gc, unsigned long mask, XGCValues *values)
+ int XChangeGC(Display *d, GC gc, unsigned long mask, XGCValues *values)
}
declare 68 aqua {
- void XSetFont(Display *display, GC gc, Font font)
+ int XSetFont(Display *display, GC gc, Font font)
}
declare 69 aqua {
- void XSetArcMode(Display *display, GC gc, int arc_mode)
+ int XSetArcMode(Display *display, GC gc, int arc_mode)
}
declare 70 aqua {
- void XSetStipple(Display *display, GC gc, Pixmap stipple)
+ int XSetStipple(Display *display, GC gc, Pixmap stipple)
}
declare 71 aqua {
- void XSetFillRule(Display *display, GC gc, int fill_rule)
+ int XSetFillRule(Display *display, GC gc, int fill_rule)
}
declare 72 aqua {
- void XSetFillStyle(Display *display, GC gc, int fill_style)
+ int XSetFillStyle(Display *display, GC gc, int fill_style)
}
declare 73 aqua {
- void XSetFunction(Display *display, GC gc, int function)
+ int XSetFunction(Display *display, GC gc, int function)
}
declare 74 aqua {
- void XSetLineAttributes(Display *display, GC gc,
- unsigned int line_width, int line_style,
- int cap_style, int join_style)
+ int XSetLineAttributes(Display *display, GC gc, unsigned int line_width,
+ int line_style, int cap_style, int join_style)
}
declare 75 aqua {
int _XInitImageFuncPtrs(XImage *image)
@@ -1658,11 +1726,11 @@ declare 81 aqua {
void XForceScreenSaver(Display *display, int mode)
}
declare 82 aqua {
- void XDrawLine(Display *d, Drawable dr, GC g, int x1, int y1,
+ int XDrawLine(Display *d, Drawable dr, GC g, int x1, int y1,
int x2, int y2)
}
declare 83 aqua {
- void XFillRectangle(Display *display, Drawable d, GC gc,
+ int XFillRectangle(Display *display, Drawable d, GC gc,
int x, int y, unsigned int width, unsigned int height)
}
declare 84 aqua {
@@ -1676,7 +1744,7 @@ declare 86 aqua {
int npoints, int mode)
}
declare 87 aqua {
- void XWarpPointer(Display *display, Window src_w, Window dest_w,
+ int XWarpPointer(Display *display, Window src_w, Window dest_w,
int src_x, int src_y, unsigned int src_width,
unsigned int src_height, int dest_x, int dest_y)
}
diff --git a/generic/tkInt.h b/generic/tkInt.h
index 4ca9b05..01cc9cb 100644
--- a/generic/tkInt.h
+++ b/generic/tkInt.h
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: $Id: tkInt.h,v 1.124 2010/12/02 11:38:29 dkf Exp $
*/
#ifndef _TKINT
@@ -826,6 +824,8 @@ typedef struct {
* allocated with ckalloc(). */
int charValueLen; /* Length of string in charValuePtr when that
* is non-NULL. */
+ KeySym keysym; /* Key symbol computed after input methods
+ * have been invoked */
} TkKeyEvent;
/*
@@ -944,6 +944,8 @@ MODULE_SCOPE TkMainInfo *tkMainWindowList;
MODULE_SCOPE Tk_ImageType tkPhotoImageType;
MODULE_SCOPE Tcl_HashTable tkPredefBitmapTable;
+MODULE_SCOPE const char *const tkWebColors[20];
+
/*
* The definition of pi, at least from the perspective of double-precision
* floats.
@@ -1211,6 +1213,17 @@ MODULE_SCOPE int TkInitFontchooser(Tcl_Interp *interp,
ClientData clientData);
MODULE_SCOPE void TkpWarpPointer(TkDisplay *dispPtr);
+#ifdef __WIN32__
+#define TkParseColor XParseColor
+#else
+MODULE_SCOPE Status TkParseColor (Display * display,
+ Colormap map, const char* spec,
+ XColor * colorPtr);
+#endif
+#ifdef HAVE_XFT
+MODULE_SCOPE void TkUnixSetXftClipRegion(TkRegion clipRegion);
+#endif
+
/*
* Unsupported commands.
*/
diff --git a/generic/tkIntDecls.h b/generic/tkIntDecls.h
index 6632322..8d36ec0 100644
--- a/generic/tkIntDecls.h
+++ b/generic/tkIntDecls.h
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkIntDecls.h,v 1.56 2010/12/02 13:36:45 dkf Exp $
*/
#ifndef _TKINTDECLS
@@ -331,68 +329,23 @@ EXTERN Tcl_Obj * TkpGetSystemDefault(Tk_Window tkwin,
const char *dbName, const char *className);
/* 112 */
EXTERN void TkpMenuThreadInit(void);
-#ifdef __WIN32__ /* WIN */
-/* 113 */
-EXTERN void TkClipBox(TkRegion rgn, XRectangle *rect_return);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 113 */
EXTERN void TkClipBox(TkRegion rgn, XRectangle *rect_return);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-/* 114 */
-EXTERN TkRegion TkCreateRegion(void);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 114 */
EXTERN TkRegion TkCreateRegion(void);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
/* 115 */
EXTERN void TkDestroyRegion(TkRegion rgn);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-/* 115 */
-EXTERN void TkDestroyRegion(TkRegion rgn);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
/* 116 */
EXTERN void TkIntersectRegion(TkRegion sra, TkRegion srcb,
TkRegion dr_return);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-/* 116 */
-EXTERN void TkIntersectRegion(TkRegion sra, TkRegion srcb,
- TkRegion dr_return);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-/* 117 */
-EXTERN int TkRectInRegion(TkRegion rgn, int x, int y,
- unsigned int width, unsigned int height);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 117 */
EXTERN int TkRectInRegion(TkRegion rgn, int x, int y,
unsigned int width, unsigned int height);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-/* 118 */
-EXTERN void TkSetRegion(Display *display, GC gc, TkRegion rgn);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 118 */
EXTERN void TkSetRegion(Display *display, GC gc, TkRegion rgn);
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-/* 119 */
-EXTERN void TkUnionRectWithRegion(XRectangle *rect, TkRegion src,
- TkRegion dr_return);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 119 */
EXTERN void TkUnionRectWithRegion(XRectangle *rect, TkRegion src,
TkRegion dr_return);
-#endif /* AQUA */
/* Slot 120 is reserved */
#ifdef MAC_OSX_TK /* AQUA */
/* 121 */
@@ -442,16 +395,9 @@ EXTERN void TkFocusFree(TkMainInfo *mainPtr);
EXTERN void TkClipCleanup(TkDisplay *dispPtr);
/* 144 */
EXTERN void TkGCCleanup(TkDisplay *dispPtr);
-#ifdef __WIN32__ /* WIN */
-/* 145 */
-EXTERN void TkSubtractRegion(TkRegion sra, TkRegion srcb,
- TkRegion dr_return);
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
/* 145 */
EXTERN void TkSubtractRegion(TkRegion sra, TkRegion srcb,
TkRegion dr_return);
-#endif /* AQUA */
/* 146 */
EXTERN void TkStylePkgInit(TkMainInfo *mainPtr);
/* 147 */
@@ -718,81 +664,18 @@ typedef struct TkIntStubs {
void (*tkpGetSubFonts) (Tcl_Interp *interp, Tk_Font tkfont); /* 110 */
Tcl_Obj * (*tkpGetSystemDefault) (Tk_Window tkwin, const char *dbName, const char *className); /* 111 */
void (*tkpMenuThreadInit) (void); /* 112 */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved113)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
void (*tkClipBox) (TkRegion rgn, XRectangle *rect_return); /* 113 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved113)(void); /* Dummy entry for stubs table backwards compatibility */
- void (*tkClipBox) (TkRegion rgn, XRectangle *rect_return); /* 113 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved114)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkRegion (*tkCreateRegion) (void); /* 114 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved114)(void); /* Dummy entry for stubs table backwards compatibility */
- TkRegion (*tkCreateRegion) (void); /* 114 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved115)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
- void (*tkDestroyRegion) (TkRegion rgn); /* 115 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved115)(void); /* Dummy entry for stubs table backwards compatibility */
void (*tkDestroyRegion) (TkRegion rgn); /* 115 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved116)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
- void (*tkIntersectRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 116 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved116)(void); /* Dummy entry for stubs table backwards compatibility */
void (*tkIntersectRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 116 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved117)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
int (*tkRectInRegion) (TkRegion rgn, int x, int y, unsigned int width, unsigned int height); /* 117 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved117)(void); /* Dummy entry for stubs table backwards compatibility */
- int (*tkRectInRegion) (TkRegion rgn, int x, int y, unsigned int width, unsigned int height); /* 117 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved118)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
- void (*tkSetRegion) (Display *display, GC gc, TkRegion rgn); /* 118 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved118)(void); /* Dummy entry for stubs table backwards compatibility */
void (*tkSetRegion) (Display *display, GC gc, TkRegion rgn); /* 118 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved119)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
void (*tkUnionRectWithRegion) (XRectangle *rect, TkRegion src, TkRegion dr_return); /* 119 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved119)(void); /* Dummy entry for stubs table backwards compatibility */
- void (*tkUnionRectWithRegion) (XRectangle *rect, TkRegion src, TkRegion dr_return); /* 119 */
-#endif /* AQUA */
void (*reserved120)(void);
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
void (*reserved121)(void);
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
void (*reserved121)(void);
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -802,7 +685,7 @@ typedef struct TkIntStubs {
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
void (*reserved122)(void);
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
void (*reserved122)(void);
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -813,7 +696,7 @@ typedef struct TkIntStubs {
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
void (*reserved124)(void);
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
void (*reserved124)(void);
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -840,16 +723,7 @@ typedef struct TkIntStubs {
void (*tkFocusFree) (TkMainInfo *mainPtr); /* 142 */
void (*tkClipCleanup) (TkDisplay *dispPtr); /* 143 */
void (*tkGCCleanup) (TkDisplay *dispPtr); /* 144 */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- void (*reserved145)(void);
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
void (*tkSubtractRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 145 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- void (*reserved145)(void); /* Dummy entry for stubs table backwards compatibility */
- void (*tkSubtractRegion) (TkRegion sra, TkRegion srcb, TkRegion dr_return); /* 145 */
-#endif /* AQUA */
void (*tkStylePkgInit) (TkMainInfo *mainPtr); /* 146 */
void (*tkStylePkgFree) (TkMainInfo *mainPtr); /* 147 */
Tk_Window (*tkToplevelWindowForCommand) (Tcl_Interp *interp, const char *cmdName); /* 148 */
@@ -1126,62 +1000,20 @@ extern const TkIntStubs *tkIntStubsPtr;
(tkIntStubsPtr->tkpGetSystemDefault) /* 111 */
#define TkpMenuThreadInit \
(tkIntStubsPtr->tkpMenuThreadInit) /* 112 */
-#ifdef __WIN32__ /* WIN */
-#define TkClipBox \
- (tkIntStubsPtr->tkClipBox) /* 113 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
#define TkClipBox \
(tkIntStubsPtr->tkClipBox) /* 113 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-#define TkCreateRegion \
- (tkIntStubsPtr->tkCreateRegion) /* 114 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
#define TkCreateRegion \
(tkIntStubsPtr->tkCreateRegion) /* 114 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
#define TkDestroyRegion \
(tkIntStubsPtr->tkDestroyRegion) /* 115 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-#define TkDestroyRegion \
- (tkIntStubsPtr->tkDestroyRegion) /* 115 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
#define TkIntersectRegion \
(tkIntStubsPtr->tkIntersectRegion) /* 116 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-#define TkIntersectRegion \
- (tkIntStubsPtr->tkIntersectRegion) /* 116 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
#define TkRectInRegion \
(tkIntStubsPtr->tkRectInRegion) /* 117 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-#define TkRectInRegion \
- (tkIntStubsPtr->tkRectInRegion) /* 117 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-#define TkSetRegion \
- (tkIntStubsPtr->tkSetRegion) /* 118 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
#define TkSetRegion \
(tkIntStubsPtr->tkSetRegion) /* 118 */
-#endif /* AQUA */
-#ifdef __WIN32__ /* WIN */
-#define TkUnionRectWithRegion \
- (tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
#define TkUnionRectWithRegion \
(tkIntStubsPtr->tkUnionRectWithRegion) /* 119 */
-#endif /* AQUA */
/* Slot 120 is reserved */
#ifdef MAC_OSX_TK /* AQUA */
#define TkpCreateNativeBitmap \
@@ -1226,14 +1058,8 @@ extern const TkIntStubs *tkIntStubsPtr;
(tkIntStubsPtr->tkClipCleanup) /* 143 */
#define TkGCCleanup \
(tkIntStubsPtr->tkGCCleanup) /* 144 */
-#ifdef __WIN32__ /* WIN */
#define TkSubtractRegion \
(tkIntStubsPtr->tkSubtractRegion) /* 145 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
-#define TkSubtractRegion \
- (tkIntStubsPtr->tkSubtractRegion) /* 145 */
-#endif /* AQUA */
#define TkStylePkgInit \
(tkIntStubsPtr->tkStylePkgInit) /* 146 */
#define TkStylePkgFree \
@@ -1319,5 +1145,33 @@ extern const TkIntStubs *tkIntStubsPtr;
#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT
+/*
+ * On X11, these macros are just wrappers for the equivalent X Region calls.
+ */
+#if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
+
+#undef TkClipBox
+#undef TkCreateRegion
+#undef TkDestroyRegion
+#undef TkIntersectRegion
+#undef TkRectInRegion
+#undef TkSetRegion
+#undef TkSubtractRegion
+#undef TkUnionRectWithRegion
+
+#define TkClipBox(rgn, rect) XClipBox((Region) rgn, rect)
+#define TkCreateRegion() (TkRegion) XCreateRegion()
+#define TkDestroyRegion(rgn) XDestroyRegion((Region) rgn)
+#define TkIntersectRegion(a, b, r) XIntersectRegion((Region) a, \
+ (Region) b, (Region) r)
+#define TkRectInRegion(r, x, y, w, h) XRectInRegion((Region) r, x, y, w, h)
+#define TkSetRegion(d, gc, rgn) XSetRegion(d, gc, (Region) rgn)
+#define TkSubtractRegion(a, b, r) XSubtractRegion((Region) a, \
+ (Region) b, (Region) r)
+#define TkUnionRectWithRegion(rect, src, ret) XUnionRectWithRegion(rect, \
+ (Region) src, (Region) ret)
+
+#endif /* UNIX */
+
#endif /* _TKINTDECLS */
diff --git a/generic/tkIntPlatDecls.h b/generic/tkIntPlatDecls.h
index 0de1b83..e2528d8 100644
--- a/generic/tkIntPlatDecls.h
+++ b/generic/tkIntPlatDecls.h
@@ -8,8 +8,6 @@
*
* Copyright (c) 1998-1999 by Scriptics Corporation.
* All rights reserved.
- *
- * RCS: @(#) $Id: tkIntPlatDecls.h,v 1.40 2010/08/21 16:35:31 nijtmans Exp $
*/
#ifndef _TKINTPLATDECLS
@@ -32,7 +30,7 @@
* Exported function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
/* 0 */
EXTERN char * TkAlignImageData(XImage *image, int alignment,
int bitOrder);
@@ -54,7 +52,7 @@ EXTERN void TkpSetCapture(TkWindow *winPtr);
/* 8 */
EXTERN void TkpSetCursor(TkpCursor cursor);
/* 9 */
-EXTERN void TkpWmSetState(TkWindow *winPtr, int state);
+EXTERN int TkpWmSetState(TkWindow *winPtr, int state);
/* 10 */
EXTERN void TkSetPixmapColormap(Pixmap pixmap, Colormap colormap);
/* 11 */
@@ -118,8 +116,28 @@ EXTERN void TkWinSetHINSTANCE(HINSTANCE hInstance);
/* 35 */
EXTERN int TkWinGetPlatformTheme(void);
/* 36 */
-EXTERN LRESULT CALLBACK TkWinChildProc(HWND hwnd, UINT message,
+EXTERN LRESULT __stdcall TkWinChildProc(HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam);
+/* 37 */
+EXTERN void TkCreateXEventSource(void);
+/* 38 */
+EXTERN int TkpCmapStressed(Tk_Window tkwin, Colormap colormap);
+/* 39 */
+EXTERN void TkpSync(Display *display);
+/* 40 */
+EXTERN Window TkUnixContainerId(TkWindow *winPtr);
+/* 41 */
+EXTERN int TkUnixDoOneXEvent(Tcl_Time *timePtr);
+/* 42 */
+EXTERN void TkUnixSetMenubar(Tk_Window tkwin, Tk_Window menubar);
+/* 43 */
+EXTERN void TkWmCleanup(TkDisplay *dispPtr);
+/* 44 */
+EXTERN void TkSendCleanup(TkDisplay *dispPtr);
+/* 45 */
+EXTERN int TkpTestsendCmd(ClientData clientData,
+ Tcl_Interp *interp, int argc,
+ const char **argv);
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
/* 0 */
@@ -231,8 +249,10 @@ EXTERN void TkGenWMDestroyEvent(Tk_Window tkwin);
/* Slot 52 is reserved */
/* 53 */
EXTERN unsigned long TkpGetMS(void);
+/* 54 */
+EXTERN void * TkMacOSXDrawable(Drawable drawable);
#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
+#if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
/* 0 */
EXTERN void TkCreateXEventSource(void);
/* Slot 1 is reserved */
@@ -267,7 +287,7 @@ typedef struct TkIntPlatStubs {
int magic;
const struct TkIntPlatStubHooks *hooks;
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
char * (*tkAlignImageData) (XImage *image, int alignment, int bitOrder); /* 0 */
void (*reserved1)(void);
void (*tkGenerateActivateEvents) (TkWindow *winPtr, int active); /* 2 */
@@ -277,7 +297,7 @@ typedef struct TkIntPlatStubs {
int (*tkpScanWindowId) (Tcl_Interp *interp, const char *string, Window *idPtr); /* 6 */
void (*tkpSetCapture) (TkWindow *winPtr); /* 7 */
void (*tkpSetCursor) (TkpCursor cursor); /* 8 */
- void (*tkpWmSetState) (TkWindow *winPtr, int state); /* 9 */
+ int (*tkpWmSetState) (TkWindow *winPtr, int state); /* 9 */
void (*tkSetPixmapColormap) (Pixmap pixmap, Colormap colormap); /* 10 */
void (*tkWinCancelMouseTimer) (void); /* 11 */
void (*tkWinClipboardRender) (TkDisplay *dispPtr, UINT format); /* 12 */
@@ -304,7 +324,16 @@ typedef struct TkIntPlatStubs {
int (*tkWinGetPlatformId) (void); /* 33 */
void (*tkWinSetHINSTANCE) (HINSTANCE hInstance); /* 34 */
int (*tkWinGetPlatformTheme) (void); /* 35 */
- LRESULT (CALLBACK *tkWinChildProc) (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); /* 36 */
+ LRESULT (__stdcall *tkWinChildProc) (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); /* 36 */
+ void (*tkCreateXEventSource) (void); /* 37 */
+ int (*tkpCmapStressed) (Tk_Window tkwin, Colormap colormap); /* 38 */
+ void (*tkpSync) (Display *display); /* 39 */
+ Window (*tkUnixContainerId) (TkWindow *winPtr); /* 40 */
+ int (*tkUnixDoOneXEvent) (Tcl_Time *timePtr); /* 41 */
+ void (*tkUnixSetMenubar) (Tk_Window tkwin, Tk_Window menubar); /* 42 */
+ void (*tkWmCleanup) (TkDisplay *dispPtr); /* 43 */
+ void (*tkSendCleanup) (TkDisplay *dispPtr); /* 44 */
+ int (*tkpTestsendCmd) (ClientData clientData, Tcl_Interp *interp, int argc, const char **argv); /* 45 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
void (*tkGenerateActivateEvents) (TkWindow *winPtr, int active); /* 0 */
@@ -361,8 +390,9 @@ typedef struct TkIntPlatStubs {
void (*tkGenWMDestroyEvent) (Tk_Window tkwin); /* 51 */
void (*reserved52)(void);
unsigned long (*tkpGetMS) (void); /* 53 */
+ void * (*tkMacOSXDrawable) (Drawable drawable); /* 54 */
#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
+#if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
void (*tkCreateXEventSource) (void); /* 0 */
void (*reserved1)(void);
void (*reserved2)(void);
@@ -394,7 +424,7 @@ extern const TkIntPlatStubs *tkIntPlatStubsPtr;
* Inline function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
#define TkAlignImageData \
(tkIntPlatStubsPtr->tkAlignImageData) /* 0 */
/* Slot 1 is reserved */
@@ -468,6 +498,24 @@ extern const TkIntPlatStubs *tkIntPlatStubsPtr;
(tkIntPlatStubsPtr->tkWinGetPlatformTheme) /* 35 */
#define TkWinChildProc \
(tkIntPlatStubsPtr->tkWinChildProc) /* 36 */
+#define TkCreateXEventSource \
+ (tkIntPlatStubsPtr->tkCreateXEventSource) /* 37 */
+#define TkpCmapStressed \
+ (tkIntPlatStubsPtr->tkpCmapStressed) /* 38 */
+#define TkpSync \
+ (tkIntPlatStubsPtr->tkpSync) /* 39 */
+#define TkUnixContainerId \
+ (tkIntPlatStubsPtr->tkUnixContainerId) /* 40 */
+#define TkUnixDoOneXEvent \
+ (tkIntPlatStubsPtr->tkUnixDoOneXEvent) /* 41 */
+#define TkUnixSetMenubar \
+ (tkIntPlatStubsPtr->tkUnixSetMenubar) /* 42 */
+#define TkWmCleanup \
+ (tkIntPlatStubsPtr->tkWmCleanup) /* 43 */
+#define TkSendCleanup \
+ (tkIntPlatStubsPtr->tkSendCleanup) /* 44 */
+#define TkpTestsendCmd \
+ (tkIntPlatStubsPtr->tkpTestsendCmd) /* 45 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
#define TkGenerateActivateEvents \
@@ -570,8 +618,10 @@ extern const TkIntPlatStubs *tkIntPlatStubsPtr;
/* Slot 52 is reserved */
#define TkpGetMS \
(tkIntPlatStubsPtr->tkpGetMS) /* 53 */
+#define TkMacOSXDrawable \
+ (tkIntPlatStubsPtr->tkMacOSXDrawable) /* 54 */
#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
+#if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
#define TkCreateXEventSource \
(tkIntPlatStubsPtr->tkCreateXEventSource) /* 0 */
/* Slot 1 is reserved */
diff --git a/generic/tkIntXlibDecls.h b/generic/tkIntXlibDecls.h
index 1149d39..5b0f267 100644
--- a/generic/tkIntXlibDecls.h
+++ b/generic/tkIntXlibDecls.h
@@ -8,8 +8,6 @@
*
* Copyright (c) 1998-1999 by Scriptics Corporation.
* All rights reserved.
- *
- * RCS: @(#) $Id: tkIntXlibDecls.h,v 1.32 2010/08/21 16:35:33 nijtmans Exp $
*/
#ifndef _TKINTXLIBDECLS
@@ -32,15 +30,19 @@
#define TCL_STORAGE_CLASS DLLEXPORT
#endif
+typedef int (*XAfterFunction) ( /* WARNING, this type not in Xlib spec */
+ Display* /* display */
+);
+
/* !BEGIN!: Do not edit below this line. */
/*
* Exported function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
/* 0 */
-EXTERN void XSetDashes(Display *display, GC gc, int dash_offset,
+EXTERN int XSetDashes(Display *display, GC gc, int dash_offset,
_Xconst char *dash_list, int n);
/* 1 */
EXTERN XModifierKeymap * XGetModifierMapping(Display *d);
@@ -66,7 +68,7 @@ EXTERN Cursor XCreatePixmapCursor(Display *d, Pixmap p1, Pixmap p2,
/* 8 */
EXTERN Cursor XCreateGlyphCursor(Display *d, Font f1, Font f2,
unsigned int ui1, unsigned int ui2,
- XColor *x1, XColor *x2);
+ XColor _Xconst *x1, XColor _Xconst *x2);
/* 9 */
EXTERN GContext XGContextFromGC(GC g);
/* 10 */
@@ -89,25 +91,25 @@ EXTERN Status XGetWMColormapWindows(Display *d, Window w,
/* 18 */
EXTERN Status XAllocColor(Display *d, Colormap c, XColor *xp);
/* 19 */
-EXTERN void XBell(Display *d, int i);
+EXTERN int XBell(Display *d, int i);
/* 20 */
-EXTERN void XChangeProperty(Display *d, Window w, Atom a1,
+EXTERN int XChangeProperty(Display *d, Window w, Atom a1,
Atom a2, int i1, int i2,
_Xconst unsigned char *c, int i3);
/* 21 */
-EXTERN void XChangeWindowAttributes(Display *d, Window w,
+EXTERN int XChangeWindowAttributes(Display *d, Window w,
unsigned long ul, XSetWindowAttributes *x);
/* 22 */
-EXTERN void XClearWindow(Display *d, Window w);
+EXTERN int XClearWindow(Display *d, Window w);
/* 23 */
-EXTERN void XConfigureWindow(Display *d, Window w,
+EXTERN int XConfigureWindow(Display *d, Window w,
unsigned int i, XWindowChanges *x);
/* 24 */
-EXTERN void XCopyArea(Display *d, Drawable dr1, Drawable dr2,
+EXTERN int XCopyArea(Display *d, Drawable dr1, Drawable dr2,
GC g, int i1, int i2, unsigned int ui1,
unsigned int ui2, int i3, int i4);
/* 25 */
-EXTERN void XCopyPlane(Display *d, Drawable dr1, Drawable dr2,
+EXTERN int XCopyPlane(Display *d, Drawable dr1, Drawable dr2,
GC g, int i1, int i2, unsigned int ui1,
unsigned int ui2, int i3, int i4,
unsigned long ul);
@@ -116,49 +118,49 @@ EXTERN Pixmap XCreateBitmapFromData(Display *display, Drawable d,
_Xconst char *data, unsigned int width,
unsigned int height);
/* 27 */
-EXTERN void XDefineCursor(Display *d, Window w, Cursor c);
+EXTERN int XDefineCursor(Display *d, Window w, Cursor c);
/* 28 */
-EXTERN void XDeleteProperty(Display *d, Window w, Atom a);
+EXTERN int XDeleteProperty(Display *d, Window w, Atom a);
/* 29 */
-EXTERN void XDestroyWindow(Display *d, Window w);
+EXTERN int XDestroyWindow(Display *d, Window w);
/* 30 */
-EXTERN void XDrawArc(Display *d, Drawable dr, GC g, int i1,
+EXTERN int XDrawArc(Display *d, Drawable dr, GC g, int i1,
int i2, unsigned int ui1, unsigned int ui2,
int i3, int i4);
/* 31 */
-EXTERN void XDrawLines(Display *d, Drawable dr, GC g, XPoint *x,
+EXTERN int XDrawLines(Display *d, Drawable dr, GC g, XPoint *x,
int i1, int i2);
/* 32 */
-EXTERN void XDrawRectangle(Display *d, Drawable dr, GC g, int i1,
+EXTERN int XDrawRectangle(Display *d, Drawable dr, GC g, int i1,
int i2, unsigned int ui1, unsigned int ui2);
/* 33 */
-EXTERN void XFillArc(Display *d, Drawable dr, GC g, int i1,
+EXTERN int XFillArc(Display *d, Drawable dr, GC g, int i1,
int i2, unsigned int ui1, unsigned int ui2,
int i3, int i4);
/* 34 */
-EXTERN void XFillPolygon(Display *d, Drawable dr, GC g,
+EXTERN int XFillPolygon(Display *d, Drawable dr, GC g,
XPoint *x, int i1, int i2, int i3);
/* 35 */
-EXTERN void XFillRectangles(Display *d, Drawable dr, GC g,
+EXTERN int XFillRectangles(Display *d, Drawable dr, GC g,
XRectangle *x, int i);
/* 36 */
-EXTERN void XForceScreenSaver(Display *d, int i);
+EXTERN int XForceScreenSaver(Display *d, int i);
/* 37 */
-EXTERN void XFreeColormap(Display *d, Colormap c);
+EXTERN int XFreeColormap(Display *d, Colormap c);
/* 38 */
-EXTERN void XFreeColors(Display *d, Colormap c,
+EXTERN int XFreeColors(Display *d, Colormap c,
unsigned long *ulp, int i, unsigned long ul);
/* 39 */
-EXTERN void XFreeCursor(Display *d, Cursor c);
+EXTERN int XFreeCursor(Display *d, Cursor c);
/* 40 */
-EXTERN void XFreeModifiermap(XModifierKeymap *x);
+EXTERN int XFreeModifiermap(XModifierKeymap *x);
/* 41 */
EXTERN Status XGetGeometry(Display *d, Drawable dr, Window *w,
int *i1, int *i2, unsigned int *ui1,
unsigned int *ui2, unsigned int *ui3,
unsigned int *ui4);
/* 42 */
-EXTERN void XGetInputFocus(Display *d, Window *w, int *i);
+EXTERN int XGetInputFocus(Display *d, Window *w, int *i);
/* 43 */
EXTERN int XGetWindowProperty(Display *d, Window w, Atom a1,
long l1, long l2, Bool b, Atom a2, Atom *ap,
@@ -180,18 +182,18 @@ EXTERN KeyCode XKeysymToKeycode(Display *d, KeySym k);
EXTERN Status XLookupColor(Display *d, Colormap c1,
_Xconst char *c2, XColor *x1, XColor *x2);
/* 49 */
-EXTERN void XMapWindow(Display *d, Window w);
+EXTERN int XMapWindow(Display *d, Window w);
/* 50 */
-EXTERN void XMoveResizeWindow(Display *d, Window w, int i1,
+EXTERN int XMoveResizeWindow(Display *d, Window w, int i1,
int i2, unsigned int ui1, unsigned int ui2);
/* 51 */
-EXTERN void XMoveWindow(Display *d, Window w, int i1, int i2);
+EXTERN int XMoveWindow(Display *d, Window w, int i1, int i2);
/* 52 */
-EXTERN void XNextEvent(Display *d, XEvent *x);
+EXTERN int XNextEvent(Display *d, XEvent *x);
/* 53 */
-EXTERN void XPutBackEvent(Display *d, XEvent *x);
+EXTERN int XPutBackEvent(Display *d, XEvent *x);
/* 54 */
-EXTERN void XQueryColors(Display *d, Colormap c, XColor *x,
+EXTERN int XQueryColors(Display *d, Colormap c, XColor *x,
int i);
/* 55 */
EXTERN Bool XQueryPointer(Display *d, Window w1, Window *w2,
@@ -201,56 +203,55 @@ EXTERN Bool XQueryPointer(Display *d, Window w1, Window *w2,
EXTERN Status XQueryTree(Display *d, Window w1, Window *w2,
Window *w3, Window **w4, unsigned int *ui);
/* 57 */
-EXTERN void XRaiseWindow(Display *d, Window w);
+EXTERN int XRaiseWindow(Display *d, Window w);
/* 58 */
-EXTERN void XRefreshKeyboardMapping(XMappingEvent *x);
+EXTERN int XRefreshKeyboardMapping(XMappingEvent *x);
/* 59 */
-EXTERN void XResizeWindow(Display *d, Window w, unsigned int ui1,
+EXTERN int XResizeWindow(Display *d, Window w, unsigned int ui1,
unsigned int ui2);
/* 60 */
-EXTERN void XSelectInput(Display *d, Window w, long l);
+EXTERN int XSelectInput(Display *d, Window w, long l);
/* 61 */
EXTERN Status XSendEvent(Display *d, Window w, Bool b, long l,
XEvent *x);
/* 62 */
-EXTERN void XSetCommand(Display *d, Window w, const char **c,
- int i);
+EXTERN int XSetCommand(Display *d, Window w, char **c, int i);
/* 63 */
-EXTERN void XSetIconName(Display *d, Window w, _Xconst char *c);
+EXTERN int XSetIconName(Display *d, Window w, _Xconst char *c);
/* 64 */
-EXTERN void XSetInputFocus(Display *d, Window w, int i, Time t);
+EXTERN int XSetInputFocus(Display *d, Window w, int i, Time t);
/* 65 */
-EXTERN void XSetSelectionOwner(Display *d, Atom a, Window w,
+EXTERN int XSetSelectionOwner(Display *d, Atom a, Window w,
Time t);
/* 66 */
-EXTERN void XSetWindowBackground(Display *d, Window w,
+EXTERN int XSetWindowBackground(Display *d, Window w,
unsigned long ul);
/* 67 */
-EXTERN void XSetWindowBackgroundPixmap(Display *d, Window w,
+EXTERN int XSetWindowBackgroundPixmap(Display *d, Window w,
Pixmap p);
/* 68 */
-EXTERN void XSetWindowBorder(Display *d, Window w,
+EXTERN int XSetWindowBorder(Display *d, Window w,
unsigned long ul);
/* 69 */
-EXTERN void XSetWindowBorderPixmap(Display *d, Window w,
+EXTERN int XSetWindowBorderPixmap(Display *d, Window w,
Pixmap p);
/* 70 */
-EXTERN void XSetWindowBorderWidth(Display *d, Window w,
+EXTERN int XSetWindowBorderWidth(Display *d, Window w,
unsigned int ui);
/* 71 */
-EXTERN void XSetWindowColormap(Display *d, Window w, Colormap c);
+EXTERN int XSetWindowColormap(Display *d, Window w, Colormap c);
/* 72 */
EXTERN Bool XTranslateCoordinates(Display *d, Window w1,
Window w2, int i1, int i2, int *i3, int *i4,
Window *w3);
/* 73 */
-EXTERN void XUngrabKeyboard(Display *d, Time t);
+EXTERN int XUngrabKeyboard(Display *d, Time t);
/* 74 */
-EXTERN void XUngrabPointer(Display *d, Time t);
+EXTERN int XUngrabPointer(Display *d, Time t);
/* 75 */
-EXTERN void XUnmapWindow(Display *d, Window w);
+EXTERN int XUnmapWindow(Display *d, Window w);
/* 76 */
-EXTERN void XWindowEvent(Display *d, Window w, long l, XEvent *x);
+EXTERN int XWindowEvent(Display *d, Window w, long l, XEvent *x);
/* 77 */
EXTERN void XDestroyIC(XIC x);
/* 78 */
@@ -259,7 +260,7 @@ EXTERN Bool XFilterEvent(XEvent *x, Window w);
EXTERN int XmbLookupString(XIC xi, XKeyPressedEvent *xk,
char *c, int i, KeySym *k, Status *s);
/* 80 */
-EXTERN void TkPutImage(unsigned long *colors, int ncolors,
+EXTERN int TkPutImage(unsigned long *colors, int ncolors,
Display *display, Drawable d, GC gc,
XImage *image, int src_x, int src_y,
int dest_x, int dest_y, unsigned int width,
@@ -272,48 +273,48 @@ EXTERN Status XParseColor(Display *display, Colormap map,
EXTERN GC XCreateGC(Display *display, Drawable d,
unsigned long valuemask, XGCValues *values);
/* 84 */
-EXTERN void XFreeGC(Display *display, GC gc);
+EXTERN int XFreeGC(Display *display, GC gc);
/* 85 */
EXTERN Atom XInternAtom(Display *display,
_Xconst char *atom_name, Bool only_if_exists);
/* 86 */
-EXTERN void XSetBackground(Display *display, GC gc,
+EXTERN int XSetBackground(Display *display, GC gc,
unsigned long foreground);
/* 87 */
-EXTERN void XSetForeground(Display *display, GC gc,
+EXTERN int XSetForeground(Display *display, GC gc,
unsigned long foreground);
/* 88 */
-EXTERN void XSetClipMask(Display *display, GC gc, Pixmap pixmap);
+EXTERN int XSetClipMask(Display *display, GC gc, Pixmap pixmap);
/* 89 */
-EXTERN void XSetClipOrigin(Display *display, GC gc,
+EXTERN int XSetClipOrigin(Display *display, GC gc,
int clip_x_origin, int clip_y_origin);
/* 90 */
-EXTERN void XSetTSOrigin(Display *display, GC gc,
+EXTERN int XSetTSOrigin(Display *display, GC gc,
int ts_x_origin, int ts_y_origin);
/* 91 */
-EXTERN void XChangeGC(Display *d, GC gc, unsigned long mask,
+EXTERN int XChangeGC(Display *d, GC gc, unsigned long mask,
XGCValues *values);
/* 92 */
-EXTERN void XSetFont(Display *display, GC gc, Font font);
+EXTERN int XSetFont(Display *display, GC gc, Font font);
/* 93 */
-EXTERN void XSetArcMode(Display *display, GC gc, int arc_mode);
+EXTERN int XSetArcMode(Display *display, GC gc, int arc_mode);
/* 94 */
-EXTERN void XSetStipple(Display *display, GC gc, Pixmap stipple);
+EXTERN int XSetStipple(Display *display, GC gc, Pixmap stipple);
/* 95 */
-EXTERN void XSetFillRule(Display *display, GC gc, int fill_rule);
+EXTERN int XSetFillRule(Display *display, GC gc, int fill_rule);
/* 96 */
-EXTERN void XSetFillStyle(Display *display, GC gc,
+EXTERN int XSetFillStyle(Display *display, GC gc,
int fill_style);
/* 97 */
-EXTERN void XSetFunction(Display *display, GC gc, int function);
+EXTERN int XSetFunction(Display *display, GC gc, int function);
/* 98 */
-EXTERN void XSetLineAttributes(Display *display, GC gc,
+EXTERN int XSetLineAttributes(Display *display, GC gc,
unsigned int line_width, int line_style,
int cap_style, int join_style);
/* 99 */
EXTERN int _XInitImageFuncPtrs(XImage *image);
/* 100 */
-EXTERN XIC XCreateIC(void);
+EXTERN XIC XCreateIC(XIM xim, ...);
/* 101 */
EXTERN XVisualInfo * XGetVisualInfo(Display *display, long vinfo_mask,
XVisualInfo *vinfo_template,
@@ -325,20 +326,36 @@ EXTERN void XSetWMClientMachine(Display *display, Window w,
EXTERN Status XStringListToTextProperty(char **list, int count,
XTextProperty *text_prop_return);
/* 104 */
-EXTERN void XDrawLine(Display *d, Drawable dr, GC g, int x1,
+EXTERN int XDrawLine(Display *d, Drawable dr, GC g, int x1,
int y1, int x2, int y2);
/* 105 */
-EXTERN void XWarpPointer(Display *d, Window s, Window dw, int sx,
+EXTERN int XWarpPointer(Display *d, Window s, Window dw, int sx,
int sy, unsigned int sw, unsigned int sh,
int dx, int dy);
/* 106 */
-EXTERN void XFillRectangle(Display *display, Drawable d, GC gc,
+EXTERN int XFillRectangle(Display *display, Drawable d, GC gc,
int x, int y, unsigned int width,
unsigned int height);
+/* 107 */
+EXTERN int XFlush(Display *display);
+/* 108 */
+EXTERN int XGrabServer(Display *display);
+/* 109 */
+EXTERN int XUngrabServer(Display *display);
+/* 110 */
+EXTERN int XFree(void *data);
+/* 111 */
+EXTERN int XNoOp(Display *display);
+/* 112 */
+EXTERN XAfterFunction XSynchronize(Display *display, Bool onoff);
+/* 113 */
+EXTERN int XSync(Display *display, Bool discard);
+/* 114 */
+EXTERN VisualID XVisualIDFromVisual(Visual *visual);
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
/* 0 */
-EXTERN void XSetDashes(Display *display, GC gc, int dash_offset,
+EXTERN int XSetDashes(Display *display, GC gc, int dash_offset,
_Xconst char *dash_list, int n);
/* 1 */
EXTERN XModifierKeymap * XGetModifierMapping(Display *d);
@@ -370,7 +387,7 @@ EXTERN XErrorHandler XSetErrorHandler(XErrorHandler x);
/* 12 */
EXTERN Status XAllocColor(Display *d, Colormap c, XColor *xp);
/* 13 */
-EXTERN void XBell(Display *d, int i);
+EXTERN int XBell(Display *d, int i);
/* 14 */
EXTERN void XChangeProperty(Display *d, Window w, Atom a1,
Atom a2, int i1, int i2,
@@ -395,7 +412,7 @@ EXTERN Pixmap XCreateBitmapFromData(Display *display, Drawable d,
_Xconst char *data, unsigned int width,
unsigned int height);
/* 20 */
-EXTERN void XDefineCursor(Display *d, Window w, Cursor c);
+EXTERN int XDefineCursor(Display *d, Window w, Cursor c);
/* 21 */
EXTERN void XDestroyWindow(Display *d, Window w);
/* 22 */
@@ -403,7 +420,7 @@ EXTERN void XDrawArc(Display *d, Drawable dr, GC g, int i1,
int i2, unsigned int ui1, unsigned int ui2,
int i3, int i4);
/* 23 */
-EXTERN void XDrawLines(Display *d, Drawable dr, GC g, XPoint *x,
+EXTERN int XDrawLines(Display *d, Drawable dr, GC g, XPoint *x,
int i1, int i2);
/* 24 */
EXTERN void XDrawRectangle(Display *d, Drawable dr, GC g, int i1,
@@ -416,15 +433,15 @@ EXTERN void XFillArc(Display *d, Drawable dr, GC g, int i1,
EXTERN void XFillPolygon(Display *d, Drawable dr, GC g,
XPoint *x, int i1, int i2, int i3);
/* 27 */
-EXTERN void XFillRectangles(Display *d, Drawable dr, GC g,
+EXTERN int XFillRectangles(Display *d, Drawable dr, GC g,
XRectangle *x, int i);
/* 28 */
-EXTERN void XFreeColormap(Display *d, Colormap c);
+EXTERN int XFreeColormap(Display *d, Colormap c);
/* 29 */
-EXTERN void XFreeColors(Display *d, Colormap c,
+EXTERN int XFreeColors(Display *d, Colormap c,
unsigned long *ulp, int i, unsigned long ul);
/* 30 */
-EXTERN void XFreeModifiermap(XModifierKeymap *x);
+EXTERN int XFreeModifiermap(XModifierKeymap *x);
/* 31 */
EXTERN Status XGetGeometry(Display *d, Drawable dr, Window *w,
int *i1, int *i2, unsigned int *ui1,
@@ -472,7 +489,7 @@ EXTERN void XSetIconName(Display *d, Window w, _Xconst char *c);
/* 46 */
EXTERN void XSetInputFocus(Display *d, Window w, int i, Time t);
/* 47 */
-EXTERN void XSetSelectionOwner(Display *d, Atom a, Window w,
+EXTERN int XSetSelectionOwner(Display *d, Atom a, Window w,
Time t);
/* 48 */
EXTERN void XSetWindowBackground(Display *d, Window w,
@@ -494,11 +511,11 @@ EXTERN void XSetWindowColormap(Display *d, Window w, Colormap c);
/* 54 */
EXTERN void XUngrabKeyboard(Display *d, Time t);
/* 55 */
-EXTERN void XUngrabPointer(Display *d, Time t);
+EXTERN int XUngrabPointer(Display *d, Time t);
/* 56 */
EXTERN void XUnmapWindow(Display *d, Window w);
/* 57 */
-EXTERN void TkPutImage(unsigned long *colors, int ncolors,
+EXTERN int TkPutImage(unsigned long *colors, int ncolors,
Display *display, Drawable d, GC gc,
XImage *image, int src_x, int src_y,
int dest_x, int dest_y, unsigned int width,
@@ -510,42 +527,42 @@ EXTERN Status XParseColor(Display *display, Colormap map,
EXTERN GC XCreateGC(Display *display, Drawable d,
unsigned long valuemask, XGCValues *values);
/* 60 */
-EXTERN void XFreeGC(Display *display, GC gc);
+EXTERN int XFreeGC(Display *display, GC gc);
/* 61 */
EXTERN Atom XInternAtom(Display *display,
_Xconst char *atom_name, Bool only_if_exists);
/* 62 */
-EXTERN void XSetBackground(Display *display, GC gc,
+EXTERN int XSetBackground(Display *display, GC gc,
unsigned long foreground);
/* 63 */
-EXTERN void XSetForeground(Display *display, GC gc,
+EXTERN int XSetForeground(Display *display, GC gc,
unsigned long foreground);
/* 64 */
-EXTERN void XSetClipMask(Display *display, GC gc, Pixmap pixmap);
+EXTERN int XSetClipMask(Display *display, GC gc, Pixmap pixmap);
/* 65 */
-EXTERN void XSetClipOrigin(Display *display, GC gc,
+EXTERN int XSetClipOrigin(Display *display, GC gc,
int clip_x_origin, int clip_y_origin);
/* 66 */
-EXTERN void XSetTSOrigin(Display *display, GC gc,
+EXTERN int XSetTSOrigin(Display *display, GC gc,
int ts_x_origin, int ts_y_origin);
/* 67 */
-EXTERN void XChangeGC(Display *d, GC gc, unsigned long mask,
+EXTERN int XChangeGC(Display *d, GC gc, unsigned long mask,
XGCValues *values);
/* 68 */
-EXTERN void XSetFont(Display *display, GC gc, Font font);
+EXTERN int XSetFont(Display *display, GC gc, Font font);
/* 69 */
-EXTERN void XSetArcMode(Display *display, GC gc, int arc_mode);
+EXTERN int XSetArcMode(Display *display, GC gc, int arc_mode);
/* 70 */
-EXTERN void XSetStipple(Display *display, GC gc, Pixmap stipple);
+EXTERN int XSetStipple(Display *display, GC gc, Pixmap stipple);
/* 71 */
-EXTERN void XSetFillRule(Display *display, GC gc, int fill_rule);
+EXTERN int XSetFillRule(Display *display, GC gc, int fill_rule);
/* 72 */
-EXTERN void XSetFillStyle(Display *display, GC gc,
+EXTERN int XSetFillStyle(Display *display, GC gc,
int fill_style);
/* 73 */
-EXTERN void XSetFunction(Display *display, GC gc, int function);
+EXTERN int XSetFunction(Display *display, GC gc, int function);
/* 74 */
-EXTERN void XSetLineAttributes(Display *display, GC gc,
+EXTERN int XSetLineAttributes(Display *display, GC gc,
unsigned int line_width, int line_style,
int cap_style, int join_style);
/* 75 */
@@ -568,10 +585,10 @@ EXTERN void XDrawSegments(Display *display, Drawable d, GC gc,
/* 81 */
EXTERN void XForceScreenSaver(Display *display, int mode);
/* 82 */
-EXTERN void XDrawLine(Display *d, Drawable dr, GC g, int x1,
+EXTERN int XDrawLine(Display *d, Drawable dr, GC g, int x1,
int y1, int x2, int y2);
/* 83 */
-EXTERN void XFillRectangle(Display *display, Drawable d, GC gc,
+EXTERN int XFillRectangle(Display *display, Drawable d, GC gc,
int x, int y, unsigned int width,
unsigned int height);
/* 84 */
@@ -583,7 +600,7 @@ EXTERN void XDrawPoint(Display *display, Drawable d, GC gc,
EXTERN void XDrawPoints(Display *display, Drawable d, GC gc,
XPoint *points, int npoints, int mode);
/* 87 */
-EXTERN void XWarpPointer(Display *display, Window src_w,
+EXTERN int XWarpPointer(Display *display, Window src_w,
Window dest_w, int src_x, int src_y,
unsigned int src_width,
unsigned int src_height, int dest_x,
@@ -605,8 +622,8 @@ typedef struct TkIntXlibStubs {
int magic;
const struct TkIntXlibStubHooks *hooks;
-#ifdef __WIN32__ /* WIN */
- void (*xSetDashes) (Display *display, GC gc, int dash_offset, _Xconst char *dash_list, int n); /* 0 */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
+ int (*xSetDashes) (Display *display, GC gc, int dash_offset, _Xconst char *dash_list, int n); /* 0 */
XModifierKeymap * (*xGetModifierMapping) (Display *d); /* 1 */
XImage * (*xCreateImage) (Display *d, Visual *v, unsigned int ui1, int i1, int i2, char *cp, unsigned int ui2, unsigned int ui3, int i3, int i4); /* 2 */
XImage * (*xGetImage) (Display *d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3); /* 3 */
@@ -614,7 +631,7 @@ typedef struct TkIntXlibStubs {
char * (*xKeysymToString) (KeySym k); /* 5 */
Colormap (*xCreateColormap) (Display *d, Window w, Visual *v, int i); /* 6 */
Cursor (*xCreatePixmapCursor) (Display *d, Pixmap p1, Pixmap p2, XColor *x1, XColor *x2, unsigned int ui1, unsigned int ui2); /* 7 */
- Cursor (*xCreateGlyphCursor) (Display *d, Font f1, Font f2, unsigned int ui1, unsigned int ui2, XColor *x1, XColor *x2); /* 8 */
+ Cursor (*xCreateGlyphCursor) (Display *d, Font f1, Font f2, unsigned int ui1, unsigned int ui2, XColor _Xconst *x1, XColor _Xconst *x2); /* 8 */
GContext (*xGContextFromGC) (GC g); /* 9 */
XHostAddress * (*xListHosts) (Display *d, int *i, Bool *b); /* 10 */
KeySym (*xKeycodeToKeysym) (Display *d, unsigned int k, int i); /* 11 */
@@ -625,97 +642,105 @@ typedef struct TkIntXlibStubs {
Status (*xWithdrawWindow) (Display *d, Window w, int i); /* 16 */
Status (*xGetWMColormapWindows) (Display *d, Window w, Window **wpp, int *ip); /* 17 */
Status (*xAllocColor) (Display *d, Colormap c, XColor *xp); /* 18 */
- void (*xBell) (Display *d, int i); /* 19 */
- void (*xChangeProperty) (Display *d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char *c, int i3); /* 20 */
- void (*xChangeWindowAttributes) (Display *d, Window w, unsigned long ul, XSetWindowAttributes *x); /* 21 */
- void (*xClearWindow) (Display *d, Window w); /* 22 */
- void (*xConfigureWindow) (Display *d, Window w, unsigned int i, XWindowChanges *x); /* 23 */
- void (*xCopyArea) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 24 */
- void (*xCopyPlane) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul); /* 25 */
+ int (*xBell) (Display *d, int i); /* 19 */
+ int (*xChangeProperty) (Display *d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char *c, int i3); /* 20 */
+ int (*xChangeWindowAttributes) (Display *d, Window w, unsigned long ul, XSetWindowAttributes *x); /* 21 */
+ int (*xClearWindow) (Display *d, Window w); /* 22 */
+ int (*xConfigureWindow) (Display *d, Window w, unsigned int i, XWindowChanges *x); /* 23 */
+ int (*xCopyArea) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 24 */
+ int (*xCopyPlane) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul); /* 25 */
Pixmap (*xCreateBitmapFromData) (Display *display, Drawable d, _Xconst char *data, unsigned int width, unsigned int height); /* 26 */
- void (*xDefineCursor) (Display *d, Window w, Cursor c); /* 27 */
- void (*xDeleteProperty) (Display *d, Window w, Atom a); /* 28 */
- void (*xDestroyWindow) (Display *d, Window w); /* 29 */
- void (*xDrawArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 30 */
- void (*xDrawLines) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2); /* 31 */
- void (*xDrawRectangle) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 32 */
- void (*xFillArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 33 */
- void (*xFillPolygon) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2, int i3); /* 34 */
- void (*xFillRectangles) (Display *d, Drawable dr, GC g, XRectangle *x, int i); /* 35 */
- void (*xForceScreenSaver) (Display *d, int i); /* 36 */
- void (*xFreeColormap) (Display *d, Colormap c); /* 37 */
- void (*xFreeColors) (Display *d, Colormap c, unsigned long *ulp, int i, unsigned long ul); /* 38 */
- void (*xFreeCursor) (Display *d, Cursor c); /* 39 */
- void (*xFreeModifiermap) (XModifierKeymap *x); /* 40 */
+ int (*xDefineCursor) (Display *d, Window w, Cursor c); /* 27 */
+ int (*xDeleteProperty) (Display *d, Window w, Atom a); /* 28 */
+ int (*xDestroyWindow) (Display *d, Window w); /* 29 */
+ int (*xDrawArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 30 */
+ int (*xDrawLines) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2); /* 31 */
+ int (*xDrawRectangle) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 32 */
+ int (*xFillArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 33 */
+ int (*xFillPolygon) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2, int i3); /* 34 */
+ int (*xFillRectangles) (Display *d, Drawable dr, GC g, XRectangle *x, int i); /* 35 */
+ int (*xForceScreenSaver) (Display *d, int i); /* 36 */
+ int (*xFreeColormap) (Display *d, Colormap c); /* 37 */
+ int (*xFreeColors) (Display *d, Colormap c, unsigned long *ulp, int i, unsigned long ul); /* 38 */
+ int (*xFreeCursor) (Display *d, Cursor c); /* 39 */
+ int (*xFreeModifiermap) (XModifierKeymap *x); /* 40 */
Status (*xGetGeometry) (Display *d, Drawable dr, Window *w, int *i1, int *i2, unsigned int *ui1, unsigned int *ui2, unsigned int *ui3, unsigned int *ui4); /* 41 */
- void (*xGetInputFocus) (Display *d, Window *w, int *i); /* 42 */
+ int (*xGetInputFocus) (Display *d, Window *w, int *i); /* 42 */
int (*xGetWindowProperty) (Display *d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom *ap, int *ip, unsigned long *ulp1, unsigned long *ulp2, unsigned char **cpp); /* 43 */
Status (*xGetWindowAttributes) (Display *d, Window w, XWindowAttributes *x); /* 44 */
int (*xGrabKeyboard) (Display *d, Window w, Bool b, int i1, int i2, Time t); /* 45 */
int (*xGrabPointer) (Display *d, Window w1, Bool b, unsigned int ui, int i1, int i2, Window w2, Cursor c, Time t); /* 46 */
KeyCode (*xKeysymToKeycode) (Display *d, KeySym k); /* 47 */
Status (*xLookupColor) (Display *d, Colormap c1, _Xconst char *c2, XColor *x1, XColor *x2); /* 48 */
- void (*xMapWindow) (Display *d, Window w); /* 49 */
- void (*xMoveResizeWindow) (Display *d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 50 */
- void (*xMoveWindow) (Display *d, Window w, int i1, int i2); /* 51 */
- void (*xNextEvent) (Display *d, XEvent *x); /* 52 */
- void (*xPutBackEvent) (Display *d, XEvent *x); /* 53 */
- void (*xQueryColors) (Display *d, Colormap c, XColor *x, int i); /* 54 */
+ int (*xMapWindow) (Display *d, Window w); /* 49 */
+ int (*xMoveResizeWindow) (Display *d, Window w, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 50 */
+ int (*xMoveWindow) (Display *d, Window w, int i1, int i2); /* 51 */
+ int (*xNextEvent) (Display *d, XEvent *x); /* 52 */
+ int (*xPutBackEvent) (Display *d, XEvent *x); /* 53 */
+ int (*xQueryColors) (Display *d, Colormap c, XColor *x, int i); /* 54 */
Bool (*xQueryPointer) (Display *d, Window w1, Window *w2, Window *w3, int *i1, int *i2, int *i3, int *i4, unsigned int *ui); /* 55 */
Status (*xQueryTree) (Display *d, Window w1, Window *w2, Window *w3, Window **w4, unsigned int *ui); /* 56 */
- void (*xRaiseWindow) (Display *d, Window w); /* 57 */
- void (*xRefreshKeyboardMapping) (XMappingEvent *x); /* 58 */
- void (*xResizeWindow) (Display *d, Window w, unsigned int ui1, unsigned int ui2); /* 59 */
- void (*xSelectInput) (Display *d, Window w, long l); /* 60 */
+ int (*xRaiseWindow) (Display *d, Window w); /* 57 */
+ int (*xRefreshKeyboardMapping) (XMappingEvent *x); /* 58 */
+ int (*xResizeWindow) (Display *d, Window w, unsigned int ui1, unsigned int ui2); /* 59 */
+ int (*xSelectInput) (Display *d, Window w, long l); /* 60 */
Status (*xSendEvent) (Display *d, Window w, Bool b, long l, XEvent *x); /* 61 */
- void (*xSetCommand) (Display *d, Window w, const char **c, int i); /* 62 */
- void (*xSetIconName) (Display *d, Window w, _Xconst char *c); /* 63 */
- void (*xSetInputFocus) (Display *d, Window w, int i, Time t); /* 64 */
- void (*xSetSelectionOwner) (Display *d, Atom a, Window w, Time t); /* 65 */
- void (*xSetWindowBackground) (Display *d, Window w, unsigned long ul); /* 66 */
- void (*xSetWindowBackgroundPixmap) (Display *d, Window w, Pixmap p); /* 67 */
- void (*xSetWindowBorder) (Display *d, Window w, unsigned long ul); /* 68 */
- void (*xSetWindowBorderPixmap) (Display *d, Window w, Pixmap p); /* 69 */
- void (*xSetWindowBorderWidth) (Display *d, Window w, unsigned int ui); /* 70 */
- void (*xSetWindowColormap) (Display *d, Window w, Colormap c); /* 71 */
+ int (*xSetCommand) (Display *d, Window w, char **c, int i); /* 62 */
+ int (*xSetIconName) (Display *d, Window w, _Xconst char *c); /* 63 */
+ int (*xSetInputFocus) (Display *d, Window w, int i, Time t); /* 64 */
+ int (*xSetSelectionOwner) (Display *d, Atom a, Window w, Time t); /* 65 */
+ int (*xSetWindowBackground) (Display *d, Window w, unsigned long ul); /* 66 */
+ int (*xSetWindowBackgroundPixmap) (Display *d, Window w, Pixmap p); /* 67 */
+ int (*xSetWindowBorder) (Display *d, Window w, unsigned long ul); /* 68 */
+ int (*xSetWindowBorderPixmap) (Display *d, Window w, Pixmap p); /* 69 */
+ int (*xSetWindowBorderWidth) (Display *d, Window w, unsigned int ui); /* 70 */
+ int (*xSetWindowColormap) (Display *d, Window w, Colormap c); /* 71 */
Bool (*xTranslateCoordinates) (Display *d, Window w1, Window w2, int i1, int i2, int *i3, int *i4, Window *w3); /* 72 */
- void (*xUngrabKeyboard) (Display *d, Time t); /* 73 */
- void (*xUngrabPointer) (Display *d, Time t); /* 74 */
- void (*xUnmapWindow) (Display *d, Window w); /* 75 */
- void (*xWindowEvent) (Display *d, Window w, long l, XEvent *x); /* 76 */
+ int (*xUngrabKeyboard) (Display *d, Time t); /* 73 */
+ int (*xUngrabPointer) (Display *d, Time t); /* 74 */
+ int (*xUnmapWindow) (Display *d, Window w); /* 75 */
+ int (*xWindowEvent) (Display *d, Window w, long l, XEvent *x); /* 76 */
void (*xDestroyIC) (XIC x); /* 77 */
Bool (*xFilterEvent) (XEvent *x, Window w); /* 78 */
int (*xmbLookupString) (XIC xi, XKeyPressedEvent *xk, char *c, int i, KeySym *k, Status *s); /* 79 */
- void (*tkPutImage) (unsigned long *colors, int ncolors, Display *display, Drawable d, GC gc, XImage *image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 80 */
+ int (*tkPutImage) (unsigned long *colors, int ncolors, Display *display, Drawable d, GC gc, XImage *image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 80 */
void (*reserved81)(void);
Status (*xParseColor) (Display *display, Colormap map, _Xconst char *spec, XColor *colorPtr); /* 82 */
GC (*xCreateGC) (Display *display, Drawable d, unsigned long valuemask, XGCValues *values); /* 83 */
- void (*xFreeGC) (Display *display, GC gc); /* 84 */
+ int (*xFreeGC) (Display *display, GC gc); /* 84 */
Atom (*xInternAtom) (Display *display, _Xconst char *atom_name, Bool only_if_exists); /* 85 */
- void (*xSetBackground) (Display *display, GC gc, unsigned long foreground); /* 86 */
- void (*xSetForeground) (Display *display, GC gc, unsigned long foreground); /* 87 */
- void (*xSetClipMask) (Display *display, GC gc, Pixmap pixmap); /* 88 */
- void (*xSetClipOrigin) (Display *display, GC gc, int clip_x_origin, int clip_y_origin); /* 89 */
- void (*xSetTSOrigin) (Display *display, GC gc, int ts_x_origin, int ts_y_origin); /* 90 */
- void (*xChangeGC) (Display *d, GC gc, unsigned long mask, XGCValues *values); /* 91 */
- void (*xSetFont) (Display *display, GC gc, Font font); /* 92 */
- void (*xSetArcMode) (Display *display, GC gc, int arc_mode); /* 93 */
- void (*xSetStipple) (Display *display, GC gc, Pixmap stipple); /* 94 */
- void (*xSetFillRule) (Display *display, GC gc, int fill_rule); /* 95 */
- void (*xSetFillStyle) (Display *display, GC gc, int fill_style); /* 96 */
- void (*xSetFunction) (Display *display, GC gc, int function); /* 97 */
- void (*xSetLineAttributes) (Display *display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 98 */
+ int (*xSetBackground) (Display *display, GC gc, unsigned long foreground); /* 86 */
+ int (*xSetForeground) (Display *display, GC gc, unsigned long foreground); /* 87 */
+ int (*xSetClipMask) (Display *display, GC gc, Pixmap pixmap); /* 88 */
+ int (*xSetClipOrigin) (Display *display, GC gc, int clip_x_origin, int clip_y_origin); /* 89 */
+ int (*xSetTSOrigin) (Display *display, GC gc, int ts_x_origin, int ts_y_origin); /* 90 */
+ int (*xChangeGC) (Display *d, GC gc, unsigned long mask, XGCValues *values); /* 91 */
+ int (*xSetFont) (Display *display, GC gc, Font font); /* 92 */
+ int (*xSetArcMode) (Display *display, GC gc, int arc_mode); /* 93 */
+ int (*xSetStipple) (Display *display, GC gc, Pixmap stipple); /* 94 */
+ int (*xSetFillRule) (Display *display, GC gc, int fill_rule); /* 95 */
+ int (*xSetFillStyle) (Display *display, GC gc, int fill_style); /* 96 */
+ int (*xSetFunction) (Display *display, GC gc, int function); /* 97 */
+ int (*xSetLineAttributes) (Display *display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 98 */
int (*_XInitImageFuncPtrs) (XImage *image); /* 99 */
- XIC (*xCreateIC) (void); /* 100 */
+ XIC (*xCreateIC) (XIM xim, ...); /* 100 */
XVisualInfo * (*xGetVisualInfo) (Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return); /* 101 */
void (*xSetWMClientMachine) (Display *display, Window w, XTextProperty *text_prop); /* 102 */
Status (*xStringListToTextProperty) (char **list, int count, XTextProperty *text_prop_return); /* 103 */
- void (*xDrawLine) (Display *d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 104 */
- void (*xWarpPointer) (Display *d, Window s, Window dw, int sx, int sy, unsigned int sw, unsigned int sh, int dx, int dy); /* 105 */
- void (*xFillRectangle) (Display *display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 106 */
+ int (*xDrawLine) (Display *d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 104 */
+ int (*xWarpPointer) (Display *d, Window s, Window dw, int sx, int sy, unsigned int sw, unsigned int sh, int dx, int dy); /* 105 */
+ int (*xFillRectangle) (Display *display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 106 */
+ int (*xFlush) (Display *display); /* 107 */
+ int (*xGrabServer) (Display *display); /* 108 */
+ int (*xUngrabServer) (Display *display); /* 109 */
+ int (*xFree) (void *data); /* 110 */
+ int (*xNoOp) (Display *display); /* 111 */
+ XAfterFunction (*xSynchronize) (Display *display, Bool onoff); /* 112 */
+ int (*xSync) (Display *display, Bool discard); /* 113 */
+ VisualID (*xVisualIDFromVisual) (Visual *visual); /* 114 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
- void (*xSetDashes) (Display *display, GC gc, int dash_offset, _Xconst char *dash_list, int n); /* 0 */
+ int (*xSetDashes) (Display *display, GC gc, int dash_offset, _Xconst char *dash_list, int n); /* 0 */
XModifierKeymap * (*xGetModifierMapping) (Display *d); /* 1 */
XImage * (*xCreateImage) (Display *d, Visual *v, unsigned int ui1, int i1, int i2, char *cp, unsigned int ui2, unsigned int ui3, int i3, int i4); /* 2 */
XImage * (*xGetImage) (Display *d, Drawable dr, int i1, int i2, unsigned int ui1, unsigned int ui2, unsigned long ul, int i3); /* 3 */
@@ -728,24 +753,24 @@ typedef struct TkIntXlibStubs {
Window (*xRootWindow) (Display *d, int i); /* 10 */
XErrorHandler (*xSetErrorHandler) (XErrorHandler x); /* 11 */
Status (*xAllocColor) (Display *d, Colormap c, XColor *xp); /* 12 */
- void (*xBell) (Display *d, int i); /* 13 */
+ int (*xBell) (Display *d, int i); /* 13 */
void (*xChangeProperty) (Display *d, Window w, Atom a1, Atom a2, int i1, int i2, _Xconst unsigned char *c, int i3); /* 14 */
void (*xChangeWindowAttributes) (Display *d, Window w, unsigned long ul, XSetWindowAttributes *x); /* 15 */
void (*xConfigureWindow) (Display *d, Window w, unsigned int i, XWindowChanges *x); /* 16 */
void (*xCopyArea) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 17 */
void (*xCopyPlane) (Display *d, Drawable dr1, Drawable dr2, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4, unsigned long ul); /* 18 */
Pixmap (*xCreateBitmapFromData) (Display *display, Drawable d, _Xconst char *data, unsigned int width, unsigned int height); /* 19 */
- void (*xDefineCursor) (Display *d, Window w, Cursor c); /* 20 */
+ int (*xDefineCursor) (Display *d, Window w, Cursor c); /* 20 */
void (*xDestroyWindow) (Display *d, Window w); /* 21 */
void (*xDrawArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 22 */
- void (*xDrawLines) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2); /* 23 */
+ int (*xDrawLines) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2); /* 23 */
void (*xDrawRectangle) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2); /* 24 */
void (*xFillArc) (Display *d, Drawable dr, GC g, int i1, int i2, unsigned int ui1, unsigned int ui2, int i3, int i4); /* 25 */
void (*xFillPolygon) (Display *d, Drawable dr, GC g, XPoint *x, int i1, int i2, int i3); /* 26 */
- void (*xFillRectangles) (Display *d, Drawable dr, GC g, XRectangle *x, int i); /* 27 */
- void (*xFreeColormap) (Display *d, Colormap c); /* 28 */
- void (*xFreeColors) (Display *d, Colormap c, unsigned long *ulp, int i, unsigned long ul); /* 29 */
- void (*xFreeModifiermap) (XModifierKeymap *x); /* 30 */
+ int (*xFillRectangles) (Display *d, Drawable dr, GC g, XRectangle *x, int i); /* 27 */
+ int (*xFreeColormap) (Display *d, Colormap c); /* 28 */
+ int (*xFreeColors) (Display *d, Colormap c, unsigned long *ulp, int i, unsigned long ul); /* 29 */
+ int (*xFreeModifiermap) (XModifierKeymap *x); /* 30 */
Status (*xGetGeometry) (Display *d, Drawable dr, Window *w, int *i1, int *i2, unsigned int *ui1, unsigned int *ui2, unsigned int *ui3, unsigned int *ui4); /* 31 */
int (*xGetWindowProperty) (Display *d, Window w, Atom a1, long l1, long l2, Bool b, Atom a2, Atom *ap, int *ip, unsigned long *ulp1, unsigned long *ulp2, unsigned char **cpp); /* 32 */
int (*xGrabKeyboard) (Display *d, Window w, Bool b, int i1, int i2, Time t); /* 33 */
@@ -762,7 +787,7 @@ typedef struct TkIntXlibStubs {
Status (*xSendEvent) (Display *d, Window w, Bool b, long l, XEvent *x); /* 44 */
void (*xSetIconName) (Display *d, Window w, _Xconst char *c); /* 45 */
void (*xSetInputFocus) (Display *d, Window w, int i, Time t); /* 46 */
- void (*xSetSelectionOwner) (Display *d, Atom a, Window w, Time t); /* 47 */
+ int (*xSetSelectionOwner) (Display *d, Atom a, Window w, Time t); /* 47 */
void (*xSetWindowBackground) (Display *d, Window w, unsigned long ul); /* 48 */
void (*xSetWindowBackgroundPixmap) (Display *d, Window w, Pixmap p); /* 49 */
void (*xSetWindowBorder) (Display *d, Window w, unsigned long ul); /* 50 */
@@ -770,26 +795,26 @@ typedef struct TkIntXlibStubs {
void (*xSetWindowBorderWidth) (Display *d, Window w, unsigned int ui); /* 52 */
void (*xSetWindowColormap) (Display *d, Window w, Colormap c); /* 53 */
void (*xUngrabKeyboard) (Display *d, Time t); /* 54 */
- void (*xUngrabPointer) (Display *d, Time t); /* 55 */
+ int (*xUngrabPointer) (Display *d, Time t); /* 55 */
void (*xUnmapWindow) (Display *d, Window w); /* 56 */
- void (*tkPutImage) (unsigned long *colors, int ncolors, Display *display, Drawable d, GC gc, XImage *image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 57 */
+ int (*tkPutImage) (unsigned long *colors, int ncolors, Display *display, Drawable d, GC gc, XImage *image, int src_x, int src_y, int dest_x, int dest_y, unsigned int width, unsigned int height); /* 57 */
Status (*xParseColor) (Display *display, Colormap map, _Xconst char *spec, XColor *colorPtr); /* 58 */
GC (*xCreateGC) (Display *display, Drawable d, unsigned long valuemask, XGCValues *values); /* 59 */
- void (*xFreeGC) (Display *display, GC gc); /* 60 */
+ int (*xFreeGC) (Display *display, GC gc); /* 60 */
Atom (*xInternAtom) (Display *display, _Xconst char *atom_name, Bool only_if_exists); /* 61 */
- void (*xSetBackground) (Display *display, GC gc, unsigned long foreground); /* 62 */
- void (*xSetForeground) (Display *display, GC gc, unsigned long foreground); /* 63 */
- void (*xSetClipMask) (Display *display, GC gc, Pixmap pixmap); /* 64 */
- void (*xSetClipOrigin) (Display *display, GC gc, int clip_x_origin, int clip_y_origin); /* 65 */
- void (*xSetTSOrigin) (Display *display, GC gc, int ts_x_origin, int ts_y_origin); /* 66 */
- void (*xChangeGC) (Display *d, GC gc, unsigned long mask, XGCValues *values); /* 67 */
- void (*xSetFont) (Display *display, GC gc, Font font); /* 68 */
- void (*xSetArcMode) (Display *display, GC gc, int arc_mode); /* 69 */
- void (*xSetStipple) (Display *display, GC gc, Pixmap stipple); /* 70 */
- void (*xSetFillRule) (Display *display, GC gc, int fill_rule); /* 71 */
- void (*xSetFillStyle) (Display *display, GC gc, int fill_style); /* 72 */
- void (*xSetFunction) (Display *display, GC gc, int function); /* 73 */
- void (*xSetLineAttributes) (Display *display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 74 */
+ int (*xSetBackground) (Display *display, GC gc, unsigned long foreground); /* 62 */
+ int (*xSetForeground) (Display *display, GC gc, unsigned long foreground); /* 63 */
+ int (*xSetClipMask) (Display *display, GC gc, Pixmap pixmap); /* 64 */
+ int (*xSetClipOrigin) (Display *display, GC gc, int clip_x_origin, int clip_y_origin); /* 65 */
+ int (*xSetTSOrigin) (Display *display, GC gc, int ts_x_origin, int ts_y_origin); /* 66 */
+ int (*xChangeGC) (Display *d, GC gc, unsigned long mask, XGCValues *values); /* 67 */
+ int (*xSetFont) (Display *display, GC gc, Font font); /* 68 */
+ int (*xSetArcMode) (Display *display, GC gc, int arc_mode); /* 69 */
+ int (*xSetStipple) (Display *display, GC gc, Pixmap stipple); /* 70 */
+ int (*xSetFillRule) (Display *display, GC gc, int fill_rule); /* 71 */
+ int (*xSetFillStyle) (Display *display, GC gc, int fill_style); /* 72 */
+ int (*xSetFunction) (Display *display, GC gc, int function); /* 73 */
+ int (*xSetLineAttributes) (Display *display, GC gc, unsigned int line_width, int line_style, int cap_style, int join_style); /* 74 */
int (*_XInitImageFuncPtrs) (XImage *image); /* 75 */
XIC (*xCreateIC) (void); /* 76 */
XVisualInfo * (*xGetVisualInfo) (Display *display, long vinfo_mask, XVisualInfo *vinfo_template, int *nitems_return); /* 77 */
@@ -797,12 +822,12 @@ typedef struct TkIntXlibStubs {
Status (*xStringListToTextProperty) (char **list, int count, XTextProperty *text_prop_return); /* 79 */
void (*xDrawSegments) (Display *display, Drawable d, GC gc, XSegment *segments, int nsegments); /* 80 */
void (*xForceScreenSaver) (Display *display, int mode); /* 81 */
- void (*xDrawLine) (Display *d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 82 */
- void (*xFillRectangle) (Display *display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 83 */
+ int (*xDrawLine) (Display *d, Drawable dr, GC g, int x1, int y1, int x2, int y2); /* 82 */
+ int (*xFillRectangle) (Display *display, Drawable d, GC gc, int x, int y, unsigned int width, unsigned int height); /* 83 */
void (*xClearWindow) (Display *d, Window w); /* 84 */
void (*xDrawPoint) (Display *display, Drawable d, GC gc, int x, int y); /* 85 */
void (*xDrawPoints) (Display *display, Drawable d, GC gc, XPoint *points, int npoints, int mode); /* 86 */
- void (*xWarpPointer) (Display *display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y); /* 87 */
+ int (*xWarpPointer) (Display *display, Window src_w, Window dest_w, int src_x, int src_y, unsigned int src_width, unsigned int src_height, int dest_x, int dest_y); /* 87 */
void (*xQueryColor) (Display *display, Colormap colormap, XColor *def_in_out); /* 88 */
void (*xQueryColors) (Display *display, Colormap colormap, XColor *defs_in_out, int ncolors); /* 89 */
Status (*xQueryTree) (Display *d, Window w1, Window *w2, Window *w3, Window **w4, unsigned int *ui); /* 90 */
@@ -824,7 +849,7 @@ extern const TkIntXlibStubs *tkIntXlibStubsPtr;
* Inline function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
#define XSetDashes \
(tkIntXlibStubsPtr->xSetDashes) /* 0 */
#define XGetModifierMapping \
@@ -1038,6 +1063,22 @@ extern const TkIntXlibStubs *tkIntXlibStubsPtr;
(tkIntXlibStubsPtr->xWarpPointer) /* 105 */
#define XFillRectangle \
(tkIntXlibStubsPtr->xFillRectangle) /* 106 */
+#define XFlush \
+ (tkIntXlibStubsPtr->xFlush) /* 107 */
+#define XGrabServer \
+ (tkIntXlibStubsPtr->xGrabServer) /* 108 */
+#define XUngrabServer \
+ (tkIntXlibStubsPtr->xUngrabServer) /* 109 */
+#define XFree \
+ (tkIntXlibStubsPtr->xFree) /* 110 */
+#define XNoOp \
+ (tkIntXlibStubsPtr->xNoOp) /* 111 */
+#define XSynchronize \
+ (tkIntXlibStubsPtr->xSynchronize) /* 112 */
+#define XSync \
+ (tkIntXlibStubsPtr->xSync) /* 113 */
+#define XVisualIDFromVisual \
+ (tkIntXlibStubsPtr->xVisualIDFromVisual) /* 114 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
#define XSetDashes \
diff --git a/generic/tkListbox.c b/generic/tkListbox.c
index b035878..7faa44b 100644
--- a/generic/tkListbox.c
+++ b/generic/tkListbox.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkListbox.c,v 1.59 2010/04/23 08:32:56 nijtmans Exp $
*/
#include "default.h"
@@ -233,14 +231,14 @@ static const char *const activeStyleStrings[] = {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_STRING_TABLE, "-activestyle", "activeStyle", "ActiveStyle",
DEF_LISTBOX_ACTIVE_STYLE, -1, Tk_Offset(Listbox, activeStyle),
- 0, (ClientData) activeStyleStrings, 0},
+ 0, activeStyleStrings, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_LISTBOX_BG_COLOR, -1, Tk_Offset(Listbox, normalBorder),
- 0, (ClientData) DEF_LISTBOX_BG_MONO, 0},
+ 0, DEF_LISTBOX_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_LISTBOX_BORDER_WIDTH, -1, Tk_Offset(Listbox, borderWidth),
0, 0, 0},
@@ -254,7 +252,7 @@ static const Tk_OptionSpec optionSpecs[] = {
"ExportSelection", DEF_LISTBOX_EXPORT_SELECTION, -1,
Tk_Offset(Listbox, exportSelection), 0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_LISTBOX_FONT, -1, Tk_Offset(Listbox, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -274,13 +272,13 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_LISTBOX_RELIEF, -1, Tk_Offset(Listbox, relief), 0, 0, 0},
{TK_OPTION_BORDER, "-selectbackground", "selectBackground", "Foreground",
DEF_LISTBOX_SELECT_COLOR, -1, Tk_Offset(Listbox, selBorder),
- 0, (ClientData) DEF_LISTBOX_SELECT_MONO, 0},
+ 0, DEF_LISTBOX_SELECT_MONO, 0},
{TK_OPTION_PIXELS, "-selectborderwidth", "selectBorderWidth",
"BorderWidth", DEF_LISTBOX_SELECT_BD, -1,
Tk_Offset(Listbox, selBorderWidth), 0, 0, 0},
{TK_OPTION_COLOR, "-selectforeground", "selectForeground", "Background",
DEF_LISTBOX_SELECT_FG_COLOR, -1, Tk_Offset(Listbox, selFgColorPtr),
- TK_CONFIG_NULL_OK, (ClientData) DEF_LISTBOX_SELECT_FG_MONO, 0},
+ TK_CONFIG_NULL_OK, DEF_LISTBOX_SELECT_FG_MONO, 0},
{TK_OPTION_STRING, "-selectmode", "selectMode", "SelectMode",
DEF_LISTBOX_SELECT_MODE, -1, Tk_Offset(Listbox, selectMode),
TK_OPTION_NULL_OK, 0, 0},
@@ -288,7 +286,7 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_LISTBOX_SET_GRID, -1, Tk_Offset(Listbox, setGrid), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_LISTBOX_STATE, -1, Tk_Offset(Listbox, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_LISTBOX_TAKE_FOCUS, -1, Tk_Offset(Listbox, takeFocus),
TK_OPTION_NULL_OK, 0, 0},
@@ -315,22 +313,22 @@ static const Tk_OptionSpec itemAttrOptionSpecs[] = {
{TK_OPTION_BORDER, "-background", "background", "Background",
NULL, -1, Tk_Offset(ItemAttr, border),
TK_OPTION_NULL_OK|TK_OPTION_DONT_SET_DEFAULT,
- (ClientData) DEF_LISTBOX_BG_MONO, 0},
+ DEF_LISTBOX_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
NULL, -1, Tk_Offset(ItemAttr, fgColor),
TK_OPTION_NULL_OK|TK_OPTION_DONT_SET_DEFAULT, 0, 0},
{TK_OPTION_BORDER, "-selectbackground", "selectBackground", "Foreground",
NULL, -1, Tk_Offset(ItemAttr, selBorder),
TK_OPTION_NULL_OK|TK_OPTION_DONT_SET_DEFAULT,
- (ClientData) DEF_LISTBOX_SELECT_MONO, 0},
+ DEF_LISTBOX_SELECT_MONO, 0},
{TK_OPTION_COLOR, "-selectforeground", "selectForeground", "Background",
NULL, -1, Tk_Offset(ItemAttr, selFgColor),
TK_OPTION_NULL_OK|TK_OPTION_DONT_SET_DEFAULT,
- (ClientData) DEF_LISTBOX_SELECT_FG_MONO, 0},
+ DEF_LISTBOX_SELECT_FG_MONO, 0},
{TK_OPTION_END, NULL, NULL, NULL, NULL, 0, -1, 0, 0, 0}
};
diff --git a/generic/tkMacWinMenu.c b/generic/tkMacWinMenu.c
index 4f467b3..9449838 100644
--- a/generic/tkMacWinMenu.c
+++ b/generic/tkMacWinMenu.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMacWinMenu.c,v 1.7 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkMain.c b/generic/tkMain.c
index 4a07154..706f444 100644
--- a/generic/tkMain.c
+++ b/generic/tkMain.c
@@ -12,8 +12,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMain.c,v 1.41 2010/12/17 15:14:22 nijtmans Exp $
*/
/**
@@ -31,16 +29,18 @@
# endif
#endif
+#include "tkInt.h"
#include <ctype.h>
#include <stdio.h>
#include <string.h>
-#include "tkInt.h"
#ifdef NO_STDLIB_H
# include "../compat/stdlib.h"
#else
# include <stdlib.h>
#endif
+extern int TkCygwinMainEx(int, char **, Tcl_AppInitProc *, Tcl_Interp *);
+
/*
* The default prompt used when the user has not overridden it.
*/
@@ -55,6 +55,7 @@
* to strcmp here.
*/
#ifdef __WIN32__
+# include "tclInt.h"
# include "tkWinInt.h"
#else
# define TCHAR char
@@ -94,16 +95,24 @@
* it will conflict with a declaration elsewhere on some systems.
*/
-#if defined(_WIN32)
+#if defined(__WIN32__) || defined(_WIN32)
#define isatty WinIsTty
static int WinIsTty(int fd) {
HANDLE handle;
+
/*
* For now, under Windows, we assume we are not running as a console mode
* app, so we need to use the GUI console. In order to enable this, we
* always claim to be running on a tty. This probably isn't the right way
* to do it.
*/
+
+#if !defined(STATIC_BUILD)
+ if (tclStubsPtr->reserved9 && TclpIsAtty) {
+ /* We are running on Cygwin */
+ return TclpIsAtty(fd);
+ }
+#endif
handle = GetStdHandle(STD_INPUT_HANDLE + fd);
/*
* If it's a bad or closed handle, then it's been connected to a wish
@@ -183,13 +192,38 @@ Tk_MainEx(
abort();
}
+#if defined(__WIN32__) && !defined(__WIN64__) && !defined(UNICODE) && !defined(STATIC_BUILD)
+
+ if (tclStubsPtr->reserved9) {
+ /* We are running win32 Tk under Cygwin, so let's check
+ * whether the env("DISPLAY") variable or the -display
+ * argument is set. If so, we really want to run the
+ * Tk_MainEx function of libtk8.?.dll, not this one. */
+ if (Tcl_GetVar2(interp, "env", "DISPLAY", TCL_GLOBAL_ONLY)) {
+ loadCygwinTk:
+ if (TkCygwinMainEx(argc, argv, appInitProc, interp)) {
+ /* Should never reach here. */
+ return;
+ }
+ } else {
+ int i;
+
+ for (i = 1; i < argc; ++i) {
+ if (!_tcscmp(argv[i], TEXT("-display"))) {
+ goto loadCygwinTk;
+ }
+ }
+ }
+ }
+#endif
+
Tcl_InitMemory(interp);
is.interp = interp;
is.gotPartial = 0;
Tcl_Preserve(interp);
-#if defined(__WIN32__)
+#if defined(__WIN32__) && !defined(__CYGWIN__)
Tk_InitConsoleChannels(interp);
#endif
diff --git a/generic/tkMenu.c b/generic/tkMenu.c
index 3bd3a4e..49f49ad 100644
--- a/generic/tkMenu.c
+++ b/generic/tkMenu.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenu.c,v 1.61 2010/11/19 14:48:00 nijtmans Exp $
*/
/*
@@ -190,7 +188,7 @@ static const Tk_OptionSpec tkCheckButtonEntryConfigSpecs[] = {
DEF_MENU_ENTRY_CHECK_VARIABLE,
Tk_Offset(TkMenuEntry, namePtr), -1, TK_OPTION_NULL_OK, NULL, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs, 0}
+ NULL, 0, -1, 0, tkBasicMenuEntryConfigSpecs, 0}
};
static const Tk_OptionSpec tkRadioButtonEntryConfigSpecs[] = {
@@ -210,7 +208,7 @@ static const Tk_OptionSpec tkRadioButtonEntryConfigSpecs[] = {
DEF_MENU_ENTRY_RADIO_VARIABLE,
Tk_Offset(TkMenuEntry, namePtr), -1, 0, NULL, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs, 0}
+ NULL, 0, -1, 0, tkBasicMenuEntryConfigSpecs, 0}
};
static const Tk_OptionSpec tkCascadeEntryConfigSpecs[] = {
@@ -218,7 +216,7 @@ static const Tk_OptionSpec tkCascadeEntryConfigSpecs[] = {
DEF_MENU_ENTRY_MENU,
Tk_Offset(TkMenuEntry, namePtr), -1, TK_OPTION_NULL_OK, NULL, 0},
{TK_OPTION_END, NULL, NULL, NULL,
- NULL, 0, -1, 0, (ClientData) tkBasicMenuEntryConfigSpecs, 0}
+ NULL, 0, -1, 0, tkBasicMenuEntryConfigSpecs, 0}
};
static const Tk_OptionSpec tkTearoffEntryConfigSpecs[] = {
@@ -261,9 +259,9 @@ static const Tk_OptionSpec tkMenuConfigSpecs[] = {
DEF_MENU_BG_COLOR, Tk_Offset(TkMenu, borderPtr), -1, 0,
(ClientData) DEF_MENU_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_MENU_BORDER_WIDTH,
Tk_Offset(TkMenu, borderWidthPtr), -1, 0, NULL, 0},
@@ -275,7 +273,7 @@ static const Tk_OptionSpec tkMenuConfigSpecs[] = {
Tk_Offset(TkMenu, disabledFgPtr), -1, TK_OPTION_NULL_OK,
(ClientData) DEF_MENU_DISABLED_FG_MONO, 0},
{TK_OPTION_SYNONYM, "-fg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_MENU_FONT, Tk_Offset(TkMenu, fontPtr), -1, 0, NULL, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
diff --git a/generic/tkMenu.h b/generic/tkMenu.h
index e795579..def7d19 100644
--- a/generic/tkMenu.h
+++ b/generic/tkMenu.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenu.h,v 1.18 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKMENU
diff --git a/generic/tkMenuDraw.c b/generic/tkMenuDraw.c
index 41f5075..4cd9b02 100644
--- a/generic/tkMenuDraw.c
+++ b/generic/tkMenuDraw.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenuDraw.c,v 1.12 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
@@ -846,7 +844,7 @@ TkPostTearoffMenu(
* posting */
{
int vRootX, vRootY, vRootWidth, vRootHeight;
- int tmp, result;
+ int result;
TkActivateMenuEntry(menuPtr, -1);
TkRecomputeMenu(menuPtr);
@@ -879,31 +877,21 @@ TkPostTearoffMenu(
* 2. The menu may not have been mapped yet, so its current size might be
* the default 1x1. To compute how much space it needs, use its
* requested size, not its actual size.
- *
- * Note that this code assumes square screen regions and all positive
- * coordinates. This does not work on a Mac with multiple monitors. But
- * then again, Tk has other problems with this.
*/
Tk_GetVRootGeometry(Tk_Parent(menuPtr->tkwin), &vRootX, &vRootY,
&vRootWidth, &vRootHeight);
- x += vRootX;
- y += vRootY;
- tmp = WidthOfScreen(Tk_Screen(menuPtr->tkwin))
- - Tk_ReqWidth(menuPtr->tkwin);
- if (x > tmp) {
- x = tmp;
+ if (x > vRootX + vRootWidth) {
+ x = vRootX + vRootWidth;
}
- if (x < 0) {
- x = 0;
+ if (x < vRootX) {
+ x = vRootX;
}
- tmp = HeightOfScreen(Tk_Screen(menuPtr->tkwin))
- - Tk_ReqHeight(menuPtr->tkwin);
- if (y > tmp) {
- y = tmp;
+ if (y > vRootY + vRootHeight) {
+ y = vRootY + vRootHeight;
}
- if (y < 0) {
- y = 0;
+ if (y < vRootY) {
+ y = vRootY;
}
Tk_MoveToplevelWindow(menuPtr->tkwin, x, y);
if (!Tk_IsMapped(menuPtr->tkwin)) {
diff --git a/generic/tkMenubutton.c b/generic/tkMenubutton.c
index d8af461..31dbfbb 100644
--- a/generic/tkMenubutton.c
+++ b/generic/tkMenubutton.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenubutton.c,v 1.29 2010/02/21 12:14:16 dkf Exp $
*/
#include "tkInt.h"
@@ -68,13 +66,13 @@ static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_COLOR, "-activeforeground", "activeForeground", "Background",
DEF_MENUBUTTON_ACTIVE_FG_COLOR, -1,
Tk_Offset(TkMenuButton, activeFg),
- 0, (ClientData) DEF_MENUBUTTON_ACTIVE_FG_MONO, 0},
+ 0, DEF_MENUBUTTON_ACTIVE_FG_MONO, 0},
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
DEF_MENUBUTTON_ANCHOR, -1,
Tk_Offset(TkMenuButton, anchor), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_MENUBUTTON_BG_COLOR, -1, Tk_Offset(TkMenuButton, normalBorder),
- 0, (ClientData) DEF_MENUBUTTON_BG_MONO, 0},
+ 0, DEF_MENUBUTTON_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL, NULL, 0, -1, 0,
(ClientData) "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL, NULL, 0, -1, 0,
@@ -90,7 +88,7 @@ static const Tk_OptionSpec optionSpecs[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-direction", "direction", "Direction",
DEF_MENUBUTTON_DIRECTION, -1, Tk_Offset(TkMenuButton, direction),
- 0, (ClientData) directionStrings, 0},
+ 0, directionStrings, 0},
{TK_OPTION_COLOR, "-disabledforeground", "disabledForeground",
"DisabledForeground", DEF_MENUBUTTON_DISABLED_FG_COLOR,
-1, Tk_Offset(TkMenuButton, disabledFg), TK_OPTION_NULL_OK,
@@ -135,10 +133,10 @@ static const Tk_OptionSpec optionSpecs[] = {
0, 0, 0},
{TK_OPTION_STRING_TABLE, "-compound", "compound", "Compound",
DEF_BUTTON_COMPOUND, -1, Tk_Offset(TkMenuButton, compound), 0,
- (ClientData) compoundStrings, 0},
+ compoundStrings, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_MENUBUTTON_STATE, -1, Tk_Offset(TkMenuButton, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_MENUBUTTON_TAKE_FOCUS, -1,
Tk_Offset(TkMenuButton, takeFocus), TK_OPTION_NULL_OK, 0, 0},
diff --git a/generic/tkMenubutton.h b/generic/tkMenubutton.h
index 5a30190..e8dc12f 100644
--- a/generic/tkMenubutton.h
+++ b/generic/tkMenubutton.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMenubutton.h,v 1.16 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKMENUBUTTON
diff --git a/generic/tkMessage.c b/generic/tkMessage.c
index 19df9f3..0787efc 100644
--- a/generic/tkMessage.c
+++ b/generic/tkMessage.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkMessage.c,v 1.25 2010/01/18 20:43:38 nijtmans Exp $
*/
#include "default.h"
@@ -116,11 +114,11 @@ static const Tk_OptionSpec optionSpecs[] = {
-1, Tk_Offset(Message, aspect), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_MESSAGE_BG_COLOR, -1, Tk_Offset(Message, border), 0,
- (ClientData) DEF_MESSAGE_BG_MONO, 0},
+ DEF_MESSAGE_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL, NULL,
- 0, -1, 0, (ClientData) "-borderwidth", 0},
+ 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL, NULL,
- 0, -1, 0, (ClientData) "-background", 0},
+ 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_MESSAGE_BORDER_WIDTH, -1,
Tk_Offset(Message, borderWidth), 0, 0, 0},
@@ -128,7 +126,7 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_MESSAGE_CURSOR, -1, Tk_Offset(Message, cursor),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_SYNONYM, "-fg", NULL, NULL, NULL,
- 0, -1, 0, (ClientData) "-foreground", 0},
+ 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_MESSAGE_FONT, -1, Tk_Offset(Message, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
diff --git a/generic/tkObj.c b/generic/tkObj.c
index dad50e2..8877d42 100644
--- a/generic/tkObj.c
+++ b/generic/tkObj.c
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkObj.c,v 1.28 2010/02/13 13:47:49 nijtmans Exp $
*/
#include "tkInt.h"
@@ -41,6 +39,19 @@ typedef struct PixelRep {
#define GET_COMPLEXPIXEL(objPtr) \
((PixelRep *) (objPtr)->internalRep.twoPtrValue.ptr2)
+/*
+ * One of these structures is created per thread to store thread-specific
+ * data. In this case, it is used to contain references to selected
+ * Tcl_ObjTypes that we can use as screen distances without conversion. The
+ * "dataKey" below is used to locate the ThreadSpecificData for the current
+ * thread.
+ */
+
+typedef struct ThreadSpecificData {
+ const Tcl_ObjType *doubleTypePtr;
+ const Tcl_ObjType *intTypePtr;
+} ThreadSpecificData;
+static Tcl_ThreadDataKey dataKey;
/*
* The following structure is the internal representation for mm objects.
@@ -71,11 +82,12 @@ typedef struct WindowRep {
*/
static void DupMMInternalRep(Tcl_Obj *srcPtr, Tcl_Obj *copyPtr);
-static void DupPixelInternalRep(Tcl_Obj *srcPtr, Tcl_Obj *copyPtr);
-static void DupWindowInternalRep(Tcl_Obj *srcPtr,Tcl_Obj *copyPtr);
+static void DupPixelInternalRep(Tcl_Obj *srcPtr, Tcl_Obj*copyPtr);
+static void DupWindowInternalRep(Tcl_Obj *srcPtr,Tcl_Obj*copyPtr);
static void FreeMMInternalRep(Tcl_Obj *objPtr);
static void FreePixelInternalRep(Tcl_Obj *objPtr);
static void FreeWindowInternalRep(Tcl_Obj *objPtr);
+static ThreadSpecificData *GetTypeCache(void);
static void UpdateStringOfMM(Tcl_Obj *objPtr);
static int SetMMFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr);
static int SetPixelFromAny(Tcl_Interp *interp, Tcl_Obj *objPtr);
@@ -125,6 +137,31 @@ static const Tcl_ObjType windowObjType = {
/*
*----------------------------------------------------------------------
*
+ * GetTypeCache --
+ *
+ * Get (and build if necessary) the cache of useful Tcl object types for
+ * comparisons in the conversion functions. This allows optimized checks
+ * for standard cases.
+ *
+ *----------------------------------------------------------------------
+ */
+
+static ThreadSpecificData *
+GetTypeCache(void)
+{
+ ThreadSpecificData *tsdPtr =
+ Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData));
+
+ if (tsdPtr->doubleTypePtr == NULL) {
+ tsdPtr->doubleTypePtr = Tcl_GetObjType("double");
+ tsdPtr->intTypePtr = Tcl_GetObjType("int");
+ }
+ return tsdPtr;
+}
+
+/*
+ *----------------------------------------------------------------------
+ *
* GetPixelsFromObjEx --
*
* Attempt to return a pixel value from the Tcl object "objPtr". If the
@@ -152,54 +189,74 @@ GetPixelsFromObjEx(
int *intPtr,
double *dblPtr) /* Places to store resulting pixels. */
{
- int result,fresh;
+ int result, fresh;
double d;
PixelRep *pixelPtr;
static const double bias[] = {
1.0, 10.0, 25.4, 0.35278 /*25.4 / 72.0*/
};
- retry:
+ /*
+ * Special hacks where the type of the object is known to be something
+ * that is just numeric and cannot require distance conversion. This pokes
+ * holes in Tcl's abstractions, but they are just for optimization, not
+ * semantics.
+ */
+
if (objPtr->typePtr != &pixelObjType) {
+ ThreadSpecificData *typeCache = GetTypeCache();
+
+ if (objPtr->typePtr == typeCache->doubleTypePtr) {
+ (void) Tcl_GetDoubleFromObj(interp, objPtr, &d);
+ if (dblPtr != NULL) {
+ *dblPtr = d;
+ }
+ *intPtr = (int) (d<0 ? d-0.5 : d+0.5);
+ return TCL_OK;
+ } else if (objPtr->typePtr == typeCache->intTypePtr) {
+ (void) Tcl_GetIntFromObj(interp, objPtr, intPtr);
+ if (dblPtr) {
+ *dblPtr = (double) (*intPtr);
+ }
+ return TCL_OK;
+ }
+ }
+
+ retry:
+ fresh = (objPtr->typePtr != &pixelObjType);
+ if (fresh) {
result = SetPixelFromAny(interp, objPtr);
if (result != TCL_OK) {
return result;
}
- fresh=1;
- } else {
- fresh=0;
}
if (SIMPLE_PIXELREP(objPtr)) {
*intPtr = GET_SIMPLEPIXEL(objPtr);
if (dblPtr) {
- *dblPtr=(double)(*intPtr);
+ *dblPtr = (double) (*intPtr);
}
} else {
pixelPtr = GET_COMPLEXPIXEL(objPtr);
- if ((!fresh) && (pixelPtr->tkwin != tkwin))
- {
- /* in case of exo-screen conversions of non-pixels
- * we force a recomputation from the string
- */
-
- FreePixelInternalRep(objPtr);
- goto retry;
- }
- if ((pixelPtr->tkwin != tkwin)||dblPtr) {
+ if ((!fresh) && (pixelPtr->tkwin != tkwin)) {
+ /*
+ * In the case of exo-screen conversions of non-pixels, we force a
+ * recomputation from the string.
+ */
+
+ FreePixelInternalRep(objPtr);
+ goto retry;
+ }
+ if ((pixelPtr->tkwin != tkwin) || dblPtr) {
d = pixelPtr->value;
if (pixelPtr->units >= 0) {
d *= bias[pixelPtr->units] * WidthOfScreen(Tk_Screen(tkwin));
d /= WidthMMOfScreen(Tk_Screen(tkwin));
}
- if (d < 0) {
- pixelPtr->returnValue = (int) (d - 0.5);
- } else {
- pixelPtr->returnValue = (int) (d + 0.5);
- }
+ pixelPtr->returnValue = (int) (d<0 ? d-0.5 : d+0.5);
pixelPtr->tkwin = tkwin;
if (dblPtr) {
- *dblPtr=(double)d;
+ *dblPtr = d;
}
}
*intPtr = pixelPtr->returnValue;
@@ -235,7 +292,7 @@ Tk_GetPixelsFromObj(
Tcl_Obj *objPtr, /* The object from which to get pixels. */
int *intPtr) /* Place to store resulting pixels. */
{
- return GetPixelsFromObjEx(interp,tkwin,objPtr,intPtr,NULL);
+ return GetPixelsFromObjEx(interp, tkwin, objPtr, intPtr, NULL);
}
/*
@@ -267,19 +324,22 @@ Tk_GetDoublePixelsFromObj(
double *doublePtr) /* Place to store resulting pixels. */
{
double d;
- int result,val;
+ int result, val;
- result=GetPixelsFromObjEx(interp, tkwin, objPtr, &val, &d);
+ result = GetPixelsFromObjEx(interp, tkwin, objPtr, &val, &d);
if (result != TCL_OK) {
return result;
}
- if (!SIMPLE_PIXELREP(objPtr)) {
- PixelRep *pixelPtr;
- pixelPtr = GET_COMPLEXPIXEL(objPtr);
+ if (objPtr->typePtr == &pixelObjType && !SIMPLE_PIXELREP(objPtr)) {
+ PixelRep *pixelPtr = GET_COMPLEXPIXEL(objPtr);
+
if (pixelPtr->units >= 0) {
- /* internally "shimmer" to pixel units */
- pixelPtr->units=-1;
- pixelPtr->value=d;
+ /*
+ * Internally "shimmer" to pixel units.
+ */
+
+ pixelPtr->units = -1;
+ pixelPtr->value = d;
}
}
*doublePtr = d;
@@ -308,10 +368,9 @@ static void
FreePixelInternalRep(
Tcl_Obj *objPtr) /* Pixel object with internal rep to free. */
{
- PixelRep *pixelPtr;
-
if (!SIMPLE_PIXELREP(objPtr)) {
- pixelPtr = GET_COMPLEXPIXEL(objPtr);
+ PixelRep *pixelPtr = GET_COMPLEXPIXEL(objPtr);
+
ckfree(pixelPtr);
}
SET_SIMPLEPIXEL(objPtr, 0);
@@ -341,13 +400,13 @@ DupPixelInternalRep(
register Tcl_Obj *srcPtr, /* Object with internal rep to copy. */
register Tcl_Obj *copyPtr) /* Object with internal rep to set. */
{
- PixelRep *oldPtr, *newPtr;
-
copyPtr->typePtr = srcPtr->typePtr;
if (SIMPLE_PIXELREP(srcPtr)) {
SET_SIMPLEPIXEL(copyPtr, GET_SIMPLEPIXEL(srcPtr));
} else {
+ PixelRep *oldPtr, *newPtr;
+
oldPtr = GET_COMPLEXPIXEL(srcPtr);
newPtr = ckalloc(sizeof(PixelRep));
newPtr->value = oldPtr->value;
@@ -637,6 +696,7 @@ SetMMFromAny(
Tcl_Interp *interp, /* Used for error reporting if not NULL. */
Tcl_Obj *objPtr) /* The object to convert. */
{
+ ThreadSpecificData *typeCache = GetTypeCache();
const Tcl_ObjType *typePtr;
const char *string;
char *rest;
@@ -644,23 +704,10 @@ SetMMFromAny(
int units;
MMRep *mmPtr;
- static const Tcl_ObjType *tclDoubleObjType = NULL;
- static const Tcl_ObjType *tclIntObjType = NULL;
-
- if (tclDoubleObjType == NULL) {
- /*
- * Cache the object types for comaprison below. This allows optimized
- * checks for standard cases.
- */
-
- tclDoubleObjType = Tcl_GetObjType("double");
- tclIntObjType = Tcl_GetObjType("int");
- }
-
- if (objPtr->typePtr == tclDoubleObjType) {
+ if (objPtr->typePtr == typeCache->doubleTypePtr) {
Tcl_GetDoubleFromObj(interp, objPtr, &d);
units = -1;
- } else if (objPtr->typePtr == tclIntObjType) {
+ } else if (objPtr->typePtr == typeCache->intTypePtr) {
Tcl_GetIntFromObj(interp, objPtr, &units);
d = (double) units;
units = -1;
@@ -979,12 +1026,12 @@ TkParsePadAmount(
Tcl_Obj **objv; /* The objects in the list */
/*
- * Check for a common case where a single object would otherwise
- * be shimmered between a list and a pixel spec.
+ * Check for a common case where a single object would otherwise be
+ * shimmered between a list and a pixel spec.
*/
if (specObj->typePtr == &pixelObjType) {
- if (Tk_GetPixelsFromObj(interp, tkwin, specObj, &firstInt) != TCL_OK) {
+ if (Tk_GetPixelsFromObj(interp, tkwin, specObj, &firstInt) != TCL_OK){
Tcl_ResetResult(interp);
Tcl_AppendResult(interp, "bad pad value \"",
Tcl_GetString(specObj),
diff --git a/generic/tkOldConfig.c b/generic/tkOldConfig.c
index e054040..1ab6ab6 100644
--- a/generic/tkOldConfig.c
+++ b/generic/tkOldConfig.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkOldConfig.c,v 1.30 2010/02/17 19:21:17 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkOldTest.c b/generic/tkOldTest.c
index d87c68e..b0edf76 100644
--- a/generic/tkOldTest.c
+++ b/generic/tkOldTest.c
@@ -13,8 +13,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkOldTest.c,v 1.7 2010/01/18 20:43:38 nijtmans Exp $
*/
#define USE_OLD_IMAGE
diff --git a/generic/tkOption.c b/generic/tkOption.c
index 0463fd5..d5c423f 100644
--- a/generic/tkOption.c
+++ b/generic/tkOption.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkOption.c,v 1.30 2010/02/13 13:47:49 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkPack.c b/generic/tkPack.c
index 07047a9..b32cc23 100644
--- a/generic/tkPack.c
+++ b/generic/tkPack.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPack.c,v 1.35 2009/09/18 22:35:00 pspjuth Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkPanedWindow.c b/generic/tkPanedWindow.c
index 7b05815..23ecf5d 100644
--- a/generic/tkPanedWindow.c
+++ b/generic/tkPanedWindow.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPanedWindow.c,v 1.42 2010/02/22 23:38:53 nijtmans Exp $
*/
#include "default.h"
@@ -272,11 +270,11 @@ static const Tk_ObjCustomOption stickyOption = {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_PANEDWINDOW_BG_COLOR, -1, Tk_Offset(PanedWindow, background), 0,
- (ClientData) DEF_PANEDWINDOW_BG_MONO, 0},
+ DEF_PANEDWINDOW_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_PANEDWINDOW_BORDERWIDTH, -1, Tk_Offset(PanedWindow, borderWidth),
0, 0, GEOMETRY},
@@ -297,7 +295,7 @@ static const Tk_OptionSpec optionSpecs[] = {
Tk_Offset(PanedWindow, resizeOpaque), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-orient", "orient", "Orient",
DEF_PANEDWINDOW_ORIENT, -1, Tk_Offset(PanedWindow, orient),
- 0, (ClientData) orientStrings, GEOMETRY},
+ 0, orientStrings, GEOMETRY},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief",
DEF_PANEDWINDOW_RELIEF, -1, Tk_Offset(PanedWindow, relief), 0, 0, 0},
{TK_OPTION_CURSOR, "-sashcursor", "sashCursor", "Cursor",
@@ -341,7 +339,7 @@ static const Tk_OptionSpec slaveOptionSpecs[] = {
DEF_PANEDWINDOW_PANE_PADY, -1, Tk_Offset(Slave, pady), 0, 0, 0},
{TK_OPTION_CUSTOM, "-sticky", NULL, NULL,
DEF_PANEDWINDOW_PANE_STICKY, -1, Tk_Offset(Slave, sticky), 0,
- (ClientData) &stickyOption, 0},
+ &stickyOption, 0},
{TK_OPTION_STRING_TABLE, "-stretch", "stretch", "Stretch",
DEF_PANEDWINDOW_PANE_STRETCH, -1, Tk_Offset(Slave, stretch), 0,
(ClientData) stretchStrings, 0},
diff --git a/generic/tkPlace.c b/generic/tkPlace.c
index bce5083..22072ce 100644
--- a/generic/tkPlace.c
+++ b/generic/tkPlace.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPlace.c,v 1.30 2010/06/22 14:02:32 a_kovalenko Exp $
*/
#include "tkInt.h"
@@ -86,7 +84,7 @@ static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_ANCHOR, "-anchor", NULL, NULL, "nw", -1,
Tk_Offset(Slave, anchor), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-bordermode", NULL, NULL, "inside", -1,
- Tk_Offset(Slave, borderMode), 0, (ClientData) borderModeStrings, 0},
+ Tk_Offset(Slave, borderMode), 0, borderModeStrings, 0},
{TK_OPTION_PIXELS, "-height", NULL, NULL, "", Tk_Offset(Slave, heightPtr),
Tk_Offset(Slave, height), TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_WINDOW, "-in", NULL, NULL, "", -1, Tk_Offset(Slave, inTkwin),
diff --git a/generic/tkPlatDecls.h b/generic/tkPlatDecls.h
index d0b663e..057d38c 100644
--- a/generic/tkPlatDecls.h
+++ b/generic/tkPlatDecls.h
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPlatDecls.h,v 1.25 2010/08/19 05:05:55 nijtmans Exp $
*/
#ifndef _TKPLATDECLS
@@ -35,7 +33,7 @@ extern "C" {
* Exported function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
/* 0 */
EXTERN Window Tk_AttachHWND(Tk_Window tkwin, HWND hwnd);
/* 1 */
@@ -86,7 +84,7 @@ typedef struct TkPlatStubs {
int magic;
const struct TkPlatStubHooks *hooks;
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
Window (*tk_AttachHWND) (Tk_Window tkwin, HWND hwnd); /* 0 */
HINSTANCE (*tk_GetHINSTANCE) (void); /* 1 */
HWND (*tk_GetHWND) (Window window); /* 2 */
@@ -123,7 +121,7 @@ extern const TkPlatStubs *tkPlatStubsPtr;
* Inline function declarations:
*/
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
#define Tk_AttachHWND \
(tkPlatStubsPtr->tk_AttachHWND) /* 0 */
#define Tk_GetHINSTANCE \
diff --git a/generic/tkPointer.c b/generic/tkPointer.c
index 70bf087..eab6e48 100644
--- a/generic/tkPointer.c
+++ b/generic/tkPointer.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPointer.c,v 1.15 2010/02/21 12:14:16 dkf Exp $
*/
#include "tkInt.h"
@@ -468,7 +466,7 @@ XGrabPointer(
*----------------------------------------------------------------------
*/
-void
+int
XUngrabPointer(
Display *display,
Time time)
@@ -481,6 +479,7 @@ XUngrabPointer(
tsdPtr->restrictWinPtr = NULL;
TkpSetCapture(NULL);
UpdateCursor(tsdPtr->lastWinPtr);
+ return Success;
}
/*
@@ -581,7 +580,7 @@ UpdateCursor(
*----------------------------------------------------------------------
*/
-void
+int
XDefineCursor(
Display *display,
Window w,
@@ -595,6 +594,7 @@ XDefineCursor(
UpdateCursor(winPtr);
}
display->request++;
+ return Success;
}
/*
diff --git a/generic/tkPort.h b/generic/tkPort.h
index f19fb34..d6db449 100644
--- a/generic/tkPort.h
+++ b/generic/tkPort.h
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkPort.h,v 1.7 2010/04/20 08:17:20 nijtmans Exp $
*/
#ifndef _TKPORT
diff --git a/generic/tkRectOval.c b/generic/tkRectOval.c
index 3ef205d..630737c 100644
--- a/generic/tkRectOval.c
+++ b/generic/tkRectOval.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkRectOval.c,v 1.24 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkScale.c b/generic/tkScale.c
index d99a8dd..5e577e9 100644
--- a/generic/tkScale.c
+++ b/generic/tkScale.c
@@ -15,8 +15,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScale.c,v 1.35 2010/01/13 23:08:10 nijtmans Exp $
*/
#include "default.h"
@@ -44,17 +42,17 @@ static const char *const stateStrings[] = {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_BORDER, "-activebackground", "activeBackground", "Foreground",
DEF_SCALE_ACTIVE_BG_COLOR, -1, Tk_Offset(TkScale, activeBorder),
- 0, (ClientData) DEF_SCALE_ACTIVE_BG_MONO, 0},
+ 0, DEF_SCALE_ACTIVE_BG_MONO, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_SCALE_BG_COLOR, -1, Tk_Offset(TkScale, bgBorder),
- 0, (ClientData) DEF_SCALE_BG_MONO, 0},
+ 0, DEF_SCALE_BG_MONO, 0},
{TK_OPTION_DOUBLE, "-bigincrement", "bigIncrement", "BigIncrement",
DEF_SCALE_BIG_INCREMENT, -1, Tk_Offset(TkScale, bigIncrement),
0, 0, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth", 0},
+ NULL, 0, -1, 0, "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEF_SCALE_BORDER_WIDTH, -1, Tk_Offset(TkScale, borderWidth),
0, 0, 0},
@@ -68,7 +66,7 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_SCALE_DIGITS, -1, Tk_Offset(TkScale, digits),
0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_SCALE_FONT, -1, Tk_Offset(TkScale, tkfont), 0, 0, 0},
{TK_OPTION_COLOR, "-foreground", "foreground", "Foreground",
@@ -79,7 +77,7 @@ static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_BORDER, "-highlightbackground", "highlightBackground",
"HighlightBackground", DEF_SCALE_HIGHLIGHT_BG_COLOR,
-1, Tk_Offset(TkScale, highlightBorder),
- 0, (ClientData) DEF_SCALE_HIGHLIGHT_BG_MONO, 0},
+ 0, DEF_SCALE_HIGHLIGHT_BG_MONO, 0},
{TK_OPTION_COLOR, "-highlightcolor", "highlightColor", "HighlightColor",
DEF_SCALE_HIGHLIGHT, -1, Tk_Offset(TkScale, highlightColorPtr),
0, 0, 0},
@@ -93,7 +91,7 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_SCALE_LENGTH, -1, Tk_Offset(TkScale, length), 0, 0, 0},
{TK_OPTION_STRING_TABLE, "-orient", "orient", "Orient",
DEF_SCALE_ORIENT, -1, Tk_Offset(TkScale, orient),
- 0, (ClientData) orientStrings, 0},
+ 0, orientStrings, 0},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief",
DEF_SCALE_RELIEF, -1, Tk_Offset(TkScale, relief), 0, 0, 0},
{TK_OPTION_INT, "-repeatdelay", "repeatDelay", "RepeatDelay",
@@ -116,7 +114,7 @@ static const Tk_OptionSpec optionSpecs[] = {
0, 0, 0},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_SCALE_STATE, -1, Tk_Offset(TkScale, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_SCALE_TAKE_FOCUS, Tk_Offset(TkScale, takeFocusPtr), -1,
TK_OPTION_NULL_OK, 0, 0},
@@ -127,7 +125,7 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_SCALE_TO, -1, Tk_Offset(TkScale, toValue), 0, 0, 0},
{TK_OPTION_COLOR, "-troughcolor", "troughColor", "Background",
DEF_SCALE_TROUGH_COLOR, -1, Tk_Offset(TkScale, troughColorPtr),
- 0, (ClientData) DEF_SCALE_TROUGH_MONO, 0},
+ 0, DEF_SCALE_TROUGH_MONO, 0},
{TK_OPTION_STRING, "-variable", "variable", "Variable",
DEF_SCALE_VARIABLE, Tk_Offset(TkScale, varNamePtr), -1,
TK_OPTION_NULL_OK, 0, 0},
diff --git a/generic/tkScale.h b/generic/tkScale.h
index 3164af7..af35978 100644
--- a/generic/tkScale.h
+++ b/generic/tkScale.h
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScale.h,v 1.11 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKSCALE
diff --git a/generic/tkScrollbar.c b/generic/tkScrollbar.c
index e6cd0d9..49ddca0 100644
--- a/generic/tkScrollbar.c
+++ b/generic/tkScrollbar.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScrollbar.c,v 1.21 2010/06/15 11:16:03 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkScrollbar.h b/generic/tkScrollbar.h
index 1cb5164..b0cd085 100644
--- a/generic/tkScrollbar.h
+++ b/generic/tkScrollbar.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkScrollbar.h,v 1.11 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKSCROLLBAR
diff --git a/generic/tkSelect.c b/generic/tkSelect.c
index 0834f99..ee52ba1 100644
--- a/generic/tkSelect.c
+++ b/generic/tkSelect.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkSelect.c,v 1.34 2011/01/24 19:51:00 jenglish Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkSelect.h b/generic/tkSelect.h
index 397955a..74326d0 100644
--- a/generic/tkSelect.h
+++ b/generic/tkSelect.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkSelect.h,v 1.12 2008/10/29 13:28:06 dgp Exp $
*/
#ifndef _TKSELECT
diff --git a/generic/tkSquare.c b/generic/tkSquare.c
index 9bf7ff6..787630d 100644
--- a/generic/tkSquare.c
+++ b/generic/tkSquare.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkSquare.c,v 1.16 2010/01/18 20:43:38 nijtmans Exp $
*/
#if 0
@@ -69,20 +67,20 @@ typedef struct {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_BORDER, "-background", "background", "Background",
"#d9d9d9", Tk_Offset(Square, bgBorderPtr), -1, 0,
- (ClientData) "white", 0},
+ "white", 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL, NULL, 0, -1, 0,
- (ClientData) "-borderwidth", 0},
+ "-borderwidth", 0},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL, NULL, 0, -1, 0,
- (ClientData) "-background", 0},
+ "-background", 0},
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
"2", Tk_Offset(Square, borderWidthPtr), -1, 0, NULL, 0},
{TK_OPTION_BOOLEAN, "-dbl", "doubleBuffer", "DoubleBuffer",
"1", Tk_Offset(Square, doubleBufferPtr), -1, 0 , NULL, 0},
{TK_OPTION_SYNONYM, "-fg", NULL, NULL, NULL, 0, -1, 0,
- (ClientData) "-foreground", 0},
+ "-foreground", 0},
{TK_OPTION_BORDER, "-foreground", "foreground", "Foreground",
"#b03060", Tk_Offset(Square, fgBorderPtr), -1, 0,
- (ClientData) "black", 0},
+ "black", 0},
{TK_OPTION_PIXELS, "-posx", "posx", "PosX", "0",
Tk_Offset(Square, xPtr), -1, 0, NULL, 0},
{TK_OPTION_PIXELS, "-posy", "posy", "PosY", "0",
diff --git a/generic/tkStubInit.c b/generic/tkStubInit.c
index 8405d12..271243e 100644
--- a/generic/tkStubInit.c
+++ b/generic/tkStubInit.c
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkStubInit.c,v 1.79 2010/12/02 13:36:45 dkf Exp $
*/
#include "tkInt.h"
@@ -32,19 +30,210 @@
#include "tkPlatDecls.h"
#include "tkIntXlibDecls.h"
+static const TkIntStubs tkIntStubs;
+
/*
- * WARNING: The contents of this file is automatically generated by the
- * tools/genStubs.tcl script. Any modifications to the function declarations
- * below should be made in the generic/tk.decls script.
+ * Remove macro that might interfere with the definition below.
*/
-MODULE_SCOPE const TkStubs tkStubs;
+#undef Tk_MainEx
+
+#ifdef __WIN32__
+
+int
+TkpCmapStressed(Tk_Window tkwin, Colormap colormap)
+{
+ /* dummy implementation, no need to do anything */
+ return 0;
+}
+void
+TkpSync(Display *display)
+{
+ /* dummy implementation, no need to do anything */
+}
+
+void
+TkCreateXEventSource(void)
+{
+ TkWinXInit(Tk_GetHINSTANCE());
+}
+
+# define TkUnixContainerId 0
+# define TkUnixDoOneXEvent 0
+# define TkUnixSetMenubar 0
+# define TkWmCleanup (void (*)(TkDisplay *)) TkpSync
+# define TkSendCleanup (void (*)(TkDisplay *)) TkpSync
+# define TkpTestsendCmd 0
+
+#else /* !__WIN32__ */
/*
- * Remove macro that might interfere with the definition below.
+ * Make sure that extensions which call XParseColor through the stub
+ * table, call TkParseColor instead. [Bug 3486474]
*/
+# define XParseColor TkParseColor
-#undef Tk_MainEx
+# ifdef __CYGWIN__
+
+/*
+ * Trick, so we don't have to include <windows.h> here, which in any
+ * case lacks this function anyway.
+ */
+
+#define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x00000004
+int __stdcall GetModuleHandleExW(unsigned int, const char *, void *);
+
+void *Tk_GetHINSTANCE()
+{
+ void *hInstance = NULL;
+
+ GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
+ (const char *) &tkIntStubs, &hInstance);
+ return hInstance;
+}
+
+void
+TkSetPixmapColormap(
+ Pixmap pixmap,
+ Colormap colormap)
+{
+}
+
+void
+TkpPrintWindowId(
+ char *buf, /* Pointer to string large enough to hold
+ * the hex representation of a pointer. */
+ Window window) /* Window to be printed into buffer. */
+{
+ sprintf(buf, "%#08lx", (unsigned long) (window));
+}
+
+int
+TkPutImage(
+ unsigned long *colors, /* Array of pixel values used by this image.
+ * May be NULL. */
+ int ncolors, /* Number of colors used, or 0. */
+ Display *display,
+ Drawable d, /* Destination drawable. */
+ GC gc,
+ XImage *image, /* Source image. */
+ int src_x, int src_y, /* Offset of subimage. */
+ int dest_x, int dest_y, /* Position of subimage origin in drawable. */
+ unsigned int width, unsigned int height)
+ /* Dimensions of subimage. */
+{
+ return XPutImage(display, d, gc, image, src_x, src_y, dest_x, dest_y, width, height);
+}
+
+TkRegion TkCreateRegion()
+{
+ return (TkRegion) XCreateRegion();
+}
+
+void TkDestroyRegion(TkRegion r)
+{
+ XDestroyRegion((Region)r);
+}
+
+void TkSetRegion(Display *d, GC g, TkRegion r)
+{
+ XSetRegion(d, g, (Region)r);
+}
+
+void TkUnionRectWithRegion(XRectangle *a, TkRegion b, TkRegion c)
+{
+ XUnionRectWithRegion(a, (Region) b, (Region) c);
+}
+
+void TkClipBox(TkRegion a, XRectangle *b)
+{
+ XClipBox((Region) a, b);
+}
+
+void TkIntersectRegion(TkRegion a, TkRegion b, TkRegion c)
+{
+ XIntersectRegion((Region) a, (Region) b, (Region) c);
+}
+
+int TkRectInRegion (TkRegion r, int a, int b, unsigned int c, unsigned int d)
+{
+ return XRectInRegion((Region) r, a, b, c, d);
+}
+
+void TkSubtractRegion (TkRegion a, TkRegion b, TkRegion c)
+{
+ XSubtractRegion((Region) a, (Region) b, (Region) c);
+}
+
+ /* TODO: To be implemented for Cygwin */
+# define Tk_AttachHWND 0
+# define Tk_GetHWND 0
+# define Tk_HWNDToWindow 0
+# define Tk_PointerEvent 0
+# define Tk_TranslateWinEvent 0
+# define TkAlignImageData 0
+# define TkGenerateActivateEvents 0
+# define TkpGetMS 0
+# define TkPointerDeadWindow 0
+# define TkpSetCapture 0
+# define TkpSetCursor 0
+# define TkWinCancelMouseTimer 0
+# define TkWinClipboardRender 0
+# define TkWinEmbeddedEventProc 0
+# define TkWinFillRect 0
+# define TkWinGetBorderPixels 0
+# define TkWinGetDrawableDC 0
+# define TkWinGetModifierState 0
+# define TkWinGetSystemPalette 0
+# define TkWinGetWrapperWindow 0
+# define TkWinHandleMenuEvent 0
+# define TkWinIndexOfColor 0
+# define TkWinReleaseDrawableDC 0
+# define TkWinResendEvent 0
+# define TkWinSelectPalette 0
+# define TkWinSetMenu 0
+# define TkWinSetWindowPos 0
+# define TkWinWmCleanup 0
+# define TkWinXCleanup 0
+# define TkWinXInit 0
+# define TkWinSetForegroundWindow 0
+# define TkWinDialogDebug 0
+# define TkWinGetMenuSystemDefault 0
+# define TkWinGetPlatformId 0
+# define TkWinSetHINSTANCE 0
+# define TkWinGetPlatformTheme 0
+# define TkWinChildProc 0
+
+# elif !defined(MAC_OSX_TK) /* UNIX */
+
+# undef TkClipBox
+# undef TkCreateRegion
+# undef TkDestroyRegion
+# undef TkIntersectRegion
+# undef TkRectInRegion
+# undef TkSetRegion
+# undef TkUnionRectWithRegion
+# undef TkSubtractRegion
+
+# define TkClipBox (void (*) (TkRegion, XRectangle *)) XClipBox
+# define TkCreateRegion (TkRegion (*) ()) XCreateRegion
+# define TkDestroyRegion (void (*) (TkRegion)) XDestroyRegion
+# define TkIntersectRegion (void (*) (TkRegion, TkRegion, TkRegion)) XIntersectRegion
+# define TkRectInRegion (int (*) (TkRegion, int, int, unsigned int, unsigned int)) XRectInRegion
+# define TkSetRegion (void (*) (Display *, GC, TkRegion)) XSetRegion
+# define TkUnionRectWithRegion (void (*) (XRectangle *, TkRegion, TkRegion)) XUnionRectWithRegion
+# define TkSubtractRegion (void (*) (TkRegion, TkRegion, TkRegion)) XSubtractRegion
+# endif
+#endif /* !__WIN32__ */
+
+#define reserved274 (void (*)(void)) Tk_DefineBitmap
+#define reserved275 (void (*)(void)) Tk_GetBitmapFromData
+
+/*
+ * WARNING: The contents of this file is automatically generated by the
+ * tools/genStubs.tcl script. Any modifications to the function declarations
+ * below should be made in the generic/tk.decls script.
+ */
/* !BEGIN!: Do not edit below this line. */
@@ -164,81 +353,18 @@ static const TkIntStubs tkIntStubs = {
TkpGetSubFonts, /* 110 */
TkpGetSystemDefault, /* 111 */
TkpMenuThreadInit, /* 112 */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 113 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
- TkClipBox, /* 113 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 113 */ /* Dummy entry for stubs table backwards compatibility */
TkClipBox, /* 113 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 114 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
- TkCreateRegion, /* 114 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 114 */ /* Dummy entry for stubs table backwards compatibility */
TkCreateRegion, /* 114 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 115 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkDestroyRegion, /* 115 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 115 */ /* Dummy entry for stubs table backwards compatibility */
- TkDestroyRegion, /* 115 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 116 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkIntersectRegion, /* 116 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 116 */ /* Dummy entry for stubs table backwards compatibility */
- TkIntersectRegion, /* 116 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 117 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkRectInRegion, /* 117 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 117 */ /* Dummy entry for stubs table backwards compatibility */
- TkRectInRegion, /* 117 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 118 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkSetRegion, /* 118 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 118 */ /* Dummy entry for stubs table backwards compatibility */
- TkSetRegion, /* 118 */
-#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 119 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkUnionRectWithRegion, /* 119 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 119 */ /* Dummy entry for stubs table backwards compatibility */
- TkUnionRectWithRegion, /* 119 */
-#endif /* AQUA */
0, /* 120 */
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
0, /* 121 */
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
0, /* 121 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -248,7 +374,7 @@ static const TkIntStubs tkIntStubs = {
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
0, /* 122 */
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
0, /* 122 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -259,7 +385,7 @@ static const TkIntStubs tkIntStubs = {
#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
0, /* 124 */
#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) /* WIN */
0, /* 124 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
@@ -286,16 +412,7 @@ static const TkIntStubs tkIntStubs = {
TkFocusFree, /* 142 */
TkClipCleanup, /* 143 */
TkGCCleanup, /* 144 */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
- 0, /* 145 */
-#endif /* X11 */
-#ifdef __WIN32__ /* WIN */
TkSubtractRegion, /* 145 */
-#endif /* WIN */
-#ifdef MAC_OSX_TK /* AQUA */
- 0, /* 145 */ /* Dummy entry for stubs table backwards compatibility */
- TkSubtractRegion, /* 145 */
-#endif /* AQUA */
TkStylePkgInit, /* 146 */
TkStylePkgFree, /* 147 */
TkToplevelWindowForCommand, /* 148 */
@@ -340,7 +457,7 @@ static const TkIntStubs tkIntStubs = {
static const TkIntPlatStubs tkIntPlatStubs = {
TCL_STUB_MAGIC,
0,
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
TkAlignImageData, /* 0 */
0, /* 1 */
TkGenerateActivateEvents, /* 2 */
@@ -378,6 +495,15 @@ static const TkIntPlatStubs tkIntPlatStubs = {
TkWinSetHINSTANCE, /* 34 */
TkWinGetPlatformTheme, /* 35 */
TkWinChildProc, /* 36 */
+ TkCreateXEventSource, /* 37 */
+ TkpCmapStressed, /* 38 */
+ TkpSync, /* 39 */
+ TkUnixContainerId, /* 40 */
+ TkUnixDoOneXEvent, /* 41 */
+ TkUnixSetMenubar, /* 42 */
+ TkWmCleanup, /* 43 */
+ TkSendCleanup, /* 44 */
+ TkpTestsendCmd, /* 45 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
TkGenerateActivateEvents, /* 0 */
@@ -434,8 +560,9 @@ static const TkIntPlatStubs tkIntPlatStubs = {
TkGenWMDestroyEvent, /* 51 */
0, /* 52 */
TkpGetMS, /* 53 */
+ TkMacOSXDrawable, /* 54 */
#endif /* AQUA */
-#if !(defined(__WIN32__) || defined(MAC_OSX_TK)) /* X11 */
+#if !(defined(__WIN32__) || defined(__CYGWIN__) || defined(MAC_OSX_TK)) /* X11 */
TkCreateXEventSource, /* 0 */
0, /* 1 */
0, /* 2 */
@@ -456,7 +583,7 @@ static const TkIntPlatStubs tkIntPlatStubs = {
static const TkIntXlibStubs tkIntXlibStubs = {
TCL_STUB_MAGIC,
0,
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
XSetDashes, /* 0 */
XGetModifierMapping, /* 1 */
XCreateImage, /* 2 */
@@ -564,6 +691,14 @@ static const TkIntXlibStubs tkIntXlibStubs = {
XDrawLine, /* 104 */
XWarpPointer, /* 105 */
XFillRectangle, /* 106 */
+ XFlush, /* 107 */
+ XGrabServer, /* 108 */
+ XUngrabServer, /* 109 */
+ XFree, /* 110 */
+ XNoOp, /* 111 */
+ XSynchronize, /* 112 */
+ XSync, /* 113 */
+ XVisualIDFromVisual, /* 114 */
#endif /* WIN */
#ifdef MAC_OSX_TK /* AQUA */
XSetDashes, /* 0 */
@@ -664,7 +799,7 @@ static const TkIntXlibStubs tkIntXlibStubs = {
static const TkPlatStubs tkPlatStubs = {
TCL_STUB_MAGIC,
0,
-#ifdef __WIN32__ /* WIN */
+#if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
Tk_AttachHWND, /* 0 */
Tk_GetHINSTANCE, /* 1 */
Tk_GetHWND, /* 2 */
@@ -741,7 +876,7 @@ const TkStubs tkStubs = {
Tk_CreateSelHandler, /* 41 */
Tk_CreateWindow, /* 42 */
Tk_CreateWindowFromPath, /* 43 */
- Tk_OldDefineBitmap, /* 44 */
+ Tk_DefineBitmap, /* 44 */
Tk_DefineCursor, /* 45 */
Tk_DeleteAllBindings, /* 46 */
Tk_DeleteBinding, /* 47 */
@@ -783,7 +918,7 @@ const TkStubs tkStubs = {
Tk_GetAtomName, /* 83 */
Tk_GetBinding, /* 84 */
Tk_GetBitmap, /* 85 */
- Tk_OldGetBitmapFromData, /* 86 */
+ Tk_GetBitmapFromData, /* 86 */
Tk_GetCapStyle, /* 87 */
Tk_GetColor, /* 88 */
Tk_GetColorByValue, /* 89 */
@@ -971,8 +1106,8 @@ const TkStubs tkStubs = {
Tk_Interp, /* 271 */
Tk_CreateOldImageType, /* 272 */
Tk_CreateOldPhotoImageFormat, /* 273 */
- Tk_DefineBitmap, /* 274 */
- Tk_GetBitmapFromData, /* 275 */
+ reserved274, /* 274 */
+ reserved275, /* 275 */
};
/* !END!: Do not edit above this line. */
diff --git a/generic/tkStubLib.c b/generic/tkStubLib.c
index 66fdb11..53f177d 100644
--- a/generic/tkStubLib.c
+++ b/generic/tkStubLib.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkStubLib.c,v 1.26 2010/02/05 22:45:03 nijtmans Exp $
*/
/*
diff --git a/generic/tkStyle.c b/generic/tkStyle.c
index bf683bc..76291fa 100644
--- a/generic/tkStyle.c
+++ b/generic/tkStyle.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkStyle.c,v 1.13 2010/06/15 11:16:03 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkTest.c b/generic/tkTest.c
index 6eee7e0..bd15739 100644
--- a/generic/tkTest.c
+++ b/generic/tkTest.c
@@ -12,8 +12,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTest.c,v 1.49 2010/06/19 16:18:41 jenglish Exp $
*/
#undef STATIC_BUILD
@@ -593,10 +591,10 @@ TestobjconfigObjCmd(
{TK_OPTION_STRING_TABLE,
"-stringtable", "StringTable", "stringTable",
"one", Tk_Offset(TypesRecord, stringTablePtr), -1,
- TK_CONFIG_NULL_OK, (ClientData) stringTable, 0x10},
+ TK_CONFIG_NULL_OK, stringTable, 0x10},
{TK_OPTION_COLOR, "-color", "color", "Color",
"red", Tk_Offset(TypesRecord, colorPtr), -1,
- TK_CONFIG_NULL_OK, (ClientData) "black", 0x20},
+ TK_CONFIG_NULL_OK, "black", 0x20},
{TK_OPTION_FONT, "-font", "font", "Font", "Helvetica 12",
Tk_Offset(TypesRecord, fontPtr), -1,
TK_CONFIG_NULL_OK, 0, 0x40},
@@ -605,7 +603,7 @@ TestobjconfigObjCmd(
TK_CONFIG_NULL_OK, 0, 0x80},
{TK_OPTION_BORDER, "-border", "border", "Border",
"blue", Tk_Offset(TypesRecord, borderPtr), -1,
- TK_CONFIG_NULL_OK, (ClientData) "white", 0x100},
+ TK_CONFIG_NULL_OK, "white", 0x100},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief", "raised",
Tk_Offset(TypesRecord, reliefPtr), -1,
TK_CONFIG_NULL_OK, 0, 0x200},
@@ -623,9 +621,9 @@ TestobjconfigObjCmd(
TK_CONFIG_NULL_OK, 0, 0x2000},
{TK_OPTION_CUSTOM, "-custom", NULL, NULL,
"", Tk_Offset(TypesRecord, customPtr), -1,
- TK_CONFIG_NULL_OK, (ClientData)&CustomOption, 0x4000},
+ TK_CONFIG_NULL_OK, &CustomOption, 0x4000},
{TK_OPTION_SYNONYM, "-synonym", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-color", 0x8000},
+ NULL, 0, -1, 0, "-color", 0x8000},
{TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0}
};
Tk_OptionTable optionTable;
@@ -864,10 +862,10 @@ TestobjconfigObjCmd(
{TK_OPTION_STRING_TABLE,
"-stringtable", "StringTable", "stringTable", "one",
-1, Tk_Offset(InternalRecord, index),
- TK_CONFIG_NULL_OK, (ClientData) internalStringTable, 0x10},
+ TK_CONFIG_NULL_OK, internalStringTable, 0x10},
{TK_OPTION_COLOR, "-color", "color", "Color", "red",
-1, Tk_Offset(InternalRecord, colorPtr),
- TK_CONFIG_NULL_OK, (ClientData) "black", 0x20},
+ TK_CONFIG_NULL_OK, "black", 0x20},
{TK_OPTION_FONT, "-font", "font", "Font", "Helvetica 12",
-1, Tk_Offset(InternalRecord, tkfont),
TK_CONFIG_NULL_OK, 0, 0x40},
@@ -876,7 +874,7 @@ TestobjconfigObjCmd(
TK_CONFIG_NULL_OK, 0, 0x80},
{TK_OPTION_BORDER, "-border", "border", "Border", "blue",
-1, Tk_Offset(InternalRecord, border),
- TK_CONFIG_NULL_OK, (ClientData) "white", 0x100},
+ TK_CONFIG_NULL_OK, "white", 0x100},
{TK_OPTION_RELIEF, "-relief", "relief", "Relief", "raised",
-1, Tk_Offset(InternalRecord, relief),
TK_CONFIG_NULL_OK, 0, 0x200},
@@ -897,9 +895,9 @@ TestobjconfigObjCmd(
TK_CONFIG_NULL_OK, 0, 0},
{TK_OPTION_CUSTOM, "-custom", NULL, NULL, "",
-1, Tk_Offset(InternalRecord, custom),
- TK_CONFIG_NULL_OK, (ClientData)&CustomOption, 0x4000},
+ TK_CONFIG_NULL_OK, &CustomOption, 0x4000},
{TK_OPTION_SYNONYM, "-synonym", NULL, NULL,
- NULL, -1, -1, 0, (ClientData) "-color", 0x8000},
+ NULL, -1, -1, 0, "-color", 0x8000},
{TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, NULL, 0}
};
Tk_OptionTable optionTable;
diff --git a/generic/tkText.c b/generic/tkText.c
index da41628..56a98e7 100644
--- a/generic/tkText.c
+++ b/generic/tkText.c
@@ -12,8 +12,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkText.c,v 1.101 2010/08/27 00:33:12 hobbs Exp $
*/
#include "default.h"
@@ -127,12 +125,12 @@ static const Tk_OptionSpec optionSpecs[] = {
Tk_Offset(TkText, autoSeparators), 0, 0, 0},
{TK_OPTION_BORDER, "-background", "background", "Background",
DEF_TEXT_BG_COLOR, -1, Tk_Offset(TkText, border),
- 0, (ClientData) DEF_TEXT_BG_MONO, 0},
+ 0, DEF_TEXT_BG_MONO, 0},
{TK_OPTION_SYNONYM, "-bd", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-borderwidth",
+ NULL, 0, -1, 0, "-borderwidth",
TK_TEXT_LINE_GEOMETRY},
{TK_OPTION_SYNONYM, "-bg", NULL, NULL,
- NULL, 0, -1, 0, (ClientData) "-background", 0},
+ NULL, 0, -1, 0, "-background", 0},
{TK_OPTION_BOOLEAN, "-blockcursor", "blockCursor",
"BlockCursor", DEF_TEXT_BLOCK_CURSOR, -1,
Tk_Offset(TkText, insertCursorType), 0, 0, 0},
@@ -144,12 +142,12 @@ static const Tk_OptionSpec optionSpecs[] = {
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_CUSTOM, "-endline", NULL, NULL,
NULL, -1, Tk_Offset(TkText, end), TK_OPTION_NULL_OK,
- (ClientData) &lineOption, TK_TEXT_LINE_RANGE},
+ &lineOption, TK_TEXT_LINE_RANGE},
{TK_OPTION_BOOLEAN, "-exportselection", "exportSelection",
"ExportSelection", DEF_TEXT_EXPORT_SELECTION, -1,
Tk_Offset(TkText, exportSelection), 0, 0, 0},
{TK_OPTION_SYNONYM, "-fg", "foreground", NULL,
- NULL, 0, -1, 0, (ClientData) "-foreground", 0},
+ NULL, 0, -1, 0, "-foreground", 0},
{TK_OPTION_FONT, "-font", "font", "Font",
DEF_TEXT_FONT, -1, Tk_Offset(TkText, tkfont), 0, 0,
TK_TEXT_LINE_GEOMETRY},
@@ -172,7 +170,7 @@ static const Tk_OptionSpec optionSpecs[] = {
"Foreground",
DEF_TEXT_INACTIVE_SELECT_COLOR,
-1, Tk_Offset(TkText, inactiveSelBorder),
- TK_OPTION_NULL_OK, (ClientData) DEF_TEXT_SELECT_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_TEXT_SELECT_MONO, 0},
{TK_OPTION_BORDER, "-insertbackground", "insertBackground", "Foreground",
DEF_TEXT_INSERT_BG,
-1, Tk_Offset(TkText, insertBorder),
@@ -190,7 +188,7 @@ static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_STRING_TABLE,
"-insertunfocussed", "insertUnfocussed", "InsertUnfocussed",
DEF_TEXT_INSERT_UNFOCUSSED, -1, Tk_Offset(TkText, insertUnfocussed),
- 0, (ClientData) insertUnfocussedStrings, 0},
+ 0, insertUnfocussedStrings, 0},
{TK_OPTION_PIXELS, "-insertwidth", "insertWidth", "InsertWidth",
DEF_TEXT_INSERT_WIDTH, -1, Tk_Offset(TkText, insertWidth),
0, 0, 0},
@@ -205,15 +203,15 @@ static const Tk_OptionSpec optionSpecs[] = {
DEF_TEXT_RELIEF, -1, Tk_Offset(TkText, relief), 0, 0, 0},
{TK_OPTION_BORDER, "-selectbackground", "selectBackground", "Foreground",
DEF_TEXT_SELECT_COLOR, -1, Tk_Offset(TkText, selBorder),
- 0, (ClientData) DEF_TEXT_SELECT_MONO, 0},
+ 0, DEF_TEXT_SELECT_MONO, 0},
{TK_OPTION_PIXELS, "-selectborderwidth", "selectBorderWidth",
"BorderWidth", DEF_TEXT_SELECT_BD_COLOR,
Tk_Offset(TkText, selBorderWidthPtr),
Tk_Offset(TkText, selBorderWidth),
- TK_OPTION_NULL_OK, (ClientData) DEF_TEXT_SELECT_BD_MONO, 0},
+ TK_OPTION_NULL_OK, DEF_TEXT_SELECT_BD_MONO, 0},
{TK_OPTION_COLOR, "-selectforeground", "selectForeground", "Background",
DEF_TEXT_SELECT_FG_COLOR, -1, Tk_Offset(TkText, selFgColorPtr),
- TK_CONFIG_NULL_OK, (ClientData) DEF_TEXT_SELECT_FG_MONO, 0},
+ TK_CONFIG_NULL_OK, DEF_TEXT_SELECT_FG_MONO, 0},
{TK_OPTION_BOOLEAN, "-setgrid", "setGrid", "SetGrid",
DEF_TEXT_SET_GRID, -1, Tk_Offset(TkText, setGrid), 0, 0, 0},
{TK_OPTION_PIXELS, "-spacing1", "spacing1", "Spacing",
@@ -227,16 +225,16 @@ static const Tk_OptionSpec optionSpecs[] = {
TK_OPTION_DONT_SET_DEFAULT, 0 , TK_TEXT_LINE_GEOMETRY },
{TK_OPTION_CUSTOM, "-startline", NULL, NULL,
NULL, -1, Tk_Offset(TkText, start), TK_OPTION_NULL_OK,
- (ClientData) &lineOption, TK_TEXT_LINE_RANGE},
+ &lineOption, TK_TEXT_LINE_RANGE},
{TK_OPTION_STRING_TABLE, "-state", "state", "State",
DEF_TEXT_STATE, -1, Tk_Offset(TkText, state),
- 0, (ClientData) stateStrings, 0},
+ 0, stateStrings, 0},
{TK_OPTION_STRING, "-tabs", "tabs", "Tabs",
DEF_TEXT_TABS, Tk_Offset(TkText, tabOptionPtr), -1,
TK_OPTION_NULL_OK, 0, TK_TEXT_LINE_GEOMETRY},
{TK_OPTION_STRING_TABLE, "-tabstyle", "tabStyle", "TabStyle",
DEF_TEXT_TABSTYLE, -1, Tk_Offset(TkText, tabStyle),
- 0, (ClientData) tabStyleStrings, TK_TEXT_LINE_GEOMETRY},
+ 0, tabStyleStrings, TK_TEXT_LINE_GEOMETRY},
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
DEF_TEXT_TAKE_FOCUS, -1, Tk_Offset(TkText, takeFocus),
TK_OPTION_NULL_OK, 0, 0},
@@ -247,7 +245,7 @@ static const Tk_OptionSpec optionSpecs[] = {
TK_TEXT_LINE_GEOMETRY},
{TK_OPTION_STRING_TABLE, "-wrap", "wrap", "Wrap",
DEF_TEXT_WRAP, -1, Tk_Offset(TkText, wrapMode),
- 0, (ClientData) wrapStrings, TK_TEXT_LINE_GEOMETRY},
+ 0, wrapStrings, TK_TEXT_LINE_GEOMETRY},
{TK_OPTION_STRING, "-xscrollcommand", "xScrollCommand", "ScrollCommand",
DEF_TEXT_XSCROLL_COMMAND, -1, Tk_Offset(TkText, xScrollCmd),
TK_OPTION_NULL_OK, 0, 0},
@@ -922,7 +920,7 @@ TextWidgetObjCmd(
* We're going to count up all display lines in the logical
* line of 'indexFromPtr' up to, but not including the logical
* line of 'indexToPtr', and then subtract off what we didn't
- * what from 'from' and add on what we didn't count from 'to.
+ * want from 'from' and add on what we didn't count from 'to.
*/
while (index.linePtr != indexToPtr->linePtr) {
@@ -931,17 +929,9 @@ TextWidgetObjCmd(
/*
* We might have skipped past indexToPtr, if we have
* multiple logical lines in a single display line.
- * Therefore we iterate through each intermediate logical
- * line, just to check. Another approach would be just to
- * use TkTextIndexCmp on every while() iteration, but that
- * would be less efficient.
*/
-
- while (fromPtr != index.linePtr) {
- fromPtr = TkBTreeNextLine(textPtr, fromPtr);
- if (fromPtr == indexToPtr->linePtr) {
- break;
- }
+ if (TkTextIndexCmp(&index,indexToPtr) > 0) {
+ break;
}
}
@@ -2044,6 +2034,7 @@ ConfigureText(
if (mask & TK_TEXT_LINE_RANGE) {
int start, end, current;
+ TkTextIndex index1, index2, index3;
/*
* Line start and/or end have been adjusted. We need to validate the
@@ -2070,13 +2061,15 @@ ConfigureText(
return TCL_ERROR;
}
current = TkBTreeLinesTo(NULL, textPtr->topIndex.linePtr);
+ TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, start, 0,
+ &index1);
+ TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, end, 0,
+ &index2);
if (current < start || current > end) {
TkTextSearch search;
- TkTextIndex index1, first, last;
+ TkTextIndex first, last;
int selChanged = 0;
- TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, start, 0,
- &index1);
TkTextSetYView(textPtr, &index1, 0);
/*
@@ -2120,6 +2113,33 @@ ConfigureText(
textPtr->abortSelections = 1;
}
}
+
+ /* Indices are potentially obsolete after changing -startline and/or
+ * -endline, therefore increase the epoch.
+ * Also, clamp the insert and current (unshared) marks to the new
+ * -startline/-endline range limits of the widget. All other (shared)
+ * marks are unchanged.
+ * The return value of TkTextMarkNameToIndex does not need to be
+ * checked: "insert" and "current" marks always exist, and the
+ * purpose of the code below precisely is to move them inside the
+ * -startline/-endline range.
+ */
+
+ textPtr->sharedTextPtr->stateEpoch++;
+ TkTextMarkNameToIndex(textPtr, "insert", &index3);
+ if (TkTextIndexCmp(&index3, &index1) < 0) {
+ textPtr->insertMarkPtr = TkTextSetMark(textPtr, "insert", &index1);
+ }
+ if (TkTextIndexCmp(&index3, &index2) > 0) {
+ textPtr->insertMarkPtr = TkTextSetMark(textPtr, "insert", &index2);
+ }
+ TkTextMarkNameToIndex(textPtr, "current", &index3);
+ if (TkTextIndexCmp(&index3, &index1) < 0) {
+ textPtr->currentMarkPtr = TkTextSetMark(textPtr, "current", &index1);
+ }
+ if (TkTextIndexCmp(&index3, &index2) > 0) {
+ textPtr->currentMarkPtr = TkTextSetMark(textPtr, "current", &index2);
+ }
}
/*
@@ -3089,6 +3109,11 @@ DeleteIndexRange(
resetView = 1;
line = line1;
byteIndex = tPtr->topIndex.byteIndex;
+ } else {
+ /*
+ * Deletion range starts after the top line. This peers's view
+ * will not need to be reset. Nothing to do.
+ */
}
} else if (index2.linePtr == tPtr->topIndex.linePtr) {
/*
@@ -3105,6 +3130,11 @@ DeleteIndexRange(
} else {
byteIndex -= (index2.byteIndex - index1.byteIndex);
}
+ } else {
+ /*
+ * Deletion range ends before the top line. This peers's view
+ * will not need to be reset. Nothing to do.
+ */
}
if (resetView) {
lineAndByteIndex[resetViewCount] = line;
@@ -3149,14 +3179,43 @@ DeleteIndexRange(
TkTextIndex indexTmp;
if (tPtr == textPtr) {
- if (viewUpdate) {
+ if (viewUpdate) {
+ /*
+ * line cannot be before -startline of textPtr because
+ * this line corresponds to an index which is necessarily
+ * between "1.0" and "end" relative to textPtr.
+ * Therefore no need to clamp line to the -start/-end
+ * range.
+ */
+
TkTextMakeByteIndex(sharedTextPtr->tree, textPtr, line,
byteIndex, &indexTmp);
TkTextSetYView(tPtr, &indexTmp, 0);
}
} else {
- TkTextMakeByteIndex(sharedTextPtr->tree, NULL, line,
+ TkTextMakeByteIndex(sharedTextPtr->tree, tPtr, line,
byteIndex, &indexTmp);
+ /*
+ * line may be before -startline of tPtr and must be
+ * clamped to -startline before providing it to
+ * TkTextSetYView otherwise lines before -startline
+ * would be displayed.
+ * There is no need to worry about -endline however,
+ * because the view will only be reset if the deletion
+ * involves the TOP line of the screen
+ */
+
+ if (tPtr->start != NULL) {
+ int start;
+ TkTextIndex indexStart;
+
+ start = TkBTreeLinesTo(NULL, tPtr->start);
+ TkTextMakeByteIndex(sharedTextPtr->tree, NULL, start,
+ 0, &indexStart);
+ if (TkTextIndexCmp(&indexTmp, &indexStart) < 0) {
+ indexTmp = indexStart;
+ }
+ }
TkTextSetYView(tPtr, &indexTmp, 0);
}
}
diff --git a/generic/tkText.h b/generic/tkText.h
index 2aa80c2..fb9eab2 100644
--- a/generic/tkText.h
+++ b/generic/tkText.h
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkText.h,v 1.39 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKTEXT
@@ -552,9 +550,10 @@ typedef struct TkSharedText {
* Each "object" used for this table is the
* name of a tag. */
int stateEpoch; /* This is incremented each time the B-tree's
- * contents change structurally, and means
- * that any cached TkTextIndex objects are no
- * longer valid. */
+ * contents change structurally, or when the
+ * start/end limits change, and means that any
+ * cached TkTextIndex objects are no longer
+ * valid. */
/*
* Information related to the undo/redo functionality.
diff --git a/generic/tkTextBTree.c b/generic/tkTextBTree.c
index 925fcc4..e34dae7 100644
--- a/generic/tkTextBTree.c
+++ b/generic/tkTextBTree.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextBTree.c,v 1.32 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
@@ -660,12 +658,12 @@ AdjustStartEndRefs(
if (textPtr->start != NULL) {
count--;
treePtr->startEnd[count] = textPtr->start;
- treePtr->startEndRef[count] = treePtr->sharedTextPtr->peers;
+ treePtr->startEndRef[count] = textPtr;
}
if (textPtr->end != NULL) {
count--;
treePtr->startEnd[count] = textPtr->end;
- treePtr->startEndRef[count] = treePtr->sharedTextPtr->peers;
+ treePtr->startEndRef[count] = textPtr;
}
}
}
@@ -1608,7 +1606,7 @@ TkBTreeFindLine(
}
/*
- * Check for the any start/end offset for this text widget.
+ * Check for any start/end offset for this text widget.
*/
if (textPtr != NULL) {
@@ -1990,12 +1988,37 @@ TkBTreeLinesTo(
index += nodePtr2->numLines;
}
}
- if (textPtr != NULL && textPtr->start != NULL) {
- index -= TkBTreeLinesTo(NULL, textPtr->start);
+ if (textPtr != NULL) {
+ /*
+ * The index to return must be relative to textPtr, not to the entire
+ * tree. Take care to never return a negative index when linePtr
+ * denotes a line before -startline, or an index larger than the
+ * number of lines in textPtr when linePtr is a line past -endline.
+ */
+
+ int indexStart, indexEnd;
+
+ if (textPtr->start != NULL) {
+ indexStart = TkBTreeLinesTo(NULL, textPtr->start);
+ } else {
+ indexStart = 0;
+ }
+ if (textPtr->end != NULL) {
+ indexEnd = TkBTreeLinesTo(NULL, textPtr->end);
+ } else {
+ indexEnd = TkBTreeNumLines(textPtr->sharedTextPtr->tree, NULL);
+ }
+ if (index < indexStart) {
+ index = 0;
+ } else if (index > indexEnd) {
+ index = TkBTreeNumLines(textPtr->sharedTextPtr->tree, textPtr);
+ } else {
+ index -= indexStart;
+ }
}
return index;
}
-
+
/*
*----------------------------------------------------------------------
*
diff --git a/generic/tkTextDisp.c b/generic/tkTextDisp.c
index b287a94..1b41e31 100644
--- a/generic/tkTextDisp.c
+++ b/generic/tkTextDisp.c
@@ -11,8 +11,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextDisp.c,v 1.78 2010/12/06 10:30:49 nijtmans Exp $
*/
#include "tkInt.h"
@@ -20,6 +18,8 @@
#ifdef __WIN32__
#include "tkWinInt.h"
+#elif defined(__CYGWIN__)
+#include "tkUnixInt.h"
#endif
#ifdef MAC_OSX_TK
@@ -1974,7 +1974,7 @@ UpdateDisplayInfo(
if (spaceLeft <= dInfoPtr->newTopPixelOffset) {
/*
- * We can full up all the needed space just by showing more of the
+ * We can fill up all the needed space just by showing more of the
* current top line.
*/
@@ -2008,8 +2008,9 @@ UpdateDisplayInfo(
* widget.
*/
- lineNum = -1;
- bytesToCount = 0; /* Stop compiler warning. */
+ lineNum = TkBTreeNumLines(textPtr->sharedTextPtr->tree,
+ textPtr) - 1;
+ bytesToCount = INT_MAX;
} else {
lineNum = TkBTreeLinesTo(textPtr,
dInfoPtr->dLinePtr->index.linePtr);
@@ -3233,7 +3234,7 @@ TextInvalidateLineMetrics(
*/
TkBTreeLinePixelEpoch(textPtr, linePtr) = 0;
- while (counter > 0 && linePtr != 0) {
+ while (counter > 0 && linePtr != NULL) {
linePtr = TkBTreeNextLine(textPtr, linePtr);
if (linePtr != NULL) {
TkBTreeLinePixelEpoch(textPtr, linePtr) = 0;
@@ -3248,7 +3249,7 @@ TextInvalidateLineMetrics(
* more lines than is strictly necessary (but the examination of the
* extra lines should be quick, since their pixelCalculationEpoch will
* be up to date). However, to keep track of that would require more
- * complex record-keeping that what we have.
+ * complex record-keeping than what we have.
*/
if (dInfoPtr->lineUpdateTimer == NULL) {
@@ -6852,6 +6853,9 @@ TkTextIndexBbox(
if (charWidthPtr != NULL) {
*charWidthPtr = dInfoPtr->maxX - *xPtr;
+ if (*charWidthPtr > textPtr->charWidth) {
+ *charWidthPtr = textPtr->charWidth;
+ }
}
if (*xPtr > dInfoPtr->maxX) {
*xPtr = dInfoPtr->maxX;
diff --git a/generic/tkTextImage.c b/generic/tkTextImage.c
index ac1ca63..47ee49a 100644
--- a/generic/tkTextImage.c
+++ b/generic/tkTextImage.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextImage.c,v 1.29 2010/03/11 09:43:19 dkf Exp $
*/
#include "tkPort.h"
@@ -86,7 +84,7 @@ typedef enum {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_STRING_TABLE, "-align", NULL, NULL,
"center", -1, Tk_Offset(TkTextEmbImage, align),
- 0, (ClientData) alignStrings, 0},
+ 0, alignStrings, 0},
{TK_OPTION_PIXELS, "-padx", NULL, NULL,
"0", -1, Tk_Offset(TkTextEmbImage, padX), 0, 0, 0},
{TK_OPTION_PIXELS, "-pady", NULL, NULL,
diff --git a/generic/tkTextIndex.c b/generic/tkTextIndex.c
index aaabb88..c11ce0b 100644
--- a/generic/tkTextIndex.c
+++ b/generic/tkTextIndex.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextIndex.c,v 1.37 2009/11/21 17:24:42 dkf Exp $
*/
#include "default.h"
diff --git a/generic/tkTextMark.c b/generic/tkTextMark.c
index 8a624d2..76ab1a9 100644
--- a/generic/tkTextMark.c
+++ b/generic/tkTextMark.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextMark.c,v 1.25 2010/01/02 22:52:38 dkf Exp $
*/
#include "tkInt.h"
@@ -288,6 +286,7 @@ TkTextSetMark(
if (markPtr == textPtr->insertMarkPtr) {
TkTextIndex index, index2;
+ int nblines;
TkTextMarkSegToIndex(textPtr, textPtr->insertMarkPtr, &index);
TkTextIndexForwChars(NULL, &index, 1, &index2, COUNT_INDICES);
@@ -298,9 +297,18 @@ TkTextSetMark(
*/
TkTextChanged(NULL, textPtr, &index, &index2);
- if (TkBTreeLinesTo(textPtr, indexPtr->linePtr) ==
- TkBTreeNumLines(textPtr->sharedTextPtr->tree, textPtr)) {
- TkTextIndexBackChars(NULL, indexPtr, 1, &insertIndex,
+
+ /*
+ * The number of lines in the widget is zero if and only if it is
+ * a partial peer with -startline == -endline, i.e. an empty
+ * peer. In this case the mark shall be set exactly at the given
+ * index, and not one character backwards (bug 3487407).
+ */
+
+ nblines = TkBTreeNumLines(textPtr->sharedTextPtr->tree, textPtr);
+ if ((TkBTreeLinesTo(textPtr, indexPtr->linePtr) == nblines)
+ && (nblines > 0)) {
+ TkTextIndexBackChars(NULL,indexPtr, 1, &insertIndex,
COUNT_INDICES);
indexPtr = &insertIndex;
}
@@ -388,9 +396,15 @@ TkTextMarkSegToIndex(
*
* Results:
* The return value is TCL_OK if "name" exists as a mark in the text
- * widget. In this case *indexPtr is filled in with the next segment
- * whose after the mark whose size is non-zero. TCL_ERROR is returned if
- * the mark doesn't exist in the text widget.
+ * widget and is located within its -starline/-endline range. In this
+ * case *indexPtr is filled in with the next segment who is after the
+ * mark whose size is non-zero. TCL_ERROR is returned if the mark
+ * doesn't exist in the text widget, or if it is out of its -starline/
+ * -endline range. In this latter case *indexPtr still contains valid
+ * information, in particular TkTextMarkNameToIndex called with the
+ * "insert" or "current" mark name may return TCL_ERROR, but *indexPtr
+ * contains the correct index of this mark before -startline or after
+ * -endline.
*
* Side effects:
* None.
@@ -405,6 +419,8 @@ TkTextMarkNameToIndex(
TkTextIndex *indexPtr) /* Index information gets stored here. */
{
TkTextSegment *segPtr;
+ TkTextIndex index;
+ int start, end;
if (textPtr == NULL) {
return TCL_ERROR;
@@ -424,6 +440,29 @@ TkTextMarkNameToIndex(
segPtr = Tcl_GetHashValue(hPtr);
}
TkTextMarkSegToIndex(textPtr, segPtr, indexPtr);
+
+ /* If indexPtr refers to somewhere outside the -startline/-endline
+ * range limits of the widget, error out since the mark indeed is not
+ * reachable from this text widget (it may be reachable from a peer)
+ * (bug 1630271).
+ */
+
+ if (textPtr->start != NULL) {
+ start = TkBTreeLinesTo(NULL, textPtr->start);
+ TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, start, 0,
+ &index);
+ if (TkTextIndexCmp(indexPtr, &index) < 0) {
+ return TCL_ERROR;
+ }
+ }
+ if (textPtr->end != NULL) {
+ end = TkBTreeLinesTo(NULL, textPtr->end);
+ TkTextMakeByteIndex(textPtr->sharedTextPtr->tree, NULL, end, 0,
+ &index);
+ if (TkTextIndexCmp(indexPtr, &index) > 0) {
+ return TCL_ERROR;
+ }
+ }
return TCL_OK;
}
@@ -808,11 +847,17 @@ MarkFindNext(
Tcl_SetResult(interp, "current", TCL_STATIC);
} else if (segPtr == textPtr->insertMarkPtr) {
Tcl_SetResult(interp, "insert", TCL_STATIC);
- } else if (segPtr->body.mark.textPtr != textPtr) {
+ } else if (segPtr->body.mark.hPtr == NULL) {
/*
* Ignore widget-specific marks for the other widgets.
- */
-
+ * This is either an insert or a current mark
+ * (markPtr->body.mark.hPtr actually receives NULL
+ * for these marks in TkTextSetMark).
+ * The insert and current marks for textPtr having
+ * already been tested above, the current segment is
+ * an insert or current mark from a peer of textPtr,
+ * which we don't want to return.
+ */
continue;
} else {
Tcl_SetResult(interp,
@@ -895,7 +940,7 @@ MarkFindPrev(
while (1) {
/*
* segPtr points just past the first possible candidate, or at the
- * begining of the line.
+ * beginning of the line.
*/
for (prevPtr = NULL, seg2Ptr = index.linePtr->segPtr;
@@ -903,26 +948,43 @@ MarkFindPrev(
seg2Ptr = seg2Ptr->nextPtr) {
if (seg2Ptr->typePtr == &tkTextRightMarkType ||
seg2Ptr->typePtr == &tkTextLeftMarkType) {
+ if (seg2Ptr->body.mark.hPtr == NULL) {
+ if (seg2Ptr != textPtr->currentMarkPtr &&
+ seg2Ptr != textPtr->insertMarkPtr) {
+ /*
+ * This is an insert or current mark from a
+ * peer of textPtr.
+ */
+ continue;
+ }
+ }
prevPtr = seg2Ptr;
}
}
if (prevPtr != NULL) {
if (prevPtr == textPtr->currentMarkPtr) {
Tcl_SetResult(interp, "current", TCL_STATIC);
+ return TCL_OK;
} else if (prevPtr == textPtr->insertMarkPtr) {
Tcl_SetResult(interp, "insert", TCL_STATIC);
- } else if (prevPtr->body.mark.textPtr != textPtr) {
+ return TCL_OK;
+ } else if (prevPtr->body.mark.hPtr == NULL) {
/*
* Ignore widget-specific marks for the other widgets.
- */
-
- continue;
+ * This is either an insert or a current mark
+ * (markPtr->body.mark.hPtr actually receives NULL
+ * for these marks in TkTextSetMark).
+ * The insert and current marks for textPtr having
+ * already been tested above, the current segment is
+ * an insert or current mark from a peer of textPtr,
+ * which we don't want to return.
+ */
} else {
Tcl_SetResult(interp,
Tcl_GetHashKey(&textPtr->sharedTextPtr->markTable,
prevPtr->body.mark.hPtr), TCL_STATIC);
+ return TCL_OK;
}
- return TCL_OK;
}
index.linePtr = TkBTreePreviousLine(textPtr, index.linePtr);
if (index.linePtr == NULL) {
diff --git a/generic/tkTextTag.c b/generic/tkTextTag.c
index cf3b0c6..6cd018a 100644
--- a/generic/tkTextTag.c
+++ b/generic/tkTextTag.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextTag.c,v 1.34 2010/01/18 20:43:38 nijtmans Exp $
*/
#include "default.h"
@@ -82,13 +80,13 @@ static const Tk_OptionSpec tagOptionSpecs[] = {
NULL, Tk_Offset(TkTextTag, tabStringPtr), -1, TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-tabstyle", NULL, NULL,
NULL, -1, Tk_Offset(TkTextTag, tabStyle),
- TK_OPTION_NULL_OK, (ClientData) tabStyleStrings, 0},
+ TK_OPTION_NULL_OK, tabStyleStrings, 0},
{TK_OPTION_STRING, "-underline", NULL, NULL,
NULL, -1, Tk_Offset(TkTextTag, underlineString),
TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_STRING_TABLE, "-wrap", NULL, NULL,
NULL, -1, Tk_Offset(TkTextTag, wrapMode),
- TK_OPTION_NULL_OK, (ClientData) wrapStrings, 0},
+ TK_OPTION_NULL_OK, wrapStrings, 0},
{TK_OPTION_END, NULL, NULL, NULL, NULL, 0, 0, 0, 0, 0}
};
@@ -459,6 +457,11 @@ TkTextTagCmd(
&tagPtr->elide) != TCL_OK) {
return TCL_ERROR;
}
+ /* Indices are potentially obsolete after changing -elide,
+ * especially those computed with "display" or "any"
+ * submodifier, therefore increase the epoch.
+ */
+ textPtr->sharedTextPtr->stateEpoch++;
}
/*
diff --git a/generic/tkTextWind.c b/generic/tkTextWind.c
index e3894fc..58d3198 100644
--- a/generic/tkTextWind.c
+++ b/generic/tkTextWind.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTextWind.c,v 1.30 2010/03/11 09:43:19 dkf Exp $
*/
#include "tkPort.h"
@@ -102,7 +100,7 @@ typedef enum {
static const Tk_OptionSpec optionSpecs[] = {
{TK_OPTION_STRING_TABLE, "-align", NULL, NULL,
"center", -1, Tk_Offset(TkTextEmbWindow, align),
- 0, (ClientData) alignStrings, 0},
+ 0, alignStrings, 0},
{TK_OPTION_STRING, "-create", NULL, NULL,
NULL, -1, Tk_Offset(TkTextEmbWindow, create), TK_OPTION_NULL_OK, 0, 0},
{TK_OPTION_PIXELS, "-padx", NULL, NULL,
diff --git a/generic/tkTrig.c b/generic/tkTrig.c
index 97a9d06..d999062 100644
--- a/generic/tkTrig.c
+++ b/generic/tkTrig.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkTrig.c,v 1.13 2010/04/23 08:32:56 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkUndo.c b/generic/tkUndo.c
index 2c56c05..a642e72 100644
--- a/generic/tkUndo.c
+++ b/generic/tkUndo.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkUndo.c,v 1.16 2009/06/30 00:56:29 das Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkUndo.h b/generic/tkUndo.h
index 25a97e9..e63aac4 100644
--- a/generic/tkUndo.h
+++ b/generic/tkUndo.h
@@ -7,8 +7,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkUndo.h,v 1.9 2010/04/23 08:32:56 nijtmans Exp $
*/
#ifndef _TKUNDO
diff --git a/generic/tkUtil.c b/generic/tkUtil.c
index 81ec092..5282708 100644
--- a/generic/tkUtil.c
+++ b/generic/tkUtil.c
@@ -9,8 +9,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkUtil.c,v 1.32 2009/12/16 22:00:31 nijtmans Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkVisual.c b/generic/tkVisual.c
index 8b43e6e..3602088 100644
--- a/generic/tkVisual.c
+++ b/generic/tkVisual.c
@@ -10,8 +10,6 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkVisual.c,v 1.13 2009/09/07 07:29:04 das Exp $
*/
#include "tkInt.h"
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index 528fc87..b04b95f 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -10,13 +10,13 @@
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id: tkWindow.c,v 1.114 2010/11/19 14:48:00 nijtmans Exp $
*/
#include "tkInt.h"
-#if !( defined(__WIN32__) || defined(MAC_OSX_TK))
+#ifdef __WIN32__
+#include "tkWinInt.h"
+#elif !defined(MAC_OSX_TK)
#include "tkUnixInt.h"
#endif
@@ -65,14 +65,14 @@ TCL_DECLARE_MUTEX(windowMutex)
* on internal windows: these events are generated internally.
*/
-static XWindowChanges defChanges = {
+static const XWindowChanges defChanges = {
0, 0, 1, 1, 0, 0, Above
};
#define ALL_EVENTS_MASK \
KeyPressMask|KeyReleaseMask|ButtonPressMask|ButtonReleaseMask| \
EnterWindowMask|LeaveWindowMask|PointerMotionMask|ExposureMask| \
VisibilityChangeMask|PropertyChangeMask|ColormapChangeMask
-static XSetWindowAttributes defAtts= {
+static const XSetWindowAttributes defAtts= {
None, /* background_pixmap */
0, /* background_pixel */
CopyFromParent, /* border_pixmap */
@@ -94,18 +94,18 @@ static XSetWindowAttributes defAtts= {
* The following structure defines all of the commands supported by Tk, and
* the C functions that execute them.
*/
+
+#define ISSAFE 1
+#define PASSMAINWINDOW 2
+#define NOOBJPROC 4
+#define WINMACONLY 8
+#define USEINITPROC 16
+
typedef int (TkInitProc)(Tcl_Interp *interp, ClientData clientData);
typedef struct {
- const char *name; /* Name of command. */
- Tcl_CmdProc *cmdProc; /* Command's string-based function. */
- Tcl_ObjCmdProc *objProc; /* Command's object-based function. */
- TkInitProc *initProc; /* Command's initialization function */
- int isSafe; /* If !0, this command will be exposed in a
- * safe interpreter. Otherwise it will be
- * hidden in a safe interpreter. */
- int passMainWindow; /* 0 means provide NULL clientData to command
- * function; 1 means pass main window as
- * clientData to command function. */
+ const char *name; /* Name of command. */
+ Tcl_ObjCmdProc *objProc; /* Command's object- (or string-) based function, or initProc. */
+ int flags;
} TkCmd;
static const TkCmd commands[] = {
@@ -113,72 +113,72 @@ static const TkCmd commands[] = {
* Commands that are part of the intrinsics:
*/
- {"bell", NULL, Tk_BellObjCmd, NULL, 0, 1},
- {"bind", NULL, Tk_BindObjCmd, NULL, 1, 1},
- {"bindtags", NULL, Tk_BindtagsObjCmd, NULL, 1, 1},
- {"clipboard", NULL, Tk_ClipboardObjCmd, NULL, 0, 1},
- {"destroy", NULL, Tk_DestroyObjCmd, NULL, 1, 1},
- {"event", NULL, Tk_EventObjCmd, NULL, 1, 1},
- {"focus", NULL, Tk_FocusObjCmd, NULL, 1, 1},
- {"font", NULL, Tk_FontObjCmd, NULL, 1, 1},
- {"grab", NULL, Tk_GrabObjCmd, NULL, 0, 1},
- {"grid", NULL, Tk_GridObjCmd, NULL, 1, 1},
- {"image", NULL, Tk_ImageObjCmd, NULL, 1, 1},
- {"lower", NULL, Tk_LowerObjCmd, NULL, 1, 1},
- {"option", NULL, Tk_OptionObjCmd, NULL, 1, 1},
- {"pack", NULL, Tk_PackObjCmd, NULL, 1, 1},
- {"place", NULL, Tk_PlaceObjCmd, NULL, 1, 1},
- {"raise", NULL, Tk_RaiseObjCmd, NULL, 1, 1},
- {"selection", NULL, Tk_SelectionObjCmd, NULL, 0, 1},
- {"tk", NULL, NULL, TkInitTkCmd, 1, 1},
- {"tkwait", NULL, Tk_TkwaitObjCmd, NULL, 1, 1},
- {"update", NULL, Tk_UpdateObjCmd, NULL, 1, 1},
- {"winfo", NULL, Tk_WinfoObjCmd, NULL, 1, 1},
- {"wm", NULL, Tk_WmObjCmd, NULL, 0, 1},
+ {"bell", Tk_BellObjCmd, PASSMAINWINDOW},
+ {"bind", Tk_BindObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"bindtags", Tk_BindtagsObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"clipboard", Tk_ClipboardObjCmd, PASSMAINWINDOW},
+ {"destroy", Tk_DestroyObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"event", Tk_EventObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"focus", Tk_FocusObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"font", Tk_FontObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"grab", Tk_GrabObjCmd, PASSMAINWINDOW},
+ {"grid", Tk_GridObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"image", Tk_ImageObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"lower", Tk_LowerObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"option", Tk_OptionObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"pack", Tk_PackObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"place", Tk_PlaceObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"raise", Tk_RaiseObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"selection", Tk_SelectionObjCmd, PASSMAINWINDOW},
+ {"tk", (Tcl_ObjCmdProc *) TkInitTkCmd, USEINITPROC|PASSMAINWINDOW|ISSAFE},
+ {"tkwait", Tk_TkwaitObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"update", Tk_UpdateObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"winfo", Tk_WinfoObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"wm", Tk_WmObjCmd, PASSMAINWINDOW},
/*
* Default widget class commands.
*/
- {"button", NULL, Tk_ButtonObjCmd, NULL, 1, 0},
- {"canvas", NULL, Tk_CanvasObjCmd, NULL, 1, 1},
- {"checkbutton", NULL, Tk_CheckbuttonObjCmd, NULL, 1, 0},
- {"entry", NULL, Tk_EntryObjCmd, NULL, 1, 0},
- {"frame", NULL, Tk_FrameObjCmd, NULL, 1, 0},
- {"label", NULL, Tk_LabelObjCmd, NULL, 1, 0},
- {"labelframe", NULL, Tk_LabelframeObjCmd, NULL, 1, 0},
- {"listbox", NULL, Tk_ListboxObjCmd, NULL, 1, 0},
- {"menubutton", NULL, Tk_MenubuttonObjCmd, NULL, 1, 0},
- {"message", NULL, Tk_MessageObjCmd, NULL, 1, 0},
- {"panedwindow", NULL, Tk_PanedWindowObjCmd, NULL, 1, 0},
- {"radiobutton", NULL, Tk_RadiobuttonObjCmd, NULL, 1, 0},
- {"scale", NULL, Tk_ScaleObjCmd, NULL, 1, 0},
- {"scrollbar", Tk_ScrollbarCmd,NULL, NULL, 1, 1},
- {"spinbox", NULL, Tk_SpinboxObjCmd, NULL, 1, 0},
- {"text", NULL, Tk_TextObjCmd, NULL, 1, 1},
- {"toplevel", NULL, Tk_ToplevelObjCmd, NULL, 0, 0},
+ {"button", Tk_ButtonObjCmd, ISSAFE},
+ {"canvas", Tk_CanvasObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"checkbutton", Tk_CheckbuttonObjCmd, ISSAFE},
+ {"entry", Tk_EntryObjCmd, ISSAFE},
+ {"frame", Tk_FrameObjCmd, ISSAFE},
+ {"label", Tk_LabelObjCmd, ISSAFE},
+ {"labelframe", Tk_LabelframeObjCmd, ISSAFE},
+ {"listbox", Tk_ListboxObjCmd, ISSAFE},
+ {"menubutton", Tk_MenubuttonObjCmd, ISSAFE},
+ {"message", Tk_MessageObjCmd, ISSAFE},
+ {"panedwindow", Tk_PanedWindowObjCmd, ISSAFE},
+ {"radiobutton", Tk_RadiobuttonObjCmd, ISSAFE},
+ {"scale", Tk_ScaleObjCmd, ISSAFE},
+ {"scrollbar", (Tcl_ObjCmdProc *) Tk_ScrollbarCmd, NOOBJPROC|PASSMAINWINDOW|ISSAFE},
+ {"spinbox", Tk_SpinboxObjCmd, ISSAFE},
+ {"text", Tk_TextObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"toplevel", Tk_ToplevelObjCmd, 0},
/*
* Classic widget class commands.
*/
- {"::tk::button", NULL, Tk_ButtonObjCmd, NULL, 1, 0},
- {"::tk::canvas", NULL, Tk_CanvasObjCmd, NULL, 1, 1},
- {"::tk::checkbutton",NULL, Tk_CheckbuttonObjCmd, NULL, 1, 0},
- {"::tk::entry", NULL, Tk_EntryObjCmd, NULL, 1, 0},
- {"::tk::frame", NULL, Tk_FrameObjCmd, NULL, 1, 0},
- {"::tk::label", NULL, Tk_LabelObjCmd, NULL, 1, 0},
- {"::tk::labelframe",NULL, Tk_LabelframeObjCmd, NULL, 1, 0},
- {"::tk::listbox", NULL, Tk_ListboxObjCmd, NULL, 1, 0},
- {"::tk::menubutton",NULL, Tk_MenubuttonObjCmd, NULL, 1, 0},
- {"::tk::message", NULL, Tk_MessageObjCmd, NULL, 1, 0},
- {"::tk::panedwindow",NULL, Tk_PanedWindowObjCmd, NULL, 1, 0},
- {"::tk::radiobutton",NULL, Tk_RadiobuttonObjCmd, NULL, 1, 0},
- {"::tk::scale", NULL, Tk_ScaleObjCmd, NULL, 1, 0},
- {"::tk::scrollbar", Tk_ScrollbarCmd,NULL, NULL, 1, 1},
- {"::tk::spinbox", NULL, Tk_SpinboxObjCmd, NULL, 1, 0},
- {"::tk::text", NULL, Tk_TextObjCmd, NULL, 1, 1},
- {"::tk::toplevel", NULL, Tk_ToplevelObjCmd, NULL, 0, 0},
+ {"::tk::button", Tk_ButtonObjCmd, ISSAFE},
+ {"::tk::canvas", Tk_CanvasObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"::tk::checkbutton",Tk_CheckbuttonObjCmd, ISSAFE},
+ {"::tk::entry", Tk_EntryObjCmd, ISSAFE},
+ {"::tk::frame", Tk_FrameObjCmd, ISSAFE},
+ {"::tk::label", Tk_LabelObjCmd, ISSAFE},
+ {"::tk::labelframe",Tk_LabelframeObjCmd, ISSAFE},
+ {"::tk::listbox", Tk_ListboxObjCmd, ISSAFE},
+ {"::tk::menubutton",Tk_MenubuttonObjCmd, ISSAFE},
+ {"::tk::message", Tk_MessageObjCmd, ISSAFE},
+ {"::tk::panedwindow",Tk_PanedWindowObjCmd, ISSAFE},
+ {"::tk::radiobutton",Tk_RadiobuttonObjCmd, ISSAFE},
+ {"::tk::scale", Tk_ScaleObjCmd, ISSAFE},
+ {"::tk::scrollbar", (Tcl_ObjCmdProc *) Tk_ScrollbarCmd, NOOBJPROC|PASSMAINWINDOW|ISSAFE},
+ {"::tk::spinbox", Tk_SpinboxObjCmd, ISSAFE},
+ {"::tk::text", Tk_TextObjCmd, PASSMAINWINDOW|ISSAFE},
+ {"::tk::toplevel", Tk_ToplevelObjCmd, 0},
/*
* Standard dialog support. Note that the Unix/X11 platform implements
@@ -186,11 +186,11 @@ static const TkCmd commands[] = {
*/
#if defined(__WIN32__) || defined(MAC_OSX_TK)
- {"tk_chooseColor", NULL, Tk_ChooseColorObjCmd, NULL, 0, 1},
- {"tk_chooseDirectory", NULL, Tk_ChooseDirectoryObjCmd,NULL, 0,1},
- {"tk_getOpenFile", NULL, Tk_GetOpenFileObjCmd, NULL, 0, 1},
- {"tk_getSaveFile", NULL, Tk_GetSaveFileObjCmd, NULL, 0, 1},
- {"tk_messageBox", NULL, Tk_MessageBoxObjCmd, NULL, 0, 1},
+ {"tk_chooseColor", Tk_ChooseColorObjCmd, PASSMAINWINDOW},
+ {"tk_chooseDirectory", Tk_ChooseDirectoryObjCmd,WINMACONLY|PASSMAINWINDOW},
+ {"tk_getOpenFile", Tk_GetOpenFileObjCmd, WINMACONLY|PASSMAINWINDOW},
+ {"tk_getSaveFile", Tk_GetSaveFileObjCmd, WINMACONLY|PASSMAINWINDOW},
+ {"tk_messageBox", Tk_MessageBoxObjCmd, PASSMAINWINDOW},
#endif
/*
@@ -199,9 +199,9 @@ static const TkCmd commands[] = {
#if defined(MAC_OSX_TK)
{"::tk::unsupported::MacWindowStyle",
- NULL, TkUnsupported1ObjCmd, NULL, 1, 1},
+ TkUnsupported1ObjCmd, PASSMAINWINDOW|ISSAFE},
#endif
- {NULL, NULL, NULL, NULL, 0, 0}
+ {NULL, NULL, 0}
};
/*
@@ -949,26 +949,31 @@ TkCreateMainWindow(
isSafe = Tcl_IsSafe(interp);
for (cmdPtr = commands; cmdPtr->name != NULL; cmdPtr++) {
- if ((cmdPtr->cmdProc == NULL) && (cmdPtr->objProc == NULL)
- && (cmdPtr->initProc == NULL)) {
+ if ((cmdPtr->objProc == NULL)) {
Tcl_Panic("TkCreateMainWindow: builtin command with NULL string and object procs");
}
- if (cmdPtr->passMainWindow) {
+#if defined(__WIN32__) && !defined(STATIC_BUILD)
+ if ((cmdPtr->flags & WINMACONLY) && tclStubsPtr->reserved9) {
+ /* We are running on Cygwin, so don't use the win32 dialogs */
+ continue;
+ }
+#endif
+ if (cmdPtr->flags & PASSMAINWINDOW) {
clientData = tkwin;
} else {
clientData = NULL;
}
- if (cmdPtr->initProc != NULL) {
- cmdPtr->initProc(interp, clientData);
- } else if (cmdPtr->cmdProc != NULL) {
- Tcl_CreateCommand(interp, cmdPtr->name, cmdPtr->cmdProc,
- clientData, NULL);
+ if (cmdPtr->flags & USEINITPROC) {
+ ((TkInitProc *)cmdPtr->objProc)(interp, clientData);
+ } else if (cmdPtr->flags & NOOBJPROC) {
+ Tcl_CreateCommand(interp, cmdPtr->name,
+ (Tcl_CmdProc *) cmdPtr->objProc, clientData, NULL);
} else {
Tcl_CreateObjCommand(interp, cmdPtr->name, cmdPtr->objProc,
clientData, NULL);
}
if (isSafe) {
- if (!(cmdPtr->isSafe)) {
+ if (!(cmdPtr->flags & ISSAFE)) {
Tcl_HideCommand(interp, cmdPtr->name, cmdPtr->name);
}
}
@@ -2828,6 +2833,51 @@ DeleteWindowsExitProc(
tsdPtr->initialized = 0;
}
+#if defined(__WIN32__) && !defined(__WIN64__)
+
+static HMODULE tkcygwindll = NULL;
+
+/*
+ * Run Tk_MainEx from libtk8.?.dll
+ *
+ * This function is only ever called from wish8.4.exe, the cygwin
+ * port of Tcl. This means that the system encoding is utf-8,
+ * so we don't have to do any encoding conversions.
+ */
+int
+TkCygwinMainEx(argc, argv, appInitProc, interp)
+ int argc; /* Number of arguments. */
+ char **argv; /* Array of argument strings. */
+ Tcl_AppInitProc *appInitProc; /* Application-specific initialization
+ * procedure to call after most
+ * initialization but before starting
+ * to execute commands. */
+ Tcl_Interp *interp;
+{
+ TCHAR name[MAX_PATH];
+ int len;
+ void (*sym)(int, char **, Tcl_AppInitProc *, Tcl_Interp *);
+
+ /* construct "<path>/libtk8.?.dll", from "<path>/tk8?.dll" */
+ len = GetModuleFileNameW(Tk_GetHINSTANCE(), name, MAX_PATH);
+ name[len-2] = TEXT('.');
+ name[len-1] = name[len-5];
+ _tcscpy(name+len, TEXT(".dll"));
+ memcpy(name+len-8, TEXT("libtk8"), 6 * sizeof(TCHAR));
+
+ tkcygwindll = LoadLibrary(name);
+ if (!tkcygwindll) {
+ /* dll is not present */
+ return 0;
+ }
+ sym = (void (*)(int, char **, Tcl_AppInitProc *, Tcl_Interp *)) GetProcAddress(tkcygwindll, "Tk_MainEx");
+ if (!sym) {
+ return 0;
+ }
+ sym(argc, argv, appInitProc, interp);
+ return 1;
+}
+#endif
/*
*----------------------------------------------------------------------
*
@@ -2855,6 +2905,16 @@ int
Tk_Init(
Tcl_Interp *interp) /* Interpreter to initialize. */
{
+#if defined(__WIN32__) && !defined(__WIN64__)
+ if (tkcygwindll) {
+ int (*sym)(Tcl_Interp *);
+
+ sym = (int (*)(Tcl_Interp *)) GetProcAddress(tkcygwindll, "Tk_Init");
+ if (sym) {
+ return sym(interp);
+ }
+ }
+#endif
return Initialize(interp);
}
@@ -2918,6 +2978,16 @@ Tk_SafeInit(
* checked at several places to differentiate the two initialisations.
*/
+#if defined(__WIN32__) && !defined(__WIN64__)
+ if (tkcygwindll) {
+ int (*sym)(Tcl_Interp *);
+
+ sym = (int (*)(Tcl_Interp *)) GetProcAddress(tkcygwindll, "Tk_SafeInit");
+ if (sym) {
+ return sym(interp);
+ }
+ }
+#endif
return Initialize(interp);
}
diff --git a/generic/ttk/ttk.decls b/generic/ttk/ttk.decls
index 4567135..e668a2a 100644
--- a/generic/ttk/ttk.decls
+++ b/generic/ttk/ttk.decls
@@ -1,7 +1,3 @@
-#
-# $Id: ttk.decls,v 1.6 2010/09/20 21:18:23 nijtmans Exp $
-#
-
library ttk
interface ttk
epoch 0
diff --git a/generic/ttk/ttkBlink.c b/generic/ttk/ttkBlink.c
index 3829619..706a871 100644
--- a/generic/ttk/ttkBlink.c
+++ b/generic/ttk/ttkBlink.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkBlink.c,v 1.2 2006/11/03 03:06:21 das Exp $
- *
* Copyright 2004, Joe English.
*
* Usage:
diff --git a/generic/ttk/ttkButton.c b/generic/ttk/ttkButton.c
index 1510a1e..2954184 100644
--- a/generic/ttk/ttkButton.c
+++ b/generic/ttk/ttkButton.c
@@ -1,4 +1,4 @@
-/* $Id: ttkButton.c,v 1.13 2010/02/05 17:42:21 nijtmans Exp $
+/*
* Copyright (c) 2003, Joe English
*
* label, button, checkbutton, radiobutton, and menubutton widgets.
@@ -244,6 +244,7 @@ static Tk_OptionSpec LabelOptionSpecs[] =
NULL, Tk_Offset(Label, label.wrapLengthObj), -1,
TK_OPTION_NULL_OK,0,GEOMETRY_CHANGED /*SB: SIZE_CHANGED*/ },
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(BaseOptionSpecs)
};
@@ -301,14 +302,13 @@ typedef struct
*/
static Tk_OptionSpec ButtonOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-command", "command", "Command",
"", Tk_Offset(Button, button.commandObj), -1, 0,0,0},
{TK_OPTION_STRING_TABLE, "-default", "default", "Default",
"normal", Tk_Offset(Button, button.defaultStateObj), -1,
0, (ClientData) ttkDefaultStrings, DEFAULTSTATE_CHANGED},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(BaseOptionSpecs)
};
@@ -412,8 +412,6 @@ typedef struct
*/
static Tk_OptionSpec CheckbuttonOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-variable", "variable", "Variable",
"", Tk_Offset(Checkbutton, checkbutton.variableObj), -1,
TK_OPTION_DONT_SET_DEFAULT,0,0},
@@ -427,6 +425,7 @@ static Tk_OptionSpec CheckbuttonOptionSpecs[] =
"", Tk_Offset(Checkbutton, checkbutton.commandObj), -1,
0,0,0},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(BaseOptionSpecs)
};
@@ -613,8 +612,6 @@ typedef struct
*/
static Tk_OptionSpec RadiobuttonOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-variable", "variable", "Variable",
"::selectedButton", Tk_Offset(Radiobutton, radiobutton.variableObj),-1,
0,0,0},
@@ -625,6 +622,7 @@ static Tk_OptionSpec RadiobuttonOptionSpecs[] =
"", Tk_Offset(Radiobutton, radiobutton.commandObj), -1,
0,0,0},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(BaseOptionSpecs)
};
@@ -789,14 +787,13 @@ static const char *const directionStrings[] = {
};
static Tk_OptionSpec MenubuttonOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-menu", "menu", "Menu",
"", Tk_Offset(Menubutton, menubutton.menuObj), -1, 0,0,0},
{TK_OPTION_STRING_TABLE, "-direction", "direction", "Direction",
"below", Tk_Offset(Menubutton, menubutton.directionObj), -1,
0,(ClientData)directionStrings,GEOMETRY_CHANGED},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(BaseOptionSpecs)
};
diff --git a/generic/ttk/ttkCache.c b/generic/ttk/ttkCache.c
index 9163beb..39c76e0 100644
--- a/generic/ttk/ttkCache.c
+++ b/generic/ttk/ttkCache.c
@@ -1,5 +1,4 @@
/*
- * $Id: ttkCache.c,v 1.3 2009/02/08 19:35:35 jenglish Exp $
* Theme engine resource cache.
*
* Copyright (c) 2004, Joe English
diff --git a/generic/ttk/ttkClamTheme.c b/generic/ttk/ttkClamTheme.c
index 95ce5d1..572f630 100644
--- a/generic/ttk/ttkClamTheme.c
+++ b/generic/ttk/ttkClamTheme.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkClamTheme.c,v 1.11 2010/01/22 14:17:53 nijtmans Exp $
- *
* Copyright (C) 2004 Joe English
*
* "clam" theme; inspired by the XFCE family of Gnome themes.
diff --git a/generic/ttk/ttkClassicTheme.c b/generic/ttk/ttkClassicTheme.c
index d81d204..2fbcd76 100644
--- a/generic/ttk/ttkClassicTheme.c
+++ b/generic/ttk/ttkClassicTheme.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkClassicTheme.c,v 1.8 2010/01/22 14:17:53 nijtmans Exp $
- *
* Copyright (c) 2004, Joe English
*
* "classic" theme; implements the classic Motif-like Tk look.
diff --git a/generic/ttk/ttkDecls.h b/generic/ttk/ttkDecls.h
index 2f30835..3ff2f62 100644
--- a/generic/ttk/ttkDecls.h
+++ b/generic/ttk/ttkDecls.h
@@ -1,6 +1,4 @@
/*
- * $Id: ttkDecls.h,v 1.15 2010/08/19 05:05:55 nijtmans Exp $
- *
* This file is (mostly) automatically generated from ttk.decls.
*/
diff --git a/generic/ttk/ttkDefaultTheme.c b/generic/ttk/ttkDefaultTheme.c
index e39a960..d2deee8 100644
--- a/generic/ttk/ttkDefaultTheme.c
+++ b/generic/ttk/ttkDefaultTheme.c
@@ -1,5 +1,4 @@
-/* $Id: ttkDefaultTheme.c,v 1.17 2010/02/05 21:33:14 jenglish Exp $
- *
+/*
* Copyright (c) 2003, Joe English
*
* Tk alternate theme, intended to match the MSUE and Gtk's (old) default theme
diff --git a/generic/ttk/ttkElements.c b/generic/ttk/ttkElements.c
index ba0034a..22af1d6 100644
--- a/generic/ttk/ttkElements.c
+++ b/generic/ttk/ttkElements.c
@@ -1,5 +1,4 @@
-/* $Id: ttkElements.c,v 1.12 2010/01/22 14:17:53 nijtmans Exp $
- *
+/*
* Copyright (c) 2003, Joe English
*
* Default implementation for themed elements.
diff --git a/generic/ttk/ttkEntry.c b/generic/ttk/ttkEntry.c
index 5e73495..a3d0179 100644
--- a/generic/ttk/ttkEntry.c
+++ b/generic/ttk/ttkEntry.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkEntry.c,v 1.21 2011/01/22 18:49:34 jenglish Exp $
- *
* DERIVED FROM: tk/generic/tkEntry.c r1.35.
*
* Copyright (c) 1990-1994 The Regents of the University of California.
@@ -12,7 +10,7 @@
#include <string.h>
#include <stdio.h>
-#include <tk.h>
+#include <tkInt.h>
#include <X11/Xatom.h>
#include "ttkTheme.h"
@@ -157,8 +155,6 @@ typedef struct {
#define DEF_LIST_HEIGHT "10"
static Tk_OptionSpec EntryOptionSpecs[] = {
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_BOOLEAN, "-exportselection", "exportSelection",
"ExportSelection", "1", -1, Tk_Offset(Entry, entry.exportSelection),
0,0,0 },
@@ -202,6 +198,7 @@ static Tk_OptionSpec EntryOptionSpecs[] = {
NULL, Tk_Offset(Entry, entry.styleData.backgroundObj), -1,
TK_OPTION_NULL_OK,0,0},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
@@ -1138,13 +1135,14 @@ EntryDoLayout(void *recordPtr)
* Get a GC using the specified foreground color and the entry's font.
* Result must be freed with Tk_FreeGC().
*/
-static GC EntryGetGC(Entry *entryPtr, Tcl_Obj *colorObj)
+static GC EntryGetGC(Entry *entryPtr, Tcl_Obj *colorObj, TkRegion clip)
{
Tk_Window tkwin = entryPtr->core.tkwin;
Tk_Font font = Tk_GetFontFromObj(tkwin, entryPtr->entry.fontObj);
XColor *colorPtr;
unsigned long mask = 0ul;
XGCValues gcValues;
+ GC gc;
gcValues.line_width = 1; mask |= GCLineWidth;
gcValues.font = Tk_FontId(font); mask |= GCFont;
@@ -1152,7 +1150,9 @@ static GC EntryGetGC(Entry *entryPtr, Tcl_Obj *colorObj)
gcValues.foreground = colorPtr->pixel;
mask |= GCForeground;
}
- return Tk_GetGC(entryPtr->core.tkwin, mask, &gcValues);
+ gc = Tk_GetGC(entryPtr->core.tkwin, mask, &gcValues);
+ TkSetRegion(Tk_Display(entryPtr->core.tkwin), gc, clip);
+ return gc;
}
/* EntryDisplay --
@@ -1163,15 +1163,19 @@ static void EntryDisplay(void *clientData, Drawable d)
Entry *entryPtr = clientData;
Tk_Window tkwin = entryPtr->core.tkwin;
int leftIndex = entryPtr->entry.xscroll.first,
- rightIndex = entryPtr->entry.xscroll.last,
+ rightIndex = entryPtr->entry.xscroll.last + 1,
selFirst = entryPtr->entry.selectFirst,
selLast = entryPtr->entry.selectLast;
EntryStyleData es;
GC gc;
int showSelection, showCursor;
+ Ttk_Box textarea;
+ TkRegion clipRegion;
+ XRectangle rect;
EntryInitStyleData(entryPtr, &es);
+ textarea = Ttk_ClientRegion(entryPtr->core.layout, "textarea");
showCursor =
(entryPtr->core.flags & CURSOR_ON) != 0
&& EntryEditable(entryPtr)
@@ -1217,6 +1221,20 @@ static void EntryDisplay(void *clientData, Drawable d)
}
}
+ /* Initialize the clip region. Note that Xft does _not_ derive its
+ * clipping area from the GC, so we have to supply that by other means.
+ */
+
+ rect.x = textarea.x;
+ rect.y = textarea.y;
+ rect.width = textarea.width;
+ rect.height = textarea.height;
+ clipRegion = TkCreateRegion();
+ TkUnionRectWithRegion(&rect, clipRegion, clipRegion);
+#ifdef HAVE_XFT
+ TkUnixSetXftClipRegion(clipRegion);
+#endif
+
/* Draw cursor:
*/
if (showCursor) {
@@ -1233,7 +1251,7 @@ static void EntryDisplay(void *clientData, Drawable d)
/* @@@ should: maybe: SetCaretPos even when blinked off */
Tk_SetCaretPos(tkwin, cursorX, cursorY, cursorHeight);
- gc = EntryGetGC(entryPtr, es.insertColorObj);
+ gc = EntryGetGC(entryPtr, es.insertColorObj, clipRegion);
XFillRectangle(Tk_Display(tkwin), d, gc,
cursorX-cursorWidth/2, cursorY, cursorWidth, cursorHeight);
Tk_FreeGC(Tk_Display(tkwin), gc);
@@ -1241,7 +1259,7 @@ static void EntryDisplay(void *clientData, Drawable d)
/* Draw the text:
*/
- gc = EntryGetGC(entryPtr, es.foregroundObj);
+ gc = EntryGetGC(entryPtr, es.foregroundObj, clipRegion);
Tk_DrawTextLayout(
Tk_Display(tkwin), d, gc, entryPtr->entry.textLayout,
entryPtr->entry.layoutX, entryPtr->entry.layoutY,
@@ -1251,13 +1269,21 @@ static void EntryDisplay(void *clientData, Drawable d)
/* Overwrite the selected portion (if any) in the -selectforeground color:
*/
if (showSelection) {
- gc = EntryGetGC(entryPtr, es.selForegroundObj);
+ gc = EntryGetGC(entryPtr, es.selForegroundObj, clipRegion);
Tk_DrawTextLayout(
Tk_Display(tkwin), d, gc, entryPtr->entry.textLayout,
entryPtr->entry.layoutX, entryPtr->entry.layoutY,
selFirst, selLast);
Tk_FreeGC(Tk_Display(tkwin), gc);
}
+
+ /* Drop the region. Note that we have to manually remove the reference to
+ * it from the Xft guts (if they're being used).
+ */
+#ifdef HAVE_XFT
+ TkUnixSetXftClipRegion(None);
+#endif
+ TkDestroyRegion(clipRegion);
}
/*------------------------------------------------------------------------
diff --git a/generic/ttk/ttkFrame.c b/generic/ttk/ttkFrame.c
index cf22cda..7860024 100644
--- a/generic/ttk/ttkFrame.c
+++ b/generic/ttk/ttkFrame.c
@@ -1,4 +1,4 @@
-/* $Id: ttkFrame.c,v 1.15 2010/01/31 22:50:55 jenglish Exp $
+/*
* Copyright (c) 2004, Joe English
*
* ttk::frame and ttk::labelframe widgets.
@@ -44,6 +44,7 @@ static Tk_OptionSpec FrameOptionSpecs[] = {
Tk_Offset(Frame,frame.heightObj), -1,
0,0,GEOMETRY_CHANGED },
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkGenStubs.tcl b/generic/ttk/ttkGenStubs.tcl
index a11ca8a..269d3ef 100644
--- a/generic/ttk/ttkGenStubs.tcl
+++ b/generic/ttk/ttkGenStubs.tcl
@@ -10,8 +10,6 @@
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
-# RCS: @(#) $Id: ttkGenStubs.tcl,v 1.11 2010/09/23 11:50:46 nijtmans Exp $
-#
# SOURCE: tcl/tools/genStubs.tcl, revision 1.44
#
# CHANGES:
diff --git a/generic/ttk/ttkImage.c b/generic/ttk/ttkImage.c
index e9428ec..0de5fc0 100644
--- a/generic/ttk/ttkImage.c
+++ b/generic/ttk/ttkImage.c
@@ -1,4 +1,4 @@
-/* $Id: ttkImage.c,v 1.10 2010/02/05 21:33:14 jenglish Exp $
+/*
* Image specifications and image element factory.
*
* Copyright (C) 2004 Pat Thoyts <patthoyts@users.sf.net>
@@ -314,7 +314,7 @@ Ttk_CreateImageElement(
const char *elementName,
int objc, Tcl_Obj *const objv[])
{
- const char *optionStrings[] =
+ static const char *optionStrings[] =
{ "-border","-height","-padding","-sticky","-width",NULL };
enum { O_BORDER, O_HEIGHT, O_PADDING, O_STICKY, O_WIDTH };
diff --git a/generic/ttk/ttkInit.c b/generic/ttk/ttkInit.c
index dd7ca3a..78676c6 100644
--- a/generic/ttk/ttkInit.c
+++ b/generic/ttk/ttkInit.c
@@ -1,4 +1,4 @@
-/* $Id: ttkInit.c,v 1.12 2010/02/05 21:33:14 jenglish Exp $
+/*
* Copyright (c) 2003, Joe English
*
* Ttk package: initialization routine and miscellaneous utilities.
@@ -177,8 +177,6 @@ int TtkGetOptionValue(
/* public */
Tk_OptionSpec ttkCoreOptionSpecs[] =
{
- {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus",
- "", Tk_Offset(WidgetCore, takeFocusPtr), -1, 0,0,0 },
{TK_OPTION_CURSOR, "-cursor", "cursor", "Cursor", NULL,
Tk_Offset(WidgetCore, cursorObj), -1, TK_OPTION_NULL_OK,0,0 },
{TK_OPTION_STRING, "-style", "style", "Style", "",
diff --git a/generic/ttk/ttkLabel.c b/generic/ttk/ttkLabel.c
index 6a8c23f..5102baf 100644
--- a/generic/ttk/ttkLabel.c
+++ b/generic/ttk/ttkLabel.c
@@ -1,5 +1,4 @@
-/* $Id: ttkLabel.c,v 1.14 2011/01/14 23:43:10 wordtech Exp $
- *
+/*
* text, image, and label elements.
*
* The label element combines text and image elements,
@@ -8,7 +7,7 @@
*/
#include <tcl.h>
-#include <tk.h>
+#include <tkInt.h>
#include "ttkTheme.h"
/*----------------------------------------------------------------------
@@ -129,10 +128,10 @@ static void TextDraw(TextElement *text, Tk_Window tkwin, Drawable d, Ttk_Box b)
{
XColor *color = Tk_GetColorFromObj(tkwin, text->foregroundObj);
int underline = -1;
- int lastChar = -1;
XGCValues gcValues;
GC gc1, gc2;
Tk_Anchor anchor = TK_ANCHOR_CENTER;
+ TkRegion clipRegion = NULL;
gcValues.font = Tk_FontId(text->tkfont);
gcValues.foreground = color->pixel;
@@ -148,21 +147,34 @@ static void TextDraw(TextElement *text, Tk_Window tkwin, Drawable d, Ttk_Box b)
/*
* Clip text if it's too wide:
- * @@@ BUG: This will overclip multi-line text.
*/
if (b.width < text->width) {
- lastChar = Tk_PointToChar(text->textLayout, b.width, 1) + 1;
+ XRectangle rect;
+
+ clipRegion = TkCreateRegion();
+ rect.x = b.x;
+ rect.y = b.y;
+ rect.width = b.width + (text->embossed ? 1 : 0);
+ rect.height = b.height + (text->embossed ? 1 : 0);
+ TkUnionRectWithRegion(&rect, clipRegion, clipRegion);
+ TkSetRegion(Tk_Display(tkwin), gc1, clipRegion);
+ TkSetRegion(Tk_Display(tkwin), gc2, clipRegion);
+#ifdef HAVE_XFT
+ TkUnixSetXftClipRegion(clipRegion);
+#else
+ TkDestroyRegion(clipRegion);
+#endif
}
if (text->embossed) {
Tk_DrawTextLayout(Tk_Display(tkwin), d, gc2,
- text->textLayout, b.x+1, b.y+1, 0/*firstChar*/, lastChar);
+ text->textLayout, b.x+1, b.y+1, 0/*firstChar*/, -1/*lastChar*/);
}
Tk_DrawTextLayout(Tk_Display(tkwin), d, gc1,
- text->textLayout, b.x, b.y, 0/*firstChar*/, lastChar);
+ text->textLayout, b.x, b.y, 0/*firstChar*/, -1/*lastChar*/);
Tcl_GetIntFromObj(NULL, text->underlineObj, &underline);
- if (underline >= 0 && (lastChar == -1 || underline <= lastChar)) {
+ if (underline >= 0) {
if (text->embossed) {
Tk_UnderlineTextLayout(Tk_Display(tkwin), d, gc2,
text->textLayout, b.x+1, b.y+1, underline);
@@ -173,6 +185,12 @@ static void TextDraw(TextElement *text, Tk_Window tkwin, Drawable d, Ttk_Box b)
Tk_FreeGC(Tk_Display(tkwin), gc1);
Tk_FreeGC(Tk_Display(tkwin), gc2);
+#ifdef HAVE_XFT
+ if (clipRegion != NULL) {
+ TkUnixSetXftClipRegion(None);
+ TkDestroyRegion(clipRegion);
+ }
+#endif
}
static void TextElementSize(
@@ -333,9 +351,9 @@ static void ImageDraw(
if (state & TTK_STATE_DISABLED) {
if (TtkSelectImage(image->imageSpec, 0ul) == image->tkimg) {
- #ifndef MAC_OSX_TK
+#ifndef MAC_OSX_TK
StippleOver(image, tkwin, d, b.x,b.y);
- #endif
+#endif
}
}
}
diff --git a/generic/ttk/ttkLayout.c b/generic/ttk/ttkLayout.c
index 6eaf6bb..d248dcb 100644
--- a/generic/ttk/ttkLayout.c
+++ b/generic/ttk/ttkLayout.c
@@ -4,8 +4,6 @@
* Generic layout processing.
*
* Copyright (c) 2003 Joe English. Freely redistributable.
- *
- * $Id: ttkLayout.c,v 1.18 2010/02/05 21:33:14 jenglish Exp $
*/
#include <string.h>
diff --git a/generic/ttk/ttkManager.c b/generic/ttk/ttkManager.c
index cd10711..256573f 100644
--- a/generic/ttk/ttkManager.c
+++ b/generic/ttk/ttkManager.c
@@ -1,5 +1,4 @@
-/* $Id: ttkManager.c,v 1.6 2007/12/13 15:26:26 dgp Exp $
- *
+/*
* Copyright 2005, Joe English. Freely redistributable.
*
* Support routines for geometry managers.
diff --git a/generic/ttk/ttkManager.h b/generic/ttk/ttkManager.h
index 46ef832..d22ff98 100644
--- a/generic/ttk/ttkManager.h
+++ b/generic/ttk/ttkManager.h
@@ -1,5 +1,4 @@
-/* $Id: ttkManager.h,v 1.9 2007/12/13 15:26:26 dgp Exp $
- *
+/*
* Copyright (c) 2005, Joe English. Freely redistributable.
*
* Geometry manager utilities.
diff --git a/generic/ttk/ttkNotebook.c b/generic/ttk/ttkNotebook.c
index 9c4d38f..551f4a6 100644
--- a/generic/ttk/ttkNotebook.c
+++ b/generic/ttk/ttkNotebook.c
@@ -1,4 +1,4 @@
-/* $Id: ttkNotebook.c,v 1.25 2010/02/05 21:33:14 jenglish Exp $
+/*
* Copyright (c) 2004, Joe English
*/
@@ -113,8 +113,6 @@ typedef struct
static Tk_OptionSpec NotebookOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_INT, "-width", "width", "Width", "0",
Tk_Offset(Notebook,notebook.widthObj),-1,
0,0,GEOMETRY_CHANGED },
@@ -125,6 +123,7 @@ static Tk_OptionSpec NotebookOptionSpecs[] =
Tk_Offset(Notebook,notebook.paddingObj),-1,
TK_OPTION_NULL_OK,0,GEOMETRY_CHANGED },
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkPanedwindow.c b/generic/ttk/ttkPanedwindow.c
index e6cfc79..b301372 100644
--- a/generic/ttk/ttkPanedwindow.c
+++ b/generic/ttk/ttkPanedwindow.c
@@ -1,5 +1,4 @@
-/* $Id: ttkPanedwindow.c,v 1.22 2010/02/05 21:33:14 jenglish Exp $
- *
+/*
* Copyright (c) 2005, Joe English. Freely redistributable.
*
* ttk::panedwindow widget implementation.
@@ -87,6 +86,7 @@ static Tk_OptionSpec PanedOptionSpecs[] = {
-1,Tk_Offset(Paned,paned.height),
0,0,GEOMETRY_CHANGED },
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
@@ -713,7 +713,7 @@ static int PanedForgetCommand(
static int PanedIdentifyCommand(
void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
{
- const char *whatTable[] = { "element", "sash", NULL };
+ static const char *whatTable[] = { "element", "sash", NULL };
enum { IDENTIFY_ELEMENT, IDENTIFY_SASH };
int what = IDENTIFY_SASH;
Paned *pw = recordPtr;
diff --git a/generic/ttk/ttkProgress.c b/generic/ttk/ttkProgress.c
index 0ea3576..4dc50a2 100644
--- a/generic/ttk/ttkProgress.c
+++ b/generic/ttk/ttkProgress.c
@@ -1,5 +1,4 @@
-/* $Id: ttkProgress.c,v 1.10 2010/02/05 17:42:21 nijtmans Exp $
- *
+/*
* Copyright (c) Joe English, Pat Thoyts, Michael Kirkham
*
* ttk::progressbar widget.
@@ -69,6 +68,8 @@ static Tk_OptionSpec ProgressbarOptionSpecs[] =
{TK_OPTION_INT, "-phase", "phase", "Phase",
"0", Tk_Offset(Progressbar,progress.phaseObj), -1,
0, 0, 0 },
+
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkScale.c b/generic/ttk/ttkScale.c
index 619401f..69753d1 100644
--- a/generic/ttk/ttkScale.c
+++ b/generic/ttk/ttkScale.c
@@ -1,4 +1,4 @@
-/* $Id: ttkScale.c,v 1.11 2010/01/31 22:50:56 jenglish Exp $
+/*
* Copyright (C) 2004 Pat Thoyts <patthoyts@users.sourceforge.net>
*
* ttk::scale widget.
@@ -45,8 +45,6 @@ typedef struct
static Tk_OptionSpec ScaleOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-command", "command", "Command", "",
Tk_Offset(Scale,scale.commandObj), -1,
TK_OPTION_NULL_OK,0,0},
@@ -68,6 +66,7 @@ static Tk_OptionSpec ScaleOptionSpecs[] =
DEF_SCALE_LENGTH, Tk_Offset(Scale,scale.lengthObj), -1, 0, 0,
GEOMETRY_CHANGED},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkScroll.c b/generic/ttk/ttkScroll.c
index a25a2f3..c02b868 100644
--- a/generic/ttk/ttkScroll.c
+++ b/generic/ttk/ttkScroll.c
@@ -1,5 +1,4 @@
-/* $Id: ttkScroll.c,v 1.6 2008/08/19 14:47:55 jenglish Exp $
- *
+/*
* Copyright 2004, Joe English
*
* Support routines for scrollable widgets.
diff --git a/generic/ttk/ttkScrollbar.c b/generic/ttk/ttkScrollbar.c
index c467b07..5b0c212 100644
--- a/generic/ttk/ttkScrollbar.c
+++ b/generic/ttk/ttkScrollbar.c
@@ -1,4 +1,4 @@
-/* $Id: ttkScrollbar.c,v 1.11 2010/01/31 22:50:56 jenglish Exp $
+/*
* Copyright (c) 2003, Joe English
*
* ttk::scrollbar widget.
@@ -42,6 +42,7 @@ static Tk_OptionSpec ScrollbarOptionSpecs[] =
Tk_Offset(Scrollbar,scrollbar.orient),
0,(ClientData)ttkOrientStrings,STYLE_CHANGED },
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkSeparator.c b/generic/ttk/ttkSeparator.c
index cfa53dc..b52e6f4 100644
--- a/generic/ttk/ttkSeparator.c
+++ b/generic/ttk/ttkSeparator.c
@@ -1,5 +1,4 @@
-/* $Id: ttkSeparator.c,v 1.8 2010/01/31 22:50:56 jenglish Exp $
- *
+/*
* Copyright (c) 2004, Joe English
*
* ttk::separator and ttk::sizegrip widgets.
@@ -24,13 +23,13 @@ typedef struct
SeparatorPart separator;
} Separator;
-static Tk_OptionSpec SeparatorOptionSpecs[] =
-{
+static Tk_OptionSpec SeparatorOptionSpecs[] = {
{TK_OPTION_STRING_TABLE, "-orient", "orient", "Orient", "horizontal",
Tk_Offset(Separator,separator.orientObj),
Tk_Offset(Separator,separator.orient),
0,(ClientData)ttkOrientStrings,STYLE_CHANGED },
+ WIDGET_TAKEFOCUS_FALSE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
@@ -85,6 +84,11 @@ TTK_END_LAYOUT
* Has no options or methods other than the standard ones.
*/
+static Tk_OptionSpec SizegripOptionSpecs[] = {
+ WIDGET_TAKEFOCUS_FALSE,
+ WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
+};
+
static const Ttk_Ensemble SizegripCommands[] = {
{ "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
@@ -98,7 +102,7 @@ static WidgetSpec SizegripWidgetSpec =
{
"TSizegrip", /* className */
sizeof(WidgetCore), /* recordSize */
- ttkCoreOptionSpecs, /* optionSpecs */
+ SizegripOptionSpecs, /* optionSpecs */
SizegripCommands, /* subcommands */
TtkNullInitialize, /* initializeProc */
TtkNullCleanup, /* cleanupProc */
diff --git a/generic/ttk/ttkSquare.c b/generic/ttk/ttkSquare.c
index fcbe14d..d002f2f 100644
--- a/generic/ttk/ttkSquare.c
+++ b/generic/ttk/ttkSquare.c
@@ -1,8 +1,6 @@
/* square.c - Copyright (C) 2004 Pat Thoyts <patthoyts@users.sourceforge.net>
*
* Minimal sample ttk widget.
- *
- * $Id: ttkSquare.c,v 1.9 2010/01/31 22:50:56 jenglish Exp $
*/
#include <tk.h>
@@ -52,8 +50,6 @@ typedef struct
static Tk_OptionSpec SquareOptionSpecs[] =
{
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_PIXELS, "-borderwidth", "borderWidth", "BorderWidth",
DEFAULT_BORDERWIDTH, Tk_Offset(Square,square.borderWidthObj), -1,
0,0,GEOMETRY_CHANGED },
@@ -78,6 +74,7 @@ static Tk_OptionSpec SquareOptionSpecs[] =
{TK_OPTION_ANCHOR, "-anchor", "anchor", "Anchor",
NULL, Tk_Offset(Square,square.anchorObj), -1, TK_OPTION_NULL_OK, 0, 0},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
diff --git a/generic/ttk/ttkState.c b/generic/ttk/ttkState.c
index 8586db0..a71ae21 100644
--- a/generic/ttk/ttkState.c
+++ b/generic/ttk/ttkState.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkState.c,v 1.4 2009/01/28 20:47:49 nijtmans Exp $
- *
* Tk widget state utilities.
*
* Copyright (c) 2003 Joe English. Freely redistributable.
diff --git a/generic/ttk/ttkStubInit.c b/generic/ttk/ttkStubInit.c
index 4cf4279..87b33dc 100644
--- a/generic/ttk/ttkStubInit.c
+++ b/generic/ttk/ttkStubInit.c
@@ -1,6 +1,4 @@
/*
- * $Id: ttkStubInit.c,v 1.4 2010/02/05 21:33:14 jenglish Exp $
- *
* This file is (mostly) automatically generated from ttk.decls.
* It is compiled and linked in with the ttk package proper.
*/
diff --git a/generic/ttk/ttkStubLib.c b/generic/ttk/ttkStubLib.c
index 0b180d9..2c07b9d 100644
--- a/generic/ttk/ttkStubLib.c
+++ b/generic/ttk/ttkStubLib.c
@@ -1,9 +1,4 @@
/*
- * $Id: ttkStubLib.c,v 1.7 2010/02/05 17:42:21 nijtmans Exp $
- * SOURCE: tk/generic/tkStubLib.c, version 1.9 2004/03/17
- */
-
-/*
* We need to ensure that we use the tcl stub macros so that this file
* contains no references to any of the tcl stub functions.
*/
diff --git a/generic/ttk/ttkTagSet.c b/generic/ttk/ttkTagSet.c
index 84e9ea2..f2108b9 100644
--- a/generic/ttk/ttkTagSet.c
+++ b/generic/ttk/ttkTagSet.c
@@ -1,5 +1,4 @@
-/* $Id: ttkTagSet.c,v 1.5 2010/03/28 21:43:25 jenglish Exp $
- *
+/*
* Tag tables. 3/4-baked, work in progress.
*
* Copyright (C) 2005, Joe English. Freely redistributable.
diff --git a/generic/ttk/ttkTheme.c b/generic/ttk/ttkTheme.c
index 2b98eaf..b0e9171 100644
--- a/generic/ttk/ttkTheme.c
+++ b/generic/ttk/ttkTheme.c
@@ -8,8 +8,6 @@
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * $Id: ttkTheme.c,v 1.24 2010/06/22 07:41:17 nijtmans Exp $
*/
#include <stdlib.h>
diff --git a/generic/ttk/ttkTheme.h b/generic/ttk/ttkTheme.h
index 0b7c935..7bf2a7f 100644
--- a/generic/ttk/ttkTheme.h
+++ b/generic/ttk/ttkTheme.h
@@ -1,4 +1,4 @@
-/* $Id: ttkTheme.h,v 1.19 2010/03/28 21:43:25 jenglish Exp $
+/*
* Copyright (c) 2003 Joe English. Freely redistributable.
*
* Declarations for Tk theme engine.
diff --git a/generic/ttk/ttkThemeInt.h b/generic/ttk/ttkThemeInt.h
index ff3cd7c..3aaada8 100644
--- a/generic/ttk/ttkThemeInt.h
+++ b/generic/ttk/ttkThemeInt.h
@@ -1,6 +1,4 @@
/*
- * $Id: ttkThemeInt.h,v 1.7 2009/02/08 19:35:35 jenglish Exp $
- *
* Theme engine: private definitions.
*
* Copyright (c) 2004 Joe English. Freely redistributable.
diff --git a/generic/ttk/ttkTrace.c b/generic/ttk/ttkTrace.c
index c8cceaf..e6234b8 100644
--- a/generic/ttk/ttkTrace.c
+++ b/generic/ttk/ttkTrace.c
@@ -1,5 +1,4 @@
-/* $Id: ttkTrace.c,v 1.2 2008/04/27 22:41:12 dkf Exp $
- *
+/*
* Copyright 2003, Joe English
*
* Simplified interface to Tcl_TraceVariable.
@@ -45,6 +44,16 @@ VarTraceProc(
* If the variable is being unset, then re-establish the trace:
*/
if (flags & TCL_TRACE_DESTROYED) {
+ /*
+ * If a prior call to Ttk_UntraceVariable() left behind an
+ * indicator that we wanted this handler to be deleted (see below),
+ * cleanup the ClientData bits and exit.
+ */
+ if (tracePtr->interp == NULL) {
+ Tcl_DecrRefCount(tracePtr->varnameObj);
+ ckfree((ClientData)tracePtr);
+ return NULL;
+ }
Tcl_TraceVar(interp, name,
TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
VarTraceProc, clientData);
@@ -105,6 +114,42 @@ Ttk_TraceHandle *Ttk_TraceVariable(
void Ttk_UntraceVariable(Ttk_TraceHandle *h)
{
if (h) {
+ ClientData cd = NULL;
+
+ /*
+ * Workaround for Tcl Bug 3062331. The trace design problem is
+ * that when variable unset traces fire, Tcl documents that the
+ * traced variable has already been unset. It's already gone.
+ * So from within an unset trace, if you try to call
+ * Tcl_UntraceVar() on that variable, it will do nothing, because
+ * the variable by that name can no longer be found. It's gone.
+ * This means callers of Tcl_UntraceVar() that might be running
+ * in response to an unset trace have to handle the possibility
+ * that their Tcl_UntraceVar() call will do nothing. In this case,
+ * we have to support the possibility that Tcl_UntraceVar() will
+ * leave the trace in place, so we need to leave the ClientData
+ * untouched so when that trace does fire it will not crash.
+ */
+
+ /*
+ * Search the traces on the variable to see if the one we are tasked
+ * with removing is present.
+ */
+ while ((cd = Tcl_VarTraceInfo(h->interp, Tcl_GetString(h->varnameObj),
+ TCL_GLOBAL_ONLY, VarTraceProc, cd)) != NULL) {
+ if (cd == (ClientData) h) {
+ break;
+ }
+ }
+ /*
+ * If the trace we wish to delete is not visible, Tcl_UntraceVar
+ * will do nothing, so don't try to call it. Instead set an
+ * indicator in the Ttk_TraceHandle that we need to cleanup later.
+ */
+ if (cd == NULL) {
+ h->interp = NULL;
+ return;
+ }
Tcl_UntraceVar(h->interp, Tcl_GetString(h->varnameObj),
TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS,
VarTraceProc, (ClientData)h);
diff --git a/generic/ttk/ttkTrack.c b/generic/ttk/ttkTrack.c
index 74b34e0..396b073 100644
--- a/generic/ttk/ttkTrack.c
+++ b/generic/ttk/ttkTrack.c
@@ -1,4 +1,4 @@
-/* $Id: ttkTrack.c,v 1.6 2009/02/09 01:45:46 jenglish Exp $
+/*
* Copyright (c) 2004, Joe English
*
* TtkTrackElementState() -- helper routine for widgets
diff --git a/generic/ttk/ttkTreeview.c b/generic/ttk/ttkTreeview.c
index b9fe913..1ed2742 100644
--- a/generic/ttk/ttkTreeview.c
+++ b/generic/ttk/ttkTreeview.c
@@ -1,4 +1,4 @@
-/* $Id: ttkTreeview.c,v 1.41 2010/10/11 21:34:45 jenglish Exp $
+/*
* Copyright (c) 2004, Joe English
*
* ttk::treeview widget implementation.
@@ -438,8 +438,6 @@ typedef struct {
static const char *SelectModeStrings[] = { "none", "browse", "extended", NULL };
static Tk_OptionSpec TreeviewOptionSpecs[] = {
- WIDGET_TAKES_FOCUS,
-
{TK_OPTION_STRING, "-columns", "columns", "Columns",
"", Tk_Offset(Treeview,tree.columnsObj), -1,
0,0,COLUMNS_CHANGED | GEOMETRY_CHANGED /*| READONLY_OPTION*/ },
@@ -468,6 +466,7 @@ static Tk_OptionSpec TreeviewOptionSpecs[] = {
NULL, -1, Tk_Offset(Treeview, tree.yscroll.scrollCmd),
TK_OPTION_NULL_OK, 0, SCROLLCMD_CHANGED},
+ WIDGET_TAKEFOCUS_TRUE,
WIDGET_INHERIT_OPTIONS(ttkCoreOptionSpecs)
};
@@ -486,11 +485,11 @@ static void foreachHashEntry(Tcl_HashTable *ht, HashEntryIterator func)
}
}
-/* + unshare(objPtr) --
+/* + unshareObj(objPtr) --
* Ensure that a Tcl_Obj * has refcount 1 -- either return objPtr
* itself, or a duplicated copy.
*/
-static Tcl_Obj *unshare(Tcl_Obj *objPtr)
+static Tcl_Obj *unshareObj(Tcl_Obj *objPtr)
{
if (Tcl_IsShared(objPtr)) {
Tcl_Obj *newObj = Tcl_DuplicateObj(objPtr);
@@ -2525,7 +2524,7 @@ static int TreeviewSetCommand(
} else { /* set column */
int length;
- item->valuesObj = unshare(item->valuesObj);
+ item->valuesObj = unshareObj(item->valuesObj);
/* Make sure -values is fully populated:
*/
@@ -2826,15 +2825,15 @@ static int TreeviewSeeCommand(
*/
for (parent = item->parent; parent; parent = parent->parent) {
if (!(parent->state & TTK_STATE_OPEN)) {
- parent->openObj = unshare(parent->openObj);
+ parent->openObj = unshareObj(parent->openObj);
Tcl_SetBooleanObj(parent->openObj, 1);
parent->state |= TTK_STATE_OPEN;
TtkRedisplayWidget(&tv->core);
}
}
+ tv->tree.yscroll.total = CountRows(tv->tree.root) - 1;
/* Make sure item is visible:
- * @@@ DOUBLE-CHECK THIS:
*/
rowNumber = RowNumber(tv, item);
if (rowNumber < tv->tree.yscroll.first) {
diff --git a/generic/ttk/ttkWidget.c b/generic/ttk/ttkWidget.c
index 55ab563..d5e0484 100644
--- a/generic/ttk/ttkWidget.c
+++ b/generic/ttk/ttkWidget.c
@@ -1,4 +1,4 @@
-/* $Id: ttkWidget.c,v 1.26 2010/02/05 21:33:14 jenglish Exp $
+/*
* Copyright (c) 2003, Joe English
*
* Core widget utilities.
diff --git a/generic/ttk/ttkWidget.h b/generic/ttk/ttkWidget.h
index 99df0fb..9e9ab69 100644
--- a/generic/ttk/ttkWidget.h
+++ b/generic/ttk/ttkWidget.h
@@ -1,4 +1,4 @@
-/* $Id: ttkWidget.h,v 1.15 2010/03/28 21:43:25 jenglish Exp $
+/*
* Copyright (c) 2003, Joe English
* Helper routines for widget implementations.
*/
@@ -109,14 +109,18 @@ MODULE_SCOPE int TtkWidgetConstructorObjCmd(
Tcl_CreateObjCommand(interp, name, \
TtkWidgetConstructorObjCmd, (ClientData)specPtr,NULL)
-/* WIDGET_TAKES_FOCUS --
- * Add this to the OptionSpecs table of widgets that
- * take keyboard focus during traversal to override
- * CoreOptionSpec's -takefocus default value:
+/* WIDGET_TAKEFOCUS_TRUE --
+ * WIDGET_TAKEFOCUS_FALSE --
+ * Add one or the other of these to each OptionSpecs table
+ * to indicate whether the widget should take focus
+ * during keyboard traversal.
*/
-#define WIDGET_TAKES_FOCUS \
+#define WIDGET_TAKEFOCUS_TRUE \
{TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", \
"ttk::takefocus", Tk_Offset(WidgetCore, takeFocusPtr), -1, 0,0,0 }
+#define WIDGET_TAKEFOCUS_FALSE \
+ {TK_OPTION_STRING, "-takefocus", "takeFocus", "TakeFocus", \
+ "", Tk_Offset(WidgetCore, takeFocusPtr), -1, 0,0,0 }
/* WIDGET_INHERIT_OPTIONS(baseOptionSpecs) --
* Add this at the end of an OptionSpecs table to inherit
@@ -125,6 +129,10 @@ MODULE_SCOPE int TtkWidgetConstructorObjCmd(
#define WIDGET_INHERIT_OPTIONS(baseOptionSpecs) \
{TK_OPTION_END, 0,0,0, NULL, -1,-1, 0, (ClientData)baseOptionSpecs, 0}
+/* All widgets should inherit from ttkCoreOptionSpecs[].
+ */
+MODULE_SCOPE Tk_OptionSpec ttkCoreOptionSpecs[];
+
/*
* Useful routines for use inside widget implementations:
*/
@@ -235,11 +243,6 @@ MODULE_SCOPE void Ttk_TagSetValues(Ttk_TagTable, Ttk_TagSet, void *record);
MODULE_SCOPE void Ttk_TagSetApplyStyle(Ttk_TagTable,Ttk_Style,Ttk_State,void*);
/*
- * Useful widget base classes:
- */
-MODULE_SCOPE Tk_OptionSpec ttkCoreOptionSpecs[];
-
-/*
* String tables for widget resource specifications:
*/