1075 lines
32 KiB
Text
1075 lines
32 KiB
Text
--- src/blt.h 2002-07-14 19:33:24.000000000 -0400
|
|
+++ src/blt.h 2010-01-16 22:52:09.000000000 -0500
|
|
@@ -56,7 +56,7 @@
|
|
typedef char *Blt_Uid;
|
|
|
|
-EXTERN Blt_Uid Blt_GetUid _ANSI_ARGS_((char *string));
|
|
+EXTERN Blt_Uid Blt_GetUid _ANSI_ARGS_((const char *string));
|
|
EXTERN void Blt_FreeUid _ANSI_ARGS_((Blt_Uid uid));
|
|
-EXTERN Blt_Uid Blt_FindUid _ANSI_ARGS_((char *string));
|
|
+EXTERN Blt_Uid Blt_FindUid _ANSI_ARGS_((const char *string));
|
|
|
|
#if (TCL_MAJOR_VERSION >= 8)
|
|
--- src/bltInt.h 2002-08-21 16:13:12.000000000 -0400
|
|
+++ src/bltInt.h 2010-01-17 00:04:42.000000000 -0500
|
|
@@ -714,5 +714,5 @@
|
|
|
|
extern int Blt_GetXY _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin,
|
|
- char *string, int *x, int *y));
|
|
+ const char *string, int *x, int *y));
|
|
|
|
extern Point2D Blt_GetProjection _ANSI_ARGS_((int x, int y, Point2D *p,
|
|
--- src/bltBgexec.c 2002-09-18 18:30:50.000000000 -0400
|
|
+++ src/bltBgexec.c 2010-01-16 13:02:33.000000000 -0500
|
|
@@ -56,5 +56,5 @@
|
|
} Process;
|
|
#else
|
|
-typedef int Process;
|
|
+typedef pid_t Process;
|
|
#endif
|
|
|
|
@@ -125,5 +125,5 @@
|
|
typedef struct {
|
|
int number;
|
|
- char *name;
|
|
+ const char *name;
|
|
} SignalId;
|
|
|
|
@@ -646,5 +646,5 @@
|
|
sinkPtr->echo = FALSE;
|
|
sinkPtr->fd = -1;
|
|
- sinkPtr->file = (Tcl_File)NULL;
|
|
+ sinkPtr->file = 0;
|
|
sinkPtr->byteArr = sinkPtr->staticSpace;
|
|
sinkPtr->size = DEF_BUFFER_SIZE;
|
|
@@ -704,5 +704,5 @@
|
|
}
|
|
sinkPtr->fd = -1;
|
|
- sinkPtr->file = (Tcl_File)NULL;
|
|
+ sinkPtr->file = 0;
|
|
#if (TCL_MAJOR_VERSION >= 8)
|
|
if (sinkPtr->objv != NULL) {
|
|
@@ -856,5 +856,5 @@
|
|
Tcl_DeleteFileHandler(sinkPtr->fd);
|
|
#endif
|
|
- sinkPtr->file = (Tcl_File)NULL;
|
|
+ sinkPtr->file = 0;
|
|
sinkPtr->fd = -1;
|
|
|
|
@@ -1073,5 +1073,5 @@
|
|
timeout = (flags & WNOHANG) ? 0 : INFINITE;
|
|
status = WaitForSingleObject(child.hProcess, timeout);
|
|
-
|
|
+
|
|
#if WINDEBUG
|
|
PurifyPrintf("WAITPID: wait status is %d\n", status);
|
|
@@ -1310,5 +1310,5 @@
|
|
(sinkPtr->flags & SINK_NOTIFY)) {
|
|
unsigned char *data;
|
|
- int length;
|
|
+ int length = 0;
|
|
|
|
if (sinkPtr->flags & SINK_BUFFERED) {
|
|
@@ -1472,5 +1472,5 @@
|
|
Tcl_DetachPids(1, &bgPtr->procArr[i]);
|
|
#else
|
|
- Tcl_DetachPids(1, (Tcl_Pid *)bgPtr->procArr[i]);
|
|
+ Tcl_DetachPids(1, (Tcl_Pid *)(intptr_t)bgPtr->procArr[i]);
|
|
#endif /* TCL_MAJOR_VERSION == 7 */
|
|
#endif /* WIN32 */
|
|
--- src/bltHash.h.in 2002-07-13 20:08:13.000000000 -0400
|
|
+++ src/bltHash.h.in 2010-01-16 19:38:20.000000000 -0500
|
|
@@ -89,5 +89,5 @@
|
|
*/
|
|
#define BLT_STRING_KEYS 0
|
|
-#define BLT_ONE_WORD_KEYS ((size_t)-1)
|
|
+#define BLT_ONE_WORD_KEYS ((unsigned int)-1)
|
|
|
|
/*
|
|
--- src/bltTree.c 2002-09-29 01:44:12.000000000 -0400
|
|
+++ src/bltTree.c 2010-01-16 19:42:48.000000000 -0500
|
|
@@ -404,5 +404,5 @@
|
|
UnlinkNode(nodePtr);
|
|
treeObjPtr->nNodes--;
|
|
- hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)nodePtr->inode);
|
|
+ hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(uintptr_t)nodePtr->inode);
|
|
assert(hPtr);
|
|
Blt_DeleteHashEntry(&treeObjPtr->nodeTable, hPtr);
|
|
@@ -837,5 +837,5 @@
|
|
do {
|
|
inode = treeObjPtr->nextInode++;
|
|
- hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode,
|
|
+ hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(uintptr_t)inode,
|
|
&isNew);
|
|
} while (!isNew);
|
|
@@ -892,5 +892,5 @@
|
|
|
|
treeObjPtr = parentPtr->treeObject;
|
|
- hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)inode, &isNew);
|
|
+ hPtr = Blt_CreateHashEntry(&treeObjPtr->nodeTable,(char *)(uintptr_t)inode, &isNew);
|
|
if (!isNew) {
|
|
return NULL;
|
|
@@ -998,5 +998,5 @@
|
|
Blt_HashEntry *hPtr;
|
|
|
|
- hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)inode);
|
|
+ hPtr = Blt_FindHashEntry(&treeObjPtr->nodeTable, (char *)(uintptr_t)inode);
|
|
if (hPtr != NULL) {
|
|
return (Blt_TreeNode)Blt_GetHashValue(hPtr);
|
|
--- src/bltTreeCmd.c 2002-09-27 18:23:01.000000000 -0400
|
|
+++ src/bltTreeCmd.c 2010-01-16 22:43:52.000000000 -0500
|
|
@@ -951,5 +951,5 @@
|
|
Blt_Tree tree = cmdPtr->tree;
|
|
char c;
|
|
- Blt_TreeNode node;
|
|
+ Blt_TreeNode node = NULL;
|
|
char *string;
|
|
char *p;
|
|
@@ -1284,6 +1284,6 @@
|
|
node = dataPtr->root;
|
|
/* Create a mapping between the old id and the new node */
|
|
- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
|
|
- &isNew);
|
|
+ hPtr = Blt_CreateHashEntry(&dataPtr->idTable,
|
|
+ (char *)(uintptr_t)nodeId, &isNew);
|
|
Blt_SetHashValue(hPtr, node);
|
|
Blt_TreeRelabelNode(cmdPtr->tree, node, names[0]);
|
|
@@ -1294,5 +1294,5 @@
|
|
* existing node.
|
|
*/
|
|
- hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)parentId);
|
|
+ hPtr = Blt_FindHashEntry(&dataPtr->idTable, (char *)(uintptr_t)parentId);
|
|
if (hPtr != NULL) {
|
|
parent = Blt_GetHashValue(hPtr);
|
|
@@ -1331,5 +1331,5 @@
|
|
node = Blt_TreeFindChild(parent, names[nNames - 1]);
|
|
/* Create a mapping between the old id and the new node */
|
|
- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
|
|
+ hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(uintptr_t)nodeId,
|
|
&isNew);
|
|
Blt_SetHashValue(hPtr, node);
|
|
@@ -1341,5 +1341,5 @@
|
|
names[nNames - 1], -1);
|
|
/* Create a mapping between the old id and the new node */
|
|
- hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)nodeId,
|
|
+ hPtr = Blt_CreateHashEntry(&dataPtr->idTable, (char *)(uintptr_t)nodeId,
|
|
&isNew);
|
|
Blt_SetHashValue(hPtr, node);
|
|
@@ -1668,5 +1668,5 @@
|
|
node = Blt_ListNextNode(node)) {
|
|
|
|
- type = (int)Blt_ListGetValue(node);
|
|
+ type = (intptr_t)Blt_ListGetValue(node);
|
|
pattern = (char *)Blt_ListGetKey(node);
|
|
switch (type) {
|
|
@@ -2603,5 +2603,5 @@
|
|
hPtr != NULL; hPtr = Blt_NextHashEntry(&cursor)) {
|
|
node = Blt_GetHashValue(hPtr);
|
|
- Blt_ChainAppend(chainPtr, (ClientData)Blt_TreeNodeId(node));
|
|
+ Blt_ChainAppend(chainPtr, (ClientData)(uintptr_t)Blt_TreeNodeId(node));
|
|
}
|
|
/*
|
|
@@ -2613,5 +2613,5 @@
|
|
linkPtr = nextPtr) {
|
|
nextPtr = Blt_ChainNextLink(linkPtr);
|
|
- inode = (int)Blt_ChainGetValue(linkPtr);
|
|
+ inode = (intptr_t)Blt_ChainGetValue(linkPtr);
|
|
node = Blt_TreeGetNode(cmdPtr->tree, inode);
|
|
if (node != NULL) {
|
|
--- src/bltUnixPipe.c 2002-06-22 15:21:05.000000000 -0400
|
|
+++ src/bltUnixPipe.c 2010-01-16 22:45:17.000000000 -0500
|
|
@@ -478,5 +478,5 @@
|
|
* startup.
|
|
*/
|
|
- Tcl_WaitPid((Tcl_Pid)pid, &status, WNOHANG);
|
|
+ Tcl_WaitPid((Tcl_Pid)(intptr_t)pid, &status, WNOHANG);
|
|
}
|
|
if (errPipeIn >= 0) {
|
|
--- src/bltUtil.c 2002-08-21 16:13:12.000000000 -0400
|
|
+++ src/bltUtil.c 2010-01-16 22:53:55.000000000 -0500
|
|
@@ -780,9 +780,9 @@
|
|
Blt_Uid
|
|
Blt_GetUid(string)
|
|
- char *string; /* String to convert. */
|
|
+ const char *string; /* String to convert. */
|
|
{
|
|
int isNew;
|
|
Blt_HashEntry *hPtr;
|
|
- int refCount;
|
|
+ intptr_t refCount;
|
|
|
|
if (!uidInitialized) {
|
|
@@ -794,5 +794,5 @@
|
|
refCount = 0;
|
|
} else {
|
|
- refCount = (int)Blt_GetHashValue(hPtr);
|
|
+ refCount = (intptr_t)Blt_GetHashValue(hPtr);
|
|
}
|
|
refCount++;
|
|
@@ -829,7 +829,7 @@
|
|
hPtr = Blt_FindHashEntry(&uidTable, uid);
|
|
if (hPtr) {
|
|
- int refCount;
|
|
+ intptr_t refCount;
|
|
|
|
- refCount = (int)Blt_GetHashValue(hPtr);
|
|
+ refCount = (intptr_t)Blt_GetHashValue(hPtr);
|
|
refCount--;
|
|
if (refCount == 0) {
|
|
@@ -857,5 +857,5 @@
|
|
Blt_Uid
|
|
Blt_FindUid(string)
|
|
- char *string; /* String to find. */
|
|
+ const char *string; /* String to find. */
|
|
{
|
|
Blt_HashEntry *hPtr;
|
|
--- src/bltInit.c As of 2.4.2
|
|
+++ src/bltInit.c 2010-01-16 22:59:22.000000000 -0500
|
|
@@ -404,7 +404,7 @@
|
|
Tcl_Interp *interp; /* Interpreter to add extra commands */
|
|
{
|
|
- int flags;
|
|
+ intptr_t flags;
|
|
|
|
- flags = (int)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
|
|
+ flags = (intptr_t)Tcl_GetAssocData(interp, BLT_THREAD_KEY, NULL);
|
|
if ((flags & BLT_TCL_CMDS) == 0) {
|
|
register Tcl_AppInitProc **p;
|
|
@@ -416,5 +416,5 @@
|
|
* the same ones that BLT was compiled against.
|
|
*/
|
|
- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
|
|
+ if (Tcl_PkgRequire(interp, "Tcl", TCL_PATCH_LEVEL, EXACT) == NULL) {
|
|
return TCL_ERROR;
|
|
}
|
|
@@ -463,5 +463,5 @@
|
|
|
|
#if (TCL_VERSION_NUMBER >= _VERSION(8,1,0))
|
|
- if (Tcl_PkgPresent(interp, "Tk", TK_VERSION, EXACT) == NULL) {
|
|
+ if (Tcl_PkgPresent(interp, "Tk", TK_PATCH_LEVEL, EXACT) == NULL) {
|
|
return TCL_OK;
|
|
}
|
|
@@ -515,5 +515,5 @@
|
|
* the same ones that BLT was compiled against.
|
|
*/
|
|
- if (Tcl_PkgRequire(interp, "Tcl", TCL_VERSION, EXACT) == NULL) {
|
|
+ if (Tcl_PkgRequire(interp, "Tcl", TCL_PATCH_LEVEL, EXACT) == NULL) {
|
|
return TCL_ERROR;
|
|
}
|
|
@@ -553,9 +553,9 @@
|
|
|
|
#if (TCL_VERSION_NUMBER >= _VERSION(8,1,0))
|
|
- if (Tcl_PkgPresent(interp, "Tk", TK_VERSION, EXACT) == NULL) {
|
|
+ if (Tcl_PkgPresent(interp, "Tk", TK_PATCH_LEVEL, EXACT) == NULL) {
|
|
return TCL_OK;
|
|
}
|
|
#else
|
|
- if (Tcl_PkgRequire(interp, "Tk", TK_VERSION, EXACT) == NULL) {
|
|
+ if (Tcl_PkgRequire(interp, "Tk", TK_PATCH_LEVEL, EXACT) == NULL) {
|
|
Tcl_ResetResult(interp);
|
|
return TCL_OK;
|
|
--- src/bltGrAxis.c 2010-01-16 22:59:57.000000000 -0500
|
|
+++ src/bltGrAxis.c 2010-01-16 23:05:00.000000000 -0500
|
|
@@ -670,5 +670,5 @@
|
|
int offset; /* Offset of field in structure. */
|
|
{
|
|
- unsigned int mask = (unsigned int)clientData;
|
|
+ unsigned int mask = (uintptr_t)clientData;
|
|
Axis *axisPtr = (Axis *)widgRec;
|
|
Ticks **ticksPtrPtr = (Ticks **) (widgRec + offset);
|
|
@@ -1421,5 +1421,5 @@
|
|
{
|
|
double range;
|
|
- double tickMin, tickMax;
|
|
+ double tickMin = 0, tickMax = 0;
|
|
double majorStep, minorStep;
|
|
int nMajor, nMinor;
|
|
@@ -1550,7 +1550,7 @@
|
|
double min, max;
|
|
{
|
|
- double range, step;
|
|
+ double range, step = 0;
|
|
double tickMin, tickMax;
|
|
- double axisMin, axisMax;
|
|
+ double axisMin = 0, axisMax = 0;
|
|
int nTicks;
|
|
|
|
@@ -3648,5 +3648,5 @@
|
|
int margin;
|
|
|
|
- margin = (int)argv[-1];
|
|
+ margin = (intptr_t)argv[-1];
|
|
chainPtr = graphPtr->margins[margin].axes;
|
|
if (argc == 0) {
|
|
@@ -4191,5 +4191,5 @@
|
|
return TCL_ERROR;
|
|
}
|
|
- argv[2] = (char *)margin; /* Hack. Slide a reference to the margin in
|
|
+ argv[2] = (char *)(intptr_t)margin; /* Hack. Slide a reference to the margin in
|
|
* the argument list. Needed only for UseOp.
|
|
*/
|
|
--- src/bltGrBar.c 2002-09-18 18:30:51.000000000 -0400
|
|
+++ src/bltGrBar.c 2010-01-16 23:06:36.000000000 -0500
|
|
@@ -2148,5 +2148,6 @@
|
|
Blt_HashSearch cursor;
|
|
Bar *barPtr;
|
|
- int isNew, count;
|
|
+ int isNew;
|
|
+ intptr_t count;
|
|
int nStacks, nSegs;
|
|
int nPoints;
|
|
@@ -2198,5 +2199,5 @@
|
|
count = 1;
|
|
} else {
|
|
- count = (int)Blt_GetHashValue(hPtr);
|
|
+ count = (intptr_t)Blt_GetHashValue(hPtr);
|
|
if (count == 1) {
|
|
nStacks++;
|
|
@@ -2220,10 +2221,10 @@
|
|
for (hPtr = Blt_FirstHashEntry(&freqTable, &cursor); hPtr != NULL;
|
|
hPtr = Blt_NextHashEntry(&cursor)) {
|
|
- count = (int)Blt_GetHashValue(hPtr);
|
|
+ count = (intptr_t)Blt_GetHashValue(hPtr);
|
|
keyPtr = (FreqKey *)Blt_GetHashKey(&freqTable, hPtr);
|
|
if (count > 1) {
|
|
h2Ptr = Blt_CreateHashEntry(&(graphPtr->freqTable),
|
|
(char *)keyPtr, &isNew);
|
|
- count = (int)Blt_GetHashValue(hPtr);
|
|
+ count = (intptr_t)Blt_GetHashValue(hPtr);
|
|
infoPtr->freq = count;
|
|
infoPtr->axes = keyPtr->axes;
|
|
--- src/bltColor.c 2002-08-09 21:29:33.000000000 -0400
|
|
+++ src/bltColor.c 2010-01-16 23:43:28.000000000 -0500
|
|
@@ -78,57 +78,4 @@
|
|
#define NCOLORS 256
|
|
|
|
-
|
|
-static void
|
|
-GetPaletteSizes(nColors, nRedsPtr, nGreensPtr, nBluesPtr)
|
|
- int nColors; /* Number of colors requested. */
|
|
- unsigned int *nRedsPtr; /* (out) Number of red components. */
|
|
- unsigned int *nGreensPtr; /* (out) Number of green components. */
|
|
- unsigned int *nBluesPtr; /* (out) Number of blue components. */
|
|
-{
|
|
- unsigned int nBlues, nReds, nGreens;
|
|
-
|
|
- assert(nColors > 1);
|
|
- nBlues = nReds = nGreens = 0;
|
|
- while ((nBlues * nBlues * nBlues) <= nColors) {
|
|
- nBlues++;
|
|
- }
|
|
- nBlues--;
|
|
- while ((nReds * nReds * nBlues) <= nColors) {
|
|
- nReds++;
|
|
- }
|
|
- nReds--;
|
|
- nGreens = nColors / (nBlues * nReds);
|
|
-
|
|
- *nRedsPtr = nReds;
|
|
- *nGreensPtr = nGreens;
|
|
- *nBluesPtr = nBlues;
|
|
-}
|
|
-
|
|
-static void
|
|
-BuildColorRamp(palettePtr, nColors)
|
|
- Pix32 *palettePtr;
|
|
- int nColors;
|
|
-{
|
|
- register unsigned int r, g, b;
|
|
- unsigned int short red, green, blue;
|
|
- unsigned int nReds, nGreens, nBlues;
|
|
-
|
|
- GetPaletteSizes(nColors, &nReds, &nGreens, &nBlues);
|
|
- for (r = 0; r < nReds; r++) {
|
|
- red = (r * USHRT_MAX) / (nReds - 1);
|
|
- for (g = 0; g < nGreens; g++) {
|
|
- green = (g * USHRT_MAX) / (nGreens - 1);
|
|
- for (b = 0; b < nBlues; b++) {
|
|
- blue = (b * USHRT_MAX) / (nBlues - 1);
|
|
- palettePtr->Red = red;
|
|
- palettePtr->Green = green;
|
|
- palettePtr->Blue = blue;
|
|
- palettePtr++;
|
|
- }
|
|
- }
|
|
- }
|
|
-
|
|
-}
|
|
-
|
|
/*
|
|
*----------------------------------------------------------------------
|
|
@@ -201,147 +148,4 @@
|
|
}
|
|
|
|
-static void
|
|
-FindClosestColor(colorPtr, mapColors, numMapColors)
|
|
- ColorInfo *colorPtr;
|
|
- XColor mapColors[];
|
|
- int numMapColors;
|
|
-{
|
|
- double r, g, b;
|
|
- register int i;
|
|
- double dist, min;
|
|
- XColor *lastMatch;
|
|
- register XColor *mapColorPtr;
|
|
-
|
|
- min = DBL_MAX; /* Any color is closer. */
|
|
- lastMatch = NULL;
|
|
-
|
|
- /* Linear search of color */
|
|
-
|
|
- mapColorPtr = mapColors;
|
|
- for (i = 0; i < numMapColors; i++, mapColorPtr++) {
|
|
- r = (double)mapColorPtr->red - (double)colorPtr->exact.red;
|
|
- g = (double)mapColorPtr->green - (double)colorPtr->exact.green;
|
|
- b = (double)mapColorPtr->blue - (double)colorPtr->exact.blue;
|
|
-
|
|
- dist = (r * r) + (b * b) + (g * g);
|
|
- if (dist < min) {
|
|
- min = dist;
|
|
- lastMatch = mapColorPtr;
|
|
- }
|
|
- }
|
|
- colorPtr->best = *lastMatch;
|
|
- colorPtr->best.flags = (DoRed | DoGreen | DoBlue);
|
|
- colorPtr->error = (float)sqrt(min);
|
|
-}
|
|
-
|
|
-static int
|
|
-CompareColors(a, b)
|
|
- void *a, *b;
|
|
-{
|
|
- ColorInfo *i1Ptr, *i2Ptr;
|
|
-
|
|
- i1Ptr = *(ColorInfo **) a;
|
|
- i2Ptr = *(ColorInfo **) b;
|
|
- if (i2Ptr->error > i1Ptr->error) {
|
|
- return 1;
|
|
- } else if (i2Ptr->error < i1Ptr->error) {
|
|
- return -1;
|
|
- }
|
|
- return 0;
|
|
-}
|
|
-
|
|
-static float
|
|
-MatchColors(colorTabPtr, rgbPtr, numColors, numAvailColors, numMapColors,
|
|
- mapColors)
|
|
- struct ColorTableStruct *colorTabPtr;
|
|
- Pix32 *rgbPtr;
|
|
- int numColors;
|
|
- int numAvailColors;
|
|
- int numMapColors;
|
|
- XColor mapColors[NCOLORS];
|
|
-{
|
|
- int numMatched;
|
|
- float sum;
|
|
- register int i;
|
|
- register ColorInfo *colorPtr;
|
|
-
|
|
- /*
|
|
- * For each quantized color, compute and store the error (i.e
|
|
- * the distance from a color that's already been allocated).
|
|
- * We'll use this information to sort the colors based upon how
|
|
- * badly they match and their frequency to the color image.
|
|
- */
|
|
- colorPtr = colorTabPtr->colorInfo;
|
|
- for (i = 0; i < numColors; i++, colorPtr++, rgbPtr++) {
|
|
- colorPtr->index = i;
|
|
- colorTabPtr->sortedColors[i] = colorPtr;
|
|
- colorPtr->exact.red = rgbPtr->Red;
|
|
- colorPtr->exact.green = rgbPtr->Green;
|
|
- colorPtr->exact.blue = rgbPtr->Blue;
|
|
- colorPtr->exact.flags = (DoRed | DoGreen | DoBlue);
|
|
- FindClosestColor(colorPtr, mapColors, numMapColors);
|
|
- }
|
|
-
|
|
- /* Sort the colors, first by frequency (most to least), then by
|
|
- * matching error (worst to best).
|
|
- */
|
|
- qsort(colorTabPtr->sortedColors, numColors, sizeof(ColorInfo *),
|
|
- (QSortCompareProc *)CompareColors);
|
|
-
|
|
- for (i = 0; i < numColors; i++) {
|
|
- colorPtr = colorTabPtr->sortedColors[i];
|
|
- fprintf(stderr, "%d. %04x%04x%04x / %04x%04x%04x = %f (%d)\n", i,
|
|
- colorPtr->exact.red, colorPtr->exact.green, colorPtr->exact.blue,
|
|
- colorPtr->best.red, colorPtr->best.green, colorPtr->best.blue,
|
|
- colorPtr->error, colorPtr->freq);
|
|
- }
|
|
- sum = 0.0;
|
|
- numMatched = 0;
|
|
- for (i = numAvailColors; i < numColors; i++) {
|
|
- colorPtr = colorTabPtr->sortedColors[i];
|
|
- sum += colorPtr->error;
|
|
- numMatched++;
|
|
- }
|
|
- if (numMatched > 0) {
|
|
- sum /= numMatched;
|
|
- }
|
|
- return sum;
|
|
-}
|
|
-
|
|
-
|
|
-static int
|
|
-AllocateColors(nImageColors, colorTabPtr, matchOnly)
|
|
- int nImageColors;
|
|
- struct ColorTableStruct *colorTabPtr;
|
|
- int matchOnly;
|
|
-{
|
|
- register int i;
|
|
- register ColorInfo *colorPtr;
|
|
- unsigned long int pixelValue;
|
|
-
|
|
- for (i = 0; i < nImageColors; i++) {
|
|
- colorPtr = colorTabPtr->sortedColors[i];
|
|
- if (matchOnly) {
|
|
- XAllocColor(colorTabPtr->display, colorTabPtr->colorMap,
|
|
- &colorPtr->best);
|
|
- pixelValue = colorPtr->best.pixel;
|
|
- } else {
|
|
- colorPtr->allocated = XAllocColor(colorTabPtr->display,
|
|
- colorTabPtr->colorMap, &colorPtr->exact);
|
|
-
|
|
- if (colorPtr->allocated) {
|
|
- pixelValue = colorPtr->exact.pixel;
|
|
- } else {
|
|
- XAllocColor(colorTabPtr->display, colorTabPtr->colorMap,
|
|
- &colorPtr->best);
|
|
- pixelValue = colorPtr->best.pixel;
|
|
- }
|
|
- }
|
|
- colorTabPtr->pixelValues[colorPtr->index] = pixelValue;
|
|
- }
|
|
- colorTabPtr->nPixels = nImageColors;
|
|
- return 1;
|
|
-}
|
|
-
|
|
ColorTable
|
|
Blt_CreateColorTable(tkwin)
|
|
@@ -511,47 +315,7 @@
|
|
}
|
|
|
|
-/*
|
|
- * First attempt:
|
|
- * Allocate colors all the colors in the image (up to NCOLORS). Bail out
|
|
- * on the first failure or if we need more than NCOLORS.
|
|
- */
|
|
-static int
|
|
-GetUniqueColors(image)
|
|
- Blt_ColorImage image;
|
|
-{
|
|
- register int i, nColors;
|
|
- register Pix32 *pixelPtr;
|
|
- Pix32 color;
|
|
- Blt_HashEntry *hPtr;
|
|
- int isNew, nPixels;
|
|
- int refCount;
|
|
- Blt_HashTable colorTable;
|
|
-
|
|
- Blt_InitHashTable(&colorTable, BLT_ONE_WORD_KEYS);
|
|
-
|
|
- nPixels = Blt_ColorImageWidth(image) * Blt_ColorImageHeight(image);
|
|
- nColors = 0;
|
|
- pixelPtr = Blt_ColorImageBits(image);
|
|
- for (i = 0; i < nPixels; i++, pixelPtr++) {
|
|
- color.value = pixelPtr->value;
|
|
- color.Alpha = 0xFF; /* Ignore alpha-channel values */
|
|
- hPtr = Blt_CreateHashEntry(&colorTable, (char *)color.value, &isNew);
|
|
- if (isNew) {
|
|
- refCount = 1;
|
|
- nColors++;
|
|
- } else {
|
|
- refCount = (int)Blt_GetHashValue(hPtr);
|
|
- refCount++;
|
|
- }
|
|
- Blt_SetHashValue(hPtr, (ClientData)refCount);
|
|
- }
|
|
- Blt_DeleteHashTable(&colorTable);
|
|
- return nColors;
|
|
-}
|
|
-
|
|
#define Blt_DefaultColormap(tkwin) \
|
|
DefaultColormap(Tk_Display(tkwin), Tk_ScreenNumber(tkwin))
|
|
|
|
-
|
|
static void
|
|
PrivateColormap(interp, colorTabPtr, image, tkwin)
|
|
--- src/bltConfig.c 2002-09-18 18:30:51.000000000 -0400
|
|
+++ src/bltConfig.c 2010-01-16 23:45:46.000000000 -0500
|
|
@@ -276,5 +276,5 @@
|
|
int offset; /* Offset of style in record */
|
|
{
|
|
- unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
|
|
+ unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
|
|
int *flagPtr = (int *)(widgRec + offset);
|
|
int bool;
|
|
@@ -312,5 +312,5 @@
|
|
Tcl_FreeProc **freeProcPtr; /* Not Used. */
|
|
{
|
|
- unsigned int mask = (unsigned int)clientData; /* Bit to be tested */
|
|
+ unsigned int mask = (uintptr_t)clientData; /* Bit to be tested */
|
|
unsigned int bool = *(unsigned int *)(widgRec + offset);
|
|
|
|
@@ -393,5 +393,5 @@
|
|
{
|
|
int *valuePtr = (int *)(widgRec + offset);
|
|
- return Blt_GetPixels(interp, tkwin, string, (int)clientData, valuePtr);
|
|
+ return Blt_GetPixels(interp, tkwin, string, (intptr_t)clientData, valuePtr);
|
|
}
|
|
|
|
@@ -482,5 +482,5 @@
|
|
{
|
|
int *valuePtr = (int *)(widgRec + offset);
|
|
- return Blt_GetInt(interp, string, (int)clientData, valuePtr);
|
|
+ return Blt_GetInt(interp, string, (intptr_t)clientData, valuePtr);
|
|
}
|
|
|
|
--- src/bltContainer.c 2002-07-14 19:33:24.000000000 -0400
|
|
+++ src/bltContainer.c 2010-01-16 23:47:10.000000000 -0500
|
|
@@ -823,5 +823,5 @@
|
|
int offset; /* Offset to field in structure */
|
|
{
|
|
- unsigned int flags = (int)clientData;
|
|
+ unsigned int flags = (uintptr_t)clientData;
|
|
Container *cntrPtr = (Container *)widgRec;
|
|
Window *winPtr = (Window *) (widgRec + offset);
|
|
--- src/bltGrMisc.c 2002-07-17 05:56:00.000000000 -0400
|
|
+++ src/bltGrMisc.c 2010-01-17 00:03:38.000000000 -0500
|
|
@@ -75,5 +75,5 @@
|
|
Tcl_Interp *interp;
|
|
Tk_Window tkwin;
|
|
- char *string;
|
|
+ const char *string;
|
|
int *xPtr, *yPtr;
|
|
{
|
|
@@ -261,5 +261,5 @@
|
|
ColorPair *pairPtr = (ColorPair *)(widgRec + offset);
|
|
ColorPair sample;
|
|
- int allowDefault = (int)clientData;
|
|
+ int allowDefault = (intptr_t)clientData;
|
|
|
|
sample.fgColor = sample.bgColor = NULL;
|
|
--- src/bltHierbox.c 2002-09-18 23:02:09.000000000 -0400
|
|
+++ src/bltHierbox.c 2010-01-17 00:02:41.000000000 -0500
|
|
@@ -2078,5 +2078,5 @@
|
|
do {
|
|
serial = hboxPtr->nextSerial++;
|
|
- hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)serial,
|
|
+ hPtr = Blt_CreateHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial,
|
|
&isNew);
|
|
} while (!isNew);
|
|
@@ -2365,5 +2365,5 @@
|
|
GetNodeByIndex(hboxPtr, string)
|
|
Hierbox *hboxPtr;
|
|
- char *string;
|
|
+ const char *string;
|
|
{
|
|
if (isdigit(UCHAR(string[0]))) {
|
|
@@ -2373,5 +2373,5 @@
|
|
Blt_HashEntry *hPtr;
|
|
|
|
- hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)serial);
|
|
+ hPtr = Blt_FindHashEntry(&(hboxPtr->nodeTable), (char *)(intptr_t)serial);
|
|
if (hPtr != NULL) {
|
|
return (Tree *) Blt_GetHashValue(hPtr);
|
|
@@ -2403,9 +2403,9 @@
|
|
Tree *nodePtr;
|
|
{
|
|
- static char string[200];
|
|
+ static char string[31];
|
|
int serial;
|
|
|
|
/* Node table keys are integers. Convert them to strings. */
|
|
- serial = (int)Blt_GetHashKey(&(hboxPtr->nodeTable),
|
|
+ serial = (intptr_t)Blt_GetHashKey(&(hboxPtr->nodeTable),
|
|
nodePtr->entryPtr->hashPtr);
|
|
sprintf(string, "%d", serial);
|
|
@@ -2458,5 +2458,5 @@
|
|
GetNode(hboxPtr, string, treePtrPtr)
|
|
Hierbox *hboxPtr;
|
|
- char *string;
|
|
+ const char *string;
|
|
Tree **treePtrPtr;
|
|
{
|
|
--- src/bltImage.c 2002-08-15 01:22:10.000000000 -0400
|
|
+++ src/bltImage.c 2010-01-17 00:13:49.000000000 -0500
|
|
@@ -2419,11 +2419,11 @@
|
|
}
|
|
|
|
-static unsigned int *
|
|
-CreateColorLookupTable(s, cubes, nColors)
|
|
+static void
|
|
+CreateColorLookupTable(s, cubes, nColors, lut)
|
|
ColorImageStatistics *s;
|
|
Cube *cubes;
|
|
int nColors;
|
|
+ unsigned int lut[33][33][33];
|
|
{
|
|
- unsigned int *lut;
|
|
Pix32 color;
|
|
unsigned int red, green, blue;
|
|
@@ -2432,7 +2432,4 @@
|
|
register int i;
|
|
|
|
- lut = Blt_Calloc(sizeof(unsigned int), 33 * 33 * 33);
|
|
- assert(lut);
|
|
-
|
|
color.Alpha = (unsigned char)-1;
|
|
for (cubePtr = cubes, i = 0; i < nColors; i++, cubePtr++) {
|
|
@@ -2451,5 +2448,4 @@
|
|
Mark(cubePtr, color.value, lut);
|
|
}
|
|
- return lut;
|
|
}
|
|
|
|
@@ -2514,5 +2510,5 @@
|
|
ColorImageStatistics *statistics;
|
|
int nColors;
|
|
- unsigned int *lut;
|
|
+ unsigned int lut[33][33][33];
|
|
|
|
/*
|
|
@@ -2528,9 +2524,8 @@
|
|
assert(nColors <= reduceColors);
|
|
|
|
- lut = CreateColorLookupTable(statistics, cubes, nColors);
|
|
+ CreateColorLookupTable(statistics, cubes, nColors, lut);
|
|
Blt_Free(statistics);
|
|
Blt_Free(cubes);
|
|
MapColors(src, dest, lut);
|
|
- Blt_Free(lut);
|
|
return TCL_OK;
|
|
}
|
|
--- src/bltUnixImage.c 2002-08-16 00:15:04.000000000 -0400
|
|
+++ src/bltUnixImage.c 2010-01-17 00:15:52.000000000 -0500
|
|
@@ -575,5 +575,5 @@
|
|
endPtr = destPtr + nPixels;
|
|
for (/* empty */; destPtr < endPtr; destPtr++) {
|
|
- hPtr = Blt_FindHashEntry(&pixelTable, (char *)destPtr->value);
|
|
+ hPtr = Blt_FindHashEntry(&pixelTable, (char *)(intptr_t)destPtr->value);
|
|
colorPtr = (XColor *)Blt_GetHashValue(hPtr);
|
|
destPtr->Red = lut[colorPtr->red >> 8];
|
|
--- src/bltTable.c 2002-10-14 19:31:24.000000000 -0400
|
|
+++ src/bltTable.c 2010-01-21 23:11:06.000000000 -0500
|
|
@@ -2035,5 +2035,5 @@
|
|
for (node = Blt_ListFirstNode(list); node != NULL;
|
|
node = Blt_ListNextNode(node)) {
|
|
- key = (int)Blt_ListGetKey(node);
|
|
+ key = (intptr_t)Blt_ListGetKey(node);
|
|
if (entryPtr->row.span <= key) {
|
|
break;
|
|
@@ -2047,5 +2047,5 @@
|
|
* span and and link it into the list of buckets.
|
|
*/
|
|
- newNode = Blt_ListCreateNode(list, (char *)entryPtr->row.span);
|
|
+ newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->row.span);
|
|
Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
|
|
Blt_ListLinkBefore(list, newNode, node);
|
|
@@ -2064,5 +2064,5 @@
|
|
for (node = Blt_ListFirstNode(list); node != NULL;
|
|
node = Blt_ListNextNode(node)) {
|
|
- key = (int)Blt_ListGetKey(node);
|
|
+ key = (intptr_t)Blt_ListGetKey(node);
|
|
if (entryPtr->column.span <= key) {
|
|
break;
|
|
@@ -2076,5 +2076,5 @@
|
|
* span and and link it into the list of buckets.
|
|
*/
|
|
- newNode = Blt_ListCreateNode(list, (char *)entryPtr->column.span);
|
|
+ newNode = Blt_ListCreateNode(list, (char *)(intptr_t)entryPtr->column.span);
|
|
Blt_ListSetValue(newNode, (char *)Blt_ChainCreate());
|
|
Blt_ListLinkBefore(list, newNode, node);
|
|
--- src/bltTreeView.c 2010-01-17 00:06:38.000000000 -0500
|
|
+++ src/bltTreeView.c 2010-01-21 23:12:51.000000000 -0500
|
|
@@ -1050,5 +1050,5 @@
|
|
Blt_HashEntry *hPtr;
|
|
int isNew;
|
|
- int refCount;
|
|
+ intptr_t refCount;
|
|
|
|
hPtr = Blt_CreateHashEntry(&tvPtr->uidTable, string, &isNew);
|
|
@@ -1056,5 +1056,5 @@
|
|
refCount = 1;
|
|
} else {
|
|
- refCount = (int)Blt_GetHashValue(hPtr);
|
|
+ refCount = (intptr_t)Blt_GetHashValue(hPtr);
|
|
refCount++;
|
|
}
|
|
@@ -1081,9 +1081,9 @@
|
|
{
|
|
Blt_HashEntry *hPtr;
|
|
- int refCount;
|
|
+ intptr_t refCount;
|
|
|
|
hPtr = Blt_FindHashEntry(&tvPtr->uidTable, uid);
|
|
assert(hPtr != NULL);
|
|
- refCount = (int)Blt_GetHashValue(hPtr);
|
|
+ refCount = (intptr_t)Blt_GetHashValue(hPtr);
|
|
refCount--;
|
|
if (refCount > 0) {
|
|
--- src/bltTreeView.h 2002-08-15 18:20:38.000000000 -0400
|
|
+++ src/bltTreeView.h 2010-01-21 23:17:42.000000000 -0500
|
|
@@ -1005,4 +1005,6 @@
|
|
extern void Blt_TreeViewDrawRule _ANSI_ARGS_((TreeView *tvPtr,
|
|
TreeViewColumn *columnPtr, Drawable drawable));
|
|
+extern int Blt_TreeViewTextbox _ANSI_ARGS_((TreeView *tvPtr,
|
|
+ TreeViewEntry *entryPtr, TreeViewColumn *columnPtr));
|
|
extern int Blt_TreeViewTextOp _ANSI_ARGS_((TreeView *tvPtr, Tcl_Interp *interp,
|
|
int objc, Tcl_Obj *CONST *objv));
|
|
--- src/bltTreeViewStyle.c 2002-07-22 18:18:40.000000000 -0400
|
|
+++ src/bltTreeViewStyle.c 2010-01-21 23:19:14.000000000 -0500
|
|
@@ -416,5 +416,5 @@
|
|
static StyleFreeProc FreeTextBox, FreeCheckBox, FreeComboBox;
|
|
static StyleMeasureProc MeasureTextBox, MeasureCheckBox, MeasureComboBox;
|
|
-static StylePickProc PickCheckBox, PickComboBox;
|
|
+static StylePickProc PickComboBox;
|
|
|
|
/*
|
|
@@ -1264,58 +1264,4 @@
|
|
*----------------------------------------------------------------------
|
|
*
|
|
- * PickCheckbox --
|
|
- *
|
|
- * Draws the "checkbox" given the screen coordinates and the
|
|
- * value to be displayed.
|
|
- *
|
|
- * Results:
|
|
- * None.
|
|
- *
|
|
- * Side Effects:
|
|
- * The checkbox value is drawn.
|
|
- *
|
|
- *----------------------------------------------------------------------
|
|
- */
|
|
-static int
|
|
-PickCheckBox(entryPtr, valuePtr, stylePtr, worldX, worldY)
|
|
- TreeViewEntry *entryPtr;
|
|
- TreeViewValue *valuePtr;
|
|
- TreeViewStyle *stylePtr;
|
|
- int worldX, worldY;
|
|
-{
|
|
- TreeViewColumn *columnPtr;
|
|
- TreeViewCheckBox *cbPtr = (TreeViewCheckBox *)stylePtr;
|
|
- int columnWidth;
|
|
- int x, y, width, height;
|
|
-
|
|
- columnPtr = valuePtr->columnPtr;
|
|
- columnWidth = columnPtr->width -
|
|
- (2 * columnPtr->borderWidth + PADDING(columnPtr->pad));
|
|
- if (columnWidth > valuePtr->width) {
|
|
- switch(columnPtr->justify) {
|
|
- case TK_JUSTIFY_RIGHT:
|
|
- worldX += (columnWidth - valuePtr->width);
|
|
- break;
|
|
- case TK_JUSTIFY_CENTER:
|
|
- worldX += (columnWidth - valuePtr->width) / 2;
|
|
- break;
|
|
- case TK_JUSTIFY_LEFT:
|
|
- break;
|
|
- }
|
|
- }
|
|
- width = height = ODD(cbPtr->size) + 2 * cbPtr->lineWidth;
|
|
- x = columnPtr->worldX + columnPtr->pad.side1 + cbPtr->gap -
|
|
- cbPtr->lineWidth;
|
|
- y = entryPtr->worldY + (entryPtr->height - height) / 2;
|
|
- if ((worldX >= x) && (worldX < (x + width)) &&
|
|
- (worldY >= y) && (worldY < (y + height))) {
|
|
- return TRUE;
|
|
- }
|
|
- return FALSE;
|
|
-}
|
|
-
|
|
-/*
|
|
- *----------------------------------------------------------------------
|
|
- *
|
|
* EditCheckbox --
|
|
*
|
|
--- src/bltObjConfig.c 2002-09-18 18:30:51.000000000 -0400
|
|
+++ src/bltObjConfig.c 2010-01-21 23:21:47.000000000 -0500
|
|
@@ -1220,5 +1220,5 @@
|
|
{
|
|
int bool;
|
|
- unsigned int flag;
|
|
+ uintptr_t flag;
|
|
|
|
|
|
@@ -1226,5 +1226,5 @@
|
|
return TCL_ERROR;
|
|
}
|
|
- flag = (unsigned int)specPtr->customPtr;
|
|
+ flag = (uintptr_t)specPtr->customPtr;
|
|
*(int *)ptr &= ~flag;
|
|
if (bool) {
|
|
@@ -1499,7 +1499,7 @@
|
|
case BLT_CONFIG_BITFLAG:
|
|
{
|
|
- unsigned int flag;
|
|
+ uintptr_t flag;
|
|
|
|
- flag = (*(int *)ptr) & (unsigned int)specPtr->customPtr;
|
|
+ flag = (*(int *)ptr) & (uintptr_t)specPtr->customPtr;
|
|
return Tcl_NewBooleanObj((flag != 0));
|
|
}
|
|
--- src/bltTed.c 2002-05-16 16:46:00.000000000 -0400
|
|
+++ src/bltTed.c 2010-01-21 23:24:01.000000000 -0500
|
|
@@ -307,8 +307,6 @@
|
|
static void DestroyTed _ANSI_ARGS_((DestroyData destroyData));
|
|
static void DisplayEntry _ANSI_ARGS_((ClientData clientData));
|
|
-static void DestroyEntry _ANSI_ARGS_((DestroyData destoryData));
|
|
|
|
static Tcl_CmdProc TedCmd;
|
|
-static Tk_EventProc EntryEventProc;
|
|
static Tk_EventProc TedEventProc;
|
|
|
|
@@ -343,72 +341,4 @@
|
|
|
|
/*
|
|
- *----------------------------------------------------------------------
|
|
- *
|
|
- * EventuallyRedraw --
|
|
- *
|
|
- * Queues a request to redraw the text window at the next idle
|
|
- * point.
|
|
- *
|
|
- * Results:
|
|
- * None.
|
|
- *
|
|
- * Side effects:
|
|
- * Information gets redisplayed. Right now we don't do selective
|
|
- * redisplays: the whole window will be redrawn. This doesn't
|
|
- * seem to hurt performance noticeably, but if it does then this
|
|
- * could be changed.
|
|
- *
|
|
- *----------------------------------------------------------------------
|
|
- */
|
|
-static void
|
|
-EventuallyRedrawEntry(repPtr)
|
|
- EntryRep *repPtr; /* Information about editor. */
|
|
-{
|
|
- if ((repPtr->tkwin != NULL) && !(repPtr->flags & REDRAW_PENDING)) {
|
|
- repPtr->flags |= REDRAW_PENDING;
|
|
- Tcl_DoWhenIdle(DisplayEntry, repPtr);
|
|
- }
|
|
-}
|
|
-
|
|
-/*
|
|
- * --------------------------------------------------------------
|
|
- *
|
|
- * EntryEventProc --
|
|
- *
|
|
- * This procedure is invoked by the Tk dispatcher for various
|
|
- * events on the editing grid for the table.
|
|
- *
|
|
- * Results:
|
|
- * None.
|
|
- *
|
|
- * Side effects:
|
|
- * When the window gets deleted, internal structures get
|
|
- * cleaned up. When it gets exposed, it is redisplayed.
|
|
- *
|
|
- * --------------------------------------------------------------
|
|
- */
|
|
-static void
|
|
-EntryEventProc(clientData, eventPtr)
|
|
- ClientData clientData; /* Information about window. */
|
|
- XEvent *eventPtr; /* Information about event. */
|
|
-{
|
|
- EntryRep *repPtr = (EntryRep *) clientData;
|
|
-
|
|
- if (eventPtr->type == ConfigureNotify) {
|
|
- EventuallyRedrawEntry(repPtr);
|
|
- } else if (eventPtr->type == Expose) {
|
|
- if (eventPtr->xexpose.count == 0) {
|
|
- EventuallyRedrawEntry(repPtr);
|
|
- }
|
|
- } else if (eventPtr->type == DestroyNotify) {
|
|
- repPtr->tkwin = NULL;
|
|
- if (repPtr->flags & REDRAW_PENDING) {
|
|
- Tcl_CancelIdleCall(DisplayEntry, repPtr);
|
|
- }
|
|
- Tcl_EventuallyFree(repPtr, DestroyEntry);
|
|
- }
|
|
-}
|
|
-
|
|
-/*
|
|
* --------------------------------------------------------------
|
|
*
|
|
@@ -545,78 +475,4 @@
|
|
* ----------------------------------------------------------------------------
|
|
*
|
|
- * CreateEntry --
|
|
- *
|
|
- * ----------------------------------------------------------------------------
|
|
- */
|
|
-static int
|
|
-CreateEntry(tedPtr, entryPtr)
|
|
- Ted *tedPtr;
|
|
- Entry *entryPtr;
|
|
-{
|
|
- Tk_Window tkwin, master;
|
|
- char string[200];
|
|
- EntryRep *repPtr;
|
|
- Blt_ChainLink *linkPtr;
|
|
-
|
|
- repPtr = Blt_Calloc(1, sizeof(EntryRep));
|
|
- assert(repPtr);
|
|
- repPtr->tablePtr = tedPtr->tablePtr;
|
|
- repPtr->tedPtr = tedPtr;
|
|
- repPtr->interp = tedPtr->interp;
|
|
- repPtr->entryPtr = entryPtr;
|
|
- repPtr->mapped = 0;
|
|
-
|
|
- /*
|
|
- * Create a sibling window to cover the master window. It will
|
|
- * be stacked just above the master window.
|
|
- */
|
|
-
|
|
- master = tedPtr->tablePtr->tkwin;
|
|
- sprintf(string, "bltTed%d", tedPtr->nextWindowId);
|
|
- tedPtr->nextWindowId++;
|
|
- tkwin = Tk_CreateWindow(tedPtr->interp, master, string, (char *)NULL);
|
|
- if (tkwin == NULL) {
|
|
- Blt_Free(repPtr);
|
|
- return TCL_ERROR;
|
|
- }
|
|
- Tk_SetClass(tkwin, "BltTed");
|
|
- Tk_CreateEventHandler(tkwin, ExposureMask | StructureNotifyMask,
|
|
- EntryEventProc, repPtr);
|
|
- repPtr->tkwin = tkwin;
|
|
- linkPtr = Blt_ChainNewLink();
|
|
- Blt_ChainSetValue(linkPtr, repPtr);
|
|
- Blt_ChainLinkAfter(tedPtr->chainPtr, linkPtr, (Blt_ChainLink *)NULL);
|
|
- return TCL_OK;
|
|
-}
|
|
-
|
|
-/*
|
|
- * ----------------------------------------------------------------------------
|
|
- *
|
|
- * DestroyEntry --
|
|
- *
|
|
- * ----------------------------------------------------------------------------
|
|
- */
|
|
-static void
|
|
-DestroyEntry(data)
|
|
- DestroyData data;
|
|
-{
|
|
- EntryRep *repPtr = (EntryRep *)data;
|
|
- Blt_ChainLink *linkPtr;
|
|
- Entry *entryPtr;
|
|
-
|
|
- for (linkPtr = Blt_ChainFirstLink(repPtr->tedPtr->chainPtr);
|
|
- linkPtr != NULL; linkPtr = Blt_ChainNextLink(linkPtr)) {
|
|
- entryPtr = Blt_ChainGetValue(linkPtr);
|
|
- if (entryPtr == repPtr->entryPtr) {
|
|
- Blt_ChainDeleteLink(repPtr->tedPtr->chainPtr, linkPtr);
|
|
- Blt_Free(repPtr);
|
|
- return;
|
|
- }
|
|
- }
|
|
-}
|
|
-
|
|
-/*
|
|
- * ----------------------------------------------------------------------------
|
|
- *
|
|
* DisplayEntry --
|
|
*
|