Livre : Tcl and the Tk Toolkit

 

 Auteur : John K. Ousterhout et Ken Jones
 http://www.tcltk-book.com/

 ISBN-10: 0-321-33633-X
 ISBN-13: 978-0-321-33633-0
 Editeur: Addison-Wesley Professional; 2nd edition (Août 2009)
 Pages : 816
 Prix: 50$

Téléchargez le Chapitre 1 [1]


Table des matières


 Preface xxv

 Preface to the First Edition xxvii

 Introduction xxxi

 PART I: The Tcl Language 1

 Chapter 1: An Overview of Tcl and Tk 3
  1.1: Getting Started 3
  1.2: “Hello, World!” with Tk 6
  1.3: Script Files 8
  1.4: Variables and Substitutions 11
  1.5: Control Structures 12
  1.6: On the Tcl Language 14
  1.7: Event Bindings 15
  1.8: Additional Features of Tcl and Tk 19

 Chapter 2: Tcl Language Syntax 21
  2.1: Scripts, Commands, and Words 21
  2.2: Evaluating a Command 22
  2.3: Variable Substitution 24
  2.4: Command Substitution 26
  2.5: Backslash Substitution 26
  2.6: Quoting with Double Quotes 28
  2.7: Quoting with Braces 29
  2.8: Argument Expansion 30
  2.9: Comments 32
  2.10: Normal and Exceptional Returns 35
  2.11: More on Substitutions 36

 Chapter 3: Variables 39
  3.1: Commands Presented in This Chapter 39
  3.2: Simple Variables and the set Command 41
  3.3: Tcl’s Internal Storage of Data 41
  3.4: Arrays 42
  3.5: Variable Substitution 43
  3.6: Multidimensional Arrays 45
  3.7: Querying the Elements of an Array 46
  3.8: The incr and append Commands 47
  3.9: Removing Variables: unset and array unset 49
  3.10: Predefined Variables 49
  3.11: Preview of Other Variable Facilities 50

 Chapter 4: Expressions 53
  4.1: Commands Presented in This Chapter 53
  4.2: Numeric Operands 54
  4.3: Operators and Precedence 55
  4.4: Math Functions 58
  4.5: Substitutions 60
  4.6: String Manipulation 62
  4.7: List Manipulation 63
  4.8: Types and Conversions 63
  4.9: Precision 64

 Chapter 5: String Manipulation 65
  5.1: Commands Presented in This Chapter 65
  5.2: Extracting Characters: string index and string range 69
  5.3: Length, Case Conversion, Trimming, and Repeating 70
  5.4: Simple Searching 70
  5.5: String Comparisons 71
  5.6: String Replacements 72
  5.7: Determining String Types 73
  5.8: Generating Strings with format 74
  5.9: Parsing Strings with scan 76
  5.10: Glob-Style Pattern Matching 78
  5.11: Pattern Matching with Regular Expressions 79
  5.12: Using Regular Expressions for Substitutions 87
  5.13: Character Set Issues 89
  5.14: Message Catalogs 91
  5.15: Binary Strings 95

 Chapter 6: Lists 101
  6.1: Commands Presented in This Chapter 101
  6.2: Basic List Structure and the lindex and llength Commands 103
  6.3: Creating Lists: list, concat, and lrepeat 105
  6.4: Modifying Lists: lrange, linsert, lreplace, lset, and lappend 106
  6.5: Extracting List Elements: lassign 109
  6.6: Searching Lists: lsearch 110
  6.7: Sorting Lists: lsort 111
  6.8: Converting between Strings and Lists: split and join 111
  6.9: Creating Commands as Lists 113

 Chapter 7: Dictionaries 115
  7.1: Commands Presented in This Chapter 116
  7.2: Basic Dictionary Structure and the dict get Command 118
  7.3: Creating and Updating Dictionaries 120
  7.4: Examining Dictionaries: The size, exists, keys, and for Subcommands 122
  7.5: Updating Dictionary Values 123
  7.6: Working with Nested Dictionaries 126

 Chapter 8: Control Flow 131
  8.1: Commands Presented in This Chapter 131
  8.2: The if Command 132
  8.3: The switch Command 133
  8.4: Looping Commands: while, for, and foreach 136
  8.5: Loop Control: break and continue 138
  8.6: The eval Command 139
  8.7: Executing from Files: source 140

 Chapter 9: Procedures 143
  9.1: Commands Presented in This Chapter 143
  9.2: Procedure Basics: proc and return 144
  9.3: Local and Global Variables 146
  9.4: Defaults and Variable Numbers of Arguments 146
  9.5: Call by Reference: upvar 148
  9.6: Creating New Control Structures: uplevel 150
  9.7: Applying Anonymous Procedures 151

 Chapter 10: Namespaces 155
  10.1: Commands Presented in This Chapter 155
  10.2: Evaluating Tcl Code in a Namespace 158
  10.3: Manipulating Qualified Names 161
  10.4: Exporting and Importing Namespace Commands 162
  10.5: Inspecting Namespaces 163
  10.6: Working with Ensemble Commands 164
  10.7: Accessing Variables from Other Namespaces 169
  10.8: Controlling the Name Resolution Path 170

 Chapter 11: Accessing Files 173
  11.1: Commands Presented in This Chapter 173
  11.2: Manipulating File and Directory Names 176
  11.3: The Current Working Directory 179
  11.4: Listing Directory Contents 179
  11.5: Working with Files on Disk 181
  11.6: Reading and Writing Files 185
  11.7: Virtual File Systems 194
  11.8: Errors in System Calls 196

 Chapter 12: Processes and Interprocess Communication 197
  12.1: Commands Presented in This Chapter 197
  12.2: Terminating the Tcl Process with exit 199
  12.3: Invoking Subprocesses with exec 199
  12.4: I/O to and from a Command Pipeline 203
  12.5: Configuring Channel Options 204
  12.6: Event-Driven Channel Interaction 206
  12.7: Process IDs 209
  12.8: Environment Variables 210
  12.9: TCP/IP Socket Communication 210
  12.10: Sending Commands to Tcl Programs 214

 Chapter 13: Errors and Exceptions 219
  13.1: Commands Presented in This Chapter 219
  13.2: What Happens after an Error? 220
  13.3: Generating Errors from Tcl Scripts 222
  13.4: Trapping Errors with catch 222
  13.5: Exceptions in General 223
  13.6: Background Errors and bgerror 227

 Chapter 14: Creating and Using Tcl Script Libraries 229
  14.1: Commands Presented in This Chapter 230
  14.2: The load Command 232
  14.3: Using Libraries 232
  14.4: Autoloading 233
  14.5: Packages 234
  14.6: Tcl Modules 239
  14.7: Packaging Your Scripts as Starkits 242

 Chapter 15: Managing Tcl Internals 247
  15.1: Commands Presented in This Chapter 247
  15.2: Time Delays 253
  15.3: Time and Date Manipulation 254
  15.4: Timing Command Execution 259
  15.5: The info Command 259
  15.6: Tracing Operations on Simple Variables 264
  15.7: Tracing Array Variables 268
  15.8: Renaming and Deleting Commands 269
  15.9: Tracing Commands 270
  15.10: Unknown Commands 272
  15.11: Slave Interpreters 274

 Chapter 16: History 283
  16.1: Commands Presented in This Chapter 283
  16.2: The History List 284
  16.3: Specifying Events 285
  16.4: Re-executing Commands from the History List 285
  16.5: Shortcuts Implemented by unknown 286
  16.6: Current Event Number: history nextid 287

 PART II: Writing Scripts for Tk 289

 Chapter 17: An Introduction to Tk 291
  17.1: A Brief Introduction to Windowing Systems 292
  17.2: Widgets 294
  17.3: Applications, Toplevel Widgets, and Screens 296
  17.4: Scripts and Events 297
  17.5: Creating and Destroying Widgets 297
  17.6: Geometry Managers 298
  17.7: Widget Commands 299
  17.8: Commands for Interconnection 300

