search for books and compare prices
Tables of Contents for Incr_Tcl/Tk from the Ground Up
Chapter/Section Title
Page #
Page Count
Foreword
xiii
 
Acknowledgments
xv
 
Introduction
xvii
 
I [incr Tcl]
Getting Started
3
32
Classes and Objects
4
4
Defining a Class in the Shell
8
4
Class Definition with wish
8
4
Class Definition with itkwish
12
1
Creating Objects
12
6
Naming Conflicts
15
3
Using an Object
18
2
Deleting Objects
20
2
Inheritance
22
7
The Object-Oriented Paradigm
29
6
Approaching OOP
29
2
OOP Versus Function-Oriented
31
4
Methods
35
36
Introduction
36
1
Arguments and Parameters
37
13
Empty Argument Lists
38
1
Multiple Arguments
39
1
Optional Arguments
40
4
Variable-Length Argument Lists
44
4
Passing Arguments by Reference
48
2
Separating Interface from Implementation
50
9
Using the body Command
50
3
Interactive Debugging
53
4
Header and Source Files
57
2
Accessor Methods
59
1
Namespace Qualifiers
60
2
Static Methods
62
1
Access Levels
63
3
Built-In Methods
66
3
The info Method
67
2
The isa Method
69
2
Data Members
71
34
Introduction
72
1
Access Levels
72
8
Private Access
73
1
Protected Access
74
1
Public Access
74
6
The this Variable
80
11
Using this For Binding User-Initiated Callbacks
82
4
Using this to Register Objects with Other Objects
86
3
Using this for Self-Reference during after Callbacks
89
2
Instance Variables
91
4
Scalar Instance Variables
91
2
Array Instance Variables
93
2
Static Variables
95
5
Scalar Static Variables
95
4
Static Array Variables
99
1
Scoping
100
5
Construction and Destruction
105
32
The Construction Process
106
14
Defining the Class
106
9
Object Creation
115
5
Auto-Generated Object Names
120
1
Default Constructors/Destructors
121
1
Initializing Configuration Options
122
1
Passing Arguments to Base Class Constructors
123
4
Constructor/Destructor Errors
127
6
When Construction Fails
128
3
When Destruction Fails
131
2
Constructor Overloading
133
2
Copy Constructors
135
2
Debugging
137
26
Introduction
138
1
Basic Debugging: Built-In Commands
139
10
Using errorInfo to Locate Errors
139
3
Using catch to Locate Errors
142
2
Using puts to Locate Errors
144
1
Using trace to Locate Errors
145
4
Choosing an Approach
149
1
A New Debugging Tool
149
7
Definition and Implementation
149
4
Using the New Tool
153
3
Advanced Debugging: Modifying Debug Output Dynamically
156
7
Creating the Debug Server
156
2
Creating the Back Door
158
1
Communicating with the Debug Server
159
4
Tying It All Together with Sockets
163
40
Analysis and Design
164
6
Analyzing the Problem Domain
164
2
Designing the Model
166
4
Establishing a Protocol
170
2
Implementing the Design
172
12
The ServerSocket Class
172
9
The ClientSocket Class
181
3
Testing the Code
184
7
In Depth
187
4
Tying It All Together: User Authentication
191
12
Implementing the Server Side
192
2
Implementing the Client Side
194
4
Testing the Model
198
5
Using Composition
203
36
Introduction
204
1
Object Lifetime
205
7
Creating Temporary Objects
206
2
An Alternative Implementation for Trace Using local
208
4
Using Composition to Design a Chat Room
212
27
Speaking the Same Language
214
1
Creating the Back End: The Chat Room Server
214
7
Controlling Access
221
2
Creating the Front End: The Chat Room Client
223
10
Logging into the Chat Room
233
6
Advanced Inheritance
239
28
Overloading
240
8
Methods
240
4
Accessing Overloaded Base Class Methods
244
3
Data Members
247
1
Taking Advantage of Virtual Methods
248
3
Synthesizing Pure Virtual Methods
251
1
Multiple Inheritance
252
15
Construction/Destruction Order
253
3
Combining Class Functionality with Multiple Inheritance
256
6
Naming Ambiguities
262
1
One Limitation
263
4
Integrating [incr Tcl] with C/C++
267
40
Introduction
268
1
Class Methods as C Functions
269
13
Dynamic Loading
269
10
Static Linking
279
3
Accessing Class Data Members from C Functions
282
5
Retrieving Data Members
283
3
Modifying Data Members
286
1
Invoking Class Methods from C Functions
287
2
Using C++ Objects Within an [incr Tcl] Class
289
8
Implementing the C++ Class
290
1
Creating a New C++ Object
290
1
Implementing the Command Procedure
291
2
Destroying the C++ Object
293
1
Implementing the Initialization Procedure
294
1
Avoiding Loader Problems
294
1
Building the Shared Library
295
1
Defining the [incr Tcl] Front End
295
1
A Test Run
296
1
Wrapping C++ Objects As an [incr Tcl] Class
297
10
Implementing the [incr Tcl] Wrapper Class
297
1
Creating the C Wrapper Functions
298
7
A Test Run
305
2
Namespaces and Packages
307
24
What Is a Namespace?
308
6
Usage
309
1
Encapsulation
310
1
Access Control
311
3
From One Namespace to Another
314
7
Object Visibility
314
4
Variable Visibility
318
3
Creating a Package
321
10
Implementing the Namespace
321
3
Setting Up the Package
324
7
II [incr Tk]
Mega-Widget Basics
331
24
Introduction
332
1
What Is a Mega-Widget?
333
5
Base Class Hierarchy
338
10
Archetype
338
9
Widget
347
1
Toplevel
348
1
A Mega-Widget or Not a Mega-Widget?
348
1
Simple Example
349
6
Construction
351
1
Widget Operations
352
1
Destruction
353
2
Configuration Options
355
26
The Composite Option List
356
1
Usual Options
357
5
Adding Component Widgets
362
5
Keeping Options
362
3
Ignoring Options
365
1
Renaming Options
366
1
Removing Component Widgets
367
2
Defining New Configuration Options
369
2
Manipulating Base Class Configuration Options
371
2
A Working Example: The ``Dual Listbox''
373
3
The Options Database
376
5
III [incr Widgets]
Introduction and Childsites
381
12
The Iwidgets Package
382
5
Childsites
387
6
Reference
393
332
buttonbox
395
5
calendar
400
7
canvasprintbox
407
8
canvasprintdialog
415
5
checkbox
420
6
combobox
426
9
dateentry
435
6
datefield
441
5
dialog
446
5
dialogshell
451
6
disjointlistbox
457
7
entryfield
464
7
extfileselectionbox
471
9
extfileselectiondialog
480
6
feedback
486
5
fileselectionbox
491
9
fileselectiondialog
500
6
finddialog
506
7
hierarchy
513
12
hyperhelp
525
6
labeledframe
531
5
labeledwidget
536
5
mainwindow
541
8
menubar
549
10
messagebox
559
7
messagedialog
566
6
notebook
572
7
optionmenu
579
7
panedwindow
586
8
promptdialog
594
5
pushbutton
599
4
radiobox
603
5
regexpfield
608
6
scrolledcanvas
614
7
scrolledframe
621
6
scrolledhtml
627
9
scrolledlistbox
636
7
scrolledtext
643
7
selectionbox
650
7
selectiondialog
657
6
shell
663
5
spindate
668
6
spinint
674
6
spinner
680
6
spintime
686
6
tabnotebook
692
8
timeentry
700
6
timefield
706
5
toolbar
711
6
watch
717
8
Index
725