Chapter 46. Writing a Tk Widget in C

   

Practical Programming in Tcl & Tk, Third Edition
By Brent B. Welch

Table of Contents
Part VI.  C Programming


This chapter describes the implementation of a simple clock widget. Two implementations are shown: the original string-based command interface and the Tcl_Obj command interface.

A custom widget implemented in C has the advantage of being efficient and flexible. However, it requires more work, too. This chapter illustrates the effort by explaining the implementation of a clock widget. It is a digital clock that displays the current time according to a format string. This is something you could implement in several lines of Tcl using a label widget, the clock command, and after for periodic updates. However, the point of the example is to show the basic structure for a Tk widget implemented in C, not how much easier Tcl programming is :-). The implementation of a widget includes:

  • A data structure to describe one instance of the widget.

  • A class procedure to create a new instance of the widget.

  • An instance procedure to operate on an instance of the widget.

  • A set of configuration options for the widget.

  • A configuration procedure used when creating and reconfiguring the widget.

  • An event handling procedure.

  • A display procedure.

  • Other widget-specific procedures.

Two implementations are compared: string-based and Tcl_Obj based. The version that uses Tcl_Obj values can interpret command line options more efficiently. A new option parsing package hides most of the details. The string-based version of each procedure is shown first, and then the Tcl_Obj version is shown for comparison. The display portion of the code is the same in the two versions.


       
    Top
     



    Practical Programming in Tcl and Tk
    Practical Programming in Tcl and Tk (4th Edition)
    ISBN: 0130385603
    EAN: 2147483647
    Year: 1999
    Pages: 478

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net