------------------------------------
MUI Magic User Interface - ChangeLog
------------------------------------

$Id: ChangeLog 6041 2017-10-06 05:23:41Z tboeckel $

#### 5.0-2017R3 Release ########################################################

2017-10-04 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: "eat" the mouse wheel events if and only if they are finally applied
    to any of the scrollbars.
  * Numeric.c, Prop.c, Scrollbar.c: don't "eat" input events which are not
    handled explicitly. This refs #356.
  * Balance.c, Radio.c, Selectgroup.c: don't "eat" input events which are not
    handled explicitly. This refs #356.

2017-08-09 Thore Böckelmann <tboeckel@gmx.de>

  * muiprog.h, mastergfx.c: don't restrict any bitmap width calculations to
    16 bits but use full 32 bits.
  * mastergfx.c: don't inherit any dithering information when cloning a render
    info structure.

2017-07-17 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: completely clear the EasyStruct structure to avoid any
    possible misinterpretation of possibly uninitialized pointers.
  * muiasl.c: removed some double NULL pointer checks. Checking once is enough.

2017-07-15 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: don't undo simple cursor movements in case they are rejected by
    an edit hook.

2017-07-11 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: reworked the edit hook handling to call the hook after each edit
    operation, especially after certain key presses like Backspace or Delete.

2017-07-03 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: don't call the edit hook a second time in case the first call has
    not retured yet. This refs #353.

#### 5.0-2017R2 Release ########################################################

2017-06-23 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/Install-MUI: activated the automatic start of PatchASL in
    S:User-Startup. Installer will ask for confirmation in average and expert
    mode. This finally concludes the integration of MUI based ASL requesters.

2017-06-14 Thore Böckelmann <tboeckel@gmx.de>

  * Filepanel.c: added a Lamp object to indicate the current state.
  * mcc/Lamp.c: implemented MUIV_Lamp_ColorType_Transparent to use the default
    background instead of a specific color.

2017-05-08 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: default to topaz/8 if nothing else is specified and do the
    extended font parameter parsing only if there is something to parse.
  * patchasl.c, muiasl.c: first implementation of a full Asl requester
    replacement, just like MagicASL.

2017-05-05 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: MUIV_Window_TopEdge_Delta() now allows offsets larger than just 9
    pixels.

2017-04-23 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: fixed the possible endless loop and NULL pointer access
    caused by IBrowse's hotlist manager. This closes #347.

2017-04-07 Thore Böckelmann <tboeckel@gmx.de>

  * Panel.c: keep the panel window opened until its position and size have been
    obtained. This fixes the invalid position/size upon opening a panel for a
    second time.

2017-04-06 Thore Böckelmann <tboeckel@gmx.de>

  * Popasl.c, demos/Popup.c: added support for ASL screenmode requesters.
  * Fontpanel.c: don't allow setting a relative font size or the extended font
    style in case the application cannot handle them.

2017-04-05 Thore Böckelmann <tboeckel@gmx.de>

  * Panel.c: implemented MUIM_Panel_Run.

2017-04-04 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed the slightly too optimistic test for plain texts once
    more. The preparse string must either be a simple alignment only or must
    disable the text engine completely to be treated as "simple".
  * Popmenu.c: fixed the wrong layout in case the menu requires more than a
    single column and the widest entry is not in the first column.

2017-03-24 Thore Böckelmann <tboeckel@gmx.de>

  * all: removed a superflous macro and its usage.

2017-03-23 Thore Böckelmann <tboeckel@gmx.de>

  * masterbubble.c: added some "const" keywords to really constant string
    variables.

2017-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: yet another minor draw optimization when changing hovered tabs.

2017-03-17 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeinc.c: enhanced the automatic documentation generation for the
    upcoming documentation directly in the Trac system.

2017-03-15 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c, Title.c: don't restrict redraw actions to the current and new
    active tabs when setting the new active page after a tab click. This closes
    #220 again and refs #342.

2017-03-13 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: restrict the tab redraw actions to the previously and newly hovered
    tabs to avoid flickering as much as possible. This closes #220.

2017-03-11 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: build libos4.a to provide all AmigaOS4 specific functions for
    AmigaOS3.

2017-03-07 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: the "Copy" context menu item of non-editable String object must be
    enabled for consistency.

2017-03-06 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: modified the argument order of an internal method for
    consistency.
  * List.c, mcc/Listtree.c: added a new private method to iterate over all list
    items. In case of Listtree.mcc this method makes it possible to iterate over
    the invisible/folded and hence not (yet) added tree nodes to calculate their
    dimensions. This finally closes #340.
  * String.c: disable the "Copy" and "Cut" menu items of the context menu of
    String objects with MUIA_String_Secret enabled. This would defeat the
    purpose of this attribute otherwise.

2017-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: simplified the allocation of the internal list items.

2017-02-23 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: the formlery unused "flags" parameter of the MUIM_Text method is now
    used to specify the character to be underlined, i.e. for shortcuts.

2017-02-22 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: simplified the 32bit replacement text dimension calculation
    functions.

2017-02-20 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: an invisible title bar no longer causes a failed layout which in
    turn would refresh the complete window. Before this was an IBrowse specific
    workaround, but it is no longer required at all.

2017-02-12 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: added some code to detect IBrowse 2.5, which does no longer
    require all the special and clumpsy workarounds like IBrowse 2.4.

2017-02-10 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: removed an accidentally left over duplicate call to
    AslRequest(). This closes #337.

2017-02-09 Thore Böckelmann <tboeckel@gmx.de>

  * Menuitem.c: implemented MUIA_Menuitem_Menuitem.

2017-02-08 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: removing the currently active eventhandler effectively aborted the
    eventhandler loop by stepping one node back too much. For example this
    caused the buttons in IBrowse's website source window to stay visibly
    selected until the mouse was moved again. Thanks to Oliver Roberts for the
    hint.
  * Application.c: likewise for the inputhandler loop: removing the currently
    active inputhandler effectively aborted the inputhandler loop by stepping
    one node back too much.

2017-02-07 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: added support for lazy applications using MUI's Asl requester
    functions without specifying ASLFR_IntuiMsgFunc to let MUI refresh its
    windows while the requester is active.

2017-02-06 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: don't use MUI's internal name of the frontmost screen as
    public screen name for ASLFR_PubScreenName. Since this screen will never
    exist it effectively makes it impossible to open an Asl requester on that
    screen. This closes #333.

2017-02-03 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: the repeat feature when keeping the mouse pressed after clicking
    outside the knob will now be aborted in case the mouse button is no longer
    pressed.

2017-02-01 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: check whether the config window still exists before disposing
    it. The original VPDF code does some very nasty stuff in its destructor and
    pulls out the rug under MUI's feet by disposing the config window on it own
    without letting MUI know. The consequence is a crash as soon as MUI itself
    tries to dispose the config window. The AmigaOS4 port of VPDF has this bug
    fixed, but who knows who will mimic this kind of bug...

2017-01-31 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: implemented specific support for MUIM_Group_Reorder.

#### 5.0-2017R1 Release ########################################################

2017-01-26 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: show and draw newly added tabs only if the title object is not
    currently in change state to avoid warnings about missing invokations of
    MUIM_Layout for the new tab.
  * mcc/Listtree.c: the Padiavolo tree images are now generated dynamically
    during the build process instead of using pre-generated images.

2017-01-25 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: the MUIM_AskMinMax method of the tree image class now
    returns sensible dimensions. This avoids tons of "layout failed" debug
    messages.

2017-01-24 Thore Böckelmann <tboeckel@gmx.de>

  * Knob.c: use the pixmap's dimensions instead of the object's dimensions when
    layouting the pixmap image.
  * Group.c: do a proper layout of long group titles to avoid the tons of
    "layout failed" debug messages in case the title is wider than the group.
  * misc: all classes set their cl_ID field to a proper name plus possible
    extensions for private classes to assist debugging.

2017-01-23 Thore Böckelmann <tboeckel@gmx.de>

  * contrib_common/locale: regenerated all contributed catalogs with correct
    encoding, even if the corresponding classes have not been updated officially
    yet. This closes #314.
  * contrib: included a special build of TextEditor.mcc which fixes the famous
    crash-on-copy bug. This closes #324.
  * Title.c: query the dropmark's and scrollbuttons' dimensions only if they
    have been MUIM_Setup'd before.

2017-01-22 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: calculate the width of an embedded object in a consistent
    fashion in MUIM_TextDim and MUIM_TextPrint. Before MUIM_TextDim used
    _minwidth() and MUIM_TextPrint used _defwidth(). However, for non-existant
    image files the minimum width would be zero, while the default width would
    be non-zero. This caused Listtree.mcc to omit some trailing characters of
    list treenodes, because the calculated line width was some pixels too narrow
    due to the zero minimum width of the treenode image. However when printing
    the text the non-zero default width of the treenode image was used and hence
    restricted the remaining space for the treenode text which caused MUIM_Text
    to cut of some characters.

2017-01-20 Thore Böckelmann <tboeckel@gmx.de>

  * Textdata.c: use the feature of codesets.library to replace non-ASCII
    characters by 'look-alike' characters.
  * demos/Textdata.c: added some more characters to demonstrate the replacement
    of non-ASCII characters.

2017-01-19 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: added a private function to obtain certain SVN related
    informations from muimaster.library.
  * Aboutpage.c: use the new function to obtain the SVN revision number.

2017-01-18 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c, Imagespace.c: added a private function to resolve reference
    image specs like '6:xxx' to something the Imagebrowser class can understand,
    i.e. '4:foobar.mi1'.
  * Backgroundadjust.c: use the new resolve function. This fixes the invisible
    image browser for certain images like the default open/closed node images
    of NListtree.mcc.
  * Aboutpage.c: prefer the SVN revision number of muimaster.library over the
    own one.

2017-01-17 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: don't generate '5:xxx' specs as these are for background
    patterns only.
  * mastertext.c: special text styles like outlined, shadowed and ghosted will
    make the text's dimensions a few pixels larger to avoid cut off effects in
    case the used font does not provide artifical spacing to absorb the
    additional space requirement.

2017-01-16 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: do the text eliding regardless whether the superclass' layout
    method succeeded or not. This refs #329.
  * mcc/Listtree_mcp.h: adjusted the default treenode image specs. This solves
    the invisible image browser on AmigaOS4.
  * tools/makeconfig.c: changed the default image specs to avoid possible
    invisible image browsers on AmigaOS4.

2017-01-13 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed a slightly too optimistic test for plain texts.

2017-01-12 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: don't cause a relayout after setting MUIA_Text_Shorten if the object
    hasn't been MUIM_Setup'd yet. This refs #327 and refs #328.
  * mastertext.c: treat a disabled text engine by the preparse string "\033-" as
    "plain string".
  * demos: reworked all demo applications to use the SDI macros for dispatcher
    and hook function definitions.

2017-01-11 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: enforce MUIA_Text_SetMin=FALSE for all tab labels to ensure that
    too long labels can be shortened. Additionally the new text eliding feature
    will be applied to too long texts by adding a trailing ellipsis for
    shortened texts. The latter will be applied for true instances of Title
    class, but not for instances of Register class for compatibility reasons.

2017-01-09 Thore Böckelmann <tboeckel@gmx.de>

  * include/inline/graphics.h: removed the local copy again, because the tool
    chain of our build system now consists of a properly fixed version. This
    refs #319 and refs #325.
  * masterpop.c: don't call HideLayer() in the AmigaOS3 build.
  * Title.c: fixed the wrong position of the drop mark during DnD actions when
    the tabs' close buttons are enabled.

2017-01-07 Thore Böckelmann <tboeckel@gmx.de>

  * include/inline/graphics.h: added the GCC inline header file from the
    previous tool chain. This one uses correct 32bit parameter types for certain
    functions. This closes #319 and refs #325.

2017-01-04 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: changed the internal variable type for MUIA_List_DragType to the
    appropriate type for future extensions and use the available constants all
    over the place instead of fixed numbers.
  * Family.c, Group.c: allow MUIA_Family_ChildCount to be used as an alias for
    MUIA_Group_ChildCount and vice versa. This works around the wrong attribute
    usage of VPDF which is OM_GET'ing attributes of Family class on instances of
    Group class.
  * Title.c: implemented the standard behaviour for MUIM_Title_Close to remove
    and the dispose the given tab object as well as its corresponding page
    object. Before this had to be implemented by the application itself what
    actually defeats the purpose of such a method. Along with the changes done
    for Group class this should let VPDF behave as intended.

2017-01-03 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: removed a redundant pointer check.
  * mcc/Listtree.c: use the correct list when moving a treenode above the
    topmost treenode. This refs #322.

2017-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fall back the the normal font in case an object is forced to use a
    custom font which failed to be available.

#### 5.0-2016R3 Release ########################################################

2016-12-16 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: use the dedicated list access functions to iterate over all
    event handlers instead of doing the list access logic manually.

2016-12-12 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: use the dedicated list access functions to iterate over all
    event handlers instead of doing the list access logic manually.
  * Application.c: use the dedicated list access functions to iterate over all
    input handlers instead of doing the list access logic manually.
  * StripIntuiMessages.c: use the dedicated list access functions to iterate
    over all messages instead of doing the list access logic manually.
  * mcc/ListtreeName.c: use the dedicated list access functions to iterate over
    all tree nodes instead of doing the list access logic manually.

2016-12-11 Thore Böckelmann <tboeckel@gmx.de>

  * masterpop.c: handle duplicate IDCMP_MOUSEMOVE messages during Drag'n'drop
    operations in the same way as Window class does.

2016-12-10 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: obtaining the following IntuiMessage by peeking ln_Succ
    either directly or indirecly using GetSucc() is a very bad idea, especially
    if the debug kernel of AmigaOS4 is in use which deliberately trashes the
    ln_Succ and ln_Pred fields. Now a safe method has been added which cannot
    suffer from such side effects. Thanks to Sebastian Bauer for the hint.

2016-12-09 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: use the GetSucc() function to peek the following IntuiMessage
    and check for NULL pointers.

2016-11-27 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c: fixed a possible NULL pointer access. This fixes YAM bug #649.

2016-11-22 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c, List.c: simplified the notification trigger mechanism.

2016-11-15 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c, Text.c: do a relayout in case the Cycle object's entries array is
    changed. This refs #320.
  * Cycle.c: trigger a notification if setting MUIA_Cycle_Entries caused an
    adjustment of the active entry. This refs #320.
  * List.c: corrected the notification trigger when toggling the visibility of
    a column.

2016-11-14 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c, Text.c: setting MUIA_Cycle_Entries now correctly refreshes the
    cycle object while either keeping the current item active or displaying the
    new item restricted to the number of items. This closes #320.

2016-11-02 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: include the current task's name in the stack warning message.
    This makes the program identification easier in case MUI is used in patches
    (i.e. MagicASL) where the fixed application name ('MagicASL') has no
    connection to the dynamically executing task.

2016-10-26 Jens Maus <mail@jens-maus.de>

  * misc: adapted all Makefiles and sources to support our new OS3/m68k cross
    compile suite we are now using. This includes compilation with "-mcrt=clib2".
    In addition, sources had to be adapted to support changes in the included
    NDK of the cross compiler toolchain.

2016-10-05 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/Install-MUI: install the french catalog as well. This closes
    #317.

2016-10-03 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/Install-MUI: bumped the current library version to 21. Otherwise
    updating an existing MUI5 installation will result in a false warning about
    trying to overwrite a newer version with an older one. This closes #316.

#### 5.0-2016R2 Release ########################################################

2016-09-19 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: when setting MUIA_List_Title a title bar relayout is done if and
    only if a really new title string is set. This fixes the resized to minimum
    width columns of SongPlayer. This refs #311.

2016-09-15 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Listview.c: slightly optimized the multiselection of entries.

2016-09-07 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: reset the remembered font pointer to NULL during MUIM_Cleanup
    instead of _font(obj).

2016-09-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: added some more debug output to the internal functions
    MUIP_Setup() and MUIP_AskMinMax() in case there is no valid render info
    structure. This refs #307 and refs #309.
  * Settings.c: do an artifical MUIM_Setup before MUIM_AskMinMax to determine
    fixed height edit groups. Without the MUIM_Setup the MUIM_AskMinMax might
    do illegal memory accesses. This refs #307 and refs #309.

2016-09-02 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Title.c: Title class now enforces a fixed event handler priority
    if a different priority than the default priority is requested.

#### 5.0-2016R1 Release ########################################################

2016-08-17 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed a possible NULL pointer access. This refs #194.
  * List.c, demos/ElidedText.c: reenabled the FIW shortcut for the title's
    FIXEDWIDTH option. Since this option is deprecated the demo application now
    uses MINWIDTH and MAXWIDTH with fixed pixel widths instead.

2016-08-16 Thore Böckelmann <tboeckel@gmx.de>

  * Notify.c: ensure a living object during notification handling. This makes it
    possible to have a notification call MUI_DisposeObject() for the current
    object without causing crashes by accessing just freed memory.
  * List.c: there is no need to cause an asynchronous notification for the edit
    object's MUIA_String_Acknowledge anymore, now that the object can be safely
    disposed during its notification handling.

2016-08-15 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed a potential NULL pointer access.
  * List.c: fixed a potential double removal of the edit object.
  * List.c: fixed a crash when the edit object was disposed from within its own
    notification handling.

2016-08-12 Thore Böckelmann <tboeckel@gmx.de>

  * demos/Animals.c: removed a superflous debug output.
  * List.c: fixed a NULL pointer access in MUIM_List_Display in case the
    internal MUIV_List_DisplayHook_StringArray hook is used.

2016-08-08 Thore Böckelmann <tboeckel@gmx.de>

  * include: updated SDI headers to their latest version.
  * String.c: declared some functions as static to fix some warnings of GCC5.

2016-07-19 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: implemented support for all special list and node values for
    MUIM_Listtree_Exchange. This refs #244.
  * dist/Listtree.doc: added the missing descriptions of some method results.

2016-07-18 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: implemented MUIM_Listtree_Exchange.
  * mcc/Listtree_mcp.c: use the new methods for the sample tree object instead
    of the old hooks.

2016-07-14 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed the broken text marking for read-only objects, i.e. the
    result text object of NetInfo-II. This closes #306.

2016-07-13 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree_mcp.c: removed the superflous Listview object.
  * mcc/Listtree.c: replaced the internal construct/destruct/display hooks by
    proper methods.
  * mcc/Listtree.c: replaced all direct hook calls by invocations of method
    which eventually call the respective hooks.

2016-07-12 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: reopening the "About MUI" window now updates the list of loaded
    classes.

2016-07-08 Thore Böckelmann <tboeckel@gmx.de>

  * dist/Listtree.doc: removed some "not yet implemented" special values which
    definitely are implemented.

2016-07-07 Thore Böckelmann <tboeckel@gmx.de>

  * Mccprefs.c: implemented the yet unimplemented unregistering of gadgets.

2016-07-04 Thore Böckelmann <tboeckel@gmx.de>

  * Volumelist.c: fixed a potential "use after free" kind of bug.

#### 4.0-2016R2 Release ########################################################

2016-06-30 Thore Böckelmann <tboeckel@gmx.de>

  * Frameadjust.c: fixed a long standing bug which caused one builtin frame to
    be unavailable for selection.

2016-06-23 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: added support for the appendix "px" for the MINWIDTH and MAXWIDTH
    parameters to enforce a fixed size column. It is recommended to prefer this
    approach over the formerly implemented FIXWIDTH parameter.

2016-06-21 Thore Böckelmann <tboeckel@gmx.de>

  * Filepanel.c: show the "between" cursor for non-empty file names only.

2016-06-16 Thore Böckelmann <tboeckel@gmx.de>

  * Fontdisplay.c, Fontpanel.c: separated the font preview object into a
    separate class.

2016-06-15 Thore Böckelmann <tboeckel@gmx.de>

  * locale/serbian.po: added (currently empty) serbian translation.

2016-06-14 Thore Böckelmann <tboeckel@gmx.de>

  * Filepanel.c: made lots of formerly private attributes public and added some
    appropriate documentation for them.
  * Area.c: implemented MUIM_Relayout.
  * Title.c: make use of MUIM_Relayout instead of a custom implementation.

2016-06-13 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: implemented MUIM_Dirlist_Rename, MUIM_Dirlist_SetComment and
    MUIM_Dirlist_SetProtection.
  * flushimagespace.c: added separate tool to flush all currently unused images
    for MUI's image cache. The return code will be 0 if at least one image was
    flushed and 10 otherwise.
  * List.c: implemented the standard multi column hooks.

2016-06-12 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: made MUIA_DoubleClick public.

2016-06-10 Thore Böckelmann <tboeckel@gmx.de>

  * Datamap.c, Dataspace.c: implemented MUIM_Datamap_Get and MUIM_Dataspace_Get.
  * Dataspace.c: implemented MUIA_Dataspace_Count.
  * Title.c: made MUIA_Title_Clickable public.

2016-06-09 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented MUIA_List_Editable.
  * List.c: implemented the additional row/column variables for the methods
    MUIM_List_Compare and MUIM_List_Display.
  * List.c: implemented MUIA_List_TitleArray and MUIA_List_MaxColumns.
  * List.c: reversed the call sequence of hooks and their corresponding methods,
    i.e. MUIA_List_Construct_Hook and MUIM_List_Construct. The methods are
    preferred now and the hooks are called as fallbacks instead of vice versa.

2016-06-01 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented MUIM_List_Edit, MUIM_List_CreateEditObject and
    MUIM_List_EditDone for inline editing of list entries.
  * List.c: trigger notifications for MUIA_List_ShowColumn and
    MUIA_List_HideColumn whenever their visibility state changes.
  * Area.c: explicitly check whether the active object border really needs to be
    drawn or not before eventually drawing it.

2016-05-26 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: the minimum dimensions of a scrollbar in the window's border only
    affect the window's minimum size, not its default and maximum size. This
    fixes the invisible "About MUI" window contents in certain situations.

2016-05-24 Thore Böckelmann <tboeckel@gmx.de>

  * all: bumped all versions to 21 and use 5.0 as release version.
  * Textdata.c: implemented Textdata.mui. This makes it possible to use
    aribtrarily encoded text instead of ISO8859-1 encoded text only. The
    conversion is done by codesets.library.
  * Family.c, Group.c: implemented MUIM_Family_Reorder and MUIM_Group_Reorder.
  * Title.c: implemented MUIA_Title_OnLastClose.
  * List.c: implemented MUIA_List_HideColumn, MUIA_List_ShowColumn and
    MUIA_List_SortColumn as well as SORTABLE and ORDER title format options.

2016-04-21 Thore Böckelmann <tboeckel@gmx.de>

  * Bitmap.c: getting MUIA_Bitmap_RemappedPens now does the pen allocation on
    the fly even on truecolor screens. This fixes the wrong line colors of
    Listtree.mcc's Padiavolo style.

2016-04-13 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: implemented a simple check for AfAOS in combination with the
    upcoming AmiKitX. If this combination is found to be active then no window
    border size workaround is applied. This should finally fix all the issues
    with gadget-less windows, like the splash windows of YAM and IBrowse.

2016-04-12 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed some issues with MUIA_String_Integer and wrong clamping of
    the value which resulted in invalid font sizes in Fontpanel.mui.

2016-04-11 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, mastergfx.c: removed the AfAOS/VisualPrefs specific workaround for
    predicting the window border sizes of gadget-less windows. Instead MUI now
    always assumes symmetrical top and bottom border sizes, which in fact is
    correct when examining the corresponding values of the opened window.

2016-04-09 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: use GetGUIAttrs() to obtain the default window border sizes
    instead of peeking the values from the screen structure in the AmigaOS4
    build.

2016-04-06 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: the previous attempt to respect the minimum dimension of a window
    border scrollbar in the window size requirements did not obey the fact that
    the window contents could be larger already an extended the requirements
    nevertheless. This resulted in an additional spacing on both sides which
    could not be removed by resizing the window. Only the amount of pixels
    exceeding the contents minimum size must be respected instead. This closes
    #302.

#### 4.0-2016R1 Release ########################################################

2016-03-31 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: setting MUIA_Listtree_Active to the same value twice no
    longer triggers a double notification. Furthermore the active treenode is
    correctly remembered now. This closes #296 again.
  * mcc/Listtree.c: fixed an ancient bug which caused MUIM_Listtree_GetEntry to
    return invisible tree nodes even if MUIV_Listtree_GetEntry_Flags_Visible was
    specified to respect visible tree nodes only. Thanks to Andreas Falkenhahn
    for the hint.

2016-03-30 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: add an artificial vertical spacer in case an edit page has a
    fixed maximum height to allow the main window of MUI prefs to be fully
    resizable.
  * Makefile: build libmui.a dynamically and include it in the release
    archives for the AmigaOS3 build.
  * mcc/Listtree.c: setting MUIA_Listtree_Active no longer triggers duplicate
    notifications when setting the active list item. This closes #296.

2016-03-29 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: added support for the MUIV_Listtree_GetEntry_Flags_Visible
    flag of MUIM_Listtree_GetEntry.
  * mcc/ListtreeName.c: fixed a possible NULL pointer access.

2016-03-25 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: allow a custom pen allocation precision for the image dithering
    process.
  * mcc/GIFAnim.c: added support for the custom pen allocation precision.

2016-03-24 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/GIFAnim.c: fixed the broken AmigaOS3 build on our build server.
  * Popmenu.c: fixed the wrong position calculation for submenus. These were
    always placed at slightly shifted positions.

2016-03-23 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: specify the size of the invisible dragbar and size gadgets'
    instance data for the MakeClass() call. This was missing before and might
    cause trashed memory in case the methods GM_GOACTIVE and GM_GOINACTIVE are
    called or might read data from invalid memory locations in case the method
    GM_HITTEST is called.
  * mcc/GIFAnim.c: added a missing MUI_Redraw() call.

2016-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/GIFAnim.c: added a native reimplementation of GIFAnim.mcc.

2016-03-19 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: explicitly disable the automatism to split menu title strings like
    "Q\0Quit" into the shortcut "Q" and the menu title text "Quit". This is
    already done by MUI itself and causes invisible title texts in case single
    character strings are used with Intuition's new menuclass. This closes #295.

2016-03-08 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: it is now possible to set the "inactive" background with
    MUIA_Background during OM_NEW. String.mui will no longer enforce
    MUII_StringBack as background if a different background is set explicitly.

2016-02-15 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: abort event handling in case the attached list object signals an
    "eaten" event. This fixes the inconsistent list cursor movements of MagicASL
    depending on whether the file list or one of the string objects is the
    window's active object.

2016-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: in case MUI_Redraw() is called from within input.device's
    device task an alert will be put up instead of a requester. This is
    necessary, because the requester would cause an immediate system freeze
    as it requires input handling by input.device to be closed. However this
    input handling cannot happen, because the requester function will not
    return before the requester is closed. Thanks to Ján Zahurancík for the
    hint.

2016-02-09 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, mastermisc.c, Title.c: implemented a private clipping rectangle to
    restrict possible draw operations of nested objects to a certain area. This
    fixes the "out of place" throbber animation of Odyssey and Title demo for
    certain combinations of layout and vertical tab position.

2016-02-08 Thore Böckelmann <tboeckel@gmx.de>

  * classes.mib: let the Autodocs reflect the fact that MUIA_List_MinLineHeight
    is OM_SET'able.

2016-02-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: recursive invokations of MUIM_Draw are forbidden for objects
    with active doublebuffering. This fixes certain redraw problems of
    TextEditor.mcc while keeping Date.mcp working. This refs #221.

2016-02-03 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c, Cclist.c: the list of loaded custom classes now contains an
    additional column which shows the class' ABI (68k or PPC). This closes #291.

2016-02-02 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeinc.c: strip CR characters just like LF characters are stripped.
  * mcc/mccinit.c: added missing LF characters in debug statements.

2016-02-01 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: converted the change state check into a separate function to make
    it more convenient to use. This function checks the object and its parent
    object to an active change state. This refs #289.

2016-01-30 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: MUIA_Group_Forward will be ignored (again) when setting
    MUIA_Disabled, because nested objects must not be enabled while any of
    their parent objects is disabled. This closes #288.

2016-01-24 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: setting the active page of a paged group does the graphical update
    only if the group is not currently in "change state" initiated by the
    MUIM_Group_InitChange method. This refs #289.

2016-01-21 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c, Scrollbar.c: don't forward MUIA_Pressed to nested objects. This
    refs #267 and closes #286.

2016-01-19 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollbar.c: OM_GET'ing MUIA_Pressed now returns the prop object's true
    pressed state.
  * Scrollbar.c: simplified the object creation a bit.

2016-01-15 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Prop.c: turned some special methods of Winscroller.mui to obtain
    certain information from a border scrollbar into real attributes to be
    obtained by OM_GET.
  * Window.c: respect the dimensions of the scrollbars in the window's border to
    avoid them being drawn over other window gadgets when the window is resized
    to its minimum size.

2016-01-12 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: enabled double buffering. This does not yet completely avoid the
    flickering when having to handle lots of tabs, but at least it reduces it a
    little bit.

2016-01-11 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: the "Show" buttons now toggles to a "Hide" button to hide the
    custom class list. This closes #171.

2016-01-05 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: changed the default list cursor colors for the AmigaOS3
    build back to 3 different colors to let people distinguish between the 3
    modes. This refs #285.

2016-01-03 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Hyperlink.c: fixed a check for workbench.library that was never opened
    at all due to the lastest change.

#### 4.0-2015R4 Release ########################################################

2016-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the graphical glitch upon a redraw when the title object is
    contained in a virtual group. This refs #281.

2015-12-28 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: implemented MUIA_ContextMenuHook to provide a hook function to
    return a context sensitive popup menu object. This closes #284.

2015-12-27 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Hyperlink.c: openurl.library and workbench.library are now opened on
    demand only instead during class initialization. This cures the system
    freezes when Hyperlink.mcc/Urltext.mcc is first used by Scalos prefs. This
    closes #283.

2015-12-20 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: added the missing "§NOTILING=1" extension to the image specs
    for the AmigaOS4 build. This refs #253.
  * String.c: implemented MUIA_String_InactiveContents as known for the 3rd
    party class BetterString.mcc. This attribute allows to let the string object
    display an alternative text in case the normal text contents are empty.

2015-12-19 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollgroup.c: reworked the scrollbar setup to correctly respect scrollbars
    in the window border and automatically shown/hidden scrollbars. This refs
    #280 and closes #281.
  * Scrollbar.c: added the new attribute MUIA_Scrollbar_IncDecSize to define the
    amount by which the scrollbar's position is increased or decreased whenever
    one of the arrow buttons is clicked. This closes #282.

2015-12-16 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: simplified the opacity handling when opening the window a bit.

2015-12-14 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollgroup.c: the scrollbars are no longer added during OM_NEW, as this will
    use the dimension information of the virtual group which are not yet
    available in that situation. Instead the scrollbars will be added/removed
    during MUIM_Layout only. This closes #280.
  * masterreq.c: slightly changed the definition of MUIV_Requester_Image_None
    to leave some space for future flags like MUIREQ_XYPOS. The former value is
    still supported for compatibility reasons.

2015-12-10 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: implemented MUIA_Window_Opacity.

2015-12-02 Thore Böckelmann <tboeckel@gmx.de>

  * Palette.c: use an event handler instead of the deprecated MUI_RequestIDCMP()
    and MUI_RejectIDCMP() functions.
  * Boopsi.c: use an event handler instead of the deprecated MUI_RequestIDCMP()
    and MUI_RejectIDCMP() functions.
  * demos/Class3.c: use an event handler instead of the deprecated
    MUI_RequestIDCMP() and MUI_RejectIDCMP() functions.

2015-12-01 Thore Böckelmann <tboeckel@gmx.de>

  * misc: added Autodocs for several formerly undocumented functions (i.e.
    MUI_Layout() and MUI_LayoutObj()) which are definitely required for custom
    classes.

2015-11-24 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: replaced the softlink resolve process by non-deprecated function
    calls in the AmigaOS4 build.

2015-11-23 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: call the optional edit hook for Backspace and Delete key presses
    as well. Furthermore the SGWork structure is initialized with more details
    now (i.e. LongInt) and there is a faked StringInfo structure, too. Following
    actions like SGA_NEXT/PREVACTIVE are also supported now. Please note that
    there is still lots of stuff missing in comparison to how these structures
    are used by Intuition. Just let us know what else is required. This closes
    #275.
  * String.c: call the edit hook for cursor movements. This refs #275.
  * String.c: call the edit hook when setting new contents. This refs #275.
  * misc: consistently use the FIB_IS_#?() macros of dos.library when checking
    for entries being a file or a directory.

2015-11-18 Thore Böckelmann <tboeckel@gmx.de>

  * classheader.c, misc: allow zero sized instance data structs to save some
    memory.
  * mcc/mccinit.c, misc: allow zero sized instance data structs to save some
    memory.
  * Group.c, mcc/Popplaceholder.c: moved the workaround for handling of
    notifications for MUIA_String_Contents of Popplaceholder.mcc to the now
    existing native implementation. This makes it possible to setup and kill
    notifications of MUIA_String_Contents directly on a Popplaceholder object
    instead of having to get the embedded string object first.

2015-11-02 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: objects with an explicitly set fixed size (i.e. by MUIA_FixWidth)
    are now kept at this size even if the surrounding group enforces all child
    objects to always have the same size (i.e. due to MUIA_Group_SameSize set to
    TRUE). This makes it possible to have a fixed size spacing in a row of
    equally sized buttons. This closes #271.
  * Window.c: added a "Help" item to invoke the application's online help
    without the need of the Help key. This closes #272.

2015-10-28 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: don't allow text marking either by keyboard or program control for
    objects with enabled secret mode. This closes #270.

2015-10-27 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Hyperlink.c, mcc/Hyperlink_mcp.c: Hyperlink objects now have a bubble
    help by default which shows the same help text as the sample Hyperlink
    objects in MUI prefs.

2015-10-26 Thore Böckelmann <tboeckel@gmx.de>

  * flushmui.c: enhanced the tool to flush single classes from memory only.

2015-10-25 Thore Böckelmann <tboeckel@gmx.de>

  * Menudisplay.c: handle the title of wrongly created menus in the same way as
    Popmenu.mui does and try to retrieve the title by MUIA_Menuitem_Title
    instead of by MUIA_Menu_Title if the latter fails. This fixes the broken
    embedded menus of FPSE and closes #269.

2015-10-23 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Popplaceholder.c: don't dispose the string class ahead of the object,
    because at that time are still alive instances of that class. This fixes the
    crashes of SimpleMail when opening the settings window.

2015-10-22 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: added some explicit checks for NUL bytes instead of relying on
    the supplied text byte length only when calculating the text's graphical
    dimensions. This closes #262.
  * mastertext.c: split the concatenation of certain ESC sequences in two
    strings, to avoid stuff like "\336" interpreted as character 222 instead of
    ESC+6.
  * mcc/Busy.c: fixed the "Knight Rider" style fading which started over too
    early.
  * Group.c, doc/Group: added some special value definitions for the attributes
    MUIA_Group_HorizCenter and MUIA_Group_VertCenter for convenience. This refs
    #264.

2015-10-21 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Busy_mcp.c: set the sliders' default value to the corresponding
    settings' default value. This refs #265.
  * Slider.c: reworked the "default value on double click" feature once more to
    to the actual reset only if the current value is not already the default
    value. This refs #265.
  * Slider.c: do the "default on double click" action only if the knob hasn't
    moved right before. This closes #265.

2015-10-20 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollbar.c: forwards triggers of MUIA_Pressed of the embedded Slider object
    to the Scrollbar object itself to be able to consistently detect clicks and
    releases of the slider knob. This closes #267.

2015-10-19 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Busy.c: reworked the fade color calculation. The former approach used
    unshifted 32bit color values which led to wrong colors. This closes #268.

2015-10-18 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: implemented a private attribute to enforce generating a full
    font spec for applications which use this spec outside MUI's scope. This
    spec will always contain the font name and an absolute size, no matter what
    font and size was selected. This closes #266.
  * Floattext.c: reworked the wrapping process to use a private renderinfo
    pointer rather than a private rastport pointer as the latter is not used at
    all any more. This refs #262.

2015-10-15 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: reworked the handling of MUIA_Text_Contents during OM_NEW to not
    overwrite this attribute by TAG_IGNORE to avoid triggering a notification as
    this cannot happen in OM_NEW at all. This closes #263.

2015-10-12 Thore Böckelmann <tboeckel@gmx.de>

  * masterclass.c: added object lifetime control in MUI's rootclass
    reimplementation.

#### 4.0-2015R3 Release ########################################################

2015-09-28 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: implemented handling of MUIV_Listtree_Insert_ListNode_Active
    in MUIM_Listtree_Insert. This was yet unimplemented and also documented to
    be not available and caused crashes if it was used nevertheless. This closes
    #257.

2015-09-23 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: reworked the tab dimension calculation to reduce the width only if
    there is not enough space. The stretching will become effective if the
    default width of all tab objects leaves enough space. Both the default and
    the minimum width override the space left after the stretching. This closes
    #241.

2015-09-18 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: added the usual check for a valid window object before adding the
    eventhandler. At least this was the location of the crash reported in #256
    although it is quite puzzling why this didn't cause any trouble all the
    years before.
  * String.c: make sure to unpush all pushed methods upon cleanup.
  * mastergfx.c: fixed a NULL pointer access when jumping to a different public
    screen in the AmigaOS3 build. The new public screen process allocates a
    renderinfo structure without an object.

2015-09-16 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: use embedded requester images instead of external ones for the
    AmigaOS3 build to avoid the typical problems with picture.datatype not
    supporting the alpha channel correctly.
  * mastermisc.c: reworked the handling of MUIA_MinWidth and MUIA_MinHeight a
    bit to respect the _subwidth(obj) and _subheight(obj) values.

2015-09-15 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: implemented an optional cleanup of unpushed methods. This
    becomes necessary if the pushed methods contains dynamically allocated stuff
    like pointers which are not freed otherwise and hence cause memory leaks.
  * Floattext.c: implemented the attribute MUIA_Floattext_KeepStyles to keep
    text styles accross paragraph boundaries.

2015-09-14 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: implemented MUIA_MinHeight and MUIA_MinWidth to enforce a certain
    minimum object dimension in a convenient way. Please keep in mind that
    creating a subclass of Area.mui and overloading the MUIM_AskMinMax method
    is definitely a cleaner way to accomplish this, especially if you intend to
    add more features than just a minimum size. This closes #254.

2015-09-13 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: added support for requester images in MUI_Request(). The image
    type can be specified by the formerly unused "flags" variable. The former
    suggested default value of zero will let MUI_Request() decide automatically
    whether to use the "Info" or "Question" style image depending on the number
    of specified buttons. This way all "old" requesters will automatically get a
    suitable image, while a specific image can be set for still developed
    applications. For AmigaOS4 the default system images located in
    SYS:Prefs/Presets/Requester will be used. For AmigaOS3 the images will be
    loaded from MUI:Images/requester. The supplied images were designed by
    Martin 'mason' Merz with explicit permission to distribute them with MUI.
    This closes #253.
  * Floattext.c: the current styles and text colors are no longer reset to
    defaults at a hard line break. This is consistent with Texst.mui. Thanks to
    Andreas Falkenhahn for the hint.

