Tk/Wizard - Wizard GUI Framework - Version 1.02 =============================================== INSTALLATION To install this module type the following: perl Makefile.PL make make test make install DESCRIPTION The "Tk::Wizard" module automates a large part of the creation of a wizard program to collect information and then perform some complex task based upon it. The Wizard was developed to aid software installation by end-users using ActiveState's ActivePerl, but should function under other OS and circumstances. There package does contain a number of routines specific to software installation: these may be removed to a sub-class at a later date. The wizard feel is largly based upon the Microsoft(TM,etc) wizard style: the default is simillar to that found in Microsoft Windows 95; a more Windows 2000-like feel is also supported (see the "-style" entry in the WIDGET-SPECIFIC OPTIONS entry elsewhere in this document. THIS IS AN ALPHA RELEASE: ALL CONTRIBUTIONS ARE WELCOME! WHAT IS A WIZARD? In the context of this namespace, a Wizard is defined as a graphic user interface (GUI) that presents information, and possibly performs tasks, step-by-step via a series of different pages. Pages (or 'screens', or 'Wizard frames') may be chosen logically depending upon user input. THE Tk::Wizard NAMESPACE In discussion on comp.lang.perl.tk, it was suggested by Dominique Dumont (would you mind your address appearing here?) that the following guidelines for the use of the "Tk::Wizard" namespace be followed: 1 That the module "Tk::Wizard" act as a base module, providing all the basic services and components a Wizard might require. 2 That modules beneath the base in the hierachy provide implimentations based on aesthetics and/or architecture. At the time of writing (28 November 2002, 18:07 CET) there has yet to emmerge a consensus of opinion on this matter, with suggestions being put forward by a couple of parties that the "Tk" namespace should contain sub-categories named after various platforms, and that each of these have a "Wizard" namespace, with that possibly having further sub-categories. The the DESCRIPTION entry in the perlport manpage suggests a 'general rule': ... When you approach a task commonly done using a whole range of platforms, think about writing portable code. That way, you don't sacrifice much by way of the implementation choices you can avail yourself of, and at the same time you can give your users lots of platform choices. On the other hand, when you have to take advantage of some unique feature of a particular platform, as is often the case with systems programming ... consider writing platform-specific code. As there has yet to emmerge a suggestion of a task that could not be implimented by a cross-platform "Tk::Wizard" base-class, I urge you, in the spirit of the three virtues (perl/NOTES), to visit comp.lang.perl.tk and cast an opinion one way or another. Please also see the IMPLIMENTATION NOTES entry elsewhere in this document. IMPLIMENTATION NOTES This widget is implimented using the Tk 'standard' API as far as possible, given my almost two weeks of exposure to Tk. Please, if you have a suggestion, send it to me directly: "LGoddard@CPAN.org". There is one outstanding bug which came about when this Wizard was translated from an even more naive implimentation to the more-standard manner. That is: "Wizard" is a sub-class of "MainWIndow", the "-background" is inacessible to me. Useful suggestions much appreciated. There is one item included which, despite the ramble in the section above, is platform specific. This is simply present at present for my own convenience - this module is currently being developed for a commercial project with a tight schedule. These methods will later be removed to the sub-classes "Tk::Wizard::Installer" and "Tk::Wizard::Installer::Win32". NOTES ON SUB-CLASSING Tk::Wizard If you are planning to sub-class "Tk::Wizard" to create a different display style, there are three routines you will to over-ride: initial_layout render_current_page blank_frame This may change in a day or so, so please bear with me. CAVEATS / BUGS / TODO * In Windows, with the system font set to > 96 dpi (via Display Properties / Settings / Advanced / General / Display / Font Size), the Wizard will not display propertly. This seems to be a Tk feature. * Still not much of a Tk widget inheritance - any pointers welcome. * Nothing is currently done to ensure text fits into the window - it is currently up to the client to make frames "Scrolled"), as I'm having problems making "&blank_frame" produce them. CHANGES Please see the file CHANGES.txt included with the distribution. AUTHOR Lee Goddard (lgoddard@cpan.org) based on work Daniel T Hable. KEYWORDS Wizard; set-up; setup; installer; uninstaller; install; uninstall; Tk; GUI. COPYRIGHT Copyright (c) Daniel T Hable, 2/2002. Modifications Copyright (C) Lee Goddard, 11/2002 ff. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. THIS SOFTWARE AND THE AUTHORS OF THIS SOFTWARE ARE IN NO WAY CONNECTED TO THE MICROSOFT CORP. THIS SOFTWARE IS NOT ENDORSED BY THE MICROSOFT CORP MICROSOFT IS A REGISTERED TRADEMARK OF MICROSOFT CROP. Tool completed successfully