Practical Programming in Tcl and Tk / Edition 3

Practical Programming in Tcl and Tk / Edition 3

ISBN-10:
0130220280
ISBN-13:
9780130220288
Pub. Date:
11/10/1999
Publisher:
Pearson Education

Other Format - Rent for

Select a Purchase Option (Older Edition)
  • purchase options

Temporarily Out of Stock Online


Overview

Practical Programming in Tcl and Tk / Edition 3

The Tcl/Tk best-seller, now completely updated for Tcl 8.2 and the Tcl Web Server!

Tcl/Tk 8.2 is the first scripting language that can handle enterprise-wide integration tasks that encompass Windows, Solaris, Macintosh, and other key platforms. Now, in this fully updated Third Edition, Tcl/Tk development team member and best-selling author Brent Welch presents all you need to know to achieve powerful results with Tcl/Tk 8.2 and the new Tcl Web Server.

Coverage includes:

  • Tcl's fundamental mechanisms and operating system interfaces
  • Basic and advanced coding techniques and tools, including the Tcl script library facility
  • Tk and X Windows-with detailed examples and sample widgets
  • The new, extensible Tcl Web Server
  • New Tcl internationalization features and thread support
  • New techniques for working with regular expressions and namespaces

You'll find extensive coverage of user interface development, as well as application integration techniques that leverage Tcl/Tk's powerful cross-platform scripting capabilities. Welch covers Tcl's extensive network support, as well as Safe Tcl, C programming with the Tk toolkit, the Tcl compiler, and Tcl/Tk plug-ins for Netscape and Internet Explorer. Whether you're a current Tcl/Tk programmer, or a developer searching for a convenient, powerful multiplatform scripting language, Practical Programming in Tcl and Tk, Third Edition delivers exactly what you're looking for.

"This is an excellent book, loaded with useful examples. Newcomers to Tk will find the widget descriptions particularly helpful." --John Ousterhout CEO and founder of Scriptics Corporation and thecreator of Tcl/Tk

"Brent Welch fills an important need for an introduction to Tcl/Tk with an applied focus and with coverage of many of the useful extensions available . . . I recommend this book to my new students . . . and I keep a copy handy for my own use." --Joseph A. Konstan, Professor of Computer Science University of Minnesota

ABOUT THE CD-ROM

The accompanying CD-ROM includes the Tcl Web Server; Tcl/Tk distributions for Windows 9x/NT, Solaris, and Macintosh; plus an extensive collection of free Tcl/Tk software-including all the code from the book.

Art: Include the same boxed quotes that appeared on the 2e back cover.

Product Details

ISBN-13: 9780130220288
Publisher: Pearson Education
Publication date: 11/10/1999
Edition description: Older Edition
Pages: 832
Product dimensions: 6.93(w) x 9.18(h) x 2.19(d)

Table of Contents