2015-09-10 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, mastergfx.c: reworked the exclusive pen handling to obtain
    only one pen per application instead of one pen per window.

2015-09-09 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: fixed a duplicate redraw of the sample button.

2015-09-08 Thore Böckelmann <tboeckel@gmx.de>

  * Panel.c, Popasl.c: remembering the current A4 m68k register to be able to
    restore it later accessed an uninizialized pointer which in turned may have
    caused crashes. The A4 m68k register is now remembered as soon as the Popasl
    object is created. This closes #248.
  * Aboutpage.c: add a spacing object below the list of obsolete files for the
    Info page of MUI prefs, but not for the global "About MUI" window. This
    closes #250.
  * mastergfx.c, mastertext.c: allocate an exclusive pen for truecolor screens.
    This makes it possible to use direct RGB pens on truecolor screens without
    having to install patches like AfAOS. This closes #245.
  * Colorring.c: make use of the new exclusive pens for the sample button.
  * mcc/Hyperlink.c: don't depend on AfAOS for RGB pens anymore.
  * Register.c: fixed the broken object creation due to the recent catching of
    "reordering" methods.

2015-09-07 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed the wrong centered group title text layout in case the title
    text is wider than the group object.
  * Title.c, demos/Title.c: the MUIM_Title_Close method was called for the wrong
    object and hence did not work as expected. However, the Title demo
    application implemented the method for the wrong class and continued to
    work. This closes #246.
  * Register.c: catch MUIM_Group_AddHead and all kinds of "reordering" methods
    like MUIM_Group_Sort to keep the embedded Title object at the head of the
    child list. This closes #247.
  * Rectangle.c: avoid redrawing the object twice when setting more than one
    attribute in one call of OM_SET.

2015-09-02 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c, mcc/ListtreeName.c: removed lots of old code for
    compatibility to AmigaOS2. AmigaOS3 is the absolute base for long now.
  * mcc/ListtreeName.c: fixed the OM_NEW method which could never have returned
    a valid object before. Did anybody use this class at all?
  * mcc/Listtree.c: reworked all list operations to use NULL pointer safe list
    access functions. This makes the code a lot more readable.
  * doc/Text/MUIA_Text_Contents: made the role of the \033p[] escape sequence to
    set the background color more clear.
  * doc/Text/MUIA_Text_Contents: documented even more yet missing escape
    sequences, i.e. \033B to enable JAM2 draw mode for custom text background
    colors.
  * mastertext.c: added support for the escape sequences \033V and \033v for
    enabling and disabling INVERSVID draw mode
  * Group.c: setting MUIA_Disabled respects possible MUIA_Group_Forward and
    MUIA_Group_ForwardDepth attributes. This makes it possible to restrict the
    OM_SET method for MUIA_Disabled to the group object only.

2015-09-01 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/MCC_Listtree.doc: fixed some very obvious typos in the old
    Autodoc. Thanks to Andreas Falkenhahn for the hint.

2015-08-31 Thore Böckelmann <tboeckel@gmx.de>

  * Register.c: implemented MUIV_Register_Titles_Frame to obtain the tabs' title
    strings from the page groups' title.

2015-08-22 Thore Böckelmann <tboeckel@gmx.de>

  * Floattext.c: fixed the MUIM_Floattext_Append method to display the new
    combined text immedately.

2015-08-20 Thore Böckelmann <tboeckel@gmx.de>

  * Image.c: implemented MUIA_Image_CopySpec to let MUI duplicate a temporary
    image spec string internally. This closes #240.

2015-08-18 Thore Böckelmann <tboeckel@gmx.de>

  * pointers.c: the AmigaOS4 build checks for successfully loaded images from
    custom .prefs files instead of successfully created pointer objects before
    falling back to the pointer images provided by intuition.library V53+.
    Otherwise the intuition images will never be used. This refs #239.
  * mcc/Aboutbox.c: restrict the window dimensions to show the most important
    parts of the credits (application title, version and copyright) only by
    default. Everything else can be made visible by scrolling down.
  * Panel.c: implemented the handling of the a4 register for the AmigaOS3 build.

2015-08-17 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: use the text's normal width as default width, even if setting the
    minimum width is forbidden (i.e. MUI_Text_SetMin = FALSE) to get as much
    text displayed as possible by default.

2015-08-14 Thore Böckelmann <tboeckel@gmx.de>

  * pointers.c: always prefer external pointer images over the ones provided by
    intuition.library and the internal ones in case they could be loaded
    successfully. This closes #239.

2015-08-11 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: reworked the "default value on double click" feature to accept
    double clicks which happen inside the knob only. If the first click happens
    outside the knob and the second one inside the knob this will be ignored.
    This closes #238.

2015-07-30 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: started to let the MUIA_Title_Newable attribute do something
    useful. This is work in progress and not yet functional.

2015-07-28 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented fixed width specification for list columns. Just insert
    something like "FIXWIDTH=42" to make a colum exactly 42 pixels wide. It is
    still possible to resize these columns manually. Double clicking on the
    column separator switches back to default column sizes.

2015-07-24 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Aboutbox.c: fixed the path construction for the icon file. Programms
    started from a shell now correctly obtain the programm's icon.

2015-07-22 Thore Böckelmann <tboeckel@gmx.de>

  * demos/NewStuff.c: splitted the NewStuff demo up into several separate demo
    applications.
  * Slider.c: reenabled the "jump to default value on doubleclick" feature.
  * Pixmap.c, mcc/Rawimage.c: added support for raw image data compressed using
    lzma.library. Currently lzma.library is supported for AmigaOS4 only.

2015-07-21 Thore Böckelmann <tboeckel@gmx.de>

  * Listview.c: restored compatibility with old versions of Listview.mui which
    allows to use Listview.mui as a container for i.e. NList.mcc again instead
    of NListview.mcc. Otherwise the NList object ends up without scrollbars,
    because Listview.mui is/was just an empty wrapper and all functionality has
    been moved into List.mui. This is an uncommon combination of classes, but
    nevertheless it should be working since it was supported in MUI 3.8.
  * Title.c: don't invalidate the drop position during MUIM_DragFinish. This
    closes #224 again. Also redraw the object only once in case the drop happens
    within the same object.
  * Application.c: added MUIM_Application_Run as an alias for
    MUIM_Application_Execute.

2015-07-17 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: added a label consisting of a single space character only
    between the "Support:" and the URL string to avoid having to insert
    artificial spaces in the translation. This closes #228.
  * doc/Window: changed the Autodocs to reflect the fact that the attribute
    MUIA_Window_RootObject is mandatory and must not be omitted during OM_NEW.
    This closes #227.
  * Aboutpage.c, copyright.h: all binaries now carry a release name like
    4.0-2015R2 in their version string. This release name will also be shown on
    MUI's Info page and in MUI's About window to make it easier to tell which
    release exactly is installed.

2015-07-15 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: always remove an added dropmark object in MUIM_DragFinish to make
    sure that it is made invisible again no matter where the dragged object
    is dropped eventually.
  * Window.c: trigger an initial notification for the window's active state
    right after opening it. this is required by Odyssey to correctly track the
    last active window. This closes #224.

2015-07-14 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: remove all frame spacings and reset all images to the internal
    vector images in case the window becomes too large for a screen.

2015-07-13 Thore Böckelmann <tboeckel@gmx.de>

  * muiprog.h: lowered the required version of some libraries to V37 and V38.
    This closes #225.

2015-07-12 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: added some more checks to prevent accepting unwanted D&D actions
    from other objects.
  * Title.c: fixed the first wrong layout of the dropmark object due to using
    its width before it is actually calculated.

2015-07-10 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed a possible NULL pointer access when dragging a tab between
    different objects. The dropmark object must be created during OM_NEW instead
    of just when the D&D action starts. This refs #224.

2015-07-09 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: draw a dashed frame instead of the standard raised frame in
    case a bitmap frame is to be displayed on a colormapped screen.

2015-07-08 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: setting MUIA_List_Title after OM_NEW now correctly sets up the title
    buttons' dimensions. This fixes the missing title bar in Popplaceholder.mcc.

2015-07-06 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/mccinit.c: use the usual MUI debugging framework for *.mcc classes, too.
  * mcc/Popplaceholder.c: added a native reimplementation of Popplaceholder.mcc.
    This closes #219.

2015-07-02 Thore Böckelmann <tboeckel@gmx.de>

  * Prop.c, Slider.c: fixed the redrawing of the knob at wrong positions when
    mixing scroll actions by moving the knob directly and clicking above/below
    it. The former did not correctly set the MUIA_Numeric_Value attribute and
    hence the knob was drawn at the wrong position in case a click above/below
    the knob happened after a direct movement. This refs #175 and closes #223.

2015-07-01 Thore Böckelmann <tboeckel@gmx.de>

  * libheader.c: lowered the required version of mathieee#?.library from 39 to
    38 to let MUI run on plain AmigaOS3.1 again. This closes #222.

#### 4.0-2015R2 Release ########################################################

2015-06-30 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/NumericList.c: make the entry set by MUIA_NumericList_Current the active
    one whenever the list contents are changed.

2015-06-29 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: catch recursive invokations of the MUIM_Draw method. This
    causes garbled display of objects with active double buffering. This closes
    #221.
  * mcc/ColorSlider.c: added a native reimplementation of ColorSlider.mcc.

2015-06-25 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: lowered the default object size from 300x300 pixels to 200x200.
    This closes #218.

2015-06-24 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: completely reworked the title objects' size and frame handling.
    This closes #215.
  * mcc/Hyperlink_mcp.c: use a plain memory allocation plus snprintf() to set up
    the example text instead of asprintf(). This refs #208.
  * mcc/Hyperlink.c: restore the original URI string in case following it via
    URL-Handler failed, otherwise openurl.library will get a URI string it
    cannot handle. This refs #208.

2015-06-22 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Window.c, popcommon.c: remember the "config update active"
    state at application level instead of object level. This refs #176 and
    closes #217.
  * Title.mui: removed some artificial handling of even/odd height values which
    caused a horizontal line to be left visible for certain frame images. This
    closes #214.

2015-06-20 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Hyperlink.c: show an error message in case following an URI fails due
    to URL: being unavailable or openurl.library failed to open.
  * Imagespace.c: don't restrict image effects to ARGB images. This closes #209.

2015-06-18 Thore Böckelmann <tboeckel@gmx.de>

  * locale/MUI.pot: removed the artificial line breaks of all bubble help texts
    to allow MUI to do the user configurable reformatting automatically.
  * Window.c: added some more frame settings to the range of adaptable frames to
    archive a smaller window.
  * mcc/Hyperlink.c: forget any hover state which might still be active from a
    time before when the object becomes visible again.
  * mcc/Hyperlink_mcp.c: changed the color label alignment. This refs #208.

2015-06-17 Thore Böckelmann <tboeckel@gmx.de>

  * mui.h, doc/Area: enhanced the MUIM_TextDim autodocs and made some former
    private macros to extract the single dimensions values public.
  * Frameadjust.c: splitted the internal frame display into two double lines
    instead of just one double line. This refs #188.
  * Backgroundadjust.c: move all objects to manipulate an external bitmap image
    below the file selector to allow a more narrow window. This refs #188.

2015-06-10 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/NumericString.c: added a native reimplementation of NumericString.mcc.
  * mcc/NumericList.c: added a native reimplementation of NumericList.mcc.

2015-06-09 Thore Böckelmann <tboeckel@gmx.de>

  * pointers.c: added support for the new mouse pointer images of AISS 4.19.
  * mcc/Urltext.c, mcc/Hyperlink.c: changed Urltext.mcc to be a binary wrapper
    for Hyperlink.mcc. Urltext.mcp is therefore considered to be obsolete.

2015-06-06 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Hyperlink.c: added a native reimplementation of Hyperlink.mcc.

2015-06-01 Thore Böckelmann <tboeckel@gmx.de>

  * doc/muimaster.doc: added a paragraph about the supported pen specs for
    MUI_ObtainPen().

2015-05-17 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c, demos/NewStuff.c: fixed wrong handling of JAM2 drawmode in
    right elided text.
  * Imagebrowser.c: flush all unused images from the global image cache whenever
    an instance of Imagebrowser.mui is disposed.

2015-05-15 Thore Böckelmann <tboeckel@gmx.de>

  * include/interfaces/muimaster.h: removed an accidentally left over additional
    interface entry. This closes #206.

2015-05-13 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c, List.c, Text.c: implemented three additional cutoff modes for
    the MUIA_Text_Shorten attributes. These shorten too long texts by inserting
    an ellipsis ("...") either at the left side, in the middle or at the right
    side of the text while omitting as many characters as necessary to make the
    text fit into the visible area. The list class has been enhanced to make use
    of this new feature, but only if this is explicitly requested. The NewStuff
    demo demonstrates the text eliding for labels and lists. This closes #199.

2015-05-11 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed wrong usage of class pointer for the MUIM_KillNotify(Obj)
    methods. This closes #205.
  * Pendisplay.c: increased the minimum size from 3 to 8 pixels.
  * demos/NewStuff.c: some modifications to get along without any internal
    methods and paths.

2015-05-09 Thore Böckelmann <tboeckel@gmx.de>

  * demos/misc: some changes for consistency.

2015-05-08 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: restored custom implementations of MUIM_KillNotify(Obj) which
    work analog to how MUIM_Notify is implemented in Group.mui. For whatever
    reason these methods existed in the original MUI 3.9 code but not in the
    original MUI4 code.
    The reason is that during MUIM_Notify a group object checks which of its
    children including itself reacts positively on GetAttr() for the desired
    attribute and then invokes MUIM_Notify for that object. However, since
    there were no implementations of MUIM_KillNotify(Obj) these methods were
    eventually executed for the original object and not for the object that
    Group class delegated the MUIM_Notify call to. Hence the notification was
    left alive, because MUI tried to remove it from the wrong object.
    The now implemented two methods fill this gap and delegate the
    MUIM_KillNotify(Obj) method to child objects in exactly the same manner
    as MUIM_Notify is delegated.
    This closes #204.

2015-04-17 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed a typo which broke the AmigaOS4 build. This closes #198
    again.
  * Popmenu.c: added some basic debug statements for BZ #9199.

2015-04-16 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: the system images (i.e. submenu marker, checkmark, etc) are now
    correctly centered vertically when external images are used. This closes
    #198.

2015-04-15 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: implemented a "render info"-less mode. This closes #196.

2015-04-14 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c, Text.c: added a function to search for certain characters
    within the real text portions of a string while ignoring any formatting
    sequences. This closes #195.

2015-04-13 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: the menu item text is now correctly centered vertically when
    external images are used. This closes #193.
  * Frimagedisplay.c: reject invalid frame specs (i.e. normal frame definitions
    like MUIV_Frame_XXX) to avoid accessing invalid pointers. This closes #192.
    Note: this is not a bug in MUI but in ancient classes whose developers
    thought they were smarter than others and simply used wrong values.

2015-04-10 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: made the MUIA_Window_DrawInfo attribute public to allow the
    NewStuff demo to be build with the public headers. This closes #189.

2015-04-07 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: changed the relayout approach after hiding/showing single tabs
    and after adding/removing the automatic close button. This refs #15.

2015-03-30 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c, Settingsgroup.c: implemented a customizable background image for
    a pressed slider knob. It defaults to the normal background image. This
    closes #187.

2015-03-27 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: fixed a double redraw of the slider during mouse movements by
    using the MUIA_Prop_Quiet attribute to prevent Prop.mui from doing any
    further update action. This possible action must only happen if the update
    is not caused by mouse movements. This closes #175.

2015-03-26 Thore Böckelmann <tboeckel@gmx.de>

  * popcommon.c, Window.c: do the automatic termination of the pop object's
    window only if there is no real time update of the configuration happening
    at the same time. This closes #184.

2015-03-24 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: create the character type check table using locale.library to
    correctly respect the system's current locale setting. This closes #182.

2015-03-23 Thore Böckelmann <tboeckel@gmx.de>

  * Register.c: implemented a custom label class which enforces a minimum width
    which leaves at least the label's first character visible. This closes
    #181.

2015-03-19 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: eliminated lots of duplicate code for drawing the tabs either at
    the top or at the bottom.

2015-03-16 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: reverted the change to always do a full relayout when a tab was
    added or removed. This refs #15.
  * Title.c: respect the automatic close button's width in the calculation of
    the number of visible tabs.
  * Title.c: the automatic close buttons are now correctly positioned for the
    bottom placement.

2015-03-12 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the wrong redraw flags after a relayout. This closes #179.
  * Title.c: slightly changed the position of the scroll buttons for bottom
    tab positioning.
  * Title.c: do the relayout after readding the temporarily removed scroll
    buttons to make sure they don't get accessed while they are not part of the
    GUI. This refs #178.

2015-03-11 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: use the tab object as parent object for the automatic close buttons
    instead of the title object itself. This fixes the wrong close button
    background in case the tab object is higher than the close button.
  * Image.c: don't redraw the object on alpha channel changes.
  * Title.c: redraw the close button in the usual way instead of forcing a
    redraw by setting the alpha value.
  * Title.c: correctly respect the close button's width for the hovering effect,
    but ignore it when determining the object under the mouse pointer. Otherwise
    the close buttons cannot be clicked.
  * Title.c: the MUIM_Title_Close method invoked by the automatically added
    close button now behaves consistent to the NewStuff demo's own close
    buttons.
  * Window.c: the window refresh type can be configured (again) now. It defaults
    to simple refresh which will redraw any newly revealed portions of the
    window instead of restoring it from an off-screen bitmap. The latter is
    faster but requires more memory. This closes #166.
  * demos/EnvBrowser.c: use the attribute MUIA_Dirlist_FilesOnly instead of
    MUIA_Dirlist_FilterDrawers. The latter will match directories against any
    accept or reject pattern and eventually accepts them which is wrong for the
    intended purpose, while the former definitely accepts files only. This
    closes #174 again.

2015-03-10 Thore Böckelmann <tboeckel@gmx.de>

  * Popstring.c: invoke the close method when the popstring object is cleaned
    up. This is consistent to how other popup objects react when they are
    cleaned up. This refs #176 but does not yet fix the invalid memory accesses
    in case there are nested opened popup objects.
  * popcommon.c: do all necessary cleanup work during MUIM_Hide instead of
    MUIM_GlobalCleanup. This closes #176.

2015-03-09 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Title: added Autodocs for Title.mui. This closes #173.
  * demos/EnvBrowser.c: use NotePad on AmigaOS4 for editing the ENV variable
    contents and removed the "-sticky" option for the AmigaOS3 build as this
    is known for GoldED as C:Ed replacement only. This closes #174.

2015-03-06 Thore Böckelmann <tboeckel@gmx.de>

  * Register.c: readded the MUIA_Text_SetMin attribute to set no minimum width
    for the tab titles. This closes #172.

2015-03-04 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: adding a second tab to a currently invisible title object (i.e. on
    a different nested title object page) with the "Hide single tabs" option no
    longer redraws that object but only performs the usual setup steps. This
    closes #134.

2015-03-03 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: slightly reworked the pen allocation.
  * String.c: for AmigaOS4 the marking pens default to the system marking pens.

2015-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: some consistency changes between top and bottom positioning.

2015-02-27 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: reworked the stretching handling to be more consistent and to avoid
    the situation that the scroll buttons appear although there is enough space
    in the unstretched case.
  * Title.c: simplified the relayout when removing the last tab or adding the
    first new tab again. Also fixed the repeated wrong cleanup of the title
    object whenever a tab was removed. This refs #170.
  * String.c, Settingsgroup.c: the colors to be used for the marking and the
    marked text can now be configured individually instead of possibly using
    some internally obtained pens which cannot be changed. This closes #145.

2015-02-26 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the wrong positioning of drop marks and scroll buttons in
    case the tabs are displayed at the bottom.
  * demos/NewStuff.c: added a cycle object to change the tabs' positioning on
    the fly.
  * Title.c: fixed the wrong background displacement for active tabs with Tab
    and Button layout when placed at the bottom.

2015-02-25 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed a typo which caused the mask pointer of the internal
    vector images to remain uninitialized. This closes #167.
  * Title.c: fixed a duplicate MUIM_Cleanup for the scroll buttons. This closes
    #168.
  * Title.c: correctly respect the currently visible tabs only during drag&drop
    operations.

2015-02-24 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: made the row layout look consistent to the other layout types.
  * Title.c: the scroll buttons now always receive an MUIM_Setup method to avoid
    a warning during MUIM_AskMinMax about non-setup objects.

2015-02-23 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Busy.c: fixed some potential orphaned pen allocations and did some
    global code cleanup.
  * masterbubble.c, mcc/Clock.c: fixed the wrong alpha blending due to a missing
    parameter for MUIM_Pixmap_DrawSection.
  * Screenmodepanel.c: don't restrict the screen's pixel size in case the "Like
    Workbench" option is active.

2015-02-22 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: made MUIM_Pixmap_DrawSection public.

2015-02-21 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: the child backgrounds are now saved/restored in a global fashion
    instead of for each draw operation. This closes #164.

2015-02-20 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: a closing Workbench screen now triggers a general image flush
    instead of a specific flush for a single screen only.
  * Text.c: let to be underlined characters specified by MUIA_Text_HiIndex use
    the same underlining technique as for MUIA_Text_ControlChar and
    MUIA_Text_HiChar for consistency.
  * Virtgroup.c, mcc/Aboutbox.c: moved the keyboard based scrollling from
    Virtgroup.mui to Aboutbox.mcc where it was originally requested for. This
    refs #125 and refs #162.

2015-02-19 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: restore the former background of a child object after it has been
    drawn to prevent the replacement image to be released too often by Area.mui.
    This refs #156.
  * Title.c: draw the internal close buttons in a consistent manner for each
    layout type.
  * Title.c: cause a redraw in case the close button image is changed.

2015-02-18 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: prefer the top left corner of an object over the bottom right
    corner when trying to make it visible.
  * Application.c, Imagespace.c: enhanced the debug output when obtaining and
    releasing images and for screen notifications.

2015-02-17 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c, Settings.c: enhanced the config prefs page setup to support
    translated names as well as internal names. The translated names will be
    visible in the page list of MUI prefs, while the internal names will be used
    to set up an image path like "MUI:Images/prefs_<page>.mi1". On the one hand
    this makes it possible to replace the page images of the internal pages. On
    the other hand this allows to provide an image for 3rd party .mcp classes
    which don't provide an internal image themselves. This closes #154.
  * Virtgroup.c: the horizontal movements caused by the keyboard adjusted the
    group's top position instead of the left position.

2015-02-16 Thore Böckelmann <tboeckel@gmx.de>

  * masterbubble.c: avoid applying the bubble help's shadow alpha blending twice
    within the hook's area.
  * masterframe.c: fixed the accidentally wrong colored normal "boring" frame.

#### 4.0-2015R1 Release ########################################################

2015-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: 24bit ILBM images are now handled as "alien" images and hence
    will be loaded by the datatypes system. That way they can be used on
    colormapped screens as well.

2015-02-12 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: fixed a bug in the ARGB line drawing function which prevented
    the last few pixels of the line to be drawn.

2015-02-11 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: reverted the RectFill() based frame drawing back to simple
    Move() and Draw() operations. This fixes the missing/wrong pixels for frames
    with rounded corners. However, this only works for 100% visible frames so
    far. Any decreased visibility will still do a RectFill() based drawing and
    hence cause wrong corner pixels. This refs #158.
  * mastergfx.c, masterframe.c, Area.c, Colorring.c: implemented a line drawing
    function which can draw arbitrary lines with alpha blended direct RGB
    colors. This finally closes #158.

2015-02-10 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c, Application.c: request a notification for a to be closed
    Workbench as well to flush the images mapped to this screen just like for
    any other screen. This refs #152 and refs #156.
  * String.c: fixed a possible wrong usage of pens due to a missing usage of the
    MUIPEN() macro.

2015-02-06 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c, Popmenu.c: obtain the required pens for colored fonts when
    having to show on colormapped screens.
  * Popasl.c: handle the attributes to control style and color selection of font
    requester.
  * mcc/Urltext_mcp.c: forbid color selection for the font, because the class
    enforces its own colors anyway.
  * Fontpanel.c: don't any spacer object below the font family list unless it is
    really required.
  * Fontpanel.c: eliminated the unneeded inherited spacing on the right side of
    the font size object. This closes #155.

2015-02-05 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: added a small safety check to ensure that raw pixmap data will
    be displayed on truecolor screens only.
  * mastertext.c: use the system SHINE pen for shadowed text and the the inner
    outlined text in case the normal text pen would be used. This is a
    compromise for systems and screens which cannot handle direct RGB colors.
    Although the result will not be the desired color one still gets shadowed or
    outlined text which can be recognized as such. This refs #149.
  * pointers.c: use the hot spot locations of the loaded pointer images without
    further modification as well as the resolution values. This closes #151.
  * mastergfx.c, mastertext.c, Area.c: objects with colored fonts will now obtain
    a pen to be able to use this colored font even on a colormapped screen. This
    closes #146. Furthermore the text engine will now fallback to the HALFSHADOW
    pen for shadowed and outlined text in case the SHADOW pen equals the TEXT
    pen. This refs #149.

2015-02-04 Thore Böckelmann <tboeckel@gmx.de>

  * pointer.c: the embedded and fixed context sensitive pointer images can now
    be replaced by external images saved by the system's Prefs/Pointer tool.
    Only the "normal" image wil be used, the "busy" image will be ignored
    completely as well as any different color settings compared to the system's
    global "normal" pointer image. Such custom pointer image files must be
    placed in "ENVARC:MUI/pointers" and must be named as "<type>.prefs", i.e.
    "link.prefs" or "northeastsouthwestresize.prefs". Currently these types are
    supported:
      alias
      cell
      columnresize
      contextmenu
      copy
      cross
      draganddrop
      eastresize
      eastwestresize
      hand
      help
      link
      menu
      nodrop
      none
      northeastresize
      northeastsouthwestresize
      northresize
      northsouthresize
      northwestresize
      northwestsoutheastresize
      notallowed
      progress
      rowresize
      scrollall
      southeastresize
      southresize
      southwestresize
      text
      verticaltext
      westresize
      zoomin
      zoomout
    This closes #151 again.

2015-02-03 Thore Böckelmann <tboeckel@gmx.de>

  * images/pointer8_hand.brush, images/pointer8_link.brush: swapped bitplanes to
    get pointer images with a more suitable coloring. This closes #151.
  * Imagespace.c: separated a flag check for truecolor and bitmap images to
    avoid loosing some state information in case a truecolor image is not
    available and the bitmap image must be used instead. This closes #152.

2015-02-02 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Register.c: added a private attribute to ensure that instances of
    the legacy register class never get any scroll buttons attached.
  * Settingsgroup.c: made the slider example text translatable. This closes
    #144.

2015-01-31 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the wrong layout of automatically inserted close buttons.
    Thanks to Andreas Falkenhahn for the hint.

2015-01-28 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: changed the default button background to use specific
    RGB values instead of pens which might not exist on certain systems and
    hence might cause strange colors to be actually used. The gauge background
    has been reverted to the same old settings of MUI 3.x for compatibility.

2015-01-26 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: changed the default popup menu position from "centered"
    to "top/left". This closes #140.

#### AmiKit8.2 Release #########################################################

2015-01-21 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: changed the drag image rastport back to a non-clipped one. Otherwise
    the bitmap will be tried to be freed twice. This closes #138.
  * String.c: use "SYS:Utilities/NotePad" as external editor on AmigaOS4 instead
    of "C:Ed". This closes #139.
  * Text.c: a to be underlined character passed by MUIA_Text_HiChar will now be
    treated like one passed by MUIA_Text_ControlChar. This has the advantage
    that the underlining does not corrupt possibly desired text styles by
    inserting artifical underline styles. Furthermore the to be underlined
    character will never be searched for in advanced features of the current
    text engine like ASCII addresses of embedded images. For example this
    happened for embedded ARGB images in MUIRoyale GUIs. This closes #133.

2015-01-19 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, List.c: removed the too wide bitmap check again and revert the
    list render code to its (almost) original state. Now everything relies on
    automatic clipping by the graphics system while using negative coordinates
    in case the list is scrolled to the right. This makes it possible to use a
    small temporary buffer again which speeds up rendering very long lines a
    lot. This refs #137.
  * List.c: create a clipped rastport for the drag image and limit its dimension
    to what can be displayed at most regardless of the current list's width.

2015-01-16 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.h: fixed a too large pen array in the muigfx.library emulation.
  * mastergfx.c: restricted the width of render bitmaps to 4095 pixels in case
    of truecolor screens. This refs #137.

2015-01-13 Thore Böckelmann <tboeckel@gmx.de>

  * demos/Class3.c: fixed the old demo application to correctly handle active
    doublebuffering. Internal and external coordinates MUST not be mixed up.

2015-01-12 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: calculate a default width in case the calculation of the minimum
    width is forbidden (i.e. MUIA_Text_SetMin is set to FALSE). This solves the
    problem of possibly invisible labels for the non-resized default layout of
    the window.

2015-01-09 Thore Böckelmann <tboeckel@gmx.de>

  * Menu.c, Menuitem.c, Menustrip.c, Window.c, demos/NewStuff.c: added support
    for the menu image as they are handled by the new menuclass class of
    intuition.library 54.6+. This makes it possible to include arbitrary BOOPSI
    images created by intuition's imageclass in both normal intuition menus as
    well as in MUI's own popup menus. See NewStuff demo for details. This closes
    #131.

2015-01-08 Thore Böckelmann <tboeckel@gmx.de>

  * Configdata.c, demos/Animals.c: make sure that the ID to the filtered by the
    MUIM_Configdata_Filter method is within the valid range for further tests.
    Otherwise the test for a valid key file might access invalid memory regions
    and hence cause crashes. This closes #129.

2015-01-07 Thore Böckelmann <tboeckel@gmx.de>

  * demos/Animals.c: fixed some typos and enhanced the custom config pages by
    automatically chosen keyboard shortcuts.
  * Menudisplay.c: added a missing initialization of the global data for an
    embedded menu strip. Without this invalid data will be accessed whenever an
    item is selected due to the missing information.

2015-01-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: object specs may be prefixed by '$' for consistency.
  * mui.h, doc/Text: updated the Autodocs of the text engine to describe the
    formerly undocumented A and O specifiers to embed raw ARGB image data and
    objects in MUI text strings.

2015-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree_mcp.h: slightly changed the default image spec. This refs #132.

2014-12-29 Thore Böckelmann <tboeckel@gmx.de>

  * misc: simplified the check for the possible usage of direct RGB pens.

2014-12-28 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: fixed a potential drawing of gradient samples using a pen
    without having allocated one before. This closes #130.

2014-12-23 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: added the missing IDCMP_RAWKEY for the event handler in the
    AmigaOS4 build. This is absolutely required when expecting the "muikey"
    field to be filled with standard MUI key codes. This closes #125 again.
  * Colorring.c: lowered the default size from 350 pixels to 300 pixels. This
    refs #130.

2014-12-22 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: obtain a private DrawInfo structure in case tbiclass is used
    and there is no valid pointer available yet. This refs #92.

2014-12-20 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: make use of a private flag for force passing of standard MUI
    key events to the eventhandler of the virtual group even if it is not the
    window's active or default object. This closes #125 again.

2014-12-19 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, Settings.c, misc: implemented a new settings item to control
    the usage of VisualPrefs to supply enhanced system pen settings. This
    setting is available for AmigaOS3 only. This closes #118.

2014-12-18 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: changed the custom WritePixelArrayAlpha() implementation to use
    a full sized buffer instead of a single line buffer. This refs #116.
  * Virtgroup.c, mcc/Aboutbox.c: added keyboard handling to all virtual groups.
    The typical up/down/left/right shortcuts will move the contents of the
    virtual group accordingly, but only if it is possible to scroll at all. This
    closes #125.
  * Imagespace.c: brush images (*.mf0/1, *.mb0/1, *.mbr) are now converted to
    ARGB data using the palette from the individual image files if they are used
    on truecolor screens. This makes it possible to always display them with the
    correct colors no matter what palette is set on the destination screen. This
    refs #118.
  * Imagespace.c: ILBM DEEP brushes get a fully visible alpha channel injected,
    otherwise they will become fully transparent because ILBM DEEP images
    consist of 24bit data only and the usual ILBM datatypes insert no visible
    alpha channel.

2014-12-16 Thore Böckelmann <tboeckel@gmx.de>

  * Frimagedisplay.c: added an additional check for invalid frame specs.
  * mastergfx.c, Pixmap.c, mcc/Clock.c: fixed the double drawing of the clock
    image on colormapped screens.

#### AmiKit8.1 Release #########################################################

2014-12-15 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: incorporate the process' stack size in the stack check as
    well. This closes #128.

2014-12-12 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: use SetRPAttrs() to set direct RGB pens only if that function
    is really found to be able to handle RGB pens. This fixes the random colors
    on AmigaOS3 systems with CyberGraphics but without AfAOS. This as refs #118.

2014-12-10 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: reverted the switch to the BZ2_bzBuffToBuff(De)Compress calls.
    These seem to cause more harm than good. This closes #114 again.

2014-12-08 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, mastermisc.c: made the warnings about a too low stack size
    and about the MUI_Redraw() task mismatch translatable.

2014-12-07 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: implemented a simple stack size check to avoid unexpected
    crashes due to loo low stack sizes. The recommended minimum stack size
    is 32768 bytes. Due to the way MUI applications are usually created a lot
    more than the default 8192 bytes of stack is required. This larger
    requirement has always existed, but still many developers don't ensure a
    large enough stack by adding $STACK cookies the the source code or by
    setting an appropriate stack size in the program's icon. This closes #123.

2014-12-06 Thore Böckelmann <tboeckel@gmx.de>

  * Bitmap.c: bitmaps smaller than 30x30 pixels and with a definite palette
    (i.e. icons of .mcp classes) are now converted to ARGB data on truecolor
    screens to allow a penless display. This closes #119.

2014-12-05 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: fixed a potential NULL pointer access.

2014-12-04 Thore Böckelmann <tboeckel@gmx.de>

  * Bitmap.c: fixed a potential "color pen" and memory leak in case the alpha
    value was changed after OM_NEW.

2014-12-01 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: make the active image object visible only if it really
    changed since the previous update. This closes #120.

2014-11-28 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: copy/cut the full contents in MUIM_Textinput_Do(Copy)Cut in case
    nothing is marked.
  * String.c: call MUIM_Textinput_DoCopyCut instead of MUIM_Textinput_DoCut for
    the context menu's "Cut" item to copy the text to the clipboard before doing
    the actual cutting.

2014-11-27 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: let String.mui behave like Textinput.mcc related to markings. This
    means that markings will be kept even if the object is going inactive. Also
    cleaned up the source and removed all references to the no longer existing
    private settings of Textinput.mcc.

2014-11-26 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed an ancient bug which prevented the rightmost spacer object in
    the title bar of lists to become wider than 996 pixels. The previous limit
    was an arbitrary number of tries to adjust the layout from the days when
    screens were much more narrow than 1280 pixels. The previous limit of 1000
    tries was suitable for small screens, but not for today's much larger screen
    sizes. This closes #115.

#### AmiKit8 Release ###########################################################

2014-11-25 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: menus with a title and too many items to be displayable with a
    single column will no longer draw the first item of the second column within
    the title area.
  * Popmenu.c: center the title text even for multicolumn menus.
  * Popmenu.c: don't reset the maximum item width when starting a new column to
    make all items equally wide.

2014-11-21 Thore Böckelmann <tboeckel@gmx.de>

  * misc: added slovakian translation.

2014-11-20 Thore Böckelmann <tboeckel@gmx.de>

  * Install-MUI: fixed the localized name of some catalog directories.
  * Install-MUI: offer the possiblility to continue the installation even if
    there are still running MUI applications. This might become helpful if it is
    too hard to detect which application refuses to terminate.

2014-11-18 Thore Böckelmann <tboeckel@gmx.de>

  * Install-MUI: in case an old MUI prefs application is found in SYS:Prefs it
    will cause no warning during the installation process if it has a project
    icon and the default tool matches "MUI:MUI". Such an icon will always point
    to the current version of the MUI prefs application.
  * Backgroundadjust.c: don't refresh the file panel after double clicking an
    entry if the path stays the same.

2014-11-17 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: added the missing initialization of the destination length
    parameter for the BZ2_bzBuffToBuff(De)Compress calls. This closes #114.

2014-11-10 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: fixed the wrong frame spec extraction for bitmap frames. This
    closes #113.

2014-11-09 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: made the title string of the "Insert text file" ASL requester
    translatable. This closes #111.
  * Colorring.c: make sure the text editor is not overdrawn by the wheel as soon
    as the mouse is moved and causes the wheel to be redrawn.

2014-11-06 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenlist.c: the list titles are now shown in plain text instead of bold
    italic text.
  * Backgroundadjust.c, Imagebrowser.c: for single image selections the selected
    image is now tried to be made visible within the scrollgroup to make it easy
    to spot it.

2014-11-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: added direct support for the pen settings of VisualPrefs if it
    is found to be running.

2014-11-04 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: integrated support of the 3rd party MuiWheel custom class to let
    that darn FreeWheel patch ignore all MUI windows. Unfortunately FreeWheel
    feeds too many input events to the system upon using the wheel which then
    in turn get misinterpreted by MUI as wheel AND cursor key events and for
    example cause all list objects to scroll and change the active item in one
    step. This is definitely wrong and unintuitive.

2014-10-31 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: rearranged the placement of the spacer objects to allow a
    fully resizable window when the Keyboard page is active. This closes #110.

#### 2014R5 Release ############################################################

2014-10-31 Thore Böckelmann <tboeckel@gmx.de>

  * flushmui.c: open muimaster.library only if it is really needed in order to
    terminate still running applications.

2014-10-30 Thore Böckelmann <tboeckel@gmx.de>

  * demos/MUI-Demo.c: added handling of CTRL-C to terminate the demo.
  * Aboutpage.c: show the bugtracker information in the global About window as
    well.
  * mcc/Urltext.c: fixed missing or wrong notifications for some attributes.

2014-10-29 Thore Böckelmann <tboeckel@gmx.de>

  * flushmui.c: all still running applications will now get the method
    MUIM_Application_ReturnID with the typical value for termination pushed onto
    their method stack before expunging all classes and muimaster.library from
    memory. This helps updating MUI within in running system.
  * Aboutpage.c: added a paragraph to report possible bugs in the bugtracker
    including a direct link to it.

2014-10-28 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c, Area.c: filling a background with either transparent/masked or
    the typical button images will now erase the background ahead of drawing the
    image to avoid unwanted remnants of former draw operations. Please note that
    this still doesn't make the button images a good choice as a background
    image, because there are further graphical issues which cannot be worked
    around for these kind of images.

2014-10-25 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: the input list frame is now used for the title buttons as well like
    it is done on MorphOS. This finally fixes all the vanishing prefs page list
    images.

2014-10-24 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: reverted some changes regarding frame settings. This might bring
    back the vanishing images in MUI prefs for certain frame combinations, but
    gives better inner column spacings.

2014-10-22 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: avoid direct accesses to the object's font pointer to determine the
    height of NULL text strings but use the normal calculation function instead.
    This closes #105.

2014-10-15 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: fixed a typo in a debug statement. This closes #104.

2014-10-13 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: removed an unused function.
  * List.c: fixed the vanishing images in MUI prefs in case the title button
    frame is set to the invisible frame and without additional spacing.