Chapter 18: A Tour of the Tk Widgets 303

18.1: Widget Basics 304

18.2: Frames 306

18.3: Color Options 307

18.4: Toplevels 308

18.5: Labels 309

18.6: Labelframes 312

18.7: Buttons 312

18.8: Listboxes 317

18.9: Scrollbars 318

18.10: Scales 321

18.11: Entries 323

18.12: Menus 327

18.13: Panedwindow 334

18.14: Standard Dialogs 337

18.15: Other Common Options 339

Chapter 19: Themed Widgets 343

19.1: Comparing Classic and Themed Widgets 343

19.2: Combobox 345

19.3: Notebook 346

19.4: Progressbar 349

19.5: Separator 350

19.6: Sizegrip 350

19.7: Treeview 350

19.8: Themed Widget States 358

19.9: Themed Widget Styles 360

19.10: Other Standard Themed Widget Options 364

Chapter 20: Fonts, Bitmaps, and Images 367

20.1: Commands Presented in This Chapter 367

20.2: The font Command 369

20.3: The image Command 375

Chapter 21: Geometry Managers 385

21.1: Commands Presented in This Chapter 386

21.2: An Overview of Geometry Management 387

21.3: The Gridder 389

21.4: The Packer 396

21.5: Padding 404

21.6: The Placer 405

21.7: Hierarchical Geometry Management 405

21.8: Widget Stacking Order 407

21.9: Other Geometry Manager Options 408

