[incr Tcl/Tk] from the Ground Up

The Accelerated Track for Professional Programmers

Chad Smith

Publisher: McGraw-Hill, 2000, 746 pages

ISBN: 0-07-212106-8

Keywords: TCLTk

Last modified: March 14, 2022, 12:27 a.m.

Step-by-Step Techniques for Building Cross-Platform Applications with [incr Tcl/Tk].

Create and deploy object-oriented applications with [incr Tcl/Tk] — the Tcl extension that makes it easier to develop, debug, and maintain large applications. [incr Tcl/Tk] from the Ground Up explains the features of this flexible extension and outlines the basics for building [incr Tcl/Tk] programs. You'll get full details on everything from building extensible GUI applications and embedding [incr Tcl/Tk] to developing enterprise-scale integration applications. Packed with real-world examples, this fast-paced tutorial will advance you from [incr Tcl/Tk] beginner to expert in no time.

Learn how to:

  • Make the most of [incr Tcl/Tk]'s object-oriented and embeddable capabilities
  • Handle socket programming
  • Create inheritance hierarchies
  • Build powerful, portable GUI applications
  • Integrate new applications with legacy code in C/C++
  • Generate mega-widgets with [incr Tcl/Tk]
  • Develop full-scale enterprise-wide applications
  • Create client/server applications and add network interfaces to legacy applications
  • Take full advantage of the extensive set of [incr Widgets]
  1. [incr Tcl]
    1. Getting Started
      • Classes and Objects
      • Defining a Class in the Shell
        • Class Definitions with wish
        • Class Definitions with itkwish
      • Creating Objects
        • Naming Conflicts
      • Using an Object
      • Deleting Objects
      • Inheritance
      • The Object-Oriented Paradigm
        • Approaching OOP
        • OOP Versus Function-Oriented
    2. Methods
      • Introduction
      • Arguments and Parameters
        • Empty Argument Lists
        • Multiple Arguments
        • Optional Arguments
        • Variable-Length Argument Lists
        • Passing Arguments by Reference
      • Separating Interface from Implementation
        • Using the body Command
        • Interactive Debugging
        • Header and Source Files
      • Accessor Methods
      • Namespace Qualifiers
      • Static Methods
      • Access Levels
      • Built-In Methods
        • The info Method
      • The isa Method
    3. Data Members
      • Introduction
      • Access Levels
        • Private Access
        • Protected Access
        • Public Access
      • The this Variable
        • Using this For Binding User-Initiated Claabacks
        • Using this to Register Objects with Other Callbacks
        • Using this for Self-Reference during after Callbacks
      • Instance Variables
        • Scalar Instance Variables
        • Array Instance Variables
      • Static Variables
        • Scalar Static Variables
        • Static Array Variables
      • Scoping
    4. Construction and Destruction
      • The Construction Process
        • Defining the Class
        • Object Creation
      • Auto-Generated Object Names
      • Default Constructors/Destructors
      • Initializing Configuration Options
      • Passing Arguments to Base Class Constructors
      • Constructors/Destructors
        • When Construction Fails
        • When Destruction Fails
      • Constructor Overloading
      • Copy Constructors
    5. Debugging
      • Introduction
      • Basic Debugging: Built-In Commands
        • Using errorInfo to Locate Errors
        • Using catch to Locate Errors
        • Using puts to Locate Errors
        • Using trace to Locate Errors
        • Choosing an Approach
      • A New Debugging Tool
        • Definition and Implementation
        • Using the New Tool
      • Advanced Debugging: Modifying Debug Output Dynamically
        • Creating the Debug Server
        • Creating the Back Door
        • Communicating with the Debug Server
    6. Tying It All Together with Sockets
      • Analysis and Design
        • Analyzing the Problem Domain
        • Designing the Model
      • Establishing a Protocol
      • Implementing the Design
        • The ServerSocket Class
        • The ClientSocket Class
      • Testing the Code
        • In Depth
      • Tying It All Together: User Authentication
        • Implementing the Server Side
        • Implementing the Client Side
        • Testing the Model
    7. Composition
      • Introduction
      • Object Lifetime
        • Creating Temporary Objects
        • An Alternative Implementation for Trace Using local
      • Using Composition to Design a Chat Room
        • Speaking the Same Language
        • Creating the Back End: The Chat Room Server
        • Controlling Access
        • Creating the Front End: The Chat Room Client
        • Logging into the Chat Room
    8. Advanced Inheritance
      • Overloading
        • Methods
        • Accessing Overloaded Base Class Methods
        • Data Members
      • Taking Advantage of Virtual Methods
      • Synthesizing Pure Virtual Methods
      • Multiple Inheritance
        • Construction/Destruction Order
        • Combining Class Functionality with Multiple Inheritance
        • Naming Ambiguities
        • One Limitation
    9. Integrating [incr Tcl] with C/C++
      • Introduction
      • Class Methods as C Functions
        • Dynamic Loading
        • Static Linking
      • Accessing Class Data Members from C Functions
        • Retrieving Data Members
        • Modifying Data Members
      • Invoking Class Methods from C Functions
      • Using C++ Objects Within a [incr Tcl] Class
        • Implementing the C++ Class
        • Creating a New C++ Object
        • Implementing the Command Procedure
        • Destroying the C++ Object
        • Implementing the Initialization Procedure
        • Avoiding Loader Problems
        • Building the Shared Library
        • Defining the [incr Tcl] Front End
        • A Test Run
      • Wrapping C++ Objects As an [incr Tcl] Class
        • Implementing the [incr Tcl] Wrapper Class
        • Creating the C Wrapper Functions
        • A Test Run
    10. Namespaces and Packages
      • What Is a Namespace?
        • Usage
        • Encapsulation
        • Access Control
      • From One Namespace to Another
        • Object Visibility
        • Variable Visibility
      • Creating a Package
        • Implementing the Namespace
        • Setting Up the Package
  2. [incr Tk]
    1. Mega Widget Basics
      • Introduction
      • What Is a Mega-Widget?
      • Base Class Hierarchy
        • Archetype
        • Widget
        • Toplevel
      • A Mega-Widget or Not a Mega-Widget?
      • Simple Example
        • Construction
        • Widget Operations
        • Destruction
    2. Configuration Options
      • The Composite Option List
      • Usual Options
      • Adding Component Widgets
        • Keeping Options
        • Ignoring Options
        • Renaming Options
      • Removing Component Widgets
      • Defining New Configuration Options
      • Manipulating Base Class Configuration Options
      • A Working Example: The "Dual Listbox"
      • The Options Database
  3. [incr Widgets]
    1. Introduction and Childsites
      • The Iwidgets Package
      • Childsites
    2. Reference
      • buttonbox
      • calendar
      • canvasprintbox
      • canvasprintdialog
      • checkbox
      • combobox
      • dateentry
      • datefield
      • dialog
      • dialogshell
      • disjointlistbox
      • entryfield
      • extfileselectionbox
      • extfileselectiondialog
      • feedback
      • fileselectionbox
      • fileselectiondialog
      • finddialog
      • hierarchy
      • hyperhelp
      • labeledframe
      • labeledwidget
      • mainwindow
      • menubar
      • messagebox
      • messagedialog
      • notebook
      • optionmenu
      • panedwindow
      • promptdialog
      • pushbutton
      • radiobox
      • regexpfield
      • scrolledcanvas
      • scrolledframe
      • scrolledhtml
      • scrolledlistbox
      • scrolledtext
      • selectionbox
      • selectiondialog
      • shell
      • spindate
      • spinint
      • spinner
      • spintime
      • tabnotebook
      • timeentry
      • timefield
      • toolbar
      • watch

Reviews

[incr Tcl/Tk] from the Ground Up

Reviewed by Roland Buresund

Mediocre **** (4 out of 10)

Last modified: Nov. 18, 2008, 2:07 p.m.

This is so thick you could believe that it would contain everything you ever wanted to know about the popular OO extensions, but it fails to cover all ground. Especially by failing to answer the question why should I want to use OO in my quick-and-dirty scripting?

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required