WimpWorks is a utility that aims to make wimp programming easier and less time-consuming. The package consists of a floppy disc and a fifty-page A5 comb bound manual, and costs £25 from Jaffa Software.
Installation is simply a case of creating a directory on your hard disc (or floppy) and dragging the application into it from the original disc. Each copy of the program is encoded with the purchaser's details before being despatched, and there are no key disc requirements or other intrusive protection methods employed. I did initially query this with Andrew Flegg of Jaffa Software, wondering what would happen if you bought a copy secondhand and he replied by saving that he would be hapy to encode the new owner's name onto the disc if they sent it back with return postage. This is a very sensible and fair policy in my opinon and one that should be supported by Acorn users.
The manual states that, "All applications produced with WimpWorks are completely your own to do with as you wish." This can be an important consideration with programming utilities such as this one as most of the shareware and (so called) public domain wimp shell applications have conditions athat require a royalty to be paid if you produce antyhing that you wish to sell commercially. Once again, full marks to Jaffa Software for customer consideration.
The program itself is intended to "offer a simple but powerful modular base for all sorts of multitasking applications, by expanding on the functionality of Basic 5 and using an extensively tests event driven programming system." What this means is that you are supplied with a task editor, a template editor, a menu editor and a subroutine editor which you use to build the constituent parts of your program and then save, and WimpWorks puts it all together for you and creates a stand-alone application that is ready to run. The system can also be extended by writing WimpWorks Extension Modules (WEMs), so is (theoretically at least) completely open ended.
Creating an application
The easiest way to describe this, and to try to give you some idea of whether WimpWorks is for you, will be work through creating the example application (a simple destkop clock) and provide you with a couple of screenshots of the relevant windows.
On double clicking WimpWorks, it loads itself onto the iconbar. Click <menu> on the icon gives you a menu from which you can access the 'Create new' window. Type in the name of your application, drag the save icon to wherever you want it, and the Task Editor window appears so you can fill in the details of the prgram as they will appear in the Info window. That simple task completed, it is time to create the control menu for the application.
Once again to the iconbar menu (Edit -> Menus), and the Menu Editor window springs into life. Entries for the ubiquitous Info and Quit are already present, and it is an esasy task to change the greyed entry to whatever you want the menu title bar to dipslay, then to add any extra options you may need. A single mouse click on the Info option selects it, and you then only need to click the 'Insert after' button to give you a correctly positioned writable icon for your new addition. Having typed 'Clock type', you click it again to invert it, then select whatever characteristics you need for this entry, in this case 'To sublink' - and type 'iconsub1' into the space provided. This will provide a link from the menu item to another menu called 'iconsub1'.
This submenu is created in the same way as the first. By clicking on the menu icon next to the 'Identifier' slot, you can select 'New', which internally saves the details of the menu you were working on and blankss the Menu Editor slots ready for new entries. For this example, I needed to type 'iconsub1' into the identifier field, title the menu 'Clock type' and enter two menu options, HH:MM:SS (Item is... Ticked, Procedure, menu_klick(1)) and HH:MM (Procedure, menu_klik(2)). This will create a menu with two toggleable (?) options, one of them ticked by default and routed to a procedure called menu_klick(1), the other which will sit quietly until selected by the user and will then take over the tick, and route the program to menu_klik(2). A click on the Identifier pop-up icon saves this menu, and it is time to move onto the next stage, creating the template for the main application window.
Launching the template editor from the WimpWorks iconbar menu, you notice that the 'info' and 'saveas' windows have already been defined. Instructions for creating the window are given if you are using the supplied template editor, though you can use a different editor if you prefer. I won't go into the nuts and nolts of creating the window itself, as template editors have been covered many times within these pages. Suffice to say, within a minute I had a window ready with no scroll bars or toggle-size button, and an icon nicely centred ready to accept the clock data. Templates file saved, it was time for the final stretch, the subroutine editor.
Anyone who has tried to write a wimp program in Basic will know how much code there is to do just to get an application sitting on the iconbar and doing little else. With WimpWorks, there is a grand total of seven lines needed for this simple example. Two of these handle the toggling of the ticked item on the menu we created earlier, one line checks which mouse button is being presssed if a click is detected on the clock's iconbar icon, and the other four are to check which of the two selections on our submenu is ticked and to display the clock accordingly.
The subroutine editr consists of a window which you set up to suit the procedure or function you need. When you click on the 'Edit Code' button, it opens an Edit window (or whichever text editor you prefer) with the
=0) lines already entered so you just have to type in the main part plus any brakceted local variables you may have passed to the routine. In the example I have outlined above, you will see that we had
menu_klik(2) defined in the menu editor, so it was necessary to adapt
DEF PROCmenu_klik to be
And that was almost that. The only other thing left to do was to click <menu> over the Task Editor window and select' Save Application'. All the bits were saved and a double click on the MyClock icon loaded the application onto the iconbar, and another click later I had a very simple clock in a window.
Documentation and help
The manual has both contents and index pages, and starts steadily with some nicely written introductory sections which gently touch on the wimp interface and then describe the different editors contained in WimpWorks, as well as the basic concepts behind the program.
The next section is a list of new commands provided to allow you easy contol of the Wimp. Ater the previous sections, this came as a bit of a culture shock to be honest, though future versions of the manual will have this chapter moved to the end where it will follow the tutorial and be more convenient for reference.
The tutorial is the only real disappointment to the package. It consists of two pages taking you through the process of creating the desktop clock application that I have described above. This is not comprehensive enough to give beginners the confidence to experiment on thier own, and while there are examples on the dsic, they are not documented to any great degree. Andrew is working on a disc-based supplement however, whcih will provide a more comprehensive example of using WimpWorks. It may be ready by the time you read this, but at the time of writing has not appeared on the website.
It is possible to get help with the package though. If you have access to the Internet, the WimpWorks website has a section set aside for help. Check through the existing questions and answers, and if you do not find what you are looking for, you can type in your query and it will be answered. Those not connected to the Internet can write enclosing an SAE, and a disc if appropriate, and Andrew will endeavour to solve your problem as soon as possible.
WimpWorks is a well thought out package and could be invaluable to those looking to create the occasional multitasking program. Jaffa Software appear to be very responsive to constructive comments and, given the price, the amount of customer support available free of charge is commendable. The resulting applications are a little larger than necessary at present. The simple clock, for instance, takes 75KB of disc space and 108KB of memory when loaded, but development continues, and version 2 will not require the use of Doggysoft's WimpExt module which will mean that applications will be smaller and faster. There are also many other improvements planned for version 2, and an upgrade will be available, so there is no execuse not to buy now if you feel WimpWorks could be of use to you. All in all, WimpWorks is a useful application, and with the addition of the disc-based supplement to the manual, should be very good indeed. For the price, there is nothing to touch it.
Context and Response
This is a review of WimpWorks v1. The following year, version 2 was released which continued the same pattern for developing applications but came with many more examples and a rewritten manual; taking into account Dave's comments in this review.