Contents
Contents
Introduction to X/Motif Programming
Why Learn X Window and Motif?
How to use this book
About this book
Conventions used
Graphical User Interfaces (GUIs)
Why Use GUIs?
Designing GUIs
History of X/Motif
Communication before X
The Motif/Open Look War
Versions of Motif
Culture
Operating Systems
The Common Desktop Environment (CDE)
C/C++ programming
Religion
OSF, X Consortium, Open Group
Motif and COSE
Motif Style Guide
The X Window System Environment
What is the X Window system?
X Window Principles
The Window Manager
The X Window Programming Model
X System Concepts and Definitions
Clients and Servers
The X Programming Model
Xlib
Xt Intrinsics
The Motif Toolkit
Currency
Widget Classes and Hierarchies
Motif Style -- GUI Design
A First Motif Program
What will our program do?
What will we learn from this program?
The
push.c
program
Calling Motif, Xt and Xlib functions
Header Files
Compiling Motif Programs
Basic Motif Programming Principles
Initialising the toolkit
Widget Creation
Managing Widgets
Events and Callback Functions
Principles of Event Handling
Translation tables
Adding callbacks
Declaring callback functions
Finishing off -- displaying widgets and event loops
Exercises
Widget Basics
Widget Classes
Shell Widgets
Constraint Widgets
Construction widgets
Primitive Widgets
Gadgets
Manager Widgets
Motif 2.0 Widgets
Widget Resources
Strings in Motif
Exercises
Widget Resources
Overriding Resource Defaults
User Resource (
.Xdefaults
) File
Class Resource File
Command Line Parameters
The Resource Manager Database
Hard-coding Resources Within a Program
Dynamic control of resources
Setting resources at creation
Fallback Resources
Exercises
Combining Widgets
Arranging and Positioning Widgets
The RowColumn Widget
Forms
Simple Attachment --
form1.c
Attach positions --
form2.c
Opposite attachment --
form3.c
A more complete form program --
arrows.c
Exercises
The MainWindow Widget and Menus
The MainWindow widget
The MenuBar
A simple MenuBar
PullDown Menus
Tear-off menus
Other MainWindow children
Exercises
Dialog Widgets
What are Dialogs?
Basic Dialog Management
The WarningDialog
The InformationDialog Widget
The
dialog1.c
program
Error, Working and Question Dialogs
Unwanted Dialog Buttons
The PromptDialog Widget
The
prompt.c
program
Selection and FileSelection Dialogs
The
file_select.c
program
User Defined Dialogs
Exercises
Text Widgets
Text Widget Creation
Putting text into a Text Widget
Example Text Program -
text.c
Editing Text
Scrolling Control
Text Callbacks
Editing and Scrolling in Practice
Exercises
List Widgets
List basics
List selection modes
Adding and removing list items
Selecting and Deselecting items
List Enquiry
List Callbacks
The
list.c
program
Exercises
The Scale Widget
Scale basics
Scale Callbacks
The
scale.c
program
Scale Style
Motif 1.2 Style
The Motif 2.0 Style
ScrolledWindow and ScrollBar Widgets
ScrolledWindow Widgets
ScrollBar Widgets
Toggle Widgets
Toggle Basics
Toggle Callbacks
The
toggle.c
program
Grouping Toggles
Xlib and Motif
Xlib Basics
Graphics Contexts
Two Dimensional Graphics
Pixmaps
Fonts
XEvents
XEvent Types
Writing Your Own Event Handler
Exercises
The DrawingArea Widget
Creating a DrawingArea Widget
DrawingArea Resources and Callbacks
Using DrawingAreas in Practice
Basic Drawing --
draw.c
draw_input1.c
-- Input to a DrawingArea
Drawing to a pixmap --
draw_input2.c
Exercises
Colour
Why is colour so complex?
Colour Basics
Displaying Colour
Colourmaps
Colour in X/Motif
Colour Database
Explicit Colour Coding
The Colour.c program
Exercises
Motif Style
The
Motif Style Guide
Menu Style
Dialog Widgets
Drag and Drop
Interaction
International Markets
Search for Keywords in X Windows Notes
Keyword Searcher
X COURSEWARE
Lecture notes etc.
Dave Marshall
1/5/1999