Worklog for SebHoll

MaxGUI Updates

Return to Worklogs

MaxGUI Made Open-Source(Posted 2010-08-31)
MaxGUI is now hosted and maintained over at its new home - here.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.41 Released(Posted 2010-07-18)
Maintenance release MaxGUI 1.41 is now out and includes the following changes:

MaxGUI.MaxGUI 1.32 Release
+ Added WindowStatusText() command.
- Renamed TGadget.SetStatus() to more specific TGadget.SetStatusText().

MaxGUI.FLTKMaxGUI 1.56 Release
+ Added GetStatusText() implementation.
- Added missing Class() methods to TFLTextField and TFLLabel.
- Fixed RequestColor() parameter passing.
- Fixed pasting into textareas to work with WINDOW_ACCEPTFILES flag.

MaxGUI.Win32MaxGUIEx 0.73 Release
+ Added GetStatusText() implementation.

MaxGUI.CocoaMaxGUI 1.53 Release
+ Added GetStatusText() implementation.

The version number bump is because of the change of the SetStatus() method name in TGadget, but also includes a few bug fixes, and includes a long-time missing WindowStatusText() command. :-)

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.40 Released(Posted 2010-06-25)
MaxGUI 1.40 is now here (and accompanying MaxIDE package)! Mostly a bug-fix release but there have been a few minor additions. Of note...

> New PANEL_RAISED and PANEL_SUNKEN style flags (see here).
> CocoaMaxGUI now uses NSPopupButton for non-editable comboboxes (which now also supports icons).

MaxGUI.CocoaMaxGUI v1.51 Release
> skn3[ac]'s canvas EVENT_MOUSEUP firing fix.
> Added icon support to non-editable ComboBoxes.
> Fixed ComboBox events and implemented non-editable ComboBoxes as NSPopUpButtons.

MaxGUI.FLTKMaxGUI v1.55 Release
> Added hack to fix X crash that appeared when Ubuntu's Maximus is running.
> Bumped FLTK 1.3 version to rev. 7652.
> Added support for new PANEL_RAISED style flag.

MaxGUI.Win32MaxGUIEx v0.72 Release
> Added support for PANEL_RAISED style flag.
> Implemented grable's OnCommand() tweak.
> Fixed ActiveGadget() returning Null when HTMLViews have focus.

And that's about it. :-) Linux users may want to recompile themselves a new MaxIDE that seems a bit more crash-resilient on Ubuntu 10.04.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.39 Released(Posted 2010-04-06)
A note to say that MaxGUI 1.39 is now available from the 'Product Updates' page which contains a new LookupGuiColor() command, along with other minor fixes.

Make sure you rebuild docs after installing the module so that the new command is recognized as a keyword.

Colour constants supported are:

> GUICOLOR_WINDOWBG Window/panel background color.
> GUICOLOR_GADGETBG Gadget background color (e.g. textfield).
> GUICOLOR_GADGETFG Gadget text color.
> GUICOLOR_SELECTIONBG Text selection background color.
> GUICOLOR_LINKFG Hyperlink text color.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.38 Released(Posted 2010-04-02)
BlitzMax 1.38 saw a MaxGUI helper function being moved to Pub.MacOs. To be able to compile with BlitzMax 1.38, a corresponding MaxGUI 1.38 had to be released to use the new public function instead.

MaxGUI.CocoaMaxGUI v1.49 Release
> Fixed SetTextAreaText style problem.
> Added support for thumb-size jumps for scroll-bars.
> Removed NSString helper functions, instead linking to those in Pub.MacOS.
> Swapped out NSInteger for (int) to avoid compile errors for OS X < 10.5.

MaxGUI.FLTKMaxGUI v1.52b Release
> Disabled FLTK text widgets pasting file-names when files are dropped onto a window.
> Bumped FLTK 1.3 version to rev. 7062 to fix OS X compilation issues with GCC 3.
> Fixed button image offset when no text is displayed.

MaxGUI.Win32MaxGUIEx v0.68b Release
> Committed ListBox Slider glitch workaround for Grisu.