21.10: Other Geometry Managers in Tk 409

Chapter 22: Events and Bindings 413

22.1: Commands Presented in This Chapter 413

22.2: Events 414

22.3: An Overview of the bind Command 416

22.4: Event Patterns 417

22.5: Sequences of Events 419

22.6: Substitutions in Scripts 419

22.7: Conflict Resolution 421

22.8: Event-Binding Hierarchy 422

22.9: When Are Events Processed? 423

22.10: Named Virtual Events 425

22.11: Generating Events 427

22.12: Logical Actions 428

22.13: Other Uses of Bindings 431

Chapter 23: The Canvas Widget 433

23.1: Canvas Basics: Items and Types 433

23.2: Manipulating Items with Identifiers and Tags 436

23.3: Bindings 439

23.4: Canvas Scrolling 444

23.5: PostScript Generation 445

Chapter 24: The Text Widget 447

24.1: Text Widget Basics 447

24.2: Text Indices and Marks 450

24.3: Search and Replace 451

24.4: Text Tags 453

24.5: Virtual Events 458

24.6: Embedded Windows 459

24.7: Embedded Images 460

24.8: Undo 462

24.9: Peer Text Widgets 464

Chapter 25: Selection and the Clipboard 467

25.1: Commands Presented in This Chapter 468

25.2: Selections, Retrievals, and Types 469

25.3: Locating and Clearing the Selection 470

25.4: Supplying the Selection with Tcl Scripts 471

25.5: The clipboard Command 473

25.6: Drag and Drop 474

Chapter 26: Window Managers 477

26.1: Commands Presented in This Chapter 478

26.2: Window Sizes 481

26.3: Window Positions 482

26.4: Gridded Windows 483

26.5: Window States 484

26.6: Decorations 485

26.7: Special Handling: Transients, Groups, and Override-Redirect 486

26.8: System-Specific Window Attributes 487

26.9: Dockable Windows 488

26.10: Window Close 489

26.11: Session Management 490

Chapter 27: Focus, Modal Interaction, and Custom Dialogs 491

27.1: Commands Presented in This Chapter 491

27.2: Input Focus 493

27.3: Modal Interactions 495

27.4: Custom Dialogs 499

Chapter 28: More on Configuration Options 505

28.1: Commands Presented in This Chapter 505

28.2: The Option Database 506

28.3: Option Database Entries 507

28.4: The RESOURCE_MANAGER Property and .Xdefaults File 508

28.5: Priorities in the Option Database 509

28.6: The option Command 510

28.7: The configure Widget Command 511

28.8: The cget Widget Command 512

Chapter 29: Odds and Ends 513

29.1: Commands Presented in This Chapter 513

29.2: Destroying Widgets 514

29.3: The update Command 514

29.4: Information about Widgets 516

29.5: The tk Command 516

29.6: Variables Managed by Tk 517

29.7: Ringing the Bell 518

PART III: Writing Tcl Applications in C 519

Chapter 30: Tcl and C Integration Philosophy 521

30.1: Tcl versus C: Where to Draw the Line 523

30.2: Resource Names–Connecting C Constructs to Tcl 524

30.3: “Action-Oriented” versus “Object-Oriented” 525

