------------------------------------
MUI Magic User Interface - ChangeLog
------------------------------------
$Id: ChangeLog 4957 2015-09-30 06:05:40Z tboeckel $
#### 2015R3 Release ############################################################
2015-09-28 Thore Böckelmann
* mcc/Listtree.c: implemented handling of MUIV_Listtree_Insert_ListNode_Active
in MUIM_Listtree_Insert. This was yet unimplemented and also documented to
be not available and caused crashes if it was used nevertheless. This closes
#257.
2015-09-23 Thore Böckelmann
* Title.c: reworked the tab dimension calculation to reduce the width only if
there is not enough space. The stretching will become effective if the
default width of all tab objects leaves enough space. Both the default and
the minimum width override the space left after the stretching. This closes
#241.
2015-09-18 Thore Böckelmann
* String.c: added the usual check for a valid window object before adding the
eventhandler. At least this was the location of the crash reported in #256
although it is quite puzzling why this didn't cause any trouble all the
years before.
* String.c: make sure to unpush all pushed methods upon cleanup.
* mastergfx.c: fixed a NULL pointer access when jumping to a different public
screen in the AmigaOS3 build. The new public screen process allocates a
renderinfo structure without an object.
2015-09-16 Thore Böckelmann
* masterreq.c: use embedded requester images instead of external ones for the
AmigaOS3 build to avoid the typical problems with picture.datatype not
supporting the alpha channel correctly.
* mastermisc.c: reworked the handling of MUIA_MinWidth and MUIA_MinHeight a
bit to respect the _subwidth(obj) and _subheight(obj) values.
2015-09-15 Thore Böckelmann
* Application.c: implemented an optional cleanup of unpushed methods. This
becomes necessary if the pushed methods contains dynamically allocated stuff
like pointers which are not freed otherwise and hence cause memory leaks.
* Floattext.c: implemented the attribute MUIA_Floattext_KeepStyles to keep
text styles accross paragraph boundaries.
2015-09-14 Thore Böckelmann
* Area.c: implemented MUIA_MinHeight and MUIA_MinWidth to enforce a certain
minimum object dimension in a convenient way. Please keep in mind that
creating a subclass of Area.mui and overloading the MUIM_AskMinMax method
is definitely a cleaner way to accomplish this, especially if you intend to
add more features than just a minimum size. This closes #254.
2015-09-13 Thore Böckelmann
* masterreq.c: added support for requester images in MUI_Request(). The image
type can be specified by the formerly unused "flags" variable. The former
suggested default value of zero will let MUI_Request() decide automatically
whether to use the "Info" or "Question" style image depending on the number
of specified buttons. This way all "old" requesters will automatically get a
suitable image, while a specific image can be set for still developed
applications. For AmigaOS4 the default system images located in
SYS:Prefs/Presets/Requester will be used. For AmigaOS3 the images will be
loaded from MUI:Images/requester. The supplied images were designed by
Martin 'mason' Merz with explicit permission to distribute them with MUI.
This closes #253.
* Floattext.c: the current styles and text colors are no longer reset to
defaults at a hard line break. This is consistent with Texst.mui. Thanks to
Andreas Falkenhahn for the hint.
2015-09-10 Thore Böckelmann
* Application.c, mastergfx.c: reworked the exclusive pen handling to obtain
only one pen per application instead of one pen per window.
2015-09-09 Thore Böckelmann
* Colorring.c: fixed a duplicate redraw of the sample button.
2015-09-08 Thore Böckelmann
* Panel.c, Popasl.c: remembering the current A4 m68k register to be able to
restore it later accessed an uninizialized pointer which in turned may have
caused crashes. The A4 m68k register is now remembered as soon as the Popasl
object is created. This closes #248.
* Aboutpage.c: add a spacing object below the list of obsolete files for the
Info page of MUI prefs, but not for the global "About MUI" window. This
closes #250.
* mastergfx.c, mastertext.c: allocate an exclusive pen for truecolor screens.
This makes it possible to use direct RGB pens on truecolor screens without
having to install patches like AfAOS. This closes #245.
* Colorring.c: make use of the new exclusive pens for the sample button.
* mcc/Hyperlink.c: don't depend on AfAOS for RGB pens anymore.
* Register.c: fixed the broken object creation due to the recent catching of
"reordering" methods.
2015-09-07 Thore Böckelmann
* Group.c: fixed the wrong centered group title text layout in case the title
text is wider than the group object.
* Title.c, demos/Title.c: the MUIM_Title_Close method was called for the wrong
object and hence did not work as expected. However, the Title demo
application implemented the method for the wrong class and continued to
work. This closes #246.
* Register.c: catch MUIM_Group_AddHead and all kinds of "reordering" methods
like MUIM_Group_Sort to keep the embedded Title object at the head of the
child list. This closes #247.
* Rectangle.c: avoid redrawing the object twice when setting more than one
attribute in one call of OM_SET.
2015-09-02 Thore Böckelmann
* mcc/Listtree.c, mcc/ListtreeName.c: removed lots of old code for
compatibility to AmigaOS2. AmigaOS3 is the absolute base for long now.
* mcc/ListtreeName.c: fixed the OM_NEW method which could never have returned
a valid object before. Did anybody use this class at all?
* mcc/Listtree.c: reworked all list operations to use NULL pointer safe list
access functions. This makes the code a lot more readable.
* doc/Text/MUIA_Text_Contents: made the role of the \033p[] escape sequence to
set the background color more clear.
* doc/Text/MUIA_Text_Contents: documented even more yet missing escape
sequences, i.e. \033B to enable JAM2 draw mode for custom text background
colors.
* mastertext.c: added support for the escape sequences \033V and \033v for
enabling and disabling INVERSVID draw mode
* Group.c: setting MUIA_Disabled respects possible MUIA_Group_Forward and
MUIA_Group_ForwardDepth attributes. This makes it possible to restrict the
OM_SET method for MUIA_Disabled to the group object only.
2015-09-01 Thore Böckelmann
* dist_common/MCC_Listtree.doc: fixed some very obvious typos in the old
Autodoc. Thanks to Andreas Falkenhahn for the hint.
2015-08-31 Thore Böckelmann
* Register.c: implemented MUIV_Register_Titles_Frame to obtain the tabs' title
strings from the page groups' title.
2015-08-22 Thore Böckelmann
* Floattext.c: fixed the MUIM_Floattext_Append method to display the new
combined text immedately.
2015-08-20 Thore Böckelmann
* Image.c: implemented MUIA_Image_CopySpec to let MUI duplicate a temporary
image spec string internally. This closes #240.
2015-08-18 Thore Böckelmann
* pointers.c: the AmigaOS4 build checks for successfully loaded images from
custom .prefs files instead of successfully created pointer objects before
falling back to the pointer images provided by intuition.library V53+.
Otherwise the intuition images will never be used. This refs #239.
* mcc/Aboutbox.c: restrict the window dimensions to show the most important
parts of the credits (application title, version and copyright) only by
default. Everything else can be made visible by scrolling down.
* Panel.c: implemented the handling of the a4 register for the AmigaOS3 build.
2015-08-17 Thore Böckelmann
* Text.c: use the text's normal width as default width, even if setting the
minimum width is forbidden (i.e. MUI_Text_SetMin = FALSE) to get as much
text displayed as possible by default.
2015-08-14 Thore Böckelmann
* pointers.c: always prefer external pointer images over the ones provided by
intuition.library and the internal ones in case they could be loaded
successfully. This closes #239.
2015-08-11 Thore Böckelmann
* Slider.c: reworked the "default value on double click" feature to accept
double clicks which happen inside the knob only. If the first click happens
outside the knob and the second one inside the knob this will be ignored.
This closes #238.
2015-07-30 Thore Böckelmann
* Title.c: started to let the MUIA_Title_Newable attribute do something
useful. This is work in progress and not yet functional.
2015-07-28 Thore Böckelmann
* List.c: implemented fixed width specification for list columns. Just insert
something like "FIXWIDTH=42" to make a colum exactly 42 pixels wide. It is
still possible to resize these columns manually. Double clicking on the
column separator switches back to default column sizes.
2015-07-24 Thore Böckelmann
* mcc/Aboutbox.c: fixed the path construction for the icon file. Programms
started from a shell now correctly obtain the programm's icon.
2015-07-22 Thore Böckelmann
* demos/NewStuff.c: splitted the NewStuff demo up into several separate demo
applications.
* Slider.c: reenabled the "jump to default value on doubleclick" feature.
* Pixmap.c, mcc/Rawimage.c: added support for raw image data compressed using
lzma.library. Currently lzma.library is supported for AmigaOS4 only.
2015-07-21 Thore Böckelmann
* Listview.c: restored compatibility with old versions of Listview.mui which
allows to use Listview.mui as a container for i.e. NList.mcc again instead
of NListview.mcc. Otherwise the NList object ends up without scrollbars,
because Listview.mui is/was just an empty wrapper and all functionality has
been moved into List.mui. This is an uncommon combination of classes, but
nevertheless it should be working since it was supported in MUI 3.8.
* Title.c: don't invalidate the drop position during MUIM_DragFinish. This
closes #224 again. Also redraw the object only once in case the drop happens
within the same object.
* Application.c: added MUIM_Application_Run as an alias for
MUIM_Application_Execute.
2015-07-17 Thore Böckelmann
* Aboutpage.c: added a label consisting of a single space character only
between the "Support:" and the URL string to avoid having to insert
artificial spaces in the translation. This closes #228.
* doc/Window: changed the Autodocs to reflect the fact that the attribute
MUIA_Window_RootObject is mandatory and must not be omitted during OM_NEW.
This closes #227.
* Aboutpage.c, copyright.h: all binaries now carry a release name like
4.0-2015R2 in their version string. This release name will also be shown on
MUI's Info page and in MUI's About window to make it easier to tell which
release exactly is installed.
2015-07-15 Thore Böckelmann
* Title.c: always remove an added dropmark object in MUIM_DragFinish to make
sure that it is made invisible again no matter where the dragged object
is dropped eventually.
* Window.c: trigger an initial notification for the window's active state
right after opening it. this is required by Odyssey to correctly track the
last active window. This closes #224.
2015-07-14 Thore Böckelmann
* Window.c: remove all frame spacings and reset all images to the internal
vector images in case the window becomes too large for a screen.
2015-07-13 Thore Böckelmann
* muiprog.h: lowered the required version of some libraries to V37 and V38.
This closes #225.
2015-07-12 Thore Böckelmann
* Title.c: added some more checks to prevent accepting unwanted D&D actions
from other objects.
* Title.c: fixed the first wrong layout of the dropmark object due to using
its width before it is actually calculated.
2015-07-10 Thore Böckelmann
* Title.c: fixed a possible NULL pointer access when dragging a tab between
different objects. The dropmark object must be created during OM_NEW instead
of just when the D&D action starts. This refs #224.
2015-07-09 Thore Böckelmann
* masterframe.c: draw a dashed frame instead of the standard raised frame in
case a bitmap frame is to be displayed on a colormapped screen.
2015-07-08 Thore Böckelmann
* List.c: setting MUIA_List_Title after OM_NEW now correctly sets up the title
buttons' dimensions. This fixes the missing title bar in Popplaceholder.mcc.
2015-07-06 Thore Böckelmann
* mcc/mccinit.c: use the usual MUI debugging framework for *.mcc classes, too.
* mcc/Popplaceholder.c: added a native reimplementation of Popplaceholder.mcc.
This closes #219.
2015-07-02 Thore Böckelmann
* Prop.c, Slider.c: fixed the redrawing of the knob at wrong positions when
mixing scroll actions by moving the knob directly and clicking above/below
it. The former did not correctly set the MUIA_Numeric_Value attribute and
hence the knob was drawn at the wrong position in case a click above/below
the knob happened after a direct movement. This refs #175 and closes #223.
2015-07-01 Thore Böckelmann
* libheader.c: lowered the required version of mathieee#?.library from 39 to
38 to let MUI run on plain AmigaOS3.1 again. This closes #222.
#### 2015R2 Release ############################################################
2015-06-30 Thore Böckelmann
* mcc/NumericList.c: make the entry set by MUIA_NumericList_Current the active
one whenever the list contents are changed.
2015-06-29 Thore Böckelmann
* mastermisc.c: catch recursive invokations of the MUIM_Draw method. This
causes garbled display of objects with active double buffering. This closes
#221.
* mcc/ColorSlider.c: added a native reimplementation of ColorSlider.mcc.
2015-06-25 Thore Böckelmann
* Colorring.c: lowered the default object size from 300x300 pixels to 200x200.
This closes #218.
2015-06-24 Thore Böckelmann
* Title.c: completely reworked the title objects' size and frame handling.
This closes #215.
* mcc/Hyperlink_mcp.c: use a plain memory allocation plus snprintf() to set up
the example text instead of asprintf(). This refs #208.
* mcc/Hyperlink.c: restore the original URI string in case following it via
URL-Handler failed, otherwise openurl.library will get a URI string it
cannot handle. This refs #208.
2015-06-22 Thore Böckelmann
* Application.c, Window.c, popcommon.c: remember the "config update active"
state at application level instead of object level. This refs #176 and
closes #217.
* Title.mui: removed some artificial handling of even/odd height values which
caused a horizontal line to be left visible for certain frame images. This
closes #214.
2015-06-20 Thore Böckelmann
* mcc/Hyperlink.c: show an error message in case following an URI fails due
to URL: being unavailable or openurl.library failed to open.
* Imagespace.c: don't restrict image effects to ARGB images. This closes #209.
2015-06-18 Thore Böckelmann
* locale/MUI.pot: removed the artificial line breaks of all bubble help texts
to allow MUI to do the user configurable reformatting automatically.
* Window.c: added some more frame settings to the range of adaptable frames to
archive a smaller window.
* mcc/Hyperlink.c: forget any hover state which might still be active from a
time before when the object becomes visible again.
* mcc/Hyperlink_mcp.c: changed the color label alignment. This refs #208.
2015-06-17 Thore Böckelmann
* mui.h, doc/Area: enhanced the MUIM_TextDim autodocs and made some former
private macros to extract the single dimensions values public.
* Frameadjust.c: splitted the internal frame display into two double lines
instead of just one double line. This refs #188.
* Backgroundadjust.c: move all objects to manipulate an external bitmap image
below the file selector to allow a more narrow window. This refs #188.
2015-06-10 Thore Böckelmann
* mcc/NumericString.c: added a native reimplementation of NumericString.mcc.
* mcc/NumericList.c: added a native reimplementation of NumericList.mcc.
2015-06-09 Thore Böckelmann
* pointers.c: added support for the new mouse pointer images of AISS 4.19.
* mcc/Urltext.c, mcc/Hyperlink.c: changed Urltext.mcc to be a binary wrapper
for Hyperlink.mcc. Urltext.mcp is therefore considered to be obsolete.
2015-06-06 Thore Böckelmann
* mcc/Hyperlink.c: added a native reimplementation of Hyperlink.mcc.
2015-06-01 Thore Böckelmann
* doc/muimaster.doc: added a paragraph about the supported pen specs for
MUI_ObtainPen().
2015-05-17 Thore Böckelmann
* mastertext.c, demos/NewStuff.c: fixed wrong handling of JAM2 drawmode in
right elided text.
* Imagebrowser.c: flush all unused images from the global image cache whenever
an instance of Imagebrowser.mui is disposed.
2015-05-15 Thore Böckelmann
* include/interfaces/muimaster.h: removed an accidentally left over additional
interface entry. This closes #206.
2015-05-13 Thore Böckelmann
* mastertext.c, List.c, Text.c: implemented three additional cutoff modes for
the MUIA_Text_Shorten attributes. These shorten too long texts by inserting
an ellipsis ("...") either at the left side, in the middle or at the right
side of the text while omitting as many characters as necessary to make the
text fit into the visible area. The list class has been enhanced to make use
of this new feature, but only if this is explicitly requested. The NewStuff
demo demonstrates the text eliding for labels and lists. This closes #199.
2015-05-11 Thore Böckelmann
* Group.c: fixed wrong usage of class pointer for the MUIM_KillNotify(Obj)
methods. This closes #205.
* Pendisplay.c: increased the minimum size from 3 to 8 pixels.
* demos/NewStuff.c: some modifications to get along without any internal
methods and paths.
2015-05-09 Thore Böckelmann
* demos/misc: some changes for consistency.
2015-05-08 Thore Böckelmann
* Group.c: restored custom implementations of MUIM_KillNotify(Obj) which
work analog to how MUIM_Notify is implemented in Group.mui. For whatever
reason these methods existed in the original MUI 3.9 code but not in the
original MUI4 code.
The reason is that during MUIM_Notify a group object checks which of its
children including itself reacts positively on GetAttr() for the desired
attribute and then invokes MUIM_Notify for that object. However, since
there were no implementations of MUIM_KillNotify(Obj) these methods were
eventually executed for the original object and not for the object that
Group class delegated the MUIM_Notify call to. Hence the notification was
left alive, because MUI tried to remove it from the wrong object.
The now implemented two methods fill this gap and delegate the
MUIM_KillNotify(Obj) method to child objects in exactly the same manner
as MUIM_Notify is delegated.
This closes #204.
2015-04-17 Thore Böckelmann
* Popmenu.c: fixed a typo which broke the AmigaOS4 build. This closes #198
again.
* Popmenu.c: added some basic debug statements for BZ #9199.
2015-04-16 Thore Böckelmann
* Popmenu.c: the system images (i.e. submenu marker, checkmark, etc) are now
correctly centered vertically when external images are used. This closes
#198.
2015-04-15 Thore Böckelmann
* mastertext.c: implemented a "render info"-less mode. This closes #196.
2015-04-14 Thore Böckelmann
* mastertext.c, Text.c: added a function to search for certain characters
within the real text portions of a string while ignoring any formatting
sequences. This closes #195.
2015-04-13 Thore Böckelmann
* Popmenu.c: the menu item text is now correctly centered vertically when
external images are used. This closes #193.
* Frimagedisplay.c: reject invalid frame specs (i.e. normal frame definitions
like MUIV_Frame_XXX) to avoid accessing invalid pointers. This closes #192.
Note: this is not a bug in MUI but in ancient classes whose developers
thought they were smarter than others and simply used wrong values.
2015-04-10 Thore Böckelmann
* Window.c: made the MUIA_Window_DrawInfo attribute public to allow the
NewStuff demo to be build with the public headers. This closes #189.
2015-04-07 Thore Böckelmann
* Title.c: changed the relayout approach after hiding/showing single tabs
and after adding/removing the automatic close button. This refs #15.
2015-03-30 Thore Böckelmann
* Slider.c, Settingsgroup.c: implemented a customizable background image for
a pressed slider knob. It defaults to the normal background image. This
closes #187.
2015-03-27 Thore Böckelmann
* Slider.c: fixed a double redraw of the slider during mouse movements by
using the MUIA_Prop_Quiet attribute to prevent Prop.mui from doing any
further update action. This possible action must only happen if the update
is not caused by mouse movements. This closes #175.
2015-03-26 Thore Böckelmann
* popcommon.c, Window.c: do the automatic termination of the pop object's
window only if there is no real time update of the configuration happening
at the same time. This closes #184.
2015-03-24 Thore Böckelmann
* String.c: create the character type check table using locale.library to
correctly respect the system's current locale setting. This closes #182.
2015-03-23 Thore Böckelmann
* Register.c: implemented a custom label class which enforces a minimum width
which leaves at least the label's first character visible. This closes
#181.
2015-03-19 Thore Böckelmann
* Title.c: eliminated lots of duplicate code for drawing the tabs either at
the top or at the bottom.
2015-03-16 Thore Böckelmann
* Title.c: reverted the change to always do a full relayout when a tab was
added or removed. This refs #15.
* Title.c: respect the automatic close button's width in the calculation of
the number of visible tabs.
* Title.c: the automatic close buttons are now correctly positioned for the
bottom placement.
2015-03-12 Thore Böckelmann
* Title.c: fixed the wrong redraw flags after a relayout. This closes #179.
* Title.c: slightly changed the position of the scroll buttons for bottom
tab positioning.
* Title.c: do the relayout after readding the temporarily removed scroll
buttons to make sure they don't get accessed while they are not part of the
GUI. This refs #178.
2015-03-11 Thore Böckelmann
* Title.c: use the tab object as parent object for the automatic close buttons
instead of the title object itself. This fixes the wrong close button
background in case the tab object is higher than the close button.
* Image.c: don't redraw the object on alpha channel changes.
* Title.c: redraw the close button in the usual way instead of forcing a
redraw by setting the alpha value.
* Title.c: correctly respect the close button's width for the hovering effect,
but ignore it when determining the object under the mouse pointer. Otherwise
the close buttons cannot be clicked.
* Title.c: the MUIM_Title_Close method invoked by the automatically added
close button now behaves consistent to the NewStuff demo's own close
buttons.
* Window.c: the window refresh type can be configured (again) now. It defaults
to simple refresh which will redraw any newly revealed portions of the
window instead of restoring it from an off-screen bitmap. The latter is
faster but requires more memory. This closes #166.
* demos/EnvBrowser.c: use the attribute MUIA_Dirlist_FilesOnly instead of
MUIA_Dirlist_FilterDrawers. The latter will match directories against any
accept or reject pattern and eventually accepts them which is wrong for the
intended purpose, while the former definitely accepts files only. This
closes #174 again.
2015-03-10 Thore Böckelmann
* Popstring.c: invoke the close method when the popstring object is cleaned
up. This is consistent to how other popup objects react when they are
cleaned up. This refs #176 but does not yet fix the invalid memory accesses
in case there are nested opened popup objects.
* popcommon.c: do all necessary cleanup work during MUIM_Hide instead of
MUIM_GlobalCleanup. This closes #176.
2015-03-09 Thore Böckelmann
* doc/Title: added Autodocs for Title.mui. This closes #173.
* demos/EnvBrowser.c: use NotePad on AmigaOS4 for editing the ENV variable
contents and removed the "-sticky" option for the AmigaOS3 build as this
is known for GoldED as C:Ed replacement only. This closes #174.
2015-03-06 Thore Böckelmann
* Register.c: readded the MUIA_Text_SetMin attribute to set no minimum width
for the tab titles. This closes #172.
2015-03-04 Thore Böckelmann
* Title.c: adding a second tab to a currently invisible title object (i.e. on
a different nested title object page) with the "Hide single tabs" option no
longer redraws that object but only performs the usual setup steps. This
closes #134.
2015-03-03 Thore Böckelmann
* String.c: slightly reworked the pen allocation.
* String.c: for AmigaOS4 the marking pens default to the system marking pens.
2015-03-02 Thore Böckelmann
* Title.c: some consistency changes between top and bottom positioning.
2015-02-27 Thore Böckelmann
* Title.c: reworked the stretching handling to be more consistent and to avoid
the situation that the scroll buttons appear although there is enough space
in the unstretched case.
* Title.c: simplified the relayout when removing the last tab or adding the
first new tab again. Also fixed the repeated wrong cleanup of the title
object whenever a tab was removed. This refs #170.
* String.c, Settingsgroup.c: the colors to be used for the marking and the
marked text can now be configured individually instead of possibly using
some internally obtained pens which cannot be changed. This closes #145.
2015-02-26 Thore Böckelmann
* Title.c: fixed the wrong positioning of drop marks and scroll buttons in
case the tabs are displayed at the bottom.
* demos/NewStuff.c: added a cycle object to change the tabs' positioning on
the fly.
* Title.c: fixed the wrong background displacement for active tabs with Tab
and Button layout when placed at the bottom.
2015-02-25 Thore Böckelmann
* Imagespace.c: fixed a typo which caused the mask pointer of the internal
vector images to remain uninitialized. This closes #167.
* Title.c: fixed a duplicate MUIM_Cleanup for the scroll buttons. This closes
#168.
* Title.c: correctly respect the currently visible tabs only during drag&drop
operations.
2015-02-24 Thore Böckelmann
* Title.c: made the row layout look consistent to the other layout types.
* Title.c: the scroll buttons now always receive an MUIM_Setup method to avoid
a warning during MUIM_AskMinMax about non-setup objects.
2015-02-23 Thore Böckelmann
* mcc/Busy.c: fixed some potential orphaned pen allocations and did some
global code cleanup.
* masterbubble.c, mcc/Clock.c: fixed the wrong alpha blending due to a missing
parameter for MUIM_Pixmap_DrawSection.
* Screenmodepanel.c: don't restrict the screen's pixel size in case the "Like
Workbench" option is active.
2015-02-22 Thore Böckelmann
* Pixmap.c: made MUIM_Pixmap_DrawSection public.
2015-02-21 Thore Böckelmann
* Title.c: the child backgrounds are now saved/restored in a global fashion
instead of for each draw operation. This closes #164.
2015-02-20 Thore Böckelmann
* Imagespace.c: a closing Workbench screen now triggers a general image flush
instead of a specific flush for a single screen only.
* Text.c: let to be underlined characters specified by MUIA_Text_HiIndex use
the same underlining technique as for MUIA_Text_ControlChar and
MUIA_Text_HiChar for consistency.
* Virtgroup.c, mcc/Aboutbox.c: moved the keyboard based scrollling from
Virtgroup.mui to Aboutbox.mcc where it was originally requested for. This
refs #125 and refs #162.
2015-02-19 Thore Böckelmann
* Title.c: restore the former background of a child object after it has been
drawn to prevent the replacement image to be released too often by Area.mui.
This refs #156.
* Title.c: draw the internal close buttons in a consistent manner for each
layout type.
* Title.c: cause a redraw in case the close button image is changed.
2015-02-18 Thore Böckelmann
* Virtgroup.c: prefer the top left corner of an object over the bottom right
corner when trying to make it visible.
* Application.c, Imagespace.c: enhanced the debug output when obtaining and
releasing images and for screen notifications.
2015-02-17 Thore Böckelmann
* Settingsgroup.c, Settings.c: enhanced the config prefs page setup to support
translated names as well as internal names. The translated names will be
visible in the page list of MUI prefs, while the internal names will be used
to set up an image path like "MUI:Images/prefs_.mi1". On the one hand
this makes it possible to replace the page images of the internal pages. On
the other hand this allows to provide an image for 3rd party .mcp classes
which don't provide an internal image themselves. This closes #154.
* Virtgroup.c: the horizontal movements caused by the keyboard adjusted the
group's top position instead of the left position.
2015-02-16 Thore Böckelmann
* masterbubble.c: avoid applying the bubble help's shadow alpha blending twice
within the hook's area.
* masterframe.c: fixed the accidentally wrong colored normal "boring" frame.
#### 2015R1 Release ############################################################
2015-02-13 Thore Böckelmann
* Imagespace.c: 24bit ILBM images are now handled as "alien" images and hence
will be loaded by the datatypes system. That way they can be used on
colormapped screens as well.
2015-02-12 Thore Böckelmann
* mastergfx.c: fixed a bug in the ARGB line drawing function which prevented
the last few pixels of the line to be drawn.
2015-02-11 Thore Böckelmann
* masterframe.c: reverted the RectFill() based frame drawing back to simple
Move() and Draw() operations. This fixes the missing/wrong pixels for frames
with rounded corners. However, this only works for 100% visible frames so
far. Any decreased visibility will still do a RectFill() based drawing and
hence cause wrong corner pixels. This refs #158.
* mastergfx.c, masterframe.c, Area.c, Colorring.c: implemented a line drawing
function which can draw arbitrary lines with alpha blended direct RGB
colors. This finally closes #158.
2015-02-10 Thore Böckelmann
* Imagespace.c, Application.c: request a notification for a to be closed
Workbench as well to flush the images mapped to this screen just like for
any other screen. This refs #152 and refs #156.
* String.c: fixed a possible wrong usage of pens due to a missing usage of the
MUIPEN() macro.
2015-02-06 Thore Böckelmann
* Fontpanel.c, Popmenu.c: obtain the required pens for colored fonts when
having to show on colormapped screens.
* Popasl.c: handle the attributes to control style and color selection of font
requester.
* mcc/Urltext_mcp.c: forbid color selection for the font, because the class
enforces its own colors anyway.
* Fontpanel.c: don't any spacer object below the font family list unless it is
really required.
* Fontpanel.c: eliminated the unneeded inherited spacing on the right side of
the font size object. This closes #155.
2015-02-05 Thore Böckelmann
* Imagespace.c: added a small safety check to ensure that raw pixmap data will
be displayed on truecolor screens only.
* mastertext.c: use the system SHINE pen for shadowed text and the the inner
outlined text in case the normal text pen would be used. This is a
compromise for systems and screens which cannot handle direct RGB colors.
Although the result will not be the desired color one still gets shadowed or
outlined text which can be recognized as such. This refs #149.
* pointers.c: use the hot spot locations of the loaded pointer images without
further modification as well as the resolution values. This closes #151.
* mastergfx.c, mastertext.c, Area.c: objects with colored fonts will now obtain
a pen to be able to use this colored font even on a colormapped screen. This
closes #146. Furthermore the text engine will now fallback to the HALFSHADOW
pen for shadowed and outlined text in case the SHADOW pen equals the TEXT
pen. This refs #149.
2015-02-04 Thore Böckelmann
* pointer.c: the embedded and fixed context sensitive pointer images can now
be replaced by external images saved by the system's Prefs/Pointer tool.
Only the "normal" image wil be used, the "busy" image will be ignored
completely as well as any different color settings compared to the system's
global "normal" pointer image. Such custom pointer image files must be
placed in "ENVARC:MUI/pointers" and must be named as ".prefs", i.e.
"link.prefs" or "northeastsouthwestresize.prefs". Currently these types are
supported:
alias
cell
columnresize
contextmenu
copy
cross
draganddrop
eastresize
eastwestresize
hand
help
link
menu
nodrop
none
northeastresize
northeastsouthwestresize
northresize
northsouthresize
northwestresize
northwestsoutheastresize
notallowed
progress
rowresize
scrollall
southeastresize
southresize
southwestresize
text
verticaltext
westresize
zoomin
zoomout
This closes #151 again.
2015-02-03 Thore Böckelmann
* images/pointer8_hand.brush, images/pointer8_link.brush: swapped bitplanes to
get pointer images with a more suitable coloring. This closes #151.
* Imagespace.c: separated a flag check for truecolor and bitmap images to
avoid loosing some state information in case a truecolor image is not
available and the bitmap image must be used instead. This closes #152.
2015-02-02 Thore Böckelmann
* Title.c, Register.c: added a private attribute to ensure that instances of
the legacy register class never get any scroll buttons attached.
* Settingsgroup.c: made the slider example text translatable. This closes
#144.
2015-01-31 Thore Böckelmann
* Title.c: fixed the wrong layout of automatically inserted close buttons.
Thanks to Andreas Falkenhahn for the hint.
2015-01-28 Thore Böckelmann
* tools/makeconfig.c: changed the default button background to use specific
RGB values instead of pens which might not exist on certain systems and
hence might cause strange colors to be actually used. The gauge background
has been reverted to the same old settings of MUI 3.x for compatibility.
2015-01-26 Thore Böckelmann
* tools/makeconfig.c: changed the default popup menu position from "centered"
to "top/left". This closes #140.
#### AmiKit8.2 Release #########################################################
2015-01-21 Thore Böckelmann
* List.c: changed the drag image rastport back to a non-clipped one. Otherwise
the bitmap will be tried to be freed twice. This closes #138.
* String.c: use "SYS:Utilities/NotePad" as external editor on AmigaOS4 instead
of "C:Ed". This closes #139.
* Text.c: a to be underlined character passed by MUIA_Text_HiChar will now be
treated like one passed by MUIA_Text_ControlChar. This has the advantage
that the underlining does not corrupt possibly desired text styles by
inserting artifical underline styles. Furthermore the to be underlined
character will never be searched for in advanced features of the current
text engine like ASCII addresses of embedded images. For example this
happened for embedded ARGB images in MUIRoyale GUIs. This closes #133.
2015-01-19 Thore Böckelmann
* mastergfx.c, List.c: removed the too wide bitmap check again and revert the
list render code to its (almost) original state. Now everything relies on
automatic clipping by the graphics system while using negative coordinates
in case the list is scrolled to the right. This makes it possible to use a
small temporary buffer again which speeds up rendering very long lines a
lot. This refs #137.
* List.c: create a clipped rastport for the drag image and limit its dimension
to what can be displayed at most regardless of the current list's width.
2015-01-16 Thore Böckelmann
* muigfx.h: fixed a too large pen array in the muigfx.library emulation.
* mastergfx.c: restricted the width of render bitmaps to 4095 pixels in case
of truecolor screens. This refs #137.
2015-01-13 Thore Böckelmann
* demos/Class3.c: fixed the old demo application to correctly handle active
doublebuffering. Internal and external coordinates MUST not be mixed up.
2015-01-12 Thore Böckelmann
* Text.c: calculate a default width in case the calculation of the minimum
width is forbidden (i.e. MUIA_Text_SetMin is set to FALSE). This solves the
problem of possibly invisible labels for the non-resized default layout of
the window.
2015-01-09 Thore Böckelmann
* Menu.c, Menuitem.c, Menustrip.c, Window.c, demos/NewStuff.c: added support
for the menu image as they are handled by the new menuclass class of
intuition.library 54.6+. This makes it possible to include arbitrary BOOPSI
images created by intuition's imageclass in both normal intuition menus as
well as in MUI's own popup menus. See NewStuff demo for details. This closes
#131.
2015-01-08 Thore Böckelmann
* Configdata.c, demos/Animals.c: make sure that the ID to the filtered by the
MUIM_Configdata_Filter method is within the valid range for further tests.
Otherwise the test for a valid key file might access invalid memory regions
and hence cause crashes. This closes #129.
2015-01-07 Thore Böckelmann
* demos/Animals.c: fixed some typos and enhanced the custom config pages by
automatically chosen keyboard shortcuts.
* Menudisplay.c: added a missing initialization of the global data for an
embedded menu strip. Without this invalid data will be accessed whenever an
item is selected due to the missing information.
2015-01-05 Thore Böckelmann
* mastertext.c: object specs may be prefixed by '$' for consistency.
* mui.h, doc/Text: updated the Autodocs of the text engine to describe the
formerly undocumented A and O specifiers to embed raw ARGB image data and
objects in MUI text strings.
2015-01-02 Thore Böckelmann
* mcc/Listtree_mcp.h: slightly changed the default image spec. This refs #132.
2014-12-29 Thore Böckelmann
* misc: simplified the check for the possible usage of direct RGB pens.
2014-12-28 Thore Böckelmann
* Colorring.c: fixed a potential drawing of gradient samples using a pen
without having allocated one before. This closes #130.
2014-12-23 Thore Böckelmann
* Virtgroup.c: added the missing IDCMP_RAWKEY for the event handler in the
AmigaOS4 build. This is absolutely required when expecting the "muikey"
field to be filled with standard MUI key codes. This closes #125 again.
* Colorring.c: lowered the default size from 350 pixels to 300 pixels. This
refs #130.
2014-12-22 Thore Böckelmann
* Winborder.c: obtain a private DrawInfo structure in case tbiclass is used
and there is no valid pointer available yet. This refs #92.
2014-12-20 Thore Böckelmann
* Virtgroup.c: make use of a private flag for force passing of standard MUI
key events to the eventhandler of the virtual group even if it is not the
window's active or default object. This closes #125 again.
2014-12-19 Thore Böckelmann
* mastergfx.c, Settings.c, misc: implemented a new settings item to control
the usage of VisualPrefs to supply enhanced system pen settings. This
setting is available for AmigaOS3 only. This closes #118.
2014-12-18 Thore Böckelmann
* mastergfx.c: changed the custom WritePixelArrayAlpha() implementation to use
a full sized buffer instead of a single line buffer. This refs #116.
* Virtgroup.c, mcc/Aboutbox.c: added keyboard handling to all virtual groups.
The typical up/down/left/right shortcuts will move the contents of the
virtual group accordingly, but only if it is possible to scroll at all. This
closes #125.
* Imagespace.c: brush images (*.mf0/1, *.mb0/1, *.mbr) are now converted to
ARGB data using the palette from the individual image files if they are used
on truecolor screens. This makes it possible to always display them with the
correct colors no matter what palette is set on the destination screen. This
refs #118.
* Imagespace.c: ILBM DEEP brushes get a fully visible alpha channel injected,
otherwise they will become fully transparent because ILBM DEEP images
consist of 24bit data only and the usual ILBM datatypes insert no visible
alpha channel.
2014-12-16 Thore Böckelmann
* Frimagedisplay.c: added an additional check for invalid frame specs.
* mastergfx.c, Pixmap.c, mcc/Clock.c: fixed the double drawing of the clock
image on colormapped screens.
#### AmiKit8.1 Release #########################################################
2014-12-15 Thore Böckelmann
* Application.c: incorporate the process' stack size in the stack check as
well. This closes #128.
2014-12-12 Thore Böckelmann
* mastergfx.c: use SetRPAttrs() to set direct RGB pens only if that function
is really found to be able to handle RGB pens. This fixes the random colors
on AmigaOS3 systems with CyberGraphics but without AfAOS. This as refs #118.
2014-12-10 Thore Böckelmann
* Dataspace.c: reverted the switch to the BZ2_bzBuffToBuff(De)Compress calls.
These seem to cause more harm than good. This closes #114 again.
2014-12-08 Thore Böckelmann
* Application.c, mastermisc.c: made the warnings about a too low stack size
and about the MUI_Redraw() task mismatch translatable.
2014-12-07 Thore Böckelmann
* Application.c: implemented a simple stack size check to avoid unexpected
crashes due to loo low stack sizes. The recommended minimum stack size
is 32768 bytes. Due to the way MUI applications are usually created a lot
more than the default 8192 bytes of stack is required. This larger
requirement has always existed, but still many developers don't ensure a
large enough stack by adding $STACK cookies the the source code or by
setting an appropriate stack size in the program's icon. This closes #123.
2014-12-06 Thore Böckelmann
* Bitmap.c: bitmaps smaller than 30x30 pixels and with a definite palette
(i.e. icons of .mcp classes) are now converted to ARGB data on truecolor
screens to allow a penless display. This closes #119.
2014-12-05 Thore Böckelmann
* Imagebrowser.c: fixed a potential NULL pointer access.
2014-12-04 Thore Böckelmann
* Bitmap.c: fixed a potential "color pen" and memory leak in case the alpha
value was changed after OM_NEW.
2014-12-01 Thore Böckelmann
* Imagebrowser.c: make the active image object visible only if it really
changed since the previous update. This closes #120.
2014-11-28 Thore Böckelmann
* String.c: copy/cut the full contents in MUIM_Textinput_Do(Copy)Cut in case
nothing is marked.
* String.c: call MUIM_Textinput_DoCopyCut instead of MUIM_Textinput_DoCut for
the context menu's "Cut" item to copy the text to the clipboard before doing
the actual cutting.
2014-11-27 Thore Böckelmann
* String.c: let String.mui behave like Textinput.mcc related to markings. This
means that markings will be kept even if the object is going inactive. Also
cleaned up the source and removed all references to the no longer existing
private settings of Textinput.mcc.
2014-11-26 Thore Böckelmann
* Group.c: fixed an ancient bug which prevented the rightmost spacer object in
the title bar of lists to become wider than 996 pixels. The previous limit
was an arbitrary number of tries to adjust the layout from the days when
screens were much more narrow than 1280 pixels. The previous limit of 1000
tries was suitable for small screens, but not for today's much larger screen
sizes. This closes #115.
#### AmiKit8 Release ###########################################################
2014-11-25 Thore Böckelmann
* Popmenu.c: menus with a title and too many items to be displayable with a
single column will no longer draw the first item of the second column within
the title area.
* Popmenu.c: center the title text even for multicolumn menus.
* Popmenu.c: don't reset the maximum item width when starting a new column to
make all items equally wide.
2014-11-21 Thore Böckelmann
* misc: added slovakian translation.
2014-11-20 Thore Böckelmann
* Install-MUI: fixed the localized name of some catalog directories.
* Install-MUI: offer the possiblility to continue the installation even if
there are still running MUI applications. This might become helpful if it is
too hard to detect which application refuses to terminate.
2014-11-18 Thore Böckelmann
* Install-MUI: in case an old MUI prefs application is found in SYS:Prefs it
will cause no warning during the installation process if it has a project
icon and the default tool matches "MUI:MUI". Such an icon will always point
to the current version of the MUI prefs application.
* Backgroundadjust.c: don't refresh the file panel after double clicking an
entry if the path stays the same.
2014-11-17 Thore Böckelmann
* Dataspace.c: added the missing initialization of the destination length
parameter for the BZ2_bzBuffToBuff(De)Compress calls. This closes #114.
2014-11-10 Thore Böckelmann
* masterframe.c: fixed the wrong frame spec extraction for bitmap frames. This
closes #113.
2014-11-09 Thore Böckelmann
* String.c: made the title string of the "Insert text file" ASL requester
translatable. This closes #111.
* Colorring.c: make sure the text editor is not overdrawn by the wheel as soon
as the mouse is moved and causes the wheel to be redrawn.
2014-11-06 Thore Böckelmann
* Pubscreenlist.c: the list titles are now shown in plain text instead of bold
italic text.
* Backgroundadjust.c, Imagebrowser.c: for single image selections the selected
image is now tried to be made visible within the scrollgroup to make it easy
to spot it.
2014-11-05 Thore Böckelmann
* mastergfx.c: added direct support for the pen settings of VisualPrefs if it
is found to be running.
2014-11-04 Thore Böckelmann
* Window.c: integrated support of the 3rd party MuiWheel custom class to let
that darn FreeWheel patch ignore all MUI windows. Unfortunately FreeWheel
feeds too many input events to the system upon using the wheel which then
in turn get misinterpreted by MUI as wheel AND cursor key events and for
example cause all list objects to scroll and change the active item in one
step. This is definitely wrong and unintuitive.
2014-10-31 Thore Böckelmann
* Settingsgroup.c: rearranged the placement of the spacer objects to allow a
fully resizable window when the Keyboard page is active. This closes #110.
#### 2014R5 Release ############################################################
2014-10-31 Thore Böckelmann
* flushmui.c: open muimaster.library only if it is really needed in order to
terminate still running applications.
2014-10-30 Thore Böckelmann
* demos/MUI-Demo.c: added handling of CTRL-C to terminate the demo.
* Aboutpage.c: show the bugtracker information in the global About window as
well.
* mcc/Urltext.c: fixed missing or wrong notifications for some attributes.
2014-10-29 Thore Böckelmann
* flushmui.c: all still running applications will now get the method
MUIM_Application_ReturnID with the typical value for termination pushed onto
their method stack before expunging all classes and muimaster.library from
memory. This helps updating MUI within in running system.
* Aboutpage.c: added a paragraph to report possible bugs in the bugtracker
including a direct link to it.
2014-10-28 Thore Böckelmann
* Imagespace.c, Area.c: filling a background with either transparent/masked or
the typical button images will now erase the background ahead of drawing the
image to avoid unwanted remnants of former draw operations. Please note that
this still doesn't make the button images a good choice as a background
image, because there are further graphical issues which cannot be worked
around for these kind of images.
2014-10-25 Thore Böckelmann
* List.c: the input list frame is now used for the title buttons as well like
it is done on MorphOS. This finally fixes all the vanishing prefs page list
images.
2014-10-24 Thore Böckelmann
* List.c: reverted some changes regarding frame settings. This might bring
back the vanishing images in MUI prefs for certain frame combinations, but
gives better inner column spacings.
2014-10-22 Thore Böckelmann
* Text.c: avoid direct accesses to the object's font pointer to determine the
height of NULL text strings but use the normal calculation function instead.
This closes #105.
2014-10-15 Thore Böckelmann
* Dataspace.c: fixed a typo in a debug statement. This closes #104.
2014-10-13 Thore Böckelmann
* Backgroundadjust.c: removed an unused function.
* List.c: fixed the vanishing images in MUI prefs in case the title button
frame is set to the invisible frame and without additional spacing.
2014-10-10 Thore Böckelmann
* Backgroundadjust.c: removed a superflous method.
* Backgroundadjust.c: removed unneeded instance data.
* Colorring.c: fixed the missing center spot.
2014-10-09 Thore Böckelmann
* Backgroundadjust.c: made the private value MUIV_Imageadjust_Type_All for the
background/image selection working again. Before only a color wheel was
offered, although the usual image browser was initialized in the background
but was kept invisible. Now it is possible to open a requester to let the
user choose from all available image types. Please keep in mind that certain
images are *NOT* suitable for every purpose. For example the normal button
images should not be used for a background. The reason is that most of these
images have transparent regions and using them for a background will cause
graphical corruption by left over artifacts after a resize. This finally
closes #103.
2014-09-29 Thore Böckelmann
* Gauge.c: don't draw the inner indicator if the frame becomes too narrow and
draws across itself.
2014-09-20 Thore Böckelmann
* Datamap.c, Objectmap.c: fixed the wrong types of of the autolock attributes.
2014-09-08 Thore Böckelmann
* mastergfx.c: free the mask plane after the dither process again in case
there are no transparent pixels.
2014-09-05 Thore Böckelmann
* flushmui.c: Don't access the library's chaining pointers after probably
having it expunged. This is guaranteed to cause invalid memory accesses.
This closes #93 again.
2014-09-04 Thore Böckelmann
* Screenmodepanel.c: don't show a bubble help because of invalid screen sizes
in case the object is disabled due to a non-available screenmode.
2014-09-03 Thore Böckelmann
* String.c: reverted a change which caused attached lists to swallow most of
the key presses and hence to causes attributes like MUIA_String_Acknowledge
to cease to work. This closes #96.
2014-09-02 Thore Böckelmann
* flushmui.c: added a NULL pointer check for the library ID string. This
closes #93.
2014-08-30 Thore Böckelmann
* mcc/Calltips.c: fixed a wrong check for a successfully opened window.
2014-08-21 Thore Böckelmann
* dist/AutoInstall: fixed the AutoInstall script to install the PSI tool as
well.
* flushmui.c: added a small tool to flush all active MUI libraries and classes
from memory. This tool will be used during the installation to ensure that
no MUI application is running which might interfere with the installation
process by keeping certain files locked.
2014-08-20 Thore Böckelmann
* Dirlist.c: setting the directory to the same path again will now reread its
contents. This refs #84.
* Fontpanel.c: implemented the automatic generation of font collections.
* Imagespace.c: brush images (*.mf0/1, *.mb0/1, *.mbr) are now always remapped
to the screen's colormap whenever they are used (again) for the first time.
This is necessary as the screen's colormap might have changed while the
image was not in use and hence would then be displayed with wrong colors.
This closes #87.
#### 2014R4 Release ############################################################
2014-08-19 Thore Böckelmann
* Fontpanel.c: added some const keywords.
2014-08-18 Thore Böckelmann
* List.c: the default drag image now shows the full contents of a line instead
of just the visible part. This refs #72.
2014-08-16 Thore Böckelmann
* List.c: fixed a NULL pointer access in case a column title is NULL. This
closes #83.
2014-08-15 Thore Böckelmann
* Fontpanel.c: changed the layout a bit to get rid of some unneeded labels.
* List.c: correctly respect right aligned text in the rightmost column. Before
a few pixels were cut off.
2014-08-14 Thore Böckelmann
* Title.c: non-clickable objects still react on mouse movements for the hover
effect.
* Settingsgroup.c: made the tab group non-clickable. Even the unclickable mode
is enough to demonstrate all necessary stuff.
* Aboutpage.c: added the URL of the development site to the About page.
2014-08-11 Thore Böckelmann
* Colorring.c: fixed completely wrong file name with trailing spaces when
saving the favorite colors to ENV:.
* libs/z.library: included latest z.library. This closes #82.
2014-08-06 Thore Böckelmann
* Dirlist.c: made the size unit names translatable.
2014-08-01 Thore Böckelmann
* Imagespace.c: apply any visual effect on truecolor screens only and only if
the image could be loaded as plain RGB data.
2014-07-31 Thore Böckelmann
* List.c: fixed the broken drag image creation. The drag images always showed
the last selected line when dragging multiple lines and the lines always
were shifted to the left depending on the position within the list.
* Winborder.c: added missing variable declaration for the AmigaOS4 build. This
closes #77.
2014-07-30 Thore Böckelmann
* Bitmap.c, Imagespace.c, Popmenu.c: handle interleaved bitmaps correctly in
all situations.
* Colorring.c: don't fade the RGB/HSV sliders on colormapped screens.
2014-07-29 Thore Böckelmann
* Winborder.c: use TBFRAMEIMAGE as basis for the screen jump image in case
VisualPrefs is running. This refs #44.
2014-07-28 Thore Böckelmann
* List.c, Floattext.c: enforcing the visibility of the horizontal scrollbar
now also works for simple single column lists.
* Colorring.c: fixed a possible NULL pointer access. This closes #75.
2014-07-25 Thore Böckelmann
* Winborder.c: fixed an Enforcer hit for the screen jump gadget when
VisualPrefs was running.
* masterframe.c: don't draw any bitmap frames on colormapped screens.
* Settings.c, locale/MUI.pot: made the error message for a failed prefs page
creation translatable.
* Mccprefs.c: don't enable/disable the public screen list as it is always free
and enabling it will override any local disabling of the edit buttons. This
closes #73.
2014-07-24 Thore Böckelmann
* Pixmap.c: fixed an invalid memory access.
* Winborder.c: derive the "winborderimage" class from "tbiclass" instead of
"imageclass" if it is available. This makes it possible to add the yet
unsupported screen jump image in a consistent way. This finally closes #44.
2014-07-23 Thore Böckelmann
* mastergfx.c: fixed the display of dithered images on 8bit screens with
interleaved bitmaps.
2014-07-21 Thore Böckelmann
* mastergfx.c: optimized the dithering process by using a common web palette
which offers a *MUCH* faster rendering. This closes #49 and closes #62.
* Popmenu.c: use the usual MUIPEN() macro when using the allocated pens.
* Colorring.c: allocate a pen for the sample buttons on 8bit screens.
2014-07-20 Thore Böckelmann
* mastergfx.c: use a friend bitmap when dithering images.
2014-07-18 Thore Böckelmann
* mastertext.c: added dithering of ARGB images when drawing texts on 8bit
screens. This refs #45.
* mcc/Listtree_mcp.c: added proper translations for the opened/closed node
image selection window title.
2014-07-17 Thore Böckelmann
* Popmenu.c: use the calculated halfshine/halfshadow pens for the separator
bar on colormapped screens. This finally closes #55.
* Colorring.c: the fancy truecolor ring image will now be dithered for 8bit
screens. This fixes the invisible color setup on colormapped screens. Please
note that the dithering is *SLOW*, but at least colors can be modified. The
future definitely belongs to truecolor displays.
* Winborder.c: use the position calculation of tbimage.class in case this
class is available.
* mastergfx.c: slightly optimized the dithering algorithm by skipping pixels
below the transparency threshold.
2014-07-16 Thore Böckelmann
* Pixmap.c: fixed the wrong handling of the transparency for CLUT8 raw data.
* Pixmap.c, mastergfx.c: offloaded the dithering code into a private function
of muimaster.library.
2014-07-14 Thore Böckelmann
* Settings.c: the Save, Test, Use and Cancel buttons at the bottom are now
part of the TAB cycling chain. This closes #66.
* mastergfx.c: disable any truecolor support in case CyberGraphics is not
available. This refs #62.
* Pixmap.c: removed duplicate BZ2_bzDecompressEnd() call.
2014-07-11 Thore Böckelmann
* Dirlist.c: added a workaround for systems which have a datatype for icons
installed. In case the icon.datatype loads the icon ahead of icon.library
then the thumbnail icons will have no transparent background due to the way
how icon.datatype renders the bitmap. Set ENV:MUI/Dirlist-Dirlist-NoIconDT
to 1 to skip icon loading by datatypes.library. Please note that this will
also disable direct loading of PNG icons by datatypes.library because these
cannot be told apart ahead of loading them. This closes #45 again.
* Image.c: use the default dimensions for BOOPSI images in the image browser
instead of the minimum dimensions. This closes #57.
* Imagespace.c: allow direct RGB image specs for truecolor screens only. For
colormapped screens a simple pen will be allocated.
2014-07-10 Thore Böckelmann
* Frimagedisplay.c, List.c: apply some visual effects on truecolor screens
only.
2014-07-09 Thore Böckelmann
* Winborder.c: don't let VisualPrefs replace the "jump to screen" button image
because it doesn't know this image at all. This refs #44.
* Winborder.c: ask the created image object for the image dimensions in case
these differ from the desired dimensions. This refs #44.
* Pixmap.c: use graphics/WritePixelArray8() to convert the dithered chunky
data into a bitmap in case CyberGraphics is not available. This closes #42
and closes #49.
2014-07-08 Thore Böckelmann
* Popmenu.c: use the global halfshine and halfshadow pens instead of creating
them again with just slightly different colors. This closes #55.
* Image.c: BOOPSI images are scaled a bit larger in the image browser to avoid
loosing too many details by keeping them as small as possible. This closes
#52.
2014-07-07 Thore Böckelmann
* masterobj.c: the function to extract shortcut characters from a string now
accepts single characters instead of string as well to avoid invalid memory
accesses of applications or classes which definitely misobey the Autodocs
and pass the wrong kind of thing. This closes #41.
* Winborder.c: VisualPrefs' title bar image class is now used before falling
back to the built in images. This makes it possible to use the skinned
images of visual prefs. The only exception is the "jump to screen" gadget
which unfortunately was not yet available back then when VisualPrefs was
updated for the last time some years back.
2014-07-04 Thore Böckelmann
* Winborder.c: removed a duplicate instance data clearing.
2014-07-02 Thore Böckelmann
* Window.c: dynamically adding an object accepting mouse clicks to a window
without such an object will now recalculate the accepted IDCMP events.
Otherwise one ends up with a window which does not accept any input.
2014-06-25 Thore Böckelmann
* Aboutpage.c: check for bzip2.library installed in the wrong place, too.
2014-06-18 Thore Böckelmann
* Backgroundadjust.c: reworked the default RGB pen handling a bit to ensure
that at least a pen button is selected.
2014-06-17 Thore Böckelmann
* Backgroundadjust.c: refined the workaround for WookieChat once more by doing
a name check on the calling task. The adjustment will only happen if the
task's name contains the text "WookieChat".
* mcc/Listtree_mcp.c: explicitly request an image selection requester.
2014-06-16 Thore Böckelmann
* Title.c: partly implemented MUIA_Title_Position. Setting this attribute to
MUIV_Title_Position_Bottom will place the tabs at the register group's
bottom instead at the top as usual. The placement on the left or right side
is not yet implemented and will default to top placement.
2014-06-12 Thore Böckelmann
* Makefile: excluded the WbMan demo from the AmigaOS4 build, because it
references a no longer existing directory. This refs #39.
* demos/NewStuff.c: check if certain classes can be instanciated successfully
to ensure that certain libraries are available. This closes #39.
2014-06-11 Thore Böckelmann
* Backgroundadjust.c: refined the wrong background selection of WookieChat a
bit more to work correctly. This refs #35.
* tools/makeconfig.c: use a local temporary directory for the prefs gadget
files instead of a system global one. This fixes the broken MUI3 nightly
builds in case the temporary directory was created before by another user.
* mastermisc.c: tasks violating the rules of MUI_Redraw() can now be ignored
to avoid massive warning requesters with always the same contents.
* Title.c: fixed the increasing space requirement of the object by setting a
fixed minimum size instead of adding it. This closes #38.
* mastergfx.c: the fixed font is now checked to be really a monospaced font.
2014-06-10 Thore Böckelmann
* locale/turkish.po: added turkish translation.
* Backgroundadjust.c: added a workaround for WookieChat which uses a private
attribute to initialize the pen adjustment which in turn caused the class to
show the image selection instead of the pen adjustment. This closes #35.
* Fontpanel.c: evaluate flags specified by ASLFO_Flags as well.
2014-06-03 Thore Böckelmann
* Title.c: implemented MUIA_Title_Closable. Setting this attribute to TRUE
will add a clickable close button to each tab and a click on it will call
the method MUIM_Title_Close. This closes #34.
2014-05-28 Thore Böckelmann
* Title.c, demos/NewStuff.c: closing the last tab will now switch the register
group to non-paged mode to avoid graphical corruption.
2014-05-27 Thore Böckelmann
* Title.c, Register.c: enforce some settings to be compatible to the old
register class in respect to the group's resizability.
2014-05-26 Thore Böckelmann
* Group.c, Title.c: set a correct minimum size for the title group.
2014-05-19 Thore Böckelmann
* List.c: restricted the maximum line width to 8192 pixels. Larger values
might exceed the hardware limit and will cause graphical corruption. This
closes #30.
2014-05-18 Thore Böckelmann
* mastertext.c: implemented a wrapper for graphics/TextLength() which breaks
down the string into small chunks to be able to handle strings which exceed
the pixel width of 32767. This refs #30.
* mastertext.c: implemented a wrapper for graphics/TextExtent() which breaks
down the string into small chunks to be able to handle strings which exceed
the pixel width of 32767. This refs #30.
2014-05-17 Thore Böckelmann
* Dirlist.c: fixed the wrong size display of large files.
* mastertext.c: replaced the O(n) calculation of fitting characters by an
O(log n) approach. This speeds up the display of very long list lines
by several magnitudes.
2014-05-13 Thore Böckelmann
* List.c: reworked the automatic activation to accept clicks anywhere within
the object instead of on items only.
* Datamap.c: implemented MUIA_Datamap_AutoLock.
* Objectmap.c: added Objectmap.mui class.
* Dirlist.c: implemented MUIA_Dirlist_NumBytes64.
* String.c: implemented MUIA_String_Integer64.
2014-05-10 Thore Böckelmann
* List.c, mcc/Listtree.c: reverted the artifical priority bumps again and
implemented an automatic setting of the list object as the window's active
object upon the first click inside the list. This fixes the inaccessible
side panels in Odyssey.
2014-05-09 Thore Böckelmann
* mcc/Listtree.c: bumped the event handler's priority by the same amount as
the event handler of List.mui. This closes #31.
2014-05-06 Thore Böckelmann
* List.c: always draw complete lines, even if some parts are currently out of
the visible area. This closes #29.
* List.c: bumped the list's global event handler once more. A priority of +2
is required to get called before Odyssey's browser event handler. This
really smells like a bug in Odyssey. This refs #27.
2014-05-05 Thore Böckelmann
* Area.c, Cycle.c, List.c, Title.c: reverted all the artificial event handler
priority bumps. They are no longer required.
* List.c: bumped the list's global event handler priority by 2 to fix a
massive eating of events by Odyssey's browser class. This closes #27.
2014-05-04 Thore Böckelmann
* Title.c: don't declare an input event as "eaten" if no tab was acutally
clicked. This closes #26.
2014-05-01 Thore Böckelmann
* masterclass.c: made the class and object debugging functions reentrant by
removing the local static buffers for the string to be printed. Now the
functions can be used multiple times within one debug statement without
causing any inconsistent output.
2014-04-30 Thore Böckelmann
* Window.c: optimized the event handler list sorting process by replacing the
O(n) iterative node copy loop by the O(1) MoveList() call.
2014-04-09 Thore Böckelmann
* muigfx.c, misc: reintroduced the formerly removed muigfx.library as a
dynamically created library. This is necessary to make Voyager work again,
because this application explicitly checks for muigfx.library to be
available although this is a private library without public interface. This
closes #16.
* locale/dutch.po: pulled dutch translation from transifex.com.
2014-04-03 Thore Böckelmann
* Window.c: fixed another NULL pointer access when checking for possible
bubble help texts. As it seems only IBrowse was affected and the crash
happens only once for a running instance of IBrowse when moving the mouse
over a link in the browser group. This closes #23 again.
2014-04-01 Thore Böckelmann
* Application.c: partly reverted r3343 which caused some timer based input
handlers to fail, i.e. GIF animations in IBrowse were no longer working.
* locale: added a new header line to the .po files to specify a correct name
for the generated .catalog file.
2014-03-30 Thore Böckelmann
* locale/dutch.po: updated dutch translation from transifex.
2014-03-28 Thore Böckelmann
* Dataspace.c, Pixmap.c, misc: switched over to the renamed bzip2.library to
avoid confusion and possible incompatibilites with bz2.library done by Jörg
Strohmayer.
2014-03-27 Thore Böckelmann
* locale/dutch.po, locale/italian.po: updated dutch and italian translations
from transifex.
2014-03-26 Thore Böckelmann
* Cycle.c: bumped the event handler's priority by 1 to allow opening the drop
down menu again in case the input mode is set to anything else than the
default value. This makes the cycle buttons in Daysleeper behave normally
again.
2014-03-21 Thore Böckelmann
* String.c: fixed the possibly invisible cursor when the object becomes active
and the content string's pixel width is larger than the object's width.
2014-03-20 Thore Böckelmann
* Window.c: reverted r3347 as it caused more harm than good. This closes #23.
* Window.c: fixed a wrong check whether a recalculation of some signals is
necessary.
2014-03-19 Thore Böckelmann
* Application.c: deobfuscated the input handler node handling.
* Window.c: deobfuscated the event handler node handling.
2014-03-18 Thore Böckelmann
* Settingsgroup.c: don't clear the instance data of Settingsgroup.mui as this
breaks the popup menus for the individual images. This closes #24.
* locale/all: fixed the wrong menu shortcuts in all translations once again.
This requires the yet unreleased version of FlexCat 2.14 to create correct
catalogs.
2014-03-17 Thore Böckelmann
* dist_os4: replaced the faulty icons by proper ones. This closes #22.
2014-03-16 Thore Böckelmann
* mcc/Calltips.c: make sure that the popup window is moved in front of the
parent window upon uniconification. This refs #19.
* Window.c, mcc/Calltips.c: implemented a private attribute to control the
window's "stay on top" behaviour. This should really make sure that the
popup windows of Calltips.mcc can ever be placed behind any other window.
This refs #19.
#### 2014R3 Release ############################################################
2014-03-15 Thore Böckelmann
* locale/all: fixed the wrong menu shortcuts in all translations.
2014-03-14 Thore Böckelmann
* all: explicitly clear the instance data of all created objects. Although
this is something which should be done by rootclass of intuition.library
already it seems that the MUNGE kernel option reveals some uninitialized
memory in certain situations. See YAM ticket #440 for details.
2014-03-13 Thore Böckelmann
* Title.c: fixed the overdrawn first/last letter of a too long tab text for
the row layout in case the inner frame spacing is less than 1 pixel.
2014-03-10 Thore Böckelmann
* dist_common/images/default_OS4/Popfile.mim: replaced the selected image
by a more suitable one for file requesters (BZ #8749).
2014-03-05 Thore Böckelmann
* Settings.c: set a fixed minimum width for the first page list column to
avoid vanishing images (BZ #8645).
2014-03-03 Thore Böckelmann
* Window.c: applied the same iteration approach for EventHandlers as for
InputHandlers.
2014-03-02 Thore Böckelmann
* Application.c: fixed a NULL pointer access in case MUIM_Application_NewInput
is called recursively while the InputHandler list is still iterated through
by the first call, i.e. by calling MUI_RequestA() as a reaction on a key
press. This closes YAM ticket #531.
* Window.c: fixed a NULL pointer access when repeatedly handling a bubble help
within the same object.
2014-02-28 Thore Böckelmann
* dist_common/Install-MUI: fixed the source and destination path for the *.mi1
and *.mim images. These were not copied before.
2014-02-27 Thore Böckelmann
* Window.c: implemented support for objects which support different bubble
help texts at different positions, i.e. the page list of MUI prefs. This
avoids the necessity to move the mouse outside and back inside the object
just to get a different bubble help.
2014-02-26 Thore Böckelmann
* prefs.c, psi.c, demos/demo.h: ensure a minimum stack size of 64K for all
demos and applications.
* mcc/Calltips.c: fixed the GUI lockup in case the application was uniconified
with a Calltips object being opened. This refs #19.
* Pixmap.c, mcc/Clock.c: implemented MUIA_Pixmap_TransparencyThreshold to
modify which partly transparent pixels will stay transparent when dithering
32bit ARGB data to 8bit CLUT data.
2014-02-25 Thore Böckelmann
* Makefile: fixed the failing catalog creating due to the new PO files and
forced the generation of locale.c to be non-parallel.
* mcc/Aboutbox.c: make the "Ok" button the default active object to accept
a "keyboard click" by pressing Enter. This closes #18.
2014-02-24 Jens Maus
* locale: all catalog translations have now been moved to use the PO
format and using the free services of transifex
(http://www.transifex.com/projects/p/mui/).
2014-02-19 Thore Böckelmann
* Virtgroup.c: replaced the old crosshair pointer images for autoscrolling by
the new object pointer images to archive a consistent look. The autoscroll
mode will no longer be activated if the virtual group cannot be scrolled at
all.
2014-02-18 Thore Böckelmann
* String.c: any marking will be disabled when the object becomes inactive and
is in "normal" mode. This matches the behaviour of Intuition string objects.
* Title.c: changed to boolean hover effect setting into a percentage value. 0%
disables the hovering effect.
* Virtgroup.c: made the automove mouse pointer compatible to the object
pointers again.
2014-02-17 Thore Böckelmann
* Application.c, Settingsgroup.c, String.c: simplified the marking qualifier
setting by using a selection group instead of having to add an ignored
qualifier to all cursor key related shortcuts.
2014-02-16 Thore Böckelmann
* masterbubble.c: fall back to the old 8bit image even on truecolor screens
in case the truecolor images cannot be created successfully.
2014-02-15 Thore Böckelmann
* List.c: adapted the priority of the title buttons' eventhandler to
allow resizing again. This closes #14.
2014-02-14 Thore Böckelmann
* String.c: respect all possible qualifier synonyms when calculating the
marking qualifiers.
2014-02-13 Thore Böckelmann
* String.c: implemented keyboard based marking of the contents. For this to
work certain qualifiers must be ignored by adding i.e. "-alt" to the key
spec string to use any ALT key for marking. The default key specs have been
adapted accordingly. This closes #13.
2014-02-11 Thore Böckelmann
* Title.c: correctly respect the current active state of the scroll buttons
when adding or reordering tab objects.
* Title.c: make sure that all visible tab objects receive MUIM_Show and all
invisible tab objects receive MUIM_Hide only once to avoid possible actions
done in these methods being executed twice.
* Title.c, Area.c: raised the default priority of Area.mui's eventhandler by
1. Additionally the eventhandler of Title.mui gets a default priority higher
than that of Area.mui. This ensures that both drag&drop and scrolling
through all tabs is working correctly for Title.mui. This finally closes #6.
* String.c: load the key definitions of Textinput.mcc in emulation mode only.
* String.c: excluded some more keys which don't produce printable characters
(i.e. Home or End) from further input handling.
2014-02-10 Thore Böckelmann
* Window.c: borderless windows will never get a size gadget attached, because
that also adds the zoom gadget in the window title bar. This fixes the full
screen mode of Odyssey and thus closes #7.
* Window.c: reworked the pointer type management to distinguish between object
and window pointers. This closes #11.
2014-02-09 Thore Böckelmann
* Area.c: fixed the garbled drag image for groups. This closes #4.
2014-02-08 Thore Böckelmann
* Title.c, Settingsgroup.c: implemented an often requested feature to disable
the tab hovering effect. By default the effect is off. This feature can be
configured on the Groups page of MUI prefs. This closes #5.
2014-02-07 Thore Böckelmann
* Text.c, Title.c: added a private attribute to center text horizontally. For
example this is required for Odyssey's tab titles. This closes #3.
* Title.c: fixed the invisible drop marks during drag&drop operations.
* Pixmap.c: fixed the broken bubble help drawing.
* Settings.c: added a check for a valid keyfile when saving the config. Before
MUI always ignored the keyfile an aborted the save process early. This
closes #1.
2014-02-06 Thore Böckelmann
* Title.c: perform the necessary actions for hiding single tabs only if the
title object has executed the MUIM_Setup method before.
* Settings.c: make sure that the current page is correctly enabled/disabled
when switching the test mode by applying the current configuration again.
This closes #2.
* Pixmap.c: check for a valid renderinfo before doing the actual drawing in
MUIM_Pixmap_DrawSection.
* Title.c: fixed an issue which might lead to a situation that the scroll
button object are disposed twice.
* Title.c: hide invisible tab objects to avoid graphical corruption due to the
throbber animation in Odyssey.
2014-02-05 Thore Böckelmann
* mcc/Clock.c: reworked the Clock class to use a built-in background image
which just gets the clock hands rendered on top of it. Many thanks to Martin
'mason' Merz for the image.
* mcc/Clock.c: optimized the clock hand drawing a bit. However, the hour and
minute clock hand still look slightly triangular.
2014-02-04 Thore Böckelmann
* Title.c, Settingsgroup.c: implemented an often requested feature to hide the
tabs completely in case only a single tab is available at all. This feature
can be configured on the Groups page of MUI prefs.
2014-02-03 Thore Böckelmann