Xref: utzoo comp.windows.x:38127 alt.books.technical:559 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!decwrl!adobe!asente From: asente@adobe.com (Paul Asente) Newsgroups: comp.windows.x,alt.books.technical Subject: Re: Books on X Programming Message-ID: <17110@adobe.UUCP> Date: 28 Jun 91 21:48:37 GMT References: <10907@plains.NoDak.edu> <1991Jun27.050355.28722@world.std.com> Sender: news@adobe.COM Followup-To: comp.windows.x Organization: Adobe Systems Inc. Lines: 801 >>>Asente, Paul J. and Ralph R. Swick, X Window System Toolkit, >>>Digital Press, Bedford, MA, 1990 (distributed by Prentice Hall). >>>ISBN (Digital Press) 1-55558-051-3, (Prentice Hall) 0-13-972191-6. >Can someone post a description of the table of contents for this book? >Is it up-to-date? What toolkits are covered? The book completely covers the R4 Xt toolkit. It does not discuss any widget sets. The table of contents is at the end of this message. -paul asente asente@adobe.com ...decwrl!adobe!asente Ratz put a bucket of liquid in front of me. "I wanted a glass of docs, Ratz. What the hell is this?" I barked. "Motif don't fit in a glass anymore," he barked back. I looked at the liquid. It was totally opaque to me. TABLE OF CONTENTS Introduction PART I PROGRAMMER'S GUIDE Chapter 1. Applications Writing Applications 1.1. Structure of Toolkit Applications 1.2. What Is a Widget? 1.3. Object-Oriented Programming 1.4. Terminology 1.5. Intrinsics Data Types 1.6. The Callback Model 1.7. Error Handling 1.8. The Application User Interface 1.9. A Simple Application -- "Goodbye, world" 1.10. Application Contexts 1.11. Initializing the Toolkit 1.12. Exiting Applications 1.13. Writing Applications 1.14. Writing a New Widget 1.15. Debugging Toolkit Applications 1.16. Procedures and Macros 1.17. Procedure Types Writing Widgets 1.18. More on Header Files 1.19. Designing Widget Sets Chapter 2. Widgets Writing Applications 2.1. Common Widget Classes 2.2. The Class Hierarchy 2.3. Initializing Widget Classes 2.4. Widget Naming Conventions 2.5. Widget Resources 2.6. The Base Widget Classes 2.6.1. The Core Widget and Its Resources 2.6.2. The Composite Widget and Its Resources 2.6.3. The Constraint Widget 2.7. Visuals, Colormaps, and Window Depths 2.8. Creating Widget Instances 2.9. Realizing Widgets 2.10. Unrealizing Widgets 2.11. Destroying Widgets 2.12. Widget Information Functions Writing Widgets 2.13. Widget Data Structures 2.14. Structure Naming Conventions 2.15. Writing Header Files 2.15.1. Writing Private Header Files 2.15.2. Writing Public Header Files 2.15.3. Internal Header Files 2.16. The Base Widget Classes 2.16.1. The Core Class Structure 2.16.2. The Core Instance Structure 2.16.3. The Composite Class Structure 2.16.4. The Composite Instance Structure 2.16.5. The Constraint Class Structure 2.16.6. The Constraint Instance Structure 2.17. Declaring the Class Record 2.18. Class Methods 2.19. Class Information Functions 2.20. Class Initialization 2.21. Extension Records 2.22. Anticipating Subclassing 2.23. Initializing Widgets 2.24. Realizing Widgets 2.25. Destroying Widgets 2.26. Designing Class Methods 2.27. New Widget Methods Chapter 3. Resources and Callbacks Writing Applications 3.1. What Is a Resource? 3.2. Resource Naming Conventions 3.3. Resource Types 3.4. Resource Specifications 3.5. Resource Files 3.6. Parsing the Command Line 3.7. Resource Conversions 3.8. Argument Lists 3.9. Variable Argument Procedures 3.10. Resource Files versus Argument Lists 3.11. Application Resources 3.12. Finding Out about a Widget's Resources 3.13. Resources at Widget Creation 3.14. Getting Widget Resources 3.15. Setting Widget Resources 3.16. Callback Procedures Writing Widgets 3.17. Resource Lists 3.18. Designing Resources 3.19. The Conversion Cache 3.20. Resource Converters 3.21. Adding New Type Converters 3.22. Reference Counting 3.23. Providing Resource Values 3.24. Setting Resource Values 3.25. Subresources 3.26. Callbacks Chapter 4. Composite Widgets and Geometry Management Writing Applications 4.1. Geometry 4.2. Order of Children 4.3. Managed and Unmanaged Widgets 4.4. Mapping and Unmapping 4.5. Realized, Unrealized, Managed, and Unmanaged Widgets 4.6. Using Constraint Widgets Writing Widgets 4.7. Composite Widgets 4.8. Inserting and Deleting Children 4.9. Data Caching 4.10. Notification of Managed Set Changing 4.11. Control Flow for Widget Creation 4.12. Geometry Changes 4.13. Making Geometry Requests 4.14. Geometry Managers 4.15. Changing Geometry from Above 4.16. Responding to Geometry Changes 4.17. Querying Geometry 4.18. Writing Constraint Widgets Chapter 5. Shell Widgets and Pop-Ups Writing Applications 5.1. Shell Widgets 5.2. Shell Widget Resources 5.3. Shells and Geometry 5.4. Children of Shells 5.5. Creating a New Widget Tree 5.6. Pop-Up Shells and Pop-Up Children 5.7. Creating Pop-Up Shells 5.8. Types of Pop-Up Widgets 5.9. Controlling Pop-Ups Writing Widgets 5.10. The Shell Class Hierarchy 5.10.1. The Shell Widget 5.10.2. The Override Shell Widget 5.10.3. The Window Manager Shell Widget 5.10.4. The Vendor Shell Widget 5.10.5. The Transient Shell Widget 5.10.6. The Top-Level Shell Widget 5.10.7. The Application Shell Widget 5.11. What Shells Do 5.11.1. Setting Properties 5.11.2. Iconification and Deiconification 5.11.3. Changing Size and Position 5.11.4. External Geometry Changes 5.11.5. Size and Window Manager Hints 5.12. Vendor Shells Chapter 6. Event Handling Writing Applications 6.1. X Events 6.2. The Application Main Loop 6.3. Alternate Input Sources 6.4. Timers 6.5. The Grab List 6.6. Setting Window Manager Protocols 6.7. Handling Focus 6.8. Getting Events 6.9. Dispatching Events 6.10. Custom Event-Dispatching Loops 6.11. Background Work Procedures 6.12. Using Xlib Event Routines 6.13. Pointer and Keyboard Grabs 6.14. Sensitivity Writing Widgets 6.15. Event Filters 6.16. Handling Exposures 6.17. Visibility 6.18. Implementing Sensitivity 6.19. Accepting Input Focus 6.20. More on the Grab List 6.21. Pointer and Keyboard Grabs 6.22. X Event Handlers 6.23. Getting the Current Event Mask Chapter 7. Translation Management Writing Applications 7.1. Translation Tables 7.2. Setting the Multi-Click Timeout 7.3. Translation Tables in the Program 7.4. Translation Tables in Resource Files 7.5. Action Tables 7.6. Adding Application Actions 7.7. Writing Action Procedures 7.8. XtMenuPopup and XtMenuPopdown 7.9. Resolving Action Names 7.10. Registering Grab Actions 7.11. A Translation Example 7.12. Calling Action Procedures Directly 7.13. Handling the Keyboard 7.14. Action Hooks 7.15. Defining Accelerators 7.16. Installing Accelerators 7.17. An Accelerator Example 7.18. Using a Widget as a Window Writing Widgets 7.19. More on Translation Tables 7.20. Default Translations and Action Tables 7.21. Displaying Accelerators 7.22. Getting a Keysym from a Keyboard Event 7.23. Keycodes and Keysyms: Here Be Dragons Chapter 8. Nonwidget Objects Writing Applications 8.1. Background 8.2. The Base Object Classes 8.2.1. The Object and Its Resource 8.2.2. The Rectangle Object and Its Resources 8.2.3. Resources Not Defined for Objects 8.3. Types and Intrinsic Routines 8.4. Object Information Functions 8.5. Using Objects in Applications 8.6. Using Gadgets Writing Widgets 8.7. The Base Object Classes 8.7.1. The Object Class Structure 8.7.2. The Object Instance Structure 8.7.3. The Rectangle Object Class Structure 8.7.4. The Rectangle Object Instance Structure 8.7.5. The Unnamed Class 8.7.6. Object and Rectangle Object Declarations 8.8. Using Objects in Widgets 8.9. Writing Composite Widgets to Support Gadgets 8.10. Writing Gadgets Chapter 9. Odds and Ends Writing Applications 9.1. Toolkit Version 9.2. The Size of Arrays 9.3. Finding Widgets 9.4. Memory Management 9.5. Translating Coordinates 9.6. Error Handling 9.7. Setting Colormap Windows 9.8. Finding Files 9.9. Selections 9.10. Getting the Most Recent Timestamp Writing Widgets 9.11. Graphics Contexts 9.12. Merging Exposures 9.13. Selections 9.13.1. Getting the Selection Value 9.13.2. Providing the Selection 9.14. Incremental Selections 9.14.1. Getting the Selection Value Incrementally 9.14.2. Providing the Selection Incrementally 9.15. Getting the Selection Request Event 9.16. Selection Timeouts Chapter 10. Pulling It All Together Writing Applications 10.1. The Sample Widgets 10.1.1. The Label Widget 10.1.2. The Pubutton Widget 10.1.3. The MenuItem Widget 10.1.4. The Box Widget 10.1.5. The MinMax Widget 10.1.6. The Confirm Widget 10.1.7. The Menu Widget 10.1.8. The Label Gadget 10.1.9. The Graph Widget 10.1.10. The GraphDisplay Object 10.1.11. The BarDisplay Object 10.2. A Desktop Calculator 10.2.1. The Implementation 10.2.2. The Application Defaults File 10.2.3. Suggested Programming Exercises 10.3. A Mail Notifier 10.3.1. The Implementation 10.3.2. The Application Defaults File 10.3.3. Suggested Programming Exercises 10.4. A System Monitor 10.4.1. The Implementation 10.4.2. The Application Defaults File 10.4.3. Suggested Programming Exercises Writing Widgets 10.5. The Label Widget 10.5.1. The Public Header File 10.5.2. The Private Header File 10.5.3. The Implementation 10.5.4. Suggested Programming Exercises 10.6. The Pubutton Widget 10.6.1. The Public Header File 10.6.2. The Private Header File 10.6.3. The Implementation 10.6.4. Suggested Programming Exercises 10.7. The MenuItem Widget 10.7.1. The Public Header File 10.7.2. The Private Header File 10.7.3. The Implementation 10.7.4. Suggested Programming Exercises 10.8. The Box Widget 10.8.1. The Public Header File 10.8.2. The Private Header File 10.8.3. The Implementation 10.8.4. Suggested Programming Exercises 10.9. The MinMax Widget 10.9.1. The Public Header File 10.9.2. The Private Header File 10.9.3. The Implementation 10.9.4. Suggested Programming Exercises 10.10. The Confirm Widget 10.10.1. The Public Header File 10.10.2. The Private Header File 10.10.3. The Implementation 10.10.4. Suggested Programming Exercises 10.11. The Confirm Widget, Alternative Implementation 10.11.1. The Public Header File 10.11.2. The Private Header File 10.11.3. The Implementation 10.12. The Menu Widget 10.12.1. The Public Header File 10.12.2. The Private Header File 10.12.3. The Implementation 10.12.4. Suggested Programming Exercises 10.13. The Label Gadget 10.13.1. The Public Header File 10.13.2. The Private Header File 10.13.3. The Implementation 10.13.4. Suggested Programming Exercises 10.14. The Graph Widget 10.14.1. The Public Header File 10.14.2. The Private Header File 10.14.3. The Implementation 10.14.4. Suggested Programming Exercises 10.15. The GraphDisplay Object 10.15.1. The Public Header File 10.15.2. The Private Header File 10.15.3. The Implementation 10.16. The BarDisplay Object 10.16.1. The Public Header File 10.16.2. The Private Header File 10.16.3. The Implementation 10.16.4. Suggested Programming Exercises PART II SPECIFICATION Chapter 1. Intrinsics and Widgets 1.1. Intrinsics 1.2. Languages 1.3. Procedures and Macros 1.4. Widgets 1.4.1. Core Widgets 1.4.1.1. CoreClassPart Structure 1.4.1.2. CorePart Structure 1.4.1.3. Core Resources 1.4.1.4. CorePart Default Values 1.4.2. Composite Widgets 1.4.2.1. CompositeClassPart Structure 1.4.2.2. CompositePart Structure 1.4.2.3. Composite Resources 1.4.2.4. CompositePart Default Values 1.4.3. Constraint Widgets 1.4.3.1. ConstraintClassPart Structure 1.4.3.2. ConstraintPart Structure 1.4.3.3. Constraint Resources 1.5. Implementation-Specific Types 1.6. Widget Classing 1.6.1. Widget Naming Conventions 1.6.2. Widget Subclassing in Public .h Files 1.6.3. Widget Subclassing in Private .h Files 1.6.4. Widget Subclassing in .c Files 1.6.5. Widget Class and Superclass Lookup 1.6.6. Widget Subclass Verification 1.6.7. Superclass Chaining 1.6.8. Class Initialization: class_initialize and class_part_initialize Procedures 1.6.9. Initializing a Widget Class 1.6.10. Inheritance of Superclass Operations 1.6.11. Invocation of Superclass Operations 1.6.12. Class Extension Records Chapter 2. Widget Instantiation 2.1. Initializing the X Toolkit 2.2. Loading the Resource Database 2.3. Parsing the Command Line 2.4. Creating Widgets 2.4.1. Creating and Merging Argument Lists 2.4.2. Creating a Widget Instance 2.4.3. Creating an Application Shell Instance 2.4.4. Convenience Procedure to Initialize an Application 2.4.5. Widget Instance Initialization: the initialize Procedure 2.4.6. Constraint Instance Initialization: the ConstraintClassPart initialize Procedure 2.4.7. Nonwidget Data Initialization: the initialize_hook Procedure 2.5. Realizing Widgets 2.5.1. Widget Instance Window Creation: the realize Procedure 2.5.2. Window Creation Convenience Routine 2.6. Obtaining Window Information from a Widget 2.7. Unrealizing Widgets 2.8. Destroying Widgets 2.8.1. Adding and Removing Destroy Callbacks 2.8.2. Dynamic Data Deallocation: the destroy Procedure 2.8.3. Dynamic Constraint Data Deallocation: the ConstraintClassPart destroy Procedure 2.9. Exiting from an Application Chapter 3. Composite Widgets and Their Children 3.1. Addition of Children to a Composite Widget: the insert_child Procedure 3.2. Insertion Order of Children: the insert_position Procedure 3.3. Deletion of Children: the delete_child Procedure 3.4. Adding and Removing Children from the Managed Set 3.4.1. Managing Children 3.4.2. Unmanaging Children 3.4.3. Determining If a Widget Is Managed 3.5. Controlling When Widgets Get Mapped 3.6. Constrained Composite Widgets Chapter 4. Shell Widgets 4.1. Shell Widget Definitions 4.1.1. ShellClassPart Definitions 4.1.2. ShellPart Definition 4.1.3. Shell Resources 4.1.4. ShellPart Default Values Chapter 5. Pop-Up Widgets 5.1. Pop-Up Widget Types 5.2. Creating a Pop-Up ell 5.3. Creating Pop-Up Children 5.4. Mapping a Pop-Up Widget 5.5. Unmapping a Pop-Up Widget Chapter 6. Geometry Management 6.1. Initiating Geometry Changes 6.2. General Geometry Manager Requests 6.3. Resize Requests 6.4. Potential Geometry Changes 6.5. Child Geometry Management: the geometry_manager Procedure 6.6. Widget Placement and Sizing 6.7. Preferred Geometry 6.8. Size Change Management: the resize Procedure Chapter 7. Event Management 7.1. Adding and Deleting Additional Event Sources 7.1.1. Adding and Removing Input Sources 7.1.2. Adding and Removing Timeouts 7.2. Constraining Events to a Cascade of Widgets 7.2.1. Requesting Key and Button Grabs 7.3. Focusing Events on a Child 7.4. Querying Event Sources 7.5. Dispatching Events 7.6. The Application Input Loop 7.7. Setting and Checking the Sensitivity State of a Widget 7.8. Adding Background Work Procedures 7.9. X Event Filters 7.9.1. Pointer Motion Compression 7.9.2. Enter/Leave Compression 7.9.3. Exposure Compression 7.10. Widget Exposure and Visibility 7.10.1. Redisplay of a Widget: the expose Procedure 7.10.2. Widget Visibility 7.11. X Event Handlers 7.11.1. Event Handlers That Select Events 7.11.2. Event Handlers That Do Not Select Events 7.11.3. Current Event Mask Chapter 8. Callbacks 8.1. Using Callback Procedures and Callback List Definitions 8.2. Identifying Callback Lists 8.3. Adding Callback Procedures 8.4. Removing Callback Procedures 8.5. Executing Callback Procedures 8.6. Checking the Status of a Callback List Chapter 9. Resource Management 9.1. Resource Lists 9.2. Byte Offset Calculations 9.3. Superclass-to-Subclass Chaining of Resource Lists 9.4. Subresources 9.5. Obtaining Application Resources 9.6. Resource Conversions 9.6.1. Predefined Resource Converters 9.6.2. New Resource Converters 9.6.3. Issuing Conversion Warnings 9.6.4. Registering a New Resource Converter 9.6.5. Resource Converter Invocation 9.7. Reading and Writing Widget State 9.7.1. Obtaining Widget State 9.7.1.1. Widget Subpart Resource Data: the get_values_hook Procedure 9.7.1.2. Widget Subpart State 9.7.2. Setting Widget State 9.7.2.1. Widget State: the set_values Procedure 9.7.2.2. Widget State: the set_values_almost Procedure 9.7.2.3. Widget State: the ConstraintClassPart set_values Procedure 9.7.2.4. Widget Subpart State 9.7.2.5. Widget Subpart Resource Data: the set_values_hook Procedure Chapter 10. Translation Management 10.1. Action Tables 10.1.1. Action Table Registration 10.1.2. Action Names to Procedure Translations 10.1.3. Action Hook Registration 10.2. Translation Tables 10.2.1. Event Sequences 10.2.2. Action Sequences 10.2.3. Multi-Click Time 10.3. Translation Table Management 10.4. Using Accelerators 10.5. KeyCode-to-KeySym Conversions 10.6. Obtaining a KeySym in an Action Procedure 10.7. KeySym-to-KeyCode Conversions 10.8. Registering Button and Key Grabs For Actions 10.9. Invoking Actions Directly Chapter 11. Utility Functions 11.1. Determining the Number of Elements in an Array 11.2. Translating Strings to Widget Instances 11.3. Managing Memory Usage 11.4. aring Graphics Contexts 11.5. Managing Selections 11.5.1. Setting and Getting the Selection Timeout Value 11.5.2. Using Atomic Transfers 11.5.2.1. Atomic Transfer Procedures 11.5.2.2. Getting the Selection Value 11.5.2.3. Setting the Selection Owner 11.5.3. Using Incremental Transfers 11.5.3.1. Incremental Transfer Procedures 11.5.3.2. Getting the Selection Value Incrementally 11.5.3.3. Setting the Selection Owner for Incremental Transfers 11.5.4. Retrieving the Most Recent Timestamp 11.6. Merging Exposure Events into a Region 11.7. Translating Widget Coordinates 11.8. Translating a Window to a Widget 11.9. Handling Errors 11.10. Setting WM_COLORMAP_WINDOWS 11.11. Finding File Names Chapter 12. Nonwidget Objects 12.1. Data Structures 12.2. Object Objects 12.2.1. ObjectClassPart Structure 12.2.2. ObjectPart Structure 12.2.3. Object Resources 12.2.4. ObjectPart Default Values 12.2.5. Object Arguments To Intrinsics Routines 12.2.6. Use of Objects 12.3. Rectangle Objects 12.3.1. RectObjClassPart Structure 12.3.2. RectObjPart Structure 12.3.3. RectObj Resources 12.3.4. RectObjPart Default Values 12.3.5. RectObj Arguments to Intrinsics Routines 12.3.6. Use of Rectangle Objects 12.4. Undeclared Class 12.5. Widget Arguments To Intrinsics Routines Chapter 13. Evolution of the Intrinsics 13.1. Determining Specification Revision Level 13.2. Release 3 to Release 4 Compatibility 13.2.1. Additional Arguments 13.2.2. Set_values_almost Procedures 13.2.3. Query Geometry 13.2.4. UnrealizeCallback Callback List 13.2.5. Subclasses of WMell 13.2.6. Resource Type Converters 13.2.7. KeySym Case Conversion Procedure 13.2.8. Nonwidget Objects PART III APPENDICES Appendix A. Resource File Format Appendix B. Translation Table Syntax B.1. Notation B.2. Syntax B.3. Modifier Names B.4. Event Types B.5. Canonical Representation B.7. Examples Appendix C. Compatibility Functions Appendix D. Intrinsics Error Messages D.1. Error Messages D.2. Warning Messages Appendix E. StringDefs.h Header File Appendix F. Parameter and Return Types Appendix G. Naming Conventions G.1. File Name Conventions G.2. Widget Name Conventions G.3. Resource Name Conventions G.4. Constraint Name Conventions G.5. Extension Name Conventions Appendix H. The X Registry and the Examples H.1. The X Registry H.2. Getting the Example Programs INDEX LIST OF FIGURES 1.1. The structure of a toolkit application 1.2. Mapping user actions to application functions 1.3. A sample application's interface and its widget tree 1.4. Layout policies of various composite widgets 1.5. The widgets in the sample application with a pop-up 2.1. An example widget class hierarchy 2.2. The class linkage of several widgets 2.3. The instance linkage of several widgets 3.1. "Goodbye, world" with customizations 4.1. Managed, mapped, and unmanaged widgets 4.2. Geometry propagation at realization 4.3. The same MinMax widget at different sizes 5.1. A widget tree with several shells 5.2. The shell class hierarchy 6.1. Toolkit event handling 6.2. Focus redirection 6.3. Keyboard forwarding and grabs 7.1. "Goodbye, world" with an installed accelerator 8.1. The Intrinsics class hierarchy 8.2. Exposures and gadget children 9.1. A sample widget tree 10.1. Pushbuttons in various states 10.2. A menu with an inverted item 10.3. The same MinMax widget at different sizes 10.4. A Confirm widget 10.5. The calculator 10.6. The calculator's widget tree 10.7. The mail notifier and its widget tree 10.8. The system monitor and its widget tree LIST OF EXAMPLES 1.1. The "Goodbye, world" program 1.2. "Goodbye, world" using explicit initialization 2.1. The Label private header file 2.2. The Label public header file 2.3. The Label class record declaration 2.4. The Label class initialization procedure 2.5. A sample extension initialization routine 2.6. Utility procedures for the Label initialize procedure 2.7. The Label initialize procedure 2.8. The Label destroy procedure 2.9. The Label select text method 2.10. The Label class part initialization procedure 3.1. "Goodbye, world" using a defaults file 3.2. The "Goodbye, world" defaults file 3.3. Fallback resources for "Goodbye, world" 3.4. Fetching application resources 3.5. The Label resource list 3.6. The Pushbutton resource list 3.7. The string-to-justification converter 3.8. The string-to-justification converter using quarks 3.9. The string-to-widget converter 3.10. The string-to-string-list converter 3.11. The string-to-string-list destructor 3.12. The Label set_values procedure 3.13. Subresources for millimeter dimension resources 3.14. Initializing the subresources 3.15. Providing subresource values 3.16. Modifying subresource values 4.1. The Box change_managed procedure 4.2. The Box geometry manager 4.3. A complex Box geometry manager 4.4. The Label resize procedure 4.5. A sample use of XtQueryGeometry 4.6. Another use of XtQueryGeometry 4.7. The Label query_geometry procedure 4.8. Part of the MinMax private header file 4.9. The MinMax public header file 4.10. The MinMax constraint resources 4.11. Part of the MinMax class declaration 4.12. The MinMax constraint initialize procedure 4.13. The MinMax constraint set_values procedure 5.1. The sample Vendor.h header file 5.2. The sample VendorP.h header file 5.3. The sample vendor shell resources 5.4. Fetching an atom using type conversion 5.5. The sample vendor shell realize procedure 5.6. The sample vendor shell initialize procedure 5.7. The sample vendor shell set_values procedure 6.1. Setting the window manager protocols 6.2. Responding to window manager protocols 6.3. A work procedure to create pop-up widgets 6.4. The Label expose procedure 6.5. The Pushbutton expose procedure 6.6. Part of the Pushbutton set_values procedure 6.7. The Box widget's accept_focus procedure 6.8. The Menu widget's initialize procedure 7.1. A translation example 7.2. An accelerator example 7.3. The resources for the accelerator example 7.4. A program that uses a widget as a window 7.5. The Pushbutton default translations and actions 7.6. The Pushbutton action procedures 7.7. The display_accelerator method for Pushbutton 7.8. Mapping from keysyms to ISO Latin-1 characters 8.1. The Box insert_child procedure 8.2. The Box expose procedure 8.3. The LabelGadget expose procedure 9.1. The Label selection handling procedures 9.2. The Label select text method LIST OF TABLES PART I PROGRAMMER'S GUIDE Core widget resources Composite widget resources Chaining for widget methods Resource types Predefined command line options Shell widget resources Nonoverride shell widget resources Transient shell widget resources Top-level and application shell widget resources Application shell widget resources Shell resources that come in pairs Translation events and synonyms Translation events and synonyms Translation modifiers Synonyms for events with modifiers Synonyms for events with details Toolkit equivalents for Xlib key-handling routines Object resource RectObj object resources Core resources not defined for objects XtNameToWidget examples Label widget resources Pushbutton widget resources Box widget resource MinMax widget constraint resources Confirm widget resources Menu widget constraint resource Label gadget resources Graph widget resources GraphDisplay object resources BarDisplay object resources Mail notifier application resources Mail notifier command line options System monitor application resources System monitor command line option PART II SPECIFICATION Core widget resources CorePart default values Composite widget resources CompositePart default values Predefined command line options Shell types and variables Shell widget resources WMShell widget resources TransientShell widget resources TopLevelShell widget resources ApplicationShell widget resources ShellPart default values WMShellPart default values Shell resources that come in pairs TransientShellPart default values TopLevelShellPart default values ApplicationShellPart default values Resource types Object resources RectObj object resources PART III APPENDICES Translation modifiers Translation events and synonyms Abbreviations for events with modifiers and details Detail fields for events Standard error messages Standard warning messages Widget parameter types for Intrinsics routines Widget class parameter types for Intrinsics routines Widget file name conventions Widget name conventions for application programmers Widget name conventions for widget writers Resource name conventions Constraint name conventions Extension name conventions Where to get the example programs