30.4: Representing Information 526

 Chapter 31: Interpreters 527
  31.1: Functions Presented in This Chapter 527
  31.2: Interpreters 529
  31.3: A Simple Tcl Application 530
  31.4: Deleting Interpreters 531
  31.5: Multiple Interpreters 531

 Chapter 32: Tcl Objects 533
  32.1: Functions Presented in This Chapter 534
  32.2: String Objects 537
  32.3: Numerical Objects 537
  32.4: Fetching C Values from Objects 538
  32.5: The Dynamic Nature of a Tcl Object 539
  32.6: Byte Arrays 540
  32.7: Composite Objects 540
  32.8: Reference Counting 540
  32.9: Shared Objects 541
  32.10: New Object Types 542
  32.11: Parsing Strings 543
  32.12: Memory Allocation 544

 Chapter 33: Evaluating Tcl Code 545
  33.1: Functions Presented in This Chapter 545
  33.2: Evaluating Tcl Code 546
  33.3: Dynamically Building Scripts 548
  33.4: Tcl Expressions 549

 Chapter 34: Accessing Tcl Variables 551
  34.1: Functions Presented in This Chapter 551
  34.2: Setting Variable Values 553
  34.3: Reading Variables 555
  34.4: Unsetting Variables 556
  34.5: Linking Tcl and C Variables 556
  34.6: Setting and Unsetting Variable Traces 558
  34.7: Trace Callbacks 559
  34.8: Whole-Array Traces 561
  34.9: Multiple Traces 561
  34.10: Unset Callbacks 562

 Chapter 35: Creating New Tcl Commands 563
  35.1: Functions Presented in This Chapter 563
  35.2: Command Functions 566
  35.3: Registering Commands 567
  35.4: The Result Protocol 569
  35.5: Tcl_AppendResult 569
  35.6: Tcl_SetResult and interp->result 570
  35.7: clientData and Deletion Callbacks 572
  35.8: Deleting Commands 575
  35.9: Fetching and Setting Command Parameters 576
  35.10: How Tcl Procedures Work 578
  35.11: Command Traces 579

 Chapter 36: Extensions 581
  36.1: Functions Presented in This Chapter 581
  36.2: The Init Function 582
  36.3: Packages 583
  36.4: Namespaces 584
  36.5: Tcl Stubs 584
  36.6: The ifconfig Extension 585

 Chapter 37: Embedding Tcl 593
  37.1: Functions Presented in This Chapter 593
  37.2: Adding Tcl to an Application 594
  37.3: Initialize Tcl 595
  37.4: Creating New Tcl Shells 596

 Chapter 38: Exceptions 599
  38.1: Functions Presented in This Chapter 599
  38.2: Completion Codes 600
  38.3: Setting errorCode 603
  38.4: Managing the Return Options Dictionary 604
  38.5: Adding to the Stack Trace in errorInfo 605
  38.6: Tcl_Panic 608

 Chapter 39: String Utilities 611
  39.1: Functions Presented in This Chapter 611
  39.2: Dynamic Strings 617
  39.3: String Matching 621
  39.4: Regular Expression Matching 622
  39.5: Working with Character Encodings 624
  39.6: Handling Unicode and UTF-8 Strings 625
  39.7: Command Completeness 627

 Chapter 40: Hash Tables 629
  40.1: Functions Presented in This Chapter 630
  40.2: Keys and Values 631
  40.3: Creating and Deleting Hash Tables 632
  40.4: Creating Entries 633
  40.5: Finding Existing Entries 635
  40.6: Searching 636
  40.7: Deleting Entries 637
  40.8: Statistics 638

 Chapter 41: List and Dictionary Objects 639
  41.1: Functions Presented in This Chapter 639
  41.2: Lists 642
  41.3: Dictionaries 644

 Chapter 42: Channels 649
  42.1: Functions Presented in This Chapter 649
  42.2: Channel Operations 656
  42.3: Registering Channels 658
  42.4: Standard Channels 660
  42.5: Creating a New Channel Type 661

 Chapter 43: Handling Events 671
  43.1: Functions Presented in This Chapter 671
  43.2: Channel Events 672
  43.3: Timer Events 676
  43.4: Idle Callbacks 677
  43.5: Invoking the Event Dispatcher 678

 Chapter 44: File System Interaction 681
  44.1: Tcl File System Functions 681
  44.2: Virtual File Systems 683

 Chapter 45: Operating System Utilities 685
  45.1: Functions Presented in This Chapter 685
  45.2: Processes 687
  45.3: Reaping Child Processes 689
  45.4: Asynchronous Events 690
  45.5: Signal Names 693
  45.6: Exiting and Cleanup 693
  45.7: Miscellaneous 694

 Chapter 46: Threads 695
  46.1: Functions Presented in This Chapter 695
  46.2: Thread Safety 697
  46.3: Building Threaded Tcl 697
  46.4: Creating Threads 697
  46.5: Terminating Threads 698
  46.6: Mutexes 698
  46.7: Condition Variables 699
  46.8: Miscellaneous 701

 Chapter 47: Building Tcl and Extensions 703
  47.1: Building Tcl and Tk 703
  47.2: The Tcl Extension Architecture (TEA) 707
  47.3: Building Embedded Tcl 714

 Appendixes 715

 Appendix A: Installing Tcl and Tk 717
  A.1: Versions 717
  A.2: Bundled Tcl Distributions 718
  A.3: ActiveTcl 718
  A.4: Tclkits 719
  A.5: Compiling Tcl/Tk from Source Distributions 719

 Appendix B: Extensions and Applications 721
  B.1: Obtaining and Installing Extensions 721
  B.2: TkCon Extended Console 724
  B.3: The Standard Tcl Library, Tcllib 725
  B.4: Additional Image Formats with Img 725
  B.5: Sound Support with Snack 725
  B.6: Object-Oriented Tcl 726
  B.7: Multithreaded Tcl Scripting 727
  B.8: XML Programming 727
  B.9: Database Programming 728
  B.10: Integrating Tcl and Java 728
  B.11: SWIG 729
  B.12: Expect 729
  B.13: Extended Tcl 730

 Appendix C: Tcl Resources 731
  C.1: Online Resources 731
  C.2: Books 732

 Appendix D: Tcl Source Distribution License 735
  Index 737

Catégorie Documentation