MaxGUI v1.36 Released

BlitzMax Forums/MaxGUI Module/MaxGUI v1.36 Released

SebHoll(Posted 2009) [#1]
Hi Guys,

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.

Hope everyone had a nice Christmas break, and happy new year for tomorrow!

P.S. If Snow Leopard users could post to let me know whether the modules rebuild properly after upgrading, that would be awesome. There's a compiler directive in the FLTKMaxGUI module which works for me on 10.5, but might need altering slightly for a newer version of XCode/GCC.


SebHoll(Posted 2009) [#2]
@d-bug: TIntWrapper has been made Public again in this release.


d-bug(Posted 2009) [#3]
Thank you for this update! Key and Mouse events are working like charme and the TIntWrapper vs Private thingy saved my day. :>

FLTKMaxGUI compiled without problems here. (Snow Leopard 10.6.2).


SebHoll(Posted 2009) [#4]
Thank you for this update! Key and Mouse events are working like charme and the TIntWrapper vs Private thingy saved my day. :>

FLTKMaxGUI compiled without problems here. (Snow Leopard 10.6.2).

Awesome! Hopefully this release is more promising than the flop that was v1.35.


Grisu(Posted 2010) [#5]
Thanks for the update Seb!


degac(Posted 2010) [#6]
Thanks for the release.

Just for curiosity, the MaxGUI 'future' with is now defined or not? Some news, something planned?


GaryV(Posted 2010) [#7]
Thank you, Seb.


Grisu(Posted 2010) [#8]
@Seb: Did you make deeper changes to the win32 event handler in 1.36?

Seems like the new release has broken my tray icon functions (i.e. put an app to system tray and bring it back on mouseclick).

I think this part is broken:


Any idea? Might have to do with the active panel changes as well?!

Will try to bring up a full example later.


SebHoll(Posted 2010) [#9]
@Seb: Did you make deeper changes to the win32 event handler in 1.36?

Yep, this was an attempt to speed up the event processing. Change...
Local owner:TGadget = TWindowsGadget(TWindowsGUIDriver.GadgetMap.ValueForKey(String(hwnd)))
...to...
Local owner:TGadget = TWindowsGUIDriver.GadgetFromHwnd(hwnd)
...and you should be good to go.

Obviously post back if you are still experiencing problems. :-)


Grisu(Posted 2010) [#10]
Phew, that did it. Thanks! :)


Tani(Posted 2010) [#11]
@Seb or anyone that knows - Since that system tray code got brought up...

How to make use of this part of the code? :

nid.Icon=LoadIconW(GetModuleHandleW(Null),Short Ptr(101))

(full code found here if needed: http://www.blitzbasic.com/Community/posts.php?topic=82310#927775 )

...to load an icon?

I've been messing around with it for a while, replacing Null with a string I'm able to get an icon at least, but is some standard Windows icon which I don't really want... So to make a long story short I just don't really get how I can use that function to use an icon of my choice. ^^;

Yes, I'm a lil noobish.. xD But I'll be very grateful for any explanation, thank you. ^^

Oh, and keep up the good work with MaxGUI! I just recently decided to give it another chance, as the language is starting to look rather promising now. ^^


Goober(Posted 2010) [#12]
There was a thread about a memory leak of one of your functions.

http://www.blitzmax.com/Community/posts.php?topic=86916#1000625

It was just a few lines to fix it up, hope this can be included for the next release.


SebHoll(Posted 2010) [#13]
I've been messing around with it for a while, replacing Null with a string I'm able to get an icon at least, but is some standard Windows icon which I don't really want... So to make a long story short I just don't really get how I can use that function to use an icon of my choice. ^^;

Have you tried Brucey's BaH.FreeImage module, which can load pretty much any image format under the sun? If I were you, that would be the route I would take as it should be cross-platform and also should slipstream nicely into the standard LoadPixmap() LoadImage() function calls.

Oh, and keep up the good work with MaxGUI! I just recently decided to give it another chance, as the language is starting to look rather promising now. ^^

Music to my ears. Very nice of you to say. Was there any particular change or feature that made you take another look at MaxGUI?

There was a thread about a memory leak of one of your functions.

Pub.LibJpeg falls under the std. BlitzMax module set, which is Mark's domain. I just do the MaxGUI releases.


Tani(Posted 2010) [#14]
Have you tried Brucey's BaH.FreeImage module, which can load pretty much any image format under the sun? If I were you, that would be the route I would take as it should be cross-platform and also should slipstream nicely into the standard LoadPixmap() LoadImage() function calls.

Unfortanly the image format isn't the problem. I actually got a solution that let me add the image/icon of my choice, but it doesn't load for example an incbin'ed image/icon which I where hoping your method would solve. x3 It's not a big deal ofc, just a lil detail. And I just started looking at Brucey's solutions some days ago. :3

The system tray code I use can be found in my post -> here <- if anyone should have the urge to help me find an incbin solution; would be nice. x3

Music to my ears. Very nice of you to say. Was there any particular change or feature that made you take another look at MaxGUI?

All the fixes and additional features help, but of course, being able to not get frustrated over basic things help greatly! I mean, the first time I tried MaxGUI I couldn't even find a single solution anywhere on how to have a non-resizable window that still retained it's minimize button! And when you do know how to program in Visual Basic and been a little spoiled with that language then it goes fast to give up and go back to that.

Many such things still not integrated in the actual BM/MGUI language like that example, but at least there's acceptable solutions available for that on the forums or in the code archive now.

And I will always keep coming back to BM as a programming language, it appeals a lot to me; maybe because of the fact that Blitz2D was the language that got me into programming, but being biased or not, compared to many languages I tried BlitzMax in general is very clean and tidy to code, don't require much work and is easy to understand. I mostly program for fun for myself and my partner so these are important factors for me. I also like that the language doesn't feel so fragmented either as some (C++ comes to mind), you can get a long way with BM without any additional modules.

Both BlitzMax itself and MaxGUI got ways to go still, but things definitively have progressed well this last year imo. ^^ And what I read in the MaxGUI roadmap thread sounds promising as well, I'll try to finish my current project and then give my suggestions there too based on the experience I make from that (should sticky that thread btw).


SebHoll(Posted 2010) [#15]
Unfortanly the image format isn't the problem. I actually got a solution that let me add the image/icon of my choice, but it doesn't load for example an incbin'ed image/icon which I where hoping your method would solve. x3 It's not a big deal ofc, just a lil detail. And I just started looking at Brucey's solutions some days ago. :3

For fear of going off-topic, you might like to start a new thread? But while I'm here, do you actually mean 'IncBin'd icons or do you mean icons embedded as an executable resource to Win32 EXE? Unfortunately in BlitzMax, these are two distinct things. Retrieving icons that are IncBin'd from other apps, will be pretty impossible without reading the contents of the binary EXEcutable yourself. The latter, on the other hand, should be possible and is what I assume you are meaning.