List of Examples
xxix
List of Tables
xxxix
Preface xlv
I Tcl Basics 1(118)
Tcl Fundamentals
3(22)
Tcl Commands
3(1)
Hello, World!
4(1)
Variables
5(1)
Command Substitution
5(1)
Math Expressions
6(1)
Backslash Substitution
7(1)
Grouping with Braces and Double Quotes
8(3)
Square Brackets Do Not Group
9(1)
Grouping before Substituion
9(1)
Grouping Math Expressions with Braces
10(1)
More Substitution Examples
10(1)
Procedures
11(1)
A Factorial Example
12(1)
More about Variables
13(2)
Funny Variable Names
14(1)
The unset Command
15(1)
Using info to Find Out about Variables
15(1)
More about Math Expressions
15(1)
Comments
16(1)
Substitution and Grouping Summary
17(1)
Fine Points
18(2)
Reference
20(5)
Backslash Sequences
20(1)
Arithmetic Operators
20(1)
Built-in Math Functions
21(1)
Core Tcl Commands
21(4)
Getting Started
25(6)
The source Command
26(1)
UNIX Tcl Scripts
26(1)
Windows 95 Start Menu
27(1)
The Macintosh and ResEdit
28(1)
The console Command
28(1)
Command-Line Arguments
29(1)
Command-Line Options to Wish
29(1)
Predefined Variables
30(1)
The Guestbook CGI Application
31(14)
A Quick Introduction to HTML
32(1)
CGI for Dynamic Pages
33(1)
The guestbook.cgi Script
34(5)
Using a Script Library File
35(1)
Beginning the HTML Page
36(1)
Simple Tags and Hypertext Links
36(2)
Using a Tcl Array for the Database
38(1)
Sample Output
39(1)
Defining Forms and Processing Form Data
39(4)
The newguest.html Form
40(1)
The newguest.cgi Script
41(2)
The cgi.tcl Package
43(1)
Next Steps
43(2)
String Processing in Tcl
45(14)
The string Command
45(6)
String Indices
47(1)
Strings and Expressions
48(1)
String Matching
48(2)
Character Classes
50(1)
Mapping Strings
51(1)
The append Command
51(1)
The format Command
52(2)
The scan Command
54(1)
The binary Command
54(4)
Format Templates
55(1)
Examples
56(1)
Binary Data and File I/O
57(1)
Related Chapters
58(1)
Tcl Lists
59(10)
Tcl Lists
59(2)
Constructing Lists
61(2)
The list command
61(1)
The lappend Command
62(1)
The concat Command
62(1)
Getting List Elements: 1length, 1index, and 1range
63(1)
Modifying Lists: 1insert and 1replace
64(1)
Searching Lists: 1search
64(1)
Sorting Lists: 1sort
65(1)
The split Command
65(2)
The join Command
67(1)
Related Chapters
67(2)
Control Structure Commands
69(12)
If Then Else
70(1)
Switch
71(2)
Comments in switch Commands
72(1)
While
73(1)
Foreach
73(3)
Multiple Loop Variables
75(1)
Multiple Value Lists
76(1)
For
76(1)
Break and Continue
77(1)
Catch
77(2)
Catching More Than Errors
78(1)
Error
79(1)
Return
80(1)
Procedures and Scope
81(8)
The proc Command
81(2)
Changing Command Names with rename
83(1)
Scope
83(1)
The global Command
84(1)
Call by Name Using upvar
85(1)
Variable Aliases with upvar
86(3)
Associating State with Data
86(1)
Namespaces and upvar
87(1)
Commands That Take Variable Names
87(2)
Tcl Arrays
89(10)
Array Syntax
89(2)
Complex Indices
90(1)
Array Variables
90(1)
The array Command
91(2)
Converting Between Arrays and Lists
92(1)
Passing Arrays by Name
92(1)
Building Data Structures with Arrays
93(6)
Simple Records
93(1)
A Stack
94(1)
A List of Arrays
95(1)
A Simple In-Memory Database
96(3)
Working with Files and Programs
99(20)
Running Programs with exec
99(3)
The auto_noexec Variable
101(1)
Limitations of exec on Windows
101(1)
AppleScript on Macintosh
101(1)
The file Command
102(1)
Cross-Platform File Naming
103(2)
Building up Pathnames: file join
104(1)
Chopping Pathnames: split, dirname, tail
105(1)
Manipulating Files and Directories
105(2)
Copying Files
106(1)
Creating Directories
106(1)
Deleting Files
106(1)
Renaming Files and Directories
107(1)
File Attributes
107(2)
Input/Output Command Summary
109(1)
Opening Files for I/O
110(2)
Opening a Process Pipeline
111(1)
Expect
112(1)
Reading and Writing
112(3)
The puts and gets Commands
112(1)
The read Command
113(1)
Platform-Specific End of Line Characters
114(1)
Random Access I/O
114(1)
Closing I/O Channels
115(1)
The Current Directory --- cd and pwd
115(1)
Matching File Names with glob
115(1)
Expanding Tilde in File Names
116(1)
The exit and pid Commands
116(1)
Environment Variables
117(1)
The registry Command
117(2)
II Advanced Tcl 119(186)
Quoting Issues and Eval
121(12)
Constructing Code with the list Command
122(4)
The eval Command
122(1)
Commands That Concatenate Their Arguments
123(1)
Commands That Use Callbacks
124(1)
Command Prefix Callbacks
124(1)
Constructing Procedures Dynamically
125(1)
Exploiting the concat inside eval
126(4)
Using eval in a Wrapper Procedure
126(2)
Correct Quoting with eval
128(2)
The uplevel Command
130(2)
The subst Command
132(1)
String Processing with subst
132(1)
Regular Expressions
133(28)
When to Use Regular Expressions
134(1)
Avoiding a Common Problem
134(1)
Regular Expression Syntax
135(3)
Matching Characters
135(1)
Character Sets
135(1)
Quantifiers
136(1)
Alternation
136(1)
Anchoring a Match
137(1)
Backslash Quoting
137(1)
Matching Precedence
138(1)
Capturing Subpatterns
138(1)
Advanced Regular Expressions
138(7)
Compatibility with Patterns in Tcl 8.0
139(1)
Backslash Escape Sequences
139(1)
Character Classes
140(1)
Nongreedy Quantifilers
140(1)
Bound Quantifiers
141(1)
Back References
141(1)
Look-ahead
142(1)
Character Codes
142(1)
Collating Elements
142(1)
Equivalence Classes
143(1)
Newline Sensitive Matching
143(1)
Embedded Options
144(1)
Expanded Syntax
144(1)
Syntax Summary
145(3)
The regexp Command
148(4)
A Pattern to Match URLs
149(2)
Sample Regular Expressions
151(1)
The regsub Command
152(1)
Transforming Data to Program with regsub
153(7)
URL Decoding
153(1)
CGI Argument Parsing
154(2)
Decoding HTML Entities
156(2)
A Simple HTML Parser
158(2)
Stripping HTML Comments
160(1)
Other Commands That Use Regular Expressions
160(1)
Script Libraries and Packages
161(12)
Locating Packages: The auto_path Variable
162(1)
Using Packages
163(2)
Loading Packages Automatically
163(1)
Packages Implemented in C Code
164(1)
Summary of Package Loading
165(1)
The package Command
165(1)
Libraries Based on the tclIndex File
166(1)
The unknown Command
167(2)
How Auto Loading Works
168(1)
Disabling the Library Facility: auto_noload
168(1)
Interactive Conveniences
169(1)
Auto Execute
169(1)
History
169(1)
Abbreviations
169(1)
Tcl Shell Library Environment
169(2)
Locating the Tcl Script Library
170(1)
tcl_findLibrary
170(1)
Coding Style
171(2)
A Module Prefix for Procedure Names
171(1)
A Global Array for State Variables
172(1)
The Official Tcl Style Guide
172(1)
Reflection and Debugging
173(22)
The clock Command
173(3)
The info Command
176(6)
Variables
177(1)
Procedures
178(2)
The Call Stack
180(1)
Command Evaluation
180(1)
Scripts and the Library
181(1)
Version Numbers
182(1)
Execution Environment
182(1)
Cross-Platform Support
182(1)
Tracing Variable Values
183(2)
Read-Only Variables
184(1)
Creating an Array with Traces
184(1)
Interactive Command History
185(3)
History Syntax
186(1)
A Comparison to C Shell History Syntax
187(1)
Debugging
188(1)
Scriptics' TclPro
189(1)
TclPro Debugger
189(1)
TclPro Checker
189(1)
TclPro Compiler
189(1)
TclPro Wrapper
190(1)
Other Tools
190(1)
The tkinspect Program
190(1)
The Tuba Debugger
190(1)
The bgerror Command
190(1)
The tkerror Command
191(1)
Performance Tuning
191(4)
Time stamps in a Log
191(1)
The Tcl Compiler
192(3)
Namespaces
195(12)
Using Namespaces
195(2)
Namespace Variables
197(1)
Qualified Names
198(1)
Command Lookup
198(1)
Nested Namespaces
199(1)
Importing and Exporting Procedures
200(1)
Callbacks and Namespaces
201(1)
Introspection
202(1)
The namespace Command
203(1)
Converting Existing Packages to use Namespaces
203(1)
[incr Tcl] Object System
204(1)
Notes
204(3)
Names for Widgets, Images, and Interpreters
205(1)
The variable command at the global scope
205(1)
Auto Loading and auto_import
205(1)
Namespaces and uplevel
205(1)
Naming Quirks
205(1)
Miscellaneous
206(1)
Internationalization
207(10)
Character Sets and Encodings
208(4)
The System Encoding
208(1)
File Encodings and fconfigure
209(1)
Scripts in Different Encodings
210(1)
Unicode and UTF-8
210(1)
The Binary Encoding
211(1)
Conversions Between Encodings
211(1)
The encoding Command
212(1)
Message Catalogs
212(5)
Specifying a Locale
213(1)
Managing Message Catalog Files
213(2)
Message Catalogs and Namespaces
215(1)
The msgcat package
216(1)
Event-Driven Programming
217(8)
The Tcl Event Loop
217(1)
The after Command
218(1)
The fileevent Command
219(1)
The vwait Command
220(1)
The fconfigure Command
221(4)
Nonblocking I/O
221(2)
The fblocked Command
223(1)
Buffering
223(1)
End of Line Translations
223(1)
End of File Character
224(1)
Serial Devices
224(1)
Character Set Encodings
224(1)
Configuring Read-Write Channels
224(1)
Socket Programming
225(18)
Client Sockets
226(1)
Client Socket Options
226(1)
Server Sockets
227(1)
Server Socket Options
228(1)
The Echo Service
228(2)
Fetching a URL with HTTP
230(7)
Proxy Servers
231(1)
The HEAD Request
232(2)
The GET and POST Requests
234(3)
The fcopy Command
237(1)
The http Package
237(4)
http: :config
238(1)
http: :geturl
238(3)
http: :formatQuery
241(1)
http: :reset
241(1)
http: :cleanup
241(1)
Basic Authentication
241(2)
TclHttpd Web Server
243(30)
Integrating TclHttpd with your Application
244(1)
TclHttpd Architecture
244(1)
Domain Handlers
245(2)
Connection State and Query Data
246(1)
Returning Results
247(1)
Application Direct URLs
247(2)
Using Query Data
248(1)
Returning Other Content Types
249(1)
Document Types
249(1)
HTML + Tcl Templates
250(4)
Where to put your Tcl Code
251(1)
Templates for Site Structure
252(2)
Form Handlers
254(5)
Application Direct Handlers
255(1)
Template Form Handlers
256(1)
Self Posting Forms
257(1)
The form package
258(1)
Programming Reference
259(4)
Standard Application-Direct URLs
263(3)
Status
263(1)
Debugging
263(2)
Administration
265(1)
Sending Email
265(1)
The TclHttpd Distribution
266(1)
Quick Start
266(1)
Inside the Distribution
267(1)
Server Configuration
267(6)
Command Line Arguments
268(1)
Server Name and Port
268(1)
User and Group ID
269(1)
Webmaster Email
269(1)
Document Root
269(1)
Other Document Settings
270(1)
Document Templates
270(1)
Log Files
271(1)
CGI Directories
271(2)
Multiple Interpreters and Safe-Tcl
273(20)
The interp Command
274(1)
Creating Interpreters
275(2)
The Interpreter Hierarchy
275(1)
The Interpreter Name as a Command
276(1)
Use list with interp eval
276(1)
Safe Interpreters
277(1)
Command Aliases
278(1)
Alias Introspection
278(1)
Hidden Commands
279(1)
Substitutions
280(1)
I/O from Safe Interpreters
281(1)
The Safe Base
282(1)
Security Policies
283(10)
Limited Socket Access
284(2)
Limited Temporary Files
286(3)
Safe after Command
289(4)
Safe-Tk and the Browser Plugin
293(12)
Tk in Child Interpreters
294(2)
Embedding Tk Windows
294(1)
Safe-Tk Restrictions
295(1)
The Browser Plugin
296(3)
The embed_args and plugin Variables
296(1)
Example Plugin
296(1)
Setting Up the plugin
297(1)
Plugin Environment Variables
297(1)
UNIX Configuration
298(1)
Windows Configuration
298(1)
Macintosh Configuration
298(1)
Security Policies and Browser Plugin
299(2)
The Browser Package
300(1)
Configuring Security Policies
301(4)
The config/plugin.cfg File
301(1)
Policy Configuraion Files
302(1)
Security Policy Features
303(1)
Creating New Security Policies
303(2)
III Tk Basics 305(78)
Tk Fundamentals
307(8)
Hello, World! in Tk
308(2)
Naming Tk Widgets
310(1)
Configuring Tk Widgets
310(1)
Tk Widget Attributes and the Resource Database
311(1)
The Tk Manual Pages
312(1)
Summary of the Tk Commands
312(3)
Tk by Example
315(18)
ExecLog
315(7)
Window Title
317(1)
A Frame for Buttons
318(1)
Command Buttons
318(1)
A Label and an Entry
318(1)
Key Bindings and Focus
318(1)
A Resizable Text and Scrollbar
319(1)
The Run Procedure
319(1)
The Log Procedure
320(1)
The Stop Procedure
321(1)
Cross-Platform Issues
321(1)
The Example Browser
322(5)
More about Resizing Windows
325(1)
Managing Global State
325(1)
Searching through Files
325(1)
Cascaded Menus
326(1)
A Read-Only Text Widget
327(1)
A Tcl Shell
327(6)
Text Marks, Tags, and Bindings
330(1)
Multiple Interpreters
330(1)
Native Look and Feel
330(3)
The Pack Geometry Manager
333(16)
Packing toward a Side
334(1)
Shrinking Frames and pack propagate
334(1)
Horizontal and Vertical Stacking
335(1)
The Cavity Model
336(1)
Packing Space and Display Space
337(3)
The -fill Option
337(1)
Internal Padding with -ipadx and -ipady
338(2)
External Padding with -padx and -pady
340(1)
Resizing and -expand
340(2)
Anchoring
342(1)
Packing Order
343(2)
Introspection
344(1)
Pack the Scrollbar First
344(1)
Choosing the Parent for Packing
345(1)
Unpacking a Widget
345(1)
Packer Summary
346(1)
The pack Command
346(1)
Window Stacking Order
347(2)
The Grid Geometry Manager
349(10)
A Basic Grid
349(4)
The -sticky Setting
350(1)
External Padding with -padx and -pady
351(1)
Internal Padding with -ipadx and -ipady
352(1)
Multiple Widgets in a Cell
352(1)
Spanning Rows and Columns
353(1)
Row and Column Constraints
354(2)
Row and Column Padding
354(1)
Minimum Size
355(1)
Managing Resize Behavior
355(1)
The grid Command
356(3)
The Place Geometry Manager
359(8)
place Basics
359(2)
The Pane Manager
361(4)
Parsing Arguments and Maintaining State
362(1)
Sticky Geometry Settings
362(1)
Event Bindings
363(1)
Managing the Layout
363(2)
The place Command
365(2)
Binding Commands to Events
367(16)
The bind Command
367(2)
The bindtags Command
369(2)
Focus and Key Events
370(1)
Using break and continue in Bindings
370(1)
Defining New Binding Tags
371(1)
Event Syntax
371(4)
Keyboard Events
371(2)
Mouse Events
373(1)
Other Events
374(1)
Bindings on Top-level Windows
374(1)
Modifiers
375(2)
Event Sequences
377(1)
Virtual Events
378(1)
Event Keywords
379(4)
IV Tk Widgets 383(120)
Buttons and Menus
385(20)
Button Commands and Scope Issues
386(4)
Buttons Associated with Tcl Variables
390(1)
Button Attributes
391(2)
Button Operations
393(1)
Menus and Menubuttons
394(3)
A Menu Bar
395(1)
System Menus
396(1)
Pop-Up Menus
396(1)
Option Menus
396(1)
Multicolum Palette Menus
397(1)
Keyboard Traversal
397(1)
Manipulating Menus and Menu Entries
397(2)
Menu Attributes
399(1)
A Menu by Name Package
400(5)
Menu Accelerators
403(2)
The Resource Database
405(10)
An Introduction to Resources
405(2)
Resource Patterns
406(1)
Loading Option Database Files
407(1)
Adding Individual Database Entries
408(1)
Accessing the Database
409(1)
User-Defined Buttons
409(2)
User-Defined Menus
411(4)
Application and User Resources
413(1)
Expanding Variables
414(1)
Simple Tk Widgets
415(12)
Frames and Toplevel Windows
415(3)
Attributes for Frames and Toplevels
416(1)
Embedding Other Applications
417(1)
Toplevel Window Styles
417(1)
The Label Widget
418(2)
Label Width and Wrap Length
419(1)
Label Attributes
419(1)
The Message Widget
420(3)
Message Attributes
422(1)
Arranging Labels and Messages
422(1)
The Scale Widget
423(3)
Scale Bindings
423(1)
Scale Attributes
424(1)
Programming Scales
425(1)
The bell Command
426(1)
Scrollbars
427(8)
Using Scrollbars
427(2)
The Scrollbar Protocol
429(3)
The Scrollbar set Operation
429(2)
The xview and yview Operations
431(1)
The Tk 3.6 Protocol
431(1)
The Scrollbar Widget
432(3)
Scrollbar Bindings
432(1)
Scrollbar Attributes
432(1)
Programming Scrollbars
433(2)
The Entry Widget
435(6)
Using Entry Widgets
435(2)
Tips for Using Entry Widgets
436(1)
The Entry Widget
437(4)
Entry Attributes
438(1)
Programming Entry Widgets
439(2)
The Listbox Widget
441(10)
Using Listboxes
441(4)
Programming Listboxes
443(2)
Listbox Bindings
445(4)
Browse Select Mode
446(1)
Single Select Mode
446(1)
Extended Select Mode
447(1)
Multiple Select Mode
448(1)
Scroll Bindings
448(1)
Listbox Attributes
449(2)
Geometry Gridding
449(2)
The Text Widget
451(22)
Text Indices
451(3)
Inserting and Deleting Text
452(1)
Index Arithmetic
453(1)
Comparing Indices
453(1)
Text Marks
454(1)
Mark Gravity
454(1)
Text Tags
455(5)
Tag Attributes
455(2)
Mixing Attributes from Different Tags
457(1)
Line Spacing and Justification
457(2)
Tab Stops
459(1)
The Selection
460(1)
Tag Bindings
460(1)
Searching Text
461(1)
Embedded Widgets
462(2)
Embedded Images
464(1)
Looking inside the Text Widget
465(2)
Looking at Tags
465(1)
Looking at Marks
466(1)
Dumping the Contents
466(1)
Text Bindings
467(2)
Text Operations
469(2)
Text Attributes
471(2)
The Canvas Widget
473(30)
Canvas Coordinates
473(1)
Hello, World!
474(3)
Canvas Tags
475(2)
The Min Max Scale Example
477(4)
Canvas Objects
481(13)
Arc Items
481(1)
Bitmap Items
482(1)
Image Items
483(1)
Line Items
484(2)
Oval Items
486(1)
Polygon Items
486(1)
Rectangle Items
487(1)
Text Items
488(4)
Window Items
492(2)
Canvas Operations
494(2)
Generating Postscript
496(2)
Canvas Attributes
498(2)
Hints
500(3)
Screen Coordinates vs. Canvas Coordinates
500(1)
Large Coordinate Spaces
500(1)
Scaling and Rotation
500(1)
Resources
500(1)
Objects with Many Points
501(1)
Selecting Canvas Items
501(2)
V Tk Details 503(98)
Selections and the Clipboard
505(8)
The Selection Model
505(2)
The selection Command
507(1)
The clipboard Command
508(1)
Selection Handlers
508(5)
A Canvas Selection Handler
509(4)
Focus, Grabs, and Dialogs
513(12)
Standard Dialogs
513(3)
Message Box
514(1)
File Dialogs
514(1)
Color Dialog
515(1)
Custom Dialogs
516(6)
Input Focus
516(1)
The focus Command
517(1)
Keyboard Focus Traversal
517(1)
Grabbing the Focus
518(1)
The tkwait Command
518(1)
Destroying Widgets
519(1)
The focus, grab, tkwait sequence
519(2)
Prompter Dialog
521(1)
Keyboard Shortcuts and Focus
522(1)
Animation with the update Command
522(3)
Tk Widget Attributes
525(8)
Configuring Attributes
525(1)
Size
526(2)
Borders and Relief
528(1)
The Focus Highlight
529(1)
Padding and Anchors
530(3)
Putting It All Together
531(2)
Color, Images, and Cursors
533(14)
Colors
534(4)
Color Palettes
535(1)
Color Values
535(3)
Colormaps and Visuals
538(1)
Bitmaps and Images
539(5)
The image Command
540(1)
Bitmap Images
540(1)
The bitmap Attribute
541(1)
Photo Images
542(2)
The Text Insert Cursor
544(1)
The Mouse Cursor
545(2)
Fonts and Text Attributes
547(12)
Naming a Font
548(2)
Named Fonts
549(1)
System Fonts
549(1)
Unicode Fonts
549(1)
X Font Names
550(2)
Font Failures before Tk 8.0
551(1)
Font Metrics
552(1)
The font Command
552(1)
Text Attributes
553(1)
Layout
553(1)
Selection Attributes
554(1)
Gridding, Resizing, and Geometry
554(1)
A Font Selection Application
555(4)
Send
559(10)
The send Command
560(1)
Send and X Authority
560(1)
The Sender Script
561(2)
Communicating Processes
563(1)
Remote eval through Sockets
564(5)
Window Managers and Window Information
569(12)
The wm Command
569(5)
Size, Placement, and Decoration
570(1)
Icons
571(1)
Session State
572(1)
Miscellaneous
573(1)
The winfo Command
574(6)
Sending Commands between Applications
574(1)
Family Relationships
575(1)
Size
576(1)
Location
577(1)
Virtual Root Window
578(1)
Atoms and IDs
578(1)
Colormaps and Visuals
579(1)
The tk Command
580(1)
Managing User Preferences
581(12)
App-Defaults Files
581(2)
Defining Preferences
583(2)
The Preferences User Interface
585(3)
Managing the Preferences File
588(2)
Tracing Changes to Preference Variables
590(1)
Improving the Package
590(3)
A User Interface to Bindings
593(8)
A Pair of Listboxes Working Together
595(2)
The Editing Interface
597(1)
Saving and Loading Bindings
598(3)
VI C Programming 601(94)
C Programming and Tcl
603(36)
Basic Concepts
604(3)
Getting Started
604(1)
C Command Procedures and Data Objects
604(1)
SWIG
605(1)
Tcl Initialization
605(1)
Calling Out to Tcl Scripts
606(1)
Using the Tcl C Library
606(1)
Creating a Loadable Package
607(2)
The load Command
607(1)
The Package Initialization Procedure
608(1)
Using Tcl_pkgProvide
609(1)
C Command Procedure
609(9)
The String Command Interface
610(2)
Result Codes from Command Procedures
612(1)
Managing the String Result
612(1)
The Tcl_Obj Command Interface
613(2)
Managing Tcl_obj Reference Counts
615(1)
Modifying Tcl_Obj Values
616(1)
Pitfalls of Shared Tcl_Obj Values
617(1)
The blob Command Example
618(8)
Creating and Destroying Hash Tables
618(2)
Tcl_Alloc and Tcl_Free
620(1)
Parsing Arguments and Tcl_GetIndexFromObj
620(3)
Creating and Removing Elements from a Hash Table
623(1)
Building a List
624(1)
Keeping References to Tcl_Obj Values
624(1)
Using Tcl_Preserve and Tcl_Release to Guard Data
625(1)
Strings and Internationalization
626(2)
The DString Interface
627(1)
Character Set Conversions
627(1)
Tcl_Main and Tcl_AppInit
628(4)
Tk_Main
630(2)
The Event Loop
632(1)
Invoking Scripts from C
633(6)
Variations on Tcl_Eval
633(1)
Bypassing Tcl_Eval
634(5)
Compiling Tcl and Extensions
639(14)
Standard Directory Structure
640(1)
The Source Distribution
640(1)
The Installation Directory Structure
641(1)
Building Tcl from Source
641(4)
Configure and Autoconf
642(1)
Standard Configure Flags
643(2)
Installation
645(1)
Using Stub Libraries
645(1)
Using autoconf
646(1)
The tcl.m4 File
646(1)
Makefile Templates
647(1)
The Sample Extension
647(6)
configure.in
648(1)
Makefile.in
649(2)
Standard Header Files
651(1)
Using the Sample Extension
651(2)
Writing a Tk Widget in C
653(24)
Initializing the Extension
654(1)
The Widget Data Structure
654(1)
The Widget Class Command
655(4)
The Widget Instance Command
659(3)
Configuring and Reconfiguring Attributes
662(4)
Specifying Widget Attributes
666(5)
Displaying the Clock
671(3)
The Window Event Procedure
674(1)
Final Cleanup
675(2)
C Library Overview
677(18)
An Overview of the Tcl C Library
678(9)
Application Initialization
678(1)
Creating and Deleting Interpreters
678(1)
Creating and Deleting Commands
678(1)
Dynamic Loading and Packages
678(1)
Managing the Result String
679(1)
Memory Allocation
679(1)
Lists
679(1)
Command Parsing
679(1)
Command Pipelines
680(1)
Tracing the Actions of the Tcl Interpreter
680(1)
Evaluating Tcl Commands
680(1)
Reporting Script Errors
681(1)
Manipulating Tcl Variables
681(1)
Evaluating Expressions
681(1)
Converting Numbers
681(1)
Tcl Objects
681(1)
Primitive Object Types
682(1)
String Object Types
682(1)
ByteArrays for Binary Data
682(1)
Dynamic Strings
683(1)
Character Set Encodings
683(1)
AssocData for per Interpreter Data Structures
683(1)
Hash Tables
684(1)
Option Processing
684(1)
Regular Expressions and String Matching
684(1)
Event Loop Implementation
684(1)
File Handlers
685(1)
Timer Events
685(1)
Idle Callbacks
685(1)
Input/Output
685(1)
I/O Channel Drivers
686(1)
Manipulating File Names
686(1)
Examining the File System
686(1)
Thread Support
686(1)
Working with Signals
687(1)
Exit Handlers
687(1)
An Overview of the Tk C Library
687(8)
Main Programs and Command-Line Arguments
687(1)
Creating Windows
687(1)
Application Name for Send
688(1)
Configuring Windows
688(1)
Window Coordinates
688(1)
Window Stacking Order
688(1)
Window Information
689(1)
Configuring Widget Attributes
689(1)
The Selection and Clipboard
689(1)
Event Loop Interface
689(1)
Handling Window Events
689(1)
Event Bindings
690(1)
Handling Graphic Protocol Errors
690(1)
Using the Resource Database
690(1)
Managing Bitmaps
690(1)
Creating New Image Types
690(1)
Using an Image in a Widget
690(1)
Photo Image Types
691(1)
Canvas Object Support
691(1)
Geometry Management
691(1)
String Identifiers (UIDS)
692(1)
Colors, Colormaps, and Visuals
692(1)
3D Borders
692(1)
Mouse Cursors
692(1)
Fonts and Text Display
693(1)
Graphics Contexts
693(1)
Allocate a Pixmap
693(1)
Screen Measurements
693(1)
Relief Style
693(1)
Text Anchor Positions
693(1)
Line Cap Styles
694(1)
Line Join Styles
694(1)
Text Justification Styles
694(1)
Atoms
694(1)
X Resource ID Management
694(1)
VII Changes 695(34)
Tcl 7.4/Tk 4.0
697(8)
wish
697(1)
Obsolete Features
697(1)
The cget Operation
698(1)
Input Focus Highlight
698(1)
Bindings
698(1)
Scrollbar Interface
699(1)
pack info
699(1)
Focus
699(1)
The send Command
700(1)
Internal Button Padding
700(1)
Radiobutton Value
700(1)
Entry Widget
700(1)
Menus
701(1)
Listboxes
701(1)
No geometry Attribute
701(1)
Text Widget
702(1)
Color Attributes
702(1)
Color Allocation and tk colormodel
703(1)
Canvas scrollincrement
703(1)
The Selection
703(1)
The bell Command
703(2)
Tcl 7.5/Tk 4.1
705(4)
Cross-Platform Scripts
705(1)
File Name Manipulation
705(1)
Newline Translations
705(1)
The tcl_platform Variable
706(1)
The console Command
706(1)
The clock Command
706(1)
The load Command
706(1)
The package Command
707(1)
Multiple foreach loop variables
707(1)
Event Loop Moves from Tk to Tcl
707(1)
Network Sockets
707(1)
info hostname
708(1)
The fconfigure Command
708(1)
Multiple Interpreters and Safe-Tcl
708(1)
The grid Geometry Manager
708(1)
The Text Widget
708(1)
The Entry Widget
708(1)
Tcl 7.6/Tk 4.2
709(2)
More file Operations
709(1)
Virtual Events
709(1)
Standard Dialogs
710(1)
New grid Geometry Manager
710(1)
Macintosh unsupportedl Command
710(1)
Tcl/Tk 8.0
711(8)
The Tcl Compiler
711(1)
Compile-Time Errors
712(1)
Binary String Support
712(1)
Namespaces
712(1)
Safe-Tcl
712(1)
New 1sort
713(1)
tcl_precision Variable
713(1)
Year 2000 Convention
713(1)
Http Package
713(1)
Serial Line I/O
714(1)
Platform-Independent Fonts
714(1)
The tk scaling Command
714(1)
Application Embedding
714(1)
Native Menus and Menubars
714(1)
CDE Border Width
715(1)
Native Buttons and Scrollbars
715(1)
Images in Text Widgets
715(1)
No Errors from destroy
715(1)
grid rowconfigure
715(1)
The Patch Releases
715(4)
fconfigure -error
716(1)
tcl_platform (debug)
716(1)
tcl_findLibrary
716(1)
auto_mkindex_old
717(1)
Windows Keysyms for Start and Menu Keys
717(1)
The MouseWheel Event
717(1)
Transparent Fill on Canvas Text
717(1)
safe: :loadTk
717(2)
Tcl/Tk 8.1
719(4)
Unicode and Internationalization
719(1)
fconfigure -encoding
719(1)
The encoding Command
720(1)
The msgcat Package
720(1)
UTF-8 and Unicode C API
720(1)
Thread Safety
720(1)
The testthread Command
720(1)
Advanced Regular Expressions
721(1)
New String Commands
721(1)
The DDE Extension
722(1)
Miscellaenous
722(1)
Serial Line I/O
722(1)
tcl_platform (user)
722(1)
Tcl/Tk 8.2
723(2)
The Trf Patch
723(1)
Faster String Operations
723(1)
Empty Array Names
724(1)
Browser Plugin Compatibility
724(1)
Tcl/Tk 8.3
725(4)
Proposed Tcl Changes
726(1)
Octal Numbers
726(1)
file channels
726(1)
Changing File Modify Times
726(1)
regsub - subst or -command
726(1)
New glob options
726(1)
Internationalization
726(1)
Proposed Tk Changes
727(2)
The Img Patch
727(1)
Canvas Improvements
727(1)
Pointer Warping
727(1)
Hidden Text
727(1)
Entry Widget Validation
727(2)
About The CD-ROM
729

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews