home *** CD-ROM | disk | FTP | other *** search
/ Practical Programming in Tcl & Tk (4th Edition) / TCLBOOK4.BIN / pc / exsource / 49_16.c < prev    next >
Text File  |  2003-04-16  |  920b  |  40 lines

  1. /*
  2.  * Example 49-16
  3.  * The ClockDestroy cleanup procedure.
  4.  */
  5.  
  6. static void
  7. ClockDestroy(clientData)
  8.     ClientData clientData;        /* Info about entry widget. */
  9. {
  10.     register Clock *clockPtr = (Clock *) clientData;
  11.  
  12.     /*
  13.      * Free up all the stuff that requires special handling,
  14.      * then let Tk_FreeOptions handle resources associated
  15.      * with the widget attributes.
  16.      */
  17.     if (clockPtr->textGC != None) {
  18.         Tk_FreeGC(clockPtr->display, clockPtr->textGC);
  19.     }
  20.     if (clockPtr->clock != NULL) {
  21.         Tcl_Free(clockPtr->clock);
  22.     }
  23.     if (clockPtr->flags & TICKING) {
  24.         Tk_DeleteTimerHandler(clockPtr->token);
  25.     }
  26.     if (clockPtr->flags & REDRAW_PENDING) {
  27.         Tk_CancelIdleCall(ClockDisplay,
  28.             (ClientData) clockPtr);
  29.     }
  30.     /*
  31.      * This frees up colors and fonts and any allocated
  32.      * storage associated with the widget attributes.
  33.      */
  34.     Tk_FreeOptions(configSpecs, (char *) clockPtr,
  35.         clockPtr->display, 0);
  36.     Tcl_Free((char *) clockPtr);
  37. }
  38.  
  39.  
  40.