------------------------------------ MUI Magic User Interface - ChangeLog ------------------------------------ $Id: ChangeLog 6515 2020-01-02 07:24:24Z tboeckel $ #### 5.0-2019R4 Release ######################################################## 2019-12-29 Thore Böckelmann * demos: added the missing icons for the Calltips and Hyperlink demo. This closes #422. 2019-12-28 Thore Böckelmann * demos/Hyperlink.c: changed the web hyperlink to a button. 2019-12-19 Thore Böckelmann * demos/Hyperlink.c: added demo for Hyperlink.mcc. * demos/Calltips.c: added demo for Calltips.mcc. 2019-12-17 Thore Böckelmann * mcc/Hyperlink.c: added optional AISS images to the context menu. * Settings.c: added optional AISS images to the context menu. * Settings.c: reworked the bug fix for #408 once more, because the context menu was never shown for single settings items. This closes #408 again. 2019-12-16 Thore Böckelmann * mcc/GIFAnim.c: going single frames backward requires a full redraw, otherwise the old imagery will remain visible. * mcc/GIFAnim.c: the asynchronous decoder no longer requires a special Exec signal bit to signal the end of the file loading process. 2019-12-04 Thore Böckelmann * Area.c: MUIA_WindowObject and MUIA_Window can be queried regardless of the object's visibility. Before that depended on the state of an internal flag and invisible objects (i.e. on an inactivate page of a Register group) could never obtain their window's object or Intuition window pointer, even if the window was opened. Many thanks to Andreas Falkenhahn for the hint. 2019-12-03 Thore Böckelmann * doc: mention the macros _win() and _window() as alternatives to OM_GET'ing MUIA_WindowObject and MUIA_Window. 2019-10-12 Thore Böckelmann * mastertext.c: fixed a possible division by zero bug during alpha channel reconstruction. 2019-10-06 Thore Böckelmann * Area.c: fully initialize InputEvent structure before passing it to the system. * Application.c: made MUIA_Application OM_GET'able. * Application.c: the global iconification hotkey is available as a MUIKEY_* definition. 2019-10-05 Thore Böckelmann * Application.c: fixed wrong timing of scaled input handlers. All scaled down variants (1/100s, 1/10s, 1s) work as documented now. #### 5.0-2019R3 Release ######################################################## 2019-09-29 Thore Böckelmann * Dirlist.c: allocate a custom signal for waking up the asynchronous reading process. * Slave.c: allocate a custom signal for waking up the asynchronous dispatcher process. * Imagespace.c: allocate a custom signal for waking up the asynchronous image flushing process. 2019-09-27 Thore Böckelmann * Fontpanel.c: allocate a custom signal for waking up the asynchronous font processing instead of using a fixed system signal. This refs #417. 2019-09-26 Thore Böckelmann * Fontpanel.c: use a different signal than CTRL-C to wake up the asynchronous font processing. diskfont.library of AmigaOS3 doesn't like to be interrupted during OpenDiskFont() via CTRL-C and causes arbitrary crashes. This closes #417. 2019-09-25 Thore Böckelmann * Title.c: the clipping of tabs worked for top placement all the time, even if bottom placement was active. Thus the clipping was applied to the wrong region and hence caused the hovering effect to be not applied visually. This closes #418. 2019-09-02 Thore Böckelmann * Application.c, masterrexx.c: implemented the ARexx commands TOFRONT and TOBACK to bring all windows of an application to the front and to the back while keeping the relative Z order of all windows. This in essence fulfills the requirements of ticket #415 and hence closes #415, although the commands affect ALL windows instead of specific ones. 2019-08-15 Thore Böckelmann * Fontpanel.c: added a NULL pointer check. * Popasl.c: fall back to the default fixed font instead of the default font in case a font requester for fixed fonts only is desired. 2019-08-12 Thore Böckelmann * classes.mib: made MUIM_List_QueryColumnWidth public. * List.c: added a check for the active entry to be valid before selecting the corresponding list entry. This closes #414. #### 5.0-2019R2 Release ######################################################## 2019-06-23 Thore Böckelmann * Aboutpage.c: bumped copyright year to 2019. This closes #411. 2019-04-22 Thore Böckelmann * Settings.c: trying to open the context menu on the frame of the settings page caused an invalid title due to an invalid determined page. Now the frame area is ignored for the context menu. This closes #408. #### 5.0-2019R1 Release ######################################################## 2019-04-01 Thore Böckelmann * dist/Rexx/ReadMe: added italian translation kindly provided by Samir Hawamdeh. 2019-03-12 Thore Böckelmann * mastertext.c: fixed a buffer overrun when removing MUI styles from a string for usage in normal Intuition requesters. 2019-03-07 Thore Böckelmann * docs/Italiano/MUI.guide: updated italian documentation. Many thanks to Samir Hawamdeh for his work. This closes #404. 2019-01-08 Thore Böckelmann * mastertext.c: added a missing check to avoid using truecolor related functions on colormapped screens, as this will cause crashes on systems without and truecolor capability at all. This closes #402. 2019-01-05 Thore Böckelmann * docs/italiano/MUI.guide: added final italian MUI documentation kindly provided by Samir Hawamdeh. This closes #397. #### 5.0-2018R4 Release ######################################################## 2018-12-10 Thore Böckelmann * Popmenu.c: reworked the handling of selected entries by really copying the entries instead of just remembering their addresses. This avoids accessing recently freed memory right after the popup menu has been closed. This closes #395. * Popmenu.c, Imagespace.c: implemented scaling of images. This makes it possible to display the AISS images in popup menus in other sizes than the original size. This closes #396. 2018-12-06 Thore Böckelmann * Menuitem.c, Popmenu.c, misc: added the new attribute MUIA_Menuitem_AISSName. If specified the given AISS image will be placed in front of the menu item's text. This feature is completely user configurable and does NOT require AISS to be installed at all. If anything fails or is disabled the images will simply not be displayed. This finally closes #371 and closes #374. * String.c: make use of the new attribute MUIA_Menuitem_AISSName to add some images to the context menu. 2018-12-04 Thore Böckelmann * mastertext.c: added some NULL pointer checks to avoid accessing an invalid RastPort pointer during text dimension calculations. 2018-11-26 Thore Böckelmann * String.c: avoid calling GetRGB32() with invalid pen numbers. This refs #394. 2018-11-08 Thore Böckelmann * Imagespace.c: set up the hash key only once when looking up and creating new image cache nodes to avoid forgetting to initialize certain variables. This finally closes #387. * mcc/Hyperlink.c: generate suitable help texts for "about:xxx" style URIs. 2018-11-07 Thore Böckelmann * Imagespace.c: added the missing initialization of the flags field when adding a new entry to the hash table. This refs #387. #### 5.0-2018R3 Release ######################################################## 2018-10-19 Thore Böckelmann * mastertext.c: use the usual internal functions to set up everything for display of transparent text. 2018-10-08 Thore Böckelmann * mastertext.c: implemented alpha blended text output for AmigaOS3. It is possible to use transparent text on truecolor screens even on AmigaOS3 now. The result does not look exactly as it does on AmigaOS4, but that is the best one can get. * String.c: the text of MUIA_String_InactiveContents will be displayed with 50% transparency on AmigaOS3 as well. This refs #392. 2018-10-04 Thore Böckelmann * String.c: set correct transparency in all cases for inactive contents. This refs #392. 2018-10-02 Thore Böckelmann * String.c: the text of MUIA_String_InactiveContents will be displayed with 50% transparency in case the system supports this. All other systems will continue to use italic text. This closes #392. 2018-09-23 Thore Böckelmann * String.c: do a proper redraw after OM_SET'ing MUIA_String_InactiveContents. This closes #390. * String.c: push the "to be erased" area after the inactive contents string a few pixels to the right to preserve the slanted pixels of the italicized text. This closes #391. 2018-09-06 Thore Böckelmann * Menu.c: free possibly copied title and shortcut texts during OM_DISPOSE. 2018-09-05 Thore Böckelmann * Application.c: make sure to always free certain memory allocations when loading a new configuration. * Frameadjust.c: display certain bitmap frames larger than usual. 2018-08-20 Thore Böckelmann * masterreq.c: remove underscores and other MUI specific characters from the buttons string when falling back to EasyRequest(). This refs #330. * masterreq.c, mastertext.c: use a plain text version of the body text passed to MUI_RequestA() when falling back to EasyRequest(). This refs #330. 2018-07-17 Thore Böckelmann * Window.c: setting the window's root object will dispose any formerly added scrollgroup. If the new root object again is too large and requires a scrollgroup it will be readded on demand. #### 5.0-2018R2 Release ######################################################## 2018-07-09 Thore Böckelmann * List.c: calling MUIM_List_Select on a non-multiselection list will keep only the last selected entry in selected state to be consistent with the MUIA_List_MultiSelect attribute. This closes #386. 2018-06-28 Thore Böckelmann * List.c: keep the list's selected items during MUIM_Sort. 2018-06-28 Thore Böckelmann * List.c: keep the list's active item during MUIM_Sort. This closes #384. 2018-05-17 Thore Böckelmann * List.c: fixed the broken MUIM_List_Move implementation. The previous memmove() call corrupts memory for unknown reasons. Hence the old loop based movement has been restored. This closes #380. 2018-05-16 Thore Böckelmann * Colorring.c: reworked the wheel mouse support to operate on visible sliders only. 2018-04-29 Thore Böckelmann * Selectgroup.c: made MUIA_Selectgroup_Active public, which in fact is identical to MUIA_Cycle_Active. 2018-04-28 Thore Böckelmann * demos/Slave.c: use a custom allocated signal instead of the fixed signal SIGBREAKF_CTRL_D. 2018-04-25 Thore Böckelmann * misc: simplified the source code sections doing 32bit ARGB blits by using a system specific macro instead of distiguishing between systems upon each blitting operation. 2018-04-24 Thore Böckelmann * mcc/Aboutbox.c: the application title is centered below the logo image. * List.c: reverted the type of MUIA_List_Stripes to BOOL. The amount of the row striping effect is user configurable. 2018-04-23 Thore Böckelmann * mcc/Aboutbox.c: removed some artifical spacing. 2018-04-20 Thore Böckelmann * Area.c: custom fonts are no longer opened during OM_NEW but during MUI_Setup to support font inheritance. * mcc/Aboutbox.c: relayouted the GUI. 2018-04-19 Thore Böckelmann * List.c, Settingsgroup.c: the highlighting effect of the currently sorted column can be configured now. 2018-04-18 Thore Böckelmann * locale/greek.po: fixed an invalid UTF8 character. 2018-04-17 Thore Böckelmann * mcc/Listtree_mcp.c: relayouted the GUI. * Settingsgroup.c: implemented a separate class for the striping effect slider. 2018-04-09 Thore Böckelmann * Window.c: reverted the changes to the eventhandler sorting algorithm. The window's active and default objects can install more than one eventhandler which got lost by the changed approach. This closes #376 and closes #377. 2018-04-04 Thore Böckelmann * Window.c: the eventhandlers are sorted with a little less overhead. * Imagespace.c: remember the creation flags of gradient images, otherwise rotated gradients are not cached as distinct images. 2018-04-03 Thore Böckelmann * Window.c: added an experimental feature to support large GUIs on small screens. If a window does not fit on a screen MUI will now dynamically add a scrollable virtual group around the usual window contents instead of modifying the application's settings to enforce a smaller GUI due to smaller font and frame sizes. This will affect the sole too large window only instead of all windows of the application. The well known adaption of the settings is still used as fallback, but now is very unlikely to happen at all. #### 5.0-2018R1 Release ######################################################## 2018-04-03 Thore Böckelmann * Imagespace.c: gradients are handled with full 8 bits per channel internally instead of clipping the channels to 4 or 5 bits. 2018-03-29 Thore Böckelmann * List.c: turned MUIA_List_Stripes into a LONG value to allow for arbitrary striping effects instead of fixed ones. * dist/Install-MUI: added italian translation kindly provided by Samir Hawamdeh. This closes #375. * Dirlist.c: the volume/device list is updated automatically whenever a disk is inserted or removed. 2018-03-28 Thore Böckelmann * Datamap.c, Objectmap.c: implemented attributes to return the number of stored items. * Balance.c, mcc/BetterBalance.c: moved the core functionality of BetterBalance.mcc into Balance class. This makes BetterBalance.mcc a simple empty wrapper for Balance class with no additional features. * List.c: added MUIA_List_Stripes attribute to enforce a row striping effect of +20% by the application. * Colorring.c: added mouse wheel support. 2018-03-22 Thore Böckelmann * Aboutpage.c, tools/makeinc.c: bumped all copyright years to 2018. This closes #373. 2018-03-20 Thore Böckelmann * masterinit.c, Aboutpage.c: the expiry messages are translatable now. This closes #372. 2018-03-19 Thore Böckelmann * String.c: added additional context menu items "Undo", "Redo" and "Select all". This refs #371. 2018-02-15 Thore Böckelmann * Mccprefs.c: removed the no-op OM_DISPOSE implemenation. 2018-02-14 Thore Böckelmann * Radio.c: rewrote the complete object creation to avoid memory fragmentation. 2018-02-13 Thore Böckelmann * Text.c: implemented a simple word wrapping algorithm to wrap too long texts at spaces to let them fit on small screens. * masterreq.c: MUI_Request() will automatically wrap the body text at word boundaries. This allows to use arbitrary long single line body texts without having to fear that MUI will automatically adapt the font sizes to squeeze the GUI onto the screen, which eventually may fail if the strings are too long. Currently the text will be wrapped to take not more than half of the screen's width, but at least 400 pixels. This closes #370. 2018-02-08 Thore Böckelmann * misc: eliminated the superflous Listview objects around List objects. These are no longer required. * demos: eliminated the superflous Listview objects around List objects. These are no longer required. 2018-02-05 Thore Böckelmann * misc: removed lots of artifical dummy variables in the instance data of certain classes. 2018-01-31 Thore Böckelmann * mcc/Lamp.c: fixed the broken handling of real time prefs changes. * mcc/Hyperlink.c: implemented direct support of real time prefs changes. * mcc/Busy.c: implemented direct support of real time prefs changes. 2018-01-29 Thore Böckelmann * mcc/Hyperlink.c: dispose a previously opened Aboutbox window object in case the URI is changed. 2018-01-27 Thore Böckelmann * mcc/Aboutbox.c: recreate the AmigaOS logo object upon each opening of the window, because the logo is disposed as soon as the window is closed. This fixes certain crashes when opening the window more than just once. * mcc/Hyperlink.c: set the logo object before (re)opening the Aboutbox window to avoid accessing dead memory when opening the Aboutbox window a second time. * mcc/Hyperlink_mcp.c: added two more examples for "about:..." style links. 2018-01-16 Thore Böckelmann * dist: updated codesets.library to its latest release. 2018-01-11 Thore Böckelmann * Keyadjust.c: remember the set MUIA_ControlChar character and pass it to the created String object whenever it is recreated. This closes #368. 2018-01-09 Thore Böckelmann * mastergfx.c: really use the "best match" color reduction on 16 color screens. 2018-01-08 Thore Böckelmann * mastergfx.c: added a special workaround for screens with 16 colors at most. Instead of enforcing a special fixed palette consisting of 216 distinct colors the screen's current palette will be used. The actual color reduction algorithm will then perform a "best match" color reduction. Due to the unmodified palette this should improve the quality the generated images, at least for those which make use of the existing palette already. #### 5.0-2017R4 Release ######################################################## 2017-12-21 Thore Böckelmann * mcc/Rawimage.c: Fixed the handling of OM_SET. Setting any other attribute than MUIA_Rawimage_Data would have changed the raw image data nevertheless. 2017-12-18 Thore Böckelmann * all: bumped the revision of all classes to ensure that all libraries and classes are copied by the Installer script. By this all classes which access internal and private instance data of their parent classes will again access the desired data at the correct location. This closes #366. 2017-12-13 Thore Böckelmann * Dirlist.c: added a wrapper around ExamineDir() to convert the obtained entries back into the old ExAll structure required internally, but without getting the usual warnings about deprecated functions during the AmigaOS4 build. 2017-12-12 Thore Böckelmann * Dirlist.c: fixed a potential memory leak when soft links have a comment set. 2017-12-11 Thore Böckelmann * Application.c: refined the Z order handling a bit to avoid deadlocks. This refs# 351. * Popstring.c: added a missing parameter when aborting the opened popobject which caused the close hook to act like a successful termination before. 2017-12-08 Thore Böckelmann * misc: removed lots of "empty" implementations of OM_DISPOSE which do nothing else than just calling DoSuperMethod(). * Application.c: during iconification the Z order of all windows will be remembered and restored during uniconification. This ensures that a window at the top before iconification will be back at the top again after uniconification no matter in which order the windows were created. This closes #351. 2017-12-06 Thore Böckelmann * List.c: calculate the column width with exactly the same font being active as when that column is displayed. This fixes the too wide font size columns in Fontpanel class when the font preview is active. 2017-12-05 Thore Böckelmann * Fontpanel.c: fixed the font preview in case the font list's line height is already higher than the required 24 pixels due to custom frame settings. 2017-12-02 Thore Böckelmann * List.c: update the "is selected" information even for non-multiselection lists, otherwise the MUIM_List_CreateDragImage method will cease to work and Drag'n'drop is no longer possible. This closes #364. 2017-11-29 Thore Böckelmann * Fontpanel.c, Pubscreen.c: fonts opened by MUI's internal OpenFont() function must be closed by MUI's internal CloseFont() function, too. 2017-11-27 Thore Böckelmann * Fontpanel.c: fixed a pontential wrong CloseFont() call. 2017-11-22 Thore Böckelmann * Fontpanel.c: renaming a font family would use an internal buffer twice and hence cause a wrong name to be displayed during editing. * List.c: fixed a wrong destination object usage in a MUIM_KillNotifyObj call. 2017-11-21 Thore Böckelmann * Popmenu.c, Window.c: fixed a memory leak which occured whenever the "Jump to screen" was opened. * List.c: cache the parent Listview object instead of determining it over and over again. 2017-11-20 Thore Böckelmann * mcc/Listtree.c: trying to remove all subnodes of a closed node would have removed the following nodes due to a wrong check whether the node is really visible or not. This closes #363. * mastertext.c: reverted r5726 which tries to be consistent with a previous change but causes Listtree object with MUIA_List_AutoLineHeight set to TRUE to calculate a much too large line height. This closes #362. * mastertext.c: make use of any custom font returned by MUIM_List_Display or the display hook when calculating the line's text dimension. * mcc/Listtree.c: prevent MUI from passing the IntuiMsg of a handled double click to other objects by returning MUI_EventHandlerRC_Eat from the MUIM_HandleEvent method instead of erasing the IntuiMsg's Class field. 2017-11-16 Thore Böckelmann * Bitfield.c: fixed an "off by one" kind of bug when calculating a bit's index within the field. 2017-11-13 Thore Böckelmann * Bitfield.c: added functions BitfieldFindFirstSet(), BitfieldClearAll(), BitfieldInsert() and BitfieldRemove(). * List.c: rewrote all methods handling multiselection to use the new Bitfield class. 2017-11-12 Thore Böckelmann * List.c, Bitfield.c: separated the "selected" information from the entry pointers. This finally makes it possible to really have arbitrary entry pointers with absolutely no address related restrictions. 2017-11-09 Thore Böckelmann * List.c: don't adjust the top position during MUIM_List_Remove in case the list is "quiet". * List.c: don't reset any non-zero top/left positioning during MUIM_List_Clear in case the list is "quiet". * List.c: for lists with multiselection enabled the active item is treated as "active&selected". Clicking a second item while the SHIFT key is pressed will extend the selection immediately instead of starting the multiselection with the newly clicked item. This makes multiselection *MUCH* more intuitive than it was before. 2017-11-08 Thore Böckelmann * muigfx.c: fixed the wrong frame spec setup in the MUIG_GetFrame() and MUIG_DrawFrame() functions. 2017-11-06 Thore Böckelmann * List.c: when clearing a List object the visual update is done only if the list is not "quiet". 2017-11-05 Thore Böckelmann * Popmenu.c: do the tiny delay before opening any submenu to avoid race conditions with AmigaOS4's compositing. This refs #360. 2017-11-03 Thore Böckelmann * Popmenu.c: calculate the darkening level of the drop shadow only once. * Popmenu.c: added a tiny delay between closing the submenu of the previous active entry and opening the submenu of the new active entry. At least on AmigaOS3 this fixes the intermittend glitches in the drop shadow effect. This refs #360. 2017-11-02 Thore Böckelmann * String.c: reenabled the vertical centering for single line String objects with MUIA_Textinput_SetVMax set to FALSE. 2017-10-30 Thore Böckelmann * Slave.c: all methods were called on the wrong object. * demos/Slave.c: added a demo application for Slave class. 2017-10-29 Thore Böckelmann * Menu.c: added support for certain new methods of Family class. * Menuitem.c: added support for certain new methods of Family class. * Menustrip.c: added support for certain new methods of Family class. 2017-10-22 Thore Böckelmann * Slave.c: use proper arbitration when delegating methods. 2017-10-17 Thore Böckelmann * Slave.c: use SIGBREAKF_CTRL_C as single internal signal only. 2017-10-16 Thore Böckelmann * mcc/Clock.c: turned the class into a real group with layered transparent objects. 2017-10-10 Thore Böckelmann * Area.c, Window.c, mastermisc.c: rewrote the deprecated functions MUI_RequestIDCMP() and MUI_RejectIDCMP() to use a private MUI_EventHandlerNode internally. This makes it possible to get rid of the inefficient way to call the MUIM_HandleInput method. However, that method will still be invoked for compatibility reasons, but without the overhead of being passed through the window's complete object tree for each and every IDCMP message. #### 5.0-2017R3 Release ######################################################## 2017-10-04 Thore Böckelmann * List.c: "eat" the mouse wheel events if and only if they are finally applied to any of the scrollbars. * Numeric.c, Prop.c, Scrollbar.c: don't "eat" input events which are not handled explicitly. This refs #356. * Balance.c, Radio.c, Selectgroup.c: don't "eat" input events which are not handled explicitly. This refs #356. 2017-08-09 Thore Böckelmann * muiprog.h, mastergfx.c: don't restrict any bitmap width calculations to 16 bits but use full 32 bits. * mastergfx.c: don't inherit any dithering information when cloning a render info structure. 2017-07-17 Thore Böckelmann * masterreq.c: completely clear the EasyStruct structure to avoid any possible misinterpretation of possibly uninitialized pointers. * muiasl.c: removed some double NULL pointer checks. Checking once is enough. 2017-07-15 Thore Böckelmann * String.c: don't undo simple cursor movements in case they are rejected by an edit hook. 2017-07-11 Thore Böckelmann * String.c: reworked the edit hook handling to call the hook after each edit operation, especially after certain key presses like Backspace or Delete. 2017-07-03 Thore Böckelmann * String.c: don't call the edit hook a second time in case the first call has not retured yet. This refs #353. #### 5.0-2017R2 Release ######################################################## 2017-06-23 Thore Böckelmann * dist_common/Install-MUI: activated the automatic start of PatchASL in S:User-Startup. Installer will ask for confirmation in average and expert mode. This finally concludes the integration of MUI based ASL requesters. 2017-06-14 Thore Böckelmann * Filepanel.c: added a Lamp object to indicate the current state. * mcc/Lamp.c: implemented MUIV_Lamp_ColorType_Transparent to use the default background instead of a specific color. 2017-05-08 Thore Böckelmann * Fontpanel.c: default to topaz/8 if nothing else is specified and do the extended font parameter parsing only if there is something to parse. * patchasl.c, muiasl.c: first implementation of a full Asl requester replacement, just like MagicASL. 2017-05-05 Thore Böckelmann * Window.c: MUIV_Window_TopEdge_Delta() now allows offsets larger than just 9 pixels. 2017-04-23 Thore Böckelmann * mcc/Listtree.c: fixed the possible endless loop and NULL pointer access caused by IBrowse's hotlist manager. This closes #347. 2017-04-07 Thore Böckelmann * Panel.c: keep the panel window opened until its position and size have been obtained. This fixes the invalid position/size upon opening a panel for a second time. 2017-04-06 Thore Böckelmann * Popasl.c, demos/Popup.c: added support for ASL screenmode requesters. * Fontpanel.c: don't allow setting a relative font size or the extended font style in case the application cannot handle them. 2017-04-05 Thore Böckelmann * Panel.c: implemented MUIM_Panel_Run. 2017-04-04 Thore Böckelmann * mastertext.c: fixed the slightly too optimistic test for plain texts once more. The preparse string must either be a simple alignment only or must disable the text engine completely to be treated as "simple". * Popmenu.c: fixed the wrong layout in case the menu requires more than a single column and the widest entry is not in the first column. 2017-03-24 Thore Böckelmann * all: removed a superflous macro and its usage. 2017-03-23 Thore Böckelmann * masterbubble.c: added some "const" keywords to really constant string variables. 2017-03-20 Thore Böckelmann * Title.c: yet another minor draw optimization when changing hovered tabs. 2017-03-17 Thore Böckelmann * tools/makeinc.c: enhanced the automatic documentation generation for the upcoming documentation directly in the Trac system. 2017-03-15 Thore Böckelmann * Group.c, Title.c: don't restrict redraw actions to the current and new active tabs when setting the new active page after a tab click. This closes #220 again and refs #342. 2017-03-13 Thore Böckelmann * Title.c: restrict the tab redraw actions to the previously and newly hovered tabs to avoid flickering as much as possible. This closes #220. 2017-03-11 Thore Böckelmann * Makefile: build libos4.a to provide all AmigaOS4 specific functions for AmigaOS3. 2017-03-07 Thore Böckelmann * String.c: the "Copy" context menu item of non-editable String object must be enabled for consistency. 2017-03-06 Thore Böckelmann * mcc/Listtree.c: modified the argument order of an internal method for consistency. * List.c, mcc/Listtree.c: added a new private method to iterate over all list items. In case of Listtree.mcc this method makes it possible to iterate over the invisible/folded and hence not (yet) added tree nodes to calculate their dimensions. This finally closes #340. * String.c: disable the "Copy" and "Cut" menu items of the context menu of String objects with MUIA_String_Secret enabled. This would defeat the purpose of this attribute otherwise. 2017-03-02 Thore Böckelmann * List.c: simplified the allocation of the internal list items. 2017-02-23 Thore Böckelmann * Area.c: the formlery unused "flags" parameter of the MUIM_Text method is now used to specify the character to be underlined, i.e. for shortcuts. 2017-02-22 Thore Böckelmann * mastertext.c: simplified the 32bit replacement text dimension calculation functions. 2017-02-20 Thore Böckelmann * List.c: an invisible title bar no longer causes a failed layout which in turn would refresh the complete window. Before this was an IBrowse specific workaround, but it is no longer required at all. 2017-02-12 Thore Böckelmann * Application.c: added some code to detect IBrowse 2.5, which does no longer require all the special and clumpsy workarounds like IBrowse 2.4. 2017-02-10 Thore Böckelmann * masterreq.c: removed an accidentally left over duplicate call to AslRequest(). This closes #337. 2017-02-09 Thore Böckelmann * Menuitem.c: implemented MUIA_Menuitem_Menuitem. 2017-02-08 Thore Böckelmann * Window.c: removing the currently active eventhandler effectively aborted the eventhandler loop by stepping one node back too much. For example this caused the buttons in IBrowse's website source window to stay visibly selected until the mouse was moved again. Thanks to Oliver Roberts for the hint. * Application.c: likewise for the inputhandler loop: removing the currently active inputhandler effectively aborted the inputhandler loop by stepping one node back too much. 2017-02-07 Thore Böckelmann * masterreq.c: added support for lazy applications using MUI's Asl requester functions without specifying ASLFR_IntuiMsgFunc to let MUI refresh its windows while the requester is active. 2017-02-06 Thore Böckelmann * masterreq.c: don't use MUI's internal name of the frontmost screen as public screen name for ASLFR_PubScreenName. Since this screen will never exist it effectively makes it impossible to open an Asl requester on that screen. This closes #333. 2017-02-03 Thore Böckelmann * Slider.c: the repeat feature when keeping the mouse pressed after clicking outside the knob will now be aborted in case the mouse button is no longer pressed. 2017-02-01 Thore Böckelmann * Application.c: check whether the config window still exists before disposing it. The original VPDF code does some very nasty stuff in its destructor and pulls out the rug under MUI's feet by disposing the config window on it own without letting MUI know. The consequence is a crash as soon as MUI itself tries to dispose the config window. The AmigaOS4 port of VPDF has this bug fixed, but who knows who will mimic this kind of bug... 2017-01-31 Thore Böckelmann * Title.c: implemented specific support for MUIM_Group_Reorder. #### 5.0-2017R1 Release ######################################################## 2017-01-26 Thore Böckelmann * Title.c: show and draw newly added tabs only if the title object is not currently in change state to avoid warnings about missing invokations of MUIM_Layout for the new tab. * mcc/Listtree.c: the Padiavolo tree images are now generated dynamically during the build process instead of using pre-generated images. 2017-01-25 Thore Böckelmann * mcc/Listtree.c: the MUIM_AskMinMax method of the tree image class now returns sensible dimensions. This avoids tons of "layout failed" debug messages. 2017-01-24 Thore Böckelmann * Knob.c: use the pixmap's dimensions instead of the object's dimensions when layouting the pixmap image. * Group.c: do a proper layout of long group titles to avoid the tons of "layout failed" debug messages in case the title is wider than the group. * misc: all classes set their cl_ID field to a proper name plus possible extensions for private classes to assist debugging. 2017-01-23 Thore Böckelmann * contrib_common/locale: regenerated all contributed catalogs with correct encoding, even if the corresponding classes have not been updated officially yet. This closes #314. * contrib: included a special build of TextEditor.mcc which fixes the famous crash-on-copy bug. This closes #324. * Title.c: query the dropmark's and scrollbuttons' dimensions only if they have been MUIM_Setup'd before. 2017-01-22 Thore Böckelmann * mastertext.c: calculate the width of an embedded object in a consistent fashion in MUIM_TextDim and MUIM_TextPrint. Before MUIM_TextDim used _minwidth() and MUIM_TextPrint used _defwidth(). However, for non-existant image files the minimum width would be zero, while the default width would be non-zero. This caused Listtree.mcc to omit some trailing characters of list treenodes, because the calculated line width was some pixels too narrow due to the zero minimum width of the treenode image. However when printing the text the non-zero default width of the treenode image was used and hence restricted the remaining space for the treenode text which caused MUIM_Text to cut of some characters. 2017-01-20 Thore Böckelmann * Textdata.c: use the feature of codesets.library to replace non-ASCII characters by 'look-alike' characters. * demos/Textdata.c: added some more characters to demonstrate the replacement of non-ASCII characters. 2017-01-19 Thore Böckelmann * mastermisc.c: added a private function to obtain certain SVN related informations from muimaster.library. * Aboutpage.c: use the new function to obtain the SVN revision number. 2017-01-18 Thore Böckelmann * mastermisc.c, Imagespace.c: added a private function to resolve reference image specs like '6:xxx' to something the Imagebrowser class can understand, i.e. '4:foobar.mi1'. * Backgroundadjust.c: use the new resolve function. This fixes the invisible image browser for certain images like the default open/closed node images of NListtree.mcc. * Aboutpage.c: prefer the SVN revision number of muimaster.library over the own one. 2017-01-17 Thore Böckelmann * Imagebrowser.c: don't generate '5:xxx' specs as these are for background patterns only. * mastertext.c: special text styles like outlined, shadowed and ghosted will make the text's dimensions a few pixels larger to avoid cut off effects in case the used font does not provide artifical spacing to absorb the additional space requirement. 2017-01-16 Thore Böckelmann * Text.c: do the text eliding regardless whether the superclass' layout method succeeded or not. This refs #329. * mcc/Listtree_mcp.h: adjusted the default treenode image specs. This solves the invisible image browser on AmigaOS4. * tools/makeconfig.c: changed the default image specs to avoid possible invisible image browsers on AmigaOS4. 2017-01-13 Thore Böckelmann * mastertext.c: fixed a slightly too optimistic test for plain texts. 2017-01-12 Thore Böckelmann * Text.c: don't cause a relayout after setting MUIA_Text_Shorten if the object hasn't been MUIM_Setup'd yet. This refs #327 and refs #328. * mastertext.c: treat a disabled text engine by the preparse string "\033-" as "plain string". * demos: reworked all demo applications to use the SDI macros for dispatcher and hook function definitions. 2017-01-11 Thore Böckelmann * Title.c: enforce MUIA_Text_SetMin=FALSE for all tab labels to ensure that too long labels can be shortened. Additionally the new text eliding feature will be applied to too long texts by adding a trailing ellipsis for shortened texts. The latter will be applied for true instances of Title class, but not for instances of Register class for compatibility reasons. 2017-01-09 Thore Böckelmann * include/inline/graphics.h: removed the local copy again, because the tool chain of our build system now consists of a properly fixed version. This refs #319 and refs #325. * masterpop.c: don't call HideLayer() in the AmigaOS3 build. * Title.c: fixed the wrong position of the drop mark during DnD actions when the tabs' close buttons are enabled. 2017-01-07 Thore Böckelmann * include/inline/graphics.h: added the GCC inline header file from the previous tool chain. This one uses correct 32bit parameter types for certain functions. This closes #319 and refs #325. 2017-01-04 Thore Böckelmann * List.c: changed the internal variable type for MUIA_List_DragType to the appropriate type for future extensions and use the available constants all over the place instead of fixed numbers. * Family.c, Group.c: allow MUIA_Family_ChildCount to be used as an alias for MUIA_Group_ChildCount and vice versa. This works around the wrong attribute usage of VPDF which is OM_GET'ing attributes of Family class on instances of Group class. * Title.c: implemented the standard behaviour for MUIM_Title_Close to remove and the dispose the given tab object as well as its corresponding page object. Before this had to be implemented by the application itself what actually defeats the purpose of such a method. Along with the changes done for Group class this should let VPDF behave as intended. 2017-01-03 Thore Böckelmann * mcc/Listtree.c: removed a redundant pointer check. * mcc/Listtree.c: use the correct list when moving a treenode above the topmost treenode. This refs #322. 2017-01-02 Thore Böckelmann * Area.c: fall back the the normal font in case an object is forced to use a custom font which failed to be available. #### 5.0-2016R3 Release ######################################################## 2016-12-16 Thore Böckelmann * Group.c: use the dedicated list access functions to iterate over all event handlers instead of doing the list access logic manually. 2016-12-12 Thore Böckelmann * Window.c: use the dedicated list access functions to iterate over all event handlers instead of doing the list access logic manually. * Application.c: use the dedicated list access functions to iterate over all input handlers instead of doing the list access logic manually. * StripIntuiMessages.c: use the dedicated list access functions to iterate over all messages instead of doing the list access logic manually. * mcc/ListtreeName.c: use the dedicated list access functions to iterate over all tree nodes instead of doing the list access logic manually. 2016-12-11 Thore Böckelmann * masterpop.c: handle duplicate IDCMP_MOUSEMOVE messages during Drag'n'drop operations in the same way as Window class does. 2016-12-10 Thore Böckelmann * Application.c: obtaining the following IntuiMessage by peeking ln_Succ either directly or indirecly using GetSucc() is a very bad idea, especially if the debug kernel of AmigaOS4 is in use which deliberately trashes the ln_Succ and ln_Pred fields. Now a safe method has been added which cannot suffer from such side effects. Thanks to Sebastian Bauer for the hint. 2016-12-09 Thore Böckelmann * Application.c: use the GetSucc() function to peek the following IntuiMessage and check for NULL pointers. 2016-11-27 Thore Böckelmann * Cycle.c: fixed a possible NULL pointer access. This fixes YAM bug #649. 2016-11-22 Thore Böckelmann * Cycle.c, List.c: simplified the notification trigger mechanism. 2016-11-15 Thore Böckelmann * Cycle.c, Text.c: do a relayout in case the Cycle object's entries array is changed. This refs #320. * Cycle.c: trigger a notification if setting MUIA_Cycle_Entries caused an adjustment of the active entry. This refs #320. * List.c: corrected the notification trigger when toggling the visibility of a column. 2016-11-14 Thore Böckelmann * Cycle.c, Text.c: setting MUIA_Cycle_Entries now correctly refreshes the cycle object while either keeping the current item active or displaying the new item restricted to the number of items. This closes #320. 2016-11-02 Thore Böckelmann * Application.c: include the current task's name in the stack warning message. This makes the program identification easier in case MUI is used in patches (i.e. MagicASL) where the fixed application name ('MagicASL') has no connection to the dynamically executing task. 2016-10-26 Jens Maus * misc: adapted all Makefiles and sources to support our new OS3/m68k cross compile suite we are now using. This includes compilation with "-mcrt=clib2". In addition, sources had to be adapted to support changes in the included NDK of the cross compiler toolchain. 2016-10-05 Thore Böckelmann * dist_common/Install-MUI: install the french catalog as well. This closes #317. 2016-10-03 Thore Böckelmann * dist_common/Install-MUI: bumped the current library version to 21. Otherwise updating an existing MUI5 installation will result in a false warning about trying to overwrite a newer version with an older one. This closes #316. #### 5.0-2016R2 Release ######################################################## 2016-09-19 Thore Böckelmann * List.c: when setting MUIA_List_Title a title bar relayout is done if and only if a really new title string is set. This fixes the resized to minimum width columns of SongPlayer. This refs #311. 2016-09-15 Thore Böckelmann * List.c, Listview.c: slightly optimized the multiselection of entries. 2016-09-07 Thore Böckelmann * String.c: reset the remembered font pointer to NULL during MUIM_Cleanup instead of _font(obj). 2016-09-05 Thore Böckelmann * mastermisc.c: added some more debug output to the internal functions MUIP_Setup() and MUIP_AskMinMax() in case there is no valid render info structure. This refs #307 and refs #309. * Settings.c: do an artifical MUIM_Setup before MUIM_AskMinMax to determine fixed height edit groups. Without the MUIM_Setup the MUIM_AskMinMax might do illegal memory accesses. This refs #307 and refs #309. 2016-09-02 Thore Böckelmann * Window.c, Title.c: Title class now enforces a fixed event handler priority if a different priority than the default priority is requested. #### 5.0-2016R1 Release ######################################################## 2016-08-17 Thore Böckelmann * String.c: fixed a possible NULL pointer access. This refs #194. * List.c, demos/ElidedText.c: reenabled the FIW shortcut for the title's FIXEDWIDTH option. Since this option is deprecated the demo application now uses MINWIDTH and MAXWIDTH with fixed pixel widths instead. 2016-08-16 Thore Böckelmann * Notify.c: ensure a living object during notification handling. This makes it possible to have a notification call MUI_DisposeObject() for the current object without causing crashes by accessing just freed memory. * List.c: there is no need to cause an asynchronous notification for the edit object's MUIA_String_Acknowledge anymore, now that the object can be safely disposed during its notification handling. 2016-08-15 Thore Böckelmann * String.c: fixed a potential NULL pointer access. * List.c: fixed a potential double removal of the edit object. * List.c: fixed a crash when the edit object was disposed from within its own notification handling. 2016-08-12 Thore Böckelmann * demos/Animals.c: removed a superflous debug output. * List.c: fixed a NULL pointer access in MUIM_List_Display in case the internal MUIV_List_DisplayHook_StringArray hook is used. 2016-08-08 Thore Böckelmann * include: updated SDI headers to their latest version. * String.c: declared some functions as static to fix some warnings of GCC5. 2016-07-19 Thore Böckelmann * mcc/Listtree.c: implemented support for all special list and node values for MUIM_Listtree_Exchange. This refs #244. * dist/Listtree.doc: added the missing descriptions of some method results. 2016-07-18 Thore Böckelmann * mcc/Listtree.c: implemented MUIM_Listtree_Exchange. * mcc/Listtree_mcp.c: use the new methods for the sample tree object instead of the old hooks. 2016-07-14 Thore Böckelmann * String.c: fixed the broken text marking for read-only objects, i.e. the result text object of NetInfo-II. This closes #306. 2016-07-13 Thore Böckelmann * mcc/Listtree_mcp.c: removed the superflous Listview object. * mcc/Listtree.c: replaced the internal construct/destruct/display hooks by proper methods. * mcc/Listtree.c: replaced all direct hook calls by invocations of method which eventually call the respective hooks. 2016-07-12 Thore Böckelmann * Aboutpage.c: reopening the "About MUI" window now updates the list of loaded classes. 2016-07-08 Thore Böckelmann * dist/Listtree.doc: removed some "not yet implemented" special values which definitely are implemented. 2016-07-07 Thore Böckelmann * Mccprefs.c: implemented the yet unimplemented unregistering of gadgets. 2016-07-04 Thore Böckelmann * Volumelist.c: fixed a potential "use after free" kind of bug. #### 4.0-2016R2 Release ######################################################## 2016-06-30 Thore Böckelmann * Frameadjust.c: fixed a long standing bug which caused one builtin frame to be unavailable for selection. 2016-06-23 Thore Böckelmann * List.c: added support for the appendix "px" for the MINWIDTH and MAXWIDTH parameters to enforce a fixed size column. It is recommended to prefer this approach over the formerly implemented FIXWIDTH parameter. 2016-06-21 Thore Böckelmann * Filepanel.c: show the "between" cursor for non-empty file names only. 2016-06-16 Thore Böckelmann * Fontdisplay.c, Fontpanel.c: separated the font preview object into a separate class. 2016-06-15 Thore Böckelmann * locale/serbian.po: added (currently empty) serbian translation. 2016-06-14 Thore Böckelmann * Filepanel.c: made lots of formerly private attributes public and added some appropriate documentation for them. * Area.c: implemented MUIM_Relayout. * Title.c: make use of MUIM_Relayout instead of a custom implementation. 2016-06-13 Thore Böckelmann * Dirlist.c: implemented MUIM_Dirlist_Rename, MUIM_Dirlist_SetComment and MUIM_Dirlist_SetProtection. * flushimagespace.c: added separate tool to flush all currently unused images for MUI's image cache. The return code will be 0 if at least one image was flushed and 10 otherwise. * List.c: implemented the standard multi column hooks. 2016-06-12 Thore Böckelmann * Area.c: made MUIA_DoubleClick public. 2016-06-10 Thore Böckelmann * Datamap.c, Dataspace.c: implemented MUIM_Datamap_Get and MUIM_Dataspace_Get. * Dataspace.c: implemented MUIA_Dataspace_Count. * Title.c: made MUIA_Title_Clickable public. 2016-06-09 Thore Böckelmann * List.c: implemented MUIA_List_Editable. * List.c: implemented the additional row/column variables for the methods MUIM_List_Compare and MUIM_List_Display. * List.c: implemented MUIA_List_TitleArray and MUIA_List_MaxColumns. * List.c: reversed the call sequence of hooks and their corresponding methods, i.e. MUIA_List_Construct_Hook and MUIM_List_Construct. The methods are preferred now and the hooks are called as fallbacks instead of vice versa. 2016-06-01 Thore Böckelmann * List.c: implemented MUIM_List_Edit, MUIM_List_CreateEditObject and MUIM_List_EditDone for inline editing of list entries. * List.c: trigger notifications for MUIA_List_ShowColumn and MUIA_List_HideColumn whenever their visibility state changes. * Area.c: explicitly check whether the active object border really needs to be drawn or not before eventually drawing it. 2016-05-26 Thore Böckelmann * Window.c: the minimum dimensions of a scrollbar in the window's border only affect the window's minimum size, not its default and maximum size. This fixes the invisible "About MUI" window contents in certain situations. 2016-05-24 Thore Böckelmann * all: bumped all versions to 21 and use 5.0 as release version. * Textdata.c: implemented Textdata.mui. This makes it possible to use aribtrarily encoded text instead of ISO8859-1 encoded text only. The conversion is done by codesets.library. * Family.c, Group.c: implemented MUIM_Family_Reorder and MUIM_Group_Reorder. * Title.c: implemented MUIA_Title_OnLastClose. * List.c: implemented MUIA_List_HideColumn, MUIA_List_ShowColumn and MUIA_List_SortColumn as well as SORTABLE and ORDER title format options. 2016-04-21 Thore Böckelmann * Bitmap.c: getting MUIA_Bitmap_RemappedPens now does the pen allocation on the fly even on truecolor screens. This fixes the wrong line colors of Listtree.mcc's Padiavolo style. 2016-04-13 Thore Böckelmann * Window.c: implemented a simple check for AfAOS in combination with the upcoming AmiKitX. If this combination is found to be active then no window border size workaround is applied. This should finally fix all the issues with gadget-less windows, like the splash windows of YAM and IBrowse. 2016-04-12 Thore Böckelmann * String.c: fixed some issues with MUIA_String_Integer and wrong clamping of the value which resulted in invalid font sizes in Fontpanel.mui. 2016-04-11 Thore Böckelmann * Window.c, mastergfx.c: removed the AfAOS/VisualPrefs specific workaround for predicting the window border sizes of gadget-less windows. Instead MUI now always assumes symmetrical top and bottom border sizes, which in fact is correct when examining the corresponding values of the opened window. 2016-04-09 Thore Böckelmann * Window.c: use GetGUIAttrs() to obtain the default window border sizes instead of peeking the values from the screen structure in the AmigaOS4 build. 2016-04-06 Thore Böckelmann * Window.c: the previous attempt to respect the minimum dimension of a window border scrollbar in the window size requirements did not obey the fact that the window contents could be larger already an extended the requirements nevertheless. This resulted in an additional spacing on both sides which could not be removed by resizing the window. Only the amount of pixels exceeding the contents minimum size must be respected instead. This closes #302. #### 4.0-2016R1 Release ######################################################## 2016-03-31 Thore Böckelmann * mcc/Listtree.c: setting MUIA_Listtree_Active to the same value twice no longer triggers a double notification. Furthermore the active treenode is correctly remembered now. This closes #296 again. * mcc/Listtree.c: fixed an ancient bug which caused MUIM_Listtree_GetEntry to return invisible tree nodes even if MUIV_Listtree_GetEntry_Flags_Visible was specified to respect visible tree nodes only. Thanks to Andreas Falkenhahn for the hint. 2016-03-30 Thore Böckelmann * Settings.c: add an artificial vertical spacer in case an edit page has a fixed maximum height to allow the main window of MUI prefs to be fully resizable. * Makefile: build libmui.a dynamically and include it in the release archives for the AmigaOS3 build. * mcc/Listtree.c: setting MUIA_Listtree_Active no longer triggers duplicate notifications when setting the active list item. This closes #296. 2016-03-29 Thore Böckelmann * mcc/Listtree.c: added support for the MUIV_Listtree_GetEntry_Flags_Visible flag of MUIM_Listtree_GetEntry. * mcc/ListtreeName.c: fixed a possible NULL pointer access. 2016-03-25 Thore Böckelmann * mastergfx.c: allow a custom pen allocation precision for the image dithering process. * mcc/GIFAnim.c: added support for the custom pen allocation precision. 2016-03-24 Thore Böckelmann * mcc/GIFAnim.c: fixed the broken AmigaOS3 build on our build server. * Popmenu.c: fixed the wrong position calculation for submenus. These were always placed at slightly shifted positions. 2016-03-23 Thore Böckelmann * Winborder.c: specify the size of the invisible dragbar and size gadgets' instance data for the MakeClass() call. This was missing before and might cause trashed memory in case the methods GM_GOACTIVE and GM_GOINACTIVE are called or might read data from invalid memory locations in case the method GM_HITTEST is called. * mcc/GIFAnim.c: added a missing MUI_Redraw() call. 2016-03-20 Thore Böckelmann * mcc/GIFAnim.c: added a native reimplementation of GIFAnim.mcc. 2016-03-19 Thore Böckelmann * Window.c: explicitly disable the automatism to split menu title strings like "Q\0Quit" into the shortcut "Q" and the menu title text "Quit". This is already done by MUI itself and causes invisible title texts in case single character strings are used with Intuition's new menuclass. This closes #295. 2016-03-08 Thore Böckelmann * String.c: it is now possible to set the "inactive" background with MUIA_Background during OM_NEW. String.mui will no longer enforce MUII_StringBack as background if a different background is set explicitly. 2016-02-15 Thore Böckelmann * String.c: abort event handling in case the attached list object signals an "eaten" event. This fixes the inconsistent list cursor movements of MagicASL depending on whether the file list or one of the string objects is the window's active object. 2016-02-13 Thore Böckelmann * mastermisc.c: in case MUI_Redraw() is called from within input.device's device task an alert will be put up instead of a requester. This is necessary, because the requester would cause an immediate system freeze as it requires input handling by input.device to be closed. However this input handling cannot happen, because the requester function will not return before the requester is closed. Thanks to Ján Zahurancík for the hint. 2016-02-09 Thore Böckelmann * Area.c, mastermisc.c, Title.c: implemented a private clipping rectangle to restrict possible draw operations of nested objects to a certain area. This fixes the "out of place" throbber animation of Odyssey and Title demo for certain combinations of layout and vertical tab position. 2016-02-08 Thore Böckelmann * classes.mib: let the Autodocs reflect the fact that MUIA_List_MinLineHeight is OM_SET'able. 2016-02-05 Thore Böckelmann * mastermisc.c: recursive invokations of MUIM_Draw are forbidden for objects with active doublebuffering. This fixes certain redraw problems of TextEditor.mcc while keeping Date.mcp working. This refs #221. 2016-02-03 Thore Böckelmann * Aboutpage.c, Cclist.c: the list of loaded custom classes now contains an additional column which shows the class' ABI (68k or PPC). This closes #291. 2016-02-02 Thore Böckelmann * tools/makeinc.c: strip CR characters just like LF characters are stripped. * mcc/mccinit.c: added missing LF characters in debug statements. 2016-02-01 Thore Böckelmann * Group.c: converted the change state check into a separate function to make it more convenient to use. This function checks the object and its parent object to an active change state. This refs #289. 2016-01-30 Thore Böckelmann * Group.c: MUIA_Group_Forward will be ignored (again) when setting MUIA_Disabled, because nested objects must not be enabled while any of their parent objects is disabled. This closes #288. 2016-01-24 Thore Böckelmann * Group.c: setting the active page of a paged group does the graphical update only if the group is not currently in "change state" initiated by the MUIM_Group_InitChange method. This refs #289. 2016-01-21 Thore Böckelmann * Group.c, Scrollbar.c: don't forward MUIA_Pressed to nested objects. This refs #267 and closes #286. 2016-01-19 Thore Böckelmann * Scrollbar.c: OM_GET'ing MUIA_Pressed now returns the prop object's true pressed state. * Scrollbar.c: simplified the object creation a bit. 2016-01-15 Thore Böckelmann * Window.c, Prop.c: turned some special methods of Winscroller.mui to obtain certain information from a border scrollbar into real attributes to be obtained by OM_GET. * Window.c: respect the dimensions of the scrollbars in the window's border to avoid them being drawn over other window gadgets when the window is resized to its minimum size. 2016-01-12 Thore Böckelmann * Title.c: enabled double buffering. This does not yet completely avoid the flickering when having to handle lots of tabs, but at least it reduces it a little bit. 2016-01-11 Thore Böckelmann * Aboutpage.c: the "Show" buttons now toggles to a "Hide" button to hide the custom class list. This closes #171. 2016-01-05 Thore Böckelmann * tools/makeconfig.c: changed the default list cursor colors for the AmigaOS3 build back to 3 different colors to let people distinguish between the 3 modes. This refs #285. 2016-01-03 Thore Böckelmann * mcc/Hyperlink.c: fixed a check for workbench.library that was never opened at all due to the lastest change. #### 4.0-2015R4 Release ######################################################## 2016-01-02 Thore Böckelmann * Title.c: fixed the graphical glitch upon a redraw when the title object is contained in a virtual group. This refs #281. 2015-12-28 Thore Böckelmann * Area.c: implemented MUIA_ContextMenuHook to provide a hook function to return a context sensitive popup menu object. This closes #284. 2015-12-27 Thore Böckelmann * mcc/Hyperlink.c: openurl.library and workbench.library are now opened on demand only instead during class initialization. This cures the system freezes when Hyperlink.mcc/Urltext.mcc is first used by Scalos prefs. This closes #283. 2015-12-20 Thore Böckelmann * masterreq.c: added the missing "§NOTILING=1" extension to the image specs for the AmigaOS4 build. This refs #253. * String.c: implemented MUIA_String_InactiveContents as known for the 3rd party class BetterString.mcc. This attribute allows to let the string object display an alternative text in case the normal text contents are empty. 2015-12-19 Thore Böckelmann * Scrollgroup.c: reworked the scrollbar setup to correctly respect scrollbars in the window border and automatically shown/hidden scrollbars. This refs #280 and closes #281. * Scrollbar.c: added the new attribute MUIA_Scrollbar_IncDecSize to define the amount by which the scrollbar's position is increased or decreased whenever one of the arrow buttons is clicked. This closes #282. 2015-12-16 Thore Böckelmann * Window.c: simplified the opacity handling when opening the window a bit. 2015-12-14 Thore Böckelmann * Scrollgroup.c: the scrollbars are no longer added during OM_NEW, as this will use the dimension information of the virtual group which are not yet available in that situation. Instead the scrollbars will be added/removed during MUIM_Layout only. This closes #280. * masterreq.c: slightly changed the definition of MUIV_Requester_Image_None to leave some space for future flags like MUIREQ_XYPOS. The former value is still supported for compatibility reasons. 2015-12-10 Thore Böckelmann * Window.c: implemented MUIA_Window_Opacity. 2015-12-02 Thore Böckelmann * Palette.c: use an event handler instead of the deprecated MUI_RequestIDCMP() and MUI_RejectIDCMP() functions. * Boopsi.c: use an event handler instead of the deprecated MUI_RequestIDCMP() and MUI_RejectIDCMP() functions. * demos/Class3.c: use an event handler instead of the deprecated MUI_RequestIDCMP() and MUI_RejectIDCMP() functions. 2015-12-01 Thore Böckelmann * misc: added Autodocs for several formerly undocumented functions (i.e. MUI_Layout() and MUI_LayoutObj()) which are definitely required for custom classes. 2015-11-24 Thore Böckelmann * Dirlist.c: replaced the softlink resolve process by non-deprecated function calls in the AmigaOS4 build. 2015-11-23 Thore Böckelmann * String.c: call the optional edit hook for Backspace and Delete key presses as well. Furthermore the SGWork structure is initialized with more details now (i.e. LongInt) and there is a faked StringInfo structure, too. Following actions like SGA_NEXT/PREVACTIVE are also supported now. Please note that there is still lots of stuff missing in comparison to how these structures are used by Intuition. Just let us know what else is required. This closes #275. * String.c: call the edit hook for cursor movements. This refs #275. * String.c: call the edit hook when setting new contents. This refs #275. * misc: consistently use the FIB_IS_#?() macros of dos.library when checking for entries being a file or a directory. 2015-11-18 Thore Böckelmann * classheader.c, misc: allow zero sized instance data structs to save some memory. * mcc/mccinit.c, misc: allow zero sized instance data structs to save some memory. * Group.c, mcc/Popplaceholder.c: moved the workaround for handling of notifications for MUIA_String_Contents of Popplaceholder.mcc to the now existing native implementation. This makes it possible to setup and kill notifications of MUIA_String_Contents directly on a Popplaceholder object instead of having to get the embedded string object first. 2015-11-02 Thore Böckelmann * Group.c: objects with an explicitly set fixed size (i.e. by MUIA_FixWidth) are now kept at this size even if the surrounding group enforces all child objects to always have the same size (i.e. due to MUIA_Group_SameSize set to TRUE). This makes it possible to have a fixed size spacing in a row of equally sized buttons. This closes #271. * Window.c: added a "Help" item to invoke the application's online help without the need of the Help key. This closes #272. 2015-10-28 Thore Böckelmann * String.c: don't allow text marking either by keyboard or program control for objects with enabled secret mode. This closes #270. 2015-10-27 Thore Böckelmann * mcc/Hyperlink.c, mcc/Hyperlink_mcp.c: Hyperlink objects now have a bubble help by default which shows the same help text as the sample Hyperlink objects in MUI prefs. 2015-10-26 Thore Böckelmann * flushmui.c: enhanced the tool to flush single classes from memory only. 2015-10-25 Thore Böckelmann * Menudisplay.c: handle the title of wrongly created menus in the same way as Popmenu.mui does and try to retrieve the title by MUIA_Menuitem_Title instead of by MUIA_Menu_Title if the latter fails. This fixes the broken embedded menus of FPSE and closes #269. 2015-10-23 Thore Böckelmann * mcc/Popplaceholder.c: don't dispose the string class ahead of the object, because at that time are still alive instances of that class. This fixes the crashes of SimpleMail when opening the settings window. 2015-10-22 Thore Böckelmann * mastertext.c: added some explicit checks for NUL bytes instead of relying on the supplied text byte length only when calculating the text's graphical dimensions. This closes #262. * mastertext.c: split the concatenation of certain ESC sequences in two strings, to avoid stuff like "\336" interpreted as character 222 instead of ESC+6. * mcc/Busy.c: fixed the "Knight Rider" style fading which started over too early. * Group.c, doc/Group: added some special value definitions for the attributes MUIA_Group_HorizCenter and MUIA_Group_VertCenter for convenience. This refs #264. 2015-10-21 Thore Böckelmann * mcc/Busy_mcp.c: set the sliders' default value to the corresponding settings' default value. This refs #265. * Slider.c: reworked the "default value on double click" feature once more to to the actual reset only if the current value is not already the default value. This refs #265. * Slider.c: do the "default on double click" action only if the knob hasn't moved right before. This closes #265. 2015-10-20 Thore Böckelmann * Scrollbar.c: forwards triggers of MUIA_Pressed of the embedded Slider object to the Scrollbar object itself to be able to consistently detect clicks and releases of the slider knob. This closes #267. 2015-10-19 Thore Böckelmann * mcc/Busy.c: reworked the fade color calculation. The former approach used unshifted 32bit color values which led to wrong colors. This closes #268. 2015-10-18 Thore Böckelmann * Fontpanel.c: implemented a private attribute to enforce generating a full font spec for applications which use this spec outside MUI's scope. This spec will always contain the font name and an absolute size, no matter what font and size was selected. This closes #266. * Floattext.c: reworked the wrapping process to use a private renderinfo pointer rather than a private rastport pointer as the latter is not used at all any more. This refs #262. 2015-10-15 Thore Böckelmann * String.c: reworked the handling of MUIA_Text_Contents during OM_NEW to not overwrite this attribute by TAG_IGNORE to avoid triggering a notification as this cannot happen in OM_NEW at all. This closes #263. 2015-10-12 Thore Böckelmann * masterclass.c: added object lifetime control in MUI's rootclass reimplementation. #### 4.0-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. #### 4.0-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. #### 4.0-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 * mcc/Clock.c: removed some unused stuff. * Slider.c, masterframe.c: fixed a graphical glitch in case alpha blended frames were used on a non-gradient background. This was caused by the change for the frame drawing issue of Title.mui. * Pixmap.c: implemented a private method to read a certain pixel as ARGB value from the raw data. #### 2014R2 Release ############################################################ 2014-02-01 Thore Böckelmann * masterframe.c: fixed the redraw issues in Title.mui when compositing was enabled. A BIG "Thank you" to Massimo Tantignone for his help! * mastergfx.c, masterframe.c: the frame backup bitmap is reallocated only now in case it needs to become bigger to cause as less overhead as possible. * mcc/Clock.c: added a reimplementation of Clock.mcc. * demos/NewStuff.c: added a demo window for Title.mui. 2014-01-29 Thore Böckelmann * List.c: reverted the change done for BZ #8614 as it made things far more inconsistent (BZ #8689). 2014-01-28 Thore Böckelmann * locale/french.ct: updated french translation kindly provided by Marc Jouault. * mastergfx.c, masterpop.c: use the already existing flags in muiRenderInfo() instead of determining certain stuff separately again for drag&drop operations. 2014-01-25 Jens Maus * locale/greek.ct: updated greek translation kindly provided by Anthony Iliakis. 2014-01-25 Thore Böckelmann * Winborder.c: refresh the window frame in any case after adding or removing some gadgets. This is necessary for the built-in default theme of Intuition to be redrawn correctly. Other themes don't exhibit this problem (BZ #8596). 2014-01-24 Thore Böckelmann * Area.c, Title.c: fixed the positioning of inherited bitmaps in title objects. 2014-01-23 Thore Böckelmann * Area.c, Title.c: implemented a per-object brightness value to be able to support the brightness modifications required for Title.mui. 2014-01-22 Thore Böckelmann * List.c: call the display method directly instead of having to go through an additional hook. * Area.c: fixed the handling of MUIV_Font_Inherit to really inherit the font from the parent object. * Title.c: set the background images for the individual tabs instead of the title object itself. This fixes the wrong redrawing of transparent close button images within the tabs (BZ #8678). 2014-01-21 Thore Böckelmann * Title.c: keep the focus on the register group during drag&drop actions as long as the mouse pointer is within the group. * Group.c: redraw the current page of a register object only if not just the redrawing of the group frame is requested. This speeds up the redrawing of register groups a bit. 2014-01-20 Thore Böckelmann * masterpop.c, Title.c: make use of the MUIF_DRAGIMAGE_SOURCEALPHA flag for drag images. 2014-01-19 Thore Böckelmann * Title.c: added more NULL pointer checks for the drop mark object (BZ #8618). * tools/mkrelease.sh: provide a header file with a definition of MUI_NewObject which is compatible to the use of __USE_INLINE__ and MUI's typical spaghetti code to create a GUI (BZ #8633). * List.c: handle mouse wheel events as well if the list object is the window's active object (BZ #8614). 2014-01-18 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. * Settings.c: the page list is now the active object by default. * Title.c: forget any previously highlighted tab index when changing the active tab (BZ #8647). 2014-01-17 Thore Böckelmann * masterconfig.c: added MUI: as additional search path for the key file. * Popasl.c: restored compatibility to RxMUI again by letting the asynchronous process for the requester return immediately after the requester was closed. Before the process waited to be terminated by the close hook. Unfortunately RxMUI overwrites this hook with its own and hence Popasl.mui never noticed the closed requester and forbid opening it a second time (BZ #8643). * Application.c: reverted the fix for BZ #8626 as it breaks certain stuff like putting an application on its own screen. #### 2014R1 Release ############################################################ 2014-01-13 Thore Böckelmann * locale/danish.ct: updated danish translation kindly provided by Niels Bache. 2014-01-10 Thore Böckelmann * Title.c: implemented mouse hovering. The tab under the mouse pointer will be highlighted a bit. * Area.c: removed a no longer required workaround for the disabled state handling of Newstring.mcc. 2014-01-09 Thore Böckelmann * mastermisc.c: optimized the disabled pattern drawing a bit to make a correct decision whether the pattern must be drawn or not. This solves the problem that the pattern was not drawn in case an object within a disabled group was updated (BZ #8630). * Application.c: the application's suggested base name is also checked against the list of public message ports to avoid unwanted name clashes. This fixes the duplicate port name used by Odyssey and OWB/ReAction (BZ #8626). 2014-01-08 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2014-01-05 Thore Böckelmann * mastermisc.c: increased the task mismatch warning requester's timeout to 5 seconds and included the flags value in the message. 2014-01-03 Thore Böckelmann * Title.c: scroll buttons will be added dynamically to be able to cycle through the pages in case there is not enough room to display all tabs. This finally makes to possible to have an arbitrary number of tabs. Furthermore this should fix the crashes of Odyssey in case too many tabs have been opened (BZ #8618). 2014-01-02 Thore Böckelmann * Title.c, Menustrip.c: implemented a context menu for the new tab class to be able to select possibly hidden tabs more easily. This made it necessary to let the menustrip class create titleless popup menus. 2013-12-28 Thore Böckelmann * Title.c: implemented Drag&drop of tabs. 2013-12-27 Thore Böckelmann * mcc/misc: improved all classes to return their respective version/revision in OM_GET. Thanks to Gianfranco "ShInKurO" Gignina for the hint. * Register.c: fixed the minimum width of register title texts (YAM ticket #490). 2013-12-26 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2013-12-25 Thore Böckelmann * Group.c fixed the initial wrong tab layout for Odyssey's tabbed browser group (BZ #8612). 2013-12-23 Thore Böckelmann * Title.c: fixed the one pixel too high drawing of certain bitmap frames. * Title.c: fixed some more background image issues. * Colorring.c: changed the notification of the RGB/HSV string objects from MUIA_String_Contents to MUIA_String_Acknowledge (BZ #8610). 2013-12-22 Thore Böckelmann * List.c: optimized the row striping effect for non-bitmap background images to speed up the list drawing (BZ #8607). * Register.c: set the MUIA_Group_PageMax attribute to the correct value to make usages of the old register class working properly again (BZ #8608). * Title.c: enabled the GUI mode for the event handler to make it possible to use several register objects within a page group at the same coordinates. This makes the registers in YAM's config window working again. Thanks to Thomas Claus for the hint. 2013-12-21 Thore Böckelmann * Title.c: avoid to draw the tab objects twice after a page change. 2013-12-20 Thore Böckelmann * masterframe.c: use a backup bitmap to assist the drawing of (partly) transparent frames. * Title.c: fixed the last remaining issues of drawing tabs with transparent frames. 2013-12-18 Thore Böckelmann * Text.c: don't do any horizontal centering if there is no space left. * Register.c: don't enforce and minimum/maximum size for the title texts. * Register.c: enforce equally sized tabs like with the old class. * Title.c: fixed a wrong aligned background image for Buttons and Tabs layouts. 2013-12-17 Thore Böckelmann * Window.c: adapt all visible fonts instead of just a few to attempt to make the GUI smaller. * mastergfx.c: obtain the fonts specs from the local config instead of the application's default config, because only the former might be adapted in case the window does not fit on the screen. Otherwise the adaption will not expose any visual changes and will fail for sure eventually. 2013-12-16 Thore Böckelmann * Text.c: enabled text marking on demand again by implementing the private attribute MUIA_Text_Marking. * mcc/Aboutbox.c: enhanced the version string scanning so that application names containing spaces are correctly skipped. * Mccprefs.c: string objects now require the user to press the Return key to trigger the real time change. This makes it possible to edit font specs directly without the font requester. The real time change can be triggered by clicking the "Test" button, too (BZ #8601). 2013-12-14 Thore Böckelmann * contrib: updated all contributed classes to their latest released versions. 2013-12-13 Thore Böckelmann * Text.c: globally disabled the text marking feature as it causes more problems than it solves. The base problem is that there are two ways for an object to handle arbitrary user input. The MUIM_HandleEvent method might abort input event early which in turn prevents any further attempt to catch the MUIM_HandleInput method. The toolbar buttons of Odyssey suffered from this effect in such a way that the button were not clickable inside the text area or not at all if text only was used. * Popmenu.c: added a check for empty popup menus to avoid MungWall hits due to the attempt to do a zero sized memory allocation. 2013-12-12 Thore Böckelmann * Title.c, Register.c: the old register class now uses the new title class to build up its tabs. This lets all registers look alike no matter which class is used by the application. * dist/AutoInstall: fixed the script to copy the ReadMe.AmigaOS4 file (BZ #8595). Furthermore all image and frame files will be copied even if they existed before to ensure that updated files are correctly replaced. 2013-12-10 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. 2013-12-08 Thore Böckelmann * Rectangle.c: apply the real time prefs for the bar title, too. 2013-12-05 Thore Böckelmann * Title.c: made groups with a Title.mui object vertically resizable again. * Title.c: inactive tabs are now shifted down by one pixel. 2013-12-04 Thore Böckelmann * Popmenu.c: popup menus now get the WA_StayTop attribute to prevent them from being sent to the background. * Group.c moved the group title object positioning to the title object class. * Title.c, Group.c, Area.c: a BIG leap forward to a working Title.mui class. All kinds of layouts are working so far. 2013-11-15 Thore Böckelmann * List.c: fixed the fix for the flickering IBrowse window once again, because the workaround had a negative impact on MUI's prefs application. The fix now excludes IBrowse only from a failed list title layout (BZ #8565). 2013-11-04 Thore Böckelmann * Application.c: moved the setting of the global menu strip ahead of the initialization of all subwindows, as these will try to get() this menu strip during their MUIM_GlobalSetup method (BZ #8549). 2013-10-11 Thore Böckelmann * mastergfx.c: fall back to the default font in case opening the desired font fails. 2013-09-25 Thore Böckelmann * Application.c: erase the the attribute MUIA_Application_MenuStrip from the initial tag list as soon as the pointer has been remembered. Otherwise signle task applications would try to dispose the menu strip twice upon the second start as MUI tries to dispose any objects from the tag list before eventuall disposing the application object again. This bug has been in there since ages (BZ #8503). 2013-08-21 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2013-08-20 Thore Böckelmann * Application.c: simplified the handling of newly added input event handlers while the list of installed input handlers was in use already. 2013-07-04 Thore Böckelmann * Screenspace.c: obtain the default system pens from the Workbench for the default screen definition (BZ #8433). 2013-07-02 Thore Böckelmann * String.c: fixed a possible negative array index which could cause secret string objects to loose their cursor. 2013-06-20 Thore Böckelmann * List.c: changing the product in AmigaOS4's BugZilla caused IBrowse to refresh the complete window instead of just the affected list objects which resulted in a major flicker. This was caused by a failed relayout of the list due to the invisible title and hence a zero title height. The failed layout will now cause a window refresh only if the list title is visible. Thanks for Mario Cattaneo for the hint. 2013-06-18 Thore Böckelmann * doc/List: added the documentation of MUIV_List_Redraw_Entry. 2013-06-17 Thore Böckelmann * Pixmap.c: fixed a possible crash due to closing bz2.library and z.library more often than they were opened. 2013-06-14 Thore Böckelmann * misc: removed all stub functions for AmigaOS4 and use function prototypes using the interface pointer as an explicit parameter. 2013-06-11 Thore Böckelmann * Pixmap.c, mcc/Rawimage.c: added support for libz compression via z.library. 2013-06-07 Thore Böckelmann * Settings.c: center the page list images within their column. * List.c: correctly respect any additional frame spacing for the first and last column. 2013-06-06 Thore Böckelmann * Settings.c: prefer external images in MUI:Images over internal images. This makes the Animals demo work properly. External images must be named like "prefs_.mi1", i.e. "prefs_Birds.mi1" for the Animal demo. 2013-06-04 Thore Böckelmann * Slave.c: added Slave.mui class. 2013-05-31 Thore Böckelmann * Window.c: make sure the window is moved into the screen's area when changing the window box is necessary. 2013-05-28 Thore Böckelmann * Virtgroup.c: fixed the missing adjustment of the Scrollgroup object in case MUIA_Virtgroup_TryFit is TRUE. 2013-05-23 Thore Böckelmann * Datamap.c: added Datamap.mui class. 2013-05-21 Thore Böckelmann * Window.c, Virtgroup.c: reworked the behaviour of MUIA_Virtgroup_TryFit to allow the window to adjust its size up to the screen size in case the virtual group becomes too big. 2013-05-20 Thore Böckelmann * Window.c: use scaled font sizes based on the screen font instead of fixed fonts and sizes when having to shrink the window size. 2013-05-19 Thore Böckelmann * Window.c: shrink some more frames when having to make a window smaller to fit onto the screen. 2013-05-16 Thore Böckelmann * List.c: fixed a graphical issue with vertical separator bars. 2013-05-14 Thore Böckelmann * mcc/Newstring.c: the commodity instance of Newstring.mcc now declares itself as "not removable". 2013-05-07 Thore Böckelmann * Settingsgroup.c: the 3 checkmarks to control the start of a Drag'n'Drop action now act like a radio button. 2013-04-29 Thore Böckelmann * Area.c: make sure that the correct register title font is used for every tab (BZ #8360). 2013-04-25 Thore Böckelmann * String.c: in case the object went inactive due to a click outside the object no further handling of the click will happen now. This fixes the still visible cursor if an active object is outside the visible area of a virtual group and gets deactivated by a click outside the virtual group. * Backgroundadjust.c: fixed a typo in the pen help bubble texts. 2013-04-24 Thore Böckelmann * String.c: in case the object is located inside a virtual group String.mui now first checks if the click happened inside the group's domain before checking if the click happend inside the object. 2013-04-23 Thore Böckelmann * Window.c: clicks outside a virtual group are no longer optimized away, because String.mui must receive these clicks to know when an active object must become inactive. * Settings.c: reworked the context menu handling once more to ensure that the menu appears only for those objects/locations that really support a context menu instead of letting it appear everywhere. 2013-04-22 Thore Böckelmann * Fontpanel.c: always include relative sizes in fonts specs, even if they don't represent a size change at all (i.e. /+0). 2013-04-20 Thore Böckelmann * Group.c, Family.c, masterinit.c: removed some dead code. 2013-04-19 Thore Böckelmann * Area.c: the color of the register title font is now applied, too. 2013-04-18 Thore Böckelmann * Window.c: don't set an object mouse pointer for disabled objects. * Area.c, Window.c: enabled setting the register title font. * Configdata.c: let the register title font default to the current group title font. * List.c: due to the now synchronous (dis)appearing of the horizontal scrollbar it might have happend that a very wide list ended up with no scrollbar, because the decision whether a scrollbar is required or not was made a bit too early. 2013-04-17 Thore Böckelmann * psi.c: added a replacement application for the old "Public Screen Inspector". This is a simple commandline tool without any GUI and just meant to open or close screens from MUI's public screen database from within shell scripts (BZ #8181). 2013-04-16 Thore Böckelmann * Area.c: fixed the wrong drag image creation for NList objects. * prefs.c: ensure a stack size of at least 64K for the prefs application. * mastermisc.c: broken dates like "18.8.0" of version strings are now corrected automatically. * Cclist.c: skip some further characters in front of the copyright string. 2013-04-11 Thore Böckelmann * Pubscreenadjust.c: use the color preset context menu within the color button group only. * List.c: allow list rows to be darkened, too, instead of being brightened only. * List.c: implemented row striping to enforce highlighting of every 2nd row by a user definable percentage. * List.c: apply the row brightness adjustment before printing any line text. Thus only the background will be modified. 2013-04-10 Thore Böckelmann * Imagespace.c: fixed a redraw issue for simple patterns in double buffered objects. * mastertext.c: added support for TAB characters in text strings. The TAB will always be as wide as four space characters. 2013-04-08 Thore Böckelmann * List.c: set the horizontal scoller visiblibity in a synchronous fashion rather than an asynchronous fashion, because the latter might cause redraw issues for yet invisible and disabled list objects (i.e. lists on a currently inactive register tab) which require the horizonzal scrollbar as soon as they become visible. * tools/makeconfig.c: changed the slider knob frame to have equally sized frame spaces. * Imagespace.c: fixed some redraw issues with the MUII_FILLBACK2 pattern. 2013-04-04 Thore Böckelmann * Group.c: fixed a long standing redraw bug in virtual groups which occured only when redrawing the window contents without erasing the window back, which is the unchangeable default with MUI 4.0. 2013-04-03 Thore Böckelmann * locale/french.ct: updated french translation kindly provided by Marc Jouault. * Imagespace.c: fixed a redraw issue with simple patterns in virtual groups. 2013-04-02 Thore Böckelmann * Area.c: temporarily remove an object from a virtual group while redrawing it to the drag image buffer. 2013-04-01 Thore Böckelmann * Area.c: the default MUIM_CreateDragImage implementation now does a full redraw of the object to the drag image instead of copying the imagery from the screen, which might not contain the full object's area (BZ #8314). * mastergfx.c, Popasl.c: simplified the font inheritance once more. The fixed font now fulfils the same inheritance rules as the normal font. 2013-03-28 Thore Böckelmann * Group.c, mastermisc.c: fixed a redraw issue for disabled groups. It could have happened that a group was disabled but shown without the disabled pattern. * mastermisc.c: fixed a possible infinite recursion when having to redraw nested virtual groups. * String.c: fixed a NULL pointer access when the object is a member of a double buffered group. 2013-03-27 Thore Böckelmann * Area.c: fixed yet another double buffer bug which occured with sliders. 2013-03-25 Thore Böckelmann * Imagespace.c: yet another fix for non-centered images in double buffered areas inside virtual groups. * Imagespace.c: yet another fix for inherited images in double buffered areas inside virtual groups. * Winborder.c: the invisible size gadget now remembers its active state to ensure that the custom pointer is shown as long as the resizing action is in progress and even if the mouse is not hovering exactly over the gadget. * Window.c: swapped the order in which the current mouse object and the invisible size gadget are queried for their mouse pointer types. 2013-03-21 Thore Böckelmann * Window.c, Winborder.c: the invisible size gadget is now a true subclass of buttongclass. The GM_HITTEST method is used to restrict the hot area to a 20x20 pixel area within the window frame. * Window.c, Settingsgroup.c: enabled the invisible window size gadget. This will add an invisible size gadget to the bottom right corner of resizable windows in case this is possible (i.e. no scrollbars in the window borders). To improve the visual feedback the typical resize mouse pointer will be shown when the mouse is located over the resize gadget. 2013-03-20 Thore Böckelmann * mastergfx.c: let MUI_ObtainPen() return the default text pen for empty pen specs. * Winborder.c, Settingsgroup.c: show a standard image button frame for the window border button selection. 2013-03-19 Thore Böckelmann * Window.c, Winborder.c: the window border gadgets can be be modified without having to close and reopen the window. 2013-03-18 Thore Böckelmann * List.c: notifications on MUIA_List_TitleClick are now working as expected. Thanks to Andreas Falkenhahn for the hint. * Dirlist.c: moved the title click handling to a private method. * Dirlist.c: treat the Date, Time and Date&Time columns as equivalent for sorting. 2013-03-15 Thore Böckelmann * masterinit.c: trying to expunge muimaster.library with a non zero open count will now at least try to flush all loaded but unused images. * Imagespace.c, Dtpic.c: unused images loaded by Dtpic.mui are flushed from the cache immediately again. 2013-03-13 Thore Böckelmann * Window.c: in case the mouse was moved out of an object with a custom mouse pointer very fast it could happen that the former custom pointer was still set even if there was no object below the mouse pointer. MUI will fall back to the normal pointer now. * Imagespace.c: the dimensions of multi-image images (*.mim) are now treated the same way as the dimensions of single-image images (*.mb0/1, *.mf0/1). This ensures that for example checkmark objects are not longer stretched vertically if they are combined in a horizontal group with a multi-line text label (BZ #8290). * Image.c: remember the background for transparent images before it gets replaced by the parent background and restore it afterwards again. 2013-03-12 Thore Böckelmann * Popmenu.c: fixed the wrong handling of RGB cursor font colors. * mastergfx.c: added a high speed memory filling function to speed up drawing of alpha blended lines and disabled patterns. 2013-03-11 Thore Böckelmann * Settings.c: fixed a possibly uninitialized context menu which could show all preset entries as "unnamed" instead of their real name. * tools/makeconfig.c: the default normal and the fixed font are no longer set to a specific font but will be copied from the standard screen fonts. * List.c: ignore the list cursor's frame spacing for read only lists (BZ #8289). 2013-03-07 Thore Böckelmann * Dirlist.c: the list can now be correctly sorted by time and date+time. Thanks to Andreas Falkenhahn for the hint. 2013-03-06 Thore Böckelmann * all: rearranged the code to ensure that trying to start the final class from a shell does not crash. 2013-03-03 Thore Böckelmann * Popmenu.c: popup menus will now draw a true drop shadow on hi/truecolor screens. For color mapped screens the well known grid pattern shadow will be used. 2013-03-02 Thore Böckelmann * locale/french.ct: updated french translation kindly provided by Guillaume Boesel. 2013-03-01 Thore Böckelmann * mastermisc.c: added a missing method parameter when releasing images. * Imagespace.c: the closed screen notification is now done in a synchronous manner to ensure that the screen is kept alive as long as flushing the images obtained for this screen has not yet finished. 2013-02-25 Thore Böckelmann * Settings.c: added all available preset files to the per page/group/item context menu. * Window.c: fall back to a group spacing of 2/2 in case the window must be resized due to insufficient screen space. * mastergfx.c: in case opening a custom normal font fails MUI will now fall back to the screen's font before eventually failing completely. 2013-02-22 Thore Böckelmann * Backgroundadjust.c: added the recently added MPEN_MARKTEXT to the list of selectable plain pens. * Settingsgroup.c, Popmenu.c: the text color of the active menu entry is now configurable and defaults to inherit the normal text pen/color. 2013-02-21 Thore Böckelmann * Dtpic.c: made MUI_Dtpic_Fade public. 2013-02-20 Thore Böckelmann * Window.c: don't include currently closed temporary screens from the database in the list of available public screens. * Window.c: reworked the "jump to next screen" feature to iterate over all opened and database defined public screens. 2013-02-19 Thore Böckelmann * Pubscreenpanel.c: added a missing notification to make the "public screen from MUI database" radio button the active one in case a screen from the database is selected. Otherwise the application will jump to the selected screen only, but saving this configuration would not respect this changed settings. 2013-02-18 Thore Böckelmann * Application.c, Screenspace.c: iconifying an application from a temporary public screen will make sure that the screen stays available until the application is finally disposed. * Application.c, Screenspace.c: temporary public screens will now stay in the database until the last application releases its reference. This makes it possible to iconify an application from a temporary screen and let another application use this screen without loosing the screen from the database in case the second application terminates before the first (iconfied) one. 2013-02-15 Thore Böckelmann * Pubscreen.c: temporarily created public screens (i.e. by letting an application jump to a "new" screen) are no longer removed from the database when they are closed but kept until the next reboot. However, this will result in duplicate screens in case the "jump to new" action is perfomed several times by the same application. 2013-02-14 Thore Böckelmann * Backgroundadjust.c: set a bubble help for the pen and pattern color buttons which shows the constant name from mui.h, i.e MPEN_TEXT, plus the pen spec. 2013-02-13 Thore Böckelmann * mastergfx.c, mastertext.c: reworked the text color handling to correctly respect direct RGB text colors. 2013-02-12 Thore Böckelmann * Window.c: the transparency of popup windows is overridden now to enforce fully opaque windows. * mastertext.c: fixed the wrong alpha value handing when calculating the preparse at a certain position within a string. * Numericbutton.c, Pendisplay.c, Scale.c: use the normal object text color for Numericbutton, Pendisplay and Scale objects, too. * mastergfx.c, Fontpanel.c: strip any possibly left over alpha part from font colors to give the text engine the chance to apply its own idea of transparency for a text. * mastergfx.c: generate full RGB color pen specs when parsing the font's color part. This fixes the problem that trying to modify a fully black font color resulted in no selected color in the pen adjust window. 2013-02-06 Thore Böckelmann * mastertext.c: fixed a long standing bug in the text engine which caused a JAM2 drawmode set by the \033B sequence to stay active even if it was switched off by the corresponding \033F sequence but without any further text to be printed. This fixes the left over visible text mark after releasing the mouse button in case the text had been marked to the end. 2013-01-31 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2013-01-30 Thore Böckelmann * Dirlist.c: reset the number of files when changing the directory. Thanks to Andreas Falkenhahn for the hint. 2013-01-29 Thore Böckelmann * Dirlist.c: multi selection did not work any longer due to a wrong hook function definition. Thanks to Andreas Falkenhahn for the hint. 2013-01-28 Thore Böckelmann * Dirlist.c: respect a possibly existing mask plane for bitmapped icons. 2013-01-26 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. 2013-01-24 Thore Böckelmann * Floattext.c: enabled automatic line height adjustment to correctly respect embedded which might be higher than the font's pixel size. Otherwise portions of the text might be clipped away. Thanks to Andreas Falkenhahn for the hint. * Dirlist.c: fixed the wrong chunky to ARGB conversion in case the icon's width was not a multiple of 16. 2013-01-23 Thore Böckelmann * Group.c: for paged groups the active object will be made inactive now right before switching to another page to avoid leaving parts of the active object border visible after the switch. 2013-01-22 Thore Böckelmann * Area.c: disabling an object with a dynamic and currently visible frame will now hide the frame, because disabled objects are excluded from mouse movement handling and would keep their frame otherwise. 2013-01-21 Thore Böckelmann * Dirlist.c: let DrawIconState() do the dirty work to draw an icon to a bitmap rather than manually converting a struct Image* into a usable bitmap. 2013-01-20 Thore Böckelmann * contrib: updated all contributed classes to their latest versions. 2013-01-18 Thore Böckelmann * Colorring.c: made the HSV slider labels translatable. 2013-01-17 Thore Böckelmann * locale/french.ct: updated french translation kindly provided by Guillaume Boesel. * Colorring.c: made the slider labels translatable. 2013-01-16 Thore Böckelmann * mcc/Aboutbox.c: the version text object is now clickable and will switch between the version string and the build information in case the latter is available. * Backgroundadjust.c: don't show any further control objects when "same as window" is selected. 2013-01-14 Thore Böckelmann * Menustrip.c: implemented MUIA_Menustrip_CaseSensitive. * mcc/Lamp.c: implemented MUIV_Lamp_Type_Size. 2013-01-13 Thore Böckelmann * List.c: made MUIA_List_Quiet OM_GET'able. * Window.c: made MUIA_Window_Menustrip OM_SET'able. 2013-01-11 Thore Böckelmann * List.c: use the column resize pointer when the mouse is over a draggable title bar separator. * Virtgroup.c, Group.c: implemented MUIA_Virtgroup_TryFit. 2013-01-09 Thore Böckelmann * Area.c, masterpop.c: implemented MUIM_DragEvent. * Fontpanel.c: implemented MUIA_Fontpanel_ShowCollection. 2013-01-08 Thore Böckelmann * mcc/Aboutbox.c: changed the "License" placeholder from '$' to '§' and added '%r' as placeholder for the string "Registered to:". * Group.c: implemented MUIA_Group_ForwardDepth. * Application.c: implemented MUIA_Application_UseScreenNotify. * Area.c: added MUIV_Frame_GroupTitle and MUIV_Frame_RegisterTitle. * masterpop.c, Window.c: slightly optimized the pointer type handling during drag'n'drop operations. 2013-01-07 Thore Böckelmann * Floattext.c: implemented MUIM_Floattext_Append. 2013-01-03 Thore Böckelmann * Area.c, Window.c: simplified the object pointer handling and made it possible to use custom pointer images as created by pointerclass along with the fixed and built-in images. 2013-01-01 Thore Böckelmann * Window.c, Area.c: implemented custom object mouse pointer types as known from intuition.library. Each object might define a pointer type to be used when ever the mouse hovers over the object. 2012-12-31 Thore Böckelmann * Text.c: setting a new text content which contains an underscore character will now correctly use the next character as shortcut key to be underlined. Note that either MUIA_Text_ControlChar or MUIA_Text_HiChar need to be modified as well in case the shortcut character changes. 2012-12-22 Thore Böckelmann * mcc/BetterBalance.c: save and restore non-zero weight values only to avoid an unresizable GUI. 2012-12-14 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. 2012-12-11 Thore Böckelmann * Notify.c: fixed an ancient and quite nasty bug which would Remove() and FreePooled() killed notifications twice. This could happen whenever a notification was killed using MUIM_KillNotify(Obj) as the notification would not be removed immediately but only marked as "killed". During the next invocation of Notify.mui's OM_SET these killed notifications are removed and freed. However, if the previous notify node did trigger yet another OM_SET on the same object the notify node would have been removed and freed by the nested method call already and hence Remove() would be called twice for the same node, because when iterating over a list to be modified one must obtain the successor node before removing and freeing the current node. And this is why the first call finally Remove()s a node twice as it doesn't know that the second call already did this job. Thanks to Steffen Gutmann and Christoph Poelzl for their cooperation to locate this issue. 2012-12-10 Thore Böckelmann * Notify.c: fixed a memory leak for MUIA_Window_InputEvent notifications. 2012-11-25 Thore Böckelmann * Fontpanel.c: don't let MUI copy the localized label strings. * Pubscreenadjust.c: added a balance object between the options and the list of screenmodes. 2012-11-23 Thore Böckelmann * mastergfx.c, misc: added another public MUI pen for selected text. This one is derived from the system pen for selected text. This pen is used for example in String.mui or Popmenu.mui. Thus display of selected text is consistent to the rest of the system (BZ #8144). * Colorring.c: localized the default favorite colors. 2012-11-21 Thore Böckelmann * tools/makeconfig.c, Configdata.c: changed the default (non-adjustable) string text color to match the active string text color. Furthermore Configdata.mui will always return the default settings for these two items instead of some possibly old data from previous versions. Additionally these default values will be returned for every application instead of IBrowse only, which requires some special handling due to how its IBTexteditfield.ibcc class works (BZ #8143 and #8144). * Configdata.c: reworked the workaround for string backgrounds in IBrowse once more to only replace non-pen settings by the default values. 2012-11-19 Thore Böckelmann * mcc/Urltext.c: make use of the new standard mouse pointer images of intuition.library V53.37. 2012-11-14 Thore Böckelmann * String.c: corrected the vertical draw offset to display as much as possible of the rightmost part of the string in case the cursor is within that area. 2012-11-13 Thore Böckelmann * Frameadjust.c, Imagebrowser.c, Settings.c: use as less data fields as possible for EX_DataFields. * Text.c: fixed a possible memory leak. 2012-11-12 Thore Böckelmann * mcc/BetterBalance.c: added native reimplementation of BetterBalance.mcc. 2012-11-09 Thore Böckelmann * mastermisc: MUI_Redraw() will now output a warning on the serial line in case this function was called from another task than the main application task. It is a general rule that MUI objects must only be operated on from the main application task. If a subtask has to operate on an object this must be done by pushing the action to the application object (MUIM_Application_PushMethod). * mastermisc.c: open a requester with a 3 second timeout to get more attention when calling MUI_Redraw() from a different task. 2012-11-08 Thore Böckelmann * images: replaced the ancient 8 color image of Urltext.mcp by a new one kindly provided by Martin 'mason' Merz. 2012-11-07 Thore Böckelmann * mcc/Urltext.c: the URL is opened upon the release event of the left mouse button instead of the press event now. This is a bit more intuitive and lets the user abort a click by releasing the mouse button somewhere outside. * Pubscreenadjust.c: made the color buttons a bit higher. 2012-11-06 Thore Böckelmann * Window.c: don't trigger the MUIA_Window_MouseObject attribute if the mouse is over an object which is covered by another window. * mcc/Urltext.c, mcc/Urltext_mcp.c: added option to prefer the URL: device over openurl.library. * mcc/Urltext.c: added context menu for Urltext objects. CManager support is not yet implemented. * mcc/Newstring.c: added two attributes the the OM_GET method to fix a crash when the old 68k Newstring.mcp module is used (BZ #8125). * mastertext.c: restore the standard foreground and background pens after having drawn some text with direct RGB colors. * mcc/Urltext.c: disable the "Goto URL" menu item if neither openurl.library not the URL: device is found. 2012-11-05 Thore Böckelmann * mcc/Newstring.c: added a commodities broker to globally handle menu events like RAmiga+C in IBrowse (BZ #8131). 2012-11-04 Thore Böckelmann * mcc/Urltext.c, mcc/Urltext_mcp.c: finished native port of Urltext.mcc. 2012-10-29 Thore Böckelmann * List.c: reverted r2017 which solved certain double buffering issues but made MUIOWB crawl (BZ #8076). 2012-10-28 Thore Böckelmann * Text.c: added some NULL pointer checks. 2012-10-26 Thore Böckelmann * String.c: fixed a wrong pointer access (BZ #8109). 2012-10-25 Thore Böckelmann * String.c: the emulation mode now exactly distinguishes between emulation of Textinput.mcc and Newstring.mcc. * String.c: added a workaround for the URL string in IBrowse which does not expect the class to create a context menu on its own (BZ #8109). 2012-10-22 Thore Böckelmann * mcc/Aboutbox.c: fall back to the parent process if obtaining an icon from PROGDIR: fails. * Window.c: finally fixed BZ #8048. Many thanks to Massimo Tantignone for his help! 2012-10-17 Thore Böckelmann * Application.c, Window.c: reverted recent changes for BZ #8048. These caused more harm than good. 2012-10-14 Thore Böckelmann * Window.c: hopefully fixed BZ #8048. Many many thanks to Massimo Tantignone for the helpful explanation of the possible cause. 2012-10-11 Thore Böckelmann * Aboutpage.c: showing the list of currently loaded custom classes will hide the "Show" button. 2012-10-05 Thore Böckelmann * Application.c: no more limits for the number of changed config items to be applied immediately without closing and reopening the windows (BZ #8059). 2012-10-01 Thore Böckelmann * Settings.c: loading a preset now leaves the decision whether the windows need to be closed and reopened or not to Application.mui. If only few items are actually changed by the new configuration these might be applied seamless (BZ #8059). 2012-09-30 Thore Böckelmann * Settings.c: finally found the cause of the slow realtime updates when compositing was active. The system task ("compose.task") to do the actual compositing runs at priority +1 to be scheduled faster than all normal applications. When doing global applied realtime updates MUI switched to priority +2 which from then on caused the compositing task to be scheduled later than before. Now everything stays at priority 0 and realtime updates are fast again. 2012-09-26 Thore Böckelmann * Pubscreen.c: a screen title bar drop shadow will no longer be overdrawn by the backdrop image/color/gradient (BZ #8075). 2012-09-23 Thore Böckelmann * popcommon.c: pressing a popup button a second time while the corresponding settings window is still open will bring the window to the front now (BZ #8078). 2012-09-21 Thore Böckelmann * mcc/Newstring.c, String.c: added a wrapper class for the old and 68k only Newstring.mcc class. The most important features as required by IBrowse are supported as far as their meaning could be derived from the header file and the disassembled source code. * mcc/Busy.c, mcc/Busy_mcp.c: fixed several mix ups between visibile and internal limits for the speed value. This caused IBrowse to show a non-moving busy bar (BZ #8067). 2012-09-20 Thore Böckelmann * String.c: changing the string cursor color no longer caused a relayout but a simple redraw event only. * Gauge.c: fixed the slightly wrong zebra effect and changed the remainder to be calculated only once. * mcc/Busy_mcp.c, mcc/Lamp_mcp.c, mcc/Listtree_mcp.c: remove config items from configuration if they match the default values. * Backgroundadjust.c: choosing the first internal image would hide the image selection group (BZ #8063). 2012-09-19 Thore Böckelmann * Makefile: fixed the broken native build by using Unix path semantics only. * Aboutpage.c: added VSpace object below group of obsolete classes to allow the prefs window to be resized vertically (BZ #8060). * mcc/Lamp_mcp.c: enabled the lamp shape setting. * mcc/Lamp.c: implemented round borders for the bulb shape and transferred all the dirty pen handling work to MUI. * mcc/Listtree.c: get the instance data only if there is really a valid object. * mcc/Listtree.c: removed all the unused pre-MUI-V11 stuff. * mcc/Listtree.c: replaced the last strcat() calls by strlcat(). 2012-09-17 Thore Böckelmann * Slider.c: implemented repeating slider movements if the user clicks outside the know like it is done on other systems. * mcc/Lamp.mcc: don't set a frame spec but draw the frame directly. This speeds up prefs changes a lot (BZ #8054). 2012-09-16 Thore Böckelmann * images: replaced the ancient 8 color images of Busy.mcp, Lamp.mcp and Listtree.mcp by new ones kindly provided by Martin 'mason' Merz. 2012-09-16 Jens Langner * misc: updated build environment for GCC 4.7.x build and fixed some of the 'warning: variable XXX set but not used' warnings popping up with GCC 4.7. 2012-09-14 Thore Böckelmann * mcc/Listtree_mcp.c: localized Listtree.mcp. * Mccprefs.c, mcc/#?_mcp.c: added private method to automatically set unique shortcuts for all registered objects. 2012-09-13 Thore Böckelmann * mcc/Busy_mcp.c, mcc/Lamp_mcp.c: only save config items which differ from the default values. * mcc/Lamp.c, mcc/Lamp_mcp.c: implemented the adjustable frame visibility and the specular highlights. * Application.c, Notify.c: use exec/MoveList() to move complete lists instead of doing this manually. MoveList() is considerably faster. * mcc/Busy_mcp.c: added bubble help texts to all items. * mcc/Listtree_mcp.c: added first version of a native Listtree.mcp. 2012-09-12 Thore Böckelmann * Settingsgroup.c, Application, Aboutpage.c: merged the now obsolete class Settingsgroupr.mui into Settingsgroup.mui. * Settings.c: ignore disabled objects for context menus. * mcc/Busy.c: ignore the direction for "old" and "Knight Rider" style. * mcc/Busy_mcp.c: localized Busy.mcp. * mcc/Lamp_mcp.c: added first version of a native Lamp.mcp. 2012-09-11 Thore Böckelmann * mcc/Busy_mcp.c: added first version of a native Busy.mcp. 2012-09-10 Thore Böckelmann * Popmenu.c: perform a deep copy of a struct IntuiMessage before replying it. Otherwise the menu handling functions might access invalid memory. * Busy.c: finished reimplementing Busy.mcc with all known styles. * Window.c: the faked InputEvent to let Intuition open the pull down menu now includes a valid timestamp. 2012-09-06 Thore Böckelmann * Busy.c: added first version of a native Busy.mcc. KnightRider and StarTrek style are not yet working. 2012-09-05 Thore Böckelmann * List.c: fixed the redraw issues when a list object is located inside a double buffered group. * Area.c: fixed the wrong real time update of the active object's border (BZ #8029). 2012-09-04 Thore Böckelmann * Imagespace.c: yet another fix for gradients in double buffered areas (BZ #8030). * Imagespace.c: yet another fix for centered images in double buffered areas. 2012-09-03 Thore Böckelmann * mastertext.c, Area.c, Floattext.c: implemented a function to calculate the active styles and colors at a specific position within a text to let Floattext.mui keep text styles and colors even across wrapped lines. * List.c: read-only lists will still react on mouse wheel events instead of ignoring them completely. * Dirlist.c: use dos/CopyStringBSTRToC() instead of a handcrafted conversion function. 2012-09-01 Thore Böckelmann * mastermisc.c: verify that the active object still exists before trying to draw the active object border (BZ #8027). 2012-08-31 Thore Böckelmann * mastergfx.c: fixed a NULL pointer access when opening a public screen (BZ #8027). * mastergfx.c, Imagespace.c: fixed the drawing of gradients on double buffered rastports (BZ #8028). * doc/Area: added Autodoc entry for MUIM_DrawBackgroundParent. * Area.c: fixed a NULL pointer access when drawing the active object border (BZ #8031). 2012-08-30 Thore Böckelmann * Area.c, mastermisc.c: drawing the active object border is done deferred now to ensure that the border does not get overdrawn again by adjacent objects. * Area.c, mastergfx.c: on true color screens the active object border is now drawn with decreasing visibility depending of the border size. 2012-08-29 Thore Böckelmann * Aboutpage.c, masterconfig.c, Settings.c: removed all shareware and keyfile restrictions for the AmigaOS4 build. * Area.c, Window.c, Settingsgroup.c: moved the active object settings onto the Buttons page and made the active object pen real time prefs aware. * Area.c, Settingsgroup.c: the border size of the active object can now be adjusted between 1 and 3 pixels and is drawn correctly on true color screens. 2012-08-28 Thore Böckelmann * Crawling.c: added a native reimplementation of the old 68k-only Crawling.mcc class. It behaves exactly like the 68k version, except that it will wait for approx. 30 seconds before starting the crawling again from the top. Furthermore it forbids wheel scrolling in the crawling object as this contradicts the basic idea of this class. * Text.c: relayout the object only if the number of lines really changes. This fixes the flashing of the TextEditor.mcc object in YAM's write window, because the cursor position display is a two line text and setting the updated position text caused a constant relayout for every character typed before. 2012-08-10 Thore Böckelmann * Application.c: added a workaround for the crashes when opening a popup menu in IBrowse 2.4 while a page has not yet finished loading (BZ #7959). Although IBrowse does not call MUIM_Application_Execute this method seems to have a bad impact on IBrowse 2.4, but not on IBrowse 2.5/beta. 2012-08-03 Thore Böckelmann * Popmenu.c: use the fixed heavy grid disabled pattern in a low color situation on a non-truecolor screen. * Menustrip.c: simplified the popmenu array termination. 2012-08-01 Thore Böckelmann * Window.c: fixed a possibly wrong handling of the menu stickyness. * Popmenu.c: create full blown IntuiMessages when updating visible menus instead of a cropped and incompatible replacement thingy. * Frimagedisplay.c: inherited images on image buttons are now correctly inherited from the surrounding object's background instead of from the image button's background (BZ #7963). * Winborder.c: removed some unused variables. * Frameadjust.c: the jobbo/windows frames get a special height to make sure that the label of the "Top_Shadow.png" frame is always fully visible. * masterframe.c: fixed a possible corrdinate mixup when drawing bitmap frames. 2012-07-31 Thore Böckelmann * prefs.c: removed the "Open" and "Append" items from the global menu as these are available in the context menus already. * Settings.c: saving a configuration will always append ".prefs" to the file name to ensure that the saved file will appear as a selectable preset in the popup menu. * Settings.c: added a context menu to the page list as well. * List.c: fixed a potential crash when adding the vertical scrollbar. 2012-07-30 Thore Böckelmann * Settings.c: exclude the page context menu if there is no page title, i.e. on the "Info" page. * Area.c: restored the correct handling of double buffer offsets for non-gradient images. * List.c: fixed the invisible scrollbar if the list object is used without surrounding listview object. * Settings.c: replace LFs by spaces in the context menu. 2012-07-28 Thore Böckelmann * Popasl.c: fixed the spurious trashed file contents of the ASL requester. The former version did not copy the string's trailing NUL byte. 2012-07-26 Thore Böckelmann * List.c, Listview.c: made MUIA_Listview_ScrollerPos working again. 2012-07-25 Thore Böckelmann * Window.c: use GetGUIAttrsA() to query certain default GUI attributes. 2012-07-23 Thore Böckelmann * Area.c: don't respect mri_OffsetX/Y when redrawing the background (BZ #7951). 2012-07-22 Thore Böckelmann * List.c: correctly handle MUIA_Listview_Input. This was completely ignored before. * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2012-07-20 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2012-07-19 Thore Böckelmann * mastermisc.c: disabled objects will now redraw their frame as well during a simple redraw event to avoid applying an alpha blended disabled effect over and over again. * mastermisc.c: if an object inside a disabled group is to be redrawn the redraw procedure will be delegated to the parent group instead, because the drawing of the disabled effect will be done by the group and not by the object itself. This fixes the redraw issues of BettString.mcc objects used in a Popasl.mui group. 2012-07-18 Thore Böckelmann * Text.c: setting a new text with a different number of lines will now cause a relayout instead of a simple refresh to avoid drawing outside of the object's bounding box. 2012-07-17 Thore Böckelmann * masterreq.c: the first 12 buttons of a requester can now be operated directly using the keys F1 to F12. * masterreq.c: requesters with at least two buttons can now be operated using the cursor keys to select the active button. 2012-07-05 Thore Böckelmann * mastergfx.c, mastermisc.c: slightly changed the double buffer handling for drag images to not allocate a layer in this case. 2012-07-04 Thore Böckelmann * mastergfx.c, Group.c: double buffering is always done clipped now. * Aboutbox.c: the horizontal separator bar has a fixed height now. * Area.c, Group.c: fixed the slightly wrong double buffering handling in case the window background image was to be inherited. * Aboutbox.c: all texts are localizable now. 2012-07-02 Thore Böckelmann * masterreq.c: reworked the MUI_RequestA() function to do a proper length check when copying the passed in strings. Furthermore the default title and button texts are localizable now. 2012-06-26 Thore Böckelmann * Group.c: long group title strings are now shortened to not draw beyond the group's border. 2012-06-24 Thore Böckelmann * List.c: added one more pixel when respecting the title button's border size. This lets the download progress gauge of MUIOWB appear again without having to resize the columns. * Window.c: fixed the handling of MUIA_Window_NoMenus. It was a no-op before and if used initially it would always disable the menus no matter which value was passed in. 2012-06-22 Thore Böckelmann * masterconfig.c: fixed trashed serial number string (BZ #7907). 2012-06-20 Thore Böckelmann * prefs: use non-localized strings in case muimaster.library fails to open. * Screenmodepanel.c: allow adjustment of width and height even if the screen is told to clone the Workbench screen. * Area.c: redraw an object only for modified disabled settings if the object is disabled at all. * Window.c: make sure the menu item array is correctly terminated. * Window.c: added missing initialization of a variable which then would contain random values from the stack and cause crashes (BZ #7883). * Settingsgroupr.c: set the object's font before printing out some text as it might happen that the RastPort's current font was modified in the meantime. 2012-06-19 Thore Böckelmann * Window.c, Screenspace.c, Pubscreenlist.c: added the "jump to new screen" feature. This will temporarily open a cloned Workbench screen and let the application jump there immediately. * Pubscreenpanel.c: added the custom public screen selection again, but this is available for custom applications only and not for the global prefs. 2012-06-18 Thore Böckelmann * Area.c: fixed the broken per group settings handling. * Pubscreenadjust.c: fixed the non-disabled initial color selection for cloned screens. * Popmenu.c, Settingsgroupr.c: disallow image inheritance for the popup menu's background and cursor. 2012-06-14 Thore Böckelmann * Pendisplay.c: made the pen display truecolor aware. * Frimagedisplay.c, Settingsgroup.c, Settingsgroupr.c: enhanced lots of frame and image settings objects to show their name in the popup menu. * Aboutpage.c: added missing data for attribute. * Popmenu.c: popup menus inheriting a background or cursor image now correctly fall back to the default window background image. 2012-06-13 Thore Böckelmann * Backgroundadjust.c: implemented image inheritance from the window instead of the parent object only. * Settingsgroupr.c, mastergfx.c: implemented custom disabled pattern selection. This is not yet exactly what MUI4 on MorphOS offers, but at least it is a beginning. * Settingsgroup(r).c: avoid copying of constant strings. 2012-06-11 Thore Böckelmann * Settingsgroupr.c: added a frame around the settings page and added some space on the bottom of the Text page (BZ #7875). * masterframe.c, Frameadjust.c: added two new horizontal frames and removed the scaling cycle button from the GUI. * Settingsgroupr.c: changed the layout of the Buttons page to be more flexible. * Settings.c: added an additional group to catch all right mouse button clicks (BZ #7876). 2012-05-24 Thore Böckelmann * Window.c: minor changes and some extended debugging stuff. 2012-05-23 Thore Böckelmann * Dirlist.c, Imagespace.c, Pixmap.c, ProcessPixelArray.c, masterpop.c: zero all temporary RastPort structures before using them. * Dirlist.c: use a layered RastPort with clipping to let icon.library draw the icon image, as it seems that DrawIconState() might trash memory outside the RastPort's bitmap if used with a non-clipped RastPort. 2012-05-21 Thore Böckelmann * Frimagedisplay.c, Settings.c: fixed the frame and background handling of the clipboard button (BZ #7831). * masterframe.c: invisible frames are no longer drawn at all. * images/tokai: included some button images kindly provided by Christian "tokai" Rosentreter. * Area.c: added a NULL pointer check when comparing frame specs during MUIM_UpdateConfig (BZ #7830). 2012-05-19 Thore Böckelmann * contrib: updated all contributed classes to their latest versions. 2012-05-18 Thore Böckelmann * List.c: added some special handling of MUI prefs list images for the Ferox theme. 2012-05-16 Thore Böckelmann * Area.c, Group.c: reworked the group title handling to not create an additional group to carry the title object, but add the title object directly to its group (BZ #7816). 2012-05-14 Thore Böckelmann * String.c: added a NULL pointer check (BZ #7817). * Dirlist.c: fixed the sometimes initial wrong line height. 2012-05-10 Thore Böckelmann * muiprog.h: changed the default standard frame to use a visibility of 50% instead of 100% (BZ #7814). * Settingsgroupr.c, Window.c: enabled the "disabled" setting for menus which will completely prevent menus from opening (BZ #7813). * Rectangle.c: changed the default standard frame to use a visibility of 50% instead of 100% (BZ #7814). * Settingsgroup.c, Settingsgroupr.c: fixed the remaining layout issues of BZ #7813. 2012-05-08 Thore Böckelmann * Area.c: changes of a frame's visibility or tinting will now correctly be updated in realtime. * mastermisc.c: use MADF_DRAWOBJECT as flags value in the MUI_Redraw function when invoking the MUIM_Draw method, because certain classes will refuse to draw anything if this bit is not set. * Frimagedisplay.c: enabled double buffering for frame/image display buttons. * Pendisplay.c: enabled double buffering for pen display buttons. 2012-05-07 Thore Böckelmann * Frameadjust.c: removed the vertical size limitation of the colorring object (BZ #7808). * Colorring.c: use the normal font for the RGB/HSV string object instead of the fixed font. This also helps to give more space to the RGB/HSV slider objects (BZ #7808). * Frameadjust.c, Framedisplay.c: reworked the internal frame specs to use extended coordinates. This makes one new internal frame with round corners possible. * masterframe.c: thinned the oval frame to match the other thin frames. * masterframe.c: added transparency masks for the internal oval and round frames. 2012-05-02 Thore Böckelmann * Popasl.c: restrict the number of possible tag items to the documented number of 15. 2012-04-30 Thore Böckelmann * Lamp.c: fixed a possible infinite recursion eating up all free memory. This closes BZ #7797. 2012-04-25 Thore Böckelmann * List.c: fixed the wrong background drawing in case a frame spacing larger than zero was used (BZ #7775). * List.c: correctly respect the frame spacing for each column instead of for the complete list only. * List.c: invoke the background drawing on the correct object, especially for gradient backgrounds or inherited gradient cursor images. * Area.c, Group.c: group title objects are now drawn right after drawing the group's frame. This avoids too obvious flickering during resize operations. 2012-04-20 Thore Böckelmann * List.c: fixed the wrong handling of real time prefs frame changes. 2012-04-19 Thore Böckelmann * List.c: inherited list cursor images now correctly inherit the list's background image instead of the surrounding group's background image. 2012-04-18 Thore Böckelmann * mastermisc.c: reverted the disabled pattern change for IBrowse as it breaks the GUI in lots of other places in a more severe way. For the moment we'll have to live with invisible but disabled toolbar buttons until I find a way to distinguish these buttons from other regular objects. * Lamp.c: fixed the wrong handling of pen specs and the wrong notification of color type changes. 2012-04-17 Thore Böckelmann * String.c: moved the decision whether the application is AmIRC or not to a more appropriate place where certain required variables are guaranteed to contain a valid value. This should close BZ #7743. * String.c: added a missing NULL pointer check after an allocation. 2012-04-16 Thore Böckelmann * Area.c: added a workaround for NewString.mcc as this class draws the disabled pattern itself. * mastermisc.c: added a workaround for IBrowse to not use the centralized disabled pattern drawing. This closes BZ #7769. * List.c: removed unused string when dragging single entries. * Frimagedisplay.c: an inherited image with a modified brightness will now be shown with the correctly modified brightness. This closes BZ #7773. * Area.c: added yet another workaround for group titles in IBrowse' config window. 2012-04-12 Thore Böckelmann * mastertext.c: explicitly check for the introducing ESC character when dealing with preparse strings of simple strings. * List.c: make sure the text of dragged items really fits into the drag image's buffer. 2012-04-11 Thore Böckelmann * Popmenu.c: fixed the too narrow popup menu of cycle buttons. * Rectangle.c: fixed the wrong alignment of rectangle titles. * List.c: the drag image's width is now limited to the visible portion of the list. 2012-04-10 Thore Böckelmann * Popmenu.c: fixed the too narrow display of non-Amigakey shortcuts. * masterpop.c: the title of groups with titles is now correctly redrawn after a balancing operation. * Rectangle.c: fixed the wrong spacing of titles of rectangle objects. 2012-04-06 Thore Böckelmann * mastertext.c: fixed another wrong handling of non-NULL but empty preparse strings. 2012-04-05 Thore Böckelmann * Frimagedisplay.c: highlight the inner area instead of the complete area including the frame. Repeated highlight operations would brighten the frame more and more on every refresh otherwise. 2012-04-04 Thore Böckelmann * mastergfx.c: removed some dead code. 2012-03-30 Thore Böckelmann * mastergfx.c: the buffer for the truecolor ghost pattern is now cached across multiple calls to avoid the overhead of allocating and filling it again and again each time. * Popmenu.c: the low color check to fall back to the pixel pattern ghosting effect is done on colormapped screens only. * Area.c: added new public attribute MUIA_KnowsDisabled to let classes override MUI's internal disabled pattern drawing in favour of a custom method (i.e. TheBar.mcc has a custom method to ghost its disabled buttons). * Application.c: added the method MUIM_Application_Execute which implements the ideal main loop for an MUI application. 2012-03-29 Thore Böckelmann * mastergfx.c: on colormapped screens (depth 15+) disabled objects will now be ghosted by a truecolor effect instead of the well known pixel pattern. * mastermisc.c, misc: moved the drawing of the disabled pattern up to the global redraw function. On the one hand this solves the fact that the pattern being drawn by one object might not be aligned to the pattern drawn of the object's parent object. On the other hand this reduces the overhead when drawing the disabled pattern. Finally the disabled pattern does no longer be "emulated" by other classes (i.e. BetterString.mcc) as the pattern will be applied after the object has been drawn completely. 2012-03-22 Thore Böckelmann * prefs.c: removed the braindead attempt to flush memory by allocating a huge amount of memory. 2012-03-20 Thore Böckelmann * Argstring.c: removed some dead code and fixed a wrong output string generation. * Gauge.c: fixed handling of MUIA_Gauge_InfoRate to correctly update the displayed info string on every nth refresh only. * Fontpanel.c: fixed some warnings. 2012-03-19 Thore Böckelmann * Family.c, Argstring.c: reordered a pointer check to avoid reading memory outside of array bounds. * Filepanel.c: applied the same fix as for List.mui's inline editing to let all key presses be handled by the panel first. 2012-03-14 Thore Böckelmann * List.c: inline editing requires the same special handling within String.mui as i.e. Keyadjust.mui. This closes BZ #7702. * Fontpanel.c: the list of available fonts is now a per-instance list instead of a class global list. Although this makes it necessary to reobtain the list for every created object it solves the issue that newly installed fonts are not displayed until Fontpanel.mui was flushed from memory. This closes BZ #7703. * Fontpanel.c: added a new built in font family containing scaleable fonts only (i.e. TrueType, Intellifont, etc). 2012-03-12 Thore Böckelmann * mastergfx.c: reverted the change to not accept empty strings in the string to RGB conversion function as this can cause NList to print text in wrong colors. This closes BZ #7640. 2012-03-10 Thore Böckelmann * doc/Area: added Autodoc entries for MUIM_Create/DeleteDragImage. * List.c, misc: adapted the drag image creation to use MUIM_CreateDragImage instead of a custom implementation which used equivalent structures anyway. 2012-03-09 Thore Böckelmann * Window.c: a formerly active object will be reactivated while setting MUIA_Window_Sleep to FALSE only if the window is in active state at that time. * Keyadjust.c: removed no longer used string edit hook. 2012-03-08 Thore Böckelmann * Window.c: slightly changed the reactivation of MUIA_Window_ActiveObject upon reactivating the window. * Window.c: added an additional NULL pointer check when trying to jump to another screen. 2012-03-07 Thore Böckelmann * List.c: made MUIA_List_First OM_SETable. * Window.c: filter MUIA_Window_DefaultObject through MUIM_FindObject on OM_SET and OM_GET to ensure the object is really a member of the window. 2012-03-06 Thore Böckelmann * String.c: added very primitve and basic support for string edit hooks. At least the edit hook in Scout's task window works with this implementation. Please tell me if some other application fails with this. 2012-03-05 Thore Böckelmann * Slider.c: fixed double buffering of slider objects. * Application.c: the check for AmIRC now compares the first 5 characters of the application's name instead of the complete name. This closes BZ #7683. 2012-03-02 Thore Böckelmann * Bitmap.c: fixed wrong handling of application specified color precisions for ObtainBestPen(). * List.c: fixed swallowing of the last character in each line of Floattext objects. * ProcessPixelArray.c: handle zero width or height by returning immediately. 2012-02-29 Thore Böckelmann * Virtgroup.c: make sure to unpush all pushed methods upon cleanup. * Slider.c: obtain the knob image during MUIM_UpdateConfig in the same way as during MUIM_Setup. * Pendisplay.c: slightly reworked the pen spec handling. * Imagespace.c: respect the vertical position of areas to be filled with a pattern to avoid pattern shifts within virtual groups. * Menudisplay.c: enhanced the embedded menu bar to change its background image to the popup menu's background image if it is TAB activated. 2012-02-28 Thore Böckelmann * Balance.c: reworked the handling of MUIA_Balance_Quiet. * Volumelist.c: reworked to use proper list methods instead of hooks and translated all strings. 2012-02-27 Thore Böckelmann * Application.c, Panel.c, Popasl.c: the panel process now inherits the calling application's configuration. This makes it possible to automatically let all following windows appear on the same screen and let the windows share the same look as the current application. This closes BZ #7668. * Dirlist.c: the current item's thumbnail is now correctly displayed when the panel becomes visible for the first time. * Filepanel.c: toggling between volumes and an arbitrary directory no longer adds the VOLUMES entry twice in a row. This closes BZ #7667. 2012-02-24 Thore Böckelmann * Dirlist.c: converting colormapped data to ARGB now respects the required 16 pixel alignment of the scaling algorithm. * Panel.c: don't show any additional window title buttons. 2012-02-23 Thore Böckelmann * Dirlist.c: replaced some strcpy() by strlcpy() to be on the safe side. * Application.c: fixed a severe memory leak which occured when popup windows were still open during OM_DISPOSE of the application object. These windows were never disposed as they tried to push a method to close the window, but in OM_DISPOSE pushed methods are no longer invoked and hence the windows would stay alive beyond the application's life time. * Dataspace.c: uncompressing a dataspace entry returned the old data pointer instead of the new one. This made Dirlist.mui's thumbnail management drive crazy. I really wonder why this did not cause any DSIs. 2012-02-22 Thore Böckelmann * Application.c, String.c: added a workaround for Textinput.mcc's workaround for AmIRC's improper catching of MUIM_HandleEvent without adding an own event handler (yes, a workaround for a workaround). This should definitely be fixed in AmIRC directly. All in all this finally fixes BZ #7656. * Settingsgroupr.c, Window.c: embedded menus can only be shown at the window's top border instead of any border. Too many options are not always good... * List.c: use checkmarks instead of radio buttons for the title items in the popup menu. 2012-02-21 Thore Böckelmann * String.c: simplified setting MUIA_String_Integer. This also partly closes BZ #7656. 2012-02-20 Thore Böckelmann * List.c, Virtgroup.c: pressing any shift key while using any scroll wheel will now swap vertical to horizontal scrolling. This makes navigation in large virtual areas a lot easier. * Settings.c: removed the artifical double quote from the popup menu item title for all settings. * locale: removed some unused strings. 2012-02-18 Thore Böckelmann * Text.c: fixed the slightly wrong ControlChar conversion in case the letter does not occur exactly in the text but with a different case. * mastertext.c: treat non-NULL but empty preparse strings the same way as NULL preparse strings. 2012-02-16 Thore Böckelmann * Text.c: fixed double underlining of control characters when text objects are created using MUI_MakeObject(). * Window.c: disabled the automatic embedded menus on double clicking near the window's border. 2012-02-15 Thore Böckelmann * Rectangle.c: for rectange objects with title the same alignment as for group titles is applied. * Popupmenu.c: the popup menu images now use the correct sizes of the system images. The former fixed sizes are used for the builtin images only. * Popmenu.c: fixed the color handling a bit and fixed some places where the value certain pens was replaced by other values which in turn could lead to orphaned obtained pens. * masterpop.c: slightly optimized the Drag'n'Drop drawing. For direct mapped screen no transparency mask is allocated and for color mapped screen the destination area is not erased before the dragged image is begin drawn. * Settings.c: added a popup menu to the title of each page consisting of the usual "reset to defaults", "reset to last saved", etc items. * Popmenu.c: submenus will now be displayed left of their parent menu instead of left of them if there is more space on the left side to display the submenu without covering too much of the parent menu. 2012-02-13 Thore Böckelmann * Frimagedisplay.c: use the object's inherited font color instead of the standard font color. * Fontpanel.c: don't parse the current font settings yet another time on OM_GET. * Popmenu.c: the popup menus now use the system menu images if possible. * mastertext.c: enable direct RGB color mode if either text or outline color is no simple pen. 2012-02-12 Thore Böckelmann * Fontpanel.c: fixed a crash caused by accessing the render info structure after closing the panel window. * Popasl.c: make sure the font panel object is disposed. 2012-02-10 Thore Böckelmann * Settingsgroupr.c, Window.c, Popmenu.c: reworked the menu prefs page to be consistent with all other prefs pages. * Popmenu.c: removed a duplicate GetScreenDrawInfo() call. * mastergfx.c: the fixed font style is inherited from the normal font as well. 2012-02-08 Thore Böckelmann * Fontpanel.c: include the plain marker (/n) only if there is any style to be reset at all. * mastergfx.c: non-system styles (shadowed, outlined) are now remembered in a private structure to be able to apply them whenever needed. Unfortunately custom classes using own fonts cannot benefit from these additional styles, because the system structures cannot carry the additional style flags. * Window.c: reworked the immediate font change to perform the update only if the font can really be opened. 2012-02-07 Thore Böckelmann * mastergfx.c, Fontpanel.c: the outline color is now correctly marked by a leading "/C" instead of "/c". * Fontpanel.c, mastergfx.c: fixed a logical flaw in the font inheritance if the normal font is to be inherited from the application's screen. * Fontpanel.c: choosing a different font than the default font now results in an absolute font size. * Popasl.c: obtain the final font spec once only. * Area.c, Window.c: changing a font will now update all objects immediately. * Fontpanel.c, Popasl.c: the font panel get the already parsed default font params instead of an unparsed font spec passed in. This has the advantage that even custom class prefs modules will correctly inherit the default font. This means that only the normal font will inherit the screen's font. * Fontpanel.c: include "/n" only if there is anything to reset to plain style. 2012-02-06 Thore Böckelmann * Popasl.c: the font panel now correctly handles any initital ASL attributes. * Fontpanel.c, Settingsgroup.c: modifying the normal font on the "Windows" page will fall back to the screen's font if anything is to be inherited. 2012-02-05 Thore Böckelmann * Fontpanel.c: don't close the panel when double clicking a font. * Popasl.c: the font requester now correctly remembers the window dimensions between two calls. * Popasl.c: terminate font panels on MUIM_Hide. 2012-02-03 Thore Böckelmann * Popasl.c: dumped the custom process creation and use a Process.mui object instead. * Fontpanel.c: fixed handling of relative font sizes if a default font is given. * Popasl.c, Panel.c: Fontpanel.mui class is now used instead of ASL font requesters. This might be inconsistent with the rest of the system, but this step is necessary to fully support font inheritance, the additional font styles and the text coloring feature. By default the text color defined on the "Windows" page of MUI prefs will be used for all text unless this is overridden by custom font colors. 2012-02-02 Thore Böckelmann * mastergfx.c: added missing initialization of default font color specs. * Area.c: added missing initialization of default font colors. * Rectangle.c: use internal text engine for title texts. * mastergfx.c, misc: added a globally inhertiable default font description. This makes it possible to inherit the default font, size, style and color in every place. * mastergfx.c, Fontpanel.c: implemented "plain" font style which resets any inherited font styles. This makes it possible to have "topaz/8/b" (i.e. topaz.font, size 8, bold) as default font and get an italicized and non-bold topaz font of the same size using "/n/i". * Fontpanel.c, Penadjust.c: localized all strings. * Fontpanel.c: reworked style inheritance. For example take "topaz/8/b" as default font. Now bold style cannot be modified directly anymore, because bold style is inherited from the default font. However, adding "plain" style now has the contrary effect and will disable bold style, because the "plain" style will disable all inherited styles. * Fontpanel.c: clicking on a size entry in the font list will switch back to absolute mode. * tools/makeconfig.c: tweaked to default config to display the group titles in red color instead of black to match OS4's default look. * mastertext.c: fixed RGB color handling in case a preparse sequence is used. 2012-02-01 Thore Böckelmann * Cycle.c, Settings.c: cycle buttons and the preset button now use the same font as all other button objects. * masterbubble.c: use the already obtained bubble help font which is obtained in any case instead of opening the same font once again. * Group.c: the title of dynamically added subgroups is now correctly created and layouted in the same way as for statically created groups. * Scrollbar.c: fixed a typo which prevented wheel scrolling from working as expected. * Pubscreen.c: always obtain the background image, even if none is given. 2012-01-31 Thore Böckelmann * all: replaced all atol() calls and handcrafted "hex to integer" conversions by calls to strtol(). 2012-01-30 Thore Böckelmann * Winborder.c: removed some pre-V50 code which is no longer useed on AmigaOS4. 2012-01-25 Thore Böckelmann * dist/AutoInstall: adapted AutoInstall script to copy the default_OS4 image set as well. * Popasl.c, mastergfx.c: reworked the font popup object to correctly handle relative font sizes (i.e. "/-2"). Please note that on successful return of the ASL font requester any font size will be converted into an absolute size value. * Configdata.c: added a check for the global configuration to not accept any changes to the public screen definition. This is only possible for local configurations. Before just marking any custom screen on the "Screen" page and modifying any other setting would let the MUI prefs magically jump to that formerly selected screen. 2012-01-24 Thore Böckelmann * Window.c: fixed cycle chain handling in virtual groups. Before objects in a virtual group but outside the visible area would have been excluded from cycling through them. * String.c: fixed an out of buffer access in case the initial text was longer than the default maximum string length of 79 characters. * Screenmodepanel.c: don't forward MUIM_HandleEvent to the screen mode list if that object is disabled. * Settingsgroup.c: changed the drag qualifier objects to plain string objects as simple qualifiers cannot be handled by Keyadjust.mui. 2012-01-23 Thore Böckelmann * Slider.c: adapted some size limits a bit to let the dots style look a bit better. * Imagespace.c, Imagebrowser.c: added internal popfont vector image. 2012-01-20 Thore Böckelmann * Area.c, Title.c: fixed the disappearance of title objects when their group was disabled or otherwise redrawn in certain situations. 2012-01-19 Thore Böckelmann * Imagebrowser.c: allow *.mi1 type images. * Configdata.c: avoid upgrading of configs when windows are snapshotted. * Backgroundadjust.c: the brightness sliders now show a "+" character if the brightness is to be increased to match the image display's percentage display. * Title.c: draw a disabled pattern in case the destination object is disabled. * Popstring.c: added a check to embed the popup button if and only if the string object's class is String.mui. Other classes (i.e. BetterString.mcc) might not handle the embedding process too well. 2012-01-18 Thore Böckelmann * Imagespace.c: added a lowmemory handler to flush all unused images in a low memory situation. * Application.c, Configdata.c, Settings.c, masterconfig.c: fixed the automatic settings upgrade. The former method tried to upgrade even up-to-date configs and reverted any new setting to default values. * Configdata.c: inheriting a master config object also inherits the version number. 2012-01-17 Thore Böckelmann * Settings.c: added the "Settings" button which pops up a list containing all available preset files along with some common entries to modify all setting items. * demos/Animals.c: added Animals demo application. * masterconfig.c: reading any prefs file will automatically upgrade all old and outdated settings to current ones. * Imagebrowser.c: enabled support for old BOOPSI images again, but only if the file name meets the typical conditions, i.e. is named arrow_up.image for an upward arrow image. 2012-01-16 Thore Böckelmann * Pubscreenpanel.c: changing the public screen for a custom application will now jump to the selected screen immediately. * Pubscreenadjust.c, Pubscreenpanel.c: fixed the initial handling of screen parameters to display the true state. * Pubscreenlist.c: resort the list whenever a screen definition was modified. * List.c: added a check to prevent list entries to be not drawn if the title's frame spacing is smaller than the list's frame spacing. 2012-01-13 Thore Böckelmann * Pubscreenadjust.c, Screenmodepanel.c: reworked the public screen edit panel. This makes it possible to use any kind of image known from other places as screen background image instead of datatypes loadable images only. Furthermore some options have been dropped, as they are very unlikely to be ever used at all, i.e. forbid screen dragging. * Pubscreen.c: fixed a NULL pointer access in the screen backfill hook. 2012-01-12 Thore Böckelmann * List.c: reworked to wheel scrolling handling once more to enable scrolling whenever it is possible in any direction while respecting the mouse pointer position and the scrolling direction. * Popmenu.c: fixed the wrong background redrawing in case submenus are used. * Popmenu.c: fixed the wrong offset of menu markers in case a cursor frames was used. 2012-01-11 Thore Böckelmann * Scrollgroup.c: added a safety check when adding/removing the scrollbars. * all: the version tag of all components now includes a SVN revision number. * Popmenu.c: fixed the gradient background and cursor drawing once again. 2012-01-10 Thore Böckelmann * Cycle.c: fixed a memory leak. 2012-01-09 Thore Böckelmann * List.c: fixed a typo which prevented horizontal wheel scrolling from working as expected. 2012-01-08 Thore Böckelmann * Aboutpage.c, Settings.c: reworked the info page and the About window. The ancient preview images have been dropped, as they are more than just outdated by now. * List.c: added a safety check when adding/removing the horizontal scrollbar. This closes BZ #7522. * Rectangle.c: use standard text color as fall back until we have proper group title color settings. * Aboutbox.c: enabled double buffering for the icon image. * Applist.c: added MUIA_Application_Process for direct comparison. * Application.c, Settings.c: fixed a memory leak by creating an object only once. 2012-01-06 Thore Böckelmann * String.c: certain keypresses (i.e. printscreen, break, insert) which result in no visible character usually, are now silently be swallowed. Furthermore if the string object has an attached list (like in the MUI-Demo application) and the keypress is forwarded to the list it will be "eaten" as well, if the attached list signaled "eaten". This closes BZ #7537. * all classes: bumped the copyright year to 2012. This closes BZ #7534. * List.c, Scrollbar.c, Numeric.c: reworked the wheel scrolling logic once more to handle all possible combinations of mouse wheel event and mouse pointer location. * Pixmap.c: MUIM_AskMinMax now correctly returns the pixmap's dimenstions as width and height values. * Aboutpage.c, Settings: added new logo kindly provided by Martin 'Mason' Merz. 2012-01-05 Thore Böckelmann * Window.c: the screen names in the popup menu are sorted now again. * String.c: fixed the broken vertical gradient background drawing in certain situations. This closes BZ #7528. * Configdata.c: IBrowse and its IBTextEditField.ibcc class use the old string pen settings as default background setting and do all the background drawing themselves instead of using MUIM_DrawBackground. Even worse they fail to handle anything except pen specs correctly and hence may render absolute non-sense. Thus for IBrowse the default pen specs are now returned to work around this issue. This closes BZ #7527. 2012-01-04 Thore Böckelmann * Slider.c, masterframe.c: fixed the vertical gradient drawing for slider knobs. The gradient will no longer be spread over the complete slider's dimensions but just over the knob's dimensions. * Popasl.c: still opened ASL requesters will be terminated if the calling application is being hidden or terminated. Otherwise the requester window would be left orphaned. * Popasl.c: ASLFO_DoStyle now defaults to TRUE for font requesters. * List.c: fixed the wrong xoffset result of MUIM_List_TestPos in case the list had been scrolled horizontally. 2012-01-03 Thore Böckelmann * Slider.c, Settingsgroupr.c: added config option to modify the slider knob style. One can choose either no style at all, the well known circle and OS4's dots and lines. Additionally the no longer supported BOOPSI images will automatically be converted to the default slider knob look. This closes BZ #7512. * List.c, Scrollbar.c, Numeric.c: sorted the inputhandlers' priorities to let a list object scroll with the same speed no matter where the mouse pointer is located within the list object. This closes BZ #7521 again. Furthermore single scrollbar objects always behave just the same as in combination with a list. 2012-01-02 Thore Böckelmann * Virtgroup.c: fixed the wheel scrolling in the image browser by adding a high priority eventhandler to catch wheel events ahead of other event handlers. * Popmenu.c: fixed the popup menu gradient bug of BZ #7532. * Frameadjust.c: disabled double buffering for the Colorring object on the frame adjustment page as this is causing graphical corruptions. * Title.c: fixed the broken title object backfilling. * Title.c: fixed realtime prefs changes of group title image. 2011-12-31 Thore Böckelmann * Area.c: fixed handling of MUIA_FrameDynamic for groups. The frames of the toolbar buttons of MUIOWB are now correctly shown and hidden. 2011-12-29 Thore Böckelmann * List.c, Scrollbar.c, Numeric.c: the scrollbars of lists no longer invert the mouse wheel scroll events. This closes BZ #7521. 2011-12-28 Thore Böckelmann * Settings.c: the page list is now the default object again instead of the no longer existing listview around it. * images/default_OS4: renamed the listtree open/close node images to avoid confusion with other standard images. * Imagebrowser.c: implemented mode to show all images contained in a directory but to select only one, i.e. the listtree open/close node images. 2011-12-27 Thore Böckelmann * Pubscreenlist.c: the Workbench screen's mode ID is now always obtained from the currently opened screen instead of any previously saved ID as MUI is not able to change this ID anyway. This closes BZ #7501. * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. * List.c: vertical gradients for the list cursor are now drawn in full height instead of being stretched across the complete list's height. This seems to be most people's intuition. * Frimagedisplay.c: dropping a frame+image combination with an inherited image spec on an frame+image object which does not allow image inheritance will now correctly ignore the image part. This closes BZ #7510. * Pubscreenlist.c: creating a copy of the Workbench screen will now correctly clone all basic parameters. This closes BZ #7511. 2011-12-23 Thore Böckelmann * tools/makeconfig.c, images/default_OS4: added pullopen and closebutton images to the default_OS4 theme and adapted the default settings accordingly. * Pubscreenlist.c: exclude the Workbench screen from editing when being doubleclicked. 2011-12-22 Thore Böckelmann * Imagespace.c: replaced the list based cache by a hash table to speed up all accesses. * String.c: fixed the broken backfilling when a text portion was selected. Also replaced some sprintf()'s by snprintf(). * String.c: fixed a possible locked semaphore in case of a low memory situation. * String.c: fixed a mix up of AllocMem() and FreeVec() calls. 2011-12-21 Thore Böckelmann * Dataspace.c: replaced the list based structure by a hash table to speed up all accesses. * Frimagedisplay.c: enabled GUI mode. * Settingsgroupr.c: added some object for future use to tune the look of register title tabs. Note: these settings are not yet working and hence are disabled. * Settings.c: made the "goto last used prefs page" feature working again. 2011-12-19 Thore Böckelmann * Title.c: framed title objects are now completely backfilled with the corresponding group's background image. 2011-12-18 Thore Böckelmann * String.c: replaced Create/DeleteMsgPort() by Alloc/FreeSysObject. * Group.c, Title.c: added some special handling of odd sized objects. 2011-12-16 Thore Böckelmann * Area.c, Group.c, Title.c: implemented group titles as real objects. Things may not be perfect yet, but at least it is a beginning... 2011-12-07 Thore Böckelmann * locale/french.ct: updated french translation kindly provided by Mrodfr/ATO France. 2011-11-30 Thore Böckelmann * Screenmodepanel.c: added Screenmodepanel.mui class. * Settingsgroupr.c: implemented a label position slider class for future use. 2011-11-29 Thore Böckelmann * Settings.c: replaced the More button's image by MUII_PullOpen. 2011-11-25 Thore Böckelmann * Imagebrowser.c: use the same image specs for the context menu as for the browser itself. * Pubscreenlist.c: made the screen edit panel a bit wider. * Pubscreenadjust.c: localized the depth slider. * Pophotkey.c: added custom replacement class for Pophotkey.mcc based on Keyadjust.mui. 2011-11-24 Thore Böckelmann * Pubscreen.c: screens that clone the Workbench screen can now be larger than the Workbench screen itself. This closes BZ #7435. 2011-11-23 Thore Böckelmann * Imagespace.c: added some usages of MUIPEN() where it is absolutely necessary. 2011-11-15 Thore Böckelmann * Colorring.c: redraw the RGB/HSV string objects in the relative mode as they might have been overdrawn by the line connecting the two crosshair images. 2011-11-14 Thore Böckelmann * List.c: implemented MUIA_List_ColumnOrder. 2011-11-11 Thore Böckelmann * Area.c: implemented MUIV_Register_Titles_Frame to obtain the register's titles from the embedded groups' titles. 2011-11-06 Thore Böckelmann * Group.c: fixed the selected background image for custom toolbar buttons like those in MUIOWB. * List.c, Virtgroup.c: wheel scrolling within a list or a virtual group will affect the object below the mouse pointer only instead of scrolling all nested objects. * masterframe.c: added some checks to the bitmap frame thickness calculation to avoid pushing objects into the window frame due to negative values. This fixes the known issues with jobbo/windows/Top_Shadow.png. 2011-10-31 Thore Böckelmann * Area.c: fixed realtime update of double buffered objects. * Dtpic.c: the selected state info for MUIA_DarkenSelState is derived from MUIA_Selected instead of doing this job ourselves. 2011-10-30 Thore Böckelmann * Imagespace.c, ProcessPixelArray.c: extended the image processing to raw pixel arrays instead of working on bitmaps only. * Popmenu.c: fixed a typo which caused gradient cursors to be drawn with the wrong dimensions. * Popmenu.c: fixed another bug when using a gradient menu background. 2011-10-28 Thore Böckelmann * Window.c: added a safety check to ensure the requested object still exists before invoking a redraw after a configuration change. * Settings.c: saving a configuration will also trigger a visible configuration change for all non-realtime settings. * Dtpic.c, Imagespace.c: the lightened and selected state correctly respects the alpha channel and will modify visible pixels only. * Argstring.c: added Argstring.mui for whomever will need it. 2011-10-27 Thore Böckelmann * Application.c, Configdata.c, Settings.c, Settingsgroup.c: finally fixed the non-working public screen setting due to the all changed real time prefs change. * Keyadjust.c: implemented MUIA_Keyadjust_Allow(Double|Triple)Click. 2011-10-26 Thore Böckelmann * Dtpic.c: Dtpic.mui no longer does all the datatypes magic itself, but delegates this task to Imagespace.mui. This simplifies the code a lot. Additionally the two attributs MUIA_Dtpic_LightenOnMouse and MUIA_Dtpic_DarkenSelState have been implemented. 2011-10-25 Thore Böckelmann * List.c: moved the visibility change of the horizontal scrollbar from the MUIM_Setup method to the MUIM_Show method, as adding/removing objects might trigger a window relayout and hence requires a valid window pointer. * List.c: changing the horizontal scroller visibility now correctly updates the scrollers in realtime. 2011-10-24 Thore Böckelmann * String.c: fixed the wrong implementation of MUIA_Textinput_ResetMarkOnCursor to reset any marking at any time if set to TRUE. * List.c: add any notifies for the horizontal scrollbar only if it is visible at all and remove all of them when the scrollbar gets removed. * masterreq.c: added some code to detect missing screen or window references in MUI_AllocAslRequest() for the requester to be allocated. This makes it possible to let the requester be opened on the application's configured public screen without having to pass ASLFR_PubScreenName or similar tags explicitly. * String.c: made String.mui an external class. * Window.c: added some NULL pointer checks when recalculating the required window dimensions. 2011-10-23 Thore Böckelmann * List.c: made the title button's frame setting work instead of ignoring it. The default frame is cloned from a read-only list's frame. 2011-10-21 Thore Böckelmann * Settings.c: added title and .mcp image to each settings page. 2011-10-17 Thore Böckelmann * Settingsgroup.c: rearranged the keyboard page in two columns. * locale/MUI.cd: renamed the Strings page to Text. * muilocale.c, masterinit.c: integrated all functions of muilocale.library into muimaster.library to get rid of that single sublibrary. 2011-10-16 Thore Böckelmann * List.c: the height calculation for gradient backfilled lists must include the title group's height, otherwise the last line will not be drawn correctly. * String.c, Textinput.c: completely replaced the string class based on the BOOPSI class "strgclass" by Textinput.mcc. This eliminates the same issues as for slider objects in virtual groups and enables text marking on any system. 2011-10-07 Thore Böckelmann * Configdata.c: fixed the check for old empty strings to correctly handle certain non-NULL pointers. This closes BZ #7287. * prefs.c: starting the MUI prefs application twice will now let the first instance bring its window to the front. The second instance will still fail with the usual error message. This closes BZ #7205. 2011-10-06 Thore Böckelmann * Popstring.c: implemented the popbutton style which allows to embed the popup button into the string object. * Prop.c: completely dropped the support for BOOPSI based slider images. The BOOPSI system simple has too many disadvantages and limitations, i.e. a BOOPSI object can only work correctly if it is fully visible which makes using an only partly visible slider inside a virtual group impossible. * List.c: removing one or several items will redraw the list only if the list is non-quiet (MUIA_List_Quiet==TRUE). This fixes the slow redrawing when closing list nodes of large listtrees. * doc/misc: added some Autodocs for some undocumented methods and attributes. 2011-10-05 Thore Böckelmann * Imagespace.c: fixed yet another bug with single image 24bit ILBM brushes. * Imagebrowser.c: fixed wrong handling of .mb0/1 brushes. 2011-10-04 Thore Böckelmann * Imagespace.c: added support for 24bit ILBM brushes (extension .mf0/1 and .mb0/1). 2011-09-28 Thore Böckelmann * List.c: lists without a visible title bar are now displayed again with their minimum width as known before. Just lists which are allowed to adjust their minimum width will do exactly this. This closes BZ #7165. 2011-09-27 Thore Böckelmann * locale/french.ct: fixed wrong delete screen confirmation requester gadgets. 2011-09-26 Thore Böckelmann * Application.c: getting MUIA_Application_Iconified could have return the wrong state. 2011-09-25 Thore Böckelmann * List.c: fixed the wrong gradient background drawing in lists which contain less items than could be visible. 2011-09-21 Thore Böckelmann * Application.c: replaced the old GetDiskObject() call by GetIconTags(). This should fix the reported issues with 4 colored icons in AmiDock. 2011-09-13 Thore Böckelmann * Pubscreen.c: the background image for "like Workbench" style screens was not respected. 2011-09-12 Thore Böckelmann * Keyadjust.c: implemented a string edit hook to be able to sample new key presses. * Settingsgroup.c: make use of the new Keyadjust class to configure the keyboard shortcuts. * Keyadjust.c: made all visible texts translatable. * Settingsgroupr.c: transformed the cycle buttons config group to match the other options on that page. * mastermisc.c: fixed broken key comparison which did not obey all configured keys. * Applications.c: parsing multi key specs no longer modifies the original key spec. 2011-09-09 Thore Böckelmann * Keyadjust.c: added Keyadjust.mui class and make use of it in the MUI prefs application. Please note, key sampling is not yet working due to the nature of String.mui. As a decendant of a BOOPSI class the keyboard handling is visible to Intuition only and not to MUI. 2011-09-08 Thore Böckelmann * misc: lots and even more changes. Basically MUI now supports configuration changes in real time. That means, as soon as one modifies one option the result will be applied and visible immediately. Gauges may get an additional zebra effect for better visual feedback. All images used from within MUI are now configured on one central page instead of several pages. This makes it possible to choose complete image themes instead of having to set each image separately. However, images can still be set individually by clicking on the corresponding config button. A popup menu will open which lets one select only those images from the available ones which are suitable for the image's role. External config classes will be loaded by clicking on the "More" button below the class list. Each config page has been placed in a virtual group to be able to combine several former single pages into one big page while keeping the main window relatively small. There are much more minor improvements hiding somewhere, its just too many of them to mention each and every in detail here. 2011-09-05 Thore Böckelmann * Settingsgroupr.c: added missing line for translated cycle butoon popup menu positions which caused additional strings to appear due to the missing NULL entry. This closes BZ #7224. 2011-09-03 Thore Böckelmann * doc/Dtpic: added Autodoc entries for all public attributes of Dtpic.mui. 2011-08-30 Thore Böckelmann * Imagebrowser.c: simple vector images are now used for the builtin images as these should really be built-in and should never rely on any external files. * Imagespace.c: changed the vector image pen from SHADOWPEN to the usual TEXTPEN to make the images appear in black color as SHADOWPEN is some kind of gray on AmigaOS4. * Imagebrowser.c: the currently active image is now made visible upon opening the browser. * Imagebrowser.c: image specs are now generated depending on the file's extension. 2011-08-29 Thore Böckelmann * Backgroundadjust.c, Imagebrowser.c: the image browser will now correctly highlight the currently selected image. 2011-08-28 Thore Böckelmann * mastergfx.c: implemented special font specs to increase/decrease the point size of the default font, i.e. "/-2" will use the default font with a point size decreased by 2, "/+2" will increase the point size by 2 and "/16" will use an absolute point size of 16. 2011-08-24 Thore Böckelmann * Settingsgroup.c: slightly rearranged the layout of the Help page and removed lots of no longer used catalog strings. * Settingsgroupr.c: made the scrollbar knob selector work again with old BOOPSI images and removed lots of no longer used catalog strings. 2011-08-23 Thore Böckelmann * Settingsgroupr.c: adapted the slider and gauge settings the match the look of MUI4. * Gauge.c, Settingsgroup.c: implemented the zebra striping effect for gauges. * Settingsgroupr.c: modified the example gauge to do its fancy stuff only if the mouse is over one of the objects. * Settingsgroupr.c: enabled no arrow buttons at all for scrollbars as possible default setting. * Settingsgroupr.c: removed the "allow scrolling with middle mouse button" setting. Wheel scrolling is active for all lists and virtual groups. * Settingsgroup.c: rearranged the Window settings page to match the look of MUI4. The window refresh mode is no longer configurable as the current graphics hardware is fast enough for a quick redraw without erasing the background. 2011-08-22 Thore Böckelmann * Popmenu.c: fixed the wrong width for gradient cursor images. This closes BZ #7188. * Imagespace.c, ProcessPixelArray.c, misc: implemented color balancing and color brightness control based on an implementation kindly provided by Massimo Tantignone. This finally makes the disabled brightness slider in the background image selection window working. * Settingsgroup.c: made the per gadget context menus working again even if some gadgets are no longer available. 2011-08-21 Thore Böckelmann * Dirlist.c: added a NULL pointer check for the MultiTest hook. This closes BZ #7185. 2011-08-03 Thore Böckelmann * misc: removed all pre-V39 stuff as there are no pre-OS3.0 components in the system anymore. MUI is now strictly AmigaOS 3.0+. * List.c: make sure the active entry is still visible after adding the horizontal scrollbar. * locale/czech.ct: updated czech translation kindly provided by Vit Sindlar. * Area.c: MUIM_DrawBackground now correctly respects any given offsets. In combintation with updated NList classes this fixes BZ #6974. 2011-08-02 Thore Böckelmann * Imagespace.c: fixed the broken image disposing. The destructor for disk based images was never called and hence left tons of orphaned locks pending. 2011-08-01 Thore Böckelmann * masterframe.c: removed unused frame definitions. * Frameadjust.c: the frame being edited is now made selected in the range of all available frame types. * Application.c: fixed the handling of pushed methods. The old approach always ignored the first pushed method and hence made unpushing it impossible. 2011-07-31 Thore Böckelmann * locale/danish.ct: updated danish translation kindly provided by Niels Bache. * locale/polish.ct: updated polish translation kindly provided by Mariusz Danilewicz. 2011-07-30 Thore Böckelmann * Settingsgroup.c, Pubscreenlist.c: set the bubble help for the list only, but not for the control buttons. This closes BZ #7155. 2011-07-28 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. * List.c: the vertical scrollbar was not updated when the horizontal scrollbar was added or removed. * Area.c, Imagespace.c: fixed wrong gradient drawing for double buffered objects. 2011-07-27 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. * Pubscreen.c: added some more debugging output to the public screen initialization. * debug.c: the debug log now contains the full version information of the generating module. * Pubscreen.c: cloning the Workbench screen must preserve a custom screen ID. * Screenspace.c, Pubscreen.c: completely removed the "Auto Close" and "Close Gadget" settings for public screens. Automatic closing of screens is always active now. MUI tried to close a public screen upon application termination or iconification anyway since ages. Only an alien window could have prohibited this. Since the close gadget required a window to display the gadget the use of the "last visitor closed" signal to close the screen could never have worked as intended as there was always one window left on the screen. Furthermore, the close gadget was something completely alien in respect to screens. 2011-07-26 Thore Böckelmann * Pubscreenlist.c: fixed NULL pointer access after deleting a screen entry. This closes BZ #7148. * Pubscreen.c: use the autoclose/close gadget settings from the configured screen even if cloning of the Workbench is requested. This closes BZ #7149. * Pubscreenlist.c: removed unneeded Forbid()/Permit() pair. * Colorring.c: replaced all Forbid()/Permit() pairs by a semaphore. * Dirlist.c: replaced all Forbid()/Permit() pairs by a semaphore. * List.c: lists can now have an additional dynamically added and removed horizonzal scrollbar to scroll the list contents horizontally as well. * Process.c: fixed wrong DoSuperNew() call. This fixes BZ #7147. 2011-07-25 Thore Böckelmann * Screenspace.c: removed unused global variable and embedded another global variable into the instance data as Screenspace.mui is a single instance class. 2011-07-23 Thore Böckelmann * locale/finnish.ct: updated finnish translation kindly provided by Janne Peräaho. 2011-07-22 Thore Böckelmann * doc/List: fixed some minor typos. 2011-07-20 Thore Böckelmann * masterframe.c, Frameadjust.c: tinting and scaling of frames is possible for bitmapped frames only now. * masterframe.c: added NULL pointer check for possible invalid frame specs. 2011-07-15 Thore Böckelmann * Application.c: an implementation of MUIM_FindObject for application objects existed, but was never used. Now it is called as intended. * misc: various changes to merge the separated settings for list frames and backgrounds into the new combined settings object. The list cursor now also might have a visible frame. 2011-07-14 Thore Böckelmann * tools/makeconfig.c: added MUICFG_FramesPropKnob. * Frimagedisplay.c: make sure the background is drawn for inherited images. * Settings.c, Settingsgroup.c: started to merge the separated settings for frames and backgrounds into the new combined settings object. 2011-07-13 Thore Böckelmann * masterpop.c: before balancing starts the window's sticky active object pointer must be erased. Otherwise this object will be made active over and over again. For example Filepanel.mui's file string object is such a sticky candidate and will eat up the mouse release event needed to detect the end of the balancing process. * Area.c: fixed the background drawing of buttons with bitmap frames. * misc: declared all method functions as static if they are not used globally. * mastergfx.c: enabled parameter parsing for bitmap frame specs. * Frimagedisplay: applied the same fix as for the old Imagedisplay.mui to show the correct background and image. * masterclass.c: for all internal classes their true name is now set in the public class structure. 2011-07-12 Thore Böckelmann * Listtree.c: some optimizations to use V11+ stuff only, MUI 2.3 is long ago. 2011-07-11 Thore Böckelmann * List.c, Filepanel.c: implemented MUIM_List_EditEntry and MUIM_EditStop as Filepanel.mui makes use of this for renaming files. * Imagespace.c, Gauge.c, Text.c: sorted out why the gradients were not drawn correctly with double buffering enabled. Hence they can be reenabled again. 2011-07-08 Thore Böckelmann * Dirlist.c: reworked the icon handling to correctly handle all possible types of icons (bitmapped, palette mapped, direct color). This closes BZ #7119. * tools/makeconfig.c: fixed a typo in the default configuration for tape up and tape down images which made it impossible to use the builtin images. * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh. 2011-07-07 Thore Böckelmann * Slider.c: disabled the "jump to default value on doubleclick" feature as it is absolutely unintuitive if one is clicking right/left of it and as soon as the slider gets below the mouse it magically jumps to somewhere else. * Backgroundadjust.c: fall back to the background pen if we have to deal with an old empty spec but inheritance from parent object is forbidden. * Area.c: pressed RelVerify buttons are now visually "released" if the window becomes inactive. This closes BZ #5592. * Area.c: a gradient as background image of a vertical slider will be rotated by 90 degrees just like for horizontal gauges. 2011-07-06 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas. * Dirlist.c: try to obtain the ARGB data using datatypes.library even for 8bit images. * Group.c: added a NULL pointer check during disposing all child object. * Dirlist.c: try to obtain raw ARGB data from icons if they exist. * Group.c: reverted the OM_DISPOSE method to the previousd version using NextObject() to iterate through the child list instead of RemHead()'ing them one by one. WookieChat seems to mess around with this child list during OM_DISPOSE which finally leads to a stale list pointer and crashes. This closes BZ #7026. 2011-07-05 Thore Böckelmann * Area.c: remember the initial rastport to be able to detect drawing to a foreign rastport (as BetterString.mcc does) even if drawing the image is to be skipped due to being the same as the surrounding image (i.e. the window background image). This closes BZ #7109. * Colorring.c: use a fixed font for the RGB and HSV value display. This closes BZ #7117. * Scrollbar.c: enforce an image button background for the arrow buttons and rely on the fact that certain images might erase this background again if required (i.e. the Ferox theme). 2011-07-04 Thore Böckelmann * masterconfig.c, Configdata.c: the prefs file now carries a version chunk to tell old and new versions apart be able to convert old empty image specs representing a default background to a new spec instead of interpreting this as inherited background images. * Area.c, Image.c, Scrollbar.c: correctly respect the inherited background of partly transparent images, like round button images. * Backgroundadjust.c: correctly handle '6:xxx' type image specs. 2011-07-03 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh 2011-07-01 Thore Böckelmann * Window.c: fixed the broken background filling for BOOPSI scrollbars with large "transparent" areas on top of a gradient window background. * Settingsgroupr.c: forbid parent background image inheritance for window and requester backgrounds. 2011-06-30 Thore Böckelmann * Dataspace.c: slightly tuned the data (de)compression to use as less memory as possible. 2011-06-29 Thore Böckelmann * Dirlist.c: icon images not loadable via datatypes.library will now be loaded a normal icons for the preview. * Imagebrowser.c: added support for old BOOPSI image files like the well known XEN scrollbar images. 2011-06-28 Thore Böckelmann * Dirlist.c: use GetDiskInfo() instead of the old Info() to obtain the "size" and "used" values of a disk. * Colorring.c: the colorring's context menu is now fully localized. 2011-06-27 Thore Böckelmann * misc: another bunch of lots of changes. This release features an all new image selection window with thumbnail previews of image files and a completely color ring instead of the old color wheel to define RGB colors. This new window allows to configure inherited background images. Another important new feature are the clickable and draggable list titles. 2011-06-24 Thore Böckelmann * Application.c, Area.c: added special treatment for the broken backfill handling of IBrowse. Fastlink buttons within the navigation bar are now redrawn correctly again after a window resize. 2011-06-22 Thore Böckelmann * mastertext.c: fixed wrong offset when blitting raw ARGB data within a stream of text. 2011-06-17 Thore Böckelmann * Semaphore.c: added missing OM_DISPOSE implementation for Semaphore.mui. 2011-06-14 Thore Böckelmann * Dataspace.c: implemented the private methods MUIM_Dataspace_Compress and MUIM_Dataspace_Uncompress using bz2.library for (de)compression. 2011-06-10 Thore Böckelmann * Boopsi.c: fixed the background filling of colorwheel.gadget. 2011-06-09 Thore Böckelmann * misc: lots of internal changes, but this version finally implements true background image inheritance. This means that setting MUIA_Background to an empty string will let an object inherit its parent object's background image. For example, this is absolutely for gradients on a cycle gadget which consists of two objects (the cycle image and the text). Before two separate horizontal gradients were drawn, instead of only one as one would expect for a button like object. Also the background drawing of objects in virtual groups finally is done correctly now. Additionally gradients for the cursor of NList objects now work correctly again (BZ #6972 and #7032). 2011-06-08 Thore Böckelmann * Window.c: added some more NULL pointer checks agains invalid layer pointers in the backfill hook function. This fixes BZ #7024. 2011-06-07 Thore Böckelmann * Application.c: changed icon object for dock iconification to use the same icon object as for AppIcon iconification. This fixes BZ #6065. 2011-06-03 Thore Böckelmann * misc: implemented MUIM_FindObject for classes not derived from Notify.mui and made use of that method to avoid accessing no longer valid object pointers. * Configdata.c: fixed the wrong window spacing in IBrowse' main window. 2011-06-01 Thore Böckelmann * masterlist.c: added an index check to avoid a NULL pointer access. 2011-05-31 Thore Böckelmann * Makefile: the release target now builds a debug version of muimaster.library in addition to the normal non-debug version. * Window.c: added some NULL pointer checks to the window's backfill hook. This should fix BZ #7024 in case there is no valid window pointer. * masterpop.c: added missing parameter to MUIM_DragBegin method call. 2011-05-30 Thore Böckelmann * Settingsgroup.c: the default text color is now configurable. Furthermore the labels of the font settings are now displayed in the corresponding selected font. The settings for the monospaced font has been moved from the list page to the window page, as the fixed font is not limited to lists only. * Window.c, Area.c, Settingsgroup.c: the window's borders are new defined by a frame instead of 4 separate spacing values. This is much more consistent than the previous approach and make it possible to use different spacings for normal windows and requester windows. * Pubscreen.c: copy the pubscreen description instead of keeping the parent process' pointer. 2011-05-29 Thore Böckelmann * Process.c: raised default stack size to 32K. 2011-05-28 Thore Böckelmann * muiscreen.c, Screenspace.c: integrated all functions of muiscreen.library into muimaster.library to get rid of that single sublibrary. The name prefix "clonewb:" will enforce the use the current settings of the Workbench screen no matter what is configured for the screen mode, resolution, etc. As an alternative the SA_LikeWorkbench flag can be enabled in the screen prefs and will override settings like screen resolution, display mode, colors, etc. 2011-05-28 Thore Böckelmann * Application.c: applications may now be iconified to the default dock of AmiDock. This fulfills BZ #6065. 2011-05-24 Thore Böckelmann * Application.c: fixed some issues regarding setting the Workbench screen as as custom public screen. 2011-05-23 Thore Böckelmann * Pixmap.c: added MUIA_Pixmap_UncompressedData. 2011-05-21 Thore Böckelmann * locale/danish.ct: updated danish translation kindly provided by Niels Bache. * muiscreen.c: fixed several flaws regarding the PubScreen process creation. I really wonder why this worked before in muilowlevel.library. 2011-05-18 Thore Böckelmann * Area.c: added a workaround for broken gradient images in NList. At least horizontal gradients are drawn correctly again. Vertical ones are still broken. * mastertext.c: under certain circumstances custom softstyles might have been left active after certain operations of the text engine. The next text then was drawn with the wrong style if no new style was set inbetween. * Aboutbox.c: applications started via APPDIR:appname now correctly find their icon file as APPDIR:appname.info will never exist. 2011-05-17 Thore Böckelmann * Area.c: added some NULL pointer checks during MUIM_Setup and MUIM_Cleanup. 2011-05-16 Thore Böckelmann * locale/czech.ct: updated czech translation kindly provided by Vit Sindlar. * masterframe.c, misc: reworked the frame handling to pass specs around only. The frame thickness is no longer configurable since modern LCDs typically have a 1:1 pixel aspect ratio. * Group.c: readded a check for an invalid list pointer during MUIM_Draw. This most probably fixes BZ #6984. * Pixmap.c: MUIM_Setup no longer fails if the decompression fails. A simple black cross will be drawn instead of the image. * Settingsgroupr.c: the position of the context menu relative to the mouse pointer can now be configured. It defaults to be centered unter the mouse pointer. 2011-05-14 Thore Böckelmann * Popmenu.c: fixed drawing of recessed frames. This fixes BZ #6985. 2011-05-12 Thore Böckelmann * Imagespace.c: *.mb0/1 type images are now loaded by the internal functions again instead of using datatypes.library. This fixes BZ #6973. * Gauge.c: disabled double buffering for the moment as gradients seem to dislike the offscreen rastport and render incorrectly. This fixes BZ #6971. * muiscreen.c: the pubscreen task now has a stack size of at least 32K to avoid stack swapping by intuition.library. 2011-05-10 Thore Böckelmann * locale/spanish.ct: updated spanish translation kindly provided by Javier de las Rivas 2011-05-09 Thore Böckelmann * masterbubble.c: correctly use the MUIPEN macro for obtained pens. * masterbubble.c: fixed the wrong fallback to plain help bubbles in case the comic bubble creation fails. * locale/polish.ct: updated polish translation kindly provided by Mariusz Danilewicz. 2011-05-07 Thore Böckelmann * locale/italian.ct: updated italian translation kindly provided by Samir Hawamdeh 2011-04-28 Thore Böckelmann * Lamp.c: added a native reimplementation of Lamp.mcc. For now it is a plain framed rectangle instead of the known LED image. * dist/SDK: added Autodocs for Aboutbox.mcc, Lamp.mcc and Rawimage.mcc. 2011-04-23 Thore Böckelmann * Crawling.mcc: added ancient 68k Crawling.mcc as this one is required by Listtree.mcp and many other config modules which refuse to create their edit class if this class is missing. * mastergfx.c: a newly allocated MRI buffer must not remember the current area's background image, as this one has not yet been draw within this new context. This fixes the latest double buffering issues. 2011-04-21 Thore Böckelmann * mastergfx.c: added some NULL pointer checks to prevent buggy classes from obtaining pens while their window is hidden. * Aboutbox.c: added some more placeholders for standard strings. 2011-04-19 Thore Böckelmann * mastermisc: fixed an unused calculation result in MUI_ObtainPen. 2011-04-17 Thore Böckelmann * Area.c: removed the one pixel down/right shift of all coordinates when a butten is pressed. This closes BZ #6405. * tools/makeinc.c: the generated autodocs now include the numerical value of each attribute and method. 2011-04-16 Thore Böckelmann * Aboutpage.c: fixed the "Register" button's behaviour. * Virtgroup.c, muispecial.c: removed the dependency on muispecial.library to get rid of that single sublibrary. * Group.c, misc: implemented MUIA_DoubleBuffer as known from MUI4 to support double buffered drawing. 2011-04-15 Thore Böckelmann * Group.c: fixed the shifted background rendering of spacings within virtual groups. * Scrollgroup.c: implemented MUIA_Scrollgroup_NoHoriz/VertBar as known from MUI4. 2011-04-11 Thore Böckelmann * Text.c: MUIA_Text_Copy is now [isg] instead of [i..]. * muiscreen.c, muilowlevel.c: moved all remaining stuff of muilowlevel.library over to muiscreen.library since this is the last client using this stuff. 2011-04-10 Thore Böckelmann * Winborder.c, muiwinborder.c: integrated all functions of muiwinborder.class into Winborder.mui to get rid of that single subclass. 2011-04-09 Thore Böckelmann * Prop.c, muipropg.c: integrated all functions of muipropg.class into Prop.mui to get rid of that single subclass. 2011-04-08 Thore Böckelmann * Window.c, muiwinscroller.c: integrated all functions of muiwinscroller.class into muimaster.library to get rid of that single subclass. 2011-04-07 Thore Böckelmann * tools/png2.c: png2c now outputs the applied compression and format in terms of Pixmap.mui. 2011-04-06 Thore Böckelmann * Pixmap.c, Rawimage.c: added support for bzip2 compressed raw images. * Aboutbox.c: use our Rawimage.mcc wrapper instead of Pixmap.mui directly. * Aboutpage.c: added a listview around the list of loaded classes. * demos/NewStuff.c: use a bzip2 compressed Boing image. 2011-04-01 Thore Böckelmann * tools/png2c.c: generate source code with a line length of 256 characters at most. 2011-03-30 Thore Böckelmann * Aboutbox.c: make sure the image file exists before creating a Dtpic object from it. * demos/NewStuff.c: added a small demo application for Aboutbox.mcc and Pixmap.mui. More stuff may be added as demonstration is possible and required. * Rawimage.c: added a wrapper class for Rawimage.mcc based on Pixmap.mui. Note that only uncompressed raw data are supported. 2011-03-29 Thore Böckelmann * Aboutbox.c: for programs started from Workbench the icon path will now be constructed manually. * Aboutbox.c: restructured the complete class to fix a DSI exception. * Window.c: context menus are now always opened right+below the mouse pointer instead of centered under the mouse pointer. * Aboutmui.c: place the sizing gadget in the right border. 2011-03-28 Thore Böckelmann * Listview.c: all methods of List.mui are now correctly forwarded to the embedded list object. * Aboutbox.c: redraw the icon only if a redraw is actually requested. * Group.c: added a NULL pointer check for the group's window pointer. * Group.c: child objects are now removed from the list first before they are disposed. Furthermore a failed global layout will at least layout the child objects. 2011-03-27 Thore Böckelmann * Aboutbox.c: improved the icon display by using a separate class. 2011-03-26 Thore Böckelmann * mastertext.c: return zero dimension in MUIP_TextDimA() in case the render info structure is invalid. * Aboutbox.c: added first implementation of Aboutbox.mcc. 2011-03-25 Thore Böckelmann * Window.c: fixed a possible crash due to invalid width/height values when a gradient was used as background image. 2011-03-22 Thore Böckelmann * tools/makeconfig.c, tools/makeinc.c: fixed some warnings. * Imagespace.c: fixed the broken drawing of combined gradients. 2011-03-21 Thore Böckelmann * Imageadjust.c, Imagespace.c, Coloradjust.c: implemented MUI4-style gradients which can be either plain or symmetrical. * Coloradjust.c: keep the color wheel's aspect ratio instead of displaying an oval. * List.c, Imageadjust.c: implemented MUIA_List_AutoLineHeight to workaround the problem that too high BOOPSI images like the XEN scrollbars are drawn outside the listview. The list's line height will be adapted accordingly in this case. 2011-03-20 Thore Böckelmann * Rectangle.c: implemented MUIA_Rectangle_MinWidth and _MinHeight. * Image.c: implemented MUIA_Image_FontMatchString. 2011-03-16 Thore Böckelmann * Group.c: implemented MUIV_Group_Spacing_Percent. * Slider.c: implemented MUIA_Slider_FreeKnob. 2011-03-15 Thore Böckelmann * Window.c, muiscreen.c: use the image attribute functions instead of peeking around in the image structure. * Imagespace.c: fixed wrong display of ARGB images. * Imageadjust.c: added a preview for external images. * Imagespace.c: completed the support for .mim and .mi1 images. This makes it possible to use arbitrary images for i.e. cycle buttons. * Imagespace.c: images of type 3 and 4 now support arbitrary files loadable using datatypes.library. 2011-03-14 Thore Böckelmann * Imagespace.c, muigfx.c: moved screen notify stuff from muigfx.library to Imagespace.mui. * muiscreen.c, muigfx.c: moved the last remaining function of muigfx.library over to muiscreen.library to get rid of that single sublibrary. * Penadjust.c: fixed not yet specified pens being black and the penadjust object displaying white color. * Aboutmui.c, Aboutpage.c: added new external class Aboutpage.mui which is used by Aboutmui.mui and offers the possibility to delete obsolete class files. * Group.c: implemented MUIA_Group_Horiz/VertCenter. * Area.c: implemented MUIM_Text and MUIM_TextDim. * Family.c: implemented MUIA_Family_ChildCount and made the method MUIM_Family_DoChildMethods public. * mastermisc.c: fixed MUIP_ParseVersionString() to allow to skip certain parts of the parsed informations. * CClist.c: implemented OM_DISPOSE to avoid memory leaks upon expunge. 2011-03-11 Thore Böckelmann * muigfx.c, Imagespace.c: moved all image related functions over from muigfx.library to muimaster.library. 2011-03-09 Thore Böckelmann * muigfx.c, misc: adapted MUIG_DrawImage() prototype in the same way as the MUIP_DrawImage() prototype and replaced all direct calls to MUIG_DrawImage by the internal function MUIP_DrawImage for future changes. 2011-03-08 Thore Böckelmann * mastertext.c: updated the text engine to support RGB pen specs. * mastermisc: adapted MUIP_DrawImage() prototype for future extensions. 2011-03-07 Thore Böckelmann * mastergfx.c: dropped some of the OS2.x compatibility code regarding pen allocation. AmigaOS3.0 is the required minimum now. * muigfx.c, muilowlevel.c: moved over MUIL_Open() from muilowlevel.library. * muigfx.c, muilowlevel.c: replaced MUIL_OpenLibrary() by a similar function. * muigfx.c, muilowlevel.c: moved over MUIL_BodyToBitmap() from muilowlevel.library. * Application.c: localized two still fixed strings. 2011-03-05 Thore Böckelmann * Process.c: the created subprocess is now a true child of the parent process. 2011-03-04 Thore Böckelmann * Application: fixed unpushing of pushed methods which made processes created by Process.mui to hang upon exit. * masterframe.c, muigfx.c: moved MUIP_GetFrame(), MUIP_GetFrameAttrs() and MUIP_DrawFrame() over to muimaster.library. 2011-03-03 Thore Böckelmann * Process.c: added missing handling of MUIM_Process_Kill to the dispatcher. * Application.c: renamed the private method MUIM_Application_KillPushMethod to MUIM_Application_UnpushMethod and made it public. * demos/Class4.c: added demo application for Process.mui. * Process.c: implemented MUIA_Process_StackSize. * Application.c: got rid of the 2nd level method stack for pushed methods. 2011-03-02 Thore Böckelmann * mastertext.c, muigfx.c: moved MUIP_TextDim() and MUI_TextPrint() over to muimaster.library. * muigfx.c: eliminated the senseless RectFill() vs. Move()+Draw() speed check. * muilowlevel.c: replaced the lowlevel IO request functions by empty stubs as they are no longer used. * misc: moved lots of functions from muigfx.library to muimaster.library. * Process.c: do not pass the instance data as NP_Input value to the newly created process. This will definitely crash! 2011-02-28 Thore Böckelmann * muirexx.c, masterrexx.c: integrated all functions of muirexx.library into muimaster.library to get rid of that single sublibrary. * Scrollgroup.c, Virtgroup.c, masterclass.c: integrated Scrollgroup.mui and Virtgroup.mui into muimaster.library to get rid of that single external classes. * muilowlevel.c, mastermisc.c: moved several functions into muimaster.library. * Semaphore.c: implemented MUIA_Semaphore_Name and MUIA_Semaphore_Priority. * Notify.c: made MUIM_Notify_FindObject public. * Menu.c, Menuitem.c: implemented MUIA_Menu(item)_CopyStrings. * Window.c: implemented MUIA_Window_AllowTopMenus. * Area.c, Window.c: added the current EventHandler node as 3rd parameter to the message. * masterpop.c: the MUIM_DragReport and MUIM_DragDrop methods get the current qualifier passed in as the 5th paramter in the message. Furthermore the MUIM_DragFinish method gets the source object and an indication about the operation' success passed in as 1st and 2nd parameter in the message. * Numeric.c: implemented MUIA_Numeric_FormatNull. * Cycle.c: implemented MUIA_Cycle_EntryString and MUIM_Cycle_Query. * Scrollbar.c: implemented MUIV_Scrollbar_Type_None. * Dataspace.c: implemented MUIA_Dataspace_CompareOnAdd, MUIA_Dataspace_PoolMemType, MUIA_Dataspace_PoolPuddle and MUIA_Dataspace_PoolThresh * Process.c: implemented Process.mui as internal class. 2011-02-24 Thore Böckelmann * masterreq.c: implemented MUIP_AppObject(). * muiconfig.c, masterconfig.c: integrated all functions of muiconfig.library into muimaster.library to get rid of that single sublibrary. * mastermisc: implemented MUI_CreateTimer() and MUIP_DeleteTimer(). * muilowlevel.c: replaced all MUIL_Exists() calls by local macros. 2011-02-23 Thore Böckelmann * muihelp.c, masterbubble.c: integrated all functions of muihelp.library into muimaster.library to get rid of that single sublibrary. * muipop.c, masterpop.c: integrated all functions of muipop.library into muimaster.library to get rid of that single sublibrary. 2011-02-22 Thore Böckelmann * Listtree.c: avoid a NULL pointer access in case there is no active entry upon MUIM_Listtree_GetEntry,MUIV_Listtree_GetEntry_ListNode_Active. 2011-02-21 Thore Böckelmann * #?.h: made sure that any #pragma pack(2) occurs *after* all #include state- ments, otherwise the closing #pragma pack() in one of the other include files will restore the previous alignment and hence cause a different alignment than assumed. Also added the typical 'extern "C" {' stuff in all public headers in case MUI is used in a C++ project. * List.c: implemented the construct, destruct, compare and display hooks as proper methods as known from MUI4. * List.c: added HIDDEN=H/S to the title format specs to avoid crashes when using this MUI4 feature. Note that this feature is not implemented at all! * Listtree.c: replaced the obsolete MUI_Request/RejectIDCMP() calls by a proper event handler. * List.c: changed the return value of MUIM_List_GetEntry from constant zero to the entry value which has been obtained. This matches the MUI4 behavior. * Area.c, Window.c: added support for MUIM_ContextMenuAdd and boolean values of MUIA_ContextMenu. 2011-02-19 Thore Böckelmann * Applications.c: implemented the following attributes as known from MUI4: - MUIA_Application_NoIconify - MUIA_Application_Lagging - MUIA_Application_Process Furthermore obtaining the iconification icon will no longer pop up a DOS requester in case an unavailable volume is accessed. 2011-02-18 Thore Böckelmann * List.c: implemented the additional negative array entries up to -9 for the display hook as known from MUI4. 2011-02-16 Thore Böckelmann * List.c: implemented MUIV_List_Redraw_Entry as known from MUI4. 2011-02-15 Thore Böckelmann * Menustrip.c: implemented MUIM_Menustrip_Popup as known from MUI4. * Popmenu.c: implemented MUIA_Popmenu_QuitReason as known from MUI4. * Text.c: implemented MUIA_Text_Shorten and MUIA_Text_Shortened as known from MUI4. 2011-02-14 Thore Böckelmann * Group.c: MUIM_Group_Remove now does the same as OM_REMMEMBER. 2011-02-13 Thore Böckelmann * misc: backported some more MUI4 methods, like MUIM_Group_(AddTail|AddHead| Insert) and MUIM_Family_GetChild. The application's pushed method FIFO has been extended from 32 to 256 entries. The setup/cleanup check of Area.mui has been extended to catch possible object handling bugs like those of the NList classes. All in all this should help the backporting of the MorphOS MUI-OWB to AmigaOS4. 2011-02-08 Thore Böckelmann * locale/french.ct: updated french catalog kindly provided by Mrodfr-ATOFR. 2011-02-04 Thore Böckelmann * Dtpic.c: erase the background before drawing an image with alpha channel. Furthermore the alpha value will be applied to all drawing operations. 2010-10-29 Thore Böckelmann * doc/Dataspace/MUIM_Dataspace_Find: added an Autodoc entry for the public MUIM_Dataspace_Find method. 2010-10-07 Thore Böckelmann * 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 * misc: final preparations for new beta release. 2010-07-26 Thore Böckelmann * Cycle.c: in case the cycle's popup menu was canceled by releasing the mouse button outside the menu it was still possible to cycle through the object's entries with the mouse wheel even if the mouse pointer was not over the cycle object anymore. Now the current mouse position is checked again after the menu handling is done. This fixes BZ #6559. 2010-06-22 Thore Böckelmann * Dtpic.c: made the MUIA_Dtpic_Name attribute public, as it is in MUI4. No more need for hacks like MUIundoc. 2010-06-18 Thore Böckelmann * muipop.c: hide the transparent layer on truecolor screens before invoking the DnD drop method. This fixes BZ #6527. 2010-06-11 Jens Langner * locale/german.ct: translated two not completly translated strings. This fixes BZ #6516. 2010-06-11 Thore Böckelmann * Cycle.c: the "mouse over object" state is now also updated when the window becomes active again to be able to pop up the menu immediately. This fixes BZ #6515. 2010-06-08 Thore Böckelmann * all icons: updated all icons to the ones used on the OS4.1 Update 1 CD. This fixes BZ #6511. 2010-05-31 Thore Böckelmann * Area.c, Group.c, Window.c: backported some MUI4 stuff which allows to drop the hackish usage of the IDCMP_LONELYMESSAGE flag and to integrate the check for a successful layout operation for each object. This should help to track down the (in)famous "tons of NList warnings" bug. * Area.c: made MUIA_NeedsLayoutMethod get()able and added a warning in case an object received MUIM_Setup twice. 2010-05-28 Thore Böckelmann * Scrollgroup.c: implemented MUIA_Scrollgroup_AutoBars as known from MUI4. Setting this tag to TRUE will let the scrollbars appear and vanish auto- matically whenever they are needed or no longer needed respectively. 2010-05-25 Thore Böckelmann * 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 * misc: final preparations for new beta release. 2010-05-13 Thore Böckelmann * Aboutmui.c: added new 32bit logo kindly provides by Martin 'Mason' Merz. 2010-05-05 Thore Böckelmann * Knob.c: fixed a double cleanup of an already disposed object. * muihelp.c: added 32bit bubble image kindly provided by Martin 'Mason' Merz. This image will be used on hi- and truecolor screens. 2010-05-04 Thore Böckelmann * Levelmeter.c: got rid of the old 8bit image and use the new 32bit image only. Pixmap.mui is used internally to handle all screen formats. * Knob.c: got rid of the old 8bit image and use the new 32bit image only. Pixmap.mui is used internally to handle all screen formats. 2010-05-03 Thore Böckelmann * Pixmap.c: renamed Rawimage.mui to Pixmap.mui to avoid collisions with MOS' Rawimage.mcc class. Implemented simple dithering to be able to display truecolor image data on colormapped screens. A fixed but colorful palette will be used. * Pubscreenadjust.c, Pubscreenlist.c, Settings.c: got rid of all 8bit images now that the dithering is implemented. 2010-04-28 Thore Böckelmann * Rawimage.c: added Rawimage.mui class to handle inlined raw image data. * Settings.c, Pubscreenlist.c, Pubscreenadjust.c: use Rawimage.mui if available to display 32bit truecolor images. If Rawimage.mcc is unavailable the old 8bit images will be used instead. 2010-04-27 Thore Böckelmann * Makefile: add #?_mcc.h to the SDK release. 2010-04-26 Thore Böckelmann * dist/SDK/sfd/muimaster_lib.sfd: added missing inclusion of libraries/mui.h. 2010-04-25 Thore Böckelmann * Makefile, images, Levelmeter.c, Knob.c: added 32bit knob and levelmeter images kindly provided by Martin 'Mason' Merz. These images will be used on hi- and truecolor screens. 2010-04-13 Thore Böckelmann * Makefile, dist/Libs/mui/Listtree.mcp: added old 68k only Listtree.mcp prefs class since we don't have the source for this one. 2010-04-12 Thore Böckelmann * locale/polish.ct: added missing final LF, otherwise FlexCat will crash. * tools/png2c.c: the code generation didn't respect the host's endianess. * Makefile: added automatic png2c generation. * Makefile: the release target now copies the newly generated mui.h file to the SDK directory. 2010-04-09 Thore Böckelmann * Numericbutton.c: fixed the wrong gradient by enabling the background filling. Before four separate gradients had been drawn instead of a single one. * Cycle.c: if a Cycle object inside a virtual group is moved under the mouse pointer while using the wheel it will now ignore the wheel input and let the surrounding group handle it. The Cycle object will accept the wheel input only after moving the mouse at least one pixel inside the object. This fixes BZ #4864. 2010-04-06 Thore Böckelmann * 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 * local/polish.ct: updated polish translation kindly provided by Mariusz Danilewicz 2010-02-25 Thore Böckelmann * Group.c: MUIA_ShowMe will now return the hidden/visible state of the group object itself instead of its children as this is what one would really expect after having done a set(group, MUIA_ShowMe, TRUE/FALSE). This should fix BZ #6276. 2010-02-16 Thore Böckelmann * Makefile: renamed <> file to Global.prefs to be system independed. Certain operating systems don't like the angled brackets. The release target then renames this file to the final name. 2010-02-12 Thore Böckelmann * locale/english-british.ct: added creation of the AUTH chunk in the catalog file. 2010-02-11 Thore Böckelmann * locale/english-british.ct, Makefile: added british english translationg kindly provided by Arthur Ward and adapted Makefile to generate the catalog file. 2010-01-29 Thore Böckelmann * muipop.c: finally the Drag'n'Drop operation works without locking the whole screen. This requires OS4.1u1 and a screen with compositing enabled. Other- wise MUI will fall back to the old locked approach. This really fixes bug #5440. * locale/german.ct: fixed a small inconsistency in the german translation. 2010-01-02 Thore Böckelmann * 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 * misc: final OS4.1 update release preparations 2009-10-31 Jens Langner * 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 * Text.c: slightly change the text marking routines to identify if an escape sequence will be suddenly interrupted and thus the text might be displayed malformed. This should hopefully be the origin of bug #5681 and thus should be fixed now. 2009-10-29 Thore Böckelmann * 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 * muiconfig.c: fixed bug #5670 where with an unregistered MUI version the an invalid NULL pointer access occurred and caused the MUI preference program to crash. 2009-10-07 Thore Böckelmann * muigfx.c: the automatic frame thickness calculation used the screen's dimensions instead of the pixel ratio. This caused thick frames for over- sized screens while the screen resolution was not changed. Now the pixel ratio is used instead, because that one is constant and independend of the actual screen size. This fixes bug #5605. 2009-09-30 Thore Böckelmann * misc: added a name to all memory pools. 2009-09-17 Thore Böckelmann * locale/german.ct: fixed some inconsistencies in the german translation. * Numericbutton.c: fixed a knob displayed at the wrong position when moving the mouse too fast. Before it could happen that the knob was displayed somewhere in the middle while the displayed value was already at its limits. 2009-09-11 Thore Böckelmann * muigfx.c: the custom TextFit routine also respects the height restriction. 2009-09-11 Thore Böckelmann * muigfx.c: implemented a custom text fit functions as it seems the TextFit() function of graphics.library is calculating something wrong and returns zero displayable characters, even if their total width is smaller than the constraining width. This fixes BZ #5478. 2009-09-05 Thore Böckelmann * Popmenu.c: removed some no longer necessary type casts from CONST_STRPTR to STRPTR. * Window.c: removed some no longer necessary type casts from CONST_STRPTR to STRPTR. * mui.h: changed the pi_Key and pi_Text items to be CONST_STRPTR instead of STRPTR. 2009-09-04 Thore Böckelmann * muipop.c, Numericbutton.c: screen locking now happens situation dependend. For numeric buttons a real hard lock is done on the screen, while for normal object drag'n'drop the old interruptible lock is done. This still does not solve the DnD problems, but we get a small step closer. 2009-09-03 Thore Böckelmann * Window.c, locale: translated the window popup menu. * masterinit.c, mastermisc.c, masterdata.c: changed the main memory pool to be automatically protected by a semaphore. Thus the individual calls to Obtain/ReleaseSemaphore can be omitted. * muiconfig.c, locale: added some not yet translateable strings. * Text.c: the index calculation from the mouse coordinates could have returned negative index values which were used for the automatic text copy to the clipboard. Additionally the variable was signless and thus this negative value was never correctly detected. Due to this random memory might have been accessed causing all kinds of crashes. * muigfx.c: the text engine could still have accessed the original text pointer instead of the copied one for index calculations and thus calculate something completely wrong which in turn could trash memory. 2009-09-01 Thore Böckelmann * tools/makeconfig.c: modified the default menu type to match the needed index shift by the modification to Window.c. * Window.c: the type of the standard menus was always off by one as soon as this setting was modified for the first time, because the cycle gadget in the settings window doesn't offer the necessary "none" entry which would be needed for the indexing to be correct. But a "none" item doesn't make any sense as the menus are needed. A bit broken by design, I must say. You MUST either use the supplied default MUI configuration or adapt your Menu settings to your preferred state and save this one. Your current configuration will no longer produce the known behaviour. Unfortunately this cannot be automated, so you have to do it yourself. 2009-08-30 Thore Böckelmann * #?.ct: removed a no longer existing string. * locale: added a still missing string and adapted the german translation. 2009-08-30 Jens Langner * locale, misc: translated a whole bunch of previously non-localized strings. Now hopefully all strings should be localized and part of MUI.cd. 2009-08-29 Thore Böckelmann * locale: fixed the phrasing of the MSG_CFGL_INTERFACES_AREXX item in the catalog again. 2009-08-29 Jens Langner * locale: fixed the phrasing of the MSG_CFGL_INTERFACES_AREXX and MSG_CFGB_UseRexx item in the catalog. 2009-08-27 Thore Böckelmann * muiconfig.c: clicking on the "Register" button in either the main MUI prefs or the about window now opens www.sasg.com via launch-handler in a browser window instead of launching the outdated and crashing registration application. It is not clear if it is still possible to register MUI at all, so we leave this to the original author. 2009-08-26 Thore Böckelmann * doc/Listview/MUIA_Listview_SelectChange: pointed a bit more out that this attribute will only be triggered for multiselect lists and not for single select lists, as developers seem to be a bit confused. 2009-08-24 Thore Böckelmann * locale/MUI.cd: added proper index numbers to all translateable strings to avoid unwanted index shifts in case an unused string is removed. * include/features.h: reactivated the accidently disabled gradients. 2009-08-20 Thore Böckelmann * Aboutmui.c: made all fixed strings translateable. * locale/MUI.cd, locale/german.ct: removed one unused string and completed the german translation. 2009-08-19 Thore Böckelmann * locale/german.ct: slightly updated the german translation. This, if not all, really needs updating. Several strings have been translated a bit lazy. * Settingsgroup.c, Settingsgroupr.c, MUI.cd: added the last remaining untranslated strings. * Settingsgroup.c, Settingsgroupr.c: use the function provided by muilocale instead of an own one to translate certain arrays of strings. * Makefile, misc: created maintainable catalog translation files from the monolithic mui.mtl file and dumped that outdated custom catalog generation stuff in favour of FlexCat. * muilocale.c, misc: converted the complete locale stuff to use FlexCat to generate the source code. This finally enables us to let the translators do their work. 2009-08-18 Thore Böckelmann * muilocale.c, misc: changed MUIL_GetString prototype to return CONST_STRPTR as this is what locale.library is documented to do. Fixed all function calls to respect this change. * muilocale.c: changed MUIL_LocalizeArray prototype to accept a CONST_STRPTR array as this is what locale.library is documented to do. 2009-08-13 Thore Böckelmann * Makefile: reordered dependencies to build the single modules in alphabetical order. 2009-08-07 Thore Böckelmann * misc: added lots of "const" keywords to be able to pass constant strings around without having to cast them to "char*" each time. * muigfx.c: fixed all text engine related parts to operate on a copy of the supplied text instead on the original, because for image specifications the string will be modified and hence will cause DSIs in case the supplied string is some kind of "const char*" instead of just "char*". 2009-08-03 Thore Böckelmann * Area.c: fixed the IBrowse DnD offset issue. 2009-08-02 Thore Böckelmann * 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 * misc: fixed a bunch of compiler warnings and bumped revisions for a new betatester release. 2009-07-27 Thore Böckelmann * muipop.c: fixed the nasty partly left over drop marks. 2009-07-26 Thore Böckelmann * 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 * 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 * 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 * 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 * imageheader.c: changed return value of some functions to match the required prototypes for the callFunction() call. 2009-04-30 Jens Langner * updated the SDI headers to their latest fixed versions. 2009-04-24 Jens Langner * 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 * imageheader.c: applied all changes done for libheader.c here as well. 2009-04-15 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * libheader.c: lots of code cleanup to make things more readable. 2009-03-26 Jens Langner * include: updated SDI headers to their latest fixed versions. 2009-03-23 Jens Langner * Imageadjust.c: fixed broken recursive directory scanning. * imageheader.c: added dummy variable for broken binutils 2.18. 2009-03-22 Jens Langner * 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 * 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 * 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 * debug.c: use local variables for SysBase and DOSBase to avoid overwriting the global ones. 2009-02-27 Jens Langner * 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 * 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 * Gauge.c, Volumelist.c: replaced all floating point variables by 64 bit variables. 2009-02-09 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * muiscreen.c: fixed a possible non-closed library and simplified some name generations. 2008-07-04 Jens Langner * 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 * 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 * 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 * 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 "<>.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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * muiconfig.c: tuned the default look&feel for OS4 to have the listview handling set to "shifted" instead. 2007-11-17 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * misc: last preparations for the final OS4 release version of MUI 3.9 2006-12-06 Stefan Burström * 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 * 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 * 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 * List.c: revised the previously applied fix once again as using strdup() and free() caused other problems as well. 2006-05-28 Jens Langner * 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 * final OS4 relevant housekeeping of the MUI 3.9 sources as we will concentrate on porting the MUI4 sources. 2005-09-30 Jens Langner * 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 * 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 * 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 * 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 * 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 * all: bumped revisions of all components due to upcoming OS4 pre-release update 3. 2005-05-22 Jens Langner * 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 * misc: changed all MEMF_PUBLIC allocations to use MEMF_SHARED on AmigaOS4 instead. 2004-05-12 Stefan Burström * 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 * Pubscreenlist.c: fixed some minor compiler warnings. 2005-04-10 Jens Langner * m68k_stubs: updated the m68k OS4 stubs to the latest generated by fdtrans v51.14. 2005-03-08 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * m68k_stubs: updated m68k->PPC cross call stubs to latest versions generated by fdtrans 51.1 2004-10-05 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * 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 * xenbar?.c, imageheader.c: ported the BOOPSI scrollbar classes to native OS4/PPC and added them to the makefile. 2004-07-08 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * muigfx.c: added missing GET/DROPINTERFACE() calls to the ReadBrush() function. 2004-05-15 Stefan Burström * Added HookEntry ASM stub for custom classes. * Fixed alignment problems of data sections of HookEntries. 2004-05-14 Jens Langner * 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 * 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 * 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 * Application.c: the Fifo* functions are currently only used from one source file, so it is probably better to have them static right now. * fixed the m68k build which was broken by the mass changes during the last few days. * various: Replaced the recently introduced direct library stub function definitions by a more sophisticated set of macros which allow to maintain those OS4 specific library stubs more easily throughout the whole code. This should increase the source code portability as well as the readability of the code. * makefile.aos4cc: added cross-compiler specific makefile 2004-05-09 Stefan Burström * Added AOS4 style interface to muiwinborder * Removed HookEntry.S since it is not needed with the lates kernel * Added support for m68k classes 2004-05-08 Stefan Burström * Added AOS4 stubs for all library calls to be able to generate functioning AOS4 style libraries. * Added internal sprintf to avoid problems with libc sprintf on AOS4. * Misc bugfixes regarding Get/Drop interface. * Misc struct Interface *self additions to AOS4 versions of classes and libraries. * Added temporary HookEntry.s for Hook calls on AOS4 * Added support for m68k class calls from PPC MUI * Changed makefile.os4 to actually work under AOS4 :-) 2004-05-07 Stefan Burström * prefs.c: Fixed opening of muilocale interface. Previously MUI would crash if muilocale wasn't found. 2004-05-07 Jens Langner * copyright.h: fixed version information to show the value we want to have in all our classes. 2004-04-09 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * preparations for proper gradient image handling. Not finished yet and it could get messy. 2003-03-06 Jens Langner * 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 * 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 * 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 * 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 * 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 * 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 * Window.c: fixed recently introduced enforcer hit. shame on me ;) 2003-01-06 Jens Langner * 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 * 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 * 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 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 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.