As of this release, precompiled archives are only available for the Windows platform (as users are not required to set-up MinGW to use BlitzMax). Users on all other platforms should download the source package, and build modules after extracting the contents into the relevant BlitzMax/mod folder. This cuts down on the work required when releases occur (which could increase the frequency of incremental updates), reduces the file sizes and intrinsically unifies the code-base of all three platforms. And as Mac users require XCode to be installed to operate BlitzMax (and similarly Linux users, GCC and corresponding development libraries) it shouldn't result in any additional set-up headaches.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.36 Released(Posted 2009-12-31)
MaxGUI v1.36 is the customary even point-release which supersedes the v1.35 release candidate.

MaxGUI.CocoaMaxGUI v1.48 Release
> Fixed mouse and key events for various different gadgets.
> Added support for mouse wheel events.
> Fixed listbox tooltip crash.
> Fixed DeselectGadgetItem() for ListBox gadgets.
> Applied d-bug's NSScrollbar sizing fix.
> Swapped out deprecated selectItem() selectors for their selectItemIndexes() counterparts.

MaxGUI.FLTKMaxGUI v1.50 Release
> Merged in markcw's latest Fl_Help_View changes which include basic CSS support! :-)
> Updated FLTK 1.3.x library to revision 6980 (fixes a few Cocoa bugs).
> Added MacOS compilation support.
> Fixed filename_list.cxx compile error on Ubuntu 9.10.

MaxGUI.Localization v1.02 Release
> Fixed date ordinals so that entire term is a token.

MaxGUI.Win32MaxGUIEx v0.68 Release
> Suppressed hotkeys with modifiers from being passed to graphics contexts/active panels.
> Combined BitmapFromPixmap24 and BitmapFromPixmap32 into one function.
> Swapped out String-based hWnd TMap for more efficient TIntWrapper equivalent.
> Fixed HtmlViewCurrentUrl() and associated memory leak(s).
> Added hack to stop scroll-bars re-enabling when range is changed.
> Silenced system beep with 'Alt' hotkeys.

FLTK support on Mac appears to run fine, apart from Canvases being a bit yucky and the Mac Menus looking a bit confusing. FLTK MaxIDE on OS X seems to be working well, though, so hopefully it will be useful to a few people who use Mac OS X as their Dev machine, and eventually want to target Linux.

New builds of MaxIDE (and the corresponding source code) are also available from the 'Product Updates' page which have been linked against v1.36.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI 1.34 Released(Posted 2009-09-28)
Yep! After a collossal bug fixing and coding marathon, MaxGUI 1.34 is finally out the door, ready and waiting for you over at the 'Product Updates' page (under the 'Account' part of the site).

This is a MAJOR bug fix release, but also features a brand new MaxGUI feature: LOCALIZATION! :D

Edited from the docs:

MaxGUI.Localization is a simple yet powerful localization engine that you can use to localize your applications. Although the module is designed primarily for use with the MaxGUI toolkit, it is self-contained and so can be imported into other BlitzMax games and applications separately without the overhead of the rest of MaxGUI.

MaxGUI users should predominantly use the LocalizeGadget() function in MaxGUI.MaxGUI (instead of LocalizeString())
whenever applicable, to quickly and easily localize your application.

In short, this new module allows MaxGUI'ers to quickly and easily localize their applications for different languages. Make sure to hit "Rebuild Documentation" to build the docs for the new module. :-) There should hopefully be a multi-lingual test-build of MaxIDE available soon which demonstates this new functionality in action. Stay tuned.

For those that were put off by the 'Release Candidate' status of the interim MaxGUI v1.33RC1 release, this module also includes the new cross-platform ScrollPanel gadget which should provide a convenient way to extend the client-area on your forms with minimum effort.



Here's the usual run-down of some of the bugs fixed in each module (see also fixes listed for MaxGUI v1.33RC1):

MaxGUI.CocoaMaxGUI v1.45
> Fixed the CanvasView setAlpha unrecognized selector error.
> Added explicit removal of NSLinkAttributeName in NSSetStyle().
> Fixed NSScroller events.
> Swapped out deprecated float selectors for their double-precision counterparts.
> Disabled a few unwanted NSTextView features.
> Fixed progress bar NSState() crash.
> Disabling a panel should now grey out all of its children.
> Fixed a few issues concerning client areas and toolbars.
> Suppressed arrow keys EVENT_GADGETCHAR filter.
> Fixed group panel initial text setting.

MaxGUI.FLTKMaxGUI v1.48
> Added icon support to list boxes (http://www.fltk.org/str.php?L1739).
> Fixed another memory corruption bug concerning incorrectly casting toolbar Fl_Group to Fl_Panel.
> Fixed group panel label background so that it is 'transparent'.
> Implemented primitive software-based pixmap scaling for panels.
> Updated FLTK library to FLTK 1.3 rev. 6852.
> Disabled XDBE for Linux as it was sometimes causing black flickering on window resize.
> (Finally) found and fixed the memory corruption bug in Fl_Menu and plugged up a memory leak.
> Fixed textarea paste crash.
> Fixed UpdateWindowMenu() crash.
> Toolbars now push down the client area of the parent window.
> More work to improve handling of WINDOW_CLIENTCOORDS style.
> Hacked in 'xdg-get-user-path' for Flu_File_Chooser using Brucey's kindly donated BaH.Volumes code.
> Added user_data() node information to speed up treeviews and event generation.
> Added maximize() and restore() methods for Fl_AWindow.
> Fixed textfields with TEXTFIELD_PASSWORD style.
> Added hover effect for non-standard push-buttons and non-editable comboboxes.
> Reworked event handling to use extremely nice and tidy C++ template system - improves mouse/keyboard event generation.
> Fixed SelectedTreeViewNode() and EVENT_GADGETMENU on treeviews.
> Fixed textfield crash upon typing.

MaxGUI.Localization v1.00
> First release.

MaxGUI.MaxGUI v1.28
> A few documentation updates.
> Added constants for Leadwerks.

MaxGUI.ProxyGadgets v1.10
> Added SCROLLPANEL_HNEVER and SCROLLPANEL_VNEVER constants.

MaxGUI.Win32MaxGUIEx v0.66
> Fixed a textarea redraw problem, and added hack to fix cursor sometimes getting stuck on 'busy' when highlighting.
> Improved handling of 'Alt' and firing of events when keys are hotkeys.
> Optimized brush transparency code by caching brushes.
> HotKey fix for modifiers.
> Disabling a panel should now grey out all of its children.
> State() is now no longer recursive.
> Toolbars now push down the client area of the parent window.
> Tidying up of some of the window sizing code.
> Attempt to fix some drawing slow-downs/bugs.
> Made use of TGadget's style field instead of additional _style.
> Fixed RequestFont() bug - thanks klepto2!


The final thing I'd like to remind users about is the following changes that were discussed and implemented following respective majority decisions that they should go ahead. I feel these make the toolkit easier to use and the behaviour clearer, but also should mean that people don't get as many suprises when switching between platforms. These were:

1. Toolbar Positioning & Client Area (toolbar now added outside client-area on all platforms)
2. Should GadgetHidden() be recursive? (now has optional recurse parameter)
3. TextField Focus Loss (thread includes solution to mimic old behaviour)

Anyone noticing, since updating, that their window gadgets have shifted down slightly from their original positions should visit link #1 above. To recap, this is because toolbars are now added outside the client-area of windows on Windows and Linux, to match Mac OS X MaxGUI behaviour. You may need to reset your gadget positioning to take this into account the first time you run your app after upgrading.

Okey-dokey - that should be everything. Have fun and be sure to post to let me know how you get on. :-)

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

MaxGUI v1.33 Release Candidate 1(Posted 2009-09-28)
MaxGUI v1.33 Release Candidate 1 is now available.

Apart from the new cross-platform Scroll Panel gadget (yes people - MaxGUI finally has a scroll panel! :D), this is predominantly a bug-fix release as there were a tonne of fixes building up at my end. Below are the ones I noted, but I'm sure there were quite a few other small fixes I have forgotten about.

MaxGUI.MaxGUI
> Added GetWidth() etc. methods to TGadget for TProxyGadget.
> Added recursive source.source handling to PostGuiEvent/QueueGuiEvent.
> Added some internal event queueing functions.
> Tweaked some docs.

MaxGUI.CocoaMaxGUI
> Fixed NSSetPointer through disableCursorRects calls.
> Fixed HTMLView navigation bugs, and added support for both style constants.
> Finished treeview icon support.
> Fixed listview/treeview scrollbar problems.
> Added recursive owner.source handling to EmitCocoaOSEvent.
> PanelViews now extend and use NSBox.
> Added separator for statusbar.
> Attempt to fix PANEL_SUNKENFRAME offset issues.
> LABEL_SUNKENFRAME alignment fix.
> Added TCocoaGuiFont and corresponding Delete() method.
> Attempt to fix button fonts and colors.
> Fixed ClearGadgetItems() for tabber.
> Fixed exception when freeing tabbers.

MaxGUI.FLTKMaxGUI
> Fixed stray EVENT_GADGETACTION event when enter was pressed in a textfield.
> Fixed push buttons losing background colors on mouse hover.
> Implemented new trial OnMouse() and OnKey() system for generating mouse and key events, that facilitates SetSensitivity().
> Added Flmm_Tabs so that, when too many tabs are added to a tabber, a drop-down menu is shown instead of squashing them up.
> Added degac's label text fix.
> LABEL_FRAME border fix.
> Added toolbar separators.
> Fixed comboboxes losing selection after ModifyGadgetItem.
> Fixed RemoveGadgetItem on toolbars.

MaxGUI.ProxyGadgets
> Added a new TScrollPanel gadget.
> Tweaked THyperlinkGadget.eventHandler() so that it works consistently on all platforms.

MaxGUI.Win32MaxGUIEx
> Fixed toolbar ListItemState() and loss of state on ModifyGadgetItem.
> Fixed recursive PopupWindowMenu event extra bug when using hooks.
> Standard checkboxes/radio-buttons now support text colors, but do so by losing theming.
> Fixed hotkey focus issues for window menus.
> Added recursive owner.source handling to SystemEmitOSEvent.


Please let me know how you guys get on, particularly if you experience any problems. There are a few bug reports outstanding in the MaxGUI Bug Reports forum, but I'm only one person and I didn't want to delay this batch of fixes while I scratch my head on the few remaining issues. We're also still waiting for the FLTK devs to reply to the bug reports posted with the toolkit.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

Bug Squashing Release(Posted 2008-07-13)
After the big BlitzMax v1.30 release, I'd like to announce some more MaxGUI improvements.

First off, general maintenance:

MaxGUI.MaxGUI
> Changed LookupGuiFont()'s Linux default for GUIFONT_SYSTEM to FreeSansSerif.

MaxGUI.CocoaMaxGUI
> Fixed GadgetPrint() so that entire page is printed for HTMLViews, instead of just the visible region.


Next, I took some time to sort out some Windows 9X bugs.

MaxGUI.Win32MaxGUI
> System event hooks have now been fixed which allow BlitzMax timers to work alongside MaxGUI on Window 9X.

MaxGUI.Win32MaxGUIEx
> Fixed infinite message loop on Windows 9X.

The latter of the two fixes now allows you to use the new MaxGUI.Win32MaxGUIEx driver on Windows 9X by replacing Import MaxGUI.Drivers with:

Import "-lunicows"
Import MaxGUI.Win32MaxGUIEx
...at the top of your code.

This will enable you to compile Unicode MaxGUI apps that should run on the legacy ANSI Windows 9X platforms as well as the new Unicode Windows 2000, XP and Vista OSs. If you intend to run your apps on Windows 9X, you will need to include either unicows.dll with the EXE or the end-user must have MSLU installed. As Windows 2000 upwards already support Unicode natively, they don't require any of these additional files.

Obviously, this isn't the default behaviour for the platform; Import MaxGUI.Drivers chooses to use the older ANSI MaxGUI.Win32MaxGUI as the default. This is because the MSLU isn't perfect and does suffer from a few bugs or inconsistencies - it isn't flawless, but it may be useful to a few brave MaxGUI coders!!! It should be business as usual unless you are wanting to code multi-language apps for the older platforms.

Finally, there have been some much-needed attention for the official Linux MaxGUI driver:

MaxGUI.FLTKMaxGUI
> Fixed FL timers and therefore tooltips.
> EventExtra() now contains the selected item's extra object for tabbers.
> All right-clicks are ignored internally in FL_TEXTEDITORs.
> Added SetMaxWindowSize() support.
> Found and fixed glibc error originating from flRedirectView() in fltkglue.cpp.
> Swapped Fl_Select_Browser with Fl_Hold_Browser so that highlight remains after mouse button is released.
> Added EVENT_GADGETMENU for treeviews.
> Hacked Fl_X.cxx to fix file drag n' drop support.
> Added alpha-support for pixmaps on panels.
> Added tab text alignment in the status bar similar to Win32, GTK and Cocoa.
> Added support for windows without the WINDOW_TITLEBAR flag.
> Added support for the TEXTFORMAT_BOLD and TEXTFORMAT_ITALIC flags in Text Areas.
> Fixed EVENT_GADGETACTION on text-areas/text-fields.
> Fixed gadget filter key codes, so that the tab key sends the correct data.
> Fixed (somewhat) active panel events and attempted to eliminate double firing.
> Imporoved toolbars.
> Switched to GTK+ FLTK theme, and removed black tabs and yellow highlighting.
> Fixed a glibc error in Fl_Text_Display.cxx.
> Fixed Fl_HelpView image freeing crash with broken_image substitute.
> Changed Fl_Panel so that it uses FL_NO_BOX, and fixed XGetImage crash in Fl_x.cxx.
> Swapped out source code for FLTK 1.1.9.

All available right-now from the MaxGUI SVN. ;-)

Important Notice: It is advised that you remove your BlitzMax/mod/maxgui.mod/fltkmaxgui.mod folder before performing an "SVN Update" to avoid errors when checking out this latest release. This is a result of the upgrade to FLTK 1.1.9; everything should be back to normal in the next commit. If you don't have the folder already, then obviously, you won't need to. :-P

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

Tiny Bug Fixes(Posted 2008-06-15)
A short entry announcing two updates to MaxGUI.Win32MaxGUIEx and MaxGUI.MaxGUI, which have now been committed to SVN.

They address missing tabber events and missing TProxyGadget methods respectively.

Finally, the behaviour of MaxGUI.Drivers has changed slightly - on Windows, both the new MaxGUI.Win32MaxGUIEx and MaxGUI.Win32MaxGUI drivers will be imported, and the most appropriate driver will be chosen depending upon the OS and the presence of a manifest file. This will mean slightly larger EXE files, but allows for compiled programs to work on both Windows 9X and Windows XP/Vista and support the best the OS has to offer.

If you know that your program will only be running on Windows XP/Vista PCs, and want to reduce the filesize, simply import MaxGUI.Win32MaxGUIEx directly, instead of MaxGUI.Drivers.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

New Set of MaxGUI Updates(Posted 2008-06-09)
It's been a long time coming, but finally we've got another set of updates through the door, available via SVN. In no particular order:


1) New SetGadgetExtra()/GadgetExtra() functions to set/retrieve a gadget specific reference to any object you like.

This was discussed here.


2) New LookupGuiFont() function to retrieve a platform specific font based on the attributes you provide. See the docs for more info.

The following font "types" are currently available:
> GUIFONT_SYSTEM
> GUIFONT_SERIF
> GUIFONT_SANSSERIF
> GUIFONT_MONOSPACED
> GUIFONT_SCRIPT


3) Other Font Stuff

The size parameter in LoadGuiFont() and the value returned by FontSize() is now a Double as oppose to an integer. Any driver can now support more precise font size loading (currently Windows and Cocoa atm), otherwise the size is rounded to the nearest integer.

This shouldn't require any changes to be made to old code as BlitzMax is quite happy converting from Int to Double by itself.

Finally, there is a new strikethrough parameter (again, for those platforms that support it) at the end of LoadGuiFont() to match the internal FONT_STRIKETHROUGH style.

Oh, and in case you miss it in the bug fixes below, the Windows modules should now support the loading of Symbol based fonts (such as Wingdings/Symbol/Webdings etc.).


4) Push-Style Radio/Checkbox Buttons

You can now combine either BUTTON_RADIO or BUTTON_CHECKBOX with BUTTON_PUSH to create a push-style button that behaves like either a radio button or checkbox. This means that they will either toggle, or only allow you to select a single button from the parent.




