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. ============================= Archive contents ============================= Original Packed Ratio Date Time Name -------- ------- ----- --------- -------- ------------- 62268 23100 62.9% 09-Jun-97 18:14:24 +EasyGUI.doc 1568 732 53.3% 04-Dec-96 23:16:08 +password.doc 514 295 42.6% 13-Feb-97 18:44:12 +ticker.doc 8647 3339 61.3% 11-Jun-00 18:42:28 +EasyGUI_OS12.doc 2338 977 58.2% 25-May-98 04:40:32 +bar.guide 4590 1692 63.1% 22-Feb-98 23:05:58 +corners.guide 5541 2326 58.0% 11-Mar-98 17:00:48 +dclistview.doc 5543 1722 68.9% 29-Jan-98 21:40:52 +iconbox.guide 2028 833 58.9% 08-Feb-98 14:54:36 +icongad.guide 1683 676 59.8% 14-Feb-98 00:07:36 +location.guide 6620 2239 66.1% 25-May-98 04:32:40 +multitext.guide 5367 1916 64.3% 20-Feb-98 00:18:42 +popmisc.guide 4437 1404 68.3% 05-Oct-97 14:35:00 +rawkey.guide 5466 1903 65.1% 15-Nov-97 15:09:32 +simplegauge.guide 2260 916 59.4% 25-May-98 04:35:22 +space.guide 5030 1779 64.6% 13-Mar-98 23:15:40 +toolbar.guide 3398 1294 61.9% 11-Jan-98 13:28:20 +xygadget.guide 7491 2242 70.0% 11-Jun-00 18:41:46 +history.doc 72076 22065 69.3% 11-Jun-00 18:09:22 +test_os12 62524 10727 82.8% 11-Jun-00 18:03:30 +test_os12.e 10291 2564 75.0% 06-Jun-00 02:07:14 +all_os12.e 1059 505 52.3% 07-Jun-00 03:53:12 +password_test_os12.e 1792 862 51.8% 06-Jun-00 02:21:24 +testaw_os12.e 1052 511 51.4% 06-Jun-00 02:22:32 +testchange_os12.e 8231 2559 68.9% 06-Jun-00 02:23:22 +testchange_os12_2.e 2969 1105 62.7% 06-Jun-00 02:24:32 +testkey_os12.e 2090 992 52.5% 06-Jun-00 02:25:08 +testmulti_os12.e 1667 769 53.8% 06-Jun-00 02:25:44 +testmulti_os12_2.e 584 363 37.8% 06-Jun-00 02:26:30 +testqual_os12.e 532 316 40.6% 07-Jun-00 03:54:36 +ticker_test_os12.e 720 393 45.4% 06-Jun-00 02:27:46 +windowify_test_os12.e 2698 744 72.4% 06-Jun-00 14:37:28 +bar_os12_demo.e 3169 782 75.3% 06-Jun-00 14:20:08 +corners_os12_demo.e 2223 922 58.5% 06-Jun-00 14:37:58 +dclistview_os12_demo1.e 1865 654 64.9% 06-Jun-00 14:23:36 +iconbox_os12_demo.e 1036 511 50.6% 06-Jun-00 11:45:20 +icongad_os12_demo.e 994 401 59.6% 06-Jun-00 11:46:28 +location_os12_demo.e 3080 909 70.4% 06-Jun-00 14:26:26 +multitext_os12_demo.e 2310 604 73.8% 06-Jun-00 14:28:04 +popmisc_os12_demo.e 939 503 46.4% 06-Jun-00 14:29:30 +rawkey_os12_demo.e 3481 1082 68.9% 06-Jun-00 12:12:26 +simplegauge_os12_demo.e 2794 609 78.2% 06-Jun-00 14:33:28 +space_os12_demo.e 3346 852 74.5% 06-Jun-00 14:34:20 +toolbar_os12_demo.e 2072 669 67.7% 06-Jun-00 14:36:20 +xygadget_os12_demo.e 1628 782 51.9% 11-Jun-00 18:09:26 +bar_os12.m 4126 1586 61.5% 11-Jun-00 18:09:26 +corners_os12.m 3838 1718 55.2% 11-Jun-00 18:09:26 +dclistview_os12.m 2500 1125 55.0% 11-Jun-00 18:09:28 +iconbox_os12.m 1812 908 49.8% 11-Jun-00 18:09:28 +icongad_os12.m 796 446 43.9% 11-Jun-00 18:09:28 +location_os12.m 3958 1584 59.9% 11-Jun-00 18:09:30 +multitext_os12.m 5714 2347 58.9% 11-Jun-00 18:09:30 +popmisc_os12.m 2670 1014 62.0% 11-Jun-00 18:09:30 +rawkey_os12.m 4196 1733 58.6% 11-Jun-00 18:09:32 +simplegauge_os12.m 876 475 45.7% 11-Jun-00 18:09:32 +space_os12.m 4146 1527 63.1% 11-Jun-00 18:09:34 +toolbar_os12.m 1600 785 50.9% 11-Jun-00 18:09:34 +xygadget_os12.m 746 412 44.7% 11-Jun-00 18:09:18 +drawinfo.m 788 418 46.9% 11-Jun-00 18:09:18 +openwin.m 338 222 34.3% 11-Jun-00 18:09:18 +ports.m 476 301 36.7% 11-Jun-00 18:09:18 +strcmp.m 298 228 23.4% 11-Jun-00 18:09:18 +tagdata.m 220 154 30.0% 11-Jun-00 18:09:18 +utility.m 230 151 34.3% 11-Jun-00 18:09:18 +version.m 2760 1317 52.2% 11-Jun-00 18:09:22 +password_os12.m 534 328 38.5% 11-Jun-00 18:09:22 +ticker_os12.m 2168 1000 53.8% 11-Jun-00 18:09:22 +windowify_os12.m 716 313 56.2% 11-Jun-00 18:09:20 +easygui_notag_os12.m 31882 11724 63.2% 11-Jun-00 18:09:20 +easygui_os12.m 2620 963 63.2% 11-Jun-00 18:57:06 +bar_os12.e 8765 1967 77.5% 11-Jun-00 18:57:08 +corners_os12.e 5887 1887 67.9% 11-Jun-00 18:57:08 +dclistview_os12.e 4729 1429 69.7% 11-Jun-00 18:57:08 +iconbox_os12.e 4368 1828 58.1% 11-Jun-00 18:57:08 +icongad_os12.e 1220 548 55.0% 11-Jun-00 18:57:08 +location_os12.e 9187 2138 76.7% 11-Jun-00 18:57:08 +multitext_os12.e 12815 3066 76.0% 11-Jun-00 18:57:08 +popmisc_os12.e 4201 1221 70.9% 11-Jun-00 18:57:08 +rawkey_os12.e 8186 2591 68.3% 11-Jun-00 18:57:08 +simplegauge_os12.e 1543 676 56.1% 11-Jun-00 18:57:08 +space_os12.e 8827 2140 75.7% 11-Jun-00 18:57:08 +toolbar_os12.e 3256 1177 63.8% 11-Jun-00 18:57:08 +xygadget_os12.e 1855 831 55.2% 11-Jun-00 18:57:08 +drawinfo.e 1735 758 56.3% 11-Jun-00 18:57:08 +openwin.e 800 457 42.8% 11-Jun-00 18:57:08 +ports.e 986 516 47.6% 11-Jun-00 18:57:08 +strcmp.e 972 552 43.2% 11-Jun-00 18:57:08 +tagdata.e 722 428 40.7% 11-Jun-00 18:57:08 +utility.e 794 450 43.3% 11-Jun-00 18:57:08 +version.e 4013 1594 60.2% 11-Jun-00 18:57:08 +password_os12.e 595 328 44.8% 11-Jun-00 18:57:08 +ticker_os12.e 2367 979 58.6% 11-Jun-00 18:57:08 +windowify_os12.e 1039 342 67.0% 11-Jun-00 18:57:08 +easygui_notag_os12.e 63709 20323 68.1% 11-Jun-00 18:57:08 +easygui_os12.e -------- ------- ----- --------- -------- 564590 184145 67.3% 12-Jun-100 16:15:40 94 files