Motif Programming Manual


The Motif Programming Manual is a source for complete, accurate, and insightful guidance on Motif application programming. There is no other book that covers the ground as thoroughly or as well as this one. The book has been updated to Motif 1.2, but is still usable with Motif 1.1.The Motif Programming Manual describes how to write applications using the Motif toolkit from the Open Software Foundation (OSF). The book goes into detail on every Motif widget class, with useful examples that will help programmers to ...

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (26) from $1.99   
  • New (2) from $38.49   
  • Used (24) from $1.99   
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any coupons and promotions
Seller since 2009

Feedback rating:



New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

1565920163 *BRAND NEW* Ships Same Day or Next!

Ships from: Springfield, VA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
Seller since 2014

Feedback rating:


Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Sort by
Sending request ...


The Motif Programming Manual is a source for complete, accurate, and insightful guidance on Motif application programming. There is no other book that covers the ground as thoroughly or as well as this one. The book has been updated to Motif 1.2, but is still usable with Motif 1.1.The Motif Programming Manual describes how to write applications using the Motif toolkit from the Open Software Foundation (OSF). The book goes into detail on every Motif widget class, with useful examples that will help programmers to develop their own code. Anyone doing Motif programming who doesn't want to have to figure it out on their own needs this book.In addition to information on Motif, the book is full of tips about programming in general and about user interface design.Contents include:

  • An introduction to the Motif programming model, how it is based on the X Toolkit Intrinsics, and how it differs from them.
  • Chapters on each of the Motif widget classes, explaining them in depth, with useful examples that will help you to improve your own code. For example, the chapter on menus shows how to develop utility functions that generalize and simplify menu creation. All of the code shown in the book is available free of charge over the Internet or via UUCP.
  • Coverage of the drag-and-drop mechanism for transferring data. Two extensive examples show how to implement custom drag source and drop site functionality in a Motif application.
  • A tutorial on UIL. The chapters on UIL describe all of the techniques used to create an interface with this prototyping tool. The numerous examples cover the basics and explore ways to use UIL to facilitate rapid prototyping.
The book assumes competence with the C programming language, as well as familiarity with fundamental X Window System concepts. The Motif Programming Manual is not only the most comprehensive guide to writing applications with Motif, it is an integral part of the most widely used series of books on X as a whole. It complements and builds upon the earlier books in the X Window System Series from O'Reilly & Associates, as well as on OSF's own Motif Style Guide. Best when paired with Volume 6B, Motif Reference Manual.
Read More Show Less

Editorial Reviews