5) Renamed ExtractIconPixmapFromStrip() to PixmapFromIconStrip()

This was discussed here.


6) As usual, there are quite a few bug-fixes:

MaxGUI.CocoaMaxGUI (v1.39):
> Added hack so that treeviews now have a horizontal scrollbar (if required).
> Changed child window behaviour so that they are more like child windows in MaxGUI.Win32MaxGUIEx.
> Added several Window checks to determine if it is hidden before proceeding.
> Fixed textcolor memory access error in NSFreeGadget.
> Fixed NSGetText() for HTMLViews and NodeItems.
> Added new BUTTON_PUSH support for radio/checkboxes.
> Fixed FontStyle() so that it now returns values.
> Added LibraryFont() method to TCocoaMaxGUIDriver.


MaxGUI.FLTKMaxGUI (v1.23):
> Removed Fl_Text_Editor.cxx right mouse-button handling that was clearing selection.
> Added new BUTTON_PUSH support for radio/checkboxes.


MaxGUI.MaxGUI (v1.19):
> Added new BUTTON_PUSH flag support.
> Added new GadgetExtra()/SetGadgetExtra() functions.
> Renamed the infamous ExtractIconPixmapFromStrip() function to PixmapFromIconStrip().
> LoadGuiFont now accepts a Double for the font size so that some platforms are able to handle non-integer font sizes.
> Added new LookupGuiFont() function, new strikethough parameter for LoadGuiFont, and copied font constants to maxgui.h.
> Moved HasDescendant() method from Win32MaxGUIEx driver as it is probably more useful here.


MaxGUI.ProxyGadgets (v1.01):
> Filter EVENT_MOUSEDOWN to avoid infinite loop on Windows.
> Updated THyperlinkGadget to use LookupGuiFont().
> Inherited MaxGUI.Win32MaxGUI's label SS_NOTIFY fix.


MaxGUI.Win32MaxGUI (v1.39):
> Fixed more window hiding bugs with windows whose children have focus.
> Added new BUTTON_PUSH support for radio/checkboxes.
> Added FONT_STRIKETHROUGH support, symbol based font loading (e.g. Wingdings) and fixed tiny font memory leak.
> Fixed SetGadgetSensitivity() on labels with SS_NOTIFY flag and problem with buttons and SetGadgetSensitivity().


MaxGUI.Win32MaxGUIEx (v0.52):
> Fixed font-size rounding error.
> Fixed more window hiding bugs with windows whose children have focus.
> Fixed toolbar accepting files as drop-target without window having WINDOW_ACCEPTFILES flag.
> Fixed SetGadgetSensitivity() mouse-click events where possible by implementing new system mouse hook.
> Further improved the reliability of TWindowsFont.GetDefault().
> Added new BUTTON_PUSH support for radio/checkboxes.
> Added symbol based font loading (e.g. Wingdings) and fixed tiny font memory leak.
> Added LibraryFont() method to TWindowsGUIDriver.
> Implemented quick-hack so that editable comboboxes are redrawn after the window has been moved.


7) MaxIDE Fixes

The Official MaxIDE has also received a lot of attention in the last update. For those of you who haven't already has a sneak peek, it features a new splashscreen:



' maxide.bmx: v128
' tweaked debugger handling for improved stability/performance
' added new StripWhitespace() method to TSearchRequester for showing shorter tooltips
' inherited window hiding focus fix from the Windows MaxGUI driver
' added call to RefreshToolbar() immediately after a process has completed and after continuing program execution
' added Ctrl+P keyboard shortcut for printing
' fixed text-area background color picker not responding when clicked
' new font options for navbar/output (now reads settings from the "navi_style" line in INI file to bump user settings)
' whoops, tool windows are *definitely* now children to the main window

Make sure that you have check(ed)out out the latest versions of the MaxGUI modules before attempting to compile it yourself, though. ;-)

---

OK, that's your lot. ;-) As always, special thanks goes to my MaxGUI BETA testing duo (Grisu + Mark Tiffany), and also the BRL Dev Team.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

HTMLView Positioning(Posted 2008-05-18)
The fix for HTMLView positioning in MaxGUI.Win32MaxGUIEx has been committed. Some more fixes should be available within about a week or so.

