From 36c5870ead92a154b010da04ec630eb9dc477527 Mon Sep 17 00:00:00 2001 From: treectrl Date: Wed, 11 May 2005 03:24:47 +0000 Subject: Removed a bunch of conditional-compilation stuff and dead code. --- generic/tkTreeColumn.c | 269 +++++++----------------------------------------- generic/tkTreeCtrl.c | 36 +------ generic/tkTreeCtrl.h | 27 +---- generic/tkTreeDisplay.c | 222 +++++++++------------------------------ generic/tkTreeElem.c | 43 +++----- generic/tkTreeItem.c | 167 +++++++++--------------------- generic/tkTreeNotify.c | 8 +- generic/tkTreeStyle.c | 36 +------ 8 files changed, 154 insertions(+), 654 deletions(-) diff --git a/generic/tkTreeColumn.c b/generic/tkTreeColumn.c index dade491..8cb12a9 100644 --- a/generic/tkTreeColumn.c +++ b/generic/tkTreeColumn.c @@ -7,7 +7,7 @@ * Copyright (c) 2002-2003 Christian Krone * Copyright (c) 2003 ActiveState Corporation * - * RCS: @(#) $Id: tkTreeColumn.c,v 1.20 2005/05/10 21:58:43 treectrl Exp $ + * RCS: @(#) $Id: tkTreeColumn.c,v 1.21 2005/05/11 03:24:47 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -85,8 +85,6 @@ struct Column XColor **itemBgColor; GC bitmapGC; Column *next; -#define COL_LAYOUT -#ifdef COL_LAYOUT TextLayout textLayout; /* multi-line titles */ int textLayoutWidth; /* width passed to TextLayout_Compute */ int textLayoutInvalid; @@ -95,7 +93,6 @@ struct Column #define TEXT_WRAP_WORD 1 int textWrap; /* -textwrap */ int textLines; /* -textlines */ -#endif }; static char *arrowST[] = { "none", "up", "down", (char *) NULL }; @@ -205,12 +202,10 @@ static Tk_OptionSpec columnSpecs[] = { {TK_OPTION_COLOR, "-textcolor", (char *) NULL, (char *) NULL, DEF_BUTTON_FG, -1, Tk_Offset(Column, textColor), 0, (ClientData) NULL, COLU_CONF_DISPLAY}, -#ifdef COL_LAYOUT {TK_OPTION_INT, "-textlines", (char *) NULL, (char *) NULL, "1", -1, Tk_Offset(Column, textLines), 0, (ClientData) NULL, COLU_CONF_TEXT | COLU_CONF_NWIDTH | COLU_CONF_NHEIGHT | COLU_CONF_DISPLAY}, -#endif {TK_OPTION_CUSTOM, "-textpadx", (char *) NULL, (char *) NULL, "6", Tk_Offset(Column, textPadXObj), Tk_Offset(Column, textPadX), 0, (ClientData) &PadAmountOption, @@ -647,86 +642,10 @@ static int Column_Config(Column *column, int objc, Tcl_Obj *CONST objv[], int cr Tree_DInfoChanged(tree, DINFO_INVALIDATE | DINFO_OUT_OF_DATE); } -#if 0 - stateNew = Column_MakeState(column); - if (stateOld != stateNew) { - int csMask = 0; - if (column->arrowImage.obj != NULL) { - Tk_Image image1, image2; - Pixmap bitmap1, bitmap2; - int arrowUp, arrowDown; - int w1, h1, w2, h2; - void *ptr1 = NULL, *ptr2 = NULL; - - /* image > bitmap > theme > draw */ - image1 = PerStateImage_ForState(tree, &column->arrowImage, stateOld, NULL); - if (image1 != NULL) { - Tk_SizeOfImage(image1, &w1, &h1); - ptr1 = image1; - } - if (ptr1 == NULL) { - bitmap1 = PerStateBitmap_ForState(tree, &column->arrowBitmap, stateOld, NULL); - if (bitmap1 != None) { - Tk_SizeOfBitmap(tree->display, bitmap1, &w1, &h1); - ptr1 = (void *) bitmap1; - } - } - if (ptr1 == NULL) { - w1 = h1 = 1; /* any value will do */ - ptr1 = (stateOld & (1L << 3)) ? &arrowUp : &arrowDown; - } - - /* image > bitmap > theme > draw */ - image2 = PerStateImage_ForState(tree, &column->arrowImage, stateNew, NULL); - if (image2 != NULL) { - Tk_SizeOfImage(image2, &w2, &h2); - ptr2 = image2; - } - if (ptr2 == NULL) { - bitmap2 = PerStateBitmap_ForState(tree, &column->arrowBitmap, stateNew, NULL); - if (bitmap2 != None) { - Tk_SizeOfBitmap(tree->display, bitmap2, &w2, &h2); - ptr2 = (void *) bitmap2; - } - } - if (ptr2 == NULL) { - w2 = h2 = 1; /* any value will do */ - ptr2 = (stateNew & (1L << 3)) ? &arrowUp : &arrowDown; - } - - if ((w1 != w2) || (h1 != h2)) { - csMask |= CS_LAYOUT | CS_DISPLAY; - } else if (ptr1 != ptr2) { - csMask |= CS_DISPLAY; - } - } - if (1 /* column->border.obj != NULL */ /* NEVER NULL */) { - Tk_3DBorder border1, border2; - border1 = PerStateBorder_ForState(tree, &column->border, - stateOld, NULL); - border2 = PerStateBorder_ForState(tree, &column->border, - stateNew, NULL); - if (border1 != border2) { - csMask |= CS_DISPLAY; - } - } - if (csMask & CS_LAYOUT) - mask |= COLU_CONF_NWIDTH | COLU_CONF_NHEIGHT; - if (csMask & CS_DISPLAY) - mask |= COLU_CONF_DISPLAY; -#ifdef THEME - if (tree->useTheme) - mask |= COLU_CONF_DISPLAY; /* assume no size changes */ -#endif - } -#endif - -#ifdef COL_LAYOUT if (mask & (COLU_CONF_NWIDTH | COLU_CONF_TWIDTH)) mask |= COLU_CONF_NHEIGHT; if (mask & (COLU_CONF_JUSTIFY | COLU_CONF_TEXT)) column->textLayoutInvalid = TRUE; -#endif if (mask & COLU_CONF_NWIDTH) column->neededWidth = -1; @@ -794,10 +713,8 @@ static Column *Column_Free(Column *column) Tk_FreeGC(tree->display, column->bitmapGC); if (column->image != NULL) Tk_FreeImage(column->image); -#ifdef COL_LAYOUT if (column->textLayout != NULL) TextLayout_Free(column->textLayout); -#endif Tk_FreeConfigOptions((char *) column, column->optionTable, tree->tkwin); WFREE(column, Column); tree->columnCount--; @@ -819,7 +736,6 @@ int TreeColumn_StepWidth(TreeColumn column_) return ((Column *) column_)->stepWidthObj ? ((Column *) column_)->stepWidth : -1; } -#ifdef COL_LAYOUT static void Column_UpdateTextLayout(Column *column, int width) { Tk_Font tkfont; @@ -857,7 +773,6 @@ static void Column_UpdateTextLayout(Column *column, int width) column->textLayout = TextLayout_Compute(tkfont, text, Tcl_NumUtfChars(text, textLen), width, justify, maxLines, flags); } -#endif static void Column_GetArrowSize(Column *column, int *widthPtr, int *heightPtr) { @@ -880,9 +795,7 @@ static void Column_GetArrowSize(Column *column, int *widthPtr, int *heightPtr) Tk_SizeOfBitmap(tree->display, bitmap, &arrowWidth, &arrowHeight); } } -#ifdef THEME /* FIXME: theme size */ -#endif if (arrowWidth == -1) { Tk_Font tkfont = column->tkfont ? column->tkfont : tree->tkfont; Tk_FontMetrics fm; @@ -990,7 +903,6 @@ static void Column_DoLayoutH(Column *column, struct Layout *layout) } layout->bytesThatFit = 0; if (widthForText > 0) { -#ifdef COL_LAYOUT if (column->textLayoutInvalid || (column->textLayoutWidth != widthForText)) { Column_UpdateTextLayout(column, widthForText); column->textLayoutInvalid = FALSE; @@ -1003,26 +915,23 @@ static void Column_DoLayoutH(Column *column, struct Layout *layout) padList[n + 1] = partText.padX[PAD_BOTTOM_RIGHT]; iText = n++; } else { -#endif - layout->tkfont = column->tkfont ? column->tkfont : column->tree->tkfont; - Tk_GetFontMetrics(layout->tkfont, &layout->fm); - if (widthForText >= column->textWidth) { - partText.width = column->textWidth; - partText.height = layout->fm.linespace; - layout->bytesThatFit = column->textLen; - } else { - partText.width = widthForText; - partText.height = layout->fm.linespace; - layout->bytesThatFit = Ellipsis(layout->tkfont, column->text, - column->textLen, &partText.width, "...", FALSE); + layout->tkfont = column->tkfont ? column->tkfont : column->tree->tkfont; + Tk_GetFontMetrics(layout->tkfont, &layout->fm); + if (widthForText >= column->textWidth) { + partText.width = column->textWidth; + partText.height = layout->fm.linespace; + layout->bytesThatFit = column->textLen; + } else { + partText.width = widthForText; + partText.height = layout->fm.linespace; + layout->bytesThatFit = Ellipsis(layout->tkfont, column->text, + column->textLen, &partText.width, "...", FALSE); + } + parts[n] = &partText; + padList[n] = MAX(partText.padX[PAD_TOP_LEFT], padList[n]); + padList[n + 1] = partText.padX[PAD_BOTTOM_RIGHT]; + iText = n++; } - parts[n] = &partText; - padList[n] = MAX(partText.padX[PAD_TOP_LEFT], padList[n]); - padList[n + 1] = partText.padX[PAD_BOTTOM_RIGHT]; - iText = n++; -#ifdef COL_LAYOUT - } -#endif } if ((column->arrow != ARROW_NONE) && (column->arrowSide == SIDE_RIGHT)) { parts[n] = &partArrow; @@ -1225,7 +1134,6 @@ int TreeColumn_NeededWidth(TreeColumn column_) if (column->textLen > 0) { padList[n] = MAX(column->textPadX[PAD_TOP_LEFT], padList[n]); padList[n + 1] = column->textPadX[PAD_BOTTOM_RIGHT]; -#ifdef COL_LAYOUT if (column->textLayoutInvalid || (column->textLayoutWidth != 0)) { Column_UpdateTextLayout(column, 0); column->textLayoutInvalid = FALSE; @@ -1234,8 +1142,7 @@ int TreeColumn_NeededWidth(TreeColumn column_) if (column->textLayout != NULL) TextLayout_Size(column->textLayout, &widthList[n], NULL); else -#endif - widthList[n] = column->textWidth; + widthList[n] = column->textWidth; n++; } if ((column->arrow != ARROW_NONE) && (column->arrowSide == SIDE_RIGHT)) { @@ -1259,9 +1166,7 @@ int TreeColumn_NeededHeight(TreeColumn column_) { Column *column = (Column *) column_; TreeCtrl *tree = column->tree; -#ifdef THEME int margins[4]; -#endif if (column->neededHeight >= 0) return column->neededHeight; @@ -1285,7 +1190,6 @@ int TreeColumn_NeededHeight(TreeColumn column_) column->neededHeight = MAX(column->neededHeight, imgHeight); } if (column->text != NULL) { -#ifdef COL_LAYOUT struct Layout layout; layout.width = TreeColumn_UseWidth(column_); layout.height = -1; @@ -1297,18 +1201,14 @@ int TreeColumn_NeededHeight(TreeColumn column_) + column->textPadY[PAD_BOTTOM_RIGHT]; column->neededHeight = MAX(column->neededHeight, height); } else { -#endif - Tk_Font tkfont = column->tkfont ? column->tkfont : column->tree->tkfont; - Tk_FontMetrics fm; - Tk_GetFontMetrics(tkfont, &fm); - fm.linespace += column->textPadY[PAD_TOP_LEFT] - + column->textPadY[PAD_BOTTOM_RIGHT]; - column->neededHeight = MAX(column->neededHeight, fm.linespace); -#ifdef COL_LAYOUT + Tk_Font tkfont = column->tkfont ? column->tkfont : column->tree->tkfont; + Tk_FontMetrics fm; + Tk_GetFontMetrics(tkfont, &fm); + fm.linespace += column->textPadY[PAD_TOP_LEFT] + + column->textPadY[PAD_BOTTOM_RIGHT]; + column->neededHeight = MAX(column->neededHeight, fm.linespace); } -#endif } -#ifdef THEME if (column->tree->useTheme && (TreeTheme_GetHeaderContentMargins(tree, column->state, margins) == TCL_OK)) { #ifdef WIN32 @@ -1319,9 +1219,9 @@ int TreeColumn_NeededHeight(TreeColumn column_) margins[3] = MAX(margins[3], bw); #endif /* WIN32 */ column->neededHeight += margins[1] + margins[3]; - } else -#endif /* THEME */ - column->neededHeight += column->borderWidth * 2; + } else { + column->neededHeight += column->borderWidth * 2; + } return column->neededHeight; } @@ -1803,7 +1703,6 @@ static void Column_DrawArrow(Column *column, Drawable drawable, int x, int y, return; } -#ifdef THEME if (tree->useTheme) { if (TreeTheme_DrawHeaderArrow(tree, drawable, column->arrow == ARROW_UP, x + layout.arrowLeft, @@ -1811,7 +1710,6 @@ static void Column_DrawArrow(Column *column, Drawable drawable, int x, int y, layout.arrowHeight) == TCL_OK) return; } -#endif if (1) { int arrowWidth = layout.arrowWidth; @@ -1870,11 +1768,7 @@ static void Column_DrawArrow(Column *column, Drawable drawable, int x, int y, } } -#ifdef COLUMN_DRAG_IMAGE static void Column_Draw(Column *column, Drawable drawable, int x, int y, int dragImage) -#else -static void Column_Draw(Column *column, Drawable drawable, int x, int y) -#endif { TreeCtrl *tree = column->tree; int height = tree->headerHeight; @@ -1883,9 +1777,7 @@ static void Column_Draw(Column *column, Drawable drawable, int x, int y) int sunken = column->state == COLUMN_STATE_PRESSED; int relief = sunken ? TK_RELIEF_SUNKEN : TK_RELIEF_RAISED; Tk_3DBorder border; -#ifdef THEME int theme = TCL_ERROR; -#endif layout.width = width; layout.height = height; @@ -1896,24 +1788,18 @@ static void Column_Draw(Column *column, Drawable drawable, int x, int y) if (border == NULL) border = tree->border; -#ifdef COLUMN_DRAG_IMAGE if (dragImage) { GC gc = Tk_GCForColor(tree->columnDrag.color, Tk_WindowId(tree->tkwin)); XFillRectangle(tree->display, drawable, gc, x, y, width, height); } else { -#endif -#ifdef THEME - if (tree->useTheme) { - theme = TreeTheme_DrawHeaderItem(tree, drawable, column->state, x, y, - width, height); - } - if (theme != TCL_OK) -#endif - Tk_Fill3DRectangle(tree->tkwin, drawable, border, - x, y, width, height, 0, TK_RELIEF_FLAT); -#ifdef COLUMN_DRAG_IMAGE + if (tree->useTheme) { + theme = TreeTheme_DrawHeaderItem(tree, drawable, column->state, x, y, + width, height); + } + if (theme != TCL_OK) + Tk_Fill3DRectangle(tree->tkwin, drawable, border, + x, y, width, height, 0, TK_RELIEF_FLAT); } -#endif if (column->image != NULL) { int imgW, imgH, ix, iy, h; @@ -1940,7 +1826,6 @@ static void Column_Draw(Column *column, Drawable drawable, int x, int y) XSetClipOrigin(tree->display, column->bitmapGC, 0, 0); } -#ifdef COL_LAYOUT if ((column->text != NULL) && (column->textLayout != NULL)) { int h; XGCValues gcValues; @@ -1959,9 +1844,7 @@ static void Column_Draw(Column *column, Drawable drawable, int x, int y) y + (height - h) / 2 + column->textPadY[PAD_TOP_LEFT] + sunken, 0, -1); Tk_FreeGC(tree->display, gc); - } else -#endif - if ((column->text != NULL) && (layout.bytesThatFit != 0)) { + } else if ((column->text != NULL) && (layout.bytesThatFit != 0)) { XGCValues gcValues; GC gc; unsigned long mask; @@ -1999,22 +1882,16 @@ static void Column_Draw(Column *column, Drawable drawable, int x, int y) ckfree(text); } -#ifdef COLUMN_DRAG_IMAGE if (dragImage) return; -#endif Column_DrawArrow(column, drawable, x, y, layout); -#ifdef THEME if (theme != TCL_OK) -#endif - Tk_Draw3DRectangle(tree->tkwin, drawable, border, - x, y, width, height, column->borderWidth, relief); + Tk_Draw3DRectangle(tree->tkwin, drawable, border, + x, y, width, height, column->borderWidth, relief); } -#ifdef COLUMN_DRAG_IMAGE - Tk_Image SetImageForColumn(TreeCtrl *tree, Column *column) { Tk_PhotoHandle photoH; @@ -2052,69 +1929,13 @@ Tk_Image SetImageForColumn(TreeCtrl *tree, Column *column) NULL, (ClientData) NULL); } -#if 0 -Tk_PhotoHandle SetImageForHeader(TreeCtrl *tree) -{ - Tk_PhotoHandle photoH; - Pixmap pixmap; - int width = Tk_Width(tree->tkwin) - tree->inset * 2; - int height = tree->headerHeight; - int doubleBuffer = tree->doubleBuffer; - XImage *ximage; - - photoH = Tk_FindPhoto(tree->interp, "TreeCtrlHeaderImage"); - if (photoH == NULL) - return NULL; - - pixmap = Tk_GetPixmap(tree->display, Tk_WindowId(tree->tkwin), - width, height, Tk_Depth(tree->tkwin)); - - tree->doubleBuffer = DOUBLEBUFFER_NONE; - Tree_DrawHeader(tree, pixmap, 0 - tree->xOrigin - tree->inset, 0); - tree->doubleBuffer = doubleBuffer; - - ximage = XGetImage(tree->display, pixmap, 0, 0, - (unsigned int)width, (unsigned int)height, AllPlanes, ZPixmap); - if (ximage == NULL) - panic("ximage is NULL"); - - SetTkImageFromXImage(tree, photoH, ximage, 255); - - XDestroyImage(ximage); - Tk_FreePixmap(tree->display, pixmap); - - return photoH; -} - -void CompositeColumnImageWithHeaderImage(TreeCtrl *tree, Column *column) -{ - Tk_PhotoImageBlock photoBlock; - Tk_PhotoHandle photoH1, photoH2; - int x, y; - - photoH1 = SetImageForHeader(tree); - photoH2 = SetImageForColumn(tree); - - if (!photoH1 || !photoH2) - return; - - Tk_PhotoGetImage(photoH2, &photoBlock); - - TK_PHOTOPUTBLOCK(interp, photoH1, &photoBlock, column->dragOffset, 0, - photoBlock.width, photoBlock.height, TK_PHOTO_COMPOSITE_OVERLAY); -} -#endif -#endif - void Tree_DrawHeader(TreeCtrl *tree, Drawable drawable, int x, int y) { Column *column = (Column *) tree->columns; Tk_Window tkwin = tree->tkwin; int minX, maxX, width, height; Drawable pixmap; -#ifdef COLUMN_DRAG_IMAGE int x2 = x; -#endif /* Update layout if needed */ (void) Tree_HeaderHeight(tree); @@ -2132,11 +1953,7 @@ void Tree_DrawHeader(TreeCtrl *tree, Drawable drawable, int x, int y) while (column != NULL) { if (column->visible) { if ((x < maxX) && (x + column->useWidth > minX)) -#ifdef COLUMN_DRAG_IMAGE Column_Draw(column, pixmap, x, y, FALSE); -#else - Column_Draw(column, pixmap, x, y); -#endif x += column->useWidth; } column = column->next; @@ -2147,12 +1964,9 @@ void Tree_DrawHeader(TreeCtrl *tree, Drawable drawable, int x, int y) column = (Column *) tree->columnTail; width = maxX - x + column->borderWidth; height = tree->headerHeight; -#ifdef THEME if (tree->useTheme && (TreeTheme_DrawHeaderItem(tree, pixmap, 0, x, y, width, height) == TCL_OK)) { - } else -#endif - { + } else { Tk_3DBorder border; border = PerStateBorder_ForState(tree, &column->border, Column_MakeState(column), NULL); @@ -2163,7 +1977,6 @@ void Tree_DrawHeader(TreeCtrl *tree, Drawable drawable, int x, int y) } } -#ifdef COLUMN_DRAG_IMAGE { Tk_Image image = NULL; int imageX = 0, imageW = 0, indDraw = FALSE, indX = 0; @@ -2200,7 +2013,6 @@ void Tree_DrawHeader(TreeCtrl *tree, Drawable drawable, int x, int y) Tk_FreeImage(image); } } -#endif if (tree->doubleBuffer == DOUBLEBUFFER_ITEM) { XCopyArea(tree->display, pixmap, drawable, @@ -2371,11 +2183,8 @@ void TreeColumn_TreeChanged(TreeCtrl *tree, int flagT) while (column != NULL) { if ((column->tkfont == NULL) && (column->textLen > 0)) { column->textWidth = Tk_TextWidth(tree->tkfont, column->text, column->textLen); - column->neededHeight = -1; -#ifdef COL_LAYOUT + column->neededWidth = column->neededHeight = -1; column->textLayoutInvalid = TRUE; - column->neededWidth = -1; -#endif } column = column->next; } diff --git a/generic/tkTreeCtrl.c b/generic/tkTreeCtrl.c index 8b5412f..7b6074c 100644 --- a/generic/tkTreeCtrl.c +++ b/generic/tkTreeCtrl.c @@ -7,7 +7,7 @@ * Copyright (c) 2002-2003 Christian Krone * Copyright (c) 2003-2004 ActiveState, a division of Sophos * - * RCS: @(#) $Id: tkTreeCtrl.c,v 1.32 2005/05/10 22:07:43 treectrl Exp $ + * RCS: @(#) $Id: tkTreeCtrl.c,v 1.33 2005/05/11 03:24:47 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -45,12 +45,10 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_BORDER, "-background", "background", "Background", "white", -1, Tk_Offset(TreeCtrl, border), 0, (ClientData) "white", TREE_CONF_REDISPLAY}, -#ifdef BG_IMAGE {TK_OPTION_STRING, "-backgroundimage", "backgroundImage", "BackgroundImage", (char *) NULL, -1, Tk_Offset(TreeCtrl, backgroundImageString), TK_OPTION_NULL_OK, (ClientData) NULL, TREE_CONF_BG_IMAGE | TREE_CONF_REDISPLAY}, -#endif {TK_OPTION_STRING_TABLE, "-backgroundmode", "backgroundMode", "BackgroundMode", "row", -1, Tk_Offset(TreeCtrl, backgroundMode), @@ -191,11 +189,9 @@ static Tk_OptionSpec optionSpecs[] = { {TK_OPTION_INT, "-treecolumn", "treeColumn", "TreeColumn", "0", -1, Tk_Offset(TreeCtrl, columnTree), 0, (ClientData) NULL, TREE_CONF_RELAYOUT}, -#ifdef THEME {TK_OPTION_BOOLEAN, "-usetheme", "useTheme", "UseTheme", "0", -1, Tk_Offset(TreeCtrl, useTheme), 0, (ClientData) NULL, TREE_CONF_THEME | TREE_CONF_RELAYOUT}, -#endif {TK_OPTION_PIXELS, "-width", "width", "Width", "200", Tk_Offset(TreeCtrl, widthObj), Tk_Offset(TreeCtrl, width), 0, (ClientData) NULL, TREE_CONF_RELAYOUT}, @@ -244,7 +240,6 @@ static Tk_OptionSpec debugSpecs[] = { (char *) NULL, 0, -1, 0, 0, 0} }; -#ifdef COLUMN_DRAG_IMAGE static Tk_OptionSpec dragSpecs[] = { {TK_OPTION_BOOLEAN, "-enable", (char *) NULL, (char *) NULL, "0", -1, Tk_Offset(TreeCtrl, columnDrag.enable), @@ -270,7 +265,6 @@ static Tk_OptionSpec dragSpecs[] = { {TK_OPTION_END, (char *) NULL, (char *) NULL, (char *) NULL, (char *) NULL, 0, -1, 0, 0, 0} }; -#endif static int TreeWidgetCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]); @@ -285,9 +279,7 @@ static int TreeSelectionCmd(Tcl_Interp *interp, TreeCtrl *tree, int objc, Tcl_Ob static int TreeXviewCmd(Tcl_Interp *interp, TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]); static int TreeYviewCmd(Tcl_Interp *interp, TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]); static int TreeDebugCmd(ClientData clientData, Tcl_Interp *interp, int objc,Tcl_Obj *CONST objv[]); -#ifdef COLUMN_DRAG_IMAGE static int TreeColumnDragCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]); -#endif static Tk_ClassProcs treectrlClass = { sizeof(Tk_ClassProcs), /* size */ @@ -402,9 +394,7 @@ static int TreeWidgetCmd(ClientData clientData, Tcl_Interp *interp, int objc, static CONST char *commandName[] = { "activate", "canvasx", "canvasy", "cget", "collapse", "column", -#ifdef COLUMN_DRAG_IMAGE "columndrag", -#endif "compare", "configure", "contentbox", "debug", "depth", "dragimage", "element", "expand", "identify", "index", "item", @@ -415,9 +405,7 @@ static int TreeWidgetCmd(ClientData clientData, Tcl_Interp *interp, int objc, enum { COMMAND_ACTIVATE, COMMAND_CANVASX, COMMAND_CANVASY, COMMAND_CGET, COMMAND_COLLAPSE, COMMAND_COLUMN, -#ifdef COLUMN_DRAG_IMAGE COMMAND_COLUMNDRAG, -#endif COMMAND_COMPARE, COMMAND_CONFIGURE, COMMAND_CONTENTBOX, COMMAND_DEBUG, COMMAND_DEPTH, COMMAND_DRAGIMAGE, COMMAND_ELEMENT, COMMAND_EXPAND,COMMAND_IDENTIFY, @@ -592,13 +580,11 @@ static int TreeWidgetCmd(ClientData clientData, Tcl_Interp *interp, int objc, break; } -#ifdef COLUMN_DRAG_IMAGE case COMMAND_COLUMNDRAG: { result = TreeColumnDragCmd(clientData, interp, objc, objv); break; } -#endif case COMMAND_COMPARE: { @@ -1124,10 +1110,8 @@ static int TreeConfigure(Tcl_Interp *interp, TreeCtrl *tree, int objc, * Step 1: Save old values */ -#ifdef BG_IMAGE if (mask & TREE_CONF_BG_IMAGE) saved.backgroundImage = tree->backgroundImage; -#endif if (mask & TREE_CONF_BUTBMP) PSTSave(&tree->buttonBitmap, &saved.buttonBitmap); if (mask & TREE_CONF_BUTIMG) @@ -1145,7 +1129,6 @@ static int TreeConfigure(Tcl_Interp *interp, TreeCtrl *tree, int objc, * Step 2: Process new values */ -#ifdef BG_IMAGE if (mask & TREE_CONF_BG_IMAGE) { tree->backgroundImage = NULL; if (tree->backgroundImageString != NULL) { @@ -1155,7 +1138,6 @@ static int TreeConfigure(Tcl_Interp *interp, TreeCtrl *tree, int objc, tree->backgroundImage = image; } } -#endif if (mask & TREE_CONF_BUTBMP) { if (PerStateInfo_FromObj(tree, TreeStateFromObj, &pstBitmap, @@ -1259,10 +1241,8 @@ badWrap: * Step 3: Free saved values */ -#ifdef BG_IMAGE if (mask & TREE_CONF_BG_IMAGE) ; /* nothing to free */ -#endif if (mask & TREE_CONF_DEFSTYLE) { if (saved.defaultStyle.styles != NULL) ckfree((char *) saved.defaultStyle.styles); @@ -1279,11 +1259,9 @@ badWrap: Tcl_IncrRefCount(errorResult); Tk_RestoreSavedOptions(&savedOptions); -#ifdef BG_IMAGE if (mask & TREE_CONF_BG_IMAGE) { tree->backgroundImage = saved.backgroundImage; } -#endif if (mask & TREE_CONF_BUTBMP) { PSTRestore(tree, &pstBitmap, &tree->buttonBitmap, &saved.buttonBitmap); @@ -2553,19 +2531,15 @@ static int A_YviewCmd(TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]) static int TreeXviewCmd(Tcl_Interp *interp, TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]) { -#ifdef INCREMENTS if (tree->xScrollIncrement <= 0) return B_XviewCmd(tree, objc, objv); -#endif return A_XviewCmd(tree, objc, objv); } static int TreeYviewCmd(Tcl_Interp *interp, TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]) { -#ifdef INCREMENTS if (tree->yScrollIncrement <= 0) return B_YviewCmd(tree, objc, objv); -#endif return A_YviewCmd(tree, objc, objv); } @@ -2680,7 +2654,6 @@ static int TreeDebugCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_OK; } -#ifdef COLUMN_DRAG_IMAGE static int TreeColumnDragCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { @@ -2759,7 +2732,6 @@ static int TreeColumnDragCmd(ClientData clientData, Tcl_Interp *interp, int objc return TCL_OK; } -#endif /* textlayout $font $text @@ -3100,8 +3072,6 @@ int LoupeCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST #endif /* not TARGET_OS_MAC */ #endif /* not WIN32 */ -#ifdef THEME - /* Taken from tkFont.c */ static void RecomputeWidgets(TkWindow *winPtr) { @@ -3129,8 +3099,6 @@ void Tree_TheWorldHasChanged(Tcl_Interp *interp) RecomputeWidgets(winPtr); } -#endif /* THEME */ - static char initScript[] = "if {![llength [info proc ::TreeCtrl::Init]]} {\n\ namespace eval ::TreeCtrl {}\n\ proc ::TreeCtrl::Init {} {\n\ @@ -3159,10 +3127,8 @@ DLLEXPORT int Treectrl_Init(Tcl_Interp *interp) if (TreeStyle_Init(interp) != TCL_OK) { return TCL_ERROR; } -#ifdef THEME /* We don't care if this fails */ (void) TreeTheme_Init(interp); -#endif /* Hack for editing a text Element */ Tcl_CreateObjCommand(interp, "textlayout", TextLayoutCmd, NULL, NULL); diff --git a/generic/tkTreeCtrl.h b/generic/tkTreeCtrl.h index 6ffdf1c..4feb379 100644 --- a/generic/tkTreeCtrl.h +++ b/generic/tkTreeCtrl.h @@ -7,7 +7,7 @@ * Copyright (c) 2002-2003 Christian Krone * Copyright (c) 2003 ActiveState Corporation * - * RCS: @(#) $Id: tkTreeCtrl.h,v 1.22 2005/05/10 22:10:14 treectrl Exp $ + * RCS: @(#) $Id: tkTreeCtrl.h,v 1.23 2005/05/11 03:24:47 treectrl Exp $ */ #include "tkPort.h" @@ -41,10 +41,7 @@ #define MAX(a,b) ((a) > (b) ? (a) : (b)) #endif -#define INCREMENTS #define SELECTION_VISIBLE -#define BG_IMAGE -#define THEME typedef struct TreeCtrl TreeCtrl; typedef struct TreeColumn_ *TreeColumn; @@ -112,8 +109,6 @@ struct TreeCtrlDebug GC gcErase; /* for eraseColor */ }; -#define COLUMN_DRAG_IMAGE -#ifdef COLUMN_DRAG_IMAGE struct TreeCtrlColumnDrag { Tk_OptionTable optionTable; @@ -123,11 +118,9 @@ struct TreeCtrlColumnDrag int offset; /* -imageoffset */ XColor *color; /* -imagecolor */ int alpha; /* -imagealpha */ -#define SIDE_NONE 2 int indColumn; /* -indicatorcolumn */ XColor *indColor; /* -indicatorcolor */ }; -#endif struct TreeCtrl { @@ -203,9 +196,7 @@ struct TreeCtrl Tcl_Obj *wrapObj; /* -wrap */ PerStateInfo buttonImage; /* -buttonimage */ PerStateInfo buttonBitmap; /* -buttonbitmap */ -#ifdef BG_IMAGE char *backgroundImageString; /* -backgroundimage */ -#endif int useIndent; /* MAX of open/closed button width and * indent */ #define BG_MODE_COLUMN 0 @@ -232,12 +223,9 @@ struct TreeCtrl GC textGC; GC buttonGC; GC lineGC; -#ifdef BG_IMAGE Tk_Image backgroundImage; /* -backgroundimage */ -#endif -#ifdef THEME int useTheme; /* -usetheme */ -#endif + int prevWidth; int prevHeight; int drawableXOrigin; @@ -320,12 +308,8 @@ struct TreeCtrl #define TREE_CONF_BUTTON 0x1000 #define TREE_CONF_LINE 0x2000 #define TREE_CONF_DEFSTYLE 0x4000 -#ifdef BG_IMAGE #define TREE_CONF_BG_IMAGE 0x8000 -#endif -#ifdef THEME #define TREE_CONF_THEME 0x00010000 -#endif extern void Tree_AddItem(TreeCtrl *tree, TreeItem item); extern void Tree_RemoveItem(TreeCtrl *tree, TreeItem item); @@ -511,10 +495,7 @@ extern void TreeNotify_Selection(TreeCtrl *tree, TreeItem select[], TreeItem des extern int TreeNotifyCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]); extern void TreeNotify_ActiveItem(TreeCtrl *tree, TreeItem itemOld, TreeItem itemNew); extern void TreeNotify_Scroll(TreeCtrl *tree, double fractions[2], int vertical); -#define ALLOW_EVENT_ITEM_DELETED -#ifdef ALLOW_EVENT_ITEM_DELETED extern void TreeNotify_ItemDeleted(TreeCtrl *tree, int itemIds[], int count); -#endif /* tkTreeColumn.c */ extern void Tree_InitColumns(TreeCtrl *tree); @@ -606,10 +587,8 @@ extern void Tree_FocusChanged(TreeCtrl *tree, int gotFocus); extern TreeItem *Tree_ItemsInArea(TreeCtrl *tree, int minX, int minY, int maxX, int maxY); extern void TreeColumnProxy_Undisplay(TreeCtrl *tree); extern void TreeColumnProxy_Display(TreeCtrl *tree); -#ifdef BG_IMAGE extern void Tree_DrawTiledImage(TreeCtrl *tree, Drawable drawable, Tk_Image image, int x1, int y1, int x2, int y2); -#endif #define DINFO_OUT_OF_DATE 0x0001 #define DINFO_CHECK_COLUMN_WIDTH 0x0002 @@ -626,7 +605,6 @@ extern void Tree_DrawTiledImage(TreeCtrl *tree, Drawable drawable, Tk_Image imag #define DINFO_REDO_INCREMENTS 0x1000 extern void Tree_DInfoChanged(TreeCtrl *tree, int flags); -#ifdef THEME extern void Tree_TheWorldHasChanged(Tcl_Interp *interp); /* tkTreeTheme.c */ @@ -636,7 +614,6 @@ extern int TreeTheme_GetHeaderContentMargins(TreeCtrl *tree, int state, int boun extern int TreeTheme_DrawHeaderArrow(TreeCtrl *tree, Drawable drawable, int up, int x, int y, int width, int height); extern int TreeTheme_DrawButton(TreeCtrl *tree, Drawable drawable, int open, int x, int y, int width, int height); extern int TreeTheme_GetButtonSize(TreeCtrl *tree, Drawable drawable, int open, int *widthPtr, int *heightPtr); -#endif /* tkTreeUtils.c */ extern void wipefree(char *memPtr, int size); diff --git a/generic/tkTreeDisplay.c b/generic/tkTreeDisplay.c index 97caf3c..32a3610 100644 --- a/generic/tkTreeDisplay.c +++ b/generic/tkTreeDisplay.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeDisplay.c,v 1.20 2005/05/10 22:13:53 treectrl Exp $ + * RCS: @(#) $Id: tkTreeDisplay.c,v 1.21 2005/05/11 03:24:47 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -67,45 +67,37 @@ struct DItem struct DInfo { GC scrollGC; - int xOrigin; /* Last seen TreeCtrl.xOrigin */ - int yOrigin; /* Last seen TreeCtrl.yOrigin */ - int totalWidth; /* Last seen Tree_TotalWidth() */ - int totalHeight; /* Last seen Tree_TotalHeight() */ - int *columnWidth; /* Last seen column widths */ - int columnWidthSize; /* Num elements in columnWidth */ - int headerHeight; /* Last seen TreeCtrl.headerHeight */ - DItem *dItem; /* Head of list for each visible item */ - DItem *dItemLast; /* Temp for UpdateDInfo() */ - Range *rangeFirst; /* Head of Ranges */ - Range *rangeLast; /* Tail of Ranges */ - RItem *rItem; /* Block of RItems for all Ranges */ - int rItemMax; /* size of rItem */ - Range *rangeFirstD; /* First range with valid display info */ - Range *rangeLastD; /* Last range with valid display info */ - int itemHeight; /* Observed max TreeItem height */ - int itemWidth; /* Observed max TreeItem width */ - Pixmap pixmap; /* DOUBLEBUFFER_WINDOW */ - int dirty[4]; /* DOUBLEBUFFER_WINDOW */ - int flags; /* DINFO_XXX */ -#ifdef INCREMENTS - int xScrollIncrement; /* Last seen TreeCtr.xScrollIncrement */ - int yScrollIncrement; /* Last seen TreeCtr.yScrollIncrement */ - int *xScrollIncrements; /* When tree->xScrollIncrement is zero */ - int *yScrollIncrements; /* When tree->yScrollIncrement is zero */ + int xOrigin; /* Last seen TreeCtrl.xOrigin */ + int yOrigin; /* Last seen TreeCtrl.yOrigin */ + int totalWidth; /* Last seen Tree_TotalWidth() */ + int totalHeight; /* Last seen Tree_TotalHeight() */ + int *columnWidth; /* Last seen column widths */ + int columnWidthSize; /* Num elements in columnWidth */ + int headerHeight; /* Last seen TreeCtrl.headerHeight */ + DItem *dItem; /* Head of list for each visible item */ + DItem *dItemLast; /* Temp for UpdateDInfo() */ + Range *rangeFirst; /* Head of Ranges */ + Range *rangeLast; /* Tail of Ranges */ + RItem *rItem; /* Block of RItems for all Ranges */ + int rItemMax; /* size of rItem[] */ + Range *rangeFirstD; /* First range with valid display info */ + Range *rangeLastD; /* Last range with valid display info */ + int itemHeight; /* Observed max TreeItem height */ + int itemWidth; /* Observed max TreeItem width */ + Pixmap pixmap; /* DOUBLEBUFFER_WINDOW */ + int dirty[4]; /* DOUBLEBUFFER_WINDOW */ + int flags; /* DINFO_XXX */ + int xScrollIncrement; /* Last seen TreeCtr.xScrollIncrement */ + int yScrollIncrement; /* Last seen TreeCtr.yScrollIncrement */ + int *xScrollIncrements; /* When tree->xScrollIncrement is zero */ + int *yScrollIncrements; /* When tree->yScrollIncrement is zero */ int xScrollIncrementCount; int yScrollIncrementCount; - int incrementTop; /* yScrollIncrement[] index of item at top */ - int incrementLeft; /* xScrollIncrement[] index of item at left */ -#endif - TkRegion wsRgn; /* region containing whitespace */ -#define ITEM_VIS_HASH -#ifdef ITEM_VIS_HASH - Tcl_HashTable itemVisHash; -#endif -#define DITEM_FREE -#ifdef DITEM_FREE - DItem *dItemFree; /* list of unused DItems */ -#endif + int incrementTop; /* yScrollIncrement[] index of item at top */ + int incrementLeft; /* xScrollIncrement[] index of item at left */ + TkRegion wsRgn; /* region containing whitespace */ + Tcl_HashTable itemVisHash; /* table of visible items */ + DItem *dItemFree; /* list of unused DItems */ }; /*========*/ @@ -605,7 +597,6 @@ Range_ItemUnderPoint(TreeCtrl *tree, Range *range, int *x_, int *y_) goto panicNow; } -#if 1 if (tree->vertical) { /* Binary search */ l = 0; @@ -644,44 +635,13 @@ Range_ItemUnderPoint(TreeCtrl *tree, Range *range, int *x_, int *y_) l = i + 1; } } -#else - if (tree->vertical) { - rItem = range->first; - while (1) { - if ((y >= rItem->offset) && (y < rItem->offset + rItem->size)) { - /* Range -> item coords */ - (*x_) = x; - (*y_) = y - rItem->offset; - return rItem->item; - } - if (rItem == range->last) - break; - rItem++; - } - } - else { - rItem = range->first; - while (1) { - if ((x >= rItem->offset) && (x < rItem->offset + rItem->size)) { - /* Range -> item coords */ - (*x_) = x - rItem->offset; - (*y_) = y; - return rItem->item; - } - if (rItem == range->last) - break; - rItem++; - } - } -#endif + panicNow: panic("Range_ItemUnderPoint: can't find TreeItem in Range: x %d y %d W %d H %d", x, y, range->totalWidth, range->totalHeight); return NULL; } -#ifdef INCREMENTS - static int Increment_AddX(TreeCtrl *tree, int offset, int size) { @@ -1152,8 +1112,6 @@ B_YviewCmd(TreeCtrl *tree, int objc, Tcl_Obj *CONST objv[]) return TCL_OK; } -#endif /* INCREMENTS */ - TreeItem Tree_ItemUnderPoint(TreeCtrl *tree, int *x_, int *y_, int nearest) { @@ -1440,16 +1398,15 @@ DItem_Alloc(TreeCtrl *tree, RItem *rItem) if (dItem != NULL) panic("tried to allocate duplicate DItem"); -#ifdef DITEM_FREE + /* Pop unused DItem from stack */ if (dInfo->dItemFree != NULL) { dItem = dInfo->dItemFree; dInfo->dItemFree = dItem->nextFree; + + /* No free DItems, alloc a new one */ } else { dItem = (DItem *) ckalloc(sizeof(DItem)); } -#else - dItem = (DItem *) ckalloc(sizeof(DItem)); -#endif memset(dItem, '\0', sizeof(DItem)); strncpy(dItem->magic, "MAGC", 4); dItem->item = rItem->item; @@ -1486,12 +1443,9 @@ DItem_Free(TreeCtrl *tree, DItem *dItem) panic("DItem_Free: dItem.magic != MAGC"); if (dItem->item != NULL) TreeItem_SetDInfo(tree, dItem->item, (TreeItemDInfo) NULL); -#ifdef DITEM_FREE + /* Push unused DItem on the stack */ dItem->nextFree = dInfo->dItemFree; dInfo->dItemFree = dItem; -#else - WFREE(dItem, DItem); -#endif return next; } @@ -1633,12 +1587,10 @@ UpdateDInfoForRange(TreeCtrl *tree, DItem *dItemHead, TreeItem item; int maxX, maxY; int index, indexVis; -#ifdef BG_IMAGE int bgImgWidth, bgImgHeight; if (tree->backgroundImage != NULL) Tk_SizeOfImage(tree->backgroundImage, &bgImgWidth, &bgImgHeight); -#endif maxX = Tk_Width(tree->tkwin) - tree->inset; maxY = Tk_Height(tree->tkwin) - tree->inset; @@ -1693,14 +1645,12 @@ UpdateDInfoForRange(TreeCtrl *tree, DItem *dItemHead, ((dItem->oldY & 1) != (y & 1))) dItem->flags |= DITEM_DIRTY | DITEM_ALL_DIRTY; -#ifdef BG_IMAGE /* We can't copy the item to its new position unless it * has the same part of the background image behind it */ else if ((tree->backgroundImage != NULL) && (((dItem->oldY + dInfo->yOrigin) % bgImgHeight) != ((y + tree->yOrigin) % bgImgHeight))) dItem->flags |= DITEM_DIRTY | DITEM_ALL_DIRTY; -#endif } /* Make a new DItem */ @@ -1790,14 +1740,12 @@ UpdateDInfoForRange(TreeCtrl *tree, DItem *dItemHead, ((dItem->oldY & 1) != (y & 1))) dItem->flags |= DITEM_DIRTY | DITEM_ALL_DIRTY; -#ifdef BG_IMAGE /* We can't copy the item to its new position unless it * has the same part of the background image behind it */ else if ((tree->backgroundImage != NULL) && (((dItem->oldX + dInfo->xOrigin) % bgImgWidth) != ((x + tree->xOrigin) % bgImgWidth))) dItem->flags |= DITEM_DIRTY | DITEM_ALL_DIRTY; -#endif } /* Make a new DItem */ @@ -2003,9 +1951,7 @@ Range_RedoIfNeeded(TreeCtrl *tree) tree->totalWidth = tree->totalHeight = -1; (void) Tree_TotalWidth(tree); (void) Tree_TotalHeight(tree); -#ifdef INCREMENTS dInfo->flags |= DINFO_REDO_INCREMENTS; -#endif } } @@ -2124,21 +2070,14 @@ ScrollVerticalComplex(TreeCtrl *tree) tree->copyGC, oldX, oldY, width, height, oldX, oldY + offset); -#if 1 if (offset < 0) { dirtyMin = oldY + offset + height; dirtyMax = oldY + height; - } - else { + } else { dirtyMin = oldY; dirtyMax = oldY + offset; } Tree_InvalidateArea(tree, oldX, dirtyMin, oldX + width, dirtyMax); -#else - dirtyMin = MAX(oldY, oldY + offset + height); - dirtyMax = MIN(oldY + height, oldY + offset); - Tree_InvalidateArea(tree, oldX, dirtyMin, width, dirtyMax - dirtyMin); -#endif dInfo->dirty[LEFT] = MIN(dInfo->dirty[LEFT], oldX); dInfo->dirty[TOP] = MIN(dInfo->dirty[TOP], oldY + offset); dInfo->dirty[RIGHT] = MAX(dInfo->dirty[RIGHT], oldX + width); @@ -2457,19 +2396,14 @@ ScrollHorizontalComplex(TreeCtrl *tree) tree->copyGC, oldX, oldY, width, height, oldX + offset, oldY); -#if 1 if (offset < 0) { dirtyMin = oldX + offset + width; dirtyMax = oldX + width; - } - else { + } else { dirtyMin = oldX; dirtyMax = oldX + offset; } Tree_InvalidateArea(tree, dirtyMin, oldY, dirtyMax, oldY + height); -#else - Tree_InvalidateArea(tree, oldX, oldY, width, height); -#endif dInfo->dirty[LEFT] = MIN(dInfo->dirty[LEFT], oldX + offset); dInfo->dirty[TOP] = MIN(dInfo->dirty[TOP], oldY); dInfo->dirty[RIGHT] = MAX(dInfo->dirty[RIGHT], oldX + offset + width); @@ -2622,7 +2556,6 @@ CalcWhiteSpaceRegion(TreeCtrl *tree) return wsRgn; } -#ifdef BG_IMAGE /* *---------------------------------------------------------------------- * @@ -2679,7 +2612,6 @@ Tree_DrawTiledImage(TreeCtrl *tree, Drawable drawable, Tk_Image image, dstX += srcW; }; } -#endif void Tree_Display(ClientData clientData) @@ -2738,9 +2670,7 @@ Tree_Display(ClientData clientData) dInfo->flags |= DINFO_REDO_RANGES; } Range_RedoIfNeeded(tree); -#ifdef INCREMENTS Increment_RedoIfNeeded(tree); -#endif if (dInfo->xOrigin != tree->xOrigin) { dInfo->flags |= DINFO_UPDATE_SCROLLBAR_X | @@ -2847,7 +2777,6 @@ Tree_Display(ClientData clientData) } } -#ifdef BG_IMAGE if (tree->backgroundImage != NULL) { wsRgnNew = CalcWhiteSpaceRegion(tree); @@ -2855,8 +2784,7 @@ Tree_Display(ClientData clientData) if (dInfo->xOrigin != tree->xOrigin || dInfo->yOrigin != tree->yOrigin) { wsRgnDif = wsRgnNew; - } - else { + } else { wsRgnDif = TkCreateRegion(); TkSubtractRegion(wsRgnNew, dInfo->wsRgn, wsRgnDif); } @@ -2906,7 +2834,6 @@ Tree_Display(ClientData clientData) TkDestroyRegion(dInfo->wsRgn); dInfo->wsRgn = wsRgnNew; } -#endif dInfo->xOrigin = tree->xOrigin; dInfo->yOrigin = tree->yOrigin; @@ -2914,9 +2841,7 @@ Tree_Display(ClientData clientData) /* Does this need to be here? */ dInfo->flags &= ~(DINFO_REDRAW_PENDING); -#ifdef BG_IMAGE if (tree->backgroundImage == NULL) { -#endif /* Calculate the current whitespace region, subtract the old whitespace * region, and fill the difference with the background color. */ wsRgnNew = CalcWhiteSpaceRegion(tree); @@ -2941,9 +2866,7 @@ Tree_Display(ClientData clientData) TkDestroyRegion(wsRgnDif); TkDestroyRegion(dInfo->wsRgn); dInfo->wsRgn = wsRgnNew; -#ifdef BG_IMAGE } -#endif /* See if there are any dirty items */ count = 0; @@ -3013,22 +2936,6 @@ Tree_Display(ClientData clientData) pixmap, 0, right - left, dItem->index); -#if 0 - if (tree->columnTreeVis && tree->showLines) { - TreeItem_DrawLines(tree, dItem->item, - dItem->x - left, - dItem->y - top, - dItem->width, dItem->height, - pixmap); - } - if (tree->columnTreeVis && tree->showButtons) { - TreeItem_DrawButton(tree, dItem->item, - dItem->x - left, - dItem->y - top, - dItem->width, dItem->height, - pixmap); - } -#endif XCopyArea(tree->display, pixmap, drawable, tree->copyGC, 0, 0, @@ -3049,22 +2956,6 @@ Tree_Display(ClientData clientData) pixmap, minX, maxX, dItem->index); -#if 0 - if (tree->columnTreeVis && tree->showLines) { - TreeItem_DrawLines(tree, dItem->item, - dItem->x, - dItem->y, - dItem->width, dItem->height, - pixmap); - } - if (tree->columnTreeVis && tree->showButtons) { - TreeItem_DrawButton(tree, dItem->item, - dItem->x, - dItem->y, - dItem->width, dItem->height, - pixmap); - } -#endif } DisplayDelay(tree); numDraw++; @@ -3123,7 +3014,12 @@ Tree_Display(ClientData clientData) dInfo->flags &= ~DINFO_DRAW_BORDER; } -#ifdef ITEM_VIS_HASH + /* + * When an item goes from visible to hidden, "window" elements in the + * item must be hidden. An item may become hidden because of scrolling, + * or because an ancestor was collapsed, or because the -visible option + * of the item changed. + */ { Tcl_HashEntry *hPtr, *h2Ptr; Tcl_HashSearch search; @@ -3145,10 +3041,12 @@ Tree_Display(ClientData clientData) hPtr = Tcl_FindHashEntry(&dInfo->itemVisHash, (char *) id); if (hPtr == NULL) { -/* dbwin("item %d now visible\n", id); */ /* This item is now visible, wasn't before */ hPtr = Tcl_CreateHashEntry(&tableV, (char *) id, &isNew); } else { + /* + * This item was visible and still is. Handle scrolling. + */ TreeItem_UpdateWindowPositions(tree, dItem->item, dItem->x, dItem->y, dItem->width, dItem->height); } @@ -3160,7 +3058,6 @@ Tree_Display(ClientData clientData) id = (int) Tcl_GetHashKey(&dInfo->itemVisHash, hPtr); h2Ptr = Tcl_FindHashEntry(&table, (char *) id); if (h2Ptr == NULL) { -/* dbwin("item %d no longer visible\n", id); */ /* This item was visible but isn't now */ h2Ptr = Tcl_CreateHashEntry(&tableH, (char *) id, &isNew); /* Item could have been deleted */ @@ -3201,7 +3098,6 @@ Tree_Display(ClientData clientData) Tcl_DeleteHashTable(&tableV); Tcl_DeleteHashTable(&tableH); } -#endif /* ITEM_VIS_HASH */ } static int @@ -3243,31 +3139,26 @@ A_IncrementFindY(TreeCtrl *tree, int offset) int Increment_FindX(TreeCtrl *tree, int offset) { -#ifdef INCREMENTS if (tree->xScrollIncrement <= 0) { Increment_RedoIfNeeded(tree); return B_IncrementFindX(tree, offset); } -#endif return A_IncrementFindX(tree, offset); } int Increment_FindY(TreeCtrl *tree, int offset) { -#ifdef INCREMENTS if (tree->yScrollIncrement <= 0) { Increment_RedoIfNeeded(tree); return B_IncrementFindY(tree, offset); } -#endif return A_IncrementFindY(tree, offset); } int Increment_ToOffsetX(TreeCtrl *tree, int index) { -#ifdef INCREMENTS DInfo *dInfo = (DInfo *) tree->dInfo; if (tree->xScrollIncrement <= 0) { @@ -3276,14 +3167,12 @@ Increment_ToOffsetX(TreeCtrl *tree, int index) index, dInfo->xScrollIncrementCount-1); return dInfo->xScrollIncrements[index]; } -#endif return index * tree->xScrollIncrement; } int Increment_ToOffsetY(TreeCtrl *tree, int index) { -#ifdef INCREMENTS DInfo *dInfo = (DInfo *) tree->dInfo; if (tree->yScrollIncrement <= 0) { @@ -3294,7 +3183,6 @@ Increment_ToOffsetY(TreeCtrl *tree, int index) } return dInfo->yScrollIncrements[index]; } -#endif return index * tree->yScrollIncrement; } @@ -3414,9 +3302,7 @@ Tree_SetOriginX(TreeCtrl *tree, int xOrigin) xOrigin = 0 - tree->inset; if (xOrigin != tree->xOrigin) { tree->xOrigin = xOrigin; -#ifdef INCREMENTS dInfo->incrementLeft = 0; -#endif Tree_EventuallyRedraw(tree); } return; @@ -3456,9 +3342,7 @@ Tree_SetOriginX(TreeCtrl *tree, int xOrigin) return; tree->xOrigin = xOrigin; -#ifdef INCREMENTS dInfo->incrementLeft = index; -#endif Tree_EventuallyRedraw(tree); } @@ -3479,9 +3363,7 @@ Tree_SetOriginY(TreeCtrl *tree, int yOrigin) yOrigin = 0 - topInset; if (yOrigin != tree->yOrigin) { tree->yOrigin = yOrigin; -#ifdef INCREMENTS dInfo->incrementTop = 0; -#endif Tree_EventuallyRedraw(tree); } return; @@ -3520,9 +3402,7 @@ Tree_SetOriginY(TreeCtrl *tree, int yOrigin) return; tree->yOrigin = yOrigin; -#ifdef INCREMENTS dInfo->incrementTop = index; -#endif Tree_EventuallyRedraw(tree); } @@ -3803,9 +3683,7 @@ TreeDInfo_Init(TreeCtrl *tree) dInfo->columnWidthSize = 10; dInfo->columnWidth = (int *) ckalloc(sizeof(int) * dInfo->columnWidthSize); dInfo->wsRgn = TkCreateRegion(); -#ifdef ITEM_VIS_HASH Tcl_InitHashTable(&dInfo->itemVisHash, TCL_ONE_WORD_KEYS); -#endif tree->dInfo = (TreeDInfo) dInfo; } @@ -3817,7 +3695,6 @@ TreeDInfo_Free(TreeCtrl *tree) if (dInfo->rItem != NULL) ckfree((char *) dInfo->rItem); -#ifdef DITEM_FREE while (dInfo->dItem != NULL) { DItem *next = dInfo->dItem->next; WFREE(dInfo->dItem, DItem); @@ -3828,9 +3705,6 @@ TreeDInfo_Free(TreeCtrl *tree) WFREE(dInfo->dItemFree, DItem); dInfo->dItemFree = next; } -#else - FreeDItems(tree, dInfo->dItem, NULL, 0); -#endif while (range != NULL) range = Range_Free(tree, range); Tk_FreeGC(tree->display, dInfo->scrollGC); @@ -3843,9 +3717,7 @@ TreeDInfo_Free(TreeCtrl *tree) if (dInfo->yScrollIncrements != NULL) ckfree((char *) dInfo->yScrollIncrements); TkDestroyRegion(dInfo->wsRgn); -#ifdef ITEM_VIS_HASH Tcl_DeleteHashTable(&dInfo->itemVisHash); -#endif WFREE(dInfo, DInfo); } diff --git a/generic/tkTreeElem.c b/generic/tkTreeElem.c index f2c796d..a16dcb2 100644 --- a/generic/tkTreeElem.c +++ b/generic/tkTreeElem.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeElem.c,v 1.17 2005/05/10 22:17:24 treectrl Exp $ + * RCS: @(#) $Id: tkTreeElem.c,v 1.18 2005/05/11 03:24:47 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -2078,16 +2078,12 @@ ElementType elemTypeRect = { typedef struct ElementText ElementText; -/* Compile-time option */ -#define USE_TEXT_DATA 1 - struct ElementText { Element header; Tcl_Obj *textObj; /* -text */ char *text; int textLen; -#ifdef USE_TEXT_DATA Tcl_Obj *dataObj; #define TDT_NULL -1 #define TDT_DOUBLE 0 @@ -2095,23 +2091,22 @@ struct ElementText #define TDT_LONG 2 #define TDT_STRING 3 #define TDT_TIME 4 -#define TEXT_CONF_DATA 0x0001000 /* for Tk_SetOptions() */ - int dataType; /* -datatype */ - Tcl_Obj *formatObj; /* -format */ +#define TEXT_CONF_DATA 0x0001000 /* for Tk_SetOptions() */ + int dataType; /* -datatype */ + Tcl_Obj *formatObj; /* -format */ int stringRepInvalid; -#endif /* USE_TEXT_DATA */ PerStateInfo font; PerStateInfo fill; struct PerStateGC *gc; #define TK_JUSTIFY_NULL -1 - int justify; /* -justify */ - int lines; /* -lines */ - Tcl_Obj *widthObj; /* -width */ - int width; /* -width */ + int justify; /* -justify */ + int lines; /* -lines */ + Tcl_Obj *widthObj; /* -width */ + int width; /* -width */ #define TEXT_WRAP_NULL -1 #define TEXT_WRAP_CHAR 0 #define TEXT_WRAP_WORD 1 - int wrap; /* -wrap */ + int wrap; /* -wrap */ TextLayout layout; int layoutInvalid; int layoutWidth; @@ -2190,7 +2185,6 @@ static Tk_ObjCustomOption textWrapCO = }; static Tk_OptionSpec textOptionSpecs[] = { -#ifdef USE_TEXT_DATA {TK_OPTION_STRING, "-data", (char *) NULL, (char *) NULL, (char *) NULL, Tk_Offset(ElementText, dataObj), -1, TK_OPTION_NULL_OK, (ClientData) NULL, TEXT_CONF_DATA}, @@ -2200,7 +2194,6 @@ static Tk_OptionSpec textOptionSpecs[] = { {TK_OPTION_STRING, "-format", (char *) NULL, (char *) NULL, (char *) NULL, Tk_Offset(ElementText, formatObj), -1, TK_OPTION_NULL_OK, (ClientData) NULL, TEXT_CONF_DATA}, -#endif /* USE_TEXT_DATA */ {TK_OPTION_STRING, "-fill", (char *) NULL, (char *) NULL, (char *) NULL, Tk_Offset(ElementText, fill.obj), -1, TK_OPTION_NULL_OK, (ClientData) NULL, TEXT_CONF_FILL}, @@ -2239,12 +2232,10 @@ static int WorldChangedProcText(ElementArgs *args) int flagS = args->change.flagSelf; int mask = 0; -#ifdef USE_TEXT_DATA if ((flagS | flagM) & (TEXT_CONF_DATA | TEXT_CONF_TEXTOBJ)) { elemX->stringRepInvalid = TRUE; mask |= CS_DISPLAY | CS_LAYOUT; } -#endif /* USE_TEXT_DATA */ if (elemX->stringRepInvalid || ((flagS | flagM) & (TEXT_CONF_FONT | TEXT_CONF_LAYOUT)) || @@ -2260,8 +2251,6 @@ static int WorldChangedProcText(ElementArgs *args) return mask; } -#ifdef USE_TEXT_DATA - static void TextUpdateStringRep(ElementArgs *args) { TreeCtrl *tree = args->tree; @@ -2409,8 +2398,6 @@ static void TextUpdateStringRep(ElementArgs *args) } } -#endif /* USE_TEXT_DATA */ - static void TextUpdateLayout(ElementArgs *args) { TreeCtrl *tree = args->tree; @@ -2509,12 +2496,10 @@ static void DeleteProcText(ElementArgs *args) PerStateGC_Free(tree, &elemX->gc); PerStateInfo_Free(tree, &pstColor, &elemX->fill); PerStateInfo_Free(tree, &pstFont, &elemX->font); -#ifdef USE_TEXT_DATA if ((elemX->textObj == NULL) && (elemX->text != NULL)) { ckfree(elemX->text); elemX->text = NULL; } -#endif if (elemX->layout != NULL) TextLayout_Free(elemX->layout); } @@ -2584,9 +2569,7 @@ static int CreateProcText(ElementArgs *args) { ElementText *elemX = (ElementText *) args->elem; -#ifdef USE_TEXT_DATA elemX->dataType = TDT_NULL; -#endif elemX->justify = TK_JUSTIFY_NULL; elemX->lines = -1; elemX->wrap = TEXT_WRAP_NULL; @@ -2710,7 +2693,6 @@ static void LayoutProcText(ElementArgs *args) int width = 0; TextLayout layout = NULL; -#ifdef USE_TEXT_DATA if ((masterX != NULL) /* && (elemX != masterX) */ && masterX->stringRepInvalid) { args->elem = (Element *) masterX; TextUpdateStringRep(args); @@ -2721,7 +2703,6 @@ static void LayoutProcText(ElementArgs *args) TextUpdateStringRep(args); elemX->stringRepInvalid = FALSE; } -#endif if (elemX->layoutInvalid || (elemX->layoutWidth != args->layout.width)) { TextUpdateLayout(args); @@ -3080,6 +3061,12 @@ static int ConfigProcWindow(ElementArgs *args) } /* */ + if (args->config.flagSelf & EWIN_CONF_WINDOW) { + if ((elem->master == NULL) && (elemX->tkwin != NULL)){ + FormatResult(tree->interp, "can't specify -window for a master element"); + continue; + } + } Tk_FreeSavedOptions(&savedOptions); break; diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c index e240de4..51137ac 100644 --- a/generic/tkTreeItem.c +++ b/generic/tkTreeItem.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeItem.c,v 1.29 2005/05/10 22:27:10 treectrl Exp $ + * RCS: @(#) $Id: tkTreeItem.c,v 1.30 2005/05/11 03:24:48 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -300,9 +300,7 @@ int TreeItem_ChangeState(TreeCtrl *tree, TreeItem item_, int stateOff, Tk_Image image1, image2; Pixmap bitmap1, bitmap2; int butOpen, butClosed; -#ifdef THEME int themeOpen, themeClosed; -#endif int w1, h1, w2, h2; void *ptr1 = NULL, *ptr2 = NULL; @@ -325,7 +323,6 @@ int TreeItem_ChangeState(TreeCtrl *tree, TreeItem item_, int stateOff, ptr1 = (void *) bitmap1; } } -#ifdef THEME if (ptr1 == NULL) { if (tree->useTheme && TreeTheme_GetButtonSize(tree, Tk_WindowId(tree->tkwin), @@ -333,7 +330,6 @@ int TreeItem_ChangeState(TreeCtrl *tree, TreeItem item_, int stateOff, ptr1 = (item->state & STATE_OPEN) ? &themeOpen : &themeClosed; } } -#endif if (ptr1 == NULL) { w1 = h1 = tree->buttonSize; ptr1 = (item->state & STATE_OPEN) ? &butOpen : &butClosed; @@ -352,7 +348,6 @@ int TreeItem_ChangeState(TreeCtrl *tree, TreeItem item_, int stateOff, ptr2 = (void *) bitmap2; } } -#ifdef THEME if (ptr2 == NULL) { if (tree->useTheme && TreeTheme_GetButtonSize(tree, Tk_WindowId(tree->tkwin), @@ -360,7 +355,6 @@ int TreeItem_ChangeState(TreeCtrl *tree, TreeItem item_, int stateOff, ptr2 = (state & STATE_OPEN) ? &themeOpen : &themeClosed; } } -#endif if (ptr2 == NULL) { w2 = h2 = tree->buttonSize; ptr2 = (state & STATE_OPEN) ? &butOpen : &butClosed; @@ -1551,13 +1545,9 @@ static void ItemDrawBackground(TreeCtrl *tree, TreeColumn treeColumn, if (gc == None) gc = Tk_3DBorderGC(tree->tkwin, tree->border, TK_3D_FLAT_GC); XFillRectangle(tree->display, drawable, gc, x, y, width, height); -#ifdef BG_IMAGE if (tree->backgroundImage != NULL) - { - Tree_DrawTiledImage(tree, drawable, tree->backgroundImage, x, y, - x + width, y + height); - } -#endif + Tree_DrawTiledImage(tree, drawable, tree->backgroundImage, x, y, + x + width, y + height); } void TreeItem_Draw(TreeCtrl *tree, TreeItem item_, int x, int y, @@ -1612,7 +1602,6 @@ void TreeItem_Draw(TreeCtrl *tree, TreeItem item_, int x, int y, drawArgs.justify = TreeColumn_Justify(treeColumn); TreeStyle_Draw(&drawArgs); } -#if 1 if (TreeColumn_Index(treeColumn) == tree->columnTree) { if (tree->showLines) TreeItem_DrawLines(tree, item_, x, y, width, height, @@ -1621,7 +1610,6 @@ void TreeItem_Draw(TreeCtrl *tree, TreeItem item_, int x, int y, TreeItem_DrawButton(tree, item_, x, y, width, height, drawable); } -#endif } totalWidth += columnWidth; } @@ -1800,7 +1788,6 @@ void TreeItem_DrawButton(TreeCtrl *tree, TreeItem item_, int x, int y, int width return; } -#ifdef THEME if (tree->useTheme) { int bw, bh; if (TreeTheme_GetButtonSize(tree, drawable, self->state & STATE_OPEN, @@ -1812,7 +1799,6 @@ void TreeItem_DrawButton(TreeCtrl *tree, TreeItem item_, int x, int y, int width } } } -#endif w1 = tree->buttonThickness / 2; @@ -2253,27 +2239,13 @@ static int ItemStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_OK; } -#if 0 -T item sort I --first I (default firstchild) - -last I (default lastchild) - -command $cmd --dictionary --integer --real --increasing --decreasing --column C (default 0) - -element E (default first "text") -#endif - /* one per column per SortItem */ - struct SortItem1 - { - long longValue; - double doubleValue; - char *string; - }; +struct SortItem1 +{ + long longValue; + double doubleValue; + char *string; +}; /* one per Item */ struct SortItem @@ -3338,7 +3310,6 @@ static void ItemDeleteDeselect(TreeCtrl *tree, TreeItem itemFirst, TreeItem item STATIC_FREE2(items, staticItems); } -#ifdef ALLOW_EVENT_ITEM_DELETED static void ItemDeleteNotify(TreeCtrl *tree, TreeItem itemFirst, TreeItem itemLast) { int staticItemIds[256], *itemIds = staticItemIds; @@ -3393,7 +3364,6 @@ doNotify: if (itemIds != staticItemIds) ckfree((char *) itemIds); } -#endif #ifdef SELECTION_VISIBLE /* FIXME: optimize all calls to this routine */ @@ -3879,6 +3849,7 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, } case COMMAND_DELETE: { + Item *itemFirst, *itemLast; int index1, index2; /* Exclude root from the range */ @@ -3898,95 +3869,49 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, } } - /* Generate event for selected items being deleted */ - if (tree->selectCount) { - Item *itemFirst, *itemLast; - - if (item == (Item *) ITEM_ALL || item2 == (Item *) ITEM_ALL) { - itemFirst = (Item *) ITEM_ALL; - itemLast = NULL; - } else if ((item2 != NULL) && (item != item2)) { - int indexFirst; - Item *ancestor; - - TreeItem_ToIndex(tree, (TreeItem) item, &index1, NULL); - TreeItem_ToIndex(tree, (TreeItem) item2, &index2, NULL); - if (index1 < index2) { - itemFirst = item; - itemLast = item2; - indexFirst = index1; - } else { - itemFirst = item2; - itemLast = item; - indexFirst = index2; - } - - ancestor = itemLast; - while (ancestor->parent != NULL) { - int index; - TreeItem_ToIndex(tree, (TreeItem) ancestor, &index, NULL); - if (index >= indexFirst) - itemLast = ancestor; - else - break; - ancestor = ancestor->parent; - } + if (item == (Item *) ITEM_ALL || item2 == (Item *) ITEM_ALL) { + itemFirst = (Item *) ITEM_ALL; + itemLast = NULL; + } else if ((item2 != NULL) && (item != item2)) { + int indexFirst; + Item *ancestor; - while (itemLast->lastChild != NULL) - itemLast = itemLast->lastChild; - } else { + TreeItem_ToIndex(tree, (TreeItem) item, &index1, NULL); + TreeItem_ToIndex(tree, (TreeItem) item2, &index2, NULL); + if (index1 < index2) { itemFirst = item; + itemLast = item2; + indexFirst = index1; + } else { + itemFirst = item2; itemLast = item; - while (itemLast->lastChild != NULL) - itemLast = itemLast->lastChild; + indexFirst = index2; } - ItemDeleteDeselect(tree, (TreeItem) itemFirst, (TreeItem) itemLast); - } -#ifdef ALLOW_EVENT_ITEM_DELETED - { - Item *itemFirst, *itemLast; - - if (item == (Item *) ITEM_ALL || item2 == (Item *) ITEM_ALL) { - itemFirst = (Item *) ITEM_ALL; - itemLast = NULL; - } else if ((item2 != NULL) && (item != item2)) { - int indexFirst; - Item *ancestor; - - TreeItem_ToIndex(tree, (TreeItem) item, &index1, NULL); - TreeItem_ToIndex(tree, (TreeItem) item2, &index2, NULL); - if (index1 < index2) { - itemFirst = item; - itemLast = item2; - indexFirst = index1; - } else { - itemFirst = item2; - itemLast = item; - indexFirst = index2; - } - - ancestor = itemLast; - while (ancestor->parent != NULL) { - int index; - TreeItem_ToIndex(tree, (TreeItem) ancestor, &index, NULL); - if (index >= indexFirst) - itemLast = ancestor; - else - break; - ancestor = ancestor->parent; - } - while (itemLast->lastChild != NULL) - itemLast = itemLast->lastChild; - } else { - itemFirst = item; - itemLast = item; - while (itemLast->lastChild != NULL) - itemLast = itemLast->lastChild; + ancestor = itemLast; + while (ancestor->parent != NULL) { + int index; + TreeItem_ToIndex(tree, (TreeItem) ancestor, &index, NULL); + if (index >= indexFirst) + itemLast = ancestor; + else + break; + ancestor = ancestor->parent; } - ItemDeleteNotify(tree, (TreeItem) itemFirst, (TreeItem) itemLast); + + while (itemLast->lastChild != NULL) + itemLast = itemLast->lastChild; + } else { + itemFirst = item; + itemLast = item; + while (itemLast->lastChild != NULL) + itemLast = itemLast->lastChild; } -#endif + /* Generate event for selected items being deleted */ + if (tree->selectCount) + ItemDeleteDeselect(tree, (TreeItem) itemFirst, (TreeItem) itemLast); + ItemDeleteNotify(tree, (TreeItem) itemFirst, (TreeItem) itemLast); + if (item == (Item *) ITEM_ALL || item2 == (Item *) ITEM_ALL) { /* Do it this way so any detached items are deleted */ while (1) { diff --git a/generic/tkTreeNotify.c b/generic/tkTreeNotify.c index 2a92d5f..dcda08e 100644 --- a/generic/tkTreeNotify.c +++ b/generic/tkTreeNotify.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeNotify.c,v 1.7 2005/05/10 22:27:48 treectrl Exp $ + * RCS: @(#) $Id: tkTreeNotify.c,v 1.8 2005/05/11 03:24:48 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -27,9 +27,7 @@ static int EVENT_ACTIVEITEM; static int EVENT_SCROLL, DETAIL_SCROLL_X, DETAIL_SCROLL_Y; -#ifdef ALLOW_EVENT_ITEM_DELETED static int EVENT_ITEM_DELETE; -#endif static void ExpandItem(int id, Tcl_DString *result) { @@ -433,7 +431,6 @@ void TreeNotify_Scroll(TreeCtrl *tree, double fractions[2], int vertical) (void) QE_BindEvent(tree->bindingTable, &event); } -#ifdef ALLOW_EVENT_ITEM_DELETED static void Percents_ItemDeleted(QE_ExpandArgs *args) { struct { @@ -487,7 +484,6 @@ void TreeNotify_ItemDeleted(TreeCtrl *tree, int itemIds[], int count) (void) QE_BindEvent(tree->bindingTable, &event); } -#endif int TreeNotify_Init(TreeCtrl *tree) { @@ -509,9 +505,7 @@ int TreeNotify_Init(TreeCtrl *tree) DETAIL_SCROLL_X = QE_InstallDetail(tree->bindingTable, "x", EVENT_SCROLL, NULL); DETAIL_SCROLL_Y = QE_InstallDetail(tree->bindingTable, "y", EVENT_SCROLL, NULL); -#ifdef ALLOW_EVENT_ITEM_DELETED EVENT_ITEM_DELETE = QE_InstallEvent(tree->bindingTable, "ItemDelete", Percents_ItemDeleted); -#endif return TCL_OK; } diff --git a/generic/tkTreeStyle.c b/generic/tkTreeStyle.c index db8e77d..ce351f9 100644 --- a/generic/tkTreeStyle.c +++ b/generic/tkTreeStyle.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeStyle.c,v 1.20 2005/05/10 22:32:49 treectrl Exp $ + * RCS: @(#) $Id: tkTreeStyle.c,v 1.21 2005/05/11 03:24:48 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -1921,34 +1921,6 @@ static ElementLink *Style_CreateElem(TreeCtrl *tree, TreeItem item, elem = Element_CreateAndConfig(tree, item, column, masterElem, NULL, NULL, 0, NULL); if (elem == NULL) return NULL; -#if 0 - elem = (Element *) ckalloc(masterElem->typePtr->size); - memset(elem, '\0', masterElem->typePtr->size); - elem->typePtr = masterElem->typePtr; - elem->name = masterElem->name; - elem->master = masterElem; - args.tree = tree; - args.item = item; - args.elem = elem; - - /* FIXME: free memory if these calls could actually fail */ - if ((*elem->typePtr->createProc)(&args) != TCL_OK) - return NULL; - - if (Tk_InitOptions(tree->interp, (char *) elem, - elem->typePtr->optionTable, tree->tkwin) != TCL_OK) - return NULL; - - args.config.objc = 0; - args.config.flagSelf = 0; - if ((*elem->typePtr->configProc)(&args) != TCL_OK) - return NULL; - - args.change.flagSelf = args.config.flagSelf; - args.change.flagTree = 0; - args.change.flagMaster = 0; - (*elem->typePtr->changeProc)(&args); -#endif eLink->elem = elem; if (isNew != NULL) (*isNew) = TRUE; @@ -3714,7 +3686,6 @@ int ButtonMaxWidth(TreeCtrl *tree) PerStateBitmap_MaxSize(tree, &tree->buttonBitmap, &w, &h); width = MAX(width, w); -#ifdef THEME if (tree->useTheme) { if (TreeTheme_GetButtonSize(tree, Tk_WindowId(tree->tkwin), @@ -3724,7 +3695,7 @@ int ButtonMaxWidth(TreeCtrl *tree) FALSE, &w, &h) == TCL_OK) width = MAX(width, w); } -#endif + return MAX(width, tree->buttonSize); } @@ -3746,12 +3717,11 @@ int ButtonHeight(TreeCtrl *tree, int state) return h; } -#ifdef THEME if (tree->useTheme && TreeTheme_GetButtonSize(tree, Tk_WindowId(tree->tkwin), (state & STATE_OPEN) != 0, &w, &h) == TCL_OK) return h; -#endif + return tree->buttonSize; } -- cgit v0.12