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

$Id: ChangeLog 4483 2015-02-14 11:53:14Z tboeckel $

#### 2015R1 Release ############################################################

2015-02-13 Thore Bckelmann <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-10 Thore Bckelmann <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.

2015-02-03 Thore Bckelmann <tboeckel@gmx.de>

  * 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-01-21 Thore Bckelmann <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.
  * 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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * mastergfx.c: restricted the width of render bitmaps to 4095 pixels in case
    of truecolor screens. This refs #137.

2015-01-13 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * 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 Bckelmann <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.

2014-12-29 Thore Bckelmann <tboeckel@gmx.de>

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

2014-12-28 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Colorring.c: lowered the default size from 350 pixels to 300 pixels. This
    refs #130.

2014-12-22 Thore Bckelmann <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-19 Thore Bckelmann <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 Bckelmann <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.
  * 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 Bckelmann <tboeckel@gmx.de>

  * Framedisplay.c: added an additional check for invalid frame specs. This
    closes #126.

2014-12-15 Thore Bckelmann <tboeckel@gmx.de>

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

2014-12-12 Thore Bckelmann <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 Bckelmann <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-07 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

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

2014-12-04 Thore Bckelmann <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 Bckelmann <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-26 Thore Bckelmann <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.

2014-11-25 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * misc: added slovakian translation.

2014-11-20 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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-06 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 cursur 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.

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

2014-10-31 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * demos/MUI-Demo.c: added handling of CTRL-C to terminate the demo.

2014-10-29 Thore Bckelmann <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.

2014-10-28 Thore Bckelmann <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-22 Thore Bckelmann <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-13 Thore Bckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: removed an unused function.

2014-10-10 Thore Bckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: removed a superflous method.
  * Backgroundadjust.c: removed unneeded instance data.
  * Group.c, Window.c: call the MUIM_WhichObject method by DoMethod() instead of
    calling the corresponding functions directly. This is required for the new
    Backgroundadjust.mui class to work properly in all cases.
  * Colorring.c: fixed the missing center spot.

2014-10-09 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

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

2014-09-08 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

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

2014-09-03 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: rearranged the option page to put all objects into a
    single column. This closes #94.

2014-09-02 Thore Bckelmann <tboeckel@gmx.de>

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

2014-08-21 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Dirlist.c: setting the directory to the same path again will now reread its
    contents. This refs #84.
  * locale/russian.po: added russian translation.
  * 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.

2014-08-19 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: made RETURN work in the edit string. This makes it possible to
    rename files within Dirlist.mui inline. This closes #84.

#### 2014R2 Release ############################################################

2014-08-11 Thore Bckelmann <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-10 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: fixed the too narrow width of the screen pixel size
    string objects. This refs #81.
  * Colorring.c: made the favorite color names translatable. This refs #79.

2014-08-06 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: make sure that screen modes providing a depth of 32 don't
    end up with a maximum of 0 colors but 16 million instead. This closes #81.
  * Dirlist.c: made the size unit names translatable.
  * Pubscreenadjust.c, Settingsgroup.c: made the frequency and time strings
    translatable. This closes #79.

2014-07-30 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Winborder.c: fixed an Enforcer hit for the screen jump gadget when
    VisualPrefs was running.
  * Settings.c, locale/MUI.pot: made the error message for a failed prefs page
    creation translatable.

2014-07-24 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

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

2014-07-22 Thore Bckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed the broken context menu display of Colorring.mui due to
    some recent merges from the MUI4 trunk which did not handle empty preparse
    strings correctly. This closes #71.

2014-07-21 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Popmenu.c: allocate the halfshine and halfshadow pens for all kinds of
    screens. This closes #55.
  * mastergfx.c: use a friend bitmap when dithering images.

2014-07-18 Thore Bckelmann <tboeckel@gmx.de>

  * mastertext.c: added dithering of ARGB images when drawing texts on 8bit
    screens. This refs #45.

2014-07-17 Thore Bckelmann <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 Bckelmann <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-15 Thore Bckelmann <tboeckel@gmx.de>

  * mastergfx.c: fixed a wrong register definition of an internal function to
    obtain a pen which caused colors with shifted RGB to be allocated. This
    closes #55.