Edit: It appears I accidentally left a DebugStop call in maxgui.mod/win32maxguiex.mod/win32maxguiex.bmx which can be safely commented out until a new version is committed to SVN.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

Minor Update(Posted 2008-05-14)
Some more bug fixes have been comitted to SVN, particularly concerning pixmap memory leaks in MaxGUI.Win32MaxGUIEx. There is also a fix for the new WINDOW_CENTER constant so that it should position the window in the middle of the primary monitor for those who have dual-monitor set-ups.

Finally there is a new GadgetClass() command for returning an integer value that represents the class of gadget a pointer refers to. It is supported on all official MaxGUI Platforms so don't forget to rebuild the docs as well as the modules when you check it out.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

Second Set of Updates (Archived)(Posted 2008-04-27)
Just announcing a few more tweaks/improvements to the MaxGUI modules that have just been committed to SVN:

---

1) New SetGadgetSensitivity()/GadgetSensitivity() Functions

This new function should allow you to sensitize almost any positionable MaxGUI gadget to mouse/key events similar to active panels.

Supported drivers:
MaxGUI.Win32MaxGUI, MaxGUI.Win32MaxGUIEx, MaxGUI.CocoaMaxGUI



2) New CHECK_INDETERMINATE State for Checkboxes

Checkboxes are now able to have an indeterminate check, useful for showing when a checkbox state isn't the same for all values concerned. It looks a bit like this:



Note, this state can only be set programatically, using SetButtonState(). When clicked, the checkbox will resume to having two states again.

Supported drivers:
MaxGUI.Win32MaxGUI, MaxGUI.Win32MaxGUIEx, MaxGUI.CocoaMaxGUI



3) New Proxy Gadgets Module

This new module is designed to house any future composite gadgets that wrap around the standard MaxGUI controls, providing additional functionality out of the box. At the moment, there is only a hyperlink gadget, but even so, I'd imagine this should be useful to a fair few people.

To access these gadgets, you will have to add...

Import MaxGUI.ProxyGadgets
...to the top of your source files in addition to the MaxGUI.Drivers module.


4) Added WINDOW_CENTER Hack to CreateWindow()

Added an additional flag that ignores the x,y parameters when calling CreateWindow(), and attempts to position the gadget in the center of the screen. I'd be interested to see if this works as expected on multi-monitor set-ups, so please let me know.


5) More Bug Fixes

In addition to the above enhancements, there have been a few bug fixes:

MaxGUI.CocoaMaxGUI:
> Fixed Push, OK and Cancel buttons returning alternate values from ButtonState() - now returns 0.
> Disabled text-areas should no longer allow you to select text.
> Fixed limited tabstops in textareas (now uses the setDefaultTabInterval selector).
> Added label, button and text-field text colors.
> Added button, text-field and window background colors.

MaxGUI.FLTKMaxGUI:
> Removed pixmap field from TFLTKIconStrip to avoid errors when calling ExtractPixmapFromIconStrip().

MaxGUI.Win32MaxGUI:
> Added support for the PANELPIXMAP_FIT2 constant.

MaxGUI.Win32MaxGUIEx:
> Fixed button tooltips disappearing on Windows XP.
> Fixed the changing of gadget tooltips using SetGadgetTooltip.

---

There have also been a few tweaks to the docs (nothing major) and to the source of MaxIDE, Docmods and MakeDocs.

Enjoy!

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

Win32MaxGUIEx Fixes (Archived)(Posted 2008-04-27)
MaxGUI.Win32MaxGUIEx

> Plugged Mark T's treeview memory leak.
> GADGETPIXMAP_ICONNOTEXT on Windows XP should now work.
> Separators should now be a suitable separator thickness (4 pixels) and can be either horizontal or vertical.
> Added toggle item support.
> Events are suppressed that are not generated directly by the user.
> Fixed GadgetText() on non-editable combo-boxes.
> More patches to fix certain controls' allergic reaction to WS_EX_COMPOSITED (double-buffered drawing).

Thanks to jsp and Mark T for the bug reports!

I would like to emphasize that MaxGUI.Win32MaxGUIEx is designed/tested to be used with Windows XP+ and with a manifest file, so choosing to remove the manifest file may cause undesired effects.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

