(clientData)
| 643 | * Everything associated with the widget is freed up. |
| 644 | * |
| 645 | *---------------------------------------------------------------------- |
| 646 | */ |
| 647 | |
| 648 | static void |
| 649 | DestroyButton(clientData) |
| 650 | ClientData clientData; /* Info about entry widget. */ |
| 651 | { |
| 652 | register Button *butPtr = (Button *) clientData; |
| 653 | |
| 654 | if (butPtr->text != NULL) { |
| 655 | ckfree(butPtr->text); |
| 656 | } |
| 657 | if (butPtr->textVarName != NULL) { |
| 658 | Tcl_UntraceVar(butPtr->interp, butPtr->textVarName, |
| 659 | TCL_GLOBAL_ONLY|TCL_TRACE_WRITES|TCL_TRACE_UNSETS, |
| 660 | ButtonTextVarProc, (ClientData) butPtr); |
| 661 | ckfree(butPtr->textVarName); |
| 662 | } |
| 663 | if (butPtr->bitmap != None) { |
| 664 | #if defined(USE_XPM3) |
| 665 | Tk_FreePixmap(butPtr->bitmap); |
| 666 | #else |
| 667 | Tk_FreeBitmap(butPtr->bitmap); |
| 668 | #endif |
| 669 | } |
| 670 | if (butPtr->normalBorder != NULL) { |
| 671 | Tk_Free3DBorder(butPtr->normalBorder); |
| 672 | } |
| 673 | if (butPtr->activeBorder != NULL) { |
| 674 | Tk_Free3DBorder(butPtr->activeBorder); |
| 675 | } |
| 676 | if (butPtr->fontPtr != NULL) { |
| 677 | Tk_FreeFontStruct(butPtr->fontPtr); |
| 678 | } |
| 679 | if (butPtr->normalFg != NULL) { |
| 680 | Tk_FreeColor(butPtr->normalFg); |
| 681 | } |
| 682 | if (butPtr->disabledFg != NULL) { |
| 683 | Tk_FreeColor(butPtr->disabledFg); |
| 684 | } |
| 685 | if (butPtr->activeFg != NULL) { |
| 686 | Tk_FreeColor(butPtr->activeFg); |
| 687 | } |
| 688 | if (butPtr->normalTextGC != None) { |
| 689 | Tk_FreeGC(butPtr->normalTextGC); |
| 690 | } |
| 691 | if (butPtr->activeTextGC != None) { |
| 692 | Tk_FreeGC(butPtr->activeTextGC); |
| 693 | } |
| 694 | if (butPtr->gray != None) { |
| 695 | Tk_FreeBitmap(butPtr->gray); |
| 696 | } |
| 697 | if (butPtr->disabledGC != None) { |
| 698 | Tk_FreeGC(butPtr->disabledGC); |
| 699 | } |
| 700 | if (butPtr->selectorFg != NULL) { |
| 701 | Tk_FreeColor(butPtr->selectorFg); |
| 702 | } |
nothing calls this directly
no test coverage detected