Search:

Product Information All Elsevier Sites   Advanced Product Search
SiteStat.jsp
TCL/TK
Tcl/Tk
A Developer's Guide
To order this title, and for more information, click here
Second Edition

By
Clif Flynt, CEO, Noumena Corporation, Dexter, Michigan

Description
Tcl/Tk (Tool Command Language/Tool Kit) makes it fast and easy to implement any type of application, from games to network analyzers. Tcl/Tk is a full-bodied, mature programming platform used by NASA rocket scientists, Wall Street database experts, Internet designers, and open source programmers around the world. Tcl/Tk's multi-faceted and extensible nature make it ideal for developing end-user GUIs, client/server middleware, Web applications, and more. You can code completely in Tcl, use any of hundreds of extensions, call C or Java subroutines from Tcl/Tk, or use Tcl to glue legacy applications together. Written from a programmer's perspective, Tcl/Tk: A Developer's Guide describes how to use Tcl's standard tools and the unique features that make Tcl/Tk powerful: including graphics widgets, packages, namespaces, and extensions. With this book an experienced programmer will be able to code Tcl in a few hours. In just a few chapters you will learn about Tcl features that allow you to isolate and protect your code from being damaged in large applications. You will even learn how to extend the language itself. Tcl/Tk: A Developer's Guide clearly discusses development tools, proven techniques, and existing extensions. It shows how to use Tcl/Tk effectively and provides many code examples. This fully revised new edition is the complete resource for computer professionals, from systems administrators to programmers. It covers versions 7.4 to 8.4 and includes a CD-ROM containing the interpreters, libraries, and tutorials to get you started quickly. Additional materials in the book include case studies and discussions of techniques for the advanced user. On the CD-ROM *Distributions for Tcl 8.3 and 8.4 for Linux, Solaris, Macintosh, and Windows. *A copy of ActiveTcl from ActiveState. *The latest release of TclTutor. *How-to's and tutorials as well as copies of all the tools discussed in the book. *The author's "Tclsh Spot" articles from :login; magazine and the "Real World" Tcl/Tk chapters from the first edition. *Demo copies of commercial development tools from ActiveState and NeatWare. *Many open source Tcl/Tk development tools. *Tcl/Tk design guidelines.

Audience
Programmers, Internet designers, and open source programmers.