CocoaMaxGUI and Win32MaxGUIEx Fixes (Archived)(Posted 2008-04-27)
Fixes have been committed to SVN concerning...

MaxGUI.CocoaMaxGUI

> Added missing quote to ModuleInfo declarations in cocoamaxgui.bmx.
> Added a hack to at least stop MaxGUI apps crashing when calling GadgetDisabled() or GadgetHidden() on textareas.

MaxGUI.Win32MaxGUIEx

> Fix for tabber client redraw problem on Windows XP.


---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

CocoaMaxGUI Bug Fixes (Archived)(Posted 2008-04-27)
Update for OS X MaxGUI users:

Another new version of MaxGUI.CocoaMaxGUI has been committed (v1.36) which should address the following issues:

> Added the finishing touches to Brucey's tool-window code.
> Fixed tabbers not sending item extra object with events.
> Swapped out tabber icon code (so that it now works).

Tool windows on OS X are looking really good, and now float like they should do (thanks Brucey) - see the second screenshot in the first post to get a sneak peek!

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04

First Set of Updates (Archived)(Posted 2008-04-27)
Copied from this thread: MaxGUI Updates & Enhancements

---

1) MaxGUI.MaxGUI and MaxGUI.Win32MaxGUIEx (previously known as Axe.Win32MaxGUI)

As many of you will be aware, I have been helping Skid with a new Windows implementation for MaxGUI which is now stable enough to replace the old module. As there are quite a few things to talk about, I have written a short document explaining a few things, which you can view here: MaxGUI Modules. In addition, we've also managed to get the MaxGUI Bug Reports forum down to less than a page of bugs (which is quite an achievement in itself).

Important Note: The new version of MaxGUI.Win32MaxGUIEx has been written to be used with Unicode strings and as such, may not be supported on the older ANSI Windows 9X/Me platforms.


2) SetGadgetPixmap()

A new function has been added to the latest version of MaxGUI that is a more generic form of SetPanelPixmap(), except that it now has two additional flags:

GADGETPIXMAP_ICON - Sets a button/menu's icon. For menus, the recommended icon size is 12×12 otherwise they may be cropped before being set.
GADGETPIXMAP_NOTEXT - To be used in conjunction with GADGETPIXMAP_ICON to remove text from a button when an image is shown.

After setting icons for a menu, it is recommended that you call UpdateWindowMenu() to ensure the icons are visible.



To help with loading and setting large volumes of icons, another new function has been added to MaxGUI, aptly named PixmapFromIconStrip(), which, surprisingly, allows you to extract a specific icon from a previously loaded icon-strip.

To remove icons from a button/menu, you should be able to pass Null as the pixmap when calling the function.


3) SetGadgetTooltip()

This function should set a non item-based gadget tooltip, e.g. on labels, buttons, text-fields.


4) SetMaxWindowSize()

Guess what this should do? :P


5) New PANELPIXMAP_FIT2 Style

Another panel pixmap stretch mode which is similar to PANELPIXMAP_FIT except it isn't afraid of clipping to get the best fit.


6) Cocoa Bug Fixes

The following bugs should hopefully be fixed in this latest release:

> Gadget font support for Buttons, Listboxes, Treeviews and Comboboxes (Thanks Brucey)
> Koriolis's fix for read-only text-areas crash.
> Textless popup menus fix.
> Better support for GadgetDisabled()
> Added hack to push buttons so that they can be taller/smaller.

Edit:
> Added the finishing touches to Brucey's tool-window code.
> Fixed tabbers not sending item extra object with events.
> Swapped out tabber icon code (so that it now works).
> Fixed GadgetText() for buttons, menus and tree-nodes.



---

Currently test implementations have been coded for both MaxGUI.Win32MaxGUIEx and MaxGUI.CocoaMaxGUI and hopefully we'll be able to get Brucey's BaH.GTKMaxGUI module to work with the new functions too. These functions will fail silently if they haven't been implemented, so there should be little risk in using these in your cross-platform application.

---
BlitzMax v1.41 with latest MaxGUI
Running on Mac OS X 10.6, Windows 7 x64 and Ubuntu 10.04