Preface | |
What Is a Window System? | p. 1 |
Data-Processing: Batch vs. Command-Line vs. Graphic-User Interfaces | p. 2 |
Window System Concepts | p. 3 |
Types of Input to a Window System | p. 4 |
Advantages of a Graphic-User interface | p. 6 |
Disadvantages of a Graphic-User Interface | p. 7 |
Application Programming for a Window System | p. 8 |
A Brief History of Window Systems | p. 10 |
What Is the X Window System? | p. 13 |
The X Window System | p. 14 |
X Windowing Concepts | p. 17 |
X Window Pointer Concepts | p. 19 |
X and Xt Data Types | p. 19 |
Starting X | p. 20 |
Window Manager Concepts | p. 21 |
What Is the Motif Toolkit? | p. 25 |
The Open Software Foundation | p. 26 |
OSF/Motif | p. 26 |
Motif Toolkit Library | p. 27 |
Motif Data Types | p. 27 |
Motif Window Manager | p. 28 |
The Relationship between X and Motif | p. 30 |
A Typical X/Motif Terminal Session | p. 30 |
Output from and Input to a Motif Application | p. 30 |
Graphic-User Interface Objects - Widgets | p. 33 |
X and Object-Oriented Programming | p. 34 |
Widget Concepts | p. 35 |
Motif Widgets | p. 38 |
Xt Widgets | p. 37 |
The X/Motif Widget Class Tree | p. 38 |
X Application Programming Concepts | p. 41 |
Documentation | p. 42 |
Function Naming Conventions | p. 43 |
Header Files | p. 43 |
Initializing and Creating a Shell Widget | p. 44 |
Error Handling | p. 46 |
Creating a Motif PushButton Widget | p. 47 |
Managing Nonshell Widgets | p. 49 |
Making the Shell Widget Visible | p. 50 |
Entering an Event Loop | p. 51 |
A Complete X/Motif Client Application | p. 53 |
Compiling and Executing X Programs | p. 54 |
Event-Driven Programming | p. 57 |
Handling Input through the Widgets | p. 58 |
Callback Function Concepts | p. 58 |
Registering a Callback Function | p. 59 |
Coding a Callback Function | p. 60 |
Removing a Callback | p. 61 |
Terminating an X Program and Closing the Display | p. 63 |
A Complete X/Motif Client Application | p. 63 |
Multiple-Widget Programs | p. 67 |
Composite/Manager Widget Concepts | p. 68 |
Creating a Motif RowColumn Manager | p. 69 |
Don't Forget to Manage the Manager | p. 69 |
Widget Instance/Management Tree | p. 71 |
Parameters for Motif Widget Creation Functions | p. 72 |
Outline of a Basic X/Motif Program | p. 73 |
A Complete X/Motif Client Application | p. 74 |
Passing Data to a Callback Function | p. 79 |
Function Parameters | p. 80 |
Clientdata | p. 80 |
Calldata | p. 81 |
Calldata for a PushButton | p. 82 |
Calldata for a RowColumn | p. 83 |
A Complete X/Motif Client Application | p. 84 |
Resources | p. 89 |
X and Object-Oriented Programming | p. 90 |
Resource Concepts | p. 92 |
Classes, Instances, and Inheritance | p. 93 |
Core Widget and Resources | p. 94 |
XmPrimitive Widget and Resources | p. 95 |
Composite Widget and Resources | p. 95 |
XmManager Widget and Resources | p. 96 |
Important Resource Concepts | p. 96 |
Resources for PushButtons | p. 97 |
Resources for RowColumns | p. 97 |
Setting Resources at Widget Creation | p. 97 |
Setting and Getting Resources After Widget Creation | p. 100 |
Resource Convenience Functions | p. 103 |
Motif Compound Strings | p. 104 |
A Complete X/Motif Client Application | p. 107 |
Resource Files | p. 113 |
Resource File Concepts | p. 114 |
Syntax for Resource Files | p. 114 |
Sources for Resources | p. 117 |
Advantages and Disadvantages of Resource Files | p. 118 |
xrdb Program | p. 119 |
A Complete X/Motif Client Application | p. 120 |
Motif Primitive Widgets | p. 125 |
Primitive Widget Concepts | p. 126 |
Motif ArrowButton | p. 126 |
Motif CascadeButton | p. 127 |
Motif DrawnButton | p. 129 |
Motif Label | p. 130 |
Motif List | p. 132 |
Motif ScrollBar | p. 134 |
Motif Separator | p. 139 |
Motif ToggleButton | p. 140 |
Motif Gadgets | p. 142 |
Motif PushButtonGadget | p. 142 |
A Complete X/Motif Client Application | p. 145 |
Motif Manager Widgets | p. 151 |
Manager Widget Concepts | p. 152 |
Motif BulletinBoard | p. 152 |
Motif Drawing Area | p. 154 |
Motif Frame | p. 156 |
Motif PanedWindow | p. 157 |
Motif Scale | p. 158 |
Motif ScrolledWindow | p. 161 |
ScrolledWindow Extensions | p. 163 |
A Complete X/Motif Client Application | p. 164 |
Motif Text Widget | p. 169 |
Motif Text | p. 169 |
Common Text Widget Editing Behaviors | p. 172 |
Differences Between Single- and Multi-Line Text Widgets | p. 173 |
Motif Text Convenience Functions | p. 174 |
A Complete X/Motif Client Application | p. 174 |
Common Motif Manager Widgets | p. 179 |
Motif Form | p. 179 |
Theory of Form Children Attachments | p. 181 |
Form Attachments | p. 182 |
Widget Attachments | p. 183 |
Position Attachments | p. 184 |
Rubber Positioning and XmATTACHNONE | p. 185 |
Common Form Children Layouts | p. 186 |
Motif MainWindow | p. 187 |
Defined Widget Resource Values | p. 190 |
A Complete X/Motif Client Application | p. 191 |
Graphic-User Interface Design Guidelines | p. 197 |
Motif Style Guide | p. 198 |
Giving Power to the User | p. 199 |
Client Areas | p. 201 |
Grouping Related Controls | p. 204 |
Designing a Client Area | p. 206 |
Motif's Mainwindow Widget | p. 208 |
X Events | p. 211 |
Event Concepts | p. 212 |
Differences between Callbacks and Event Handlers | p. 213 |
Event Types | p. 214 |
Registering an Event Handler | p. 216 |
Coding an Event Handler | p. 217 |
Removing an Event Handler | p. 219 |
X Event Data Structures | p. 220 |
Accessing Members of X Event Data Structures | p. 222 |
Other Common Event Structure Definitions | p. 222 |
Determining the Actual Mouse Pointer Location | p. 226 |
Translating Keypress Events into Characters | p. 227 |
Timeouts | p. 230 |
Work Procedures | p. 231 |
A Complete X/Motif Client Application | p. 233 |
Motif Menus | p. 239 |
Menu Concepts | p. 240 |
Menu Instance Trees | p. 242 |
Motif PopupMenus | p. 245 |
Motif PulldownMenus | p. 248 |
Motif OptionMenus | p. 249 |
Making Menu Options Unavailable | p. 251 |
Motif MenuShells | p. 253 |
A Complete X/Motif Client Application | p. 254 |
Motif Dialog Boxes | p. 261 |
Dialog Box Concepts | p. 262 |
Motif MessageBox | p. 263 |
Motif SelectionBox | p. 265 |
Creating and Managing Dialog Boxes | p. 267 |
MessageBox Dialogs | p. 270 |
SelectionBox Dialogs | p. 271 |
Create Your Own Dialog | p. 272 |
Motif Dialog Box Convenience Functions | p. 274 |
Motif Dialog Shells | p. 276 |
A Complete X/Motif Client Application | p. 276 |
Color | p. 281 |
X Color Concepts | p. 282 |
X Terminals and Visual Classes | p. 286 |
The X Window System and Colormaps | p. 287 |
Using Colors in Your Application | p. 289 |
Installing Colors in a Colormap | p. 291 |
Using Custom Colormaps | p. 295 |
ColormapNotify Events | p. 298 |
Complete X/Motif Client Application | p. 299 |
X Fonts, Motif Fontlists, and the X Cursor Font | p. 305 |
X Font Concepts | p. 306 |
Motif Font Concepts | p. 310 |
Loading a Font | p. 312 |
Getting Font Information | p. 312 |
Creating a Motif Fontlist | p. 315 |
Compound Strings and Fontlists | p. 318 |
X Cursor Font | p. 322 |
A Complete X/Motif Client Application | p. 326 |
A Motif Case Study Example Program | p. 331 |
Graphics Context | p. 361 |
Graphics Concepts | p. 362 |
Creating a Graphics Context | p. 364 |
Meaning of Various GC Members | p. 365 |
Changing the Graphics Context Programmatically | p. 370 |
Drawing a Line | p. 371 |
Drawing Text | p. 374 |
Drawings and Expose Events | p. 374 |
A Complete X/Motif Client Application | p. 376 |
Drawing Graphics Objects (Optional) | p. 381 |
Graphics Review | p. 382 |
Drawing Points | p. 383 |
Drawing Lines and Segments | p. 383 |
Drawing Rectangles | p. 384 |
Drawing Arcs | p. 386 |
Drawing Filled Rectangles and Arcs | p. 387 |
Drawing Filled Polygons | p. 389 |
Clearing and Copying Areas | p. 390 |
A Complete X/Motif Client Application | p. 391 |
Pixmaps and Bitmaps (Optional) | p. 397 |
Pixmap Concepts | p. 398 |
Creating a Pixmap | p. 399 |
Clearing and Copying Pixmaps | p. 400 |
Bitmap Concepts | p. 401 |
Creating a Pixmap from a Bitmap | p. 402 |
Cursor Pixmaps | p. 404 |
A Complete X/Motif Client Application | p. 404 |
Motif Window Manager (Optional) | p. 409 |
Purpose of a Window Manager | p. 410 |
Motif's Input Selection Model | p. 413 |
Motif Window Manager Resources | p. 417 |
Motif Keyboard Bindings | p. 419 |
Motif Mouse Button Bindings | p. 421 |
Motif Window Manager Menus | p. 423 |
X11R4, X11R5, Motif 1.1, and Motif 1.2 (Optional) | p. 427 |
X11 Release 4 | p. 428 |
X11 Release 5 | p. 430 |
OSF/Motif 1.1 | p. 432 |
Motif 1.1 Changes to Metaclass Widgets | p. 433 |
Motif 1.1 Changes to Primitive Widgets and Gadgets | p. 434 |
Motif 1.1 Changes to Manager Widgets | p. 438 |
Motif 1.1 Changes to Dialog Widgets | p. 439 |
Motif 1.1 Changes to Menu Widgets | p. 440 |
Motif 1.1 Changes to Support ANSI C | p. 441 |
OSF/Motif 1.2 | p. 441 |
Index | p. 445 |
Table of Contents provided by Blackwell. All Rights Reserved. |