[comp.windows.x.motif] Help

niebres@mct-1.UUCP (Caroline Niebres) (12/28/90)

I am a software engineer.  I have begun writing an application
that uses Motif for its graphic user interface.

I am new to Motif and I would like more information regarding
the use of Mrm and Uil.  Specifically, I would like examples
using these facilities.  I am especially interested in 
declaring a widget, use MrmFetchWidgetOverride to use it as
a template, and use an identifier for a tag value.  How do
you deal with the identifier in the callback?

We are writing several "utilities" that allow an operator to perform
certain tasks involved in testing a chip.  The one I am working on
will allow the operator to get the status of all the pins on the part
and the state of the tester.  This includes reference voltages and
currents, timing information such as pulse time edges, force
voltage/current and clamping, and on and on.  The information from
the tester comes through structures passed by lower level funtion
or shared memory space.  There are quite a few different screens
depending on the choices made from the main menu bar.  These screens
typically consist of several frames.  Each frame consists of a
bulletin board and its children.  These are typically labels, text
widows, radio boxes, toggles, and a set of two pushbuttons or text
windows where one contains a value and the other contains the unit
of measure.  Whether these are pushbuttons or text is determined by
a user preference that can be changed with in the application.  If
pushbuttons are chosen, a pop up dialog allows the operator to modify
the contents of either pushbutton.  This modification will also be
done to the text window associated with the set.  Also changes made
to other widgets in the bulletin board may or may not affect the 
other widgets.  Certain choices may mean that certain widgets my be
hidden (unmanaged) and others would take there place (This is done
for the choice of pushbutton or text).

Here a few screens:

A.
+-------------------------------------------------------------------------+
| Form									  |	
| +---------------------------------------------------------------------+ |
| | Menubar							        | |
| +---------------------------------------------------------------------+ |
| +---------------------------------------------------------------------+ |
| | Text with name of pin list group				        | |
| +---------------------------------------------------------------------+ |
| +---------++-------------++--------------++---------------------------+ |
| | Connect ||    Levels   ||     Load	   ||		Timing	        | |
| | <> None ||   +----++--+||		   ||<>TS1  Option      Option  | |
| | <> FM   ||V1 |00.0||mV|||	<> None    ||<>TS2  +------+	+------+| |
| | <> HS   ||   +----++--+||   <> 50 Ohm  ||<>TS3  | Menu |	| Menu || |
| | <> QUAD ||		   ||   <> Active  ||<>TS4  +------+	+------+| |
| |	    ||       .	   ||		   ||       [] Strobe   [] TRAM | |
| | [] Ext  ||	     .	   ||		   ||	    [] FCN ERR		| |
| +---------+|	     .	   ||		   ||				| |
| +---------+|		   ||		   ||        Start	Stop	| |
| | Display ||		   ||		   ||      +----++--+ +----++--+| |
| | Option  ||		   ||    +----++--+||Pulse1|00.0||ms| |10.0||ms|| |
| | +-----+ ||		   || Vt |00.0||mV|||	   +----++--+ +----++--+| |
| | |Menu | ||		   ||	 +----++--+||			        | |
| | +-----+ ||		   ||		   ||		     .		| |
| +---------+|		   ||	      .	   ||		     .		| |
| +---------+|		   ||	      .	   ||		     .		| |
| | +-----+ ||		   ||	      .	   ||	   +----++--+ +----++--+| |
| | | btn | ||		   ||		   ||Strobe|11.0||us| |12.5||us|| |
| | +-----+ ||   +----++--+||    +----++--+||	   +----++--+ +----++--+| |
| | +-----+ ||Vn |00.0||uV||| Io |00.0||mA|||	   +---+ +-----++--+	| |
| | | btn | ||   +----++--+||	 +----++--+||Cycle |001| |101.5||ms|	| |
| | +-----+ ||		   ||		   ||	   +---+ +-----++--+	| |
| +---------++-------------++--------------++---------------------------+ |
+-------------------------------------------------------------------------+

