Description of GUIWIRE

Download count: 4 this month, 6983 altogether.
Downloads for GUIWIRE :
  VMARC archive: v-2160K

From Kris Buelens, IBM Belgium

GUIWIRE                    change history

GUIWIRE is a CMS/GUI application to build other CMS/GUI applications. As programmer you will hardly have to know anything about the rather complex CMS/GUI API.

How do you proceed:

  1. create the CMS/GUI panels using the interactive Builder (a PC application)
  2. use GUIWIRE to create your program logic (a VM application)

GUIWIRE tries to hide the fact that CMS/GUI uses DT, a Distributed Toolkit, where the application's logic and the presentation run in different systems.

don't be mislead: with DT, the whole application resides on VM, no need to distribute parts of it to the workstation. On the workstation, only the so called WSA (Workstation Agent) must be running: it waits for orders coming from VM (or MVS), orders can be to construct and display a panel, or to panel send events back to VM.
With the traditional coding, you have to create code to connect attributes of the workstation resident objects to VM, and you also have to write coding as to wakeup your VM program for selected events. The DT term for these programming sections is "wiring".

With GUIWIRE, you simply have to use the mouse to select the attributes and events you need to handle, and GUIWIRE creates the appropriate wiring. Similar: to write the REXX logic to handle an event, you use the mouse to select the wanted event and start writing the REXX logic.

Another not so nice feature of CMS/GUI is that the REXX code to extract or update attributes can be rather long. With the GUISKEL package I tried to make this a bit shorter, but there was still a lot of work to do. Now with GUIWIRE, it becomes even much simpler.

First you code your panels with an interactive builder: the WSA GUI Builder (GB for short). GB for OS/2 is included with GUIWIRE, GB for Windows can be found on VM's download library. GB does not help you with the REXX logic, nor with the wiring. You upload REXX code created by GB to VM. The filetype must become GBEXEC.
Then you use GUIWIRE. You tell which panels (GBEXECs that is) your application will use. GUIWIRE then displays all objects defined in these panels, when an object is selected, GUIWIRE displays all intresting attributes of the object.

With the mouse, you then select which attributes must be connected to VM, which events must be sent to VM. GUIWIRE also has a panel on which you can code the REXX logic for each event sent to VM.

In addition, to make the use of DT API much easier in REXX, GUIWIRE creates a subroutine for each attribute you have connected to VM.

A few examples of what you can code:

 call     DlgMain_EntName_value 'Buelens'   /* Sets an entry field */
 Hisname= DlgMain_EntName_value()           /* Gets that entry field */
 call     DlgMain_myListBx_SelectLine 2     /* Selects a line in a listbox */
 NbSel=   DlgMain_myListBx_SelectLine()     /* What line is selected ? */
 Call DlgMain_myListBx_BackgroundHint blue  /* Change background color */
If you happen to know a bit more about the classic way to code DT execs or if you know the convenience routines provided by GUISKEL, you can still use them too. You only need to know that GUIWIRE stores the handle to the VM side of the connected attributes in a REXX variable formatted the same way as the subroutines above. Examples:
 call SetString DlgMain_EntName_value,'Buelens' /* Sets an entry field */
 Hisname= GetString(DlgMain_EntName_value)      /* Gets that entry field */
 'DtValueSet DlgMain_myListBx_SelectLine 2'     /* Selects a line in listbox*/
 'DtValueGel DlgMain_myListBx_SelectLine NbSel' /* What line is selected ? */
 'DtTableCount DlgMain_myListBx_List NbLines'    /* How many lines ? */

Changes in V 4.5.1   31 March 2006

Fixes/features for 4.5.1
  • When imbedding the REXX debugger, all calls to dlgxxxx_Frame_close became a NOP. This should also have been true for other handlers of DT type DtEvent, but, personally didn't encounter any of those during my tests. Production level execs do normally not have the REXX debugger window included, hence they ran fine.
    This bug was introduced in GUIWIRE 4.5
  • Building DtStrings > 65K gave emsg on OS/2, but WSA abend on MSW
    +-> Avoid building strings > 65K: well signal this on 3270 console and add ".... chopped at 65K ..." at the end of the string
    --> Still Windows abend if placing cursor in Edit area > +/- 40K after start...

Changes in V 4.5   1 Jul 2005

