|
Packit |
b099d7 |
/* $XConsortium: README /main/3 1996/07/15 14:00:27 drk $ */
|
|
Packit |
b099d7 |
This directory contains the source code for the Exm demonstration widgets.
|
|
Packit |
b099d7 |
The Exm demonstration widgets illustrate how to write a Motif widget in C.
|
|
Packit |
b099d7 |
If you are interested in writing a Motif widget in C++, you should see the
|
|
Packit |
b099d7 |
../ExmCxx directory. Complete details on the Exm demonstration widgets can
|
|
Packit |
b099d7 |
be found in the "OSF/Motif Widget Writer's Guide and Reference" manual.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
We are providing the Exm widget set for educational purposes only.
|
|
Packit |
b099d7 |
Programmers should not use any Exm widgets inside a commercial application.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
This README file summarizes the purpose of each file in this directory.
|
|
Packit |
b099d7 |
The end of this README file contains instructions for building the Exm widget
|
|
Packit |
b099d7 |
set.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
***************************
|
|
Packit |
b099d7 |
WIDGETS IN THIS DIRECTORY
|
|
Packit |
b099d7 |
***************************
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
The Exm demonstration widgets is an eight widget set having the following
|
|
Packit |
b099d7 |
hierarchy:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
--------------------Core--------------------
|
|
Packit |
b099d7 |
| |
|
|
Packit |
b099d7 |
V V
|
|
Packit |
b099d7 |
XmPrimitive XmManager
|
|
Packit |
b099d7 |
| |
|
|
Packit |
b099d7 |
| |
|
|
Packit |
b099d7 |
V V
|
|
Packit |
b099d7 |
ExmSimple------------------------ ExmGrid
|
|
Packit |
b099d7 |
| |
|
|
Packit |
b099d7 |
V V
|
|
Packit |
b099d7 |
-----------------ExmString-------------- ExmPanner
|
|
Packit |
b099d7 |
| | |
|
|
Packit |
b099d7 |
V V V
|
|
Packit |
b099d7 |
ExmCommandButton ExmStringTransfer ExmMenuButton
|
|
Packit |
b099d7 |
|
|
|
Packit |
b099d7 |
V
|
|
Packit |
b099d7 |
ExmTabButton
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
ExmSimple
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
The ExmSimple widget consists of three files:
|
|
Packit |
b099d7 |
* Simple.c
|
|
Packit |
b099d7 |
* Simple.h
|
|
Packit |
b099d7 |
* SimpleP.h
|
|
Packit |
b099d7 |
The ExmSimple widget renders a rectangle or an oval. This widget demonstrates
|
|
Packit |
b099d7 |
how to create a
|
|
Packit |
b099d7 |
* relatively easy Motif widget.
|
|
Packit |
b099d7 |
* primitive widget that can serve as a superclass for other widgets.
|
|
Packit |
b099d7 |
* new representation type.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
ExmString
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
The ExmString widget consists of three files:
|
|
Packit |
b099d7 |
* String.c
|
|
Packit |
b099d7 |
* String.h
|
|
Packit |
b099d7 |
* StringP.h
|
|
Packit |
b099d7 |
The ExmString widget demonstrates how to handle compound strings in Motif
|
|
Packit |
b099d7 |
widgets. The ExmString widget is similar to the XmLabel widget.
|
|
Packit |
b099d7 |
The biggest difference between the two is that an XmLabel can
|
|
Packit |
b099d7 |
render either a compound string or a pixmap but an ExmString can
|
|
Packit |
b099d7 |
render only a compound string. More specifically, the ExmString
|
|
Packit |
b099d7 |
widget demonstrates how to:
|
|
Packit |
b099d7 |
* use the four recommended resources for handling compound strings.
|
|
Packit |
b099d7 |
* use the XmQTaccessTextual trait.
|
|
Packit |
b099d7 |
* calculate the baselines of each lines of text.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
****************
|
|
Packit |
b099d7 |
ExmCommandButton
|
|
Packit |
b099d7 |
****************
|
|
Packit |
b099d7 |
The ExmCommandButton widget consists of three files:
|
|
Packit |
b099d7 |
* CommandB.c
|
|
Packit |
b099d7 |
* CommandB.h
|
|
Packit |
b099d7 |
* CommandBP.h
|
|
Packit |
b099d7 |
This widget displays a button that, when activated, initiates a callback.
|
|
Packit |
b099d7 |
This widget demonstrates how to
|
|
Packit |
b099d7 |
* create Motif-style button visuals.
|
|
Packit |
b099d7 |
* establish Motif-style actions for buttons.
|
|
Packit |
b099d7 |
* install the XmQTactivatable trait.
|
|
Packit |
b099d7 |
* install the XmQTtakesDefault trait.
|
|
Packit |
b099d7 |
* establish a simple Motif callback.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*************
|
|
Packit |
b099d7 |
ExmMenuButton
|
|
Packit |
b099d7 |
*************
|
|
Packit |
b099d7 |
The ExmMenuButton widget consists of three files:
|
|
Packit |
b099d7 |
* MenuB.c
|
|
Packit |
b099d7 |
* MenuB.h
|
|
Packit |
b099d7 |
* MenuBP.h
|
|
Packit |
b099d7 |
This widget renders a menu child button that, when activated, initiates
|
|
Packit |
b099d7 |
a callback. This widget demonstrates how to
|
|
Packit |
b099d7 |
* create a menu child widget, in the style of XmPushButton.
|
|
Packit |
b099d7 |
* install the XmQTmenuSavvy trait.
|
|
Packit |
b099d7 |
* call the trait methods of XmQTmenuSystem.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*****************
|
|
Packit |
b099d7 |
ExmStringTransfer
|
|
Packit |
b099d7 |
*****************
|
|
Packit |
b099d7 |
The ExmStringTransfer widget consists of three files:
|
|
Packit |
b099d7 |
* StringTrans.c
|
|
Packit |
b099d7 |
* StringTrans.h
|
|
Packit |
b099d7 |
* StringTransP.h
|
|
Packit |
b099d7 |
This widget renders a compound string. The ExmStringTransfer widget
|
|
Packit |
b099d7 |
demonstrates how to
|
|
Packit |
b099d7 |
* implement the Uniform Transfer Method (UTM) in a Motif widget.
|
|
Packit |
b099d7 |
* write a widget that supports Drag and Drop.
|
|
Packit |
b099d7 |
* install the XmQTtransfer trait.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
ExmPanner
|
|
Packit |
b099d7 |
*********
|
|
Packit |
b099d7 |
The ExmPanner widget consists of three files:
|
|
Packit |
b099d7 |
* Panner.c
|
|
Packit |
b099d7 |
* Panner.h
|
|
Packit |
b099d7 |
* PannerP.h
|
|
Packit |
b099d7 |
This widget allows users to pan (navigate) through different portions
|
|
Packit |
b099d7 |
of another widget. The ExmPanner widget renders a small rectangle
|
|
Packit |
b099d7 |
inside a widget. The user may move this rectangle. As the rectangle
|
|
Packit |
b099d7 |
moves to different portions of its surrounding widget, different
|
|
Packit |
b099d7 |
portions of the target widget will become visible. The ExmPanner widget
|
|
Packit |
b099d7 |
demonstrates how to:
|
|
Packit |
b099d7 |
* write a navigator widget.
|
|
Packit |
b099d7 |
* use the XmQTnavigator trait.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
************
|
|
Packit |
b099d7 |
ExmTabButton
|
|
Packit |
b099d7 |
************
|
|
Packit |
b099d7 |
The ExmTabButton widget consists of three files:
|
|
Packit |
b099d7 |
* TabB.c
|
|
Packit |
b099d7 |
* TabB.h
|
|
Packit |
b099d7 |
* TabBP.h
|
|
Packit |
b099d7 |
This widget attaches itself to one side of a parent widget in order
|
|
Packit |
b099d7 |
to give the appearance of a tab "growing out of" the parent. The
|
|
Packit |
b099d7 |
ExmTabButton widget is activatable. It demonstrates how to
|
|
Packit |
b099d7 |
* use the XmQTjoinSide trait.
|
|
Packit |
b099d7 |
* use several Xme drawing functions.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
*******
|
|
Packit |
b099d7 |
ExmGrid
|
|
Packit |
b099d7 |
*******
|
|
Packit |
b099d7 |
The ExmGrid widget consists of three files:
|
|
Packit |
b099d7 |
* Grid.c
|
|
Packit |
b099d7 |
* Grid.h
|
|
Packit |
b099d7 |
* GridP.h
|
|
Packit |
b099d7 |
The ExmGrid widget demonstrates how to
|
|
Packit |
b099d7 |
* write a manager widget.
|
|
Packit |
b099d7 |
* use the XmQTdialogSavvy trait.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
***********
|
|
Packit |
b099d7 |
UIL SUPPORT
|
|
Packit |
b099d7 |
***********
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
The directory also contains several files pertaining to UIL support of the
|
|
Packit |
b099d7 |
Exm widgets. They are:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
* Exm.uil: a header file that can be included in UIL applications.
|
|
Packit |
b099d7 |
This file defines the API for UIL applications wishing
|
|
Packit |
b099d7 |
to use the Exm widget set.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
* Exm.wml: (not available at Alpha.) This file can be compiled with
|
|
Packit |
b099d7 |
wml in order to form a new motif.wmd file or a new UIL compiler.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
* ExmMrm.c: contains MrmRegisterClass calls for the Exm widget set.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
* ExmMrm.h: a header file that provides an interface to the code in the
|
|
Packit |
b099d7 |
ExmMrm.c file.
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
***************************
|
|
Packit |
b099d7 |
BUILDING THE EXM WIDGET SET
|
|
Packit |
b099d7 |
***************************
|
|
Packit |
b099d7 |
This directory contains an Imakefile. In order to build the Exm widget set
|
|
Packit |
b099d7 |
from this Imakefile, you should follow these steps:
|
|
Packit |
b099d7 |
1. $ make Makefile # This command should create a true Makefile.
|
|
Packit |
b099d7 |
2. $ make includes
|
|
Packit |
b099d7 |
3. $ make depend
|
|
Packit |
b099d7 |
4. $ make
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
The "make" command should compile all of the source code files in the directory.
|
|
Packit |
b099d7 |
The resulting widget object files will be archived into a library file named
|
|
Packit |
b099d7 |
libExm.a. The ExmMrm.o object file will be archived into a library file named
|
|
Packit |
b099d7 |
libMrm.a. In order to exercise the code in the libraries, you must build an
|
|
Packit |
b099d7 |
application stored in one of the following subdirectories:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
* simple_app
|
|
Packit |
b099d7 |
* exm_app_in_c
|
|
Packit |
b099d7 |
* exm_app_in_uil
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|