2014-07-14 Thore Bckelmann <tboeckel@gmx.de>

  * prefs.c: the Save, Test, Use and Cancel buttons at the bottom are now part
    of the TAB cycling chain. This closes #66.
  * List.c: reimplemented the additional list item stretching. This closes #63.
  * 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 Bckelmann <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-09 Thore Bckelmann <tboeckel@gmx.de>

  * Virtgroup.c, Settingsgroupr.c: made the "middle mouse button double click
    scrolling" feature permanently active as it is with MUI4 as well already.
    This closes #58.
  * 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 Bckelmann <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 Bckelmann <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.
  * Rectangle.c: fixed a wrong pen usage when printing the title text. This
    closes #48.
  * Imagebrowser.c, Backgroundadjust.c: implemented a "show all" mode to show
    all available images including those which cannot be assigned a specific
    purpose based on their file name. This refs #52.

2014-07-02 Thore Bckelmann <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-20 Thore Bckelmann <tboeckel@gmx.de>

  * Imagedisplay.c: enforce a minimum height of 24 pixels.

2014-06-19 Thore Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: support drawing of direct RGB images for AmigaOS3.

2014-06-18 Thore Bckelmann <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 Bckelmann <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".

2014-06-12 Thore Bckelmann <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 Bckelmann <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.

2014-06-10 Thore Bckelmann <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.

#### 2014R1 Release ############################################################

2014-05-17 Thore Bckelmann <tboeckel@gmx.de>

  * Dirlist.c: fixed the wrong size display of large files.

2014-05-06 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: always draw complete lines, even if some parts are currently out of
    the visible area. This closes #29.

2014-04-09 Thore Bckelmann <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.

2014-04-03 Thore Bckelmann <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 Bckelmann <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-28 Thore Bckelmann <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 Jrg
    Strohmayer.

2014-03-20 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

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

2014-03-18 Thore Bckelmann <tboeckel@gmx.de>

  * 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 Bckelmann <tboeckel@gmx.de>

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

2014-03-15 Thore Bckelmann <tboeckel@gmx.de>

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

2014-03-14 Thore Bckelmann <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-10 Thore Bckelmann <tboeckel@gmx.de>

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

2014-03-09 Thore Bckelmann <tboeckel@gmx.de>

  * Settingsgroup.c: don't clear the instance data to avoid reverting the setup
    done by the gadget_#?_set.c code.

2014-03-03 Thore Bckelmann <tboeckel@gmx.de>

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

2014-03-02 Thore Bckelmann <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-03-02 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-28 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Application.c: call MUIM_GlobalSetup for a menu strip only once.
  * 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 Bckelmann <tboeckel@gmx.de>

  * prefs.c, psi.c, demos/demo.h: ensure a minimum stack size of 64K for all
    demos and applications.

2014-02-25 Thore Bckelmann <tboeckel@gmx.de>

  * Aboutbox.c: make the "Ok" button the default active object to accept a
    "keyboard click" by pressing Enter. This closes #18.

2014-02-16 Thore Bckelmann <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-10 Thore Bckelmann <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.

2014-02-09 Thore Bckelmann <tboeckel@gmx.de>

  * Area.c: fixed the garbled drag image for groups. This closes #4.

2014-01-05 Thore Bckelmann <tboeckel@gmx.de>

  * mastermisc.c: increased the task mismatch warning requester's timeout to 5
    seconds and included the flags value in the message.

