From 06ccbb96ec385a898b0a472ebf450fe66861dd9f Mon Sep 17 00:00:00 2001 From: treectrl Date: Tue, 28 Jan 2003 23:46:53 +0000 Subject: Moved static Tk_OptionTable vars into structs. --- generic/tkTreeColumn.c | 19 ++++++++----------- generic/tkTreeDrag.c | 17 +++++++---------- generic/tkTreeMarquee.c | 17 +++++++---------- generic/tkTreeStyle.c | 18 ++++++++---------- 4 files changed, 30 insertions(+), 41 deletions(-) diff --git a/generic/tkTreeColumn.c b/generic/tkTreeColumn.c index 23eefd0..8feb412 100644 --- a/generic/tkTreeColumn.c +++ b/generic/tkTreeColumn.c @@ -50,6 +50,7 @@ struct Column int arrowGravity; /* -arrowgravity */ TreeCtrl *tree; + Tk_OptionTable optionTable; int index; /* column number */ int textLen; int textWidth; @@ -176,8 +177,6 @@ static Tk_OptionSpec columnSpecs[] = { (char *) NULL, 0, -1, 0, 0, 0} }; -static Tk_OptionTable columnOptionTable = NULL; - /* Called when Tk_Image is deleted or modified */ static void ImageChangedProc( ClientData clientData, @@ -288,7 +287,7 @@ static int Column_Config(Column *column, int objc, Tcl_Obj *CONST objv[]) { if (error == 0) { - if (Tk_SetOptions(tree->interp, (char *) column, columnOptionTable, + if (Tk_SetOptions(tree->interp, (char *) column, column->optionTable, objc, objv, tree->tkwin, &savedOptions, &mask) != TCL_OK) { mask = 0; @@ -500,13 +499,11 @@ static Column *Column_Alloc(TreeCtrl *tree) { Column *column; - if (columnOptionTable == NULL) - columnOptionTable = Tk_CreateOptionTable(tree->interp, columnSpecs); - column = (Column *) ckalloc(sizeof(Column)); memset(column, '\0', sizeof(Column)); column->tree = tree; - if (Tk_InitOptions(tree->interp, (char *) column, columnOptionTable, + column->optionTable = Tk_CreateOptionTable(tree->interp, columnSpecs); + if (Tk_InitOptions(tree->interp, (char *) column, column->optionTable, tree->tkwin) != TCL_OK) { WFREE(column, Column); @@ -514,7 +511,7 @@ static Column *Column_Alloc(TreeCtrl *tree) } #if 0 if (Tk_SetOptions(header->tree->interp, (char *) column, - columnOptionTable, 0, + column->optionTable, 0, NULL, header->tree->tkwin, &savedOptions, (int *) NULL) != TCL_OK) { @@ -567,7 +564,7 @@ static Column *Column_Free(Column *column) Tk_FreeGC(tree->display, column->bitmapGC); if (column->image != NULL) Tk_FreeImage(column->image); - Tk_FreeConfigOptions((char *) column, columnOptionTable, tree->tkwin); + Tk_FreeConfigOptions((char *) column, column->optionTable, tree->tkwin); WFREE(column, Column); tree->columnCount--; return next; @@ -795,7 +792,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, if (TreeColumn_FromObj(tree, objv[3], &column, 0) != TCL_OK) return TCL_ERROR; resultObjPtr = Tk_GetOptionValue(interp, (char *) column, - columnOptionTable, objv[4], tree->tkwin); + ((Column *) column)->optionTable, objv[4], tree->tkwin); if (resultObjPtr == NULL) return TCL_ERROR; Tcl_SetObjResult(interp, resultObjPtr); @@ -820,7 +817,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, 0) != TCL_OK) return TCL_ERROR; resultObjPtr = Tk_GetOptionInfo(interp, (char *) column, - columnOptionTable, + column->optionTable, (objc == 4) ? (Tcl_Obj *) NULL : objv[4], tree->tkwin); if (resultObjPtr == NULL) diff --git a/generic/tkTreeDrag.c b/generic/tkTreeDrag.c index 96a61c2..f4d4dc4 100644 --- a/generic/tkTreeDrag.c +++ b/generic/tkTreeDrag.c @@ -12,6 +12,7 @@ struct DragElem struct DragImage { TreeCtrl *tree; + Tk_OptionTable optionTable; int visible; int x, y; /* offset to draw at in canvas coords */ int bounds[4]; /* bounds of all DragElems */ @@ -28,8 +29,6 @@ static Tk_OptionSpec optionSpecs[] = { (char *) NULL, 0, -1, 0, 0, 0} }; -static Tk_OptionTable optionTable = NULL; - static DragElem *DragElem_Alloc(DragImage *dragImage) { DragElem *elem = (DragElem *) ckalloc(sizeof(DragElem)); @@ -57,13 +56,11 @@ int TreeDragImage_Init(TreeCtrl *tree) { DragImage *dragImage; - if (optionTable == NULL) - optionTable = Tk_CreateOptionTable(tree->interp, optionSpecs); - dragImage = (DragImage *) ckalloc(sizeof(DragImage)); memset(dragImage, '\0', sizeof(DragImage)); dragImage->tree = tree; - if (Tk_InitOptions(tree->interp, (char *) dragImage, optionTable, + dragImage->optionTable = Tk_CreateOptionTable(tree->interp, optionSpecs); + if (Tk_InitOptions(tree->interp, (char *) dragImage, dragImage->optionTable, tree->tkwin) != TCL_OK) { WFREE(dragImage, DragImage); @@ -80,7 +77,7 @@ void TreeDragImage_Free(TreeDragImage dragImage_) while (elem != NULL) elem = DragElem_Free(dragImage, elem); - Tk_FreeConfigOptions((char *) dragImage, optionTable, + Tk_FreeConfigOptions((char *) dragImage, dragImage->optionTable, dragImage->tree->tkwin); WFREE(dragImage, DragImage); } @@ -117,7 +114,7 @@ static int DragImage_Config(DragImage *dragImage, int objc, Tcl_Obj *CONST objv[ Tk_SavedOptions savedOptions; int mask, result; - result = Tk_SetOptions(tree->interp, (char *) dragImage, optionTable, + result = Tk_SetOptions(tree->interp, (char *) dragImage, dragImage->optionTable, objc, objv, tree->tkwin, &savedOptions, &mask); if (result != TCL_OK) { @@ -372,7 +369,7 @@ doneAdd: return TCL_ERROR; } resultObjPtr = Tk_GetOptionValue(interp, (char *) dragImage, - optionTable, objv[3], tree->tkwin); + dragImage->optionTable, objv[3], tree->tkwin); if (resultObjPtr == NULL) return TCL_ERROR; Tcl_SetObjResult(interp, resultObjPtr); @@ -413,7 +410,7 @@ doneAdd: if (objc <= 4) { resultObjPtr = Tk_GetOptionInfo(interp, (char *) dragImage, - optionTable, + dragImage->optionTable, (objc == 3) ? (Tcl_Obj *) NULL : objv[3], tree->tkwin); if (resultObjPtr == NULL) diff --git a/generic/tkTreeMarquee.c b/generic/tkTreeMarquee.c index 2e2b7ad..0916aa0 100644 --- a/generic/tkTreeMarquee.c +++ b/generic/tkTreeMarquee.c @@ -5,6 +5,7 @@ typedef struct Marquee Marquee; struct Marquee { TreeCtrl *tree; + Tk_OptionTable optionTable; int visible; int x1, y1, x2, y2; int onScreen; @@ -19,19 +20,15 @@ static Tk_OptionSpec optionSpecs[] = { (char *) NULL, 0, -1, 0, 0, 0} }; -static Tk_OptionTable optionTable = NULL; - int TreeMarquee_Init(TreeCtrl *tree) { Marquee *marquee; - if (optionTable == NULL) - optionTable = Tk_CreateOptionTable(tree->interp, optionSpecs); - marquee = (Marquee *) ckalloc(sizeof(Marquee)); memset(marquee, '\0', sizeof(Marquee)); marquee->tree = tree; - if (Tk_InitOptions(tree->interp, (char *) marquee, optionTable, + marquee->optionTable = Tk_CreateOptionTable(tree->interp, optionSpecs); + if (Tk_InitOptions(tree->interp, (char *) marquee, marquee->optionTable, tree->tkwin) != TCL_OK) { WFREE(marquee, Marquee); @@ -45,7 +42,7 @@ void TreeMarquee_Free(TreeMarquee marquee_) { Marquee *marquee = (Marquee *) marquee_; - Tk_FreeConfigOptions((char *) marquee, optionTable, + Tk_FreeConfigOptions((char *) marquee, marquee->optionTable, marquee->tree->tkwin); WFREE(marquee, Marquee); } @@ -102,7 +99,7 @@ static int Marquee_Config(Marquee *marquee, int objc, Tcl_Obj *CONST objv[]) Tk_SavedOptions savedOptions; int mask, result; - result = Tk_SetOptions(tree->interp, (char *) marquee, optionTable, + result = Tk_SetOptions(tree->interp, (char *) marquee, marquee->optionTable, objc, objv, tree->tkwin, &savedOptions, &mask); if (result != TCL_OK) { @@ -180,7 +177,7 @@ int TreeMarqueeCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_ERROR; } resultObjPtr = Tk_GetOptionValue(interp, (char *) marquee, - optionTable, objv[3], tree->tkwin); + marquee->optionTable, objv[3], tree->tkwin); if (resultObjPtr == NULL) return TCL_ERROR; Tcl_SetObjResult(interp, resultObjPtr); @@ -200,7 +197,7 @@ int TreeMarqueeCmd(ClientData clientData, Tcl_Interp *interp, int objc, if (objc <= 4) { resultObjPtr = Tk_GetOptionInfo(interp, (char *) marquee, - optionTable, + marquee->optionTable, (objc == 3) ? (Tcl_Obj *) NULL : objv[3], tree->tkwin); if (resultObjPtr == NULL) diff --git a/generic/tkTreeStyle.c b/generic/tkTreeStyle.c index 1aba771..ab078b1 100644 --- a/generic/tkTreeStyle.c +++ b/generic/tkTreeStyle.c @@ -15,6 +15,7 @@ typedef struct ElementLink ElementLink; struct Style { + Tk_OptionTable optionTable; Tk_Uid name; int numElements; ElementLink *elements; @@ -80,8 +81,6 @@ static Tk_OptionSpec styleOptionSpecs[] = { (char *) NULL, 0, -1, 0, (ClientData) NULL, 0} }; -static Tk_OptionTable styleOptionTable = NULL; - struct Layout { ElementLink *eLink; @@ -2772,20 +2771,21 @@ static Style *Style_CreateAndConfig(TreeCtrl *tree, char *name, int objc, Tcl_Ob style = (Style *) ckalloc(sizeof(Style)); memset(style, '\0', sizeof(Style)); + style->optionTable = Tk_CreateOptionTable(tree->interp, styleOptionSpecs); style->name = Tk_GetUid(name); if (Tk_InitOptions(tree->interp, (char *) style, - styleOptionTable, tree->tkwin) != TCL_OK) + style->optionTable, tree->tkwin) != TCL_OK) { WFREE(style, Style); return NULL; } if (Tk_SetOptions(tree->interp, (char *) style, - styleOptionTable, objc, objv, tree->tkwin, + style->optionTable, objc, objv, tree->tkwin, NULL, NULL) != TCL_OK) { - Tk_FreeConfigOptions((char *) style, styleOptionTable, tree->tkwin); + Tk_FreeConfigOptions((char *) style, style->optionTable, tree->tkwin); WFREE(style, Style); return NULL; } @@ -3250,7 +3250,7 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, if (TreeStyle_FromObj(tree, objv[3], (TreeStyle *) &style) != TCL_OK) return TCL_ERROR; resultObjPtr = Tk_GetOptionValue(interp, (char *) style, - styleOptionTable, objv[4], tree->tkwin); + style->optionTable, objv[4], tree->tkwin); if (resultObjPtr == NULL) return TCL_ERROR; Tcl_SetObjResult(interp, resultObjPtr); @@ -3272,7 +3272,7 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, if (objc <= 5) { resultObjPtr = Tk_GetOptionInfo(interp, (char *) style, - styleOptionTable, + style->optionTable, (objc == 4) ? (Tcl_Obj *) NULL : objv[4], tree->tkwin); if (resultObjPtr == NULL) @@ -3282,7 +3282,7 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, else { if (Tk_SetOptions(tree->interp, (char *) style, - styleOptionTable, objc - 4, objv + 4, tree->tkwin, + style->optionTable, objc - 4, objv + 4, tree->tkwin, NULL, NULL) != TCL_OK) return TCL_ERROR; Style_Changed(tree, style); @@ -3911,8 +3911,6 @@ int TreeStyle_Init(Tcl_Interp *interp) { ElementType *typePtr; - styleOptionTable = Tk_CreateOptionTable(interp, styleOptionSpecs); - elementTypeList = &elemTypeBitmap; elemTypeBitmap.next = &elemTypeBorder; elemTypeBorder.next = &elemTypeImage; -- cgit v0.12