B.
+-------------------------------------------------------------------------+
| Form									  |	
| +---------------------------------------------------------------------+ |
| | Menubar							        | |
| +---------------------------------------------------------------------+ |
| +---------++----------------------------------------------------------+ |
| |Exec Mode||                     Smart DUT Interface			| |
| |         ||                                                          | |
| | <> Man  ||  +--+                                          +--+      | |
| |         ||1 |AF|<>R<>W            ...    		   13 |B1|<>R<>W| |
| | <> R All||  +--+        		                      +--+      | |
| |         ||          						| |
| | <> W All||   							| |
| |         ||		   						| |
| +---------+|      	     		            			| |
| |Ex Order ||	    	   		    				| |
| |         ||	  .  	     		     			.	| |
| | <> R    ||	  .	     		             		.	| |
| |         ||	  .	     		            		.       | |
| | <> W    ||		   						| |
| |         ||		   						| |
| |         ||		   			        		| |
| |         ||		     		     		     		| |
| +---------+|		     	      	   		     		| |
| +---------+|		   	      	   		     		| |
| | +-----+ ||		   	      	   	   			| |
| | | btn | ||		   						| |
| | +-----+ ||  +--+        				      +--+	| |
| | +-----+ ||4 |12|<>R<>W            ... 	           16 |1C|<>R<>W| |
| | | btn | ||  +--+       	 			      +--+	| |
| | +-----+ ||		   		   	   			| |
| +---------++----------------------------------------------------------+ |
+-------------------------------------------------------------------------+

C.
+-------------------------------------------------------------------------+
| Form									  |	
| +---------------------------------------------------------------------+ |
| | Menubar							        | |
| +---------------------------------------------------------------------+ |
| +------------+------+-------------------------------------------------+ |
| | Cycle Range|960 ns|   <>Update <>No	Update			        | |
| +------------+------+-------------------------------------------------+ |
| +---------------------------------------------------------------------+ |
| |  No.  User Cycle	User Range	Cycle		Mod Status	| |
| |+-------------------------------------------------------------------+| |
| ||	  +-----++--+	+---------+	+----------+		       || |
| || 001  |151.0||ms|	| 200 ms  |	| 100.5 ms |	[] 	       || |
| ||      +-----++--+   +---------+ 	+----------+		       || |
| ||    		                                    	       || |
| ||	           	   		                               || |
| ||	   	      	     		     	              	       || |
| ||								       || |
| || .	 	.	     .		      .          .             || |
| || .  	.	     .		      .    	 .	       || |
| || .  	.	     .                .          .             || |
| ||    		                	                       || |
| ||    		   	        			       || |
| ||    		   		   		     	       || |
| ||    		   	      	   		     	       || |
| ||    		   	      	   		     	       || |
| ||    		    	      	   	   		       || |
| ||    		   		   			       || |
| ||					Scrolled Window		       || |
| ||								       || |
| ||								       || |
| |+-------------------------------------------------------------------+| |
| +---------------------------------------------------------------------+ |
+-------------------------------------------------------------------------+

For A, there are actually three different screens.  The one I drew is
typical.  The widgets containing values/units can be pushbutton or
text.  If text, they can be modified by typing in them.  If pushbutton,
pushing either will pop up a dialog that uses arrows to increment the
value or unit.  The radio box in Connect changes the screen.  The
box in Load may hide some widgets.  The box in Timing will change the
contents of the text/pushbutton for value and unit.

For B, the values are also either in text or pushbutton depending on user
preference.  They behave like the others but without a unit attached to it.
The Exec Mode box must be able to change the boxed attached to each value.
The box attached to each value gives the type of operation done either to
read or write the value.

For C, Cycle Range is an option menu.  The update or no update will cause
all values and units to be updated.  The User Cycle behaves like the
others.  The text in the other two fields are modified if Cycle Range
or User Cycle is modified.  The toggle is set only if User Cycle is
modified.

There are quite a few more like these to go.

Please, give me information about examples or someone that
would be a good source of information.

Contact me at the E-mail address above or call (612) 482-6335
between 8 am and 4:30 pm Central Time.

Thank you.

					Sincerely,

					Caroline Niebres
					Micro Component Technology, Inc.
					St. Paul, MN
					Internet:  niebres@mct-1
					Phone:  (612) 482-6335
					FAX:	(612) 482-6492