2014-10-10 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: removed a superflous method.
  * Backgroundadjust.c: removed unneeded instance data.
  * Colorring.c: fixed the missing center spot.

2014-10-09 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: made the private value MUIV_Imageadjust_Type_All for the
    background/image selection working again. Before only a color wheel was
    offered, although the usual image browser was initialized in the background
    but was kept invisible. Now it is possible to open a requester to let the
    user choose from all available image types. Please keep in mind that certain
    images are *NOT* suitable for every purpose. For example the normal button
    images should not be used for a background. The reason is that most of these
    images have transparent regions and using them for a background will cause
    graphical corruption by left over artifacts after a resize. This finally
    closes #103.

2014-09-29 Thore Böckelmann <tboeckel@gmx.de>

  * Gauge.c: don't draw the inner indicator if the frame becomes too narrow and
    draws across itself.

2014-09-20 Thore Böckelmann <tboeckel@gmx.de>

  * Datamap.c, Objectmap.c: fixed the wrong types of of the autolock attributes.

2014-09-08 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: free the mask plane after the dither process again in case
    there are no transparent pixels.

2014-09-05 Thore Böckelmann <tboeckel@gmx.de>

  * flushmui.c: Don't access the library's chaining pointers after probably
    having it expunged. This is guaranteed to cause invalid memory accesses.
    This closes #93 again.

2014-09-04 Thore Böckelmann <tboeckel@gmx.de>

  * Screenmodepanel.c: don't show a bubble help because of invalid screen sizes
    in case the object is disabled due to a non-available screenmode.

2014-09-03 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: reverted a change which caused attached lists to swallow most of
    the key presses and hence to causes attributes like MUIA_String_Acknowledge
    to cease to work. This closes #96.

2014-09-02 Thore Böckelmann <tboeckel@gmx.de>

  * flushmui.c: added a NULL pointer check for the library ID string. This
    closes #93.

2014-08-30 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Calltips.c: fixed a wrong check for a successfully opened window.

2014-08-21 Thore Böckelmann <tboeckel@gmx.de>

  * dist/AutoInstall: fixed the AutoInstall script to install the PSI tool as
    well.
  * flushmui.c: added a small tool to flush all active MUI libraries and classes
    from memory. This tool will be used during the installation to ensure that
    no MUI application is running which might interfere with the installation
    process by keeping certain files locked.

2014-08-20 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: setting the directory to the same path again will now reread its
    contents. This refs #84.
  * Fontpanel.c: implemented the automatic generation of font collections.
  * Imagespace.c: brush images (*.mf0/1, *.mb0/1, *.mbr) are now always remapped
    to the screen's colormap whenever they are used (again) for the first time.
    This is necessary as the screen's colormap might have changed while the
    image was not in use and hence would then be displayed with wrong colors.
    This closes #87.

#### 2014R4 Release ############################################################

2014-08-19 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: added some const keywords.

2014-08-18 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: the default drag image now shows the full contents of a line instead
    of just the visible part. This refs #72.

2014-08-16 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed a NULL pointer access in case a column title is NULL. This
    closes #83.

2014-08-15 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: changed the layout a bit to get rid of some unneeded labels.
  * List.c: correctly respect right aligned text in the rightmost column. Before
    a few pixels were cut off.

2014-08-14 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: non-clickable objects still react on mouse movements for the hover
    effect.
  * Settingsgroup.c: made the tab group non-clickable. Even the unclickable mode
    is enough to demonstrate all necessary stuff.
  * Aboutpage.c: added the URL of the development site to the About page.

2014-08-11 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: fixed completely wrong file name with trailing spaces when
    saving the favorite colors to ENV:.
  * libs/z.library: included latest z.library. This closes #82.

2014-08-06 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: made the size unit names translatable.

2014-08-01 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: apply any visual effect on truecolor screens only and only if
    the image could be loaded as plain RGB data.

2014-07-31 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the broken drag image creation. The drag images always showed
    the last selected line when dragging multiple lines and the lines always
    were shifted to the left depending on the position within the list.
  * Winborder.c: added missing variable declaration for the AmigaOS4 build. This
    closes #77.

2014-07-30 Thore Böckelmann <tboeckel@gmx.de>

  * Bitmap.c, Imagespace.c, Popmenu.c: handle interleaved bitmaps correctly in
    all situations.
  * Colorring.c: don't fade the RGB/HSV sliders on colormapped screens.

2014-07-29 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: use TBFRAMEIMAGE as basis for the screen jump image in case
    VisualPrefs is running. This refs #44.

2014-07-28 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Floattext.c: enforcing the visibility of the horizontal scrollbar
    now also works for simple single column lists.
  * Colorring.c: fixed a possible NULL pointer access. This closes #75.

2014-07-25 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: fixed an Enforcer hit for the screen jump gadget when
    VisualPrefs was running.
  * masterframe.c: don't draw any bitmap frames on colormapped screens.
  * Settings.c, locale/MUI.pot: made the error message for a failed prefs page
    creation translatable.
  * Mccprefs.c: don't enable/disable the public screen list as it is always free
    and enabling it will override any local disabling of the edit buttons. This
    closes #73.

2014-07-24 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: fixed an invalid memory access.
  * Winborder.c: derive the "winborderimage" class from "tbiclass" instead of
    "imageclass" if it is available. This makes it possible to add the yet
    unsupported screen jump image in a consistent way. This finally closes #44.

2014-07-23 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: fixed the display of dithered images on 8bit screens with
    interleaved bitmaps.

2014-07-21 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: optimized the dithering process by using a common web palette
    which offers a *MUCH* faster rendering. This closes #49 and closes #62.
  * Popmenu.c: use the usual MUIPEN() macro when using the allocated pens.
  * Colorring.c: allocate a pen for the sample buttons on 8bit screens.

2014-07-20 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: use a friend bitmap when dithering images.

2014-07-18 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: added dithering of ARGB images when drawing texts on 8bit
    screens. This refs #45.
  * mcc/Listtree_mcp.c: added proper translations for the opened/closed node
    image selection window title.

2014-07-17 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: use the calculated halfshine/halfshadow pens for the separator
    bar on colormapped screens. This finally closes #55.
  * Colorring.c: the fancy truecolor ring image will now be dithered for 8bit
    screens. This fixes the invisible color setup on colormapped screens. Please
    note that the dithering is *SLOW*, but at least colors can be modified. The
    future definitely belongs to truecolor displays.
  * Winborder.c: use the position calculation of tbimage.class in case this
    class is available.
  * mastergfx.c: slightly optimized the dithering algorithm by skipping pixels
    below the transparency threshold.

2014-07-16 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: fixed the wrong handling of the transparency for CLUT8 raw data.
  * Pixmap.c, mastergfx.c: offloaded the dithering code into a private function
    of muimaster.library.

2014-07-14 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: the Save, Test, Use and Cancel buttons at the bottom are now
    part of the TAB cycling chain. This closes #66.
  * mastergfx.c: disable any truecolor support in case CyberGraphics is not
    available. This refs #62.
  * Pixmap.c: removed duplicate BZ2_bzDecompressEnd() call.

2014-07-11 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: added a workaround for systems which have a datatype for icons
    installed. In case the icon.datatype loads the icon ahead of icon.library
    then the thumbnail icons will have no transparent background due to the way
    how icon.datatype renders the bitmap. Set ENV:MUI/Dirlist-Dirlist-NoIconDT
    to 1 to skip icon loading by datatypes.library. Please note that this will
    also disable direct loading of PNG icons by datatypes.library because these
    cannot be told apart ahead of loading them. This closes #45 again.
  * Image.c: use the default dimensions for BOOPSI images in the image browser
    instead of the minimum dimensions. This closes #57.
  * Imagespace.c: allow direct RGB image specs for truecolor screens only. For
    colormapped screens a simple pen will be allocated.

2014-07-10 Thore Böckelmann <tboeckel@gmx.de>

  * Frimagedisplay.c, List.c: apply some visual effects on truecolor screens
    only.

2014-07-09 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: don't let VisualPrefs replace the "jump to screen" button image
    because it doesn't know this image at all. This refs #44.
  * Winborder.c: ask the created image object for the image dimensions in case
    these differ from the desired dimensions. This refs #44.
  * Pixmap.c: use graphics/WritePixelArray8() to convert the dithered chunky
    data into a bitmap in case CyberGraphics is not available. This closes #42
    and closes #49.

2014-07-08 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: use the global halfshine and halfshadow pens instead of creating
    them again with just slightly different colors. This closes #55.
  * Image.c: BOOPSI images are scaled a bit larger in the image browser to avoid
    loosing too many details by keeping them as small as possible. This closes
    #52.

2014-07-07 Thore Böckelmann <tboeckel@gmx.de>

  * masterobj.c: the function to extract shortcut characters from a string now
    accepts single characters instead of string as well to avoid invalid memory
    accesses of applications or classes which definitely misobey the Autodocs
    and pass the wrong kind of thing. This closes #41.
  * Winborder.c: VisualPrefs' title bar image class is now used before falling
    back to the built in images. This makes it possible to use the skinned
    images of visual prefs. The only exception is the "jump to screen" gadget
    which unfortunately was not yet available back then when VisualPrefs was
    updated for the last time some years back.

2014-07-04 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: removed a duplicate instance data clearing.

2014-07-02 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: dynamically adding an object accepting mouse clicks to a window
    without such an object will now recalculate the accepted IDCMP events.
    Otherwise one ends up with a window which does not accept any input.

2014-06-25 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: check for bzip2.library installed in the wrong place, too.

2014-06-18 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: reworked the default RGB pen handling a bit to ensure
    that at least a pen button is selected.

2014-06-17 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: refined the workaround for WookieChat once more by doing
    a name check on the calling task. The adjustment will only happen if the
    task's name contains the text "WookieChat".
  * mcc/Listtree_mcp.c: explicitly request an image selection requester.

2014-06-16 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: partly implemented MUIA_Title_Position. Setting this attribute to
    MUIV_Title_Position_Bottom will place the tabs at the register group's
    bottom instead at the top as usual. The placement on the left or right side
    is not yet implemented and will default to top placement.

2014-06-12 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: excluded the WbMan demo from the AmigaOS4 build, because it
    references a no longer existing directory. This refs #39.
  * demos/NewStuff.c: check if certain classes can be instanciated successfully
    to ensure that certain libraries are available. This closes #39.

2014-06-11 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: refined the wrong background selection of WookieChat a
    bit more to work correctly. This refs #35.
  * tools/makeconfig.c: use a local temporary directory for the prefs gadget
    files instead of a system global one. This fixes the broken MUI3 nightly
    builds in case the temporary directory was created before by another user.
  * mastermisc.c: tasks violating the rules of MUI_Redraw() can now be ignored
    to avoid massive warning requesters with always the same contents.
  * Title.c: fixed the increasing space requirement of the object by setting a
    fixed minimum size instead of adding it. This closes #38.
  * mastergfx.c: the fixed font is now checked to be really a monospaced font.

2014-06-10 Thore Böckelmann <tboeckel@gmx.de>

  * locale/turkish.po: added turkish translation.
  * Backgroundadjust.c: added a workaround for WookieChat which uses a private
    attribute to initialize the pen adjustment which in turn caused the class to
    show the image selection instead of the pen adjustment. This closes #35.
  * Fontpanel.c: evaluate flags specified by ASLFO_Flags as well.

2014-06-03 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: implemented MUIA_Title_Closable. Setting this attribute to TRUE
    will add a clickable close button to each tab and a click on it will call
    the method MUIM_Title_Close. This closes #34.

2014-05-28 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, demos/NewStuff.c: closing the last tab will now switch the register
    group to non-paged mode to avoid graphical corruption.

2014-05-27 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Register.c: enforce some settings to be compatible to the old
    register class in respect to the group's resizability.

2014-05-26 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c, Title.c: set a correct minimum size for the title group.

2014-05-19 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: restricted the maximum line width to 8192 pixels. Larger values
    might exceed the hardware limit and will cause graphical corruption. This
    closes #30.

2014-05-18 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: implemented a wrapper for graphics/TextLength() which breaks
    down the string into small chunks to be able to handle strings which exceed
    the pixel width of 32767. This refs #30.
  * mastertext.c: implemented a wrapper for graphics/TextExtent() which breaks
    down the string into small chunks to be able to handle strings which exceed
    the pixel width of 32767. This refs #30.

2014-05-17 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: fixed the wrong size display of large files.
  * mastertext.c: replaced the O(n) calculation of fitting characters by an
    O(log n) approach. This speeds up the display of very long list lines
    by several magnitudes.

2014-05-13 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: reworked the automatic activation to accept clicks anywhere within
    the object instead of on items only.
  * Datamap.c: implemented MUIA_Datamap_AutoLock.
  * Objectmap.c: added Objectmap.mui class.
  * Dirlist.c: implemented MUIA_Dirlist_NumBytes64.
  * String.c: implemented MUIA_String_Integer64.

2014-05-10 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, mcc/Listtree.c: reverted the artifical priority bumps again and
    implemented an automatic setting of the list object as the window's active
    object upon the first click inside the list. This fixes the inaccessible
    side panels in Odyssey.

2014-05-09 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree.c: bumped the event handler's priority by the same amount as
    the event handler of List.mui. This closes #31.

2014-05-06 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: always draw complete lines, even if some parts are currently out of
    the visible area. This closes #29.
  * List.c: bumped the list's global event handler once more. A priority of +2
    is required to get called before Odyssey's browser event handler. This
    really smells like a bug in Odyssey. This refs #27.

2014-05-05 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Cycle.c, List.c, Title.c: reverted all the artificial event handler
    priority bumps. They are no longer required.
  * List.c: bumped the list's global event handler priority by 2 to fix a
    massive eating of events by Odyssey's browser class. This closes #27.

2014-05-04 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: don't declare an input event as "eaten" if no tab was acutally
    clicked. This closes #26.

2014-05-01 Thore Böckelmann <tboeckel@gmx.de>

  * masterclass.c: made the class and object debugging functions reentrant by
    removing the local static buffers for the string to be printed. Now the
    functions can be used multiple times within one debug statement without
    causing any inconsistent output.

2014-04-30 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: optimized the event handler list sorting process by replacing the
    O(n) iterative node copy loop by the O(1) MoveList() call.

2014-04-09 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c, misc: reintroduced the formerly removed muigfx.library as a
    dynamically created library. This is necessary to make Voyager work again,
    because this application explicitly checks for muigfx.library to be
    available although this is a private library without public interface. This
    closes #16.
  * locale/dutch.po: pulled dutch translation from transifex.com.

2014-04-03 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: fixed another NULL pointer access when checking for possible
    bubble help texts. As it seems only IBrowse was affected and the crash
    happens only once for a running instance of IBrowse when moving the mouse
    over a link in the browser group. This closes #23 again.

2014-04-01 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: partly reverted r3343 which caused some timer based input
    handlers to fail, i.e. GIF animations in IBrowse were no longer working.
  * locale: added a new header line to the .po files to specify a correct name
    for the generated .catalog file.

2014-03-30 Thore Böckelmann <tboeckel@gmx.de>

  * locale/dutch.po: updated dutch translation from transifex.

2014-03-28 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c, Pixmap.c, misc: switched over to the renamed bzip2.library to
    avoid confusion and possible incompatibilites with bz2.library done by Jörg
    Strohmayer.

2014-03-27 Thore Böckelmann <tboeckel@gmx.de>

  * locale/dutch.po, locale/italian.po: updated dutch and italian translations
    from transifex.

2014-03-26 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c: bumped the event handler's priority by 1 to allow opening the drop
    down menu again in case the input mode is set to anything else than the
    default value. This makes the cycle buttons in Daysleeper behave normally
    again.

2014-03-21 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed the possibly invisible cursor when the object becomes active
    and the content string's pixel width is larger than the object's width.

2014-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: reverted r3347 as it caused more harm than good. This closes #23.
  * Window.c: fixed a wrong check whether a recalculation of some signals is
    necessary.

2014-03-19 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: deobfuscated the input handler node handling.
  * Window.c: deobfuscated the event handler node handling.

2014-03-18 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: don't clear the instance data of Settingsgroup.mui as this
    breaks the popup menus for the individual images. This closes #24.
  * locale/all: fixed the wrong menu shortcuts in all translations once again.
    This requires the yet unreleased version of FlexCat 2.14 to create correct
    catalogs.

2014-03-17 Thore Böckelmann <tboeckel@gmx.de>

  * dist_os4: replaced the faulty icons by proper ones. This closes #22.

2014-03-16 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Calltips.c: make sure that the popup window is moved in front of the
    parent window upon uniconification. This refs #19.
  * Window.c, mcc/Calltips.c: implemented a private attribute to control the
    window's "stay on top" behaviour. This should really make sure that the
    popup windows of Calltips.mcc can ever be placed behind any other window.
    This refs #19.

#### 2014R3 Release ############################################################

2014-03-15 Thore Böckelmann <tboeckel@gmx.de>

  * locale/all: fixed the wrong menu shortcuts in all translations.

2014-03-14 Thore Böckelmann <tboeckel@gmx.de>

  * all: explicitly clear the instance data of all created objects. Although
    this is something which should be done by rootclass of intuition.library
    already it seems that the MUNGE kernel option reveals some uninitialized
    memory in certain situations. See YAM ticket #440 for details.

2014-03-13 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the overdrawn first/last letter of a too long tab text for
    the row layout in case the inner frame spacing is less than 1 pixel.