Fixes/features for 4.5
  • REXX vars to holding handles to Frame objects/attribs are no dropped after launching a dialog (launch makes then useless then anyhow), consequently, if you use PIPE REXXVARS to look at your variables you may get more than 1000 fewer variables... And, if you try to address them, you get a REXX novalue error what is better than a CMS addressing exception...
    --> side effect: if you used REXX vars named like objects in the GUI these variables become unset after the given frame is launched Before this change, the value yiu stored in them was by the launch replaced by a storage address.
  • include $$CMD$$ in package. See in GUIWIRE TRICKS for usage info
  • avoid REXX novalue abends if some GBEXEC not found
  • display CMS fileid of the selected frame in the Frame options panel
  • %CONNECT+ records allow to use shorter lrecls in GUIWIRE files (previous %CONNECT record must end on %+) GUIWIRE itself uses this and will no longer create files that become very wide.
  • GUIWIRE SKELET: GuiDisaIfSel can be used to disable MenuLists, it creates a construct that avoids a CMS abend if the disable is done before frame Launch.
  • New %HOSTCONNECT options: OPTXMIT, UPPCASE, STRIP makes that your REXX logic can become a bit shorter. Cfr GUIWRVM HELPCMS

Changes in V 4.4   4 Aug 2004

Fixes/features for 4.4 (mostly bug fixes)
  • Support GUIWIRE files on IMBED cards (e.g. $$CMD$$ in PRFVIEW)
  • Allow using the "names" assigned to host connections in the extra wiring section
  • Timer for List/Combo box selectLine correction set to 0.1 iso 0.01
  • Fix "Unexpected command rc" during "MOVE frame to other dialog" when application has "DataEvents"
  • "MOVE frame to other dialog" did not fix the dialog name in subroutines
  • Allow WORDWRAP in Help panels: Arg(3)=WORDWRAP triggers
  • "Cleanup" option made HELP window unusable if user code does not use subrtn "GuiDisaIfsel" subroutine. It resulted in DMSREX478E Error 43 ... Routine not found

Changes in V 4.3   23 Apr 2004

Fixes/features for 4.3
  • You can define events for which the frame will not be busy while VM handles them.
  • When using GUIWIRE to set an INVISIBLE attribute to True, we no longer warn the end-user: if Layers objects are used, GUIWIRE must ignore all Invisible requests imbedded in the GBEXEC. So we should not suppose you are stupid (and send the warning) if you set the same value in GUIWIRE as the one set already in the GBEXEC.
  • We accept the Dialog object as a valid object in the Connection panel
  • It is now possible to provide different GBEXECs for a single panel and decide at runtime which version to display. This allows multiple NLS versions, or different layouts. You pass the fileid(s) of on a Dlgxxx_Build request
         e.g. if lang='DUTCH' then call DlgMine_Build 'DUTCH.GBEXEC'
                              else call DlgMine_Build 'FRENCH.GBEXEC'
    See GUIWDLG HELPCMS for more information.
  • Setting multiple indexes of indexed attrib failed
    e.g. setting the INPUT.1 string of a MUX05 resulted in an errormsg "Attrib Input.0 already set"
  • We warn you for frames with a minimize button that are not included in the workstation's task list. See GUIWHNT HELPCMS for more information.
  • Avoid CMS abend by losing GuiSound object when main dlg is rebuilt
  • A new "cleanup" option on GUIWIRE's main panel allows you to save some space in the EXEC resulting from a build of a CMS/GUI application: we will remove some subroutines when we detect they are not used.

Changes in V 4.2   23 Jan 2004

Ignoring the smaller changes, the following is worth to mention:
  • The REXX scan sub-panel has a button telling that the string to scan for must appear as a WORD, this didn't work.
  • If your program uses "call Dlgxxx_build" to explicitly build a dialog but don't issue a "call Dlgxxx_Frmxx_run" to display it, CMS could abend when you later try to use "Dlgxxx_obj_attr". Dialogs built but not sent are now deleted when returning to pollingloop.
  • Viewing ObjectTree did not display MenuBar
  • MenuLists and Image objects could not be listed
  • Improve "filemask" used in the "upload GBEXECs" fileselection panel: we prepare several masks if not all GBEXECs have a common fname prefix.
  • New menu item to set GUIWIRE's Codepage
  • A new 'Introduction' "special event" on the Rexx code panel provides a means to place your own comments/copyrights/... as very first lines of the application EXEC created by GUIWIRE.

Changes in V 4.0   20 Dec 2002

As usual, many smaller changes were made; only some of them are visible.