Describes how to write applications using the Motif toolkit from the Open Software Foundation (OSF), going into detail on every Motif widget class, with useful examples to help programmers develop their own code. Tips on programming in general are also included. The authors assume competence with C and familiarity with fundamental X Window System concepts. Chapters are marked by uncut tabs for easy location. The manual is updated for Motif 1.2, but still usable for Motif 1.1. Annotation c. Book News, Inc., Portland, OR (
Read More Show Less

Product Details

  • ISBN-13: 9781565920163
  • Publisher: O'Reilly Media, Incorporated
  • Publication date: 9/8/1993
  • Series: Definitive Guides to the X Window System Series
  • Edition description: Second Edition
  • Edition number: 2
  • Pages: 1014
  • Product dimensions: 7.01 (w) x 9.17 (h) x 2.11 (d)

Meet the Author

Dave Brennan is a senior software engineer at HaL Computer Systems, where he is a member of the On-Line Information Access System (OLIAS) group. He is responsible for the user interface of the on-line documentation browser, as well as a number of other insidious hacks to which he'll never admit. In addition, Dave maintains the Emacs lisp archive at Ohio State University.

Dan Heller has a degree in Computer and Information Sciences from the University of California, Santa Cruz. He has developed end-user applications, integrating various well-known user interface styles from SunView to Motif to Open Look, as well as the design of his own interface toolkit. Dan has started his own company, called Z-Code Software, which designs and develops X-based applications for the commercial market. Its first product is Z-Mail, an electronic mail package that runs under Motif, Open Look, and nongraphical displays. Dan is also the author of O'Reilly & Associates' Motif Programming Manual.

Paula Ferguson is the Executive Editor for O'Reilly Web and Scripting editorial group.

Read More Show Less

Table of Contents

The Plot
How This Book Is Organized
Related Documents
Conventions Used in This Book
Request for Comments
Obtaining Motif
Obtaining the Example Programs
Compiling the Example Programs
Notes on Z-Mail
Chapter 1. Introduction to Motif
1.1 A True Story
1.2 Basic User-interface Concepts
1.3 What Is Motif?
1.4 Designing User Interfaces
Chapter 2. The Motif Programming Model
2.1 Basic X Toolkit Terminology and Concepts
2.2 The Xm and Xt Libraries
2.3 Programming With Xt and Motif
2.3.1 Header Files
2.3.2 Setting the Language Procedure
2.3.3 Initializing the Toolkit
2.3.4 Creating Widgets
2.3.5 Setting and Getting Widget Resources
2.3.6 Event Handling for Widgets
2.3.7 The Event Loop
Chapter 3. Overview of the Motif Toolkit
3.1 The Motif Style
3.2 Application Controls
3.2.1 The Primitive Widget Class
3.2.2 Gadgets
3.3 Application Layout
3.3.1 The Manager Widget Class
3.3.2 Geometry Management
3.3.3 Gadget Management
3.3.4 Keyboard Traversal
3.4 Putting Together a Complete Application
3.4.1 The Main Window
3.4.2 Menus
3.4.3 The Window Manager
3.4.4 Dialogs
3.4.5 Pixmaps
3.4.6 Color
3.5 Changes in Motif 1.2
3.5.1 General Toolkit Changes
3.5.2 Specific Widget Changes
3.5.3 Changes to the Example Programs
3.6 Summary
Chapter 4. The Main Window
4.1 Creating a MainWindow
4.2 The MenuBar
4.2.1 Creating a PulldownMenu
4.2.2 SimpleMenu Callback Routines
4.2.3 A Sample Application
4.3 The Command and Message Areas
4.4 Using Resources
4.5 Summary
4.6 Exercises
Chapter 5. Introduction to Dialogs
5.1 The Purpose of Dialogs
5.2 The Anatomy of a Dialog
5.3 Creating Motif Dialogs
5.3.1 Dialog Header Files
5.3.2 Creating a Dialog
5.3.3 Setting Resources
5.3.4 Dialog Management
5.3.5 Closing Dialogs
5.3.6 Generalizing Dialog Creation
5.4 Dialog Resources
5.4.1 The Default Button
5.4.2 Initial Keyboard Focus
5.4.3 Button Sizes
5.4.4 The Dialog Title
5.4.5 Dialog Resizing
5.4.6 Dialog Fonts
5.5 Dialog Callback Routines
5.6 Piercing the Dialog Abstraction
5.6.1 Convenience Routines
5.6.2 The DialogShell
5.6.3 Internal Widgets
5.7 Dialog Modality
5.7.1 Implementing Modal Dialogs
5.7.2 Forcing an Immediate Response
5.8 Summary
Chapter 6. Selection Dialogs
6.1 Types of SelectionDialogs
6.2 SelectionDialogs
6.2.1 Callback Routines
6.2.2 Internal Widgets
6.3 PromptDialogs
6.4 The Command Widget
6.5 FileSelectionDialogs
6.5.1 Creating a FileSelectionDialog
6.5.2 Internal Widgets
6.5.3 Callback Routines
6.5.4 File Searching
6.6 Summary
Chapter 7. Custom Dialogs
7.1 Modifying Motif Dialogs
7.1.1 Modifying MessageDialogs
7.1.2 Modifying SelectionDialogs
7.2 Designing New Dialogs
7.2.1 The Shell
7.2.2 The Manager Child
7.2.3 The Control Area
7.2.4 The Action Area
7.3 Building a Dialog
7.3.1 The Shell
7.3.2 The Manager Child
7.3.3 The Control Area
7.3.4 The Action Area
7.4 Generalizing the Action Area
7.5 Using a TopLevelShell for a Dialog
7.6 Positioning Dialogs
7.7 Summary
Chapter 8. Manager Widgets
8.1 Types of Manager Widgets
8.2 Creating Manager Widgets
8.3 The BulletinBoard Widget
8.3.1 Resources
8.3.2 Geometry Management
8.4 The Form Widget
8.4.1 Form Attachments
8.4.2 Attachment Offsets
8.4.3 Position Attachments
8.4.4 Additional Resources
8.4.5 Nested Forms
8.4.6 Common Problems
8.5 The RowColumn Widget
8.5.1 Rows and Columns
8.5.2 Homogeneous Children
8.5.3 Callbacks
8.6 The Frame Widget
8.7 The PanedWindow Widget
8.7.1 Pane Constraints
8.7.2 Sashes
8.8 Keyboard Traversal
8.8.1 Turning Traversal Off
8.8.2 Modifying Tab Groups
8.8.3 Handling Event Translations
8.8.4 Processing Traversal Manually
8.9 Summary
Chapter 9. ScrolledWindows and ScrollBars
9.1 The ScrolledWindow Design Model
9.1.1 The Automatic Scrolling Model
9.1.2 The Application-defined Scrolling Model
9.2 Creating a ScrolledWindow
9.2.1 Automatic Scrolling
9.2.2 Application-defined Scrolling
9.2.3 Additional Resources
9.2.4 An Automatic ScrolledWindow Example
9.3 Working Directly With ScrollBars
9.3.1 Resources
9.3.2 Orientation
9.3.3 Callback Routines
9.4 Implementing True Application-defined Scrolling
9.5 Working With Keyboard Traversal in ScrolledWindows
9.6 Summary
9.7 Exercises
Chapter 10. The DrawingArea Widget
10.1 Creating a DrawingArea Widget
10.2 Using DrawingArea Callback Functions
10.2.1 Handling Input Events
10.2.2 Redrawing a DrawingArea
10.3 Using Translations on a DrawingArea
10.4 Using Color in a DrawingArea
10.5 Summary
10.6 Exercises
Chapter 11. Labels and Buttons
11.1 Labels
11.1.1 Creating a Label
11.1.2 Text Labels
11.1.3 Images as Labels
11.1.4 Label Sensitivity
11.1.5 Label Alignment
11.1.6 Multi-line and Multi-font Labels
11.2 PushButtons
11.2.1 PushButton Callbacks
11.2.2 Multiple Button Clicks
11.3 ToggleButtons
11.3.1 Creating ToggleButtons
11.3.2 ToggleButton Resources
11.3.3 ToggleButton Pixmaps
11.3.4 ToggleButton Callbacks
11.3.5 RadioBoxes
11.3.6 CheckBoxes
11.4 ArrowButtons
11.5 DrawnButtons
11.6 Summary
11.7 Exercise
Chapter 12. The List Widget
12.1 Creating a List Widget
12.2 Using ScrolledLists
12.3 Manipulating Items
12.3.1 Adding Items
12.3.2 Finding Items
12.3.3 Replacing Items
12.3.4 Deleting Items
12.3.5 Selecting Items
12.3.6 An Example
12.4 Positioning the List
12.5 List Callback Routines
12.5.1 The Default Action
12.5.2 Browse and Single Selection Callbacks
12.5.3 Multiple Selection Callback
12.5.4 Extended Selection Callback
12.6 Summary
12.7 Exercises
Chapter 13. The Scale Widget
13.1 Creating a Scale Widget
13.2 Scale Values
13.3 Scale Orientation and Movement
13.4 Scale Callbacks
13.5 Scale Tick Marks
13.6 Summary
Chapter 14. Text Widgets
14.1 Interacting With Text Widgets
14.1.1 Inserting Text
14.1.2 Selecting Text
14.2 Text Widget Basics
14.2.1 The Textual Data
14.2.2 Single and Multiple Lines
14.2.3 Scrollable Text
14.2.4 Text Positions
14.2.5 Output-only Text
14.3 Text Clipboard Functions
14.3.1 Getting the Selection
14.3.2 Modifying the Selection Mechanisms
14.4 A Text Editor
14.5 Text Callbacks
14.5.1 The Activation Callback
14.5.2 Text Modification Callbacks
14.5.3 The Cursor Movement Callback
14.5.4 Focus Callbacks
14.6 Text Widget Internationalization
14.6.1 Text Representation
14.6.2 Text Output
14.6.3 Text Input
14.7 Summary
14.8 Exercises
Chapter 15. Menus
15.1 Menu Types
15.2 Creating Simple Menus
15.2.1 Popup Menus
15.2.2 Cascading Menus
15.2.3 Option Menus
15.3 Designing Menu Systems
15.3.1 Menu Titles
15.3.2 Menu Items
15.3.3 Mnemonics
15.3.4 Accelerators
15.3.5 The Help Menu
15.3.6 Sensitivity
15.3.7 Tear-Off Menus
15.4 General Menu Creation Techniques
15.4.1 Building Pulldown Menus
15.4.2 Building Cascading Menus
15.4.3 Building Popup Menus
15.4.4 Building Option Menus
15.5 Summary
15.6 Exercises
Chapter 16. Interacting With the Window Manager
16.1 Interclient Communication
16.2 Shell Resources
16.2.1 Shell Positions
16.2.2 Shell Sizes
16.2.3 The Shell's Icon
16.3 VendorShell Resources
16.3.1 Window Manager Decorations
16.3.2 Window Menu Functions
16.4 Handling Window Manager Messages
16.4.1 Adding New Protocols
16.4.2 Saving Application State
16.5 Customized Protocols
16.6 Summary
16.7 Exercises
Chapter 17. The Clipboard
17.1 Simple Clipboard Copy and Retrieval
17.1.1 Copying Data
17.1.2 Retrieving Data
17.1.3 Querying the Clipboard for Data Size
17.2 Copy by Name
17.3 Clipboard Data Formats
17.4 The Primary Selection and the Clipboard
17.4.1 Clipboard Functions With Text Widgets
17.4.2 The Owner of the Selection
17.5 Implementation Issues
17.6 Summary
Chapter 18. Drag and Drop
18.1 Using Drag and Drop
18.2 The Drag and Drop Model
18.2.1 The Drag Source
18.2.2 The Drop Site
18.2.3 The Drag Icon
18.2.4 Protocols
18.2.5 The Programming Model
18.3 Customizing Built-in Drag and Drop
18.3.1 Specifying the Drag Protocol
18.3.2 Turning Off Drag and Drop Functionality
18.3.3 Modifying the Visual Effects
18.4 Working With Drag Sources
18.4.1 Creating a Drag Source
18.4.2 Starting the Drag
18.4.3 Converting the Data
18.4.4 Modifying an Existing Drag Source
18.4.5 Providing Custom Drag-over Visuals
18.4.6 Cleaning Up
18.5 Working With Drop Sites
18.5.1 Creating a Drop Site
18.5.2 Modifying an Existing Drop Site
18.5.3 Handling the Drop
18.5.4 Providing Help
18.5.5 Providing Custom Drag-under Visuals
18.6 Summary
Chapter 19. Compound Strings
19.1 Internationalized Text Output
19.2 Creating Compound Strings
19.2.1 The Simple Case
19.2.2 Font List Tags
19.2.3 Compound String Segments
19.2.4 Multiple-font Strings
19.3 Manipulating Compound Strings
19.3.1 Compound String Functions
19.3.2 Compound String Retrieval
19.3.3 Compound String Conversion
19.4 Working With Font Lists
19.4.1 Creating Font Lists
19.4.2 Retrieving Font Lists
19.4.3 Querying Font Lists
19.5 Rendering Compound Strings
19.6 Summary
Chapter 20. Signal Handling
20.1 Handling Signals in Xlib
20.2 Handling Signals in Xt
20.3 An Example
20.4 Additional Issues
20.5 Summary
Chapter 21. Advanced Dialog Programming
21.1 Help Systems
21.1.1 Multi-level Help
21.1.2 Context-sensitive Help
21.2 Working Dialogs
21.2.1 Using Work Procedures
21.2.2 Using Timers
21.2.3 Processing Events
21.2.4 Updating the Display
21.2.5 Avoiding Forks
21.3 Dynamic Message Symbols
21.4 Summary
Chapter 22. Introduction to UIL
22.1 Overview of UIL and Mrm
22.1.1 Using UIL and Mrm
22.1.2 Advantages and Disadvantages of UIL
22.2 The Hello, World Application
22.3 Describing an Interface With UIL
22.3.1 Starting and Ending a Module
22.3.2 Specifying Module-wide Options
22.3.3 Include Files
22.3.4 Adding Comments
22.3.5 Overview of UIL Language Syntax
22.3.6 Sections of a UIL Module
22.4 Compiling the UIL Module
22.5 Structure of an Mrm Application
22.5.1 Initializing the Application
22.5.2 Creating the Interface
22.5.3 Displaying the Interface
22.6 Summary
Chapter 23. Using the UIL Compiler
23.1 Compiler Options
23.1.1 Output File
23.1.2 Include Path
23.1.3 Generate Listing
23.1.4 Set Locale
23.1.5 Suppress Warnings
23.1.6 Machine Listing
23.1.7 Use WML Description
23.2 Errors, Warnings, and Informational Messages
23.2.1 Severe Error Messages
23.2.2 Regular Error Messages
23.2.3 Warning Messages
23.2.4 Informational Messages
23.3 Summary
Chapter 24. Creating a User Interface With UIL
24.1 Viewing UIL Examples
24.2 Defining and Creating Widgets
24.2.1 Specifying Widget Attributes
24.2.2 Sharing Widgets Among Modules
24.2.3 The Widget Creation Process
24.3 Defining and Fetching Values
24.3.1 Sharing Values Between Modules
24.3.2 Fetching Values
24.3.3 Numeric Values
24.3.4 Text-related Values
24.3.5 Colors
24.3.6 Pixmaps
24.3.7 Widget Classes
24.3.8 Keysyms
24.3.9 Translation Tables
24.4 Working With Callbacks
24.5 Using Lists
24.6 Exporting Application Data
24.6.1 Declaring Identifiers in UIL
24.6.2 Exporting Identifiers From Application Code
24.7 Summary
Chapter 25. Building an Application With UIL
25.1 Defining the User Interface
25.1.1 The Main Application Window
25.1.2 The Menu System
25.1.3 Dialog Boxes
25.2 Creating the Application
25.2.1 Widget IDs
25.2.2 Callbacks
25.2.3 The Error Dialog
25.3 Summary
Chapter 26. Advanced UIL Programming
26.1 Using Non-Motif Widgets
26.1.1 The Widget Creation Procedure
26.1.2 Widget Include Files
26.1.3 Creating User-defined Widgets
26.2 Organizing UIL Modules
26.2.1 Using Separate Modules
26.2.2 Organizing Within a Module
26.2.3 Supporting Internationalization
26.2.4 Organizing With Include Files
26.2.5 Creating Reusable Components
26.3 Specifying Resource Values
26.3.1 Resource Name Checking
26.3.2 Resource Type Checking
26.3.3 Resource Type Support
26.3.4 Callback Specifications
26.3.5 Wildcard Specification
26.3.6 User Customization
26.3.7 Dynamic Updating
26.3.8 Guidelines for Setting Resources
26.4 Using Lists Effectively
26.4.1 Specifying Common Resources
26.4.2 Reusing Components
26.5 Prototyping an Interface With UIL
26.5.1 Managing Widgets
26.5.2 Creating Widgets
26.6 Summary
Appendix. Additional Example Programs
A.1 A Postcard Interface for Mail
A.2 A Bitmap Display Utility
A.3 A Memo Calendar
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)