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