Contents
Tcl/Tk Features. 1.1 Tcl Overview. 1.1.1 The Standard Tcl Distribution 1.2 Tcl as a Glue Language 1.2.2 Tcl Scripts Compared with Unix Shell Scripts 1.2.3 Tcl Scripts Compared with MS-DOS .bat Files 1.3 Tcl as a General-Purpose Interpreter 1.3.1 Tcl/Tk Compared with Visual Basic 1.3.2 Tcl/Tk Compared with Perl 1.3.3 Tcl/Tk Compared with Python 1.3.4 Tcl/Tk Compared with Java 1.4 Tcl as an Extensible Interpreter 1.5 Tcl as an Embeddable Interpreter 1.6 Tcl as a Rapid Development Tool 1.7 GUI-Based Programming 1.8 Shipping Products 1.9 Bottom Line 1.10 Problems The Mechanics of Using the Tcl and Tk Interpreters. 2.1 The tclsh and wish Interpreters 2.1.1 Starting the tclsh and wish Interpreters 2.1.2 Starting tclsh or wish under Unix 2.1.3 Starting tclsh or wish under Microsoft Windows 2.1.4 Starting tclsh or wish on the Mac 2.1.5 Exiting tclsh or wish 2.2 Using tclsh/wish Interactively 2.2.1 Tclsh as a Command Shell 2.2.2 Tk Console (tkcon) -- An Alternative Interactive tclsh/wish Shell 2.2.3 Evaluating Scripts Interactively 2.3 Evaluating Tcl Script Files 2.3.1 The Tcl Script File 2.3.2 Evaluating Tcl Script Files 2.3.3 Evaluating a Tcl Script File under Unix 2.3.4 Evaluating a Tcl Script File under Microsoft Windows 2.3.5 Evaluating a Tcl Script on the Mac 2.4 Bottom Line 2.5 Problems Introduction to the Tcl Language. 3.1 Overview of the Basics 3.1.1 Syntax 3.1.2 Grouping Words 3.1.3 Comments 3.1.4 Data Representation 3.1.5 Command Results 3.1.6 Errors 3.2 Command Evaluation and Substitutions 3.2.1 Substitution 3.2.2 Controlling Substitutions with Quotes, Curly Braces, and Backslash 3.2.3 Steps in Command Evaluation 3.3 Data Types 3.3.1 Assigning Values to Variables 3.3.2 Strings 3.3.3 String Processing Commands 3.3.4 Lists 3.3.5 List Processing Commands 3.3.6 Associative Arrays 3.3.7 Associative Array Commands 3.3.8 Binary Data 3.3.9 Handles 3.4 Arithmetic and Boolean operations 3.4.1 Math Operations 3.4.2 Conditionals 3.4.3 Looping 3.5 Modularization 3.5.1 Procedures 3.6 Bottom Line 3.7 Problems File System, Disk I/O and Sockets. 4.0.1 Navigating the File System 4.0.2 Properties of file system items 4.0.3 Removing files 4.1.2 Input 4.1.3 Creating a channel 4.1.4 Closing Channels 4.1 Input/Output in Tcl 4.1.1 Output 4.2 Sockets 4.2.1 Using a client socket 4.2.2 Controlling Data Flow 4.2.3 Server Sockets 4.3 Bottom Line 4.4 Problems Using Strings and Lists. 5.1 Converting a String into a List 5.2 Examining the List with a for Loop 5.3 Using the foreach Command 5.4 Using the string match instead of string first 5.5 Using lsearch 5.6 The regexp Command 5.6.1 Regular Expression Matching Rules 5.6.2 Advanced and Extended Regular Expression Rules 5.7 Creating a Procedure 5.8 Making a Script 5.9 Speed Considerations 5.10 Bottom Line 5.11 Problems Building complex data structures with lists and arrays. 6.1 Using the Tcl List 6.2 Using the Associative Array 6.3 Exception handling and Introspection 6.4 Trees in Tcl 6.5 Tree Library Implementation 6.5.5 Generating unique names 6.6 Using the Tree Library 6.7 Speed Considerations 6.8 Bottom Line 6.9 Problems Procedure Techniques. 7.1 Arguments to Procedures 7.1.1 Variable Number of Arguments to a Procedure 7.1.2 Default Values for Procedure Arguments 7.2 Renaming or Deleting Commands 7.3 Getting Information about Procedures 7.4 Substitution and Evaluation of Strings 7.4.1 Performing Variable Substitution on a String 7.4.2 Evaluating a String as a Tcl Command 7.5 Working with Global and Local Scopes 7.5.1 Global and Local Scope 7.6.1 An Object Example 7.6.2 Creating a Tree Object 7.6.3 Defining the Object's Method 7.6 Making a Tcl Object 7.7 Bottom Line 7.8 Problems Namespaces and Pack. 8.1 Namespaces and Scoping Rules 8.1.1 Namespace Scope 8.1.2 Namespace Naming Rules 8.1.3 Accessing Namespace Entities 8.1.4 Why Use Namespaces? 8.1.5 The namespace and variable Commands 8.1.6 Creating and Populating a Namespace 8.1.7 Namespace Nesting 8.2 Packages 8.2.1 How Packages Work 8.2.2 Internal Details: Files and Variables Used with Packages 8.2.3 Package Commands 8.2.4 Version Numbers 8.2.5 Package Cookbook 8.3 A Tree Object Package with Namespaces 8.3.1 Adding Namespace and Package to tree.tcl 8.3.2 The Tree Object in a Namespace 8.3.3 Procedures and Namespace Scopes 8.4 Bottom Line 8.5 Problems Introduction to Tk Graphics. 9.1 Creating a Widget 9.2 Conventions 9.2.1 Widget Naming Conventions 9.2.2 Color Naming Conventions 9.2.3 Dimension Conventions 9.3 Common 9.4 Determining and Setting Options 9.5 The Basic Widgets 9.6 Introducing Widgets: label, button, and entry 9.7 Widget Layout: frame, place, pack, and grid 9.7.1 The frame Widget 9.7.2 The place Layout Manager 9.7.3 The pack Layout Manager 9.7.4 The grid Layout Manager 9.7.5 Working Together 9.8 Selection Widgets: radiobutton, checkbutton, menu, and listbox 9.8.1 radiobutton and checkbutton 9.8.2 Pull-down Menus: menu, menubutton and menubars 9.8.2.1 Menubars 9.8.3 Selection widgets: listbox 9.9 Scrollbar 9.9.1 The Basic scrollbar 9.9.2 scrollbar Details 9.9.3 Intercepting scrollbar Commands 9.13.1 Canceling the Future 9.10 The scale Widget 9.11 New Windows 9.12 Interacting with the Event Loop 9.13 Scheduling the Future: after 9.14 Bottom Line 9.15 Problems Using the canvas widget. 10.1 Overview of the canvas Widget 10.1.1 Identifiers and Tags 10.1.2 Coordinates 10.1.3 Binding 10.2 Creating a canvas 10.3 Creating Displayable Canvas Items 10.3.1 An Exam 10.4 More Canvas Widget Subcommands 10.4.1 Modifying an Item 10.4.2 Changing the Display Coordinates of an Item 10.4.3 Moving an Item 10.4.4 Finding Items, Raising and Lowering Items 10.4.5 Fonts and Text items 10.4.6 Using a Canvas Larger than the View 10.5 The bind and focus Commands 10.5.1 The bind Command 10.5.2 The Canvas Widget bind Subcommand 10.5.3 Focus 10.6 Creating a Widget 10.7 A Help-Balloon: Interacting with the window manager 10.8 The image Object 10.8.1 The image Command 10.8.2 Bitmap Images 10.8.3 Photo Images 10.8.4 Revisiting the delayButton Widget 10.9 Bottom Line 10.10 Problems The text widget and htmllib. 11.1 Overview of the text Widget 11.1.1 Text Location in the text Widget 11.1.2 Tag Overview 11.1.3 Mark Overview 11.1.4 Image Overview 11.1.5 Window Overview 11.2 Creating a text Widget 11.3 Text Widget Subcommands 11.3.1 Inserting and deleting text 11.3.2 Searching Text 11.3.3 The mark Subcommands 11.3.4 Tags 11.3.4.2 Finding Tags 11.3.5 Inserting Images and Widgets into a text Widget 11.4 HTML Display Package 11.4.1 Displaying HTML Text 11.4.2 Using html_library Callbacks: Loading Images and Hypertext Links 11.4.3 Interactive help with the text widget and htmllib 11.5 Bottom Line 11.6 Problems Tk Megawidgets. 12.1 Standard Dialog Widgets 12.2 Megawidget Building Philosophy 12.2.1 Display in Application Window or Main Display? 12.2.2 Modal versus Modeless Operation 12.2.3 Widget Access Conventions 12.2.4 Widget Frames 12.2.5 Configuration 12.2.6 Access to Subwidgets 12.2.7 Following Tk Conventions 12.3 Functionality that makes Megawidgets possible 12.3.1 The rename command 12.3.2 The option command 12.3.3 The -class option 12.4 Building a Megawidget 12.5 A Scrolling Listbox Megawidget 12.5.1 scrolledListBox Description 12.5.2 Using the scrolledLB 12.5.3 Implementing the Scrollable ListBox 12.5.4 The scrolledLB Code 12.6 Namespaces and Tk widgets 12.7 Incorporating a Megawidget into a Larger Megawidget 12.8 Making a Modal Megawidget: The grab and tkwait Commands 12.8.1 The grab command 12.8.2 The tkwait command 12.8.3 The modal widget code 12.9 Automating megawidget Construction 12.9.1 Building megawidgets from a skeleton 12.9.2 Building megawidgets from a configuration file 12.9.3 Another technique for building megawidgets 12.10 Bottom Line 12.11 Problems Writing a Tcl Extension. 13.1 Functional View of a Tcl Extension 13.1.1 Overview 13.1.2 Initialize any persistent data structures 13.1.3 Register new commands with the Interpreter 13.1.4 Accept data from Tcl Interpreter 13.1.5 Returning Results 13.1.6 Returning Status to the Script 13.1.7 Dealing with Persistent Data 13.2 Building an Extension 13.2.1 Structural Overview of an Extension 13.2.2 Naming Conventions 13.3 An Example 13.3.1 demoInt.h 13.3.2 demoInit.c 13.3.3 demoCmd.c 13.3.4 demoDemo.c 13.4 Complex Data 13.5 Bottom Line 13.6 Exercises Extensions and Package. 14.1 [incr Tcl] 14.2 Expect 14.3 TclX 14.4 Sybtcl and Oratcl 14.5 MySqlTcl 14.6 VSdb Package 14.7 BWidgets 14.8 BLT 14.9 Graphics Extensions: Img 14.10 Bottom Line Programming Tools. 15.1 Code Formatter 15.1.1 frink 15.2 Code Checkers 15.2.1 tclCheck 15.2.2 ICEM ice_lint 15.2.3 procheck 15.3 Debuggers 15.3.1 Debug 15.3.2 Graphic Debuggers 15.4 GUI Generators 15.4.1 SpecTcl 15.4.2 Visual GYPSY 15.5 Tcl Compilers 15.5.1 ICEM Tcl Compiler 15.5.2 TclPro procomp 15.6 Packaging Tools 15.6.1 TclPro prowrap 15.6.2 FreeWrap 15.6.3 Starkit and Starpack 15.7 Tcl Extension Generators 15.7.1 SWIG 15.7.2 CriTcl 15.8 Integrated Development Environments 15.8.1 ASED 15.8.2 Komodo 15.8.3 MyrmecoX 15.9 Bottom Line Tips and Techniques. 16.1 Debugging Techniques 16.2 Tcl as a Glue Language: The exec Command 16.3 Common Mistakes 16.4 Coding Tips and Techniques 16.5 Bottom Line

Bibliographic details
Paperback, 758 pages, publication date: MAY-2003
ISBN-13: 978-1-55860-802-3
ISBN-10: 1-55860-802-8
Imprint: MORGAN KAUFFMAN

Price and Ordering
Price:
GBP 48
EUR 56.95
USD 75.95
order now
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.
See also information about conditions of sale & ordering procedures, and links to our regional sales offices.

077/760
Last update: 7 Sep 2009
Book contents
Table of contents
Reviews
View other people's reviews
Submit your review
Bookmark this page
Recommend this publication
Overview of all books
Printer-friendly version   Printer-friendly version