2013-12-23 Thore Bckelmann <tboeckel@gmx.de>

  * Colorring.c: changed the notification of the RGB/HSV string objects from
    MUIA_String_Contents to MUIA_String_Acknowledge (BZ #8610).

2013-12-17 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Text.c: enabled text marking on demand again by implementing the private
    attribute MUIA_Text_Marking.

2013-12-13 Thore Bckelmann <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-04 Thore Bckelmann <tboeckel@gmx.de>

  * Popmenu.c: popup menus now get the WA_StayTop attribute to prevent them from
    being sent to the background.

2013-07-04 Thore Bckelmann <tboeckel@gmx.de>

  * Screenspace.c: obtain the default system pens from the Workbench for the
    default screen definition (BZ #8433).

2013-06-20 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * doc/List: added the documentation of MUIV_List_Redraw_Entry.

2013-06-17 Thore Bckelmann <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-11 Thore Bckelmann <tboeckel@gmx.de>

  * Pixmap.c, Rawimage.c: added support for libz compression via z.library.

2013-06-07 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: correctly respect any additional frame spacing for the first and last
    column.

2013-05-31 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Virtgroup.c: fixed the missing adjustment of the Scrollgroup object in case
    MUIA_Virtgroup_TryFit is TRUE.

2013-05-21 Thore Bckelmann <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.
  * Window.c: disabled the automatic embedded menus on double clicking near the
    window's border.

2013-05-19 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * List.c: fixed a graphical issue with vertical separator bars.

2013-04-25 Thore Bckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: fixed a typo in the pen help bubble texts.

2013-04-20 Thore Bckelmann <tboeckel@gmx.de>

  * Group.c, Family.c, masterinit.c: removed some dead code.

2013-04-18 Thore Bckelmann <tboeckel@gmx.de>

  * 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 Bckelmann <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 Bckelmann <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-10 Thore Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed a redraw issue for simple patterns in double buffered
    objects.

2013-04-09 Thore Bckelmann <tboeckel@gmx.de>

  * Backgroundadjust.c: make sure to show the correct page when only selecting
    an image is allowed.

2013-04-08 Thore Bckelmann <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 several frames to have equally sized horizontal
    and vertical spaces to reflect the squared pixel nature of current display
    modes.
  * Imagespace.c: fixed some redraw issues with the MUII_FILLBACK2 pattern.

2013-04-04 Thore Bckelmann <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.

2013-04-03 Thore Bckelmann <tboeckel@gmx.de>

  * tools/makeconfig.c: changed the default redraw mode to "without clear" to
    massively reduce the flickering during opaque resize actions.
  * Imagespace.c: fixed a redraw issue with simple patterns in virtual groups.

2013-04-02 Thore Bckelmann <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 Bckelmann <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).

2013-03-28 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Area.c: fixed yet another double buffer bug which occured with sliders.

2013-03-25 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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-13 Thore Bckelmann <tboeckel@gmx.de>

  * 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-11 Thore Bckelmann <tboeckel@gmx.de>

  * 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.

2013-03-07 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * all: rearranged the code to ensure that trying to start the final class from
    a shell does not crash.

2013-03-02 Thore Bckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Guillaume
    Boesel.

2013-03-01 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Window.c: fall back to a group spacing of 2/2 in case the window must be
    resized due to insufficient screen space.

2013-02-21 Thore Bckelmann <tboeckel@gmx.de>

  * Dtpic.c: made MUI_Dtpic_Fade public.

2013-02-14 Thore Bckelmann <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-12 Thore Bckelmann <tboeckel@gmx.de>

  * Window.c: the transparency of popup windows is overridden now to enforce
    fully opaque windows.
  * Numericbutton.c, Pendisplay.c, Scale.c: use the normal object text color
    for Numericbutton, Pendisplay and Scale objects, too.

2013-02-06 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2013-01-30 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Dirlist.c: respect a possibly existing mask plane for bitmapped icons.
  * Dirlist.c: fixed the sometimes initial wrong line height.

2013-01-27 Thore Bckelmann <tboeckel@gmx.de>

  * 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.

2013-01-26 Thore Bckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.

2013-01-24 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: replaced several FreeMem() calls by FreeVec() because the
    allocation was done using AllocVec().

2013-01-17 Thore Bckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Guillaume
    Boesel.

2013-01-14 Thore Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.
  * Aboutbox.c: disabled double buffering as this caused more harm than good.

2013-01-11 Thore Bckelmann <tboeckel@gmx.de>

  * Virtgroup.c, Group.c: implemented MUIA_Virtgroup_TryFit.

2013-01-08 Thore Bckelmann <tboeckel@gmx.de>

  * mcc/Aboutbox.c: changed the "License" placeholder from '$' to '' and added
    '%r' as placeholder for the string "Registered to:".

2012-12-31 Thore Bckelmann <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-14 Thore Bckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas.

2012-12-11 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Notify.c: fixed a memory leak for MUIA_Window_InputEvent notifications.

2012-11-13 Thore Bckelmann <tboeckel@gmx.de>

  * Text.c: fixed a possible memory leak.

2012-11-09 Thore Bckelmann <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-07 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenadjust.c: made the color buttons a bit higher.

2012-11-06 Thore Bckelmann <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.
  * mastertext.c: restore the standard foreground and background pens after
    having drawn some text with direct RGB colors.

2012-10-28 Thore Bckelmann <tboeckel@gmx.de>

  * Text.c: added some NULL pointer checks.

2012-10-22 Thore Bckelmann <tboeckel@gmx.de>

  * Window.c: finally fixed BZ #8048. Many thanks to Massimo Tantignone for his
    help!
  * mcc/Aboutbox.c: fall back to the parent process if obtaining an icon from
    PROGDIR:<task name> fails.

2012-10-17 Thore Bckelmann <tboeckel@gmx.de>

  * Application.c, Window.c: reverted recent changes for BZ #8048. These caused
    more harm than good.
  * Aboutbox.c: all texts are localizable now.

2012-10-14 Thore Bckelmann <tboeckel@gmx.de>

  * Window.c: hopefully fixed BZ #8048. Many many thanks to Massimo Tantignone
    for the helpful explanation of the possible cause.

2012-09-26 Thore Bckelmann <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 Bckelmann <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-10 Thore Bckelmann <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.
  * Window.c: the faked InputEvent to let Intuition open the pull down menu now
    includes a valid timestamp.

2012-09-03 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: read-only lists will still react on mouse wheel events instead of
    ignoring them completely.

2012-09-01 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * 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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * List.c: fixed a potential crash when adding the vertical scrollbar.

2012-07-30 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: fixed the invisible scrollbar if the list object is used without
    surrounding listview object.

2012-07-28 Thore Bckelmann <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.
  * Floattext.c, List.c: the end of a line is no longer hidden by the scrollbar.

2012-07-26 Thore Bckelmann <tboeckel@gmx.de>

  * List.c, Listview.c: made MUIA_Listview_ScrollerPos working again.

2012-07-22 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: correctly handle MUIA_Listview_Input. This was completely ignored
    before.

2012-07-18 Thore Bckelmann <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-07 Thore Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2012-05-19 Thore Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh.

2012-02-18 Thore Bckelmann <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.

2012-02-16 Thore Bckelmann <tboeckel@gmx.de>

  * Text.c: fixed double underlining of control characters when text objects are
    created using MUI_MakeObject().

2012-01-12 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Scrollgroup.c: added a safety check when adding/removing the scrollbars.
  * Popmenu.c: fixed the gradient background and cursor drawing once again.

2012-01-10 Thore Bckelmann <tboeckel@gmx.de>

  * Cycle.c: fixed a memory leak.

2012-01-08 Thore Bckelmann <tboeckel@gmx.de>

  * List.c: added a safety check when adding/removing the horizontal scrollbar.
    This closes BZ #7522.
  * Applist.c: added MUIA_Application_Process for direct comparison.

2012-01-04 Thore Bckelmann <tboeckel@gmx.de>

  * 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.

2011-01-02 Thore Bckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the popup menu gradient bug of BZ #7532.

2011-12-31 Thore Bckelmann <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-28 Thore Bckelmann <tboeckel@gmx.de>

  * Settings.c: the page list is now the default object again instead of the no
    longer existing listview around it.

2011-12-27 Thore Bckelmann <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.
  * 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.

2011-12-23 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenlist.c: exclude the Workbench screen from editing when being
    doubleclicked.

2011-12-07 Thore Bckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french translation kindly provided by Mrodfr/ATO
    France.

2011-11-25 Thore Bckelmann <tboeckel@gmx.de>

  * Pubscreenlist.c: made the screen edit panel a bit wider.
  * Pubscreenadjust.c: localized the depth slider.

2011-11-24 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: added some usages of MUIPENU() where it is absolutely
    necessary.

2011-11-06 Thore Bckelmann <tboeckel@gmx.de>

  * Group.c: fixed the selected background image for custom toolbar buttons like
    those in MUIOWB.

2011-10-30 Thore Bckelmann <tboeckel@gmx.de>

  * Dtpic.c: implemented the two attributes MUIA_Dtpic_LightenOnMouse and
    MUIA_Dtpic_DarkenSelState to assist MUI-OWB and MUI-MPlayer with their
    image handling.

2011-10-25 Thore Bckelmann <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.

2011-10-24 Thore Bckelmann <tboeckel@gmx.de>

  * Window.c: added some NULL pointer checks when recalculating the required
    window dimensions.

2011-10-16 Thore Bckelmann <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.

2011-10-07 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * 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 Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: fixed yet another bug with single image 24bit ILBM brushes.

2011-10-04 Thore Bckelmann <tboeckel@gmx.de>

  * Imagespace.c: added support for 24bit ILBM brushes (extension .mf0/1 and
    .mb0/1).

2011-09-28 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/french.ct: fixed wrong delete screen confirmation requester gadgets.

2011-09-26 Thore Bckelmann <tboeckel@gmx.de>

  * Application.c: getting MUIA_Application_Iconified could have return the
    wrong state.

2011-09-25 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Pubscreen.c: the background image for "like Workbench" style screens was not
    respected.

2011-09-05 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * doc/Dtpic: added Autodoc entries for all public attributes of Dtpic.mui.

2011-08-22 Thore Bckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed the wrong width for gradient cursor images. This closes BZ
    #7188.

2011-08-21 Thore Bckelmann <tboeckel@gmx.de>

  * Dirlist.c: added a NULL pointer check for the MultiTest hook. This closes
    BZ #7185.

2011-08-03 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/finnish.ct: updated finnish translation kindly provided by Janne
    Peraho.

2011-07-22 Thore Bckelmann <tboeckel@gmx.de>

  * doc/List: fixed some minor typos.

2011-07-15 Thore Bckelmann <tboeckel@gmx.de>

  * Application.c: an implementation of MUIM_FindObject for application objects
    existed, but was never used. Now it is called as intended.

2011-07-13 Thore Bckelmann <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.

2011-07-12 Thore Bckelmann <tboeckel@gmx.de>

  * Listtree.c: some optimizations to use V11+ stuff only, MUI 2.3 is long ago.

2011-07-11 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh

2011-07-01 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Dataspace.c: slightly tuned the data (de)compression to use as less memory
    as possible.

2011-06-29 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * mastertext.c: fixed wrong offset when blitting raw ARGB data within a stream
    of text.

2011-06-17 Thore Bckelmann <tboeckel@gmx.de>

  * Semaphore.c: added missing OM_DISPOSE implementation for Semaphore.mui.

2011-06-14 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Boopsi.c: fixed the background filling of colorwheel.gadget.

2011-06-09 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * masterlist.c: added an index check to avoid a NULL pointer access.

2011-05-31 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Process.c: raised default stack size to 32K.

2011-05-28 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Application.c: applications may now be iconified to the default dock of
    AmiDock. This fulfills BZ #6065.

2011-05-24 Thore Bckelmann <tboeckel@gmx.de>

  * Application.c: fixed some issues regarding setting the Workbench screen as
    as custom public screen.

2011-05-23 Thore Bckelmann <tboeckel@gmx.de>

  * Pixmap.c: added MUIA_Pixmap_UncompressedData.

2011-05-21 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Area.c: added some NULL pointer checks during MUIM_Setup and MUIM_Cleanup.

2011-05-16 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Popmenu.c: fixed drawing of recessed frames. This fixes BZ #6985.

2011-05-12 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/spanish.ct: updated spanish translation kindly provided by Javier de
    las Rivas

2011-05-09 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/italian.ct: updated italian translation kindly provided by Samir
    Hawamdeh

2011-04-28 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * mastermisc: fixed an unused calculation result in MUI_ObtainPen.

2011-04-17 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * tools/png2.c: png2c now outputs the applied compression and format in
    terms of Pixmap.mui.

2011-04-06 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * tools/png2c.c: generate source code with a line length of 256 characters at
    most.

2011-03-30 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Aboutbox.c: improved the icon display by using a separate class.

2011-03-26 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Rectangle.c: implemented MUIA_Rectangle_MinWidth and _MinHeight.
  * Image.c: implemented MUIA_Image_FontMatchString.

2011-03-16 Thore Bckelmann <tboeckel@gmx.de>

  * Group.c: implemented MUIV_Group_Spacing_Percent.
  * Slider.c: implemented MUIA_Slider_FreeKnob.

2011-03-15 Thore Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * muigfx.c, Imagespace.c: moved all image related functions over from
    muigfx.library to muimaster.library.

2011-03-09 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Process.c: the created subprocess is now a true child of the parent process.

2011-03-04 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * List.c: implemented MUIV_List_Redraw_Entry as known from MUI4.

2011-02-15 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Group.c: MUIM_Group_Remove now does the same as OM_REMMEMBER.

2011-02-13 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/french.ct: updated french catalog kindly provided by Mrodfr-ATOFR.

2011-02-04 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * doc/Dataspace/MUIM_Dataspace_Find: added an Autodoc entry for the public
    MUIM_Dataspace_Find method.

2010-10-07 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Aboutmui.c: added new 32bit logo kindly provides by Martin 'Mason' Merz.

2010-05-05 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Makefile: add #?_mcc.h to the SDK release.

2010-04-26 Thore Bckelmann <tboeckel@gmx.de>

  * dist/SDK/sfd/muimaster_lib.sfd: added missing inclusion of libraries/mui.h.

2010-04-25 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * locale/english-british.ct: added creation of the AUTH chunk in the catalog
    file.

2010-02-11 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * misc: added a name to all memory pools.

2009-09-17 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * muigfx.c: the custom TextFit routine also respects the height restriction.

2009-09-11 Thore Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Makefile: reordered dependencies to build the single modules in alphabetical
    order.

2009-08-07 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * Area.c: fixed the IBrowse DnD offset issue.

2009-08-02 Thore Bckelmann <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 Bckelmann <tboeckel@gmx.de>

  * muipop.c: fixed the nasty partly left over drop marks.

2009-07-26 Thore Bckelmann <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 Burstrm <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 Burstrm <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 Burstrm <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 Burstrm <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 Burstrm <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 Burstrm <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.
