home *** CD-ROM | disk | FTP | other *** search
- Short: V3.3b4 EasyGUI with OS 1.2+ support V0.9
- Author: Ralf "hippie2000" Steines + Various (see below)
- Uploader: metamonk@yahoo.com
- Type: dev/e
- Requires: gadtools13.library, AmigaOS 1.2 or higher
-
-
- INTRODUCTION
- ------------
-
- EasyGUI_OS12 is a fully compatible version of EasyGUI V3.3b4, which
- was enhanced to work under any versions of the Amiga-OS which are
- supported by Amiga-E (V1.2+/V33+) (original EasyGUI requires V37)
-
- All pre V36 OS support functions were written in hybrid way, so that
- on newer Amiga-OS everything is done the same way as in the original
- EasyGUI, which is a very future compatible solution IMHO.
-
- Programs using the EasyGUI_OS12 modules do not have any additional
- requirements unless they are run on pre V36 Amiga-OS, in which case
- they require the "gadtools13.library" V34.23 by JABA development,
- which is not part of this package, since I do neither know about the
- legal state of that library, nor do I know how to contact the author
- yet (HELP ME PLEASE!!!) Check your libs: directory or the stonecracker
- archive from aminet or visit amigasystems.org to find this lib.
-
-
- COPYRIGHT
- ---------
-
- Note that this is an "unofficial" release of EasyGUI, released with
- permission of Jason R. Hulance (current maintainer of EasyGUI).
-
- The EasyGUI module, the EasyGUI example sources and docs are
- Copyright (c) 1994-6, Wouter van Oortmerssen (the author of the great
- language E) and Jason R. Hulance (the author of the "beginners.guide"
- and long time supporter of E).
-
- The plugins, demo sources and docs in the EasyPlugins folders are
- (C) Copyright Ali Graham, Fabio Rotondo and Ralph Wermke, used with
- permission too. See the headers of each source file to find out who
- exactly did what.
-
- All changes and additional files are Copyright (c) 2000,
- Ralf 'hippie2000' Steines [metamonk@yahoo.com] and inherit the legal
- state from the original EasyGUI disctribution. (Reuse there is welcome :)
-
- Please do not redistribute any modified versions of these files
- without having talked about first, since this is going to be updated
- again (hopefully :)
-
-
- PROGRAMMERS INFO
- ----------------
-
- EasyGUI_OS12 is used in the same way as the original EasyGUI, so read
- the original manual which you can find in the docs/easygui#? folder.
- Additionally to all info provided there you need to know a few
- differences:
-
- - The workbenchbase shared by EasyGUI_OS12 will be NIL if the
- workbench.library could not be opened (which is the fact on older
- Amiga-OS) WITHOUT raising an exception. So, if you use AppIcon/
- AppTool/AppWindow functions test workbenchbase first and degrade
- graceful if it is NIL. The EasyGUI_OS12 builtin AppWindow support
- is already safe.
-
- - Write hybrid code if you use new os functions, and do not rely on
- KickVersion() only (which just checks the exec library version).
- For this the module 'hybrid/version' is provided with this package,
- making life easier for you:
-
- bool:=intuiVersion(minver) -> intuitionbase version
- bool:=gfxVersion(minver) -> gfxbase version
- bool:=libVersion(libbase,minver) -> whateverbase version
-
- - Take care that plugins you use also were compiled with EasyGUI_OS12
- otherwise both versions of EasyGUI will be included in your project.
- (check the example plugins how to do that best)
-
- - When writing plugins you will very likely need the taglist parsing
- function GetTagData() of utility.library. Since this library does
- not exist on older Amiga-OS versions you should use the hybrid
- replacement in the module 'hybrid/tagdata' instead, which uses the
- utility function in case of a non zero utilitybase, otherwise a
- replacement. The module 'hybrid/utility' provides you with the
- necessary open and close functions which do not raise an exception.
-
- openUtility() -> at the beginning of the main prog
- (no return code, result is utilitybase)
- data:=getTagData(tag,default,taglist) -> within the plugin
- closeUtility() -> at the end of the main prog
-
- - Note that old intuition was not very resistant against passing it
- stupid values, so don't blame me or the authors of EasyGUI for
- possible GURUs. During tests i made excellent experience with
- gadtools13.library under WB1.2 and 1.3, and i did not experience
- any GURU which was not my fault :)
-
- DANGER: the EasyGUI functions movewin() and sizewin() horribly
- crash on early intuition versions when the window is moved out
- of the screen. In the next release i should implement some
- clipping to avoid this.
-
- - Using changing GUIs under early intuition versions requires some
- care during design. Best: don't use. Second best: try to make the
- size of all GUIs the same, and try to open the biggest one first.
- The changegui feature relies on window resizing (which is not
- guaranteed to happen ever) and may by this lead to dangerous
- gadget sizes. Modern intuition is flexible in such cases, but
- early intuition verions prefer to crash in such situations.
-
-
- GADTOOLS VERSIONS
- -----------------
-
- Note that gadtools13.library and even early real gadtools versions
- misses some functions which are present in newer ones. This should
- not be a big problem since all important things work. Just don't rely
- on the behaviour of recent gadtools and your software will work fine.
-
- Here a reference of things I noticed, sorted by gadget kind:
-
-
- BUTTON,SBUTTON GT13 -
- GT37 -
-
- CHECK GT13 -
- GT37 -
-
- MX Do not use disabling, really makes no sense:
- GT13 only disables + ghosts the first item.
- resize breaks disabling.
- Text is spaced but not rendered.
- GT37 disabling visibly sets to first item
- of the list, value is not affected.
- Resize restores the visible state.
- The left or right text is spaced but
- is not rendered.
-
- CYCLE GT13 set or resize breaks disabling
- GT37 -
-
- INTEGER,STR GT13 -
- GT37 -
-
- NUM,TEXT Do not use disabling, really makes no sense:
- GT13 can be disabled, but disabling breaks
- by set or resize and is NOT possible
- with any later GT versions at all!!!
- GT37 No disable possible. This is no bug but
- a feature. Maybe EasyGUI should not
- allow disabling of these gadgets at all.
-
- SLIDE Do not use without a slider value format text!
- GT13 always clears the background behind
- slider values, even with an empty format
- string. Sliders values are still a TODO
- in EasyGUI so no workaround was added.
- GT37 Rendering errors after a set within a
- disabled gadget, old knob position is
- cleared and remains unghosted.
-
- SCROLL GT13 -
- GT37 Rendering errors after a set within a
- disabled gadget, old knob position is
- cleared and remains unghosted.
-
- LISTV Do not rely on the read only feature, use a
- "do nothing" action funtion additionally.
- GT13 set or resize breaks disabling, read
- only (recessed) mode does not exist.
- always read/write.
- GT37 Listviews can't be disabled
-
- PALETTE GT13 set breaks disabling, setting to
- a value above the screen's depth is
- not visible (but works internally)
- GT37 setting to a value above the screen's
- depth is not visible (but works
- internally)
-
- BEVEL,BEVELR GT13 no recessed bevel, both render same.
- GT37 -
-
-
- GT13 means gadtools13.library, GT37 means gadtools.library V37...
-
- I had no access to a V36 ROM so far (or is GT36 disk based?),
- so i could not test this gadtools version.
-
-
-