Beginner's Guide to WIMP Programming
Everything you need to know to start writing your own applications.
Preface to the Second Edition
The first edition of this book, originally entitled A Beginner's Guide to Wimp Programming on the Archimedes, was published by Sigma Press in 1992, back in the days when the name 'Archimedes' was still used to represent Acorn's flagship 32-bit computer and RISC OS 3 was a recent innovation.
A dozen years later, many things have changed. The Archimedes is long gone, as is its successor, the Risc PC. Acorn itself is an ever-receding memory, having ceased to make computers in late 1998 and closed down completely early in the following year. Christopher, the eleven-year-old whose desire to learn Wimp programming inspired this book in the first place, is now in the final year of study for a PhD in mathematics. Martyn Fox himself, sadly, is no longer with us, having succumbed to illness at the regrettably early age of 57.
Martyn was the author of two books, both of which he intended to revise and re-release in freely distributable form for the benefit of the RISC OS world. He succeeded in completing the revisions to First Steps in Programming RISC OS Computers, but was not so fortunate with the Wimp Programming volume, the second edition of which remained incomplete when he died.
I came to know Martyn through my position as Editor of first RISC User and then Foundation RISC User magazines. Martyn wrote for every one of the first thirteen issues of Foundation RISC User, contributing over two dozen excellent programming articles. I assisted in the production of the second edition of his First Steps book, and it has been my privilege to be able to complete his second edition of A Beginner's Guide to Wimp Programming on RISC OS Computers. I would like to express my thanks to Martyn's widow, Christine, and to his son, Christopher, for supplying me with Martyn's work in progress on this book, and permitting me to finish it on his behalf.
In fact, although the task of pulling together the incomplete pieces of this book and its accompanying software required me to update and revise a fair amount of the text and Basic code, the content of the book is entirely Martyn's work nevertheless. This second edition includes a substantial amount of new material compared with the original: well over 100 additional pages, in fact, including revisions to existing material and three major new chapters on outline fonts, printing and other software refinements. However, these three substantial new chapters were written by Martyn in 1995, three years after the book was first published. More recently he had been updating the material to take account of newer RISC OS developments, and had produced further smaller new chapters, partly in an effort to reorganise material that was already present.
It is hard to say to what extent this second edition actually represents the book that Martyn would have released if he had been able to complete the work himself. It seems likely that he would have added various further extensions; certainly, he had mentioned to me his intention to write about RAM transfers and use of the global clipboard in his updated coverage of loading and saving data, but it seems that work on these particular topics was never started.
The recent revisions that he did complete include the stack-based memory routines introduced in Section 10, along with the simplified initial version of the Wimp shell program that accompanies them. The transformation of the Test program into a separate application called Shapes (an application name which, incidentally, Martyn registered officially with RISCOS Ltd), is also a change of approach, the Test application having sufficed for the entire guide previously.
In completing this second edition, I took the decision to finish the book as it stood, rather than trying to add any extra material of my own. Although Martyn may have intended that the book should cover other new ground, the chapters that already exist form an entirely coherent whole. I felt that my rôle should be to finish the work that Martyn left incomplete (correcting mistakes that I found in the text and the software, tying up loose ends and bringing the material up to date for today's RISC OS systems) rather than to add my own new sections. The result may not be as full a second edition as Martyn would have produced himself, but at least the work can still be credited entirely to him.
Besides, the book is a complete, accessible and readable guide which will bring its readers up to a level of expertise sufficient for them to be able to pick up the RISC OS Programmer's Reference Manual and continue on their own. It also lives up to its title; had the book included much more information, it may have run the risk of becoming an advanced guide rather than one for beginners!
In conclusion, it gives me great pleasure to be able to release this book in the way in which I believe Martyn Fox would have wanted it to be made available.
For the Foundation RISCWorld release of this book the HTML has been tidied up. Full BASIC examples for each program are provided and a number of spelling mistakes have been corrected.