2014-03-10 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/images/default_OS4/Popfile.mim: replaced the selected image
    by a more suitable one for file requesters (BZ #8749).

2014-03-05 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: set a fixed minimum width for the first page list column to
    avoid vanishing images (BZ #8645).

2014-03-03 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: applied the same iteration approach for EventHandlers as for
    InputHandlers.

2014-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: fixed a NULL pointer access in case MUIM_Application_NewInput
    is called recursively while the InputHandler list is still iterated through
    by the first call, i.e. by calling MUI_RequestA() as a reaction on a key
    press. This closes YAM ticket #531.
  * Window.c: fixed a NULL pointer access when repeatedly handling a bubble help
    within the same object.

2014-02-28 Thore Böckelmann <tboeckel@gmx.de>

  * dist_common/Install-MUI: fixed the source and destination path for the *.mi1
    and *.mim images. These were not copied before.

2014-02-27 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: implemented support for objects which support different bubble
    help texts at different positions, i.e. the page list of MUI prefs. This
    avoids the necessity to move the mouse outside and back inside the object
    just to get a different bubble help.

2014-02-26 Thore Böckelmann <tboeckel@gmx.de>

  * prefs.c, psi.c, demos/demo.h: ensure a minimum stack size of 64K for all
    demos and applications.
  * mcc/Calltips.c: fixed the GUI lockup in case the application was uniconified
    with a Calltips object being opened. This refs #19.
  * Pixmap.c, mcc/Clock.c: implemented MUIA_Pixmap_TransparencyThreshold to
    modify which partly transparent pixels will stay transparent when dithering
    32bit ARGB data to 8bit CLUT data.

2014-02-25 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: fixed the failing catalog creating due to the new PO files and
    forced the generation of locale.c to be non-parallel.
  * mcc/Aboutbox.c: make the "Ok" button the default active object to accept
    a "keyboard click" by pressing Enter. This closes #18.

2014-02-24 Jens Maus <mail@jens-maus.de>

  * locale: all catalog translations have now been moved to use the PO
    format and using the free services of transifex
    (http://www.transifex.com/projects/p/mui/).

2014-02-19 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: replaced the old crosshair pointer images for autoscrolling by
    the new object pointer images to archive a consistent look. The autoscroll
    mode will no longer be activated if the virtual group cannot be scrolled at
    all.

2014-02-18 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: any marking will be disabled when the object becomes inactive and
    is in "normal" mode. This matches the behaviour of Intuition string objects.
  * Title.c: changed to boolean hover effect setting into a percentage value. 0%
    disables the hovering effect.
  * Virtgroup.c: made the automove mouse pointer compatible to the object
    pointers again.

2014-02-17 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Settingsgroup.c, String.c: simplified the marking qualifier
    setting by using a selection group instead of having to add an ignored
    qualifier to all cursor key related shortcuts.

2014-02-16 Thore Böckelmann <tboeckel@gmx.de>

  * masterbubble.c: fall back to the old 8bit image even on truecolor screens
    in case the truecolor images cannot be created successfully.

2014-02-15 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: adapted the priority of the title buttons' eventhandler to
    allow resizing again. This closes #14.

2014-02-14 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: respect all possible qualifier synonyms when calculating the
    marking qualifiers.

2014-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: implemented keyboard based marking of the contents. For this to
    work certain qualifiers must be ignored by adding i.e. "-alt" to the key
    spec string to use any ALT key for marking. The default key specs have been
    adapted accordingly. This closes #13.

2014-02-11 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: correctly respect the current active state of the scroll buttons
    when adding or reordering tab objects.
  * Title.c: make sure that all visible tab objects receive MUIM_Show and all
    invisible tab objects receive MUIM_Hide only once to avoid possible actions
    done in these methods being executed twice.
  * Title.c, Area.c: raised the default priority of Area.mui's eventhandler by
    1. Additionally the eventhandler of Title.mui gets a default priority higher
    than that of Area.mui. This ensures that both drag&drop and scrolling
    through all tabs is working correctly for Title.mui. This finally closes #6.
  * String.c: load the key definitions of Textinput.mcc in emulation mode only.
  * String.c: excluded some more keys which don't produce printable characters
    (i.e. Home or End) from further input handling.

2014-02-10 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: borderless windows will never get a size gadget attached, because
    that also adds the zoom gadget in the window title bar. This fixes the full
    screen mode of Odyssey and thus closes #7.
  * Window.c: reworked the pointer type management to distinguish between object
    and window pointers. This closes #11.

2014-02-09 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed the garbled drag image for groups. This closes #4.

2014-02-08 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Settingsgroup.c: implemented an often requested feature to disable
    the tab hovering effect. By default the effect is off. This feature can be
    configured on the Groups page of MUI prefs. This closes #5.

2014-02-07 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c, Title.c: added a private attribute to center text horizontally. For
    example this is required for Odyssey's tab titles. This closes #3.
  * Title.c: fixed the invisible drop marks during drag&drop operations.
  * Pixmap.c: fixed the broken bubble help drawing.
  * Settings.c: added a check for a valid keyfile when saving the config. Before
    MUI always ignored the keyfile an aborted the save process early. This
    closes #1.

2014-02-06 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: perform the necessary actions for hiding single tabs only if the
    title object has executed the MUIM_Setup method before.
  * Settings.c: make sure that the current page is correctly enabled/disabled
    when switching the test mode by applying the current configuration again.
    This closes #2.
  * Pixmap.c: check for a valid renderinfo before doing the actual drawing in
    MUIM_Pixmap_DrawSection.
  * Title.c: fixed an issue which might lead to a situation that the scroll
    button object are disposed twice.
  * Title.c: hide invisible tab objects to avoid graphical corruption due to the
    throbber animation in Odyssey.

2014-02-05 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Clock.c: reworked the Clock class to use a built-in background image
    which just gets the clock hands rendered on top of it. Many thanks to Martin
    'mason' Merz for the image.
  * mcc/Clock.c: optimized the clock hand drawing a bit. However, the hour and
    minute clock hand still look slightly triangular.

2014-02-04 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Settingsgroup.c: implemented an often requested feature to hide the
    tabs completely in case only a single tab is available at all. This feature
    can be configured on the Groups page of MUI prefs.

2014-02-03 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Clock.c: removed some unused stuff.
  * Slider.c, masterframe.c: fixed a graphical glitch in case alpha blended
    frames were used on a non-gradient background. This was caused by the change
    for the frame drawing issue of Title.mui.
  * Pixmap.c: implemented a private method to read a certain pixel as ARGB
    value from the raw data.

#### 2014R2 Release ############################################################

2014-02-01 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: fixed the redraw issues in Title.mui when compositing was
    enabled. A BIG "Thank you" to Massimo Tantignone for his help!
  * mastergfx.c, masterframe.c: the frame backup bitmap is reallocated only now
    in case it needs to become bigger to cause as less overhead as possible.
  * mcc/Clock.c: added a reimplementation of Clock.mcc.
  * demos/NewStuff.c: added a demo window for Title.mui.

2014-01-29 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: reverted the change done for BZ #8614 as it made things far more
    inconsistent (BZ #8689).

2014-01-28 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Marc
    Jouault.
  * mastergfx.c, masterpop.c: use the already existing flags in muiRenderInfo()
    instead of determining certain stuff separately again for drag&drop
    operations.

2014-01-25 Jens Maus <mail@jens-maus.de>

  * locale/greek.ct: updated greek translation kindly provided by Anthony Iliakis.

2014-01-25 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: refresh the window frame in any case after adding or removing
    some gadgets. This is necessary for the built-in default theme of Intuition
    to be redrawn correctly. Other themes don't exhibit this problem (BZ #8596).

2014-01-24 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Title.c: fixed the positioning of inherited bitmaps in title
    objects.

2014-01-23 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Title.c: implemented a per-object brightness value to be able to
    support the brightness modifications required for Title.mui.

2014-01-22 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: call the display method directly instead of having to go through an
    additional hook.
  * Area.c: fixed the handling of MUIV_Font_Inherit to really inherit the font
    from the parent object.
  * Title.c: set the background images for the individual tabs instead of the
    title object itself. This fixes the wrong redrawing of transparent close
    button images within the tabs (BZ #8678).

2014-01-21 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: keep the focus on the register group during drag&drop actions as
    long as the mouse pointer is within the group.
  * Group.c: redraw the current page of a register object only if not just the
    redrawing of the group frame is requested. This speeds up the redrawing of
    register groups a bit.

2014-01-20 Thore Böckelmann <tboeckel@gmx.de>

  * masterpop.c, Title.c: make use of the MUIF_DRAGIMAGE_SOURCEALPHA flag for
    drag images.

2014-01-19 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: added more NULL pointer checks for the drop mark object (BZ #8618).
  * tools/mkrelease.sh: provide a header file with a definition of MUI_NewObject
    which is compatible to the use of __USE_INLINE__ and MUI's typical spaghetti
    code to create a GUI (BZ #8633).
  * List.c: handle mouse wheel events as well if the list object is the window's
    active object (BZ #8614).

2014-01-18 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.
  * Settings.c: the page list is now the active object by default.
  * Title.c: forget any previously highlighted tab index when changing the
    active tab (BZ #8647).

2014-01-17 Thore Böckelmann <tboeckel@gmx.de>

  * masterconfig.c: added MUI: as additional search path for the key file.
  * Popasl.c: restored compatibility to RxMUI again by letting the asynchronous
    process for the requester return immediately after the requester was closed.
    Before the process waited to be terminated by the close hook. Unfortunately
    RxMUI overwrites this hook with its own and hence Popasl.mui never noticed
    the closed requester and forbid opening it a second time (BZ #8643).
  * Application.c: reverted the fix for BZ #8626 as it breaks certain stuff like
    putting an application on its own screen.

#### 2014R1 Release ############################################################

2014-01-13 Thore Böckelmann <tboeckel@gmx.de>

  * locale/danish.ct: updated danish translation kindly provided by Niels Bache.

2014-01-10 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: implemented mouse hovering. The tab under the mouse pointer will be
    highlighted a bit.
  * Area.c: removed a no longer required workaround for the disabled state
    handling of Newstring.mcc.

2014-01-09 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: optimized the disabled pattern drawing a bit to make a correct
    decision whether the pattern must be drawn or not. This solves the problem
    that the pattern was not drawn in case an object within a disabled group was
    updated (BZ #8630).
  * Application.c: the application's suggested base name is also checked against
    the list of public message ports to avoid unwanted name clashes. This fixes
    the duplicate port name used by Odyssey and OWB/ReAction (BZ #8626).

2014-01-08 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2014-01-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: increased the task mismatch warning requester's timeout to 5
    seconds and included the flags value in the message.

2014-01-03 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: scroll buttons will be added dynamically to be able to cycle
    through the pages in case there is not enough room to display all tabs. This
    finally makes to possible to have an arbitrary number of tabs. Furthermore
    this should fix the crashes of Odyssey in case too many tabs have been
    opened (BZ #8618).

2014-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Menustrip.c: implemented a context menu for the new tab class to be
    able to select possibly hidden tabs more easily. This made it necessary to
    let the menustrip class create titleless popup menus.

2013-12-28 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: implemented Drag&drop of tabs.

2013-12-27 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/misc: improved all classes to return their respective version/revision
    in OM_GET. Thanks to Gianfranco "ShInKurO" Gignina for the hint.
  * Register.c: fixed the minimum width of register title texts (YAM ticket
    #490).

2013-12-26 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2013-12-25 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c fixed the initial wrong tab layout for Odyssey's tabbed browser
    group (BZ #8612).

2013-12-23 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: fixed the one pixel too high drawing of certain bitmap frames.
  * Title.c: fixed some more background image issues.
  * Colorring.c: changed the notification of the RGB/HSV string objects from
    MUIA_String_Contents to MUIA_String_Acknowledge (BZ #8610).

2013-12-22 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: optimized the row striping effect for non-bitmap background images
    to speed up the list drawing (BZ #8607).
  * Register.c: set the MUIA_Group_PageMax attribute to the correct value to
    make usages of the old register class working properly again (BZ #8608).
  * Title.c: enabled the GUI mode for the event handler to make it possible to
    use several register objects within a page group at the same coordinates.
    This makes the registers in YAM's config window working again. Thanks to
    Thomas Claus for the hint.

2013-12-21 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: avoid to draw the tab objects twice after a page change.

2013-12-20 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: use a backup bitmap to assist the drawing of (partly)
    transparent frames.
  * Title.c: fixed the last remaining issues of drawing tabs with transparent
    frames.

2013-12-18 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: don't do any horizontal centering if there is no space left.
  * Register.c: don't enforce and minimum/maximum size for the title texts.
  * Register.c: enforce equally sized tabs like with the old class.
  * Title.c: fixed a wrong aligned background image for Buttons and Tabs
    layouts.

2013-12-17 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: adapt all visible fonts instead of just a few to attempt to make
    the GUI smaller.
  * mastergfx.c: obtain the fonts specs from the local config instead of the
    application's default config, because only the former might be adapted in
    case the window does not fit on the screen. Otherwise the adaption will not
    expose any visual changes and will fail for sure eventually.

2013-12-16 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: enabled text marking on demand again by implementing the private
    attribute MUIA_Text_Marking.
  * mcc/Aboutbox.c: enhanced the version string scanning so that application
    names containing spaces are correctly skipped.
  * Mccprefs.c: string objects now require the user to press the Return key to
    trigger the real time change. This makes it possible to edit font specs
    directly without the font requester. The real time change can be triggered
    by clicking the "Test" button, too (BZ #8601).

2013-12-14 Thore Böckelmann <tboeckel@gmx.de>

  * contrib: updated all contributed classes to their latest released versions.

2013-12-13 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: globally disabled the text marking feature as it causes more
    problems than it solves. The base problem is that there are two ways for an
    object to handle arbitrary user input. The MUIM_HandleEvent method might
    abort input event early which in turn prevents any further attempt to catch
    the MUIM_HandleInput method. The toolbar buttons of Odyssey suffered from
    this effect in such a way that the button were not clickable inside the text
    area or not at all if text only was used.
  * Popmenu.c: added a check for empty popup menus to avoid MungWall hits due to
    the attempt to do a zero sized memory allocation.

2013-12-12 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c, Register.c: the old register class now uses the new title class to
    build up its tabs. This lets all registers look alike no matter which class
    is used by the application.
  * dist/AutoInstall: fixed the script to copy the ReadMe.AmigaOS4 file (BZ
    #8595). Furthermore all image and frame files will be copied even if they
    existed before to ensure that updated files are correctly replaced.

2013-12-10 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.

2013-12-08 Thore Böckelmann <tboeckel@gmx.de>

  * Rectangle.c: apply the real time prefs for the bar title, too.

2013-12-05 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: made groups with a Title.mui object vertically resizable again.
  * Title.c: inactive tabs are now shifted down by one pixel.

2013-12-04 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: popup menus now get the WA_StayTop attribute to prevent them from
    being sent to the background.
  * Group.c moved the group title object positioning to the title object class.
  * Title.c, Group.c, Area.c: a BIG leap forward to a working Title.mui class.
    All kinds of layouts are working so far.

2013-11-15 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the fix for the flickering IBrowse window once again, because
    the workaround had a negative impact on MUI's prefs application. The fix
    now excludes IBrowse only from a failed list title layout (BZ #8565).

2013-11-04 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: moved the setting of the global menu strip ahead of the
    initialization of all subwindows, as these will try to get() this menu strip
    during their MUIM_GlobalSetup method (BZ #8549).

2013-10-11 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: fall back to the default font in case opening the desired font
    fails.

2013-09-25 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: erase the the attribute MUIA_Application_MenuStrip from the
    initial tag list as soon as the pointer has been remembered. Otherwise
    signle task applications would try to dispose the menu strip twice upon the
    second start as MUI tries to dispose any objects from the tag list before
    eventuall disposing the application object again. This bug has been in there
    since ages (BZ #8503).

2013-08-21 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2013-08-20 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: simplified the handling of newly added input event handlers
    while the list of installed input handlers was in use already.

2013-07-04 Thore Böckelmann <tboeckel@gmx.de>

  * Screenspace.c: obtain the default system pens from the Workbench for the
    default screen definition (BZ #8433).

2013-07-02 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed a possible negative array index which could cause secret
    string objects to loose their cursor.

2013-06-20 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: changing the product in AmigaOS4's BugZilla caused IBrowse to refresh
    the complete window instead of just the affected list objects which resulted
    in a major flicker. This was caused by a failed relayout of the list due to
    the invisible title and hence a zero title height. The failed layout will now
    cause a window refresh only if the list title is visible. Thanks for Mario
    Cattaneo for the hint.

2013-06-18 Thore Böckelmann <tboeckel@gmx.de>

  * doc/List: added the documentation of MUIV_List_Redraw_Entry.

2013-06-17 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: fixed a possible crash due to closing bz2.library and z.library
    more often than they were opened.

2013-06-14 Thore Böckelmann <tboeckel@gmx.de>

  * misc: removed all stub functions for AmigaOS4 and use function prototypes
    using the interface pointer as an explicit parameter.

2013-06-11 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c, mcc/Rawimage.c: added support for libz compression via z.library.

2013-06-07 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: center the page list images within their column.
  * List.c: correctly respect any additional frame spacing for the first and last
    column.

2013-06-06 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: prefer external images in MUI:Images over internal images. This
    makes the Animals demo work properly. External images must be named like
    "prefs_<name>.mi1", i.e. "prefs_Birds.mi1" for the Animal demo.

2013-06-04 Thore Böckelmann <tboeckel@gmx.de>

  * Slave.c: added Slave.mui class.

2013-05-31 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: make sure the window is moved into the screen's area when changing
    the window box is necessary.

2013-05-28 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: fixed the missing adjustment of the Scrollgroup object in case
    MUIA_Virtgroup_TryFit is TRUE.

2013-05-23 Thore Böckelmann <tboeckel@gmx.de>

  * Datamap.c: added Datamap.mui class.

2013-05-21 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Virtgroup.c: reworked the behaviour of MUIA_Virtgroup_TryFit to
    allow the window to adjust its size up to the screen size in case the
    virtual group becomes too big.

2013-05-20 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: use scaled font sizes based on the screen font instead of fixed
    fonts and sizes when having to shrink the window size.

2013-05-19 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: shrink some more frames when having to make a window smaller to
    fit onto the screen.

2013-05-16 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed a graphical issue with vertical separator bars.

2013-05-14 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Newstring.c: the commodity instance of Newstring.mcc now declares itself
    as "not removable".

2013-05-07 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: the 3 checkmarks to control the start of a Drag'n'Drop
    action now act like a radio button.

2013-04-29 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: make sure that the correct register title font is used for every tab
    (BZ #8360).

2013-04-25 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: in case the object went inactive due to a click outside the object
    no further handling of the click will happen now. This fixes the still
    visible cursor if an active object is outside the visible area of a virtual
    group and gets deactivated by a click outside the virtual group.
  * Backgroundadjust.c: fixed a typo in the pen help bubble texts.

2013-04-24 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: in case the object is located inside a virtual group String.mui now
    first checks if the click happened inside the group's domain before checking
    if the click happend inside the object.

2013-04-23 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: clicks outside a virtual group are no longer optimized away,
    because String.mui must receive these clicks to know when an active object
    must become inactive.
  * Settings.c: reworked the context menu handling once more to ensure that the
    menu appears only for those objects/locations that really support a context
    menu instead of letting it appear everywhere.

2013-04-22 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: always include relative sizes in fonts specs, even if they don't
    represent a size change at all (i.e. /+0).

2013-04-20 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c, Family.c, masterinit.c: removed some dead code.

2013-04-19 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: the color of the register title font is now applied, too.

2013-04-18 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: don't set an object mouse pointer for disabled objects.
  * Area.c, Window.c: enabled setting the register title font.
  * Configdata.c: let the register title font default to the current group title
    font.
  * List.c: due to the now synchronous (dis)appearing of the horizontal scrollbar
    it might have happend that a very wide list ended up with no scrollbar,
    because the decision whether a scrollbar is required or not was made a bit
    too early.

2013-04-17 Thore Böckelmann <tboeckel@gmx.de>

  * psi.c: added a replacement application for the old "Public Screen Inspector".
    This is a simple commandline tool without any GUI and just meant to open or
    close screens from MUI's public screen database from within shell scripts
    (BZ #8181).

2013-04-16 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed the wrong drag image creation for NList objects.
  * prefs.c: ensure a stack size of at least 64K for the prefs application.
  * mastermisc.c: broken dates like "18.8.0" of version strings are now corrected
    automatically.
  * Cclist.c: skip some further characters in front of the copyright string.

2013-04-11 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: use the color preset context menu within the color button
    group only.
  * List.c: allow list rows to be darkened, too, instead of being brightened only.
  * List.c: implemented row striping to enforce highlighting of every 2nd row by
    a user definable percentage.
  * List.c: apply the row brightness adjustment before printing any line text.
    Thus only the background will be modified.

2013-04-10 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed a redraw issue for simple patterns in double buffered
    objects.
  * mastertext.c: added support for TAB characters in text strings. The TAB will
    always be as wide as four space characters.

2013-04-08 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: set the horizontal scoller visiblibity in a synchronous fashion
    rather than an asynchronous fashion, because the latter might cause redraw
    issues for yet invisible and disabled list objects (i.e. lists on a
    currently inactive register tab) which require the horizonzal scrollbar as
    soon as they become visible.
  * tools/makeconfig.c: changed the slider knob frame to have equally sized frame
    spaces.
  * Imagespace.c: fixed some redraw issues with the MUII_FILLBACK2 pattern.

2013-04-04 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed a long standing redraw bug in virtual groups which occured
    only when redrawing the window contents without erasing the window back,
    which is the unchangeable default with MUI 4.0.

2013-04-03 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Marc
    Jouault.
  * Imagespace.c: fixed a redraw issue with simple patterns in virtual groups.

2013-04-02 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: temporarily remove an object from a virtual group while redrawing
    it to the drag image buffer.

2013-04-01 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: the default MUIM_CreateDragImage implementation now does a full
    redraw of the object to the drag image instead of copying the imagery from
    the screen, which might not contain the full object's area (BZ #8314).
  * mastergfx.c, Popasl.c: simplified the font inheritance once more. The fixed
    font now fulfils the same inheritance rules as the normal font.

2013-03-28 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c, mastermisc.c: fixed a redraw issue for disabled groups. It could
    have happened that a group was disabled but shown without the disabled
    pattern.
  * mastermisc.c: fixed a possible infinite recursion when having to redraw
    nested virtual groups.
  * String.c: fixed a NULL pointer access when the object is a member of a
    double buffered group.

2013-03-27 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed yet another double buffer bug which occured with sliders.

2013-03-25 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: yet another fix for non-centered images in double buffered
    areas inside virtual groups.
  * Imagespace.c: yet another fix for inherited images in double buffered
    areas inside virtual groups.
  * Winborder.c: the invisible size gadget now remembers its active state to
    ensure that the custom pointer is shown as long as the resizing action is
    in progress and even if the mouse is not hovering exactly over the gadget.
  * Window.c: swapped the order in which the current mouse object and the
    invisible size gadget are queried for their mouse pointer types.

2013-03-21 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Winborder.c: the invisible size gadget is now a true subclass of
    buttongclass. The GM_HITTEST method is used to restrict the hot area to a
    20x20 pixel area within the window frame.
  * Window.c, Settingsgroup.c: enabled the invisible window size gadget. This
    will add an invisible size gadget to the bottom right corner of resizable
    windows in case this is possible (i.e. no scrollbars in the window borders).
    To improve the visual feedback the typical resize mouse pointer will be
    shown when the mouse is located over the resize gadget.

2013-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: let MUI_ObtainPen() return the default text pen for empty pen
    specs.
  * Winborder.c, Settingsgroup.c: show a standard image button frame for the
    window border button selection.

2013-03-19 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Winborder.c: the window border gadgets can be be modified without
    having to close and reopen the window.

2013-03-18 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: notifications on MUIA_List_TitleClick are now working as expected.
    Thanks to Andreas Falkenhahn for the hint.
  * Dirlist.c: moved the title click handling to a private method.
  * Dirlist.c: treat the Date, Time and Date&Time columns as equivalent for
    sorting.

2013-03-15 Thore Böckelmann <tboeckel@gmx.de>

  * masterinit.c: trying to expunge muimaster.library with a non zero open count
    will now at least try to flush all loaded but unused images.
  * Imagespace.c, Dtpic.c: unused images loaded by Dtpic.mui are flushed from the
    cache immediately again.

2013-03-13 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: in case the mouse was moved out of an object with a custom mouse
    pointer very fast it could happen that the former custom pointer was still
    set even if there was no object below the mouse pointer. MUI will fall back
    to the normal pointer now.
  * Imagespace.c: the dimensions of multi-image images (*.mim) are now treated
    the same way as the dimensions of single-image images (*.mb0/1, *.mf0/1).
    This ensures that for example checkmark objects are not longer stretched
    vertically if they are combined in a horizontal group with a multi-line text
    label (BZ #8290).
  * Image.c: remember the background for transparent images before it gets
    replaced by the parent background and restore it afterwards again.

2013-03-12 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the wrong handling of RGB cursor font colors.
  * mastergfx.c: added a high speed memory filling function to speed up drawing
    of alpha blended lines and disabled patterns.

2013-03-11 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: fixed a possibly uninitialized context menu which could show all
    preset entries as "unnamed" instead of their real name.
  * tools/makeconfig.c: the default normal and the fixed font are no longer set
    to a specific font but will be copied from the standard screen fonts.
  * List.c: ignore the list cursor's frame spacing for read only lists (BZ
    #8289).

2013-03-07 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: the list can now be correctly sorted by time and date+time. Thanks
    to Andreas Falkenhahn for the hint.

2013-03-06 Thore Böckelmann <tboeckel@gmx.de>

  * all: rearranged the code to ensure that trying to start the final class from
    a shell does not crash.

2013-03-03 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: popup menus will now draw a true drop shadow on hi/truecolor
    screens. For color mapped screens the well known grid pattern shadow will be
    used.

2013-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Guillaume
    Boesel.

2013-03-01 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: added a missing method parameter when releasing images.
  * Imagespace.c: the closed screen notification is now done in a synchronous
    manner to ensure that the screen is kept alive as long as flushing the
    images obtained for this screen has not yet finished.

2013-02-25 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: added all available preset files to the per page/group/item
    context menu.
  * Window.c: fall back to a group spacing of 2/2 in case the window must be
    resized due to insufficient screen space.
  * mastergfx.c: in case opening a custom normal font fails MUI will now fall
    back to the screen's font before eventually failing completely.

2013-02-22 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: added the recently added MPEN_MARKTEXT to the list of
    selectable plain pens.
  * Settingsgroup.c, Popmenu.c: the text color of the active menu entry is now
    configurable and defaults to inherit the normal text pen/color.

2013-02-21 Thore Böckelmann <tboeckel@gmx.de>

  * Dtpic.c: made MUI_Dtpic_Fade public.

2013-02-20 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: don't include currently closed temporary screens from the database
    in the list of available public screens.
  * Window.c: reworked the "jump to next screen" feature to iterate over all
    opened and database defined public screens.

2013-02-19 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenpanel.c: added a missing notification to make the "public screen
    from MUI database" radio button the active one in case a screen from the
    database is selected. Otherwise the application will jump to the selected
    screen only, but saving this configuration would not respect this changed
    settings.

2013-02-18 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Screenspace.c: iconifying an application from a temporary
    public screen will make sure that the screen stays available until the
    application is finally disposed.
  * Application.c, Screenspace.c: temporary public screens will now stay in the
    database until the last application releases its reference. This makes it
    possible to iconify an application from a temporary screen and let another
    application use this screen without loosing the screen from the database
    in case the second application terminates before the first (iconfied) one.

2013-02-15 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreen.c: temporarily created public screens (i.e. by letting an
    application jump to a "new" screen) are no longer removed from the database
    when they are closed but kept until the next reboot. However, this will
    result in duplicate screens in case the "jump to new" action is perfomed
    several times by the same application.

2013-02-14 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: set a bubble help for the pen and pattern color buttons
    which shows the constant name from mui.h, i.e MPEN_TEXT, plus the pen spec.

2013-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, mastertext.c: reworked the text color handling to correctly
    respect direct RGB text colors.

2013-02-12 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: the transparency of popup windows is overridden now to enforce
    fully opaque windows.
  * mastertext.c: fixed the wrong alpha value handing when calculating the
    preparse at a certain position within a string.
  * Numericbutton.c, Pendisplay.c, Scale.c: use the normal object text color
    for Numericbutton, Pendisplay and Scale objects, too.
  * mastergfx.c, Fontpanel.c: strip any possibly left over alpha part from
    font colors to give the text engine the chance to apply its own idea of
    transparency for a text.
  * mastergfx.c: generate full RGB color pen specs when parsing the font's
    color part. This fixes the problem that trying to modify a fully black font
    color resulted in no selected color in the pen adjust window.

2013-02-06 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed a long standing bug in the text engine which caused a
    JAM2 drawmode set by the \033B sequence to stay active even if it was
    switched off by the corresponding \033F sequence but without any further
    text to be printed. This fixes the left over visible text mark after
    releasing the mouse button in case the text had been marked to the end.

2013-01-31 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2013-01-30 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: reset the number of files when changing the directory. Thanks to
    Andreas Falkenhahn for the hint.

2013-01-29 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: multi selection did not work any longer due to a wrong hook
    function definition. Thanks to Andreas Falkenhahn for the hint.

2013-01-28 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: respect a possibly existing mask plane for bitmapped icons.

2013-01-26 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.

2013-01-24 Thore Böckelmann <tboeckel@gmx.de>

  * Floattext.c: enabled automatic line height adjustment to correctly respect
    embedded which might be higher than the font's pixel size. Otherwise portions
    of the text might be clipped away. Thanks to Andreas Falkenhahn for the hint.
  * Dirlist.c: fixed the wrong chunky to ARGB conversion in case the icon's width
    was not a multiple of 16.

2013-01-23 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: for paged groups the active object will be made inactive now right
    before switching to another page to avoid leaving parts of the active object
    border visible after the switch.

2013-01-22 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: disabling an object with a dynamic and currently visible frame will
    now hide the frame, because disabled objects are excluded from mouse movement
    handling and would keep their frame otherwise.

2013-01-21 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: let DrawIconState() do the dirty work to draw an icon to a bitmap
    rather than manually converting a struct Image* into a usable bitmap.

2013-01-20 Thore Böckelmann <tboeckel@gmx.de>

  * contrib: updated all contributed classes to their latest versions.

2013-01-18 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: made the HSV slider labels translatable.

2013-01-17 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Guillaume
    Boesel.
  * Colorring.c: made the slider labels translatable.

2013-01-16 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Aboutbox.c: the version text object is now clickable and will switch
    between the version string and the build information in case the latter
    is available.
  * Backgroundadjust.c: don't show any further control objects when "same as
    window" is selected.

2013-01-14 Thore Böckelmann <tboeckel@gmx.de>

  * Menustrip.c: implemented MUIA_Menustrip_CaseSensitive.
  * mcc/Lamp.c: implemented MUIV_Lamp_Type_Size.

2013-01-13 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: made MUIA_List_Quiet OM_GET'able.
  * Window.c: made MUIA_Window_Menustrip OM_SET'able.

2013-01-11 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: use the column resize pointer when the mouse is over a draggable
    title bar separator.
  * Virtgroup.c, Group.c: implemented MUIA_Virtgroup_TryFit.

2013-01-09 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, masterpop.c: implemented MUIM_DragEvent.
  * Fontpanel.c: implemented MUIA_Fontpanel_ShowCollection.

2013-01-08 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Aboutbox.c: changed the "License" placeholder from '$' to '§' and added
    '%r' as placeholder for the string "Registered to:".
  * Group.c: implemented MUIA_Group_ForwardDepth.
  * Application.c: implemented MUIA_Application_UseScreenNotify.
  * Area.c: added MUIV_Frame_GroupTitle and MUIV_Frame_RegisterTitle.
  * masterpop.c, Window.c: slightly optimized the pointer type handling during
    drag'n'drop operations.

2013-01-07 Thore Böckelmann <tboeckel@gmx.de>

  * Floattext.c: implemented MUIM_Floattext_Append.

2013-01-03 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Window.c: simplified the object pointer handling and made it possible
    to use custom pointer images as created by pointerclass along with the fixed
    and built-in images.

2013-01-01 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Area.c: implemented custom object mouse pointer types as known
    from intuition.library. Each object might define a pointer type to be used
    when ever the mouse hovers over the object.

2012-12-31 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: setting a new text content which contains an underscore character
    will now correctly use the next character as shortcut key to be underlined.
    Note that either MUIA_Text_ControlChar or MUIA_Text_HiChar need to be
    modified as well in case the shortcut character changes.

2012-12-22 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/BetterBalance.c: save and restore non-zero weight values only to avoid
    an unresizable GUI.

2012-12-14 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.

2012-12-11 Thore Böckelmann <tboeckel@gmx.de>

  * Notify.c: fixed an ancient and quite nasty bug which would Remove() and
    FreePooled() killed notifications twice. This could happen whenever a
    notification was killed using MUIM_KillNotify(Obj) as the notification
    would not be removed immediately but only marked as "killed". During the
    next invocation of Notify.mui's OM_SET these killed notifications are removed
    and freed. However, if the previous notify node did trigger yet another
    OM_SET on the same object the notify node would have been removed and freed
    by the nested method call already and hence Remove() would be called twice for
    the same node, because when iterating over a list to be modified one must
    obtain the successor node before removing and freeing the current node. And
    this is why the first call finally Remove()s a node twice as it doesn't know
    that the second call already did this job. Thanks to Steffen Gutmann and
    Christoph Poelzl for their cooperation to locate this issue.

2012-12-10 Thore Böckelmann <tboeckel@gmx.de>

  * Notify.c: fixed a memory leak for MUIA_Window_InputEvent notifications.

2012-11-25 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: don't let MUI copy the localized label strings.
  * Pubscreenadjust.c: added a balance object between the options and the list
    of screenmodes.

2012-11-23 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, misc: added another public MUI pen for selected text. This one
    is derived from the system pen for selected text. This pen is used for
    example in String.mui or Popmenu.mui. Thus display of selected text is
    consistent to the rest of the system (BZ #8144).
  * Colorring.c: localized the default favorite colors.

2012-11-21 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c, Configdata.c: changed the default (non-adjustable) string
    text color to match the active string text color. Furthermore Configdata.mui
    will always return the default settings for these two items instead of some
    possibly old data from previous versions. Additionally these default values
    will be returned for every application instead of IBrowse only, which
    requires some special handling due to how its IBTexteditfield.ibcc class
    works (BZ #8143 and #8144).
  * Configdata.c: reworked the workaround for string backgrounds in IBrowse once
    more to only replace non-pen settings by the default values.

2012-11-19 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Urltext.c: make use of the new standard mouse pointer images of
    intuition.library V53.37.

2012-11-14 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: corrected the vertical draw offset to display as much as possible
    of the rightmost part of the string in case the cursor is within that area.

2012-11-13 Thore Böckelmann <tboeckel@gmx.de>

  * Frameadjust.c, Imagebrowser.c, Settings.c: use as less data fields as
    possible for EX_DataFields.
  * Text.c: fixed a possible memory leak.

2012-11-12 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/BetterBalance.c: added native reimplementation of BetterBalance.mcc.

2012-11-09 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc: MUI_Redraw() will now output a warning on the serial line in case
    this function was called from another task than the main application task. It
    is a general rule that MUI objects must only be operated on from the main
    application task. If a subtask has to operate on an object this must be done
    by pushing the action to the application object (MUIM_Application_PushMethod).
  * mastermisc.c: open a requester with a 3 second timeout to get more attention
    when calling MUI_Redraw() from a different task.

2012-11-08 Thore Böckelmann <tboeckel@gmx.de>

  * images: replaced the ancient 8 color image of Urltext.mcp by a new one
    kindly provided by Martin 'mason' Merz.

2012-11-07 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Urltext.c: the URL is opened upon the release event of the left mouse
    button instead of the press event now. This is a bit more intuitive and lets
    the user abort a click by releasing the mouse button somewhere outside.
  * Pubscreenadjust.c: made the color buttons a bit higher.

2012-11-06 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: don't trigger the MUIA_Window_MouseObject attribute if the mouse
    is over an object which is covered by another window.
  * mcc/Urltext.c, mcc/Urltext_mcp.c: added option to prefer the URL: device
    over openurl.library.
  * mcc/Urltext.c: added context menu for Urltext objects. CManager support is
    not yet implemented.
  * mcc/Newstring.c: added two attributes the the OM_GET method to fix a crash
    when the old 68k Newstring.mcp module is used (BZ #8125).
  * mastertext.c: restore the standard foreground and background pens after
    having drawn some text with direct RGB colors.
  * mcc/Urltext.c: disable the "Goto URL" menu item if neither openurl.library
    not the URL: device is found.

2012-11-05 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Newstring.c: added a commodities broker to globally handle menu events
    like RAmiga+C in IBrowse (BZ #8131).

2012-11-04 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Urltext.c, mcc/Urltext_mcp.c: finished native port of Urltext.mcc.

2012-10-29 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: reverted r2017 which solved certain double buffering issues but made
    MUIOWB crawl (BZ #8076).

2012-10-28 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: added some NULL pointer checks.

2012-10-26 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed a wrong pointer access (BZ #8109).

2012-10-25 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: the emulation mode now exactly distinguishes between emulation of
    Textinput.mcc and Newstring.mcc.
  * String.c: added a workaround for the URL string in IBrowse which does not
    expect the class to create a context menu on its own (BZ #8109).

2012-10-22 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Aboutbox.c: fall back to the parent process if obtaining an icon from
    PROGDIR:<task name> fails.
  * Window.c: finally fixed BZ #8048. Many thanks to Massimo Tantignone for his
    help!

2012-10-17 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Window.c: reverted recent changes for BZ #8048. These caused
    more harm than good.

2012-10-14 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: hopefully fixed BZ #8048. Many many thanks to Massimo Tantignone
    for the helpful explanation of the possible cause.

2012-10-11 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: showing the list of currently loaded custom classes will hide
    the "Show" button.

2012-10-05 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: no more limits for the number of changed config items to be
    applied immediately without closing and reopening the windows (BZ #8059).

2012-10-01 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: loading a preset now leaves the decision whether the windows
    need to be closed and reopened or not to Application.mui. If only few items
    are actually changed by the new configuration these might be applied
    seamless (BZ #8059).

2012-09-30 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: finally found the cause of the slow realtime updates when
    compositing was active. The system task ("compose.task") to do the actual
    compositing runs at priority +1 to be scheduled faster than all normal
    applications. When doing global applied realtime updates MUI switched to
    priority +2 which from then on caused the compositing task to be scheduled
    later than before. Now everything stays at priority 0 and realtime updates
    are fast again.

2012-09-26 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreen.c: a screen title bar drop shadow will no longer be overdrawn by
    the backdrop image/color/gradient (BZ #8075).

2012-09-23 Thore Böckelmann <tboeckel@gmx.de>

  * popcommon.c: pressing a popup button a second time while the corresponding
    settings window is still open will bring the window to the front now (BZ
    #8078).

2012-09-21 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Newstring.c, String.c: added a wrapper class for the old and 68k only
    Newstring.mcc class. The most important features as required by IBrowse are
    supported as far as their meaning could be derived from the header file and
    the disassembled source code.
  * mcc/Busy.c, mcc/Busy_mcp.c: fixed several mix ups between visibile and
    internal limits for the speed value. This caused IBrowse to show a non-moving
    busy bar (BZ #8067).

2012-09-20 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: changing the string cursor color no longer caused a relayout but a
    simple redraw event only.
  * Gauge.c: fixed the slightly wrong zebra effect and changed the remainder to
    be calculated only once.
  * mcc/Busy_mcp.c, mcc/Lamp_mcp.c, mcc/Listtree_mcp.c: remove config items from
    configuration if they match the default values.
  * Backgroundadjust.c: choosing the first internal image would hide the image
    selection group (BZ #8063).

2012-09-19 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: fixed the broken native build by using Unix path semantics only.
  * Aboutpage.c: added VSpace object below group of obsolete classes to allow the
    prefs window to be resized vertically (BZ #8060).
  * mcc/Lamp_mcp.c: enabled the lamp shape setting.
  * mcc/Lamp.c: implemented round borders for the bulb shape and transferred all
    the dirty pen handling work to MUI.
  * mcc/Listtree.c: get the instance data only if there is really a valid object.
  * mcc/Listtree.c: removed all the unused pre-MUI-V11 stuff.
  * mcc/Listtree.c: replaced the last strcat() calls by strlcat().

2012-09-17 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: implemented repeating slider movements if the user clicks outside
    the know like it is done on other systems.
  * mcc/Lamp.mcc: don't set a frame spec but draw the frame directly. This speeds
    up prefs changes a lot (BZ #8054).

2012-09-16 Thore Böckelmann <tboeckel@gmx.de>

  * images: replaced the ancient 8 color images of Busy.mcp, Lamp.mcp and
    Listtree.mcp by new ones kindly provided by Martin 'mason' Merz.

2012-09-16 Jens Langner <Jens.Langner@light-speed.de>

  * misc: updated build environment for GCC 4.7.x build and fixed some of the
    'warning: variable XXX set but not used' warnings popping up with GCC 4.7.

2012-09-14 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Listtree_mcp.c: localized Listtree.mcp.
  * Mccprefs.c, mcc/#?_mcp.c: added private method to automatically set unique
    shortcuts for all registered objects.

2012-09-13 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Busy_mcp.c, mcc/Lamp_mcp.c: only save config items which differ from the
    default values.
  * mcc/Lamp.c, mcc/Lamp_mcp.c: implemented the adjustable frame visibility and
    the specular highlights.
  * Application.c, Notify.c: use exec/MoveList() to move complete lists instead
    of doing this manually. MoveList() is considerably faster.
  * mcc/Busy_mcp.c: added bubble help texts to all items.
  * mcc/Listtree_mcp.c: added first version of a native Listtree.mcp.

2012-09-12 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c, Application, Aboutpage.c: merged the now obsolete class
    Settingsgroupr.mui into Settingsgroup.mui.
  * Settings.c: ignore disabled objects for context menus.
  * mcc/Busy.c: ignore the direction for "old" and "Knight Rider" style.
  * mcc/Busy_mcp.c: localized Busy.mcp.
  * mcc/Lamp_mcp.c: added first version of a native Lamp.mcp.

2012-09-11 Thore Böckelmann <tboeckel@gmx.de>

  * mcc/Busy_mcp.c: added first version of a native Busy.mcp.

2012-09-10 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: perform a deep copy of a struct IntuiMessage before replying it.
    Otherwise the menu handling functions might access invalid memory.
  * Busy.c: finished reimplementing Busy.mcc with all known styles.
  * Window.c: the faked InputEvent to let Intuition open the pull down menu now
    includes a valid timestamp.

2012-09-06 Thore Böckelmann <tboeckel@gmx.de>

  * Busy.c: added first version of a native Busy.mcc. KnightRider and StarTrek
    style are not yet working.

2012-09-05 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the redraw issues when a list object is located inside a
    double buffered group.
  * Area.c: fixed the wrong real time update of the active object's border (BZ
    #8029).

2012-09-04 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: yet another fix for gradients in double buffered areas
    (BZ #8030).
  * Imagespace.c: yet another fix for centered images in double buffered areas.

2012-09-03 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c, Area.c, Floattext.c: implemented a function to calculate the
    active styles and colors at a specific position within a text to let
    Floattext.mui keep text styles and colors even across wrapped lines.
  * List.c: read-only lists will still react on mouse wheel events instead of
    ignoring them completely.
  * Dirlist.c: use dos/CopyStringBSTRToC() instead of a handcrafted conversion
    function.

2012-09-01 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: verify that the active object still exists before trying to
    draw the active object border (BZ #8027).

2012-08-31 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: fixed a NULL pointer access when opening a public screen (BZ
    #8027).
  * mastergfx.c, Imagespace.c: fixed the drawing of gradients on double buffered
    rastports (BZ #8028).
  * doc/Area: added Autodoc entry for MUIM_DrawBackgroundParent.
  * Area.c: fixed a NULL pointer access when drawing the active object border (BZ
    #8031).

2012-08-30 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, mastermisc.c: drawing the active object border is done deferred now
    to ensure that the border does not get overdrawn again by adjacent objects.
  * Area.c, mastergfx.c: on true color screens the active object border is now
    drawn with decreasing visibility depending of the border size.

2012-08-29 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c, masterconfig.c, Settings.c: removed all shareware and keyfile
    restrictions for the AmigaOS4 build.
  * Area.c, Window.c, Settingsgroup.c: moved the active object settings onto the
    Buttons page and made the active object pen real time prefs aware.
  * Area.c, Settingsgroup.c: the border size of the active object can now be
    adjusted between 1 and 3 pixels and is drawn correctly on true color screens.

2012-08-28 Thore Böckelmann <tboeckel@gmx.de>

  * Crawling.c: added a native reimplementation of the old 68k-only Crawling.mcc
    class. It behaves exactly like the 68k version, except that it will wait for
    approx. 30 seconds before starting the crawling again from the top.
    Furthermore it forbids wheel scrolling in the crawling object as this
    contradicts the basic idea of this class.
  * Text.c: relayout the object only if the number of lines really changes. This
    fixes the flashing of the TextEditor.mcc object in YAM's write window,
    because the cursor position display is a two line text and setting the
    updated position text caused a constant relayout for every character typed
    before.

2012-08-10 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: added a workaround for the crashes when opening a popup menu
    in IBrowse 2.4 while a page has not yet finished loading (BZ #7959). Although
    IBrowse does not call MUIM_Application_Execute this method seems to have a
    bad impact on IBrowse 2.4, but not on IBrowse 2.5/beta.

2012-08-03 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: use the fixed heavy grid disabled pattern in a low color situation
    on a non-truecolor screen.
  * Menustrip.c: simplified the popmenu array termination.

2012-08-01 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: fixed a possibly wrong handling of the menu stickyness.
  * Popmenu.c: create full blown IntuiMessages when updating visible menus
    instead of a cropped and incompatible replacement thingy.
  * Frimagedisplay.c: inherited images on image buttons are now correctly
    inherited from the surrounding object's background instead of from the image
    button's background (BZ #7963).
  * Winborder.c: removed some unused variables.
  * Frameadjust.c: the jobbo/windows frames get a special height to make sure
    that the label of the "Top_Shadow.png" frame is always fully visible.
  * masterframe.c: fixed a possible corrdinate mixup when drawing bitmap frames.

2012-07-31 Thore Böckelmann <tboeckel@gmx.de>

  * prefs.c: removed the "Open" and "Append" items from the global menu as these
    are available in the context menus already.
  * Settings.c: saving a configuration will always append ".prefs" to the file
    name to ensure that the saved file will appear as a selectable preset in the
    popup menu.
  * Settings.c: added a context menu to the page list as well.
  * List.c: fixed a potential crash when adding the vertical scrollbar.

2012-07-30 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: exclude the page context menu if there is no page title, i.e. on
    the "Info" page.
  * Area.c: restored the correct handling of double buffer offsets for
    non-gradient images.
  * List.c: fixed the invisible scrollbar if the list object is used without
    surrounding listview object.
  * Settings.c: replace LFs by spaces in the context menu.

2012-07-28 Thore Böckelmann <tboeckel@gmx.de>

  * Popasl.c: fixed the spurious trashed file contents of the ASL requester. The
    former version did not copy the string's trailing NUL byte.

2012-07-26 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Listview.c: made MUIA_Listview_ScrollerPos working again.

2012-07-25 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: use GetGUIAttrsA() to query certain default GUI attributes.

2012-07-23 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: don't respect mri_OffsetX/Y when redrawing the background (BZ #7951).

2012-07-22 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: correctly handle MUIA_Listview_Input. This was completely ignored
    before.
  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2012-07-20 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2012-07-19 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: disabled objects will now redraw their frame as well during a
    simple redraw event to avoid applying an alpha blended disabled effect over
    and over again.
  * mastermisc.c: if an object inside a disabled group is to be redrawn the
    redraw procedure will be delegated to the parent group instead, because the
    drawing of the disabled effect will be done by the group and not by the
    object itself. This fixes the redraw issues of BettString.mcc objects used
    in a Popasl.mui group.

2012-07-18 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: setting a new text with a different number of lines will now cause
    a relayout instead of a simple refresh to avoid drawing outside of the
    object's bounding box.

2012-07-17 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: the first 12 buttons of a requester can now be operated directly
    using the keys F1 to F12.
  * masterreq.c: requesters with at least two buttons can now be operated using
    the cursor keys to select the active button.

2012-07-05 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, mastermisc.c: slightly changed the double buffer handling for
    drag images to not allocate a layer in this case.

2012-07-04 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, Group.c: double buffering is always done clipped now.
  * Aboutbox.c: the horizontal separator bar has a fixed height now.
  * Area.c, Group.c: fixed the slightly wrong double buffering handling in case
    the window background image was to be inherited.
  * Aboutbox.c: all texts are localizable now.

2012-07-02 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: reworked the MUI_RequestA() function to do a proper length check
    when copying the passed in strings. Furthermore the default title and button
    texts are localizable now.

2012-06-26 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: long group title strings are now shortened to not draw beyond the
    group's border.

2012-06-24 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: added one more pixel when respecting the title button's border size.
    This lets the download progress gauge of MUIOWB appear again without having
    to resize the columns.
  * Window.c: fixed the handling of MUIA_Window_NoMenus. It was a no-op before
    and if used initially it would always disable the menus no matter which
    value was passed in.

2012-06-22 Thore Böckelmann <tboeckel@gmx.de>

  * masterconfig.c: fixed trashed serial number string (BZ #7907).

2012-06-20 Thore Böckelmann <tboeckel@gmx.de>

  * prefs: use non-localized strings in case muimaster.library fails to open.
  * Screenmodepanel.c: allow adjustment of width and height even if the screen
    is told to clone the Workbench screen.
  * Area.c: redraw an object only for modified disabled settings if the object
    is disabled at all.
  * Window.c: make sure the menu item array is correctly terminated.
  * Window.c: added missing initialization of a variable which then would
    contain random values from the stack and cause crashes (BZ #7883).
  * Settingsgroupr.c: set the object's font before printing out some text as it
    might happen that the RastPort's current font was modified in the meantime.

2012-06-19 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, Screenspace.c, Pubscreenlist.c: added the "jump to new screen"
    feature. This will temporarily open a cloned Workbench screen and let the
    application jump there immediately.
  * Pubscreenpanel.c: added the custom public screen selection again, but this
    is available for custom applications only and not for the global prefs.

2012-06-18 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed the broken per group settings handling.
  * Pubscreenadjust.c: fixed the non-disabled initial color selection for cloned
    screens.
  * Popmenu.c, Settingsgroupr.c: disallow image inheritance for the popup menu's
    background and cursor.

2012-06-14 Thore Böckelmann <tboeckel@gmx.de>

  * Pendisplay.c: made the pen display truecolor aware.
  * Frimagedisplay.c, Settingsgroup.c, Settingsgroupr.c: enhanced lots of frame
    and image settings objects to show their name in the popup menu.
  * Aboutpage.c: added missing data for attribute.
  * Popmenu.c: popup menus inheriting a background or cursor image now correctly
    fall back to the default window background image.

2012-06-13 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: implemented image inheritance from the window instead of
    the parent object only.
  * Settingsgroupr.c, mastergfx.c: implemented custom disabled pattern selection.
    This is not yet exactly what MUI4 on MorphOS offers, but at least it is a
    beginning.
  * Settingsgroup(r).c: avoid copying of constant strings.

2012-06-11 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroupr.c: added a frame around the settings page and added some space
    on the bottom of the Text page (BZ #7875).
  * masterframe.c, Frameadjust.c: added two new horizontal frames and removed the
    scaling cycle button from the GUI.
  * Settingsgroupr.c: changed the layout of the Buttons page to be more flexible.
  * Settings.c: added an additional group to catch all right mouse button clicks
    (BZ #7876).

2012-05-24 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: minor changes and some extended debugging stuff.

2012-05-23 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c, Imagespace.c, Pixmap.c, ProcessPixelArray.c, masterpop.c: zero
    all temporary RastPort structures before using them.
  * Dirlist.c: use a layered RastPort with clipping to let icon.library draw
    the icon image, as it seems that DrawIconState() might trash memory outside
    the RastPort's bitmap if used  with a non-clipped RastPort.

2012-05-21 Thore Böckelmann <tboeckel@gmx.de>

  * Frimagedisplay.c, Settings.c: fixed the frame and background handling of
    the clipboard button (BZ #7831).
  * masterframe.c: invisible frames are no longer drawn at all.
  * images/tokai: included some button images kindly provided by Christian
    "tokai" Rosentreter.
  * Area.c: added a NULL pointer check when comparing frame specs during
    MUIM_UpdateConfig (BZ #7830).

2012-05-19 Thore Böckelmann <tboeckel@gmx.de>

  * contrib: updated all contributed classes to their latest versions.

2012-05-18 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: added some special handling of MUI prefs list images for the Ferox
    theme.

2012-05-16 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Group.c: reworked the group title handling to not create an
    additional group to carry the title object, but add the title object
    directly to its group (BZ #7816).

2012-05-14 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: added a NULL pointer check (BZ #7817).
  * Dirlist.c: fixed the sometimes initial wrong line height.

2012-05-10 Thore Böckelmann <tboeckel@gmx.de>

  * muiprog.h: changed the default standard frame to use a visibility of 50%
    instead of 100% (BZ #7814).
  * Settingsgroupr.c, Window.c: enabled the "disabled" setting for menus which
    will completely prevent menus from opening (BZ #7813).
  * Rectangle.c: changed the default standard frame to use a visibility of 50%
    instead of 100% (BZ #7814).
  * Settingsgroup.c, Settingsgroupr.c: fixed the remaining layout issues of BZ
    #7813.

2012-05-08 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: changes of a frame's visibility or tinting will now correctly be
    updated in realtime.
  * mastermisc.c: use MADF_DRAWOBJECT as flags value in the MUI_Redraw function
    when invoking the MUIM_Draw method, because certain classes will refuse to
    draw anything if this bit is not set.
  * Frimagedisplay.c: enabled double buffering for frame/image display buttons.
  * Pendisplay.c: enabled double buffering for pen display buttons.

2012-05-07 Thore Böckelmann <tboeckel@gmx.de>

  * Frameadjust.c: removed the vertical size limitation of the colorring object
    (BZ #7808).
  * Colorring.c: use the normal font for the RGB/HSV string object instead of the
    fixed font. This also helps to give more space to the RGB/HSV slider objects
    (BZ #7808).
  * Frameadjust.c, Framedisplay.c: reworked the internal frame specs to use
    extended coordinates. This makes one new internal frame with round corners
    possible.
  * masterframe.c: thinned the oval frame to match the other thin frames.
  * masterframe.c: added transparency masks for the internal oval and round
    frames.

2012-05-02 Thore Böckelmann <tboeckel@gmx.de>

  * Popasl.c: restrict the number of possible tag items to the documented number
    of 15.

2012-04-30 Thore Böckelmann <tboeckel@gmx.de>

  * Lamp.c: fixed a possible infinite recursion eating up all free memory. This
    closes BZ #7797.

2012-04-25 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the wrong background drawing in case a frame spacing larger
    than zero was used (BZ #7775).
  * List.c: correctly respect the frame spacing for each column instead of for
    the complete list only.
  * List.c: invoke the background drawing on the correct object, especially for
    gradient backgrounds or inherited gradient cursor images.
  * Area.c, Group.c: group title objects are now drawn right after drawing the
    group's frame. This avoids too obvious flickering during resize operations.

2012-04-20 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the wrong handling of real time prefs frame changes.

2012-04-19 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: inherited list cursor images now correctly inherit the list's
    background image instead of the surrounding group's background image.

2012-04-18 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc.c: reverted the disabled pattern change for IBrowse as it breaks
    the GUI in lots of other places in a more severe way. For the moment we'll
    have to live with invisible but disabled toolbar buttons until I find a way
    to distinguish these buttons from other regular objects.
  * Lamp.c: fixed the wrong handling of pen specs and the wrong notification of
    color type changes.

2012-04-17 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: moved the decision whether the application is AmIRC or not to a
    more appropriate place where certain required variables are guaranteed to
    contain a valid value. This should close BZ #7743.
  * String.c: added a missing NULL pointer check after an allocation.

2012-04-16 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: added a workaround for NewString.mcc as this class draws the disabled
    pattern itself.
  * mastermisc.c: added a workaround for IBrowse to not use the centralized
    disabled pattern drawing. This closes BZ #7769.
  * List.c: removed unused string when dragging single entries.
  * Frimagedisplay.c: an inherited image with a modified brightness will now be
    shown with the correctly modified brightness. This closes BZ #7773.
  * Area.c: added yet another workaround for group titles in IBrowse' config
    window.

2012-04-12 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: explicitly check for the introducing ESC character when dealing
    with preparse strings of simple strings.
  * List.c: make sure the text of dragged items really fits into the drag image's
    buffer.

2012-04-11 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the too narrow popup menu of cycle buttons.
  * Rectangle.c: fixed the wrong alignment of rectangle titles.
  * List.c: the drag image's width is now limited to the visible portion of the
    list.

2012-04-10 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the too narrow display of non-Amigakey shortcuts.
  * masterpop.c: the title of groups with titles is now correctly redrawn after
    a balancing operation.
  * Rectangle.c: fixed the wrong spacing of titles of rectangle objects.

2012-04-06 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed another wrong handling of non-NULL but empty preparse
    strings.

2012-04-05 Thore Böckelmann <tboeckel@gmx.de>

  * Frimagedisplay.c: highlight the inner area instead of the complete area
    including the frame. Repeated highlight operations would brighten the frame
    more and more on every refresh otherwise.

2012-04-04 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: removed some dead code.

2012-03-30 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: the buffer for the truecolor ghost pattern is now cached
    across multiple calls to avoid the overhead of allocating and filling
    it again and again each time.
  * Popmenu.c: the low color check to fall back to the pixel pattern ghosting
    effect is done on colormapped screens only.
  * Area.c: added new public attribute MUIA_KnowsDisabled to let classes
    override MUI's internal disabled pattern drawing in favour of a custom
    method (i.e. TheBar.mcc has a custom method to ghost its disabled buttons).
  * Application.c: added the method MUIM_Application_Execute which implements
    the ideal main loop for an MUI application.

2012-03-29 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: on colormapped screens (depth 15+) disabled objects will now
    be ghosted by a truecolor effect instead of the well known pixel pattern.
  * mastermisc.c, misc: moved the drawing of the disabled pattern up to the
    global redraw function. On the one hand this solves the fact that the
    pattern being drawn by one object might not be aligned to the pattern drawn
    of the object's parent object. On the other hand this reduces the overhead
    when drawing the disabled pattern. Finally the disabled pattern does no
    longer be "emulated" by other classes (i.e. BetterString.mcc) as the pattern
    will be applied after the object has been drawn completely.

2012-03-22 Thore Böckelmann <tboeckel@gmx.de>

  * prefs.c: removed the braindead attempt to flush memory by allocating a
    huge amount of memory.

2012-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * Argstring.c: removed some dead code and fixed a wrong output string
    generation.
  * Gauge.c: fixed handling of MUIA_Gauge_InfoRate to correctly update the
    displayed info string on every nth refresh only.
  * Fontpanel.c: fixed some warnings.

2012-03-19 Thore Böckelmann <tboeckel@gmx.de>

  * Family.c, Argstring.c: reordered a pointer check to avoid reading memory
    outside of array bounds.
  * Filepanel.c: applied the same fix as for List.mui's inline editing to
    let all key presses be handled by the panel first.

2012-03-14 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: inline editing requires the same special handling within String.mui
    as i.e. Keyadjust.mui. This closes BZ #7702.
  * Fontpanel.c: the list of available fonts is now a per-instance list instead
    of a class global list. Although this makes it necessary to reobtain the
    list for every created object it solves the issue that newly installed fonts
    are not displayed until Fontpanel.mui was flushed from memory. This closes
    BZ #7703.
  * Fontpanel.c: added a new built in font family containing scaleable fonts
    only (i.e. TrueType, Intellifont, etc).

2012-03-12 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: reverted the change to not accept empty strings in the string
    to RGB conversion function as this can cause NList to print text in wrong
    colors. This closes BZ #7640.

2012-03-10 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Area: added Autodoc entries for MUIM_Create/DeleteDragImage.
  * List.c, misc: adapted the drag image creation to use MUIM_CreateDragImage
    instead of a custom implementation which used equivalent structures anyway.

2012-03-09 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: a formerly active object will be reactivated while setting
    MUIA_Window_Sleep to FALSE only if the window is in active state at that
    time.
  * Keyadjust.c: removed no longer used string edit hook.

2012-03-08 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: slightly changed the reactivation of MUIA_Window_ActiveObject upon
    reactivating the window.
  * Window.c: added an additional NULL pointer check when trying to jump to
    another screen.

2012-03-07 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: made MUIA_List_First OM_SETable.
  * Window.c: filter MUIA_Window_DefaultObject through MUIM_FindObject on OM_SET
    and OM_GET to ensure the object is really a member of the window.

2012-03-06 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: added very primitve and basic support for string edit hooks. At
    least the edit hook in Scout's task window works with this implementation.
    Please tell me if some other application fails with this.

2012-03-05 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: fixed double buffering of slider objects.
  * Application.c: the check for AmIRC now compares the first 5 characters of
    the application's name instead of the complete name. This closes BZ #7683.

2012-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * Bitmap.c: fixed wrong handling of application specified color precisions for
    ObtainBestPen().
  * List.c: fixed swallowing of the last character in each line of Floattext
    objects.
  * ProcessPixelArray.c: handle zero width or height by returning immediately.

2012-02-29 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: make sure to unpush all pushed methods upon cleanup.
  * Slider.c: obtain the knob image during MUIM_UpdateConfig in the same way as
    during MUIM_Setup.
  * Pendisplay.c: slightly reworked the pen spec handling.
  * Imagespace.c: respect the vertical position of areas to be filled with a
    pattern to avoid pattern shifts within virtual groups.
  * Menudisplay.c: enhanced the embedded menu bar to change its background image
    to the popup menu's background image if it is TAB activated.

2012-02-28 Thore Böckelmann <tboeckel@gmx.de>

  * Balance.c: reworked the handling of MUIA_Balance_Quiet.
  * Volumelist.c: reworked to use proper list methods instead of hooks and
    translated all strings.

2012-02-27 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Panel.c, Popasl.c: the panel process now inherits the calling
    application's configuration. This makes it possible to automatically let all
    following windows appear on the same screen and let the windows share the
    same look as the current application. This closes BZ #7668.
  * Dirlist.c: the current item's thumbnail is now correctly displayed when the
    panel becomes visible for the first time.
  * Filepanel.c: toggling between volumes and an arbitrary directory no longer
    adds the VOLUMES entry twice in a row. This closes BZ #7667.

2012-02-24 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: converting colormapped data to ARGB now respects the required 16
    pixel alignment of the scaling algorithm.
  * Panel.c: don't show any additional window title buttons.

2012-02-23 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: replaced some strcpy() by strlcpy() to be on the safe side.
  * Application.c: fixed a severe memory leak which occured when popup windows
    were still open during OM_DISPOSE of the application object. These windows
    were never disposed as they tried to push a method to close the window, but
    in OM_DISPOSE pushed methods are no longer invoked and hence the windows
    would stay alive beyond the application's life time.
  * Dataspace.c: uncompressing a dataspace entry returned the old data pointer
    instead of the new one. This made Dirlist.mui's thumbnail management drive
    crazy. I really wonder why this did not cause any DSIs.

2012-02-22 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, String.c: added a workaround for Textinput.mcc's workaround
    for AmIRC's improper catching of MUIM_HandleEvent without adding an own
    event handler (yes, a workaround for a workaround). This should definitely
    be fixed in AmIRC directly. All in all this finally fixes BZ #7656.
  * Settingsgroupr.c, Window.c: embedded menus can only be shown at the window's
    top border instead of any border. Too many options are not always good...
  * List.c: use checkmarks instead of radio buttons for the title items in the
    popup menu.

2012-02-21 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: simplified setting MUIA_String_Integer. This also partly closes
    BZ #7656.

2012-02-20 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Virtgroup.c: pressing any shift key while using any scroll wheel
    will now swap vertical to horizontal scrolling. This makes navigation in
    large virtual areas a lot easier.
  * Settings.c: removed the artifical double quote from the popup menu item
    title for all settings.
  * locale: removed some unused strings.

2012-02-18 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: fixed the slightly wrong ControlChar conversion in case the letter
    does not occur exactly in the text but with a different case.
  * mastertext.c: treat non-NULL but empty preparse strings the same way as NULL
    preparse strings.

2012-02-16 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: fixed double underlining of control characters when text objects are
    created using MUI_MakeObject().
  * Window.c: disabled the automatic embedded menus on double clicking near the
    window's border.

2012-02-15 Thore Böckelmann <tboeckel@gmx.de>

  * Rectangle.c: for rectange objects with title the same alignment as for
    group titles is applied.
  * Popupmenu.c: the popup menu images now use the correct sizes of the system
    images. The former fixed sizes are used for the builtin images only.
  * Popmenu.c: fixed the color handling a bit and fixed some places where the
    value certain pens was replaced by other values which in turn could lead to
    orphaned obtained pens.
  * masterpop.c: slightly optimized the Drag'n'Drop drawing. For direct mapped
    screen no transparency mask is allocated and for color mapped screen the
    destination area is not erased before the dragged image is begin drawn.
  * Settings.c: added a popup menu to the title of each page consisting of the
    usual "reset to defaults", "reset to last saved", etc items.
  * Popmenu.c: submenus will now be displayed left of their parent menu instead
    of left of them if there is more space on the left side to display the
    submenu without covering too much of the parent menu.

2012-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * Frimagedisplay.c: use the object's inherited font color instead of the
    standard font color.
  * Fontpanel.c: don't parse the current font settings yet another time on
    OM_GET.
  * Popmenu.c: the popup menus now use the system menu images if possible.
  * mastertext.c: enable direct RGB color mode if either text or outline color
    is no simple pen.

2012-02-12 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: fixed a crash caused by accessing the render info structure
    after closing the panel window.
  * Popasl.c: make sure the font panel object is disposed.

2012-02-10 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroupr.c, Window.c, Popmenu.c: reworked the menu prefs page to be
    consistent with all other prefs pages.
  * Popmenu.c: removed a duplicate GetScreenDrawInfo() call.
  * mastergfx.c: the fixed font style is inherited from the normal font as well.

2012-02-08 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: include the plain marker (/n) only if there is any style to be
    reset at all.
  * mastergfx.c: non-system styles (shadowed, outlined) are now remembered in a
    private structure to be able to apply them whenever needed. Unfortunately
    custom classes using own fonts cannot benefit from these additional styles,
    because the system structures cannot carry the additional style flags.
  * Window.c: reworked the immediate font change to perform the update only if
    the font can really be opened.

2012-02-07 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c, Fontpanel.c: the outline color is now correctly marked by a
    leading "/C" instead of "/c".
  * Fontpanel.c, mastergfx.c: fixed a logical flaw in the font inheritance if
    the normal font is to be inherited from the application's screen.
  * Fontpanel.c: choosing a different font than the default font now results in
    an absolute font size.
  * Popasl.c: obtain the final font spec once only.
  * Area.c, Window.c: changing a font will now update all objects immediately.
  * Fontpanel.c, Popasl.c: the font panel get the already parsed default font
    params instead of an unparsed font spec passed in. This has the advantage
    that even custom class prefs modules will correctly inherit the default
    font. This means that only the normal font will inherit the screen's font.
  * Fontpanel.c: include "/n" only if there is anything to reset to plain style.

2012-02-06 Thore Böckelmann <tboeckel@gmx.de>

  * Popasl.c: the font panel now correctly handles any initital ASL attributes.
  * Fontpanel.c, Settingsgroup.c: modifying the normal font on the "Windows"
    page will fall back to the screen's font if anything is to be inherited.

2012-02-05 Thore Böckelmann <tboeckel@gmx.de>

  * Fontpanel.c: don't close the panel when double clicking a font.
  * Popasl.c: the font requester now correctly remembers the window dimensions
    between two calls.
  * Popasl.c: terminate font panels on MUIM_Hide.

2012-02-03 Thore Böckelmann <tboeckel@gmx.de>

  * Popasl.c: dumped the custom process creation and use a Process.mui object
    instead.
  * Fontpanel.c: fixed handling of relative font sizes if a default font is
    given.
  * Popasl.c, Panel.c: Fontpanel.mui class is now used instead of ASL font
    requesters. This might be inconsistent with the rest of the system, but this
    step is necessary to fully support font inheritance, the additional font
    styles and the text coloring feature. By default the text color defined on
    the "Windows" page of MUI prefs will be used for all text unless this is
    overridden by custom font colors.

2012-02-02 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: added missing initialization of default font color specs.
  * Area.c: added missing initialization of default font colors.
  * Rectangle.c: use internal text engine for title texts.
  * mastergfx.c, misc: added a globally inhertiable default font description.
    This makes it possible to inherit the default font, size, style and color in
    every place.
  * mastergfx.c, Fontpanel.c: implemented "plain" font style which resets any
    inherited font styles. This makes it possible to have "topaz/8/b" (i.e.
    topaz.font, size 8, bold) as default font and get an italicized and non-bold
    topaz font of the same size using "/n/i".
  * Fontpanel.c, Penadjust.c: localized all strings.
  * Fontpanel.c: reworked style inheritance. For example take "topaz/8/b" as
    default font. Now bold style cannot be modified directly anymore, because
    bold style is inherited from the default font. However, adding "plain" style
    now has the contrary effect and will disable bold style, because the "plain"
    style will disable all inherited styles.
  * Fontpanel.c: clicking on a size entry in the font list will switch back to
    absolute mode.
  * tools/makeconfig.c: tweaked to default config to display the group titles in
    red color instead of black to match OS4's default look.
  * mastertext.c: fixed RGB color handling in case a preparse sequence is used.

2012-02-01 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c, Settings.c: cycle buttons and the preset button now use the same
    font as all other button objects.
  * masterbubble.c: use the already obtained bubble help font which is obtained
    in any case instead of opening the same font once again.
  * Group.c: the title of dynamically added subgroups is now correctly created
    and layouted in the same way as for statically created groups.
  * Scrollbar.c: fixed a typo which prevented wheel scrolling from working as
    expected.
  * Pubscreen.c: always obtain the background image, even if none is given.

2012-01-31 Thore Böckelmann <tboeckel@gmx.de>

  * all: replaced all atol() calls and handcrafted "hex to integer" conversions
    by calls to strtol().

2012-01-30 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c: removed some pre-V50 code which is no longer useed on AmigaOS4.

2012-01-25 Thore Böckelmann <tboeckel@gmx.de>

  * dist/AutoInstall: adapted AutoInstall script to copy the default_OS4 image
    set as well.
  * Popasl.c, mastergfx.c: reworked the font popup object to correctly handle
    relative font sizes (i.e. "/-2"). Please note that on successful return of
    the ASL font requester any font size will be converted into an absolute
    size value.
  * Configdata.c: added a check for the global configuration to not accept any
    changes to the public screen definition. This is only possible for local
    configurations. Before just marking any custom screen on the "Screen" page
    and modifying any other setting would let the MUI prefs magically jump to
    that formerly selected screen.

2012-01-24 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: fixed cycle chain handling in virtual groups. Before objects in a
    virtual group but outside the visible area would have been excluded from
    cycling through them.
  * String.c: fixed an out of buffer access in case the initial text was longer
    than the default maximum string length of 79 characters.
  * Screenmodepanel.c: don't forward MUIM_HandleEvent to the screen mode list if
    that object is disabled.
  * Settingsgroup.c: changed the drag qualifier objects to plain string objects
    as simple qualifiers cannot be handled by Keyadjust.mui.

2012-01-23 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: adapted some size limits a bit to let the dots style look a bit
    better.
  * Imagespace.c, Imagebrowser.c: added internal popfont vector image.

2012-01-20 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Title.c: fixed the disappearance of title objects when their group
    was disabled or otherwise redrawn in certain situations.

2012-01-19 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: allow *.mi1 type images.
  * Configdata.c: avoid upgrading of configs when windows are snapshotted.
  * Backgroundadjust.c: the brightness sliders now show a "+" character if the
    brightness is to be increased to match the image display's percentage
    display.
  * Title.c: draw a disabled pattern in case the destination object is disabled.
  * Popstring.c: added a check to embed the popup button if and only if the
    string object's class is String.mui. Other classes (i.e. BetterString.mcc)
    might not handle the embedding process too well.

2012-01-18 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: added a lowmemory handler to flush all unused images in a low
    memory situation.
  * Application.c, Configdata.c, Settings.c, masterconfig.c: fixed the automatic
    settings upgrade. The former method tried to upgrade even up-to-date configs
    and reverted any new setting to default values.
  * Configdata.c: inheriting a master config object also inherits the version
    number.

2012-01-17 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: added the "Settings" button which pops up a list containing all
    available preset files along with some common entries to modify all setting
    items.
  * demos/Animals.c: added Animals demo application.
  * masterconfig.c: reading any prefs file will automatically upgrade all old
    and outdated settings to current ones.
  * Imagebrowser.c: enabled support for old BOOPSI images again, but only if the
    file name meets the typical conditions, i.e. is named arrow_up.image for an
    upward arrow image.

2012-01-16 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenpanel.c: changing the public screen for a custom application will
    now jump to the selected screen immediately.
  * Pubscreenadjust.c, Pubscreenpanel.c: fixed the initial handling of screen
    parameters to display the true state.
  * Pubscreenlist.c: resort the list whenever a screen definition was modified.
  * List.c: added a check to prevent list entries to be not drawn if the title's
    frame spacing is smaller than the list's frame spacing.

2012-01-13 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c, Screenmodepanel.c: reworked the public screen edit panel.
    This makes it possible to use any kind of image known from other places as
    screen background image instead of datatypes loadable images only.
    Furthermore some options have been dropped, as they are very unlikely to be
    ever used at all, i.e. forbid screen dragging.
  * Pubscreen.c: fixed a NULL pointer access in the screen backfill hook.

2012-01-12 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: reworked to wheel scrolling handling once more to enable scrolling
    whenever it is possible in any direction while respecting the mouse pointer
    position and the scrolling direction.
  * Popmenu.c: fixed the wrong background redrawing in case submenus are used.
  * Popmenu.c: fixed the wrong offset of menu markers in case a cursor frames
    was used.

2012-01-11 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollgroup.c: added a safety check when adding/removing the scrollbars.
  * all: the version tag of all components now includes a SVN revision number.
  * Popmenu.c: fixed the gradient background and cursor drawing once again.

2012-01-10 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c: fixed a memory leak.

2012-01-09 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed a typo which prevented horizontal wheel scrolling from working
    as expected.

2012-01-08 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c, Settings.c: reworked the info page and the About window. The
    ancient preview images have been dropped, as they are more than just
    outdated by now.
  * List.c: added a safety check when adding/removing the horizontal scrollbar.
    This closes BZ #7522.
  * Rectangle.c: use standard text color as fall back until we have proper group
    title color settings.
  * Aboutbox.c: enabled double buffering for the icon image.
  * Applist.c: added MUIA_Application_Process for direct comparison.
  * Application.c, Settings.c: fixed a memory leak by creating an object only
    once.

2012-01-06 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: certain keypresses (i.e. printscreen, break, insert) which result
    in no visible character usually, are now silently be swallowed. Furthermore
    if the string object has an attached list (like in the MUI-Demo application)
    and the keypress is forwarded to the list it will be "eaten" as well, if the
    attached list signaled "eaten". This closes BZ #7537.
  * all classes: bumped the copyright year to 2012. This closes BZ #7534.
  * List.c, Scrollbar.c, Numeric.c: reworked the wheel scrolling logic once more
    to handle all possible combinations of mouse wheel event and mouse pointer
    location.
  * Pixmap.c: MUIM_AskMinMax now correctly returns the pixmap's dimenstions as
    width and height values.
  * Aboutpage.c, Settings: added new logo kindly provided by Martin 'Mason'
    Merz.

2012-01-05 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: the screen names in the popup menu are sorted now again.
  * String.c: fixed the broken vertical gradient background drawing in certain
    situations. This closes BZ #7528.
  * Configdata.c: IBrowse and its IBTextEditField.ibcc class use the old string
    pen settings as default background setting and do all the background drawing
    themselves instead of using MUIM_DrawBackground. Even worse they fail to
    handle anything except pen specs correctly and hence may render absolute
    non-sense. Thus for IBrowse the default pen specs are now returned to work
    around this issue. This closes BZ #7527.

2012-01-04 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c, masterframe.c: fixed the vertical gradient drawing for slider
    knobs. The gradient will no longer be spread over the complete slider's
    dimensions but just over the knob's dimensions.
  * Popasl.c: still opened ASL requesters will be terminated if the calling
    application is being hidden or terminated. Otherwise the requester window
    would be left orphaned.
  * Popasl.c: ASLFO_DoStyle now defaults to TRUE for font requesters.
  * List.c: fixed the wrong xoffset result of MUIM_List_TestPos in case the
    list had been scrolled horizontally.

2012-01-03 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c, Settingsgroupr.c: added config option to modify the slider knob
    style. One can choose either no style at all, the well known circle and
    OS4's dots and lines. Additionally the no longer supported BOOPSI images
    will automatically be converted to the default slider knob look. This closes
    BZ #7512.
  * List.c, Scrollbar.c, Numeric.c: sorted the inputhandlers' priorities to let
    a list object scroll with the same speed no matter where the mouse pointer
    is located within the list object. This closes BZ #7521 again. Furthermore
    single scrollbar objects always behave just the same as in combination with
    a list.

2012-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * Virtgroup.c: fixed the wheel scrolling in the image browser by adding a high
    priority eventhandler to catch wheel events ahead of other event handlers.
  * Popmenu.c: fixed the popup menu gradient bug of BZ #7532.
  * Frameadjust.c: disabled double buffering for the Colorring object on the
    frame adjustment page as this is causing graphical corruptions.
  * Title.c: fixed the broken title object backfilling.
  * Title.c: fixed realtime prefs changes of group title image.

2011-12-31 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed handling of MUIA_FrameDynamic for groups. The frames of the
    toolbar buttons of MUIOWB are now correctly shown and hidden.

2011-12-29 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Scrollbar.c, Numeric.c: the scrollbars of lists no longer invert the
    mouse wheel scroll events. This closes BZ #7521.

2011-12-28 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: the page list is now the default object again instead of the no
    longer existing listview around it.
  * images/default_OS4: renamed the listtree open/close node images to avoid
    confusion with other standard images.
  * Imagebrowser.c: implemented mode to show all images contained in a directory
    but to select only one, i.e. the listtree open/close node images.

2011-12-27 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenlist.c: the Workbench screen's mode ID is now always obtained
    from the currently opened screen instead of any previously saved ID as MUI
    is not able to change this ID anyway. This closes BZ #7501.
  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.
  * List.c: vertical gradients for the list cursor are now drawn in full height
    instead of being stretched across the complete list's height. This seems to
    be most people's intuition.
  * Frimagedisplay.c: dropping a frame+image combination with an inherited image
    spec on an frame+image object which does not allow image inheritance will
    now correctly ignore the image part. This closes BZ #7510.
  * Pubscreenlist.c: creating a copy of the Workbench screen will now correctly
    clone all basic parameters. This closes BZ #7511.

2011-12-23 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c, images/default_OS4: added pullopen and closebutton
    images to the default_OS4 theme and adapted the default settings
    accordingly.
  * Pubscreenlist.c: exclude the Workbench screen from editing when being
    doubleclicked.

2011-12-22 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: replaced the list based cache by a hash table to speed up
    all accesses.
  * String.c: fixed the broken backfilling when a text portion was selected.
    Also replaced some sprintf()'s by snprintf().
  * String.c: fixed a possible locked semaphore in case of a low memory
    situation.
  * String.c: fixed a mix up of AllocMem() and FreeVec() calls.

2011-12-21 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: replaced the list based structure by a hash table to speed up
    all accesses.
  * Frimagedisplay.c: enabled GUI mode.
  * Settingsgroupr.c: added some object for future use to tune the look of
    register title tabs. Note: these settings are not yet working and hence
    are disabled.
  * Settings.c: made the "goto last used prefs page" feature working again.

2011-12-19 Thore Böckelmann <tboeckel@gmx.de>

  * Title.c: framed title objects are now completely backfilled with the
    corresponding group's background image.

2011-12-18 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: replaced Create/DeleteMsgPort() by Alloc/FreeSysObject.
  * Group.c, Title.c: added some special handling of odd sized objects.

2011-12-16 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Group.c, Title.c: implemented group titles as real objects. Things
    may not be perfect yet, but at least it is a beginning...

2011-12-07 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Mrodfr/ATO
    France.

2011-11-30 Thore Böckelmann <tboeckel@gmx.de>

  * Screenmodepanel.c: added Screenmodepanel.mui class.
  * Settingsgroupr.c: implemented a label position slider class for future use.

2011-11-29 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: replaced the More button's image by MUII_PullOpen.

2011-11-25 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: use the same image specs for the context menu as for the
    browser itself.
  * Pubscreenlist.c: made the screen edit panel a bit wider.
  * Pubscreenadjust.c: localized the depth slider.
  * Pophotkey.c: added custom replacement class for Pophotkey.mcc based on
    Keyadjust.mui.

2011-11-24 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreen.c: screens that clone the Workbench screen can now be larger than
    the Workbench screen itself. This closes BZ #7435.

2011-11-23 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: added some usages of MUIPEN() where it is absolutely
    necessary.

2011-11-15 Thore Böckelmann <tboeckel@gmx.de>

  * Colorring.c: redraw the RGB/HSV string objects in the relative mode as they
    might have been overdrawn by the line connecting the two crosshair images.

2011-11-14 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented MUIA_List_ColumnOrder.

2011-11-11 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: implemented MUIV_Register_Titles_Frame to obtain the register's
    titles from the embedded groups' titles.

2011-11-06 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed the selected background image for custom toolbar buttons like
    those in MUIOWB.
  * List.c, Virtgroup.c: wheel scrolling within a list or a virtual group will
    affect the object below the mouse pointer only instead of scrolling all
    nested objects.
  * masterframe.c: added some checks to the bitmap frame thickness calculation
    to avoid pushing objects into the window frame due to negative values. This
    fixes the known issues with jobbo/windows/Top_Shadow.png.

2011-10-31 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed realtime update of double buffered objects.
  * Dtpic.c: the selected state info for MUIA_DarkenSelState is derived from
    MUIA_Selected instead of doing this job ourselves.

2011-10-30 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c, ProcessPixelArray.c: extended the image processing to raw
    pixel arrays instead of working on bitmaps only.
  * Popmenu.c: fixed a typo which caused gradient cursors to be drawn with the
    wrong dimensions.
  * Popmenu.c: fixed another bug when using a gradient menu background.

2011-10-28 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: added a safety check to ensure the requested object still exists
    before invoking a redraw after a configuration change.
  * Settings.c: saving a configuration will also trigger a visible configuration
    change for all non-realtime settings.
  * Dtpic.c, Imagespace.c: the lightened and selected state correctly respects
    the alpha channel and will modify visible pixels only.
  * Argstring.c: added Argstring.mui for whomever will need it.

2011-10-27 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Configdata.c, Settings.c, Settingsgroup.c: finally fixed the
    non-working public screen setting due to the all changed real time prefs
    change.
  * Keyadjust.c: implemented MUIA_Keyadjust_Allow(Double|Triple)Click.

2011-10-26 Thore Böckelmann <tboeckel@gmx.de>

  * Dtpic.c: Dtpic.mui no longer does all the datatypes magic itself, but
    delegates this task to Imagespace.mui. This simplifies the code a lot.
    Additionally the two attributs MUIA_Dtpic_LightenOnMouse and
    MUIA_Dtpic_DarkenSelState have been implemented.

2011-10-25 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: moved the visibility change of the horizontal scrollbar from the
    MUIM_Setup method to the MUIM_Show method, as adding/removing objects
    might trigger a window relayout and hence requires a valid window pointer.
  * List.c: changing the horizontal scroller visibility now correctly updates
    the scrollers in realtime.

2011-10-24 Thore Böckelmann <tboeckel@gmx.de>

  * String.c: fixed the wrong implementation of MUIA_Textinput_ResetMarkOnCursor
    to reset any marking at any time if set to TRUE.
  * List.c: add any notifies for the horizontal scrollbar only if it is visible
    at all and remove all of them when the scrollbar gets removed.
  * masterreq.c: added some code to detect missing screen or window references
    in MUI_AllocAslRequest() for the requester to be allocated. This makes it
    possible to let the requester be opened on the application's configured
    public screen without having to pass ASLFR_PubScreenName or similar tags
    explicitly.
  * String.c: made String.mui an external class.
  * Window.c: added some NULL pointer checks when recalculating the required
    window dimensions.

2011-10-23 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: made the title button's frame setting work instead of ignoring it.
    The default frame is cloned from a read-only list's frame.

2011-10-21 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: added title and .mcp image to each settings page.

2011-10-17 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: rearranged the keyboard page in two columns.
  * locale/MUI.cd: renamed the Strings page to Text.
  * muilocale.c, masterinit.c: integrated all functions of muilocale.library
    into muimaster.library to get rid of that single sublibrary.

2011-10-16 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: the height calculation for gradient backfilled lists must include
    the title group's height, otherwise the last line will not be drawn
    correctly.
  * String.c, Textinput.c: completely replaced the string class based on the
    BOOPSI class "strgclass" by Textinput.mcc. This eliminates the same issues
    as for slider objects in virtual groups and enables text marking on any
    system.

2011-10-07 Thore Böckelmann <tboeckel@gmx.de>

  * Configdata.c: fixed the check for old empty strings to correctly handle
    certain non-NULL pointers. This closes BZ #7287.
  * prefs.c: starting the MUI prefs application twice will now let the first
    instance bring its window to the front. The second instance will still
    fail with the usual error message. This closes BZ #7205.

2011-10-06 Thore Böckelmann <tboeckel@gmx.de>

  * Popstring.c: implemented the popbutton style which allows to embed the popup
    button into the string object.
  * Prop.c: completely dropped the support for BOOPSI based slider images. The
    BOOPSI system simple has too many disadvantages and limitations, i.e. a
    BOOPSI object can only work correctly if it is fully visible which makes
    using an only partly visible slider inside a virtual group impossible.
  * List.c: removing one or several items will redraw the list only if the list
    is non-quiet (MUIA_List_Quiet==TRUE). This fixes the slow redrawing when
    closing list nodes of large listtrees.
  * doc/misc: added some Autodocs for some undocumented methods and attributes.

2011-10-05 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed yet another bug with single image 24bit ILBM brushes.
  * Imagebrowser.c: fixed wrong handling of .mb0/1 brushes.

2011-10-04 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: added support for 24bit ILBM brushes (extension .mf0/1 and
    .mb0/1).

2011-09-28 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: lists without a visible title bar are now displayed again with their
    minimum width as known before. Just lists which are allowed to adjust their
    minimum width will do exactly this. This closes BZ #7165.

2011-09-27 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: fixed wrong delete screen confirmation requester gadgets.

2011-09-26 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: getting MUIA_Application_Iconified could have return the
    wrong state.

2011-09-25 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: fixed the wrong gradient background drawing in lists which contain
    less items than could be visible.

2011-09-21 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: replaced the old GetDiskObject() call by GetIconTags(). This
    should fix the reported issues with 4 colored icons in AmiDock.

2011-09-13 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreen.c: the background image for "like Workbench" style screens was not
    respected.

2011-09-12 Thore Böckelmann <tboeckel@gmx.de>

  * Keyadjust.c: implemented a string edit hook to be able to sample new key
    presses.
  * Settingsgroup.c: make use of the new Keyadjust class to configure the
    keyboard shortcuts.
  * Keyadjust.c: made all visible texts translatable.
  * Settingsgroupr.c: transformed the cycle buttons config group to match the
    other options on that page.
  * mastermisc.c: fixed broken key comparison which did not obey all configured
    keys.
  * Applications.c: parsing multi key specs no longer modifies the original key
    spec.

2011-09-09 Thore Böckelmann <tboeckel@gmx.de>

  * Keyadjust.c: added Keyadjust.mui class and make use of it in the MUI prefs
    application. Please note, key sampling is not yet working due to the nature
    of String.mui. As a decendant of a BOOPSI class the keyboard handling is
    visible to Intuition only and not to MUI.

2011-09-08 Thore Böckelmann <tboeckel@gmx.de>

  * misc: lots and even more changes. Basically MUI now supports configuration
    changes in real time. That means, as soon as one modifies one option the
    result will be applied and visible immediately. Gauges may get an additional
    zebra effect for better visual feedback. All images used from within MUI are
    now configured on one central page instead of several pages. This makes it
    possible to choose complete image themes instead of having to set each image
    separately. However, images can still be set individually by clicking on the
    corresponding config button. A popup menu will open which lets one select
    only those images from the available ones which are suitable for the image's
    role. External config classes will be loaded by clicking on the "More"
    button below the class list. Each config page has been placed in a virtual
    group to be able to combine several former single pages into one big page
    while keeping the main window relatively small.
    There are much more minor improvements hiding somewhere, its just too many of
    them to mention each and every in detail here.

2011-09-05 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroupr.c: added missing line for translated cycle butoon popup menu
    positions which caused additional strings to appear due to the missing NULL
    entry. This closes BZ #7224.

2011-09-03 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Dtpic: added Autodoc entries for all public attributes of Dtpic.mui.

2011-08-30 Thore Böckelmann <tboeckel@gmx.de>

  * Imagebrowser.c: simple vector images are now used for the builtin images as
    these should really be built-in and should never rely on any external files.
  * Imagespace.c: changed the vector image pen from SHADOWPEN to the usual
    TEXTPEN to make the images appear in black color as  SHADOWPEN is some kind
    of gray on AmigaOS4.
  * Imagebrowser.c: the currently active image is now made visible upon opening
    the browser.
  * Imagebrowser.c: image specs are now generated depending on the file's
    extension.

2011-08-29 Thore Böckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c, Imagebrowser.c: the image browser will now correctly
    highlight the currently selected image.

2011-08-28 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: implemented special font specs to increase/decrease the point
    size of the default font, i.e. "/-2" will use the default font with a point
    size decreased by 2, "/+2" will increase the point size by 2 and "/16" will
    use an absolute point size of 16.

2011-08-24 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: slightly rearranged the layout of the Help page and removed
    lots of no longer used catalog strings.
  * Settingsgroupr.c: made the scrollbar knob selector work again with old BOOPSI
    images and removed lots of no longer used catalog strings.

2011-08-23 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroupr.c: adapted the slider and gauge settings the match the look
    of MUI4.
  * Gauge.c, Settingsgroup.c: implemented the zebra striping effect for gauges.
  * Settingsgroupr.c: modified the example gauge to do its fancy stuff only if
    the mouse is over one of the objects.
  * Settingsgroupr.c: enabled no arrow buttons at all for scrollbars as possible
    default setting.
  * Settingsgroupr.c: removed the "allow scrolling with middle mouse button"
    setting. Wheel scrolling is active for all lists and virtual groups.
  * Settingsgroup.c: rearranged the Window settings page to match the look of
    MUI4. The window refresh mode is no longer configurable as the current
    graphics hardware is fast enough for a quick redraw without erasing the
    background.

2011-08-22 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the wrong width for gradient cursor images. This closes BZ
    #7188.
  * Imagespace.c, ProcessPixelArray.c, misc: implemented color balancing and
    color brightness control based on an implementation kindly provided by
    Massimo Tantignone. This finally makes the disabled brightness slider in
    the background image selection window working.
  * Settingsgroup.c: made the per gadget context menus working again even if
    some gadgets are no longer available.

2011-08-21 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: added a NULL pointer check for the MultiTest hook. This closes
    BZ #7185.

2011-08-03 Thore Böckelmann <tboeckel@gmx.de>

  * misc: removed all pre-V39 stuff as there are no pre-OS3.0 components in the
    system anymore. MUI is now strictly AmigaOS 3.0+.
  * List.c: make sure the active entry is still visible after adding the
    horizontal scrollbar.
  * locale/czech.ct: updated czech translation kindly provided by Vit Sindlar.
  * Area.c: MUIM_DrawBackground now correctly respects any given offsets. In
    combintation with updated NList classes this fixes BZ #6974.

2011-08-02 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed the broken image disposing. The destructor for disk
    based images was never called and hence left tons of orphaned locks
    pending.

2011-08-01 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c: removed unused frame definitions.
  * Frameadjust.c: the frame being edited is now made selected in the range of
    all available frame types.
  * Application.c: fixed the handling of pushed methods. The old approach always
    ignored the first pushed method and hence made unpushing it impossible.

2011-07-31 Thore Böckelmann <tboeckel@gmx.de>

  * locale/danish.ct: updated danish translation kindly provided by Niels Bache.
  * locale/polish.ct: updated polish translation kindly provided by Mariusz
    Danilewicz.

2011-07-30 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c, Pubscreenlist.c: set the bubble help for the list only,
    but not for the control buttons. This closes BZ #7155.

2011-07-28 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.
  * List.c: the vertical scrollbar was not updated when the horizontal scrollbar
    was added or removed.
  * Area.c, Imagespace.c: fixed wrong gradient drawing for double buffered
    objects.

2011-07-27 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.
  * Pubscreen.c: added some more debugging output to the public screen
    initialization.
  * debug.c: the debug log now contains the full version information of the
    generating module.
  * Pubscreen.c: cloning the Workbench screen must preserve a custom screen ID.
  * Screenspace.c, Pubscreen.c: completely removed the "Auto Close" and "Close
    Gadget" settings for public screens. Automatic closing of screens is always
    active now. MUI tried to close a public screen upon application termination
    or iconification anyway since ages. Only an alien window could have
    prohibited this. Since the close gadget required a window to display the
    gadget the use of the "last visitor closed" signal to close the screen could
    never have worked as intended as there was always one window left on the
    screen. Furthermore, the close gadget was something completely alien in
    respect to screens.

2011-07-26 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenlist.c: fixed NULL pointer access after deleting a screen entry.
    This closes BZ #7148.
  * Pubscreen.c: use the autoclose/close gadget settings from the configured
    screen even if cloning of the Workbench is requested. This closes BZ #7149.
  * Pubscreenlist.c: removed unneeded Forbid()/Permit() pair.
  * Colorring.c: replaced all Forbid()/Permit() pairs by a semaphore.
  * Dirlist.c: replaced all Forbid()/Permit() pairs by a semaphore.
  * List.c: lists can now have an additional dynamically added and removed
    horizonzal scrollbar to scroll the list contents horizontally as well.
  * Process.c: fixed wrong DoSuperNew() call. This fixes BZ #7147.

2011-07-25 Thore Böckelmann <tboeckel@gmx.de>

  * Screenspace.c: removed unused global variable and embedded another global
    variable into the instance data as Screenspace.mui is a single instance
    class.

2011-07-23 Thore Böckelmann <tboeckel@gmx.de>

  * locale/finnish.ct: updated finnish translation kindly provided by Janne
    Peräaho.

2011-07-22 Thore Böckelmann <tboeckel@gmx.de>

  * doc/List: fixed some minor typos.

2011-07-20 Thore Böckelmann <tboeckel@gmx.de>

  * masterframe.c, Frameadjust.c: tinting and scaling of frames is possible for
    bitmapped frames only now.
  * masterframe.c: added NULL pointer check for possible invalid frame specs.

2011-07-15 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: an implementation of MUIM_FindObject for application objects
    existed, but was never used. Now it is called as intended.
  * misc: various changes to merge the separated settings for list frames and
    backgrounds into the new combined settings object. The list cursor now
    also might have a visible frame.

2011-07-14 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: added MUICFG_FramesPropKnob.
  * Frimagedisplay.c: make sure the background is drawn for inherited images.
  * Settings.c, Settingsgroup.c: started to merge the separated settings for
    frames and backgrounds into the new combined settings object.

2011-07-13 Thore Böckelmann <tboeckel@gmx.de>

  * masterpop.c: before balancing starts the window's sticky active object
    pointer must be erased. Otherwise this object will be made active over and
    over again. For example Filepanel.mui's file string object is such a sticky
    candidate and will eat up the mouse release event needed to detect the end
    of the balancing process.
  * Area.c: fixed the background drawing of buttons with bitmap frames.
  * misc: declared all method functions as static if they are not used globally.
  * mastergfx.c: enabled parameter parsing for bitmap frame specs.
  * Frimagedisplay: applied the same fix as for the old Imagedisplay.mui to show
    the correct background and image.
  * masterclass.c: for all internal classes their true name is now set in the
    public class structure.

2011-07-12 Thore Böckelmann <tboeckel@gmx.de>

  * Listtree.c: some optimizations to use V11+ stuff only, MUI 2.3 is long ago.

2011-07-11 Thore Böckelmann <tboeckel@gmx.de>

  * List.c, Filepanel.c: implemented MUIM_List_EditEntry and MUIM_EditStop as
    Filepanel.mui makes use of this for renaming files.
  * Imagespace.c, Gauge.c, Text.c: sorted out why the gradients were not drawn
    correctly with double buffering enabled. Hence they can be reenabled again.

2011-07-08 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: reworked the icon handling to correctly handle all possible types
    of icons (bitmapped, palette mapped, direct color). This closes BZ #7119.
  * tools/makeconfig.c: fixed a typo in the default configuration for tape up and
    tape down images which made it impossible to use the builtin images.
  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2011-07-07 Thore Böckelmann <tboeckel@gmx.de>

  * Slider.c: disabled the "jump to default value on doubleclick" feature as it
    is absolutely unintuitive if one is clicking right/left of it and as soon as
    the slider gets below the mouse it magically jumps to somewhere else.
  * Backgroundadjust.c: fall back to the background pen if we have to deal with
    an old empty spec but inheritance from parent object is forbidden.
  * Area.c: pressed RelVerify buttons are now visually "released" if the window
    becomes inactive. This closes BZ #5592.
  * Area.c: a gradient as background image of a vertical slider will be rotated
    by 90 degrees just like for horizontal gauges.

2011-07-06 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.
  * Dirlist.c: try to obtain the ARGB data using datatypes.library even for 8bit
    images.
  * Group.c: added a NULL pointer check during disposing all child object.
  * Dirlist.c: try to obtain raw ARGB data from icons if they exist.
  * Group.c: reverted the OM_DISPOSE method to the previousd version using
    NextObject() to iterate through the child list instead of RemHead()'ing them
    one by one. WookieChat seems to mess around with this child list during
    OM_DISPOSE which finally leads to a stale list pointer and crashes. This
    closes BZ #7026.

2011-07-05 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: remember the initial rastport to be able to detect drawing to a
    foreign rastport (as BetterString.mcc does) even if drawing the image is to
    be skipped due to being the same as the surrounding image (i.e. the window
    background image). This closes BZ #7109.
  * Colorring.c: use a fixed font for the RGB and HSV value display. This closes
    BZ #7117.
  * Scrollbar.c: enforce an image button background for the arrow buttons and
    rely on the fact that certain images might erase this background again if
    required (i.e. the Ferox theme).

2011-07-04 Thore Böckelmann <tboeckel@gmx.de>

  * masterconfig.c, Configdata.c: the prefs file now carries a version chunk to
    tell old and new versions apart be able to convert old empty image specs
    representing a default background to a new spec instead of interpreting this
    as inherited background images.
  * Area.c, Image.c, Scrollbar.c: correctly respect the inherited background of
    partly transparent images, like round button images.
  * Backgroundadjust.c: correctly handle '6:xxx' type image specs.

2011-07-03 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh

2011-07-01 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: fixed the broken background filling for BOOPSI scrollbars with
    large "transparent" areas on top of a gradient window background.
  * Settingsgroupr.c: forbid parent background image inheritance for window and
    requester backgrounds.

2011-06-30 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: slightly tuned the data (de)compression to use as less memory
    as possible.

2011-06-29 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: icon images not loadable via datatypes.library will now be loaded
    a normal icons for the preview.
  * Imagebrowser.c: added support for old BOOPSI image files like the well known
    XEN scrollbar images.

2011-06-28 Thore Böckelmann <tboeckel@gmx.de>

  * Dirlist.c: use GetDiskInfo() instead of the old Info() to obtain the "size"
    and "used" values of a disk.
  * Colorring.c: the colorring's context menu is now fully localized.

2011-06-27 Thore Böckelmann <tboeckel@gmx.de>

  * misc: another bunch of lots of changes. This release features an all new
    image selection window with thumbnail previews of image files and a
    completely color ring instead of the old color wheel to define RGB colors.
    This new window allows to configure inherited background images. Another
    important new feature are the clickable and draggable list titles.

2011-06-24 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c, Area.c: added special treatment for the broken backfill
    handling of IBrowse. Fastlink buttons within the navigation bar are now
    redrawn correctly again after a window resize.

2011-06-22 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed wrong offset when blitting raw ARGB data within a stream
    of text.

2011-06-17 Thore Böckelmann <tboeckel@gmx.de>

  * Semaphore.c: added missing OM_DISPOSE implementation for Semaphore.mui.

2011-06-14 Thore Böckelmann <tboeckel@gmx.de>

  * Dataspace.c: implemented the private methods MUIM_Dataspace_Compress and
    MUIM_Dataspace_Uncompress using bz2.library for (de)compression.

2011-06-10 Thore Böckelmann <tboeckel@gmx.de>

  * Boopsi.c: fixed the background filling of colorwheel.gadget.

2011-06-09 Thore Böckelmann <tboeckel@gmx.de>

  * misc: lots of internal changes, but this version finally implements true
    background image inheritance. This means that setting MUIA_Background to an
    empty string will let an object inherit its parent object's background
    image. For example, this is absolutely for gradients on a cycle gadget which
    consists of two objects (the cycle image and the text). Before two separate
    horizontal gradients were drawn, instead of only one as one would expect for
    a button like object. Also the background drawing of objects in virtual
    groups finally is done correctly now. Additionally gradients for the cursor
    of NList objects now work correctly again (BZ #6972 and #7032).

2011-06-08 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: added some more NULL pointer checks agains invalid layer pointers
    in the backfill hook function. This fixes BZ #7024.

2011-06-07 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: changed icon object for dock iconification to use the same
    icon object as for AppIcon iconification. This fixes BZ #6065.

2011-06-03 Thore Böckelmann <tboeckel@gmx.de>

  * misc: implemented MUIM_FindObject for classes not derived from Notify.mui
    and made use of that method to avoid accessing no longer valid object
    pointers.
  * Configdata.c: fixed the wrong window spacing in IBrowse' main window.

2011-06-01 Thore Böckelmann <tboeckel@gmx.de>

  * masterlist.c: added an index check to avoid a NULL pointer access.

2011-05-31 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: the release target now builds a debug version of muimaster.library
    in addition to the normal non-debug version.
  * Window.c: added some NULL pointer checks to the window's backfill hook. This
    should fix BZ #7024 in case there is no valid window pointer.
  * masterpop.c: added missing parameter to MUIM_DragBegin method call.

2011-05-30 Thore Böckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: the default text color is now configurable. Furthermore the
    labels of the font settings are now displayed in the corresponding selected
    font. The settings for the monospaced font has been moved from the list page
    to the window page, as the fixed font is not limited to lists only.
  * Window.c, Area.c, Settingsgroup.c: the window's borders are new defined by
    a frame instead of 4 separate spacing values. This is much more consistent
    than the previous approach and make it possible to use different spacings
    for normal windows and requester windows.
  * Pubscreen.c: copy the pubscreen description instead of keeping the parent
    process' pointer.

2011-05-29 Thore Böckelmann <tboeckel@gmx.de>

  * Process.c: raised default stack size to 32K.

2011-05-28 Thore Böckelmann <tboeckel@gmx.de>

  * muiscreen.c, Screenspace.c: integrated all functions of muiscreen.library
    into muimaster.library to get rid of that single sublibrary. The name prefix
    "clonewb:" will enforce the use the current settings of the Workbench screen
    no matter what is configured for the screen mode, resolution, etc. As an
    alternative the SA_LikeWorkbench flag can be enabled in the screen prefs and
    will override settings like screen resolution, display mode, colors, etc.

2011-05-28 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: applications may now be iconified to the default dock of
    AmiDock. This fulfills BZ #6065.

2011-05-24 Thore Böckelmann <tboeckel@gmx.de>

  * Application.c: fixed some issues regarding setting the Workbench screen as
    as custom public screen.

2011-05-23 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: added MUIA_Pixmap_UncompressedData.

2011-05-21 Thore Böckelmann <tboeckel@gmx.de>

  * locale/danish.ct: updated danish translation kindly provided by Niels Bache.
  * muiscreen.c: fixed several flaws regarding the PubScreen process creation. I
    really wonder why this worked before in muilowlevel.library.

2011-05-18 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: added a workaround for broken gradient images in NList. At least
    horizontal gradients are drawn correctly again. Vertical ones are still
    broken.
  * mastertext.c: under certain circumstances custom softstyles might have been
    left active after certain operations of the text engine. The next text then
    was drawn with the wrong style if no new style was set inbetween.
  * Aboutbox.c: applications started via APPDIR:appname now correctly find their
    icon file as APPDIR:appname.info will never exist.

2011-05-17 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: added some NULL pointer checks during MUIM_Setup and MUIM_Cleanup.

2011-05-16 Thore Böckelmann <tboeckel@gmx.de>

  * locale/czech.ct: updated czech translation kindly provided by Vit Sindlar.
  * masterframe.c, misc: reworked the frame handling to pass specs around only.
    The frame thickness is no longer configurable since modern LCDs typically
    have a 1:1 pixel aspect ratio.
  * Group.c: readded a check for an invalid list pointer during MUIM_Draw. This
    most probably fixes BZ #6984.
  * Pixmap.c: MUIM_Setup no longer fails if the decompression fails. A simple
    black cross will be drawn instead of the image.
  * Settingsgroupr.c: the position of the context menu relative to the mouse
    pointer can now be configured. It defaults to be centered unter the mouse
    pointer.

2011-05-14 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed drawing of recessed frames. This fixes BZ #6985.

2011-05-12 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c: *.mb0/1 type images are now loaded by the internal functions
    again instead of using datatypes.library. This fixes BZ #6973.
  * Gauge.c: disabled double buffering for the moment as gradients seem to
    dislike the offscreen rastport and render incorrectly. This fixes BZ #6971.
  * muiscreen.c: the pubscreen task now has a stack size of at least 32K to
    avoid stack swapping by intuition.library.

2011-05-10 Thore Böckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas

2011-05-09 Thore Böckelmann <tboeckel@gmx.de>

  * masterbubble.c: correctly use the MUIPEN macro for obtained pens.
  * masterbubble.c: fixed the wrong fallback to plain help bubbles in case the
    comic bubble creation fails.
  * locale/polish.ct: updated polish translation kindly provided by Mariusz
    Danilewicz.

2011-05-07 Thore Böckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh

2011-04-28 Thore Böckelmann <tboeckel@gmx.de>

  * Lamp.c: added a native reimplementation of Lamp.mcc. For now it is a plain
    framed rectangle instead of the known LED image.
  * dist/SDK: added Autodocs for Aboutbox.mcc, Lamp.mcc and Rawimage.mcc.

2011-04-23 Thore Böckelmann <tboeckel@gmx.de>

  * Crawling.mcc: added ancient 68k Crawling.mcc as this one is required by
    Listtree.mcp and many other config modules which refuse to create their
    edit class if this class is missing.
  * mastergfx.c: a newly allocated MRI buffer must not remember the current
    area's background image, as this one has not yet been draw within this
    new context. This fixes the latest double buffering issues.

2011-04-21 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: added some NULL pointer checks to prevent buggy classes from
    obtaining pens while their window is hidden.
  * Aboutbox.c: added some more placeholders for standard strings.

2011-04-19 Thore Böckelmann <tboeckel@gmx.de>

  * mastermisc: fixed an unused calculation result in MUI_ObtainPen.

2011-04-17 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: removed the one pixel down/right shift of all coordinates when a
    butten is pressed. This closes BZ #6405.
  * tools/makeinc.c: the generated autodocs now include the numerical value of
    each attribute and method.

2011-04-16 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutpage.c: fixed the "Register" button's behaviour.
  * Virtgroup.c, muispecial.c: removed the dependency on muispecial.library to
    get rid of that single sublibrary.
  * Group.c, misc: implemented MUIA_DoubleBuffer as known from MUI4 to support
    double buffered drawing.

2011-04-15 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: fixed the shifted background rendering of spacings within virtual
    groups.
  * Scrollgroup.c: implemented MUIA_Scrollgroup_NoHoriz/VertBar as known from
    MUI4.

2011-04-11 Thore Böckelmann <tboeckel@gmx.de>

  * Text.c: MUIA_Text_Copy is now [isg] instead of [i..].
  * muiscreen.c, muilowlevel.c: moved all remaining stuff of muilowlevel.library
    over to muiscreen.library since this is the last client using this stuff.

2011-04-10 Thore Böckelmann <tboeckel@gmx.de>

  * Winborder.c, muiwinborder.c: integrated all functions of muiwinborder.class
    into Winborder.mui to get rid of that single subclass.

2011-04-09 Thore Böckelmann <tboeckel@gmx.de>

  * Prop.c, muipropg.c: integrated all functions of muipropg.class into Prop.mui
    to get rid of that single subclass.

2011-04-08 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, muiwinscroller.c: integrated all functions of muiwinscroller.class
    into muimaster.library to get rid of that single subclass.

2011-04-07 Thore Böckelmann <tboeckel@gmx.de>

  * tools/png2.c: png2c now outputs the applied compression and format in
    terms of Pixmap.mui.

2011-04-06 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c, Rawimage.c: added support for bzip2 compressed raw images.
  * Aboutbox.c: use our Rawimage.mcc wrapper instead of Pixmap.mui directly.
  * Aboutpage.c: added a listview around the list of loaded classes.
  * demos/NewStuff.c: use a bzip2 compressed Boing image.

2011-04-01 Thore Böckelmann <tboeckel@gmx.de>

  * tools/png2c.c: generate source code with a line length of 256 characters at
    most.

2011-03-30 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutbox.c: make sure the image file exists before creating a Dtpic object
    from it.
  * demos/NewStuff.c: added a small demo application for Aboutbox.mcc and
    Pixmap.mui. More stuff may be added as demonstration is possible and
    required.
  * Rawimage.c: added a wrapper class for Rawimage.mcc based on Pixmap.mui.
    Note that only uncompressed raw data are supported.

2011-03-29 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutbox.c: for programs started from Workbench the icon path will now be
    constructed manually.
  * Aboutbox.c: restructured the complete class to fix a DSI exception.
  * Window.c: context menus are now always opened right+below the mouse pointer
    instead of centered under the mouse pointer.
  * Aboutmui.c: place the sizing gadget in the right border.

2011-03-28 Thore Böckelmann <tboeckel@gmx.de>

  * Listview.c: all methods of List.mui are now correctly forwarded to the
    embedded list object.
  * Aboutbox.c: redraw the icon only if a redraw is actually requested.
  * Group.c: added a NULL pointer check for the group's window pointer.
  * Group.c: child objects are now removed from the list first before they are
    disposed. Furthermore a failed global layout will at least layout the child
    objects.

2011-03-27 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutbox.c: improved the icon display by using a separate class.

2011-03-26 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: return zero dimension in MUIP_TextDimA() in case the render
    info structure is invalid.
  * Aboutbox.c: added first implementation of Aboutbox.mcc.

2011-03-25 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c: fixed a possible crash due to invalid width/height values when a
    gradient was used as background image.

2011-03-22 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c, tools/makeinc.c: fixed some warnings.
  * Imagespace.c: fixed the broken drawing of combined gradients.

2011-03-21 Thore Böckelmann <tboeckel@gmx.de>

  * Imageadjust.c, Imagespace.c, Coloradjust.c: implemented MUI4-style gradients
    which can be either plain or symmetrical.
  * Coloradjust.c: keep the color wheel's aspect ratio instead of displaying an
    oval.
  * List.c, Imageadjust.c: implemented MUIA_List_AutoLineHeight to workaround
    the problem that too high BOOPSI images like the XEN scrollbars are drawn
    outside the listview. The list's line height will be adapted accordingly in
    this case.

2011-03-20 Thore Böckelmann <tboeckel@gmx.de>

  * Rectangle.c: implemented MUIA_Rectangle_MinWidth and _MinHeight.
  * Image.c: implemented MUIA_Image_FontMatchString.

2011-03-16 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: implemented MUIV_Group_Spacing_Percent.
  * Slider.c: implemented MUIA_Slider_FreeKnob.

2011-03-15 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, muiscreen.c: use the image attribute functions instead of peeking
    around in the image structure.
  * Imagespace.c: fixed wrong display of ARGB images.
  * Imageadjust.c: added a preview for external images.
  * Imagespace.c: completed the support for .mim and .mi1 images. This makes it
    possible to use arbitrary images for i.e. cycle buttons.
  * Imagespace.c: images of type 3 and 4 now support arbitrary files loadable
    using datatypes.library.

2011-03-14 Thore Böckelmann <tboeckel@gmx.de>

  * Imagespace.c, muigfx.c: moved screen notify stuff from muigfx.library to
    Imagespace.mui.
  * muiscreen.c, muigfx.c: moved the last remaining function of muigfx.library
    over to muiscreen.library to get rid of that single sublibrary.
  * Penadjust.c: fixed not yet specified pens being black and the penadjust
    object displaying white color.
  * Aboutmui.c, Aboutpage.c: added new external class Aboutpage.mui which is
    used by Aboutmui.mui and offers the possibility to delete obsolete class
    files.
  * Group.c: implemented MUIA_Group_Horiz/VertCenter.
  * Area.c: implemented MUIM_Text and MUIM_TextDim.
  * Family.c: implemented MUIA_Family_ChildCount and made the method
    MUIM_Family_DoChildMethods public.
  * mastermisc.c: fixed MUIP_ParseVersionString() to allow to skip certain parts
    of the parsed informations.
  * CClist.c: implemented OM_DISPOSE to avoid memory leaks upon expunge.

2011-03-11 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c, Imagespace.c: moved all image related functions over from
    muigfx.library to muimaster.library.

2011-03-09 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c, misc: adapted MUIG_DrawImage() prototype in the same way as the
    MUIP_DrawImage() prototype and replaced all direct calls to MUIG_DrawImage
    by the internal function MUIP_DrawImage for future changes.

2011-03-08 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c: updated the text engine to support RGB pen specs.
  * mastermisc: adapted MUIP_DrawImage() prototype for future extensions.

2011-03-07 Thore Böckelmann <tboeckel@gmx.de>

  * mastergfx.c: dropped some of the OS2.x compatibility code regarding pen
    allocation. AmigaOS3.0 is the required minimum now.
  * muigfx.c, muilowlevel.c: moved over MUIL_Open() from muilowlevel.library.
  * muigfx.c, muilowlevel.c: replaced MUIL_OpenLibrary() by a similar function.
  * muigfx.c, muilowlevel.c: moved over MUIL_BodyToBitmap() from
    muilowlevel.library.
  * Application.c: localized two still fixed strings.

2011-03-05 Thore Böckelmann <tboeckel@gmx.de>

  * Process.c: the created subprocess is now a true child of the parent process.

2011-03-04 Thore Böckelmann <tboeckel@gmx.de>

  * Application: fixed unpushing of pushed methods which made processes created
    by Process.mui to hang upon exit.
  * masterframe.c, muigfx.c: moved MUIP_GetFrame(), MUIP_GetFrameAttrs() and
    MUIP_DrawFrame() over to muimaster.library.

2011-03-03 Thore Böckelmann <tboeckel@gmx.de>

  * Process.c: added missing handling of MUIM_Process_Kill to the dispatcher.
  * Application.c: renamed the private method MUIM_Application_KillPushMethod
    to MUIM_Application_UnpushMethod and made it public.
  * demos/Class4.c: added demo application for Process.mui.
  * Process.c: implemented MUIA_Process_StackSize.
  * Application.c: got rid of the 2nd level method stack for pushed methods.

2011-03-02 Thore Böckelmann <tboeckel@gmx.de>

  * mastertext.c, muigfx.c: moved MUIP_TextDim() and MUI_TextPrint() over to
    muimaster.library.
  * muigfx.c: eliminated the senseless RectFill() vs. Move()+Draw() speed check.
  * muilowlevel.c: replaced the lowlevel IO request functions by empty stubs as
    they are no longer used.
  * misc: moved lots of functions from muigfx.library to muimaster.library.
  * Process.c: do not pass the instance data as NP_Input value to the newly
    created process. This will definitely crash!

2011-02-28 Thore Böckelmann <tboeckel@gmx.de>

  * muirexx.c, masterrexx.c: integrated all functions of muirexx.library into
    muimaster.library to get rid of that single sublibrary.
  * Scrollgroup.c, Virtgroup.c, masterclass.c: integrated Scrollgroup.mui and
    Virtgroup.mui into muimaster.library to get rid of that single external
    classes.
  * muilowlevel.c, mastermisc.c: moved several functions into muimaster.library.
  * Semaphore.c: implemented MUIA_Semaphore_Name and MUIA_Semaphore_Priority.
  * Notify.c: made MUIM_Notify_FindObject public.
  * Menu.c, Menuitem.c: implemented MUIA_Menu(item)_CopyStrings.
  * Window.c: implemented MUIA_Window_AllowTopMenus.
  * Area.c, Window.c: added the current EventHandler node as 3rd parameter to
    the message.
  * masterpop.c: the MUIM_DragReport and MUIM_DragDrop methods get the current
    qualifier passed in as the 5th paramter in the message. Furthermore the
    MUIM_DragFinish method gets the source object and an indication about the
    operation' success passed in as 1st and 2nd parameter in the message.
  * Numeric.c: implemented MUIA_Numeric_FormatNull.
  * Cycle.c: implemented MUIA_Cycle_EntryString and MUIM_Cycle_Query.
  * Scrollbar.c: implemented MUIV_Scrollbar_Type_None.
  * Dataspace.c: implemented MUIA_Dataspace_CompareOnAdd, MUIA_Dataspace_PoolMemType,
    MUIA_Dataspace_PoolPuddle and MUIA_Dataspace_PoolThresh
  * Process.c: implemented Process.mui as internal class.

2011-02-24 Thore Böckelmann <tboeckel@gmx.de>

  * masterreq.c: implemented MUIP_AppObject().
  * muiconfig.c, masterconfig.c: integrated all functions of muiconfig.library
    into muimaster.library to get rid of that single sublibrary.
  * mastermisc: implemented MUI_CreateTimer() and MUIP_DeleteTimer().
  * muilowlevel.c: replaced all MUIL_Exists() calls by local macros.

2011-02-23 Thore Böckelmann <tboeckel@gmx.de>

  * muihelp.c, masterbubble.c: integrated all functions of muihelp.library into
    muimaster.library to get rid of that single sublibrary.
  * muipop.c, masterpop.c: integrated all functions of muipop.library into
    muimaster.library to get rid of that single sublibrary.

2011-02-22 Thore Böckelmann <tboeckel@gmx.de>

  * Listtree.c: avoid a NULL pointer access in case there is no active entry
    upon MUIM_Listtree_GetEntry,MUIV_Listtree_GetEntry_ListNode_Active.

2011-02-21 Thore Böckelmann <tboeckel@gmx.de>

  * #?.h: made sure that any #pragma pack(2) occurs *after* all #include state-
    ments, otherwise the closing #pragma pack() in one of the other include
    files will restore the previous alignment and hence cause a different
    alignment than assumed. Also added the typical 'extern "C" {' stuff in all
    public headers in case MUI is used in a C++ project.
  * List.c: implemented the construct, destruct, compare and display hooks as
    proper methods as known from MUI4.
  * List.c: added HIDDEN=H/S to the title format specs to avoid crashes when
    using this MUI4 feature. Note that this feature is not implemented at all!
  * Listtree.c: replaced the obsolete MUI_Request/RejectIDCMP() calls by a
    proper event handler.
  * List.c: changed the return value of MUIM_List_GetEntry from constant zero
    to the entry value which has been obtained. This matches the MUI4 behavior.
  * Area.c, Window.c: added support for MUIM_ContextMenuAdd and boolean values
    of MUIA_ContextMenu.

2011-02-19 Thore Böckelmann <tboeckel@gmx.de>

  * Applications.c: implemented the following attributes as known from MUI4:
    - MUIA_Application_NoIconify
    - MUIA_Application_Lagging
    - MUIA_Application_Process
    Furthermore obtaining the iconification icon will no longer pop up a DOS
    requester in case an unavailable volume is accessed.

2011-02-18 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented the additional negative array entries up to -9 for the
    display hook as known from MUI4.

2011-02-16 Thore Böckelmann <tboeckel@gmx.de>

  * List.c: implemented MUIV_List_Redraw_Entry as known from MUI4.

2011-02-15 Thore Böckelmann <tboeckel@gmx.de>

  * Menustrip.c: implemented MUIM_Menustrip_Popup as known from MUI4.
  * Popmenu.c: implemented MUIA_Popmenu_QuitReason as known from MUI4.
  * Text.c: implemented MUIA_Text_Shorten and MUIA_Text_Shortened as known from
    MUI4.

2011-02-14 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: MUIM_Group_Remove now does the same as OM_REMMEMBER.

2011-02-13 Thore Böckelmann <tboeckel@gmx.de>

  * misc: backported some more MUI4 methods, like MUIM_Group_(AddTail|AddHead|
    Insert) and MUIM_Family_GetChild. The application's pushed method FIFO has
    been extended from 32 to 256 entries. The setup/cleanup check of Area.mui
    has been extended to catch possible object handling bugs like those of the
    NList classes. All in all this should help the backporting of the MorphOS
    MUI-OWB to AmigaOS4.

2011-02-08 Thore Böckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french catalog kindly provided by Mrodfr-ATOFR.

2011-02-04 Thore Böckelmann <tboeckel@gmx.de>

  * Dtpic.c: erase the background before drawing an image with alpha channel.
    Furthermore the alpha value will be applied to all drawing operations.

2010-10-29 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Dataspace/MUIM_Dataspace_Find: added an Autodoc entry for the public
    MUIM_Dataspace_Find method.

2010-10-07 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c: added support for alien (= loaded by datatypes.library) images
    with alpha channel to be displayed correctly when used in image specs like
    "\033I[5:image}". Furthermore the dependency from CyberGraphics has been
    removed completely for AmigaOS4.

2010-09-26 Jens Langner <Jens.Langner@light-speed.de>

  * misc: final preparations for new beta release.

2010-07-26 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c: in case the cycle's popup menu was canceled by releasing the mouse
    button outside the menu it was still possible to cycle through the object's
    entries with the mouse wheel even if the mouse pointer was not over the
    cycle object anymore. Now the current mouse position is checked again after
    the menu handling is done. This fixes BZ #6559.

2010-06-22 Thore Böckelmann <tboeckel@gmx.de>

  * Dtpic.c: made the MUIA_Dtpic_Name attribute public, as it is in MUI4. No
    more need for hacks like MUIundoc.

2010-06-18 Thore Böckelmann <tboeckel@gmx.de>

  * muipop.c: hide the transparent layer on truecolor screens before invoking
    the DnD drop method. This fixes BZ #6527.

2010-06-11 Jens Langner <Jens.Langner@light-speed.de>

  * locale/german.ct: translated two not completly translated strings. This fixes
    BZ #6516.

2010-06-11 Thore Böckelmann <tboeckel@gmx.de>

  * Cycle.c: the "mouse over object" state is now also updated when the window
    becomes active again to be able to pop up the menu immediately. This fixes
    BZ #6515.

2010-06-08 Thore Böckelmann <tboeckel@gmx.de>

  * all icons: updated all icons to the ones used on the OS4.1 Update 1 CD.
    This fixes BZ #6511.

2010-05-31 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c, Group.c, Window.c: backported some MUI4 stuff which allows to drop
    the hackish usage of the IDCMP_LONELYMESSAGE flag and to integrate the
    check for a successful layout operation for each object. This should help
    to track down the (in)famous "tons of NList warnings" bug.
  * Area.c: made MUIA_NeedsLayoutMethod get()able and added a warning in case
    an object received MUIM_Setup twice.

2010-05-28 Thore Böckelmann <tboeckel@gmx.de>

  * Scrollgroup.c: implemented MUIA_Scrollgroup_AutoBars as known from MUI4.
    Setting this tag to TRUE will let the scrollbars appear and vanish auto-
    matically whenever they are needed or no longer needed respectively.

2010-05-25 Thore Böckelmann <tboeckel@gmx.de>

  * muihelp.c: allocate a white pen to correctly display the bubble help text
    in case the system shine pen is not exactly white. This fixes BZ #6481.

2010-05-21 Jens Langner <Jens.Langner@light-speed.de>

  * misc: final preparations for new beta release.

2010-05-13 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutmui.c: added new 32bit logo kindly provides by Martin 'Mason' Merz.

2010-05-05 Thore Böckelmann <tboeckel@gmx.de>

  * Knob.c: fixed a double cleanup of an already disposed object.
  * muihelp.c: added 32bit bubble image kindly provided by Martin 'Mason' Merz.
    This image will be used on hi- and truecolor screens.

2010-05-04 Thore Böckelmann <tboeckel@gmx.de>

  * Levelmeter.c: got rid of the old 8bit image and use the new 32bit image
    only. Pixmap.mui is used internally to handle all screen formats.
  * Knob.c: got rid of the old 8bit image and use the new 32bit image only.
    Pixmap.mui is used internally to handle all screen formats.

2010-05-03 Thore Böckelmann <tboeckel@gmx.de>

  * Pixmap.c: renamed Rawimage.mui to Pixmap.mui to avoid collisions with MOS'
    Rawimage.mcc class. Implemented simple dithering to be able to display
    truecolor image data on colormapped screens. A fixed but colorful palette
    will be used.
  * Pubscreenadjust.c, Pubscreenlist.c, Settings.c: got rid of all 8bit images
    now that the dithering is implemented.

2010-04-28 Thore Böckelmann <tboeckel@gmx.de>

  * Rawimage.c: added Rawimage.mui class to handle inlined raw image data.
  * Settings.c, Pubscreenlist.c, Pubscreenadjust.c: use Rawimage.mui if
    available to display 32bit truecolor images. If Rawimage.mcc is unavailable
    the old 8bit images will be used instead.

2010-04-27 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: add #?_mcc.h to the SDK release.

2010-04-26 Thore Böckelmann <tboeckel@gmx.de>

  * dist/SDK/sfd/muimaster_lib.sfd: added missing inclusion of libraries/mui.h.

2010-04-25 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile, images, Levelmeter.c, Knob.c: added 32bit knob and levelmeter
    images kindly provided by Martin 'Mason' Merz. These images will be used on
    hi- and truecolor screens.

2010-04-13 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile, dist/Libs/mui/Listtree.mcp: added old 68k only Listtree.mcp prefs
    class since we don't have the source for this one.

2010-04-12 Thore Böckelmann <tboeckel@gmx.de>

  * locale/polish.ct: added missing final LF, otherwise FlexCat will crash.
  * tools/png2c.c: the code generation didn't respect the host's endianess.
  * Makefile: added automatic png2c generation.
  * Makefile: the release target now copies the newly generated mui.h file to
    the SDK directory.

2010-04-09 Thore Böckelmann <tboeckel@gmx.de>

  * Numericbutton.c: fixed the wrong gradient by enabling the background
    filling. Before four separate gradients had been drawn instead of a single
    one.
  * Cycle.c: if a Cycle object inside a virtual group is moved under the mouse
    pointer while using the wheel it will now ignore the wheel input and let the
    surrounding group handle it. The Cycle object will accept the wheel input
    only after moving the mouse at least one pixel inside the object. This fixes
    BZ #4864.

2010-04-06 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Application, doc/Window: renamed some files to their correct name. The
    former name was truncated and hence the files were ignored when creating
    the AutoDocs.
  * Makefile: integrated automatic Autodoc creation into the release target.
  * tools/makeinc.c: replaced all non length limiting function calls by their
    length limiting counterarts.
  * tools/png2c.c, Makefile: added png2c source to generate C source from PNG
    images.
  * Settings.c, Pubscreenadjust.c, Pubscreenlist.c: added 32bit list images
    kindly provided by Martin 'Mason' Merz. These images will be used on hi-
    and truecolor screens.
  * Pubscreenadjust.c: removed unused function.

2010-04-06 Jens Langner <Jens.Langner@light-speed.de>

  * local/polish.ct: updated polish translation kindly provided by
    Mariusz Danilewicz

2010-02-25 Thore Böckelmann <tboeckel@gmx.de>

  * Group.c: MUIA_ShowMe will now return the hidden/visible state of the group
    object itself instead of its children as this is what one would really
    expect after having done a set(group, MUIA_ShowMe, TRUE/FALSE). This should
    fix BZ #6276.

2010-02-16 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: renamed <<Global.prefs>> file to Global.prefs to be system
    independed. Certain operating systems don't like the angled brackets. The
    release target then renames this file to the final name.

2010-02-12 Thore Böckelmann <tboeckel@gmx.de>

  * locale/english-british.ct: added creation of the AUTH chunk in the catalog
    file.

2010-02-11 Thore Böckelmann <tboeckel@gmx.de>

  * locale/english-british.ct, Makefile: added british english translationg
    kindly provided by Arthur Ward and adapted Makefile to generate the catalog
    file.

2010-01-29 Thore Böckelmann <tboeckel@gmx.de>

  * muipop.c: finally the Drag'n'Drop operation works without locking the whole
    screen. This requires OS4.1u1 and a screen with compositing enabled. Other-
    wise MUI will fall back to the old locked approach. This really fixes bug
    #5440.
  * locale/german.ct: fixed a small inconsistency in the german translation.

2010-01-02 Thore Böckelmann <tboeckel@gmx.de>

  * muihelp.c: the bubble help window is now opened as a toolbox window to avoid
    activation upon a mouse click.

2009-12-21 Jens Langner <Jens.Langner@light-speed.de>

  * misc: final OS4.1 update release preparations

2009-10-31 Jens Langner <Jens.Langner@light-speed.de>

  * Text.c: revised the fix for the broken text marking once again. Now
    it should be hopefully fixed for all cases no matter where and how
    escape sequences are present in the text to be marked.

2009-10-29 Jens Langner <Jens.Langner@light-speed.de>

  * Text.c: slightly change the text marking routines to identify if an
    escape sequence will be suddenly interrupted and thus the text might
    be displayed malformed. This should hopefully be the origin of
    bug #5681 and thus should be fixed now.

2009-10-29 Thore Böckelmann <tboeckel@gmx.de>

  * Settings.c: moved several ESC sequences from the actual text string to
    a separate preparse string to avoid the text marking bug described in
    BZ #5681.

2009-10-26 Jens Langner <Jens.Langner@light-speed.de>

  * muiconfig.c: fixed bug #5670 where with an unregistered MUI version the
    an invalid NULL pointer access occurred and caused the MUI preference
    program to crash.

2009-10-07 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c: the automatic frame thickness calculation used the screen's
    dimensions instead of the pixel ratio. This caused thick frames for over-
    sized screens while the screen resolution was not changed. Now the pixel
    ratio is used instead, because that one is constant and independend of
    the actual screen size. This fixes bug #5605.

2009-09-30 Thore Böckelmann <tboeckel@gmx.de>

  * misc: added a name to all memory pools.

2009-09-17 Thore Böckelmann <tboeckel@gmx.de>

  * locale/german.ct: fixed some inconsistencies in the german translation.
  * Numericbutton.c: fixed a knob displayed at the wrong position when moving
    the mouse too fast. Before it could happen that the knob was displayed
    somewhere in the middle while the displayed value was already at its limits.

2009-09-11 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c: the custom TextFit routine also respects the height restriction.

2009-09-11 Thore Böckelmann <tboeckel@gmx.de>

  * muigfx.c: implemented a custom text fit functions as it seems the TextFit()
    function of graphics.library is calculating something wrong and returns
    zero displayable characters, even if their total width is smaller than the
    constraining width. This fixes BZ #5478.

2009-09-05 Thore Böckelmann <tboeckel@gmx.de>

  * Popmenu.c: removed some no longer necessary type casts from CONST_STRPTR to
    STRPTR.
  * Window.c: removed some no longer necessary type casts from CONST_STRPTR to
    STRPTR.
  * mui.h: changed the pi_Key and pi_Text items to be CONST_STRPTR instead of
    STRPTR.

2009-09-04 Thore Böckelmann <tboeckel@gmx.de>

  * muipop.c, Numericbutton.c: screen locking now happens situation dependend.
    For numeric buttons a real hard lock is done on the screen, while for normal
    object drag'n'drop the old interruptible lock is done. This still does not
    solve the DnD problems, but we get a small step closer.

2009-09-03 Thore Böckelmann <tboeckel@gmx.de>

  * Window.c, locale: translated the window popup menu.
  * masterinit.c, mastermisc.c, masterdata.c: changed the main memory pool to be
    automatically protected by a semaphore. Thus the individual calls to
    Obtain/ReleaseSemaphore can be omitted.
  * muiconfig.c, locale: added some not yet translateable strings.
  * Text.c: the index calculation from the mouse coordinates could have returned
    negative index values which were used for the automatic text copy to the
    clipboard. Additionally the variable was signless and thus this negative
    value was never correctly detected. Due to this random memory might have
    been accessed causing all kinds of crashes.
  * muigfx.c: the text engine could still have accessed the original text pointer
    instead of the copied one for index calculations and thus calculate something
    completely wrong which in turn could trash memory.

2009-09-01 Thore Böckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: modified the default menu type to match the needed index
    shift by the modification to Window.c.
  * Window.c: the type of the standard menus was always off by one as soon as
    this setting was modified for the first time, because the cycle gadget in
    the settings window doesn't offer the necessary "none" entry which would be
    needed for the indexing to be correct. But a "none" item doesn't make any
    sense as the menus are needed. A bit broken by design, I must say.

    You MUST either use the supplied default MUI configuration or adapt your
    Menu settings to your preferred state and save this one. Your current
    configuration will no longer produce the known behaviour. Unfortunately this
    cannot be automated, so you have to do it yourself.

2009-08-30 Thore Böckelmann <tboeckel@gmx.de>

  * #?.ct: removed a no longer existing string.
  * locale: added a still missing string and adapted the german translation.

2009-08-30 Jens Langner <Jens.Langner@light-speed.de>

  * locale, misc: translated a whole bunch of previously non-localized
    strings. Now hopefully all strings should be localized and part of MUI.cd.

2009-08-29 Thore Böckelmann <tboeckel@gmx.de>

  * locale: fixed the phrasing of the MSG_CFGL_INTERFACES_AREXX item in the
    catalog again.

2009-08-29 Jens Langner <Jens.Langner@light-speed.de>

  * locale: fixed the phrasing of the MSG_CFGL_INTERFACES_AREXX and
    MSG_CFGB_UseRexx item in the catalog.

2009-08-27 Thore Böckelmann <tboeckel@gmx.de>

  * muiconfig.c: clicking on the "Register" button in either the main MUI prefs
    or the about window now opens www.sasg.com via launch-handler in a browser
    window instead of launching the outdated and crashing registration
    application. It is not clear if it is still possible to register MUI at all,
    so we leave this to the original author.

2009-08-26 Thore Böckelmann <tboeckel@gmx.de>

  * doc/Listview/MUIA_Listview_SelectChange: pointed a bit more out that this
    attribute will only be triggered for multiselect lists and not for single
    select lists, as developers seem to be a bit confused.

2009-08-24 Thore Böckelmann <tboeckel@gmx.de>

  * locale/MUI.cd: added proper index numbers to all translateable strings to
    avoid unwanted index shifts in case an unused string is removed.
  * include/features.h: reactivated the accidently disabled gradients.

2009-08-20 Thore Böckelmann <tboeckel@gmx.de>

  * Aboutmui.c: made all fixed strings translateable.
  * locale/MUI.cd, locale/german.ct: removed one unused string and completed the
    german translation.

2009-08-19 Thore Böckelmann <tboeckel@gmx.de>

  * locale/german.ct: slightly updated the german translation. This, if not all,
    really needs updating. Several strings have been translated a bit lazy.
  * Settingsgroup.c, Settingsgroupr.c, MUI.cd: added the last remaining
    untranslated strings.
  * Settingsgroup.c, Settingsgroupr.c: use the function provided by muilocale
    instead of an own one to translate certain arrays of strings.
  * Makefile, misc: created maintainable catalog translation files from the
    monolithic mui.mtl file and dumped that outdated custom catalog generation
    stuff in favour of FlexCat.
  * muilocale.c, misc: converted the complete locale stuff to use FlexCat to
    generate the source code. This finally enables us to let the translators do
    their work.

2009-08-18 Thore Böckelmann <tboeckel@gmx.de>

  * muilocale.c, misc: changed MUIL_GetString prototype to return CONST_STRPTR
    as this is what locale.library is documented to do. Fixed all function calls
    to respect this change.
  * muilocale.c: changed MUIL_LocalizeArray prototype to accept a CONST_STRPTR
    array as this is what locale.library is documented to do.

2009-08-13 Thore Böckelmann <tboeckel@gmx.de>

  * Makefile: reordered dependencies to build the single modules in alphabetical
    order.

2009-08-07 Thore Böckelmann <tboeckel@gmx.de>

  * misc: added lots of "const" keywords to be able to pass constant strings
    around without having to cast them to "char*" each time.
  * muigfx.c: fixed all text engine related parts to operate on a copy of the
    supplied text instead on the original, because for image specifications the
    string will be modified and hence will cause DSIs in case the supplied
    string is some kind of "const char*" instead of just "char*".

2009-08-03 Thore Böckelmann <tboeckel@gmx.de>

  * Area.c: fixed the IBrowse DnD offset issue.

2009-08-02 Thore Böckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: disabled the non-working default PubScreen checkmark.
  * muipop.c: fixed the nasty partly left over drop marks, again.

2009-08-01 Jens Langner <Jens.Langner@light-speed.de>

  * misc: fixed a bunch of compiler warnings and bumped revisions for a new
    betatester release.

2009-07-27 Thore Böckelmann <tboeckel@gmx.de>

  * muipop.c: fixed the nasty partly left over drop marks.

2009-07-26 Thore Böckelmann <tboeckel@gmx.de>

  * muipop.c, Area.c: implemented real double buffered DragNDrop including
    transparency instead of ghosted display. MUI now does the same stuff as
    Workbench does while dragging icons around. This makes DnD as flickerless
    as possible.
  * doc/Area/MUIA_ShowMe: corrected the AutoDoc to reflect the true nature of
    this attribute. Objects with this attribute set to TRUE will be displayed,
    while those with this attribute set to FALSE are hidden. Before the
    documented logic was reversed.

2009-06-30 Jens Langner <Jens.Langner@light-speed.de>

  * muipop.c: reverted the last change, as it causes complete lock ups as soon
    as a DnD operation requires large screen changes (i.e. scroll a list view).
    Unfortunately the prematurely aborted DnD operations are back again now, but
    this is still better than a lock up.

2009-06-08 Jens Langner <Jens.Langner@light-speed.de>

  * muipop.c: fixed a bug in the HandleLockedStuff() functionality for the
    internal Drag&Drop management of MUI. Now the screen on which the D&D
    operation is performed will be locked via the OS4 specific LockScreen()
    function instead. This should solve issues with drag&drop operations
    being suddenly canceled in case some other intuition operations required
    the locked screen.

2009-05-13 Jens Langner <Jens.Langner@light-speed.de>

  * Group.c, muiprog.h: extended the maximum group page counter to 32bit instead
    of 8bit to be able to have more than 127 pages. Also extended the
    MUIM_InitChange counter to 32bit to be on the safe side in case an
    application makes heavy use of nested MUIM_InitChange invocations. Finally
    adapted change counter check to keep the values >= 0.

2009-05-04 Jens Langner <Jens.Langner@light-speed.de>

  * imageheader.c: changed return value of some functions to match the required
    prototypes for the callFunction() call.

2009-04-30 Jens Langner <Jens.Langner@light-speed.de>

  * updated the SDI headers to their latest fixed versions.

2009-04-24 Jens Langner <Jens.Langner@light-speed.de>

  * misc: all UserLib#?() functions are now called with correct stack size check
    and unified prototype layout.
  * libheader.c, imageheader.c, mccinit.c: added a default stack size of 16K
    for the $STACK cookie.

2009-04-21 Jens Langner <Jens.Langner@light-speed.de>

  * imageheader.c: applied all changes done for libheader.c here as well.

2009-04-15 Jens Langner <Jens.Langner@light-speed.de>

  * imageheader.c: adapted the library init code of our BOOPSI scrollbar
    images to what we have for our library and classes. Now everything should
    be a bit more consistent and uptodate.
  * misc: fixed some minor compiler warnings by adding some missing type
    casts as we are using the Object* type now.

2009-04-12 Jens Langner <Jens.Langner@light-speed.de>

  * misc: replaced several APTR types by Object* or similar to reflect their
    true nature and due to recent changes in the OS4 SDK.

2009-04-08 Jens Langner <Jens.Langner@light-speed.de>

  * Listtree.c, libheader.c: replaced the sprintf() calls by snprintf(). Also
    removed the custom sprintf() implementations completely as they are no
    longer needed.
  * muiconfig.c: replaced the sprintf() calls by snprintf().
  * Application.c: replaced the sprintf() calls by snprintf().
  * Volumelist.c: replaced the sprintf() calls by snprintf().

2009-04-07 Jens Langner <Jens.Langner@light-speed.de>

  * demos/#?: replaced all sprintf() calls by snprintf().
  * misc: added lots of typecasts and "const" keywords to please GCC due to the
    recently added -Wwrite-strings option.

2009-04-01 Jens Langner <Jens.Langner@light-speed.de>

  * mccinit.c: changed stackswap_call() function to its latest fixed version.
  * libheader.c: changed stackswap_call() function to its latest fixed version.

2009-03-31 Jens Langner <Jens.Langner@light-speed.de>

  * Makefile.os4: enabled a whole bunch of compiler warnings so that we
    can catch all potential issues more easily. Also already fixed some
    warnings related to const char usage.

2009-03-29 Jens Langner <Jens.Langner@light-speed.de>

  * libheader.c: lots of code cleanup to make things more readable.

2009-03-26 Jens Langner <Jens.Langner@light-speed.de>

  * include: updated SDI headers to their latest fixed versions.

2009-03-23 Jens Langner <Jens.Langner@light-speed.de>

  * Imageadjust.c: fixed broken recursive directory scanning.
  * imageheader.c: added dummy variable for broken binutils 2.18.

2009-03-22 Jens Langner <Jens.Langner@light-speed.de>

  * misc: reworked the version/date strings to be more easily maintainable.
  * mccheader.c,mccinit.c: replaced the old and properitary mccheader.c file
    with the more common and generic mccinit.c library initialisation code
    for the few MCCs we have in our repository.
  * libheader.c: more adaptions to the libinit code so that UserLibExunge()
    and friends is only called within their respective LibXXXX() functions.
  * include: updated the SDI headers to their very latest versions.
  * libheader.c, misc: removed the USE_EXPUNGECLOSELIB from all sources since it
    is a very bad idea from the beginning to close some other libraries during
    LibClose() as the calling library can be opened again at any time and then
    the former valid library bases are gone.

2009-03-21 Jens Langner <Jens.Langner@light-speed.de>

  * muispecial.c, muihelp.c, muiwinborder.c, muiwinscroller.c: added definition
    of USE_EXPUNGECLOSELIB where it is necessary. In general this definition is
    needed whenever the UserLibExpunge() function must only be called if the
    library is to be expunged, but not yet when lib_OpenCnt decreases from 1 to
    0.
  * libheader.c: the return of UserLibExpunge() is checked now and all the
    opened libraries are closed on success only now. This is necessary for
    muigfx.library whose UserLibExpunge() function may signal failure in case
    there are still active screen notifications.
  * muiwinborder.c, muiwinscroller.c: removed the CloseLibrary() calls from
    UserLibExpunge, because all the used libraries are closed by the functions
    provided by libheader.c already.
  * libheader.c: removed double close/expunge of opened sub libraries which
    caused crashes as soon as the using library was expunged.
  * libheader.c: added missing ReleaseSemaphore() during LibClose() which
    prevented further LibOpen() calls to finish.

2009-03-15 Jens Langner <Jens.Langner@light-speed.de>

  * libheader.c, misc: rewrote the library init code to be somewhat more
    compatible to what other projects out there generally use for shared
    libraries. Please note that there still seems to be something missing
    as during init of third party mcc's the lib init of muimaster.lib seems
    to freeze somehow. So there is still some work to do ;)

2009-03-14 Jens Langner <Jens.Langner@light-speed.de>

  * debug.c: use local variables for SysBase and DOSBase to avoid overwriting
    the global ones.

2009-02-27 Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: reverted everything back to the original state. Border
    gadgets seem to be heavy stuff. Seeing them does not mean that they are
    working at all...
  * muiwinborder.c: slightly modified the border gadget creation again, because
    the order of the gadgets was reversed due to the previous change.

2009-02-26 Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: slightly modified the window border gadget creation to use
    intuition's ability to link the gadgets itself instead of doing this
    ourself.

2009-02-22 Jens Langner <Jens.Langner@light-speed.de>

  * Gauge.c, Volumelist.c: replaced all floating point variables by 64 bit
    variables.

2009-02-09 Jens Langner <Jens.Langner@light-speed.de>

  * Window.c: fixed the broken copyxyw() and cmpxyw() macro replacements. The
    macros operated on ULONGs and not just on UWORDs.
  * muirexx.c: the switch from CreatePort() to AllocSysObject() omitted the port
    name and hence made some programs fail.

2009-02-07 Jens Langner <Jens.Langner@light-speed.de>

  * misc: removed all remaining warnings about typed-punned warnings. Also
    added some more Warning flags to the Makefile, but didn't enable them
    yet because they throw another bunch of warnings which we have to
    address step by step.

2009-02-06 Jens Langner <Jens.Langner@light-speed.de>

  * muiconfig.c: replaced the last remaining Execute() call by System().
  * demos/#?.c, Makefile.os4: modified all demo programs to be compilable for
    OS4. There are some warnings, but these are not critical and all in all the
    demos are meant to demonstrate the basics of MUI and not of clean AmigaOS
    programming.

2009-01-25 Jens Langner <Jens.Langner@light-speed.de>

  * Dirlist.c: added NP_Child tag when creating the reader process under OS4
    as the created sub process is a real child and one never knows if that
    process or the hooks called by it use newlib or not.
  * Popasl.c, muilowlevel.c, muispecial.c: added NP_Child tag for all other
    CreateNewProc() calls.
  * muilowlevel.c: removed the NP_Child tag again, because the subprocess does
    not necessarily end before the parent process.
  * Popmenu.c: the popup menu's window will now be opened as a tool box window
    (never active) and with a fixed opacity of 100% regardless what the user
    configured for inactive windows to make it always 100% opaque instead of
    semitransparent.

2009-01-17 Jens Langner <Jens.Langner@light-speed.de>

  * Settings.c: replaced both Execute() calls by SystemTags() and made the call
    asynchronous. This required to pass own handles for input and output.

2009-01-14 Jens Langner <Jens.Langner@light-speed.de>

  * misc: replaced the deprecated pool, port and IORequest creations by calls
    to AllocSysObject().
  * misc: replaced the deprecated Examine() and ExNext() calls by the new OS4
    directory scanning API.
  * misc: replaced some old hand crafted bitmap creations by proper calls to
    AllocBitMap().
  * muihelp.c: changed the hand crafted invisible bubble help mouse pointer to
    one created as an instance of pointerclass.

2008-08-30 Jens Langner <Jens.Langner@light-speed.de>

  * notify.c: on the use of MUIM_CallHook, the return value of the hook
    function will now be used instead of always returning zero. This should
    be more intuitive and useful. Also adapted the documentation, accordingly.

2008-07-27 Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: once again reworked the way the window border gadgets
    are handled and added. Now it should be way more consistent to the
    official way, e.g. without having to add a fake separater gadget and so on.
  * Application.c: fixed a bug in the eventloop handling for the IconifyPort
    where a while() should have been used for the GetMsg() instead of catching
    messages on the iconify port during our general event loop.

2008-07-25 Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: changed the AddGadget() calls to a single AddGList()
    class so that the window refresh is reduced when the window border gadgets
    are added.
  * Window.c: exchanged a RefreshWindowFrame() call against a RefreshGList()
    call, which seems to be more appropriate.
  * muiwinscroller.c: removed a redundandant statement

2008-07-20 Jens Langner <Jens.Langner@light-speed.de>

  * Application.c, muigfx.c: fixed another problem with the screennotify
    functionality where the openwb/closewb stuff didn't work as expected.
    Please note that this change requires intuition.library v53.3 to work
    properly.

2008-07-15 Jens Langner <Jens.Langner@light-speed.de>

  * Levelmeter.c: changed the text color for drawing the labels of a
    levelmeter display to use the shin pen instead of the highlight pen.

2008-07-07 Jens Langner <Jens.Langner@light-speed.de>

  * muiscreen.c: fixed a possible non-closed library and simplified some name
    generations.

2008-07-04 Jens Langner <Jens.Langner@light-speed.de>

  * Settings.c: simplified the group list name generation a bit.
  * Volumelist.c: fixed the "off by one" volume name copying. Also fixed the
    the obscure length limiting while copying the volume name a bit.

2008-07-02 Jens Langner <Jens.Langner@light-speed.de>

  * Knob.c: added the character location for the "undefined glyph". This fixes
    the recoverable alerts about defective glyphs. Thanks to Stephan Rupprecht
    for this hint on the os4invite mailing list. Additionally the current level
    will be drawn with the shine pen instead of the mark pen now.

2008-06-28 Jens Langner <Jens.Langner@light-speed.de>

  * muipop.c: during drag'n'drop operations the dragged objects are now drawn
    alpha blended with 50% transparency instead of the usual gritted mask if
    the screen has a depth of at least 15 bits.

2008-06-26 Jens Langner <Jens.Langner@light-speed.de>

  * Area.c: a possible caps lock qualifier will now be stripped before comparing
    the pressed key sequence against hotkeys, thus being able to use the hotkeys
    now even if caps locks is active. This fixes bug #4120.
  * Configdata.c, prefs.c, Settings.c: replaced the old global config name
    by "<<Global>>.prefs" for those people which cannot display the double
    arrows because of their locale settings. The old file will be tried never-
    theless, in case the new file doesn't exist. Saving the configuration will
    save to the new file only.

2008-06-25 Jens Langner <Jens.Langner@light-speed.de>

  * misc: replaced several more strcpy()'s and sprintf()'s by strlcpy() and
    snprintf().
  * muiscreen.c: replaced some more strcpy()'s by strlcpy().
  * Popmenu.c: color pens allocated via MUI_ObtainPen() must be converted with
    MUIPEN() before they can be passed to SetAPen() and similar functions.

2008-06-24 Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c, muiconfig.c, muiscreen.c, Dataspace.c: removed all global base
    variables for iffparse.library and replaced them by local variables. Before
    the global variable was NULL'ed after usage making the libraries no longer
    reentrant. One of two processes calling the affected functions must crash
    as soon as the first one left the function and set IFFParseBase to NULL
    while the second one still was calling functions of iffparse.library, but
    now with a NULL base pointer.
  * muigfx.c: simplified the loading of brush images a bit by passing around a
    single structure only instead of lots of single pointers. This should help
    tracking down a possible race condition producing a crash on OS4 when
    starting more than one MUI application at a time (i.e. YAM and IBrowse).
  * muigfx.c: added some more semaphore locks where they could be necessary
    to avoid possible race conditions.

2008-06-23 Jens Langner <Jens.Langner@light-speed.de>

  * Bitmap.c, Popasl.c, masterinit.c, features.h: enabled alpha channel support
    for Bitmap objects and font styles for font requesters. Alpha blitting is
    done via the new BltBitMapTags() function of graphics.library V51+.

2008-06-22 Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: added the missing (unused) parameters for some draw functions,
    just for the case this could have caused any problems.
  * Imagedisplay.c, Pendisplay.c: hopefully fixed that wrong gradient background
    issue by forcing the affected classes to clear their background completely
    instead of just the surrounding 4 border stripes.

2008-06-19 Jens Langner <Jens.Langner@light-speed.de>

  * masterclass.c: the class interface is now DropInterface()'d after each call
    of MCC_Query if it was GetInterface()'d right before the call.

2008-06-18 Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: slightly modified the string->RGB conversion.
  * Imageadjust.c: fixed another possible string buffer overflow when composing
    the image spec string.
  * Applicaton.c, Text.c, Gauge.c: removed the AvailMem() checks for OS4 since
    they are completely senseless with a working pager.
  * all: set some properties and changed the header in vastubs.c
  * vastubs.c: forgot to check in the var args stubs.

2008-06-17 Jens Langner <Jens.Langner@light-speed.de>

  * Application.c, muigfx.c: slightly reworked the screennotify handling again
    to make an application automatically iconify in case the workbench is
    closed due to a screenmode change or so. Please note, however, that this
    requires intuition.library v53 and IPrefs v53 to work properly.
  * muigfx.c: slightly reworked and fixed the screennotify handling which is
    used to clear all pens and image caches and which was not working
    correctly in previous versions.
  * misc: various changes to make everything compilable for OS3 again. The
    resulting build doesn't yet fully run on OS3, but at least some parts are
    working.
  * misc: replaced most occurences of strcpy, stccpy, strcat and sprintf by
    their length limited counter parts.

2008-02-26 Jens Langner <Jens.Langner@light-speed.de>

  * Listview.c, Scrollbar.c, Virtgroup.c: changed the AmigaOS4 WheelX/WheelY
    scroll wheel interpretation to respect the wheel acceleration factor rather
    than always scrolling the same distance. This should increase the scroll
    wheel speed in case the wheel is used more quickly and the wheel
    acceleration factor is properly configured in the SYS:Prefs/Input
    configuration.
  * muirexx.c, muigfx.c, Virtgroup.c, Pubscreenlist.c, Bitmap.c: fixed some
    minor compiler warnings
  * misc: updated copyright year/information to match 2008

2007-11-18 Jens Langner <Jens.Langner@light-speed.de>

  * muiconfig.c: tuned the default look&feel for OS4 to have the listview
    handling set to "shifted" instead.

2007-11-17 Jens Langner <Jens.Langner@light-speed.de>

  * Gauge.c: the standard text pen will be used for the text within a gauge.
  * Cycle.c: fixed the InnerTop/InnerBottom handling which where slightly
    incorrect so that in case gradients were used for a ButtonFrame, the cycle
    gadget will now be drawn correctly.

2007-11-11 Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: finally fixed the gradient color drawing routines by changing
    the corresponding functions to directly us the generalized DrawGradient()
    function available on AmigaOS4.

2007-11-03 Jens Langner <Jens.Langner@light-speed.de>

  * tools/muiconfig.c: changed default/fallback OS4 menu behaviour to open
    popup menus in "auto" mode rather than forcing sticky mode. In addition,
    all font configuration settings are now allowed to be changed even if
    no MUI keyfile was found.

2007-11-03 Jens Langner <Jens.Langner@light-speed.de>

  * tools/muiconfig.c, Window.c: changed default fallback look&feel for
    an AmigaOS4 build to match the default OS4 look&feel as much as possible
    and even without having a valid keyfile installed. So on OS4 installations
    without any keyfile at all MUI should now popup with a default look&feel
    similar to what the default Reaction look&feel is.

2007-09-14 Jens Langner <Jens.Langner@light-speed.de>

  * Rectangle.c: fixed bug where MPEN_SHINE was used for a BarTitle instead
    of a HIGHLIGHTTEXTPEN like it is done in Group.mui. This should fix
    graphical issues where the way the Rectangle highlights a horiz. bar
    didn't match what the documentation explained.

2007-08-19  Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: when using a const (read-only) character string for specifying
    MUIA_Image_Spec, an illegal access occurred due to the imgcache routines
    temporarly modifying the spec string. Now a temporary buffer will be
    generated instead which should fix the issue.

2007-06-12  Jens Langner <Jens.Langner@light-speed.de>

  * Menuitem.c: when a lowercase menu shorcut letter was specified (e.g. in a
    catalog) it wasn't possible to use that menu shortcut due to a case
    sensitive compare. Now the specified shortcut key will be converted to
    an uppercase letter when comparing the pressed key with the menuitem's
    shortcut.
  * misc: updated copyright year to 2007 and compiled all sources with the
    latest GCC 4.2.0 compiler version.

2006-12-16  Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c, Settingsgroup.c: increased the MAXFONTLEN to 107 which represents
    the real maximum length for font values which are more or less the same
    length like a filename can be on newer AmigaOS systems.

2006-12-15  Jens Langner <Jens.Langner@light-speed.de>

  * Application.c: fixed another issue with a NextObject() in TempCloseWindows()
    which didn't take respect of the fact that during the iteration the next child
    might have been actually removed from the childList of child object of the
    application. Now the iteration will be immediately restart as soon as
    such a situation might have happend. This should fix issues with iconifying
    windows and situations where such an operation throwed an illegal data access
    exception (DSI).

2006-12-14  Jens Langner <Jens.Langner@light-speed.de>

  * Group.c: fixed a major bug in the child iteration code of MUIM_Draw. The
    way the group class did iterate through its children via NextObject()
    didn't take into account that it might happen that in a deeper recursion
    of that method, a child was suddenly removed from the child while
    iterating. Now MUI checks the muiRenderInfo() right before using each
    child of the NextObject() iteration. This should hopefully fix the
    illegal access to disposed child nodes which happened when e.g. NListview
    was doing an OM_REMMEMBER on a vertical scrollbar for hiding it. Now
    that operation should be somewhat more safe.

2006-12-06  Jens Langner <Jens.Langner@light-speed.de>

  * misc: last preparations for the final OS4 release version of MUI 3.9

2006-12-06  Stefan Burström <stefan@ibrowse-dev.net>

  * Window.c: MUI previously had a bug if a sleeping window was resized, the
    window would not get updated. In fact, it didn't get updated until you
    resized it next time.

2006-09-09  Jens Langner <Jens.Langner@light-speed.de>

  * Gauge.c: fixed a minor bug in the gauge size calculation which caused
    the gauge width to drop < 0 and prevented it from displaying correctly.

2006-06-01  Jens Langner <Jens.Langner@light-speed.de>

  * Text.c: fixed a minor bug in the CopyToClipboard functionality where an
    empty MUIA_Text_Contents ("") caused the highlight function to produce
    an illegal access.

2006-05-29  Jens Langner <Jens.Langner@light-speed.de>

  * List.c: revised the previously applied fix once again as using strdup()
    and free() caused other problems as well.

2006-05-28  Jens Langner <Jens.Langner@light-speed.de>

  * List.c: fixed a bug where the colinfoAlloc() function did write to the
    column definition string supplied by MUIA_List_Format which is often
    a read-only string.
  * misc: change the used runtime C library from clib2 to newlib for the
    OS4 target. Please note that we still concentrate on porting MUI4 and
    that all further changes will just be last minute fixes and absolutely
    required changes. No further big changes are planned on that MUI 3.9
    branch.

2005-12-17  Jens Langner <Jens.Langner@light-speed.de>

  * final OS4 relevant housekeeping of the MUI 3.9 sources as we will
    concentrate on porting the MUI4 sources.

2005-09-30  Jens Langner <Jens.Langner@light-speed.de>

  * misc: updated sources to match the latest changes in the OS4 SDK.
    Also removed all existing "intuition/iobsolete.h" usages.

2005-07-30  Jens Langner <Jens.Langner@light-speed.de>

  * Virtgroup.c: changed the wheelmouse scrolling distance to always scroll
    1/6th of the displayed area instead of scrolling the fixed value of 50
    pixels in each direction. This should allow for a more smooth and
    intuitive way of scrolling with the wheelmouse through a virtual group.
  * misc: modified wheelmouse aware source code to take respect of the new
    AmigaOS4 specific IDCMP_EXTENDEDMOUSE events supported since
    intuition.library v51.28+. This should enable full wheelmouse support
    in those internal MUI classes which already where wheelmouse-aware by
    querying wheel events via the old newmouse "standard".

2005-07-24  Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: fixed a bug in the windowborder gadget code where we did add
    the gadgets always to the top of the gadget list and therefore overwrote
    the system gadgets if a window was reduced to smaller sizes. Also added a
    check which should prevent further window distortion if the gadget is
    supposed to be drawn outside the window limits.

2005-07-23  Jens Langner <Jens.Langner@light-speed.de>

  * all: fixed some more GCC4 dependent signedness compiler warnings.
  * Window.c: fixed a bug in the CalcMinMax() routines where on OS4 the min/max
    values of a window were calculated by using the WBorTop value of a screen
    rather than querying GUIA_WindowBorderTop like it is required since
    intuition.library v51.28

2005-07-09  Jens Langner <Jens.Langner@light-speed.de>

  * all: fixed some GCC4 dependent signedness compiler warnings.
  * Window.c: lowered the probability of not executed intuition menu
    invocations, which in fact should fix bug #1200. The problem was/is that
    some of the events we are issuing with AddIEvents() are somehow getting
    lost/not executed by intuition if there is an high amount of other events
    going on (e.g. MOUSEMOVE). Previously MUI did just issue one single
    event of code IECODE_RBUTTON with AddIEvents() and any subsequent
    RBUTTON input event was skipped. This had the effect that on a high load
    of scheduled events the intuition menu never actually popped up. Now MUI
    will try to be more tolerant and will try upto 10 times to finally make
    the intuition menu appear.

2005-06-04  Jens Langner <Jens.Langner@light-speed.de>

  * all: bumped revisions of all components due to upcoming OS4 pre-release
    update 3.

2005-05-22  Jens Langner <Jens.Langner@light-speed.de>

  * Pubscreenpanel.c: fixed a crash bug where a Pubscreenpanel object may
    have hanged during the display phase if it was compiled with optimization
    enabled.
  * muigfx.c: slightly reformatted some code passages for better readability and
    also to remove some compiler warnings.
  * makefile.aos4cc: added -Wno-pointer-sign so that pointer signedness warnings
    are being suppressed if compiled with gcc 4.0.0 and upwards.
  * Family.c, Group.c: change DoChildMethods() to be static functions only with
    a proper function prototype.
  * List.c: fixed a possible uninitialized variable situation which may have caused
    some dangerous effects.
  * prefs.c: putted $STACK definition to the start of the file so that it may
    appear at the beginning.

2005-05-19  Jens Langner <Jens.Langner@light-speed.de>

  * misc: changed all MEMF_PUBLIC allocations to use MEMF_SHARED on AmigaOS4
    instead.

2004-05-12  Stefan Burström <stefan@ibrowse-dev.net>

  * mastermisc.c: fixed a bug in the MUI_Layout() method where only the 16bit
    equvialent of _top() etc. has been used. This caused some large virtual
    groups to fail if they have an own custom layout hook.

2005-05-08  Jens Langner <Jens.Langner@light-speed.de>

  * Pubscreenlist.c: fixed some minor compiler warnings.

2005-04-10  Jens Langner <Jens.Langner@light-speed.de>

  * m68k_stubs: updated the m68k OS4 stubs to the latest generated by
    fdtrans v51.14.

2005-03-08  Jens Langner <Jens.Langner@light-speed.de>

  * Group.c: implemented own KillNotify method for the group class as just
    calling KillNotify on the parent object is not enough. Imagine if you
    have a list of childs and you call MUIM_Notify on the group, then
    the MUIM_Notify wrapper in the Group may set notifies for every child
    object. Now if you call KillNotify on a group is previously didn't
    kill all notfies which in fact caused troubles with the Listview
    implementation because there one might set notifies depending
    on attributes of a ListObject.

2005-02-28  Jens Langner <Jens.Langner@light-speed.de>

  * Cycle.c: fixed bug where specifying MUIA_Cycle_Entries == NULL during
    object generation caused MUI to crash because the dummy entry wasn't
    specified as a static variable. Also added the same dummy entry
    placement for the OM_SET method.

2005-01-20  Jens Langner <Jens.Langner@light-speed.de>

  * m68k_stubs: regenerated all m68k stubs with latest version of
    fdtrans v51.9 tool. Also generated now possible C stubs instead
    of those old PPC-ASM stubs for better readability.

2004-11-14  Jens Langner <Jens.Langner@light-speed.de>

  * popmenu.c: fixed a bug in the popupmenu creation routines where it
    happened that a non menudisplay parent object caused a basepage
    exception.

2004-11-10  Jens Langner <Jens.Langner@light-speed.de>

  * muiscreen.c: adapted screen close image usage to the new existing
    SCLOSEIMAGE gadgets implemented in sysiclass of the latest
    intuition.library v51.

2004-11-07  Jens Langner <Jens.Langner@light-speed.de>

  * muiwinborder.c: modified window border images to use the newly
    introduced "SCREENSIMAGE" instead of the own drawed jump to screen
    button. (requires at least intuition.library 51.11)

2004-10-24  Jens Langner <Jens.Langner@light-speed.de>

  * m68k_stubs: updated m68k->PPC cross call stubs to latest versions
    generated by fdtrans 51.1

2004-10-05  Jens Langner <Jens.Langner@light-speed.de>

  * final compile for next OS4 prerelease update (v51)
  * Window.c: fixed a recently introduce window refresh bug where
    window borders were not refreshed correctly if the window carried
    any BOOSPI gadget.

2004-08-18  Jens Langner <Jens.Langner@light-speed.de>

  * masterinit.c: bumped the minimum required OS4 kernel version to
    51.10 as this version includes another emulator fix which is
    required to work with some application not properly handling
    hooky by directly doing a JMP and therefore causing a crash.

2004-08-17  Jens Langner <Jens.Langner@light-speed.de>

  * features.h: disabled the RESIZEBUFFER feature again as it just
    introduced additional problems with some applications (i.e.
    IBrowse refreshes)

2004-07-17  Jens Langner <Jens.Langner@light-speed.de>

  * Window.c: fixed a bug that prevented the jump to screen feature from
    working if a specific screen had been selected from the popupmenu
    of a window.
  * muigfx.c: fixed a bug in the FreePooled() stub function where we didn't
    free right from the start and eventually ended up in a crash.
  * muiwinborder.c: fixed another bug where window border gadgets were
    drawed too huge because of an incorrect tag value in the windowborder
    generation code.

2004-07-15  Jens Langner <Jens.Langner@light-speed.de>

  * gcc3: fixed some gcc version 3 related compiler warnings and verified
    that MUI now perfectly builds with the latest OS4 gcc 3.4.1 version.
    Now gcc 3 should be considered the new default compiler for building
    AmigaOS4 versions of MUI.
  * features.h: reenabled/fixed the RESIZEBUFFER functionality which only
    refreshs certain parts of a MUI interface if the window size really
    changed accordingly to the data in the AreaData structure.
  * muiwinborder.c: fixed a bug where an invisible windowbordergadget was
    drawn because the size of this particular required invisible gadget
    wasn't set to zero

2004-07-12  Jens Langner <Jens.Langner@light-speed.de>

  * Dirlist.c: fixed a bug in the Dirlist.mcc which resulted in incorrectly
    sorted directory listings because the compare hooks weren't correctly
    set up.

2004-07-11  Jens Langner <Jens.Langner@light-speed.de>

  * Listtree.c, ListtreeName.c: reworked the whole sources of the
    Listtree.mcc and ListtreeName.mcc classes and ported them to
    AmigaOS4.
  * mccheader.c: updated special mccheader.c class file to be compatible
    to AmigaOS4 and also MorphOS.
  * Application.c: fixed a bug where upon a use of the HELP key MUI
    crashed because it hasn't set the opened OS4 interface to the
    correct variable.

2004-07-10  Jens Langner <Jens.Langner@light-speed.de>

  * xenbar?.c, imageheader.c: ported the BOOPSI scrollbar classes to
    native OS4/PPC and added them to the makefile.

2004-07-08  Jens Langner <Jens.Langner@light-speed.de>

  * muirexx.c: added IsRexxMsg() and SetRexxVarFromMsg() calls to get rid
    of the warnings of still unimplemented rexx functionality. Now
    muirexx.library should be fully OS4 compliant.

2004-07-07  Jens Langner <Jens.Langner@light-speed.de>

  * Imageadjust.mui: fixed a missing #pragma pack(2) in the listtree header
    files which caued the imageadjust display to crash upon selecting
    of a image.

2004-07-06  Jens Langner <Jens.Langner@light-speed.de>

  * SDI_#?.h: updated SDI compatibility headers and added new STD_stdarg.h
    to the collection which simplifies the easy definition of variable
    argument functions a lot. Also adapted the sources accordingly.

2004-06-21  Jens Langner <Jens.Langner@light-speed.de>

  * libheader.c, SDI_compiler.h: moved the __attribute__((used)) definition
    that protects the ROMTag structure from being removed by gcc 3+ to the
    more general SDI_compiler.h include file and updated the files
    accordingly.

2004-05-26  Jens Langner <Jens.Langner@light-speed.de>

  * masterinit.c: added OS4 version checking to require at least version 51.4
    of the OS4 version if the ASMSTUBs are disabled, which should be the
    default now (no WITH_ASMSTUB define).

2004-05-23  Jens Langner <Jens.Langner@light-speed.de>

  * masterreq.c: fixed a crash situation where the wrong RawDoFmt() call
    had been executed on a native OS4 version.
  * cleanup: removed all remaining gcc compiler warnings which showed up
    with "-W -Wall". Now the build process should be much cleaner and it
    should be easier to identify potential bugs.

2004-05-22  Jens Langner <Jens.Langner@light-speed.de>

  * added support for intuition's screennotify feature of OS4. On an OS4
    compile MUI now takes care of open/close screen requests like with the
    former screennotify.library.
  * synced all OS3/OS4 makefiles to generate the same directory structure for
    the binaries which matches the one used in the distribution.
  * cleaned up the respository a bit and removed some unused kprintf()
    which were floating around.
  * SDI_lib.h: finally fixed the recently introduced enforcer hit which
    occurred on compiling MUI for m68k. Now everything should be
    up&running again on m68k.
  * Settings.c: as we have a multi-compiler environment now it is probably
    not a bad idea to place also some information in the Settings module
    to display the compiler name and version with which MUI had been
    compiled.

2004-05-21  Jens Langner <Jens.Langner@light-speed.de>

  * reorganized and cleaned up the sources a bit and verified that it still
    works on native OS4/PPC. Still the m68k throws enforcer hits now which
    has to be addressed soon.
  * all: moved the USE_SPRINTF define to features.h header file and renamed
    it to USE_OWN_SPRINTF which is more intuitive. Also moved the MySPrintf()
    function to the bottom of libheader.c so that we only have one of it
    floating around.

2004-05-17  Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: added missing GET/DROPINTERFACE() calls to the ReadBrush()
    function.

2004-05-15  Stefan Burström <stefan@ibrowse-dev.net>

  * Added HookEntry ASM stub for custom classes.
  * Fixed alignment problems of data sections of HookEntries.

2004-05-14  Jens Langner <Jens.Langner@light-speed.de>

  * masterclass.c: fixed the temporary HookEntry ASM stub which set the
    wrong jump address and caused the OS4 version not to work. Also fixed
    the code aligning accordingly.

2004-05-13  Jens Langner <Jens.Langner@light-speed.de>

  * adapted all shared library function vectors to use the new LFUNC_*
    macros of SDI_lib.h so that vararg functions are also included in the
    jump vectors on an OS4 build.
  * SDI_lib.h: replaced LIBENTRY() macro with some more individual macros
    which take automatically care of VarArgs functions and include them
    in the library function vector or suppress them on OS3 where those
    functions are no real function which should be specified in the
    libvector.

2004-05-12  Jens Langner <Jens.Langner@light-speed.de>

  * Settings.c: fixed a minor bug where we forgot to set the interface
    of the MCC on creation of the ShortHelp.

2004-05-11  Jens Langner <Jens.Langner@light-speed.de>

  * Application.c: the Fifo* functions are currently only used from one
    source file, so it is probably better to have them static right
    now.

  * fixed the m68k build which was broken by the mass changes during
    the last few days.

  * various: Replaced the recently introduced direct library stub
    function definitions by a more sophisticated set of macros which
    allow to maintain those OS4 specific library stubs more easily
    throughout the whole code. This should increase the source code
    portability as well as the readability of the code.

  * makefile.aos4cc: added cross-compiler specific makefile

2004-05-09  Stefan Burström <stefan@ibrowse-dev.net>

  * Added AOS4 style interface to muiwinborder

  * Removed HookEntry.S since it is not needed with the lates kernel

  * Added support for m68k classes

2004-05-08  Stefan Burström <stefan@ibrowse-dev.net>

  * Added AOS4 stubs for all library calls to be able to generate
    functioning AOS4 style libraries.

  * Added internal sprintf to avoid problems with libc sprintf on AOS4.

  * Misc bugfixes regarding Get/Drop interface.

  * Misc struct Interface *self additions to AOS4 versions of classes and
    libraries.

  * Added temporary HookEntry.s for Hook calls on AOS4

  * Added support for m68k class calls from PPC MUI

  * Changed makefile.os4 to actually work under AOS4 :-)

2004-05-07  Stefan Burström <stefan@ibrowse-dev.net>

  * prefs.c: Fixed opening of muilocale interface. Previously MUI would
    crash if muilocale wasn't found.

2004-05-07  Jens Langner <Jens.Langner@light-speed.de>

  * copyright.h: fixed version information to show the value we want to have
    in all our classes.

2004-04-09  Jens Langner <Jens.Langner@light-speed.de>

  * libheader.c: added FORCE_OS4PPC define checking which checks on startup
    of every lib that the exec version has a minimum of 50 and that the
    expansion library`s GetMachineInfo() function returns a known PPC
    hardware. This should prevent using a 68k build of MUI on non OS4/PPC
    machines.

2004-03-21  Jens Langner <Jens.Langner@light-speed.de>

  * ppc_stubs: added directory to generate the OS4 depending ppc stub files.
    Here one can generate all .l.main/.c.main/.m.main stub files if
    required.
    Please note that if we got all libaries and *.mui files successfully
    working on OS4/PPC we won't need to supply those files with the
    distribution anymore and just have to provide .m.main files for every
    .mcc out there. But until we haven't got all PPC stuff working this
    directory and the stub file generation in it can be of some help.

2004-03-20  Jens Langner <Jens.Langner@light-speed.de>

  * all: modified all sources to be somewhat more OS4 compatible. Now we
    are almost 95% done with the native OS4/PPC porting and need just to
    test all classes separatly on a PPC system so that we can assure that
    everything works as expected after the porting.
    Along with the porting process all major sources were cleaned up and
    still remaining 68k-ASM parts were removed. The build process was
    simplified by putting all object and binary files in separate
    directories. Please note that building a m68k or OS4 version have to
    be done with gcc now as this will be the prefered compiler for future
    MUI versions. SAS/C is really too old and buggy, sorry :).

2004-01-31  Jens Langner <Jens.Langner@light-speed.de>

  * masterclass.c: changed the definition of the CustomClassDispatcher
    a bit to reflect the correct function prototypes.
  * copyright.h: updated copyright message to reflect the new year.

2003-12-21  Jens Langner <Jens.Langner@light-speed.de>

  * makefile.m68k: changed makefile to use the -msoft-float compiler
    option per default so that no FPU code is produced. This is currently
    required due to the missing FPU emulation of OS4. If we get a full
    PPC version, we can probably remove that option again.

2003-08-23  Jens Langner <Jens.Langner@light-speed.de>

  * Dirlist.c: fixed bug in the Read-Dir Process initialization. Somehow
    it was illegal to pass userdata via a "faked" NP_Input definition,
    which caused the new dos v50 to raise an enforcer hit. Now we
    correctly pass the userdata via setting the tc_Userdata field and
    obtaining it via a FindTask(NULL)->tc_UserData access.
  * removed some tones of compiler warning with also removing some
    flaws in the code that caused some warnings. Now we should be nearly
    warning free with gcc. :)
  * forgot to link the math library to all our libraries, because libnix
    needs this math library for having a correctly working sprintf()
    implementation. For example, that caused that the Volumelist.mui
    class shows incorrect floating point values.

2003-08-04  Jens Langner <Jens.Langner@light-speed.de>

  * Slider.c: fixed a recently introduced bug where the wrong function
    where called for a MUIM_Draw method call to a slider.

2003-08-03  Jens Langner <Jens.Langner@light-speed.de>

  * dropped the 68k ASM IDEA cipher implementation in favour of a more modern,
    flexible and portable C implementation. Now everything necessary is
    ported to C, so we can try to get out our first OS4/PPC version.

2003-07-26  Jens Langner <Jens.Langner@light-speed.de>

  * modified all source files to fully compile with gcc 2.95.3 and libnix.
    Now we should be able to move on to a OS4/PPC version in future.
    Please note that gcc is the now prefered default+standard compiler used
    for future MUI builds. SAS/C support should be somehow considered
    obsolete and outdated.
    Also added a new gcc makefile which also takes respect of cross-compiler
    environments.

2003-07-06  Jens Langner <Jens.Langner@light-speed.de>

  * muiscreen.c: adapted screen closegadget creation routines to intuition v50
    behaviour. Doesn`t look nice but works. :)
  * muiwinborder.c: fixed titlebar gadget creation on use of intution v50.
    We now differ between creation of titlbar gadgets on v50 and prior to v50
    as the new intuition supports GA_Titlebar and don`t require to set the
    width and height of the images.

2003-06-12  Jens Langner <Jens.Langner@light-speed.de>

  * listview.c: a read-only listview didn`t allow a user to use the wheelmouse
    to scroll up/down. Now it is possible to also scroll read-only listviews
    with the wheel mouse.

2003-06-11  Jens Langner <Jens.Langner@light-speed.de>

  * added the more modern and uptodate compiler/OS independant SDI_compiler.h
    and SDI_hook.h headerfiles and cleaned up heaps of the current sourcecode
    to get rid of way too much "#ifdef __MORPHOS__" sections. Now the hook and
    compiler specific specifications are taken from the SDI_*.h header files
    which are available for nearly all compilers out there and are also
    compatible with MorphOS. In addition to that it should be much more easier
    now to get MUI compiled for a OS4PPC version.
  * images: replaced all main preferences images with a more modern glowicon
    set by Martin Merz.

2003-06-04  Jens Langner <Jens.Langner@light-speed.de>

  * popmenu.c: fixed enforcer hit where we issued a GetAttrs() call onto
    a invalid object. Now Popmenu.mui will first check if it is a real popup
    menu and that the parent of the menu is a object of class MUIC_Menu before
    it is going to check the enabled/disabled state of it.

2003-06-01  Jens Langner <Jens.Langner@light-speed.de>

  * window.c, application.c: fixed flaw in the window activation routines
    where MUI always activated one of the other windows of an application
    while closing a window. Now it will first analyse if the closed window
    was activated during the closing procedure and only if it was activated
    it will activate another window (or the main application window).
    By having this changed, MUI will now only get the window focus if
    really necessary after a window close operation. This is a more natural
    behaviour than the previous strict window activation handling.

2003-05-31  Jens Langner <Jens.Langner@light-speed.de>

  * menustrip.c, popmenu.c, window.c: fixed some more bugs in the whole
    menuhandling routines. MUI didn`t correctly manage the menuhierarchies
    and sometimes allowed to select disabled items or use the defined
    shortcuts even if the parent item was disabled. Now MUI should exactly
    behave like intuition when it comes to menu handling.

2003-05-30  Jens Langner <Jens.Langner@light-speed.de>

  * menu.c, menuitem.c, menustrip.c: fixed bug in the menustrip routines
    where it still was possible to trigger a menuitem by using the shortcut,
    even if the menuitem was set to disabled.
  * window.c: fixed a another small bug in the TopMenuOnDemand functions where
    it didn`t work in a non-debug version of MUI because the classnames are
    not set there.

2003-04-13  Jens Langner <Jens.Langner@light-speed.de>

  * removed all AOS4 defines. Now MUI will automatically choose the right
    winborder images, aswell as PEN allocations on runtime. Now there is no
    need to compile a seperate version for OS4 as we can use the standard build
    now. The only thing missing is now a proper GCC porting for OS4.

2003-04-06  Stefan Stuntz <stefan@stuntz.com>

  * preparations for proper gradient image handling. Not finished yet and it
    could get messy.

2003-03-06  Jens Langner <Jens.Langner@light-speed.de>

  * fixed MUIA_Version/Revision object query behaviour to not return a version
    or revision number if the OM_GET query had been performed on a superclass
    of the object. This should fix problems where a MUIA_Version/Revision
    returned the wrong values if the queried object didn`t catch those
    attributes and therefore progaged this query to the superclass and so on.
  * reactivated the EXPDATE value if MUI is compiled as a BETAversion. Also
    we just throw a expiration requester within muimaster.library or it gets
    to complicated if we have to check for expiratin within every sublibrary.
  * dropped the whole MUI020BASE stuff as we will provide special compiled
    versions in future instead of plugging everything into a mui020.library.

2003-02-28  Jens Langner <Jens.Langner@light-speed.de>

  * mastermisc.c: the ParseVersionString() function sometimes didn`t correctly
    parse the version date if there was something in between the version and
    the date identifier. Now MUI should also correctly identify version dates
    within those strings.

2003-02-26  Jens Langner <Jens.Langner@light-speed.de>

  * muigfx.c: if intuition v50 (dri_Version >=3) is found, MPEN_MARK is now
    mapped against SELECTPEN instead of FILLPEN. This is more accurate because
    a user can now specify a seperate color for the MPEN_MARK pen with the
    v50 intuition preferences.

2003-02-18  Jens Langner <Jens.Langner@light-speed.de>

  * Popmenu.c: the menus are now also selectable via a wheelmouse using
    the NM_WHEEL_UP/DOWN codes.
  * Popmenu.c: fixed bug where it was possible to select disabled menuitems
    and perform an action on them.

2003-01-29  Jens Langner <Jens.Langner@light-speed.de>

  * Window.c: fixed possible enforcer hit if the AppRootObject hasn`t
    got any cl_ID and we did the comparison to decide if we allow
    TopMenuOnDemand or not.

2003-01-22  Jens Langner <Jens.Langner@light-speed.de>

  * Volumelist.c: changed volume calculation routines to use double
    values to be more accurate and also show values >4GB. Also
    Volumelist.mui now recognizes ENV:, FIFO: and CONCLIP: as
    RAM nodes. Size values for RAM device nodes will also be showed
    now.
  * Window.c: now the TopMenuOnDemand feature only works if the
    AppRootObject of a Window is a Group.mui object or otherwise we
    can`t really know what the developer used as the RootObject of
    the Window. i.e. using a Register.mui object as the RootObject
    of a window had strange behaviour concerning the TopMenuOnDemand
    feature.

2003-01-16  Jens Langner <Jens.Langner@light-speed.de>

  * Window.c: fixed recently introduced enforcer hit. shame on me ;)

2003-01-06  Jens Langner <Jens.Langner@light-speed.de>

  * the generated intuition faked menu didn`t take respect of
    NM_COMMANDSTRING menu items which resulted in menuitems that could
    have had the same hotkeys.
  * the popmenu commandstring shortcuts were slightly drawn outside
    the menubox area. repositioned it a bit so that the shortcut
    images and commandstring texts are always showed correctly within
    the menubox borders.
  * made the doubleclick checks for activating/removing the TopMenus
    more accurate and reactivated the possibility to pop up the
    TopMenu at any time by doubleclicking the free space between a
    window border and the outmost MUI object. Perhaps we should make
    this user configurable if it`s still to pedantic.

2003-01-04  Jens Langner <Jens.Langner@light-speed.de>

  * moved _protos.h and .fd files into include directory and
    modified smakefile and other sourcefiles accordingly.
  * next cleanup step: moved all build tools to separate "tools"
    directory and updated smakefile accordingly.
  * moved alib_stdargs_protos.h and newmouse.h to include subdirectory.

2003-01-03  Jens Langner <Jens.Langner@light-speed.de>

  * moved .mbr and .brush files to images directory and changed
    depending files accordingly. This is one of the first steps to clean
    up the build directory/process a bit.
  * added .cvsignore file to prevent adding autogenerated files
    to the repository.
  * renamed CHANGES file to "ChangeLog" and turned it upside down
    to be more easily maintainable.

--- old changes (prior to 2003) -----------------------------------------------

also did some small adaptions to Intuition 4.0 (srupprecht).

cleaned-up all register paramters (srupprecht).

made a few changes to all source files to compile MUI under AmigaOS/68k
with gcc (srupprecht).

Replaced MUIA_Window_NoBackfill by MUIA_Window_BackfillHook which takes a
pointer to a hook for window backfilling (zapek)

Volumelist.mui now supports 4GB+ HDs for the MorphOS version (zapek)

Added MUIA_BitMap_Alpha. Requires MorphOS and a hi/true-color screen (zapek)

Added MUIA_Window_NoBackfill. Prevents unecessary rendering for windows having
objects covering their whole area (zapek)

Ported Popmenu.mui to MorphOS (zapek)

No longer depends on a linear system clock for delayed PushMethods (zapek)

MUIM_Application_SetPushMethodDelay,id,millisecs can be used to
set/change a delay on a specific pushed method. delayed pushed
methods will only be executed when the specified amount of
time in milliseconds has passed.

MUIM_Application_PushMethod returns an id now that can be
selectively killed with MUIM_Application_KillPushMethod,NULL,id

Added missing newlines to debug output from m_Notify_DISPOSE(). (duff).

MUIP_GetImageAttr() wouldn't use MUIPEN() macro when asked for
MUIIA_BASECOLOR, and that's why Popmenu.mui calculated wrong colours. (duff)

Now MCPs ending with .elf are opened as if they had no .elf extention so that
it's not necessary to have the 68k MCP anymore. (zapek)

MUI will now put textures in the VRAM of CyberGraphX4 systems giving a
noticeable displaying speed gain. Touch env:mui/vmemtextures to enable that
feature. (laire & zapek)

Added muiwinborder.class and muiwinscroller.class to XDEV2-part of makefile. I
also removed the two Listtree-files, as the resulting classes fail to run on
my system. (duff)

ehn_Priority is restored during MUIM_Window_RemEventHandler. (duff)

Fixed stupid bug where MUIM_KillNotify was not executed when no
set() was done on the object before.

MUIM_KillNotify on objects of group class was accidently forwarded to
children instead of being sent to parent class, making it impossible to
kill notifications set on group objects.

Added Listtree sources to cvs. It's still a major mess, but should at
least compile and work a little. I dont know if everything works though
since I dont have any apps making use of it (besides mui prefs image
adjustment). The prefs class is not built yet. Laire, don't touch it
yet! You will only mess it up even more! :-)

Fixed smakefile to not rebuild libraries unnecessarily.

MUI would forget to dispose a scrollbar object when a listview object
failed to create.

Replaced muipop.c/MUIP_HandleLockedStuff function parameters with
hooks. (laire)

Played around with padding, some structs in MUI word WORD aligned and
sucked. As a result, MUI might be faster on 020+ now. Full recompile
necessary. (laire)

Fixed the bloody mess Allan created with os.h. This file is strictly
stuntzi-only and not meant to do anything on the Amiga at all, neither
on classic OS nor on Morphos. Dont touch, dont include, dont open! :)

The expiration date was set forth some months, I don't know if there's a
special system for this, but at least it shouldn't bother me for some months
now :-) (duff)

os.h now includes <exec/types.h> and defines NULL as ((void *)0L), some
sources now include "os.h" since it seemed necessary -- someone (laire?)
please only commit versions which can be compiled on the Amiga, it's quite
tedious to spend my time on this... (duff)

MUI no longer changes task priorities when redrawing things. Was that really
necessary? Did it do any good?

When a bold or italic string was partitioned e.g. by highlighting a word or
similar (using escape codes) then the width returned from MUIG_TextDim() would
be too big because the extra bold or italic 'spacing' (added after text) was
included for each "substring". This was noticeable when marking over bold or
italic words in centered or right aligned strings (since the marking introduce
escape codes, i.e. partitioning of the string) and the width would be wrong,
causing the entire string to move (since the position of the string is based
on the width of the string and available space). I'm not sure wether this is a
fix or just a workaround, but at least strings won't move while marking. (duff)

Recompiled popmenu.mui with new mui.h (which fixed the problem with
mri_BalanceHook) -- the class will now use normal dithered shadows on CLUT
screens, the percentage count is ignored as only 50% looks good there. (duff)

Dtpic.mui uses PRECISION_IMAGE instead of PRECISION_EXACT.

Fixed a max size calculation problem in Numeric.mui. When
MUIA_Numeric_CheckAllSizes was used, MUI wouldnt check anything at all.

Prop.mui shouldn't swallow MUI keys which it doesn't use. (duff)

Sticky AI in popmenu will now opt for 'never' if RMB isn't released after 2
intui-ticks. (duff)

Popmenu will wrap around when pressing up or down on first or last item. (duff)

Keyboard triggered context menus no longer have the active entry set on
invocation.

Fixed the mess (unfreed objects, MUI_DeleteCustomClass(NULL), etc) laire
created when morphing around in Menudisplay.c.

Area class eats rawkey events mapping to muikeys when used.

Sets MUIA_Popmenu_Active to MUIV_Popmenu_Active_First for keyboard
triggered menus.

Always sets stickyness mode for menus opened by keyboard (ralt+rcommand).

Group class no longer distributes MUIM_HandleEvent.

Fixed event handler method of Register.mui class.

Renamed MUICFG_Popmenu#? to MUICFG_Menu#?

Added options for pulldown & popup menu stickness.

Cycle gadget now sets MUIA_Popmenu_Stickyness to
MUIV_Popmenu_Stickyness_Never. (duff)

"Embedded Menus" submenu is unavailable when window has no menu at all.

Updated Popmenu_mcc.h to use lowercase 'm' and renamed MUIA_PopMenu_PosY_Item
to MUIA_Popmenu_Active. There's also 3 new magic values for this tag (first,
last & none). MUIM_Popmenu_HandleInput is now called with an IntuiMessage and
should return TRUE if it wants to abort the menu. The method was btw renamed
to MUIM_Popmenu_HandleIMsg, I updated Menudisplay.c as well. (duff)

Popmenu: When a menu is opened using the keyboard, the first item is selected.
Stefan: you should probably set the first item active when the menu bar is
activated through the keyboard (ralt+rcommand). Arrow left/right will no
longer open/close submenus, but instead be given to the parent menu which, if
in horizontal mode will cause next/previous menu to open. This is also how
MagicMenu does it. (duff)

Played with event handler priorities again. For each group nesting
level, one is automatically added.

Fixed the Menus.c cvs problem by adding an env:stuntzi only version of
rcs tool.

Cycle-popups will no longer have the current item rendered as selected, if the
popup is configured to appear below the gadget. (duff)

Default setting for cycle popups is on active entry now instead of below
to match OS 3.5.

Fixed Popscreen.mui, killed by laire. What about testing classes before
committing them?

When Popobject class fails to create, it correctly disposes
MUIA_Popobject_Object now. This branch stayed allocated before.

No more shadow for first layer of window & screen pulldowns.

Added menu caching. As long as nothing changes, MUI won't recreate
MUIP_PopMenu_Item lists or gadtools stuff. Should considerably speed up
RMB response times on slow machines.

Added experimental code to re-enable support of system default menus.
Use setting "os menus" on menu page. This is kind of ugly since it fakes
RMB events. It seems to work well with and without MagicMenu installed.
Sometimes though, with MagicMenu running, I get a normal intuition menu
showing up instead (how can that be?) which will never close => reboot
necessary. Sounds a bit like a MM incompatibility but it only happens
very rarely and I haven't been able to track it down further. You have
been warned.

Popmenu.mui: two shadows which overlap should no longer make the background
darker than that of either shadows. Shadows which fall on a parent menu is
smaller, relative to the parent menu. (duff)

Popmenu.mui now uses the user setting for shadow intensity. However
MUIG_DoBalanceHook() sucks a little because it subtracts an RGB-value, and
doesn't scale it. So 50% doesn't scale the background to half its intensity,
but subtracts (128, 128, 128), which means shadows are now much darker :-( I
recommend using nothing more than 15%. (duff)

Menuitem.c no longer sets pi_Key for menus & items with sub menus.

Position of embedded menus is now adjusted with prefs and no longer
saved with window position. I can easily add such an option to prefs if
someone thinks it's necessary. Is it?

Disabled objects no longer popup their context menus on RMB.

Modified context menus of prefs. The "All xyz options" context menu is
no longer attached to the edit group but to the listview instead. RMB
activates the entry below the mouse first, then pops up the menu. This
would be a good thing (tm) for AmIRC's user list btw instead of that
space eating button bank. The "All Pages" menu is on the cycle gadget
meanwhile btw.

Implemented MUIA_Listview_HandleRMB. Set to TRUE to make a listview
activate the entry below mouse pointer on RMB as well as on LMB. RMB
event is not eaten to a popup menu afterwards.

Rearranged Menus page in prefs, added option to place the default menu.
You can also turn it off completely, RMB is then only used for popups.
Only makes sense together with embedded menus though. Does it make sense
at all?

Removed MUICFG_Popmenu_TitleLayout option.

Added Listview.c to cvs.

Listview class no longer eats space key when not in multiselect mode.

Popmenu: (duff)
 o MinWidth was used before adding right frame space/size.
 o Uses MUIG_OpenFont()
 o Frame is now drawn before entries -- this means only the first entry must
   be of type PIT_TITLE.
 o The given position is now also respected for MUIV_PopMenu_Type_Menu.
 o RMB should work again.

Added Popmenu.mui (binary) to CVS. (duff)

Listview class no longer eats space key when not in multiselect mode.

MUIM_ContextMenuBuild has to return MUIV_ContextMenuBuild_Default now to
make MUI show the window menu. If it returns NULL, nothing will happen.
This is for pre-MUI4 compatibility. MUI4 apps should always use event
handlers to detect RMB, not MUIM_ContextMenuBuild.

Included new Popmenu.mui.

MUIP_GetRenderInfo() now copies the pen array.

Popup menus use shadow tickness of 2 pixel except when opened from an
embedded menu.

Changed event handler priority of text marking to -10.

Messed around with event handler priorities again. it should be -1 for
buttons & stuff with a MUIA_InputMode, -2 it it's a group. one less (ie
-2 and -3) if the object doesnt have a MUIA_InputMode but is draggable.
In general, you should use pri 0 for your own event handlers. It still
feels a bit chaotic though.

re-enabled context menus for external classes.

menu cursor frame now has reasonable default setting.

Fixed ignoring of first mouseclick into inactive window (bug introduced
just recently).

Menudisplay.c now uses a sligtly different way of handling the active
object to fix some problems with frames hanging around when they
shouldn't. One problem remains though, if another window opens while a
Popmenu is active, MUI won't get the IDCMP_INACTIVEWINDOW message and
the mouseobject remains set. I added a workaround for this in
Menudisplay.c but it would still be better if Popmenu.mui would somehow
leave the INACTIVEWINDOW message in the queue.

IDCMP_INACTIVEWINDOW messages are now also sent when a window
is in sleep mode. This allows eg clearing the mouse object in
other windows when MUI_Request() is called.

A window's MUIA_Window_MouseObject is set to NULL when the window goes
inactive. IDCMP_MOUSEOBJECT is also sent in this case with
imsg->MouseX/Y set to -1. This coordinate fake should prevent
apps from highlighting something in an inactive window, but in
general you should rather query MUIA_Window_MouseObject instead
of using the coordinates on IDCMP_MOUSEOBJECT.

Removed my imaginary menuitem-fix. Instead I added the required code to
MUIM_Menustrip_TriggerPopMenu so that menuitems with CHECKIT|MENUTOGGLE flags
enabled will trigger MUIA_Menuitem_Checked, when activated through the
shortcut key. (duff)

Added more classes to repository for laire to play with.

Removed "static" from debug.c/CheckDebug() to make MUI compile again.

Removed ULONG-typecast from OM_NEW method in Menudisplay.c, as it gave a SAS-C
compile time error (warning?) -- was this added for GCC compatibility? (duff)

During MUIM_Menustrip_FindShortcut the Menuitem-class will now trigger a
notify on MUIA_Menuitem_Checked if the entry is checkable (this code should
probably be moved to the caller of MUIM_Menustrip_FindShortcut, but I don't
have access to that code :-( ). (duff)

Remove Object & End macros from Scrollgroup.c to make gcc a little happier.

mastermisc.c now uses CheckDebug() from debug.c instead of re-implementing
that function.

Added muiconfig_pragmas.h generation to smake xdev.

MUI uses default menu when MUIM_ContextMenuBuild returns NULL.

PopMenu.mcc removed from muibeta.lzx, it's now obsolete.

Popmenu.mui added to muibeta.lzx.

Window class uses Popmenu.mui instead of PopMenu.mcc.

Changed MUIC_PopMenu define in Popmenu_mcc.h to "Popmenu.mui".

Replaced custom multi-select code in Menudisplay.mui with
MUIM_PopMenu_GetNextResult. (duff)

Added MUIM_PopMenu_GetNextResult. (duff)

Menuitem.mui will only test one letter shortcuts, i.e. Amiga-D will no longer
match the text 'Delete'. (duff)

Modified external classes sources to simplify porting: dispatchers now
start with DISPATCHER_BEGIN and end with DISPATCHER_END, see definitions
in muiprog.h. common includes were moved to classheader.c

Window position saving failed to behave correctly when windows where in
zoomed state.

Added Framedisplay, Imagedisplay, Pendisplay classes to cvs.

Removed a few unnecessary MUIM_Menustrip_Update methods.

Gauge.mui didn't use any font specified with MUIA_Font (zapek)

Fixed drawing of disable pattern in Text.mui

Text.mui renders marked text background in virtual groups with correct offset.

MADF_FILLAREA is now toggled in MUIM_Draw (for Text.mui) as that allows the
flag to be restored without wasting instance data. (duff)

Added double buffer to Text.mui. (duff)

Mouse coordinates are now also transformed correctly for vertically aligned
text. (duff)

Labels (those with real lines below their shortcuts) forgot to set back the x
position in the rastport (after drawing the line) so if the text was segmented
(as when styles are used, like 'marking') then the rest of the string would be
printed at a wrong position, causing the visual problems seen when marking
labels in MUI. (duff)

Text.mui gave an enforcer hit if the user tried to mark in an object, for
which no text was supplied. (duff)

Documented MUI_Request/RejectIDCMP() as obsolete.

Invented new idcmp class IDCMP_MOUSEOBJECT. MUI will send such an event
whenever the object below the mouse pointer changes. MouseX and MouseY
fields of the idcmp message are set to the current coordinates, just as
with an IDCMP_INTUITICKS message. Classes that request IDCMP_INTUITICKS
or IDCMP_MOUSEMOVE to find out if the mouse pointer is placed on an
object should use IDCMP_MOUSEOBJECT instead for performance reasons.

no longer starts text marking on LMB but on first MOUSEMOVE instead.

Popmenu.mcc: Cursor left/right can be used to enter/leave submenus. (duff)

A few "problems" remain with text marking:  (duff's little to-do list... :-) )
 ÷ no double buffer
 ÷ marking text labels with real (below baseline) shortcut underlining behaves really strange.
 ÷ vertical placed text have the y-coordinate wrong.
 o marking right aligned text which include bold or italic words will change start position (a few pixels) when marking over the bold or italic word...
 o MUIG_TextOffset() doesn't use a simpler TextFit() function for plain text strings...
 o no way to double/triple click strings for word/sentence selection -- do we need it?

Text.mui will now store the marked text on the clipboard if lmb is released.
It'll abort marking if the window goes inactive. Currently text is stored
as-is, i.e. without separate chunks for styles, colours and alignments. The
colour of marked text has btw been changed again, now it's MPEN_FILL. (duff)

Text.mui forgot to hand over the preparse string to MUIG_TextOffset(), which
explains why aligned strings didn't map mouse coordinates to characters
correctly. (duff)

Popmenu.mcc: Will call MUIM_Popmenu_Select for 'return' as well as lmb. (duff)

fixed problem with area class eating MMB events.

replaced join command in smakefile with c:join to prevent problems with ade.

added Gauge.c to cvs

changed marking event handler priority to -3 (below d&d operations).

changed default marking pen to MPEN_MARK, otherwise I couldnt see
anything due to my background settings :)

Added preliminary marking,
 o no way to copy this -- how should it be done, amiga-c, auto-clip,
context-menu or something different?
 o flickers a lot -- I assume I can get double-buffer code from Gauge.c
 o currently all Text-objects are markable (ehn_Priority = -2) -- it should
probably be a tag or perhaps a subclass due to the extra memory used for the
eventhandler node, potential doublebuffer, io request for clipboard.device and
extra mem to generate the mangled string, though everything is allocated on a
need-to-know basis (except eventhandler).
 o ohh... it hasn't been tested, as I can't add new methods to Text.c with
'smake xdev' :-(((  But I tested it for another class, so it should work. (duff)

Added a MUIG_TextOffset() function to muigfx.library. It'll return the offset
into the string which matches the given coordinate. (duff)

Changed 'TextEngine::pen' from BYTE to UBYTE. I'd hoped that this would fix
the apparent palette-demon dependancy which exists for some users, but I can
no-longer reproduce this remap problem. (duff)

Extended MUI's text engine. ESC+B enables background rendering (JAM2) and
ESC+F removes it again (JAM1). Currently the background pen is always set to
MPEN_HALFSHINE (MPEN_FILL if MPEN_HALFSHINE equals MPEN_BACKGROUND) -- perhaps
it shouild be configurable, as this is the colour Text.mui will use for
marking of text. (duff)

Added Cycle.c, makedisp.c to cvs. makedisp is not used in smake xdev yet.

Window transparency is now also available on CyberGFX 4 (zapek)

Window menustrips with just one menu entry are no longer shown with a
title like context menus.

Fixed crash in Menudisplay.mui when menustrip was changed while a menu
was active.

Clicking on window borders no longer brings up embedded menus.

Added font setting for embedded menus.

MUIO_MenustripNM_CommandKeyCheck for MUI_MakeObject() will work for
menu titles just like for item titles.

Menu objects can get keyboard shortcuts just like menu item objects with
MUIA_Menuitem_Shortcut tag.

Implemented MUIM_Menustrip_InitChange/ExitChange methods. If you are
about to do some major changes to your menustrip, like e.g. updating a
bookmarks section in a submenu, you should surround these changes with a
MUIM_Menustrip_InitChange/ExitChange pair. This will increase the speed
of your updates and reduce visual disturbance for menustrips that are
currently visible (in an embedded menu). To make things easier, you can
also send MUIM_Menustrip_InitChange/ExitChange methods to objects of
menu class and menuitem class. They will automatically find the parent
menu strip and forward these methods.

Implemented multi selection for normal & popup menus.

Made muigfx.library and makeinc.c compile again.

Removed unused prefs option for Popmenu image design.

Menudisplay.mui will now check 'data->resultcount' rather than the return
value of MUIM_Popmenu_Open, since the latter is FALSE when the user terminates
the menu without a final selection -- unfortunately this also leads to
execution of menu-items when the user goes from one menu to another, since
Menudisplay.mui doesn't support multi-selection for more than a single menu at
a time, but this should probably be fixed... (duff)

Added $(JOINASM) and $(JOINIF) to 'xdev' part of smakefile, hope I did it
correctly :-) (duff)

Menudisplay class reacts on RMB as well as on LMB.

Handling of the right mouse button for custom classes is straight
forward now. Just use it like LMB in your event handler. If you return
MUI_EventHandlerRC_Eat, MUI will neither open a popup menu nor the
window's menu.

Finally removed intuition's menu handling completely. Everything goes
through PopMenu.mcc now. No more gadtools.library opened in
muimaster.library. Har :).

Notify class would get utterly confused when during the execution of a
notify, other notifies on the same object were added or removed.

Family class was completely broken and would distribute methods of
Notify class to its children instead of passing them up to Notify class.
Some methods were even sent to Area class (!) instead of Notify class. I
wonder how this thing ever worked at all.

Added Family.c Notify.c mastermisc.c to repository. mastermisc.c
contains some layout stuff for Allan to play with, even though it might
not be of much use without Group.c

Implemented MUIM_Menustrip_TriggerPopMenu to handle the necessary
notification stuff when a menu item is selected. Called by Window.mui
and Menudisplay.mui. Private.

Fixed minor layout problems when opening windows with embedded menus.
Still suxx a little though since Menudisplay class has to create it's
menus twice. Things will change anyway when all menu handling moves from
intuition to Popmenu.

Added some configuration options for embedded menus.

"Transparency" item of mui popup menu is now a toggle item.

Added "Embedded Menus" submenu to mui popup menu.

Since MUIs version control tool (setver) modifies the source, it creates
cvs conflicts. As a quick fix, it won't do anything now unless
env:stuntzi exists, which basically means revisions are only increased
at MUI's birthplace :).

Added missing 'case MUIM_Cleanup:' to the Scrollgroup.mui class. Without this
method it would re-add an active eventhandler during next MUIM_Setup, and that
led to an endless loop. (duff)

Menudisplay.mui will open menus so that they are inside the window, i.e. if
the menubar is at the bottom of the window then menus are opened above the
cursor and if the menubar is at the right of the window, menus are opened to
the left of the cursor etc. (duff)

Menudisplay.mui will set MUIA_Window_MenuAction on _win(obj) rather than obj.
(duff)

Menudisplay.mui will set MUIA_FrameVisible to FALSE for all children, before
triggering the notifications. (duff)

Fixed getting/setting attributes of Notify class (MUIA_Parent,
MUIA_UserData, MUIA_ObjectID, MUIA_HelpNode, MUIA_HelpLine) for Family
class objects. These GETs and SETs were accidently passed on to their
children.

Implemented Topmenus. Doubleclick the free space between a window border
and the outmost MUI object to make them appear. Alternatively, use the
new "Topmenus" item of the MUI popup menu. Drag them around to whichever
border you'd like them to stay. Doubleclick a Topmenu to make it
disappear. The state of Topmenus is saved with the window position.

Implemented MUIM_Group_MoveMember method to simplify reordering of
children. See autodocs for details.

---

Implemented MUIM_DoDrag method for manual invoking of MUI's drag & drop
handling. See autodocs for details.

Use "setenv muidebug input" to debug event handlers. Also, pressing
ctrl-shift-e in a mui window will dump a current list of event handlers
with kprintf.

Implemented MUIA_FrameDynamic tag for area class. When enabled, MUI
automatically sets/clears MUIA_FrameVisible whenever the mouse
enters/leaves the object.

Implemented MUIA_FrameVisible tag for area class. Set to FALSE to hide
an objects frame. Defaults to TRUE. Useful eg for toolbar-like classes.

Context menus of the prefs program now have a meaningful title in most
cases instead of just "Item".

To simplify the usage of event handlers, you are now allowed to change
the ehn_Events field of the current event handler structure during
invocation of MUIM_HandleEvent. This allows eg to request additional
IDCMP_MOUSEMOVE after an IDCMP_MOUSEBUTTON without the overhead of
removing/adding the event handler.

Implemented MUI_EHF_GUIMODE flag for window event handlers. If you set
this in ehn_Flags before adding your event handler, MUI will not invoke
the trigger method if the object is either in disabled state or
invisible. If the object is only partially visible in a virtual group
and the event in question is a pressed IDCMP_MOUSEBUTTON, MUI will skip
the trigger method if the mouse coordinates are outside the visible
area. You probably want to set MUI_EHF_GUIMODE for most of your event
handlers.

Knob.mui objects now correctly draw their ghost pattern in disabled state.

Moving a prop gadget to its maximum value by keyboard now works even if
MUIA_Prop_Total is bigger than 99999.

Removed allocation of unnecessary port & signal bit for appwindows.

---

Added support for wheel mouses. Look for drivers on aminet
(newmouse*.lha or similar).

---

Getting MUIA_List_InsertPosition attribute will return -1 when the
previous MUIM_List_Insert method failed.

MUIM_List_Insert returns the position where the new entry was inserted
or -1 on failure.

fixed popup menus with just one title and one entry.

mui prefs is an app window now to allow fancy external class prefs
to accept some icons dropped on them.

---

When scrolling a virtual group by moving the mouse outside of its
boundary while LMB is pressed, MUI now adjusts the scrolling speed
dynamically depending on the distance.

---

MUI requesters can now be answered with function keys. F1 to F10 select
gadgets from left to right.

Poppen, Popimage & Popframe classes support MUIM_Import & MUIM_Export of
their contents.

Fixed unnecessary refreshs when dealing with mui prefs.

----

Added config item to adjust x position of group titles.

Added submenu of available screens to window popup menu (only works
when PopMenu.mcc is used)

When present, MUI now uses PopMenu.mcc to render its popup menus. You
must always use the PopMenu.mcc from the mui beta archives, older/other
versions of this class might lead to crashes.

---

#define MUIIHNF_TIMER           (1<<0) /* set ihn_Millis to number of 1/1000 sec ticks you want to be triggered */
#define MUIIHNF_TIMER_SCALE10   (1<<1) /* ihn_Millis is in 1/100 seconds instead */
#define MUIIHNF_TIMER_SCALE100  (1<<2) /* ihn_Millis is in 1/10 seconds instead */
                                       /* setting both SCALE10|SCALE100 makes ihn_Millis 1/1 seconds */
---

Fixed updating of MUIA_List_Entries tag when multiple entries were deleted
with MUIM_List_Remove, MUIV_List_RemoveSelected.

Implemented different designs/frames/colors/fonts/etc. settings for help
bubbles on a dedicated preferences page.

---

MUI could accidently overwrite a few pixels of a groups border when the
right/bottom column/row of a group was invisible.

Radio buttons can now be controlled additionally with cursor left/right
and space keys.

---

Fixed remapping of MBR brushes with brown & neon colors on MagicWB-alike
screens. If you intend to use these kinds of images, you have to make
sure that your screens have a MagicWB-alike palette, ie brown is color 6
and neon is color 7 on the Workbench and color n-2 and n-1 on custom
screens with n colors.

Added switch ISOBJECT/S to MUIA_List_Format template. When set for a
specific column, MUI treats the display hooks return value for this
column as if it was an object created with MUIM_List_CreateImage. This
is a fast replacement for the previous way of creating & returning a
"\33O[%08lx]" string buffer. Using the ISOBJECT/S switch is considerably
faster for lists with many entries.

Added keyboard shortcuts to all preferences gadgets. Shortcuts are now
assigned automatically, so problems with missing/duped keys should
finally be a matter of the past.

Implemented MUIO_Label_DontCopy flag for MUI_MakeObject(MUIP_Label...)
type objects. Labels created with this flag will not copy their string,
the pointer must remain valid for the object's lifetime. When this flag
is set, the lower 8 bit of flags will be used as MUIA_Text_ControlChar
instead of MUIA_Text_HiChar (obsolete).

Implemented MUIA_Text_Copy tag. Set to FALSE to prevent text objects
from copying the supplied text string to a private buffer. Defaults to
TRUE for backwards compatibility. Note that if you use the (obsolete)
MUIA_Text_HiChar or MUIA_Text_Index tags, MUI will always copy the text
regardless of the MUIA_Text_Copy setting.

Implemented MUIA_Text_ControlChar as a replacement for MUIA_Text_Index
and MUIA_Text_HiChar. The character given here will be underlined if
present in the string. MUIA_Text_ControlChar rendering is more efficient
than MUIA_Text_HiChar and MUIA_Text_Index.

Improved text rendering speed for simple strings without control
characters by about 100%.

---

Increased speed of adding items to listviews for lists with many
entries.

To simplify things for the user, applications can now call a dedicated
screen requester by passing the flag MUIV_Application_OCW_ScreenPage to
MUIM_Application_OpenConfigWindow.

Levelmeter objects now allow to get & set their labels as documented.

New image type MUII_PopFont. Please use this one for popup buttons of
font popup string gadgets, but only if libversion(muimasterbase)>=20.
#define MUII_PopFont 42

---

Double buffering for gauge objects reduces flicker during redraw.

The [Enter] key can now be used in addition to the [Return] key for all
keyboard actions.

---

Fixed a bug in library/class init code that could make MUI applications
crash on startup under very rare race conditions.

Implemented experimental color imposing for cgx3 systems. touch
env:mui/cgxhooks to enable. As a result, frames will no longer be
black/white but instead use the objects background pattern and
lighten/darken it respectively. Also, you can add a string like
"!aabbcc" at the end of each alien image name. This will draw the alien
image mixed with the given color (rrggbb).

---

MUI no longer accidently locks the current directory of the first
launched MUI application.

Increased rendering speed on AGA systems by using proper bitmap masking
techniques. This speed increase is proportional to the number of
bitplanes on the parent screen.

Increased speed of keyboard input processing by about 500%, especially
noticeable on repeated keys in text entry gadgets.

Documented the methods MUIM_CreateShortHelp and MUIM_DeleteShortHelp.

Fixed MUIA_Window_NoMenus attribute which stopped working a few versions
ago.

Windows without menus no longer show an empty menu bar on RMB.

Fixed a bug in the maximum width calculation of windows with border
scrollers.

Help bubbles created with MUIM_CreateBubble move and depth arrange with
the window of their parent object.

Implemented MUIV_CreateBubble_DontHidePointer flag. See autodocs of
MUIM_CreateBubble for details.

Added a new way of adjusting public screens through a separate page in
MUI prefs. No need to use PSI any longer, although you still can if you
really want.

Recompiled with SAS-C 6.58

---

Added new frame type.

For debugging purposes, you can now setenv mui/stringclass to eg
something like "Textinput.mcc". This will make MUI globally replace all
objects of type "String.mui" with the new class.

Implemented MUIA_Application_UsedClasses tag. Pass a NULL terminated
string array here which lists the external classes your application
uses. This will help MUI to prevent displaying unnecessary entries in
your applications local MUI configuration. All new programs should use
this tag!

Increased speed of soft-scrolling listviews by about 200%.

Added greater configurability to the fuel gauge. New options include
colors/images for the "full" and "empty" parts of a gauge as well as an
inner frame.

Added experimental support for GOBs D&D. Touch env:mui/gobs to enable.
Using GOBs will allow for less flickering during D&D and for true (!)
transparency on CyberGFX hi/truecolor screens.

Fixed remapping of brown & neon colors from *.mbr images on
MagicWB screens.

Added an extremely cool gimmick for users of at least cgxsystem.library
41.7 (enable env:cybergraphx/SUPERLAYERS): You can toggle a window's
"transparency" with the popup menu or by double-clicking LMB while
holding control. While a window is transparent, you can still move &
size it with an invisible dragbar at its top (4 pixels) and an invisible
size gadget at the bottom right (4x4 pixels). Also available is an
invisble popup gadget with the std mui functions at the top right (4x4).
The transparency state of a window is remembered & saved just as its
position.

Increased speed of virtual groups. Depending on the number of contained
objects and the machine type, scrolling is now up to 200% (!) faster.

---

MUIM_Application_Load would accidently flush the memory.

Windows without an intuition menu no longer loose the state of their
WFLG_RMBTRAP when popup menus are used.

Added new method of moving around in a virtual group. Doubleclicking MMB
(or control-doubleclicking LMB) will bring up a crosshair at the current
mouseposition. Moving the crosshair in either direction will start
scrolling. This mode is especially useful for long web pages with lots
of text.

Keyboard shortcuts of a window's default menu work even if the mouse is
currently located on an object with a popup menu.

Fixed a few possible display problems with optimized listview/virtual
group scrolling.

The MUI about window no longer shows an "About MUI..." entry in its
popup menu.

Added optional "Jump Screen" function to MUI's window border gadgets &
popup menu.

Pendisplay and Imagedisplay objects would show incorrect colors when
certain attributes were changed while the object was hidden.

Objects of Application class now receive MUIM_Im/Export messages during
MUIM_Application_Save/Load.

External class preferences (*.mcp) can have the same handy popup menus
as internal MUI settings. In order for this to work, the external mcp
class must register all config-id-related gadgets with the MUI prefs
system at creation time. Use the method MUIM_Mccprefs_RegisterGadget for
this purpose (check autodocs for details). Older custom classes which
don't use this method won't have popup menus.

Application specific MUI settings windows no longer display a window
border gadget to call application specific MUI settings.

Moved settings for external MUI classes into a second listview of the
prefs program. This speeds up starting MUI prefs considerably since the
external classes are only loaded on demand.

Popup windows created through Popobject class no longer set their
window's inner spacing to 0 when MUIA_Popobject_Light was set to
FALSE.

Pressing <Esc> while a help bubble is displayed now simply makes the
bubble go away and not also closes the window.

Improved handling of help key. Pressing the help key once will bring up
the help bubble (if any). Pressing it a second time (while the bubble is
visible) will then open the guide file (if any).

Implemented "floating help bubbles". You do no longer need to include
line feeds in your bubble strings. MUI will automatically layout them
according to the user's preferences. For compatibility reasons and to
support special bubbles (such as poems), automatic layout will not take
place when the bubble strings contains line feeds.

Dimension of help bubbles is now adjustable. You can define their height
as percentage value of their width on the system page of the preferences
program. Note that this setting will only apply if the program in
question supports this feature and does not insert linefeeds into its
bubble texts.

Registrating MUI is now possible within minutes through the First
Virtual (tm) payment system. Please check our website at www.sasg.com
for ordering details.