First Edition (October 1997)
Trademarks
Preface
Chapter 1. What Is Involved in Writing a Motif Widget
Pros and Cons of Writing a Motif Widget
Prerequisite Knowledge
The Software You Will Need
What Kinds of Widgets Can You Create?
How Much Work Is Involved?
Defining the Goal
Chapter 2. A Motif Widget Writing Tutorial
Namespace
Recommended Files for Each Widget
The Widget Public Header File
The Widget Private Header File
The Widget Source Code File
Make the Widget Accessible to Applications
MultiThread-Safe Motif Widgets
Chapter 3. The Widget Class Record of Primitive Widgets
The CoreClassPart Structure
The PrimitiveClassPart Structure
The Primitive Class Extension Record
The Instance Data Members of XmPrimitive
Chapter 4. The Widget Class Record of Manager Widgets
The CoreClassPart Structure
The CompositeClassPart Structure
The ConstraintClassPart Structure
The ManagerClassPart Structure
The Manager Class Extension Record
The Instance Data Members of XmManager
Chapter 5. Traits
What Is a Trait?
Why Use Traits?
Installing a Trait
Accessing Traits
Overriding a Trait Record Variable
Chapter 6. Resources
Defining Motif Resources
Synthetic Resources
Representation Types
Enumerated Representation Types
Nonenumerated Representation Types
Motif Representation Types in XmPrimitive and XmManager
Chapter 7. Translations and Actions
Defining Translations in the Class Record
Conflicts Between tm_table and translations
Virtual Keysyms
Enter Actions
Leave Actions
Mouse Bindings
Keyboard Traversal
Chapter 8. Using Xme Functions Within a Widget
Calling an Xme function
Xme Trait Functions
Rendering Geometric Objects
Xme Resolution Independence Functions
Xme String Functions
Implementing Data Transfer
Xme Geometry Functions
Xme Focus/Traversal Functions
Xme Miscellaneous Functions
Chapter 9. Handling Textual Data
Text Versus Compound Strings
Editable Versus Noneditable Text
Recommended Resources for Compound String Widgets
Rendering the Compound String
The XmQTaccessTextual Trait
Chapter 10. Data Transfer Between Widgets with UTM
A Data Transfer Tutorial
Overview of Implementing UTM
UTM and the Application
Primary Transfer Details
Clipboard Transfer Details
Drag and Drop Transfer Details
Writing a Conversion Routine
Writing a Destination Routine
Writing a Transfer Procedure
Timestamps
Transferring Multiple Targets
Chapter 11. How to Write a Motif Button Widget
Buttons to Write and Buttons to Avoid Writing
Writing Your Own DialogBox Button
Writing Your Own Menu Button Widget
Writing Your Own Tab Button
Chapter 12. Geometry Management
Overview
The Parent's changed_managed Method
The Parent's geometry_manager Method
The initialize Method
The Child's set_values and set_values_almost Method
The Child's resize Method
The child's query_geometry Method
Exposure and Redisplay
A Widget Case Study: ExmSimple
Chapter 13. UIL and WML Compatibility
Strategies
Providing UIL Access Through Three Small Files
What is WML?
A WML File Example
Building a WMD File from Your WML File
UIL Compiling with Your WMD File
Chapter 14. Miscellany
Internationalization
Binary Compatibility
Chapter 15. Widget Printing
Chapter 16. Xme Reference Pages
XmeAddFocusChangeCallback
XmeClearBorder
XmeClipboardSink
XmeClipboardSource
XmeGetDesktopColorCells
XmeGetColorObjData
XmeConfigureObject
XmeConvertMerge
XmeCreateClassDialog
XmeDragSource
XmeDrawArrow
XmeDrawCircle
XmeDrawDiamond
XmeDrawHighlight
XmeDrawIndicator
XmeDrawPolygonShadow
XmeDrawSeparator
XmeDrawShadows
XmeDropSink
XmeFocusIsInShell
XmeFromHorizontalPixels
XmeFromVerticalPixels
XmeGetDefaultPixel
XmeGetDefaultRenderTable
XmeGetDirection
XmeGetEncodingAtom
XmeGetHomeDirName
XmeGetLocalizedString
XmeGetNextCharacter
XmeGetNullCursor
XmeGetPixmapData
XmeGetTextualDragIcon
XmeMicroSleep
XmeNamedSink
XmeNamedSource
XmeNamesAreEqual
XmeNavigChangeManaged
XmePrimarySink
XmePrimarySource
XmeQueryBestCursorSize
XmeRedisplayGadgets
XmeRemoveFocusChangeCallback
XmeRenderTableGetDefaultFont
XmeReplyToQueryGeometry
XmeResolvePartOffsets
XmeSecondarySink
XmeSecondarySource
XmeSecondaryTransfer
XmeSetWMShellTitle
XmeStandardConvert
XmeStandardTargets
XmeToHorizontalPixels
XmeToVerticalPixels
XmeTraitGet
XmeTraitSet
XmeTransferAddDoneProc
XmeVirtualToActualKeysyms
XmeWarning
Chapter 17. Traits Reference Pages
XmQTaccessTextual
XmQTactivatable
XmQTcareParentVisual
XmQTcontainer
XmQTcontainerItem
XmQTdialogShellSavvy
XmQTjoinSide
XmQTmenuSavvy
XmQTmenuSystem
XmQTnavigator
XmQTscrollFrame
XmQTspecifyRenderTable
XmQTtakesDefault
XmQTtransfer
Chapter 18. Exm Demonstration Widgets Reference Pages
ExmCommandButton
ExmGrid
ExmMenuButton
ExmPanner
ExmSimple
ExmString
ExmStringTransfer
ExmTabButton
Glossary