|
Course Overview
This 5-day course prepares the student to create OSF/Motif graphical user
interfaces (GUI) using Motif and Xt, while also using lower level X function
calls (Xlib) when necessary.
The course presents the
essential elements of the X Window system, and continues through the Motif
widget set and function libraries, along with the Xt toolkit intrinsics
that are necessary to use them.
Students reinforce their
understanding of the concepts by immediately applying them in hands-on
exercises that build working X and Motif GUI applications.
Training Date(s) / Location
Call your Bluestone representative or
856-813-1100 for scheduling information.
Key Benefits
- Develop and use GUIs using X library
functions (Xlib).
- Learn how to handle events and perform
low-level graphics operations.
- Understand GUIs and how they are constructed.
- Understand the event-driven nature
of X applications.
- Understand the relationship between
widgets, OSF/Motif, the Xt intrinsics, and the X Window system.
- Learn the functionality of each of
the Motif widgets.
- Write callbacks, translations, actions
and event handlers.
- Access resources programmatically and
in resource files.
- Gain hands-on experience with OSF/Motif,
Xt, and X window programming.
Audience
This course is designed for programmers, engineers, and managers who need
to learn how to build efficient and effective GUIs using OSF/Motif, but
who also want to be able to use X window system features that are only
available at the Xlib level.
Prerequisites
- Advanced C Programming
- UNIX Fundamentals
- vi or emacs
Course Content:
Fundamental X Concepts
- Background History
- The X Window System
- Software Layers
- Standard Locations of X Files
- Some Standard X Applications
- The Client/Server Model
- Client and Server Roles
- Client Communication with the Server
- Server and Events
- Debugging: _Xdebug and XSynchronize(...)
- Server Resources
- The Display
- Pixels, Planes and Colormaps
- Opening a Display Connection
- Display Naming
- Closing a Display Connection
- Exercises
Windows
- Window Hierarchies
- Window Clipping and Stacking Rules
- Window Managers
- Exploded View of a Window Hierarchy
- Window Geometry
- Creating and Destroying a Simple Window
- Mapping and Unmapping a Window
- Window Visibility
- Raising and Lowering Windows
- Flushing the Request Buffer
- Creating a Child Window
- Moving and Resizing Windows
- Window Attributes
- Override Windows
- Getting Window Information
- Exercises
Events
- Kinds of Events
- Selecting Events
- Event Masks
- Event Propagation
- Receiving Events
- The XEvent Structure
- The XAnyEvent Structure
- Event Masks, Names, Types and Members
- A Minimal X Application
- Handling events
- Non-blocking Event handling
- Interrupting X Applications
- Expose Events
- The XExposeEvent Structure
- Handling Expose Events
- Exercises
Graphics Contexts
Fonts and Drawing Text
Pixmaps, Bitmaps, Cursors and
Images
The Pointer and Keyboard
Inter-Client Communication
Basic Xt Intrinsics and Motif
Widget Fundamentals
- Software Layers
- Object Oriented Programming
- What is a Widget?
- Widgets on the Screen
- The Widget Instance Hierarchy
- Basic Widget Capabilities
- XT: The X Toolkit Instrinsics
- Important Xt and Widget Terminology
- The X Toolkit Programming Model
- Compiling and Linking an Xt Program
- Header Files
- Private Header Files
- Initializing the Toolkit
- Creating a Widget
- Managing and Mapping Widget
- Creating and Management Order
- Realizing Widgets
- Entering the Main Loop
- Event Functions
- Introduction to OSF/Motif
- Motif Widget Class Hierarchy
- The Core Widget
- Widget Class Hierarchy vs. Widget Instance
Hierarchy
- Lab Exercises
Xt Resources
- Widget Resources
- Widget Class Resource Tables
- Setting Resource Values Programmatically
- Setting Resources Using XtVaSetValues
- Getting Resources Using XtVaGetValues
- Setting Resources Using XtSetArg
- The Arg Struct and XtSetArg
- Getting Resources Using XtGetValues
- Default Resource Settings
- Resource Files, Passing Default Values
- Resource File Specification
- Passing in Values on the Command Line
- Using xrdb
- Fallback Resources
- Lab Exercises
Making the Interface Work
- Event Handlers, Actions and Callbacks
- Event Handlers
- Action Functions and Translations
- Using Action Functions and Translations
- Callback Functions
- Registering Callback Functions
- Lab Exercises
Primitive Widgets and Gadgets
- XmPrimitive
- XmLabel Widget
- XmPushButton Widget
- XmCascadeButton Widget
- XmDrawnButton Widget
- XmToggleButton Widget
- XmArrowButton Widget
- XmSeparator Widget
- XmScrollBar Widget
- XmList Widget
- XmTextField Widget
- XmText Widget
- Gadgets
- Lab Exercises
Composite Widgets
- Composite Widgets
- Composite Resources
- Constraint Widget
- Constraint Resources
- XmManager Widget
- XmManager Widget Resources
- XmManager Resources
- XmManager Translations
- XmFrame Widget
- XmBulletinBoard Widget
- XmForm Widget
- XmForm Constraint Resources
- XmRowColumn Widget
- XmPanedWindow Widget
- XmScrolled Window Widget
- XmMainWindow Widget
- XmScale Widget
- XmDrawing Area Widget
- Lab Exercises
Shell Widgets
- The Shell Widget Class
- Shell Widget Resources
- Kinds of Shell Widgets
- OverrideShell Widget
- XmMenuShell Widget
- WMShell Widget
- VendorShell Widget
- TransientShell Widget
- XmDialogShell Widget
- TopLevelShell Widget
- ApplicationShell Widget
- Creating the Application Shell Explicitly
- Lab Exercises
Menus and Dialogs
- Menus
- Pull-down Menus
- Popup Menus
- Option Menus
- Dialogs
- Lab Exercises
Miscellaneous Topics
- Command Line Options and Application
Resources
- Timeout Functions
- Work Procedures
- Drag and Drop
- Lab Exercises
|
 |