Bigger changes:

  • A tool to move frames to a new/other dialog
  • Addition of a "notepad" editor: you can open up to 5 CMS files in a DT "edit" area. No special editing fucntions are provided, but, you can use this to take programming notes, look at a file, ...
  • In the "interconnect" panel, an attibutes can be directly added to an existing connection group. (Without this three actions are required: place existing group in work area, add new attr to work area, replace existing workgroup by group in work area)
  • On the REXX code panel you can define "global subroutines" and edit the REXX logic, just like you work with REXX logic for events. Without this, you could code subroutines in one or more external files (eg GUIWIRE GUIREXX) or you could add REXX labels in the logic of event handlers. Disadvanges of an external file: GUIWIRE never searches this file when it scans for things, it is not really integrated. Disadvanges of routines imbedded in event handlers: it may be a bit difficult for you to remember were you placed a given subroutine. If you declare it as a "subroutine", you can easily find it back, and GUIWIRE will scan subroutines too when you use search functions.
  • Codepage support: on the primary GUIWIRE panel, you can define that your application wants to know which codepage is used on VM and on the workstation. If you ask for this support, the end-user will pre prompted to select a codepage. More help on GUIWIRE's main frame.
Some bug fixes:
  • WSA Abend if Rexx Edit area cleared
  • In dialogs without events, GUIWIRE added an X15, and at re-open time it complained about this X15.
  • Avoid REXX abend if event defined for "extra object" and the "extra object" is defined at Dialog level iso Frame lvl
  • Avoid abend in Rexx coloring when '' found in open string

Changes in V 3.1   15 Jun 2001

Hints frame:
The mouse hints handling was a major change in V3.0. V3.1 has some more improvements in this area.
  • When an object is selected, we display its text as defined in GB.
  • We give a short message when it is impossible to define mouse hints for an object.
  • It is better visible when the objects list box is disabled.
  • Mouse hints were not generated when the %FRAME card had no HINT option. This happened for frames declared before GUIWIRE V3 and for which you didn't change any hints in GUIWIRE V3.
File Save & Open
Many, minor, problems have been fixed:
  • A warning is displayed when we save a file to the A-disk because the input disk is R/O. The Generate function recognizes this too.
  • When opening a file, we now always check that the file is a valid GUIWIRE application definition file.
  • When Save-As fails, we keep the old file-id. Save-As with an empty filename is impossible now.
  • Changing "Applid" (the output EXEC) was impossible.
GUIWIRE's skeleton provides a HELP window that you can use in your application. It can be called with:
  call Help fn <ft>
This format is not suited to to display all standard CMS Help files. With V3.1, you can display any CMS help file with:
  call CmsHelp help_args
Example: call CmsHelp 'COPYFILE (ERRORS'
At this time, GUIWIRE does not provide a complete replacement for the standard, XEDIT based, help (e.g. to switch from BRIEF to ALL).

Changes in V 3.0.b   5 Jun 2001

Add 3 files I forgot to include in the package: the "Orphans panel" (GUIWORPH GBEXEC & GBBIN) and help file (GUIWORPH HELPCMS).

Changes in V 3.0.a   1 Jun 2001

Avoid strange PIPE error when using the PIPELINE MODULE available from the WWW. The error happened in GUIWGEN while building a GUIWIRE application that has no imbedded files.

PIPSPX221E Invalid character " " in expression.
PIPMSG003I ... Issued from stage 3 of pipeline 1.
PIPMSG001I ... Running "SPEC Select First e: w2 . Select

Changes in V 3.0   31 May 2001

