From 8ffda9025c94616a1415f41f6daf5438c921f861 Mon Sep 17 00:00:00 2001 From: dkf Date: Mon, 27 Apr 2009 10:39:56 +0000 Subject: Private-export functions that were being used in extensions. [Bug 2768945] --- ChangeLog | 6 +++ generic/tkInt.decls | 37 +++++++++++++- generic/tkInt.h | 26 +--------- generic/tkIntDecls.h | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++- generic/tkStubInit.c | 21 +++++++- 5 files changed, 197 insertions(+), 28 deletions(-) diff --git a/ChangeLog b/ChangeLog index 35f6b80..87bd433 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-04-27 Donal K. Fellows + + * generic/tkInt.decls: [Bug 2768945]: Expose (as "private") a set of + functions needed for easily building canvas items that work like + existing standard ones. + 2009-04-24 Jeff Hobbs * win/tkWinDialog.c (ChooseDirectoryValidateProc): no need to set diff --git a/generic/tkInt.decls b/generic/tkInt.decls index 561b237..0b2dde4 100644 --- a/generic/tkInt.decls +++ b/generic/tkInt.decls @@ -10,7 +10,7 @@ # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # -# RCS: @(#) $Id: tkInt.decls,v 1.44 2007/12/13 15:24:14 dgp Exp $ +# RCS: @(#) $Id: tkInt.decls,v 1.44.2.1 2009/04/27 10:39:57 dkf Exp $ library tk @@ -518,6 +518,41 @@ declare 157 generic { CONST char **argv) } +# Next group of functions exposed due to [Bug 2768945]. Numbers are chosen so +# as to match 8.6 branch/HEAD. +declare 169 generic { + int TkStateParseProc(ClientData clientData, Tcl_Interp *interp, + Tk_Window tkwin, const char *value, char *widgRec, int offset) +} +declare 170 generic { + char *TkStatePrintProc(ClientData clientData, Tk_Window tkwin, + char *widgRec, int offset, Tcl_FreeProc **freeProcPtr) +} +declare 171 generic { + int TkCanvasDashParseProc(ClientData clientData, Tcl_Interp *interp, + Tk_Window tkwin, const char *value, char *widgRec, int offset) +} +declare 172 generic { + char *TkCanvasDashPrintProc(ClientData clientData, Tk_Window tkwin, + char *widgRec, int offset, Tcl_FreeProc **freeProcPtr) +} +declare 173 generic { + int TkOffsetParseProc(ClientData clientData, Tcl_Interp *interp, + Tk_Window tkwin, const char *value, char *widgRec, int offset) +} +declare 174 generic { + char *TkOffsetPrintProc(ClientData clientData, Tk_Window tkwin, + char *widgRec, int offset, Tcl_FreeProc **freeProcPtr) +} +declare 175 generic { + int TkPixelParseProc(ClientData clientData, Tcl_Interp *interp, + Tk_Window tkwin, const char *value, char *widgRec, int offset) +} +declare 176 generic { + char *TkPixelPrintProc(ClientData clientData, Tk_Window tkwin, + char *widgRec, int offset, Tcl_FreeProc **freeProcPtr) +} + ############################################################################## # Define the platform specific internal Tcl interface. These functions are diff --git a/generic/tkInt.h b/generic/tkInt.h index 5139a9f..3d35753 100644 --- a/generic/tkInt.h +++ b/generic/tkInt.h @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution of * this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: $Id: tkInt.h,v 1.82.2.2 2008/12/21 23:52:45 ferrieux Exp $ + * RCS: $Id: tkInt.h,v 1.82.2.3 2009/04/27 10:39:57 dkf Exp $ */ #ifndef _TKINT @@ -1124,32 +1124,14 @@ MODULE_SCOPE int TkDeadAppCmd(ClientData clientData, MODULE_SCOPE int TkCanvasGetCoordObj(Tcl_Interp *interp, Tk_Canvas canvas, Tcl_Obj *obj, double *doublePtr); -MODULE_SCOPE int TkCanvasDashParseProc(ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, - const char *value, char *widgRec, int offset); -MODULE_SCOPE char * TkCanvasDashPrintProc(ClientData clientData, - Tk_Window tkwin, char *widgRec, int offset, - Tcl_FreeProc **freeProcPtr); MODULE_SCOPE int TkGetDoublePixels(Tcl_Interp *interp, Tk_Window tkwin, const char *string, double *doublePtr); -MODULE_SCOPE int TkOffsetParseProc(ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, - const char *value, char *widgRec, int offset); -MODULE_SCOPE char * TkOffsetPrintProc(ClientData clientData, - Tk_Window tkwin, char *widgRec, int offset, - Tcl_FreeProc **freeProcPtr); MODULE_SCOPE int TkOrientParseProc(ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); MODULE_SCOPE char * TkOrientPrintProc(ClientData clientData, Tk_Window tkwin, char *widgRec, int offset, Tcl_FreeProc **freeProcPtr); -MODULE_SCOPE int TkPixelParseProc(ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, - const char *value, char *widgRec, int offset); -MODULE_SCOPE char * TkPixelPrintProc(ClientData clientData, - Tk_Window tkwin, char *widgRec, int offset, - Tcl_FreeProc **freeProcPtr); MODULE_SCOPE int TkPostscriptImage(Tcl_Interp *interp, Tk_Window tkwin, Tk_PostscriptInfo psInfo, XImage *ximage, int x, int y, int width, int height); @@ -1159,12 +1141,6 @@ MODULE_SCOPE int TkSmoothParseProc(ClientData clientData, MODULE_SCOPE char * TkSmoothPrintProc(ClientData clientData, Tk_Window tkwin, char *recordPtr, int offset, Tcl_FreeProc **freeProcPtr); -MODULE_SCOPE int TkStateParseProc(ClientData clientData, - Tcl_Interp *interp, Tk_Window tkwin, - const char *value, char *widgRec, int offset); -MODULE_SCOPE char * TkStatePrintProc(ClientData clientData, - Tk_Window tkwin, char *widgRec, int offset, - Tcl_FreeProc **freeProcPtr); MODULE_SCOPE int TkTileParseProc(ClientData clientData, Tcl_Interp *interp, Tk_Window tkwin, const char *value, char *widgRec, int offset); diff --git a/generic/tkIntDecls.h b/generic/tkIntDecls.h index e4df446..aa9ee77 100644 --- a/generic/tkIntDecls.h +++ b/generic/tkIntDecls.h @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkIntDecls.h,v 1.31 2007/12/13 15:24:14 dgp Exp $ + * RCS: @(#) $Id: tkIntDecls.h,v 1.31.2.1 2009/04/27 10:39:57 dkf Exp $ */ #ifndef _TKINTDECLS @@ -958,6 +958,77 @@ EXTERN int TkpTesttextCmd (ClientData dummy, Tcl_Interp * interp, int argc, CONST char ** argv); #endif +/* Slot 158 is reserved */ +/* Slot 159 is reserved */ +/* Slot 160 is reserved */ +/* Slot 161 is reserved */ +/* Slot 162 is reserved */ +/* Slot 163 is reserved */ +/* Slot 164 is reserved */ +/* Slot 165 is reserved */ +/* Slot 166 is reserved */ +/* Slot 167 is reserved */ +/* Slot 168 is reserved */ +#ifndef TkStateParseProc_TCL_DECLARED +#define TkStateParseProc_TCL_DECLARED +/* 169 */ +EXTERN int TkStateParseProc (ClientData clientData, + Tcl_Interp * interp, Tk_Window tkwin, + const char * value, char * widgRec, + int offset); +#endif +#ifndef TkStatePrintProc_TCL_DECLARED +#define TkStatePrintProc_TCL_DECLARED +/* 170 */ +EXTERN char * TkStatePrintProc (ClientData clientData, + Tk_Window tkwin, char * widgRec, int offset, + Tcl_FreeProc ** freeProcPtr); +#endif +#ifndef TkCanvasDashParseProc_TCL_DECLARED +#define TkCanvasDashParseProc_TCL_DECLARED +/* 171 */ +EXTERN int TkCanvasDashParseProc (ClientData clientData, + Tcl_Interp * interp, Tk_Window tkwin, + const char * value, char * widgRec, + int offset); +#endif +#ifndef TkCanvasDashPrintProc_TCL_DECLARED +#define TkCanvasDashPrintProc_TCL_DECLARED +/* 172 */ +EXTERN char * TkCanvasDashPrintProc (ClientData clientData, + Tk_Window tkwin, char * widgRec, int offset, + Tcl_FreeProc ** freeProcPtr); +#endif +#ifndef TkOffsetParseProc_TCL_DECLARED +#define TkOffsetParseProc_TCL_DECLARED +/* 173 */ +EXTERN int TkOffsetParseProc (ClientData clientData, + Tcl_Interp * interp, Tk_Window tkwin, + const char * value, char * widgRec, + int offset); +#endif +#ifndef TkOffsetPrintProc_TCL_DECLARED +#define TkOffsetPrintProc_TCL_DECLARED +/* 174 */ +EXTERN char * TkOffsetPrintProc (ClientData clientData, + Tk_Window tkwin, char * widgRec, int offset, + Tcl_FreeProc ** freeProcPtr); +#endif +#ifndef TkPixelParseProc_TCL_DECLARED +#define TkPixelParseProc_TCL_DECLARED +/* 175 */ +EXTERN int TkPixelParseProc (ClientData clientData, + Tcl_Interp * interp, Tk_Window tkwin, + const char * value, char * widgRec, + int offset); +#endif +#ifndef TkPixelPrintProc_TCL_DECLARED +#define TkPixelPrintProc_TCL_DECLARED +/* 176 */ +EXTERN char * TkPixelPrintProc (ClientData clientData, + Tk_Window tkwin, char * widgRec, int offset, + Tcl_FreeProc ** freeProcPtr); +#endif typedef struct TkIntStubs { int magic; @@ -1220,6 +1291,25 @@ typedef struct TkIntStubs { void *reserved155; int (*tkpTestembedCmd) (ClientData clientData, Tcl_Interp * interp, int argc, CONST char ** argv); /* 156 */ int (*tkpTesttextCmd) (ClientData dummy, Tcl_Interp * interp, int argc, CONST char ** argv); /* 157 */ + void *reserved158; + void *reserved159; + void *reserved160; + void *reserved161; + void *reserved162; + void *reserved163; + void *reserved164; + void *reserved165; + void *reserved166; + void *reserved167; + void *reserved168; + int (*tkStateParseProc) (ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, const char * value, char * widgRec, int offset); /* 169 */ + char * (*tkStatePrintProc) (ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr); /* 170 */ + int (*tkCanvasDashParseProc) (ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, const char * value, char * widgRec, int offset); /* 171 */ + char * (*tkCanvasDashPrintProc) (ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr); /* 172 */ + int (*tkOffsetParseProc) (ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, const char * value, char * widgRec, int offset); /* 173 */ + char * (*tkOffsetPrintProc) (ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr); /* 174 */ + int (*tkPixelParseProc) (ClientData clientData, Tcl_Interp * interp, Tk_Window tkwin, const char * value, char * widgRec, int offset); /* 175 */ + char * (*tkPixelPrintProc) (ClientData clientData, Tk_Window tkwin, char * widgRec, int offset, Tcl_FreeProc ** freeProcPtr); /* 176 */ } TkIntStubs; #ifdef __cplusplus @@ -1896,6 +1986,49 @@ extern TkIntStubs *tkIntStubsPtr; #define TkpTesttextCmd \ (tkIntStubsPtr->tkpTesttextCmd) /* 157 */ #endif +/* Slot 158 is reserved */ +/* Slot 159 is reserved */ +/* Slot 160 is reserved */ +/* Slot 161 is reserved */ +/* Slot 162 is reserved */ +/* Slot 163 is reserved */ +/* Slot 164 is reserved */ +/* Slot 165 is reserved */ +/* Slot 166 is reserved */ +/* Slot 167 is reserved */ +/* Slot 168 is reserved */ +#ifndef TkStateParseProc +#define TkStateParseProc \ + (tkIntStubsPtr->tkStateParseProc) /* 169 */ +#endif +#ifndef TkStatePrintProc +#define TkStatePrintProc \ + (tkIntStubsPtr->tkStatePrintProc) /* 170 */ +#endif +#ifndef TkCanvasDashParseProc +#define TkCanvasDashParseProc \ + (tkIntStubsPtr->tkCanvasDashParseProc) /* 171 */ +#endif +#ifndef TkCanvasDashPrintProc +#define TkCanvasDashPrintProc \ + (tkIntStubsPtr->tkCanvasDashPrintProc) /* 172 */ +#endif +#ifndef TkOffsetParseProc +#define TkOffsetParseProc \ + (tkIntStubsPtr->tkOffsetParseProc) /* 173 */ +#endif +#ifndef TkOffsetPrintProc +#define TkOffsetPrintProc \ + (tkIntStubsPtr->tkOffsetPrintProc) /* 174 */ +#endif +#ifndef TkPixelParseProc +#define TkPixelParseProc \ + (tkIntStubsPtr->tkPixelParseProc) /* 175 */ +#endif +#ifndef TkPixelPrintProc +#define TkPixelPrintProc \ + (tkIntStubsPtr->tkPixelPrintProc) /* 176 */ +#endif #endif /* defined(USE_TK_STUBS) && !defined(USE_TK_STUB_PROCS) */ diff --git a/generic/tkStubInit.c b/generic/tkStubInit.c index 5480540..42e919b 100644 --- a/generic/tkStubInit.c +++ b/generic/tkStubInit.c @@ -8,7 +8,7 @@ * 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.60 2007/12/13 15:24:16 dgp Exp $ + * RCS: @(#) $Id: tkStubInit.c,v 1.60.2.1 2009/04/27 10:39:57 dkf Exp $ */ #include "tkInt.h" @@ -315,6 +315,25 @@ TkIntStubs tkIntStubs = { NULL, /* 155 */ TkpTestembedCmd, /* 156 */ TkpTesttextCmd, /* 157 */ + NULL, /* 158 */ + NULL, /* 159 */ + NULL, /* 160 */ + NULL, /* 161 */ + NULL, /* 162 */ + NULL, /* 163 */ + NULL, /* 164 */ + NULL, /* 165 */ + NULL, /* 166 */ + NULL, /* 167 */ + NULL, /* 168 */ + TkStateParseProc, /* 169 */ + TkStatePrintProc, /* 170 */ + TkCanvasDashParseProc, /* 171 */ + TkCanvasDashPrintProc, /* 172 */ + TkOffsetParseProc, /* 173 */ + TkOffsetPrintProc, /* 174 */ + TkPixelParseProc, /* 175 */ + TkPixelPrintProc, /* 176 */ }; TkIntPlatStubs tkIntPlatStubs = { -- cgit v0.12