home *** CD-ROM | disk | FTP | other *** search
/ Enigma Amiga Life 113 / EnigmaAmiga113CD.iso / software / sviluppo / easygui_os12 / docs / easygui_os12.doc next >
Encoding:
Text File  |  2000-06-11  |  8.4 KB  |  193 lines

  1. Short:    V3.3b4 EasyGUI with OS 1.2+ support V0.9
  2. Author:   Ralf "hippie2000" Steines + Various (see below)
  3. Uploader: metamonk@yahoo.com
  4. Type:     dev/e
  5. Requires: gadtools13.library, AmigaOS 1.2 or higher
  6.  
  7.  
  8. INTRODUCTION
  9. ------------
  10.  
  11.   EasyGUI_OS12 is a fully compatible version of EasyGUI V3.3b4, which
  12.   was enhanced to work under any versions of the Amiga-OS which are
  13.   supported by Amiga-E (V1.2+/V33+) (original EasyGUI requires V37)
  14.  
  15.   All pre V36 OS support functions were written in hybrid way, so that
  16.   on newer Amiga-OS everything is done the same way as in the original
  17.   EasyGUI, which is a very future compatible solution IMHO.
  18.  
  19.   Programs using the EasyGUI_OS12 modules do not have any additional
  20.   requirements unless they are run on pre V36 Amiga-OS, in which case
  21.   they require the "gadtools13.library" V34.23 by JABA development,
  22.   which is not part of this package, since I do neither know about the
  23.   legal state of that library, nor do I know how to contact the author
  24.   yet (HELP ME PLEASE!!!) Check your libs: directory or the stonecracker
  25.   archive from aminet or visit amigasystems.org to find this lib.
  26.  
  27.  
  28. COPYRIGHT
  29. ---------
  30.  
  31.   Note that this is an "unofficial" release of EasyGUI, released with
  32.   permission of Jason R. Hulance (current maintainer of EasyGUI).
  33.  
  34.   The EasyGUI module, the EasyGUI example sources and docs are
  35.   Copyright (c) 1994-6, Wouter van Oortmerssen (the author of the great
  36.   language E) and Jason R. Hulance (the author of the "beginners.guide"
  37.   and long time supporter of E).
  38.  
  39.   The plugins, demo sources and docs in the EasyPlugins folders are
  40.   (C) Copyright Ali Graham, Fabio Rotondo and Ralph Wermke, used with
  41.   permission too. See the headers of each source file to find out who
  42.   exactly did what.
  43.  
  44.   All changes and additional files are Copyright (c) 2000,
  45.   Ralf 'hippie2000' Steines [metamonk@yahoo.com] and inherit the legal
  46.   state from the original EasyGUI disctribution. (Reuse there is welcome :)
  47.  
  48.   Please do not redistribute any modified versions of these files
  49.   without having talked about first, since this is going to be updated
  50.   again (hopefully :)
  51.  
  52.  
  53. PROGRAMMERS INFO
  54. ----------------
  55.  
  56.   EasyGUI_OS12 is used in the same way as the original EasyGUI, so read
  57.   the original manual which you can find in the docs/easygui#? folder.
  58.   Additionally to all info provided there you need to know a few
  59.   differences:
  60.  
  61.   - The workbenchbase shared by EasyGUI_OS12 will be NIL if the
  62.     workbench.library could not be opened (which is the fact on older
  63.     Amiga-OS) WITHOUT raising an exception. So, if you use AppIcon/
  64.     AppTool/AppWindow functions test workbenchbase first and degrade
  65.     graceful if it is NIL. The EasyGUI_OS12 builtin AppWindow support
  66.     is already safe.
  67.  
  68.   - Write hybrid code if you use new os functions, and do not rely on
  69.     KickVersion() only (which just checks the exec library version).
  70.     For this the  module 'hybrid/version' is provided with this package,
  71.     making life easier for you:
  72.  
  73.       bool:=intuiVersion(minver)        -> intuitionbase version
  74.       bool:=gfxVersion(minver)          -> gfxbase version
  75.       bool:=libVersion(libbase,minver)  -> whateverbase version
  76.  
  77.   - Take care that plugins you use also were compiled with EasyGUI_OS12
  78.     otherwise both versions of EasyGUI will be included in your project.
  79.     (check the example plugins how to do that best)
  80.  
  81.   - When writing plugins you will very likely need the taglist parsing
  82.     function GetTagData() of utility.library. Since this library does
  83.     not exist on older Amiga-OS versions you should use the hybrid
  84.     replacement in the module 'hybrid/tagdata' instead, which uses the
  85.     utility function in case of a non zero utilitybase, otherwise a
  86.     replacement. The module 'hybrid/utility' provides you with the
  87.     necessary open and close functions which do not raise an exception.
  88.  
  89.       openUtility()   -> at the beginning of the main prog
  90.                          (no return code, result is utilitybase)
  91.       data:=getTagData(tag,default,taglist) -> within the plugin
  92.       closeUtility()  -> at the end of the  main prog
  93.  
  94.   - Note that old intuition was not very resistant against passing it
  95.     stupid values, so don't blame me or the authors of EasyGUI for
  96.     possible GURUs. During tests i made excellent experience with
  97.     gadtools13.library under WB1.2 and 1.3, and i did not experience
  98.     any GURU which was not my fault :)
  99.  
  100.     DANGER: the EasyGUI functions movewin() and sizewin() horribly
  101.     crash on early intuition versions when the window is moved out
  102.     of the screen. In the next release i should implement some
  103.     clipping to avoid this.
  104.  
  105.   - Using changing GUIs under early intuition versions requires some
  106.     care during design. Best: don't use. Second best: try to make the
  107.     size of all GUIs the same, and try to open the biggest one first.
  108.     The changegui feature relies on window resizing (which is not
  109.     guaranteed to happen ever) and may by this lead to dangerous
  110.     gadget sizes. Modern intuition is flexible in such cases, but
  111.     early intuition verions prefer to crash in such situations.
  112.  
  113.  
  114. GADTOOLS VERSIONS
  115. -----------------
  116.  
  117.   Note that gadtools13.library and even early real gadtools versions
  118.   misses some functions which are present in newer ones. This should
  119.   not be a big problem since all important things work. Just don't rely
  120.   on the behaviour of recent gadtools and your software will work fine.
  121.  
  122.   Here a reference of things I noticed, sorted by gadget kind:
  123.  
  124.  
  125.       BUTTON,SBUTTON    GT13  -
  126.                         GT37  -
  127.  
  128.       CHECK             GT13  -
  129.                         GT37  -
  130.  
  131.       MX                Do not use disabling, really makes no sense:
  132.                         GT13  only disables + ghosts the first item.
  133.                               resize breaks disabling.
  134.                               Text is spaced but not rendered.
  135.                         GT37  disabling visibly sets to first item
  136.                               of the list, value is not affected.
  137.                               Resize restores the visible state.
  138.                               The left or right text is spaced but
  139.                               is not rendered.
  140.  
  141.       CYCLE             GT13  set or resize breaks disabling
  142.                         GT37  -
  143.  
  144.       INTEGER,STR       GT13  -
  145.                         GT37  -
  146.  
  147.       NUM,TEXT          Do not use disabling, really makes no sense:
  148.                         GT13  can be disabled, but disabling breaks
  149.                               by set or resize and is NOT possible
  150.                               with any later GT versions at all!!!
  151.                         GT37  No disable possible. This is no bug but
  152.                               a feature. Maybe EasyGUI should not
  153.                               allow disabling of these gadgets at all.
  154.  
  155.       SLIDE             Do not use without a slider value format text!
  156.                         GT13  always clears the background behind
  157.                               slider values, even with an empty format
  158.                               string. Sliders values are still a TODO
  159.                               in EasyGUI so no workaround was added.
  160.                         GT37  Rendering errors after a set within a
  161.                               disabled gadget, old knob position is
  162.                               cleared and remains unghosted.
  163.  
  164.       SCROLL            GT13  -
  165.                         GT37  Rendering errors after a set within a
  166.                               disabled gadget, old knob position is
  167.                               cleared and remains unghosted.
  168.  
  169.       LISTV             Do not rely on the read only feature, use a
  170.                         "do nothing" action funtion additionally.
  171.                         GT13  set or resize breaks disabling, read
  172.                               only (recessed) mode does not exist.
  173.                               always read/write.
  174.                         GT37  Listviews can't be disabled
  175.  
  176.       PALETTE           GT13  set breaks disabling, setting to
  177.                               a value above the screen's depth is
  178.                               not visible (but works internally)
  179.                         GT37  setting to a value above the screen's
  180.                               depth is not visible (but works
  181.                               internally)
  182.  
  183.       BEVEL,BEVELR      GT13  no recessed bevel, both render same.
  184.                         GT37  -
  185.  
  186.  
  187.   GT13 means gadtools13.library, GT37 means gadtools.library V37...
  188.  
  189.   I had no access to a V36 ROM so far (or is GT36 disk based?),
  190.   so i could not test this gadtools version.
  191.  
  192.  
  193.