In V3, lots of small changes have been applied "under the covers" (I'll surely forget to mention some corrections). The major changes are:

  • The Mouse hints, that caused problems on Windows workstations, are back in place. The GUIWHNT HELPCMS file contains important information.
  • New, Filelist-like, frame to open GUIWIRE files, also making it possible to rename, copy, move or delete files.
  • The five last used GUIWIRE files are listed in the "File" menu list, what makes opening them very easy.
  • The HELP menu items (F1) are now activated on all panels.
  • The new "orphans" panel makes it easier to removed attributes of objects that were removed from frames. GUIWIRE automatically opens this panel when it detects an unknown object in a interconnection group, connection to VM or event definition. The "Tools" menu list allows to open the Orphans panel too.
  • The frame previewer exec (GUIW-- EXEC) now uses the same process as GUIWIRE itself. As a result, GUIWIRE can now be used concurrently with previewing frames, and, more than one frame can be previewed at some time.
    In preview mode, it is now possible to change the LayerChoice attribute of layers in the frame.
  • GUIWIRE's major frames all have a Run push button to start the application your're creating. After running the application focus was set to GUIWIRE's main frame. Now focus returns to the frame from which Run was started.

Smaller changes, mostly bug corrections

  • When setting attributes (via the Interconnect & Set" panel), better warnings are now issued when asking silly things (setting an attribute to its default, or to the same value as set in GB).
  • GUIWIRE saves the last location of each frame in GLOBALV. In some rare cases, the position of a frame was saved for another frame.
  • Avoid GLOBALV error 504 when list of GUIWIRE file used becomes longer than 255 chars.
  • Explicit connection of "Frame_run" to VM caused a REXX abend:
    "DlgTrack_frmTrack_run" var undefined
  • Signal a problem when a dialog is defined twice (double dialog names can only happen after manual changes to a GUIWIRE file)
  • Avoid CPU loop when calling "dlgXyz_build" twice without calling "dlgXyz_Delete" in between

Changes in V 2.4.a   1 March 2001

On Windows platforms, the mouse hints are removed. When mouse hints are used, Combo boxes no longer work and List boxes are not correctly refreshed (the List box problem seems to happen on NT only).

Changes in V 2.4   28 February 2001

There has been some bug for Windows users that made GUIWIRE unusable: when you select an event to write REXX code for it, a REXX abend happened.  Sorry, but I use GUIWIRE alomost daily on OS/2 and so I didn't notice this bug and no-one told me.

The major changes are:

  • Correct the bug on Windows.
  • The 5 last used GUIWIRE files are listed in the "File" Menu of GUIWIRE's main panel.
  • The "Open Sample Application" button didn't warn you about un-saved changes.
  • For a brand-new application, GUIWIRE automatically recognizes HELP, EXIT, and CANCEL menu items and/or push buttons and generates a CALL HELP or CALL EXIT event handler for them.
  • The GROUP object was forgotten in CLASS menu
  • The "Dialogs and Frames" Dialog is simplified.
  • The Mouse hint texts can be wired to VM.  This allows the application program to adapt the mouse hint text dynamically.
  • GUIWIRE allows you to define Window Focus values: GUIWIRE gives an overview of all assigned focus values.  The WSA GUI Builder has no overview, and you could assign the same value to multiple objects.
  • When an object is selected, GUIWIRE helps you identifying the object by displaying the mouse hints or an object description.  Since V2.4 GUIWIRE displays the "text" value (e.g. the push button text) when no mouse hint or object description text is assigned.
  • When defining Attribute settings for an object, GUIWIRE also displays the attribute setting defined in GB.  For example: when you are about to define the background color of an object, you can see to what value the background color was defined in GB.
  • The "Rexx Color" interpreted a line with a /* inside a double quoted string as a line with comments instead of a line with a string.

Changes in V 2.3   16 February 2001

The major changes are:

  • It is now possible to define frame Cluster values in GUIWIRE. You get an overview of the cluster values of all frames you use, what makes it easier to select unique values.
  • In the "REXX monitor" panel F11 can be used to start FILELIST in the 3270 window; Shift F11 = DIRLIST
  • A new tool to check syntax of Rexx event handlers is provided: You can view the code in a colored way, comments and quoted strings are highlighted.
  • When there is no mousehint for an object, GUIWIRE shows you the "text" of the object (e.g. the ButtonText for a push button) as "hint" when the object is selected.
  • ShowMsgBox now check the parameters it gets, so we avoid looping invalid parameters.

Bug corrections. Yes, GUIWIRE V2.2 had quite some bugs

  • For a brandnew appl: avoid syntax error in GUIWIRE GUIREXX
    Invalid sub-keyword found
    parse upper varHostConnect.ActDlg.ixHc uObj Uattr ix .
  • Avoid REXX abend when opening hints without mouse hints
  • When mouse hints were defined for not(no longer) existing objects, the generated application abended with a REXX Novalue error.
  • Avoid REXX abend when starting GUIWIRE with as input parameter a not existing fileid.
  • Correct ShowMsgBox: after a msgBox with "ANY" eventhandler that handler could be used by a new msgbox (e.g. "Test" msg box in FrmCode then, any key in the next msgbox became a NOP)
  • The code to handle "multiple select" list boxes had some bugs.
  • When a GBEXEC is loaded, GUIWIRE may read it to refresh what it knows about its contents. In the past, GUIWIRE did not delete the stems it had describing the previous version of the GBEXEC. So, objects deleted from the GBEXEC were not detected as undefined. This outstanding requirement is solved.

Changes in V 2.2   1 February 2001

The major changes are:

  • It is now possible to "Set" attributes to a constant value or a Rexx expression. This support makes it easier too the create push buttons with a bitmap.
  • You can now also work with attributes of layout objects. For example, one can connect the Disable attribute of a Row to VM, what allows the VM program to disable all children, grand-children, ... of that row.
  • The number of objects to select from can be limited. For example, it is possible to view only push button objects. For attributes: by default only the "commonly" used attributes get listed.

Smaller changes are:

  • The location of a message box can be defined by passing
    'LOCATION x,y'
    as parameter to the ShowMsgBox routine.
  • GUIWIRE checking of for connections and event definitions that are defined more than once is improved (double definitions can only happen when one modifies the 'fn GUIWIRE' file by hand).
  • Similar: we better check for objects that no longer exist, but that still are used in definitions.
  • After deleting a VM connection or event definitions, a subsequent delete in the same panel could delete another than the selected definition
  • The programmer can define short object descriptions that are displayed when the object is selected in one of GUIWIRE's frames. This will help the programmer to remember what an object is used for.
  • When defining a Sound you are prompted to define the sound type. Similar, when an Adapter01 object is defined you must tell what data type it will convert.
  • The SAVE AS function will warn you before overwriting an existing file.
  • On the "new object" definition panel it is now possible to get a list of all attributes of the selected object class. Seeing all attributes can help you to understand what an object can perform.
  • The WaitMsg panel can be automatically closed by a timer. Issue call WaitMsg 'Some text to show',nn where "nn" is the number of seconds the panel must be displayed, the maximum is 65 seconds.
  • I surely forget to mention several small changes and less important bug corrections.

Changes in V 2.1   22 December 2000

This is a new version indeed, with lots of new functions and major rewrites of code (about 40% is new or changed code).
GUIWIRE V2 is upward compatible with V1, what means that you can use old GUIWIRE definition files.

  • All frames have mouse sensitive hints displayed at the bottom of the frame. For example: when the mouse is over a push button, a short text explains what the push button performs.
  • You can add mouse sensitive hints to your own frames, if they have an Output object
  • On all panels, one can work frame by frame (the reason I had to rewrite much of the Rexx code)
  • When a frame is uploaded: we check for element names rejected by the WSA Gui Builder (GB) and we refresh the internal variables decribing the frame to GUIWIRE.
  • A "?Rex?" push button has been added to the Rexx frame, to open a "code assist" frame. With the "Code Assist" frame one can place sample code in the clipboard. Sample code can be a call to show a message box, code to update list box items, ...
  • On the Rexx frame, a push button Rexx allows for check basic Rexx syntax check (missing quotes; unmatched DO/END; ...). When the syntax is OK, we also check if the convenience routines being called do exist (DlgXxxx_objyyy_attr). Or, with other words we check if the attributes you address are indeed connected to VM.
  • A "WaitMsg" routine has been added to the skeleton, suited to display "please wait" type message. More info in GUIWRTNS HELPCMS.
  • The GUIWIRE skeleton has been updated: many variable names we use have been prefixed with "GUI", as to avoid name conflicts between our and your variables. More info in GUIWVARS HELPCMS.
  • The help panel has been improved: you can search for strings in the selected help file, or in GUIWIRE's entire help library.
  • The window preview panel is much better too: you can see the name of the object that has keyboard focus, or to which the mouse points. (you can use this outside GUIWIRE too: issue "EXEC GUIW-- fname GBEXEC")
  • Some NLS support: you can issue
    to define the codepage of your VM system. For a list of codepages, issue HELP DT PROCESS.
  • The first sample application has been extended a bit: an extra dialog was added with 1 frame (CP mdisk info, and one can LINK new mdisks) This new frame contains examples of how one can disable push buttons when an input field is empty.
  • An uncountable number of smaller changes...

Changes in V 1.2 14 November 2000

This is an "inbetween level", meant to help users with a Windows workstation. The other changes I prepared for the next GUIWIRE level are much bigger than expected. So the next, real, GUIWIRE level will probably not appear before end Nov 2000.
The changes for Windows users:

  • When you upload GBEXECs from a Windows platform, we correct the menulist and menubar generation. (similar to what the GB95FIX EXEC performs)
  • In the REXX panel, the copy,cut&paste buttons will no longer be disabled. We also try to cleanup the edit area when an event handler is shorter than what fits in the edit area.
  • The message log frame is fixed a bit too: I asked for a white letters on a black background, but on Windows the background became white. (now a I ask for an RGB that gives black too)
  • On the "download other files" two radio buttons allow for BIN/TEXT selection. They were grouped by connecting their CLEAR attribute. This doesn't work on Windows. Now I use a MUX01.

Changes in V 1.1 26 October 2000

The changes worthwhile to mention are:

  • A possibility to find and/or change strings on the REXX edit object. Before you shoot me, these Find/Change functions are provided by DT, and consequently aren't as clever as Xedit or Pipes. A Help button on the "Change" panel has more information.
  • Quite a few changes apply to the "Interconnect" panel
    • When you're about to add an attribute that is already being used we'll give a warning. More information is available in the Help for the interconnection panel.
    • A "Q" pushbutton allows to see which attributes of objects are interconnected, and/or wired to VM.
    • A "Q connect All" pushbutton does the same, but for all objects of the active dialog.
  • We're trying to solve a usability problem signaled by an end-user: He found that it should be possible to work "per frame" on all GUIWIRE panels. (now GUIWIRE works by dialog, what makes much sense if one knows DT)
    Working "by frame" was possible on the Rexx frame; and now also on the "Define events" panel. But, there's more to come.
  • On the interconnect panel: for attributes that are indexed, you can now select the index number (example: the Pin attributes of Muxes)
  • As usual, bugs have been found and corrected:
    • Even when the REXX frame was closed, we refused the delete of events that were listed on the Rexx frame.
    • "Upload Other files" didn't give a warning when replacing a file and the file was always stored on the A-disk.
    • Interconnect Bool to Event was refused
    • Avoid NoVALUE error while generating an application that has no Rexx code to execute for "program initialization" event
    • Try to avoid REXX/CMS abend/CPU loop when errors occur before the first frame is shown. We cannot fix all problems, see file GUIWIRE PROBLEMS

Changes in V 1.0 13 October 2000

There are many, important, changes, and that's why I jump from V0.9.7 to V1.0. The most visible changes are:
  • An interface has been provided to start the WSA Gui Builder, and to upload the GB files to VM.
  • It is now possible to create multiple dialogs with GUIWIRE. A "dialog" has nothing to do with multitasking or alike, but by grouping frames in dialogs , not all frames of the application have to be sent as one big chuck to the workstation.
  • With the support for multiple dialogs, less special tricks have to be made to update the data on workstation frames after that a message box asked for confirmation.
  • A new panel allows you to define extra "wiring" objects. With these objects simple tasks can be performed by the workstation. For example: counting, selecting a string from a table, ...
  • When a frame got hidden behind other frames, calling Dlgxx_Frmyy_Run did not bring it to the foreground. I used tricks the bypass this problem for GUIWIRE. Such tricks are no longer required, GUIWIRE takes care of it. And you can even code "Dlgxx_Frmyy_Run SomeNbr" to set keyboard focus to a certain field in the frame.
  • Correct the convenience routine for tables (such as listboxes): a call "dlgxx_someTable_List 'CHANGE',ix,String " became a table INSERT instead of a change.
  • The attributes the Logic, Arithmetic and Compare classes (e.g. And, Multiply or Equal) are supported.
  • View GBEXECs has been changed: when GBEXECs are uploaded, you can request for some compression. This makes that uploaded GBEXECs no longer form a runnable CMS/GUI application. Viewing any GBEXEC can be done by using the GUIW-- EXEC. An advantage is that GUIW-- connects all push buttons it finds to FrameClose.

But ... the documentation is still far away from being good.

Changes in V 0.9.7 22 September 2000

Many changes have been applied internally. Externally, you'll see three enhancements. All on the "Connect to VM" panel:

  • You can assign a short name to the connections. Example
                    Standard, long, name            Short name
                    DlgMain_Name_Value              Name
                    DlgMain_myList_SelectLine       ListNb
  • You can define 'Live' connections
  • You can define 'DataEvents', that is, you can run REXX code when the value of a field has been changed.

More information: the online help of the "Connect to VM" panel.

Changes in V 0.9.6 7 September 2000

Even though the list of changes mentioned here is small, many more changes have been applied to the internal code, and some bugs -maybe invisible to you- have been removed.

  • The main panel has been reworked: you can enter some options on that panel as well as the names of files to imbed or the name of the exec to generate.
    There is an incompatible change: up to now, GUIWIRE searched for a file named "fn GUIWREXX" and if found, if would get included. Now you have explicitly ask for file inclusions. But, you can include any file and the included file will no longer depend on the name of the master GUIWIRE definition file.
  • All panels got a button to bring the MAIN panel in focus
  • During Generate, the messages are no longer displayed on the 3270 screen, but in a GUI panel.
  • You can ask for REXX syntax check on the panel. And when selecting this option, GUIWGEN now scans all your REXX code, not only the Rexx event handlers.
  • The "find" panel will be closed automatically when the find is successful.

Maybe GUIWIRE's next level will be called Version 1.

What about feedback ? Do you use GUIWIRE, can you use it ? Or, is CMS/GUI too complex, even with GUIWIRE ? Which features do you miss most in GUIWIRE ?

Changes in V 0.9.5b 29 August 2000

Changes for this level:

  • "Show sample application" in (About panel) didn't work:
  • Correct some typo's in GUIWKWIK HELP file

Changes in V 0.9.5a 28 August 2000

Changes for this level:

  • Improve handling of syntax problems:
    • Tell in which eventhandler the problem occurs
    • Improve avoidance of looping on syntax problems

Changes in V 0.9.5 25 August 2000

Changes for this level:

  • Avoid REXX abend when using routine "Dlgxxx_lstBox_List()"
  • Avoid GUIWIRE abend when using "SaveAs" and "Open New" menu items
  • A "Find" button has been added on the Rexx frame. This way, you can list the event handlers in which a given string is being used.
  • The ShowMsgBox: subroutine has been enhanced: more than 1 msgbox can now be open at the same time.

Changes in V 0.9.4 18 August 2000

Changes for this level:

  • An Attribute information icon button has been added. It gives information about the selected attribute: what it can be used for, how you can use it from Rexx, ...
  • Defined Events are now directly flagged in all attribute lists with a letter "E". (in previous levels, the flag was only available after that one had opened the "Define Events" panel)
  • 3 debugging statements got removed: Say 'NbChanges=... and two calls to the REXXVARS EXEC.
  • GUIWGEN -the exec that builds an "fn EXEC" from the "fn GUIWIRE" file has a new SYNTAX option. When you use it, GUIWGEN will perform a quick REXX syntax check on all REXX code you wrote for the event handlers. For the moment, when you ask GUIWIRE to generate the exec, the option is not used yet.
    To use it, go to CMS Ready and enter GUIWGEN fn (SYNTAX

    What we do with this option is running your REXX event handlers with TRACE S. This TRACE option requests REXX to perform a basic syntax check: it will not detect all errors, but will find many missing quotes or unbalanced DO;END statements.

Changes in V 0.9.3 8 August 2000

Changes for this level:

  • Avoid Rexx Novalue error when "coding hints" asked
  • Make the "all" combobox in "Interconnect" panel work
  • Some end-users were confused by that GUIWIRE showed the full attribute names, such as DtAWindowForegroundHint and DtAPushButtonSelect.
    So, this has been changed: on the panels we show the short name: ForegroundHint and Select for our example.
  • GUIWIRE will now warn you if you did not save all updates and want to leave GUIWUIRE, or open a new GUIWIRE application.
  • In the list box listing the attributes, flags are shown when the attribute is used:
    if it is an Event
    if it is connected to VM
    if it is interconnected with other attributes.

Changes in V 0.9.2 3 August 2000

Besides the correction of some small bugs, the major changes are:

  • Correct adding second frame to existing appl
  • Fix Table convenience handler: 'INSERT','*',stem caused REXX abend
  • Add a Simple Sample application: maybe the easiest way to learn GUIWIRE.
  • Add Cut&Paste buttons were added on the Rexx Frame
  • The preliminary "code hints" Help frame showed some rubbish.

Changes in V 0.9.1

As V 0.9 was still not a V1, most changes are not listed. Much has been changed, we also tried to improve usability.

An important addition are convenience routines to handle the list of strings in list and combo boxes. Furthermore, the help files have been extended.


We really like to hear from you if you use GUIWIRE, or if you have wishes.