MaxGUI Enhancement Pack or something?

BlitzMax Forums/MaxGUI Module/MaxGUI Enhancement Pack or something?

SebHoll(Posted 2011) [#1]
Yo peeps!

Since MaxGUI went open-source, I've started a new full time job and as such I've had little motivation to code out of hours like I used to do in my earlier youth. It's been a while since I've been around these parts as I've moved on from BMax development myself but I've noticed that a lot of people are still pining for various different enhancements/support for MaxGUI.

I've yet to run this by Skid or anyone from BRL so I've no idea whether this is possible under the new open-source license agreement, but 'd be interested to see what the interest would be for me to provide, what would now be considered, third-party support? This may require forking the current repo to my own branch, or maybe even starting a MaxGUI 2, but I wanted to check whether there'd be sufficient interest first.

I guess this would predominantly take the form of continuing MaxGUI support much like I used to, and maybe implementing some of the long awaited features such as multi-column list support and/or things like composite improved drag n' drop support and new controls. But of course, I'd have to feel like it was worth my time.

So my questions to the MaxGUI community are:

a) Would this be something you would be interested in?
b) What would be the top 3 features you would want and how much would this be worth to you?
c) Any other thoughts/feelings on the matter?

With the release of Monkey I'm not sure what the future of MaxGUI would be and whether it is worth continuing to build on it. I'm just concerned that a lot of people still heavily rely on it and at the moment, I feel like its getting no attention.

Finally, as I said, I've not spoken to Skid/Mark at all about this yet, and as such it may not be kosha with them. I'm kinda just thinking out loud, so don't hold you breath.

SebHoll


degac(Posted 2011) [#2]
Hi

I will start from the bottom!


With the release of Monkey I'm not sure what the future of MaxGUI would be and whether it is worth continuing to build on it. I'm just concerned that a lot of people still heavily rely on it and at the moment, I feel like its getting no attention.



Considering that BlitzMax and Monkey are 2 different products for 2 different kinds of market I see a future for MaxGUI, Bmax and Monkey.
(Monkey is - at the moment and for the next future - too much game-oriented, while BlitzMax offers a better level of freedom, game, editor or applications (where MaxGUI is important).

So, leaving MaxGUI in the limbo (after releasing it as 'open-source') is not a big idea; every improvements is good.

I dont' know if it must be a '2.0' revision

I would like to see:
- grid and multicolumn gadget;
- autoalignment system;
- some internal field (bg, fg & alfa colours, text-title..) to allow changes on the fly (or retrieve information) without messing with all the os-drivers
- some OS-specific attributes (like new BUTTON_Styles (rounded) depending from the platform).
I would like to see (but I think this will require a lot of work) a new Linux version as FLTK starts to show its own limits: HTML doesnt' run Javascript...

In any case, MaxGUI is *magic* (I'm still using it as a fundamental aspect of BlitzMax)

Cheers


Grisu(Posted 2011) [#3]
Hi Seb!

Nice to see that you're alive.... :)

a) Yes

b)
- ListBox with multi-coloumns for all platforms
- Grid support
- A standard download-function for getting files over the internet
(Show speed/time left/size left etc)
- Tooltips for the treeview gadget items
- Mousewheel detection for the scrollbar gadget
- Bug Fixing
(...)

c) It's a great idea.

Grisu


rs22(Posted 2011) [#4]
a) Yes, definitely.

b) GDI support, drag and drop for all gadgets (within a tree, from a tree/list to a panel, and so on), multi-column list control. Another very, very welcome feature would be an enhanced alignment system that takes into account fonts, etc. I would also love to see proper dialog support. I would be willing to pay for an enhanced version of MaxGUI, though I'm not sure if that's what you're asking.

c) This is a fantastic idea, and I'm very pleased to see MaxGUI hasn't been completely abandoned.


Midimaster(Posted 2011) [#5]
a) yes

MaxGui is a fundamental element of BlitzMax. I prefer it, because its simplicity and stability. A lot of people trust in the future of MaxGui. And I want to thank you for this good product.

b)

3 wishes? ... here:

- continuity
- stability
- same functionallity on all three platforms

Keep the Status Quo

In the last weeks during my rhythm-trainer project ( http://www.blitzbasic.com/gallery/thumbs/2261.jpg) I recognized a lot of missing features in the MAC version. Talking to other people, they talked about "known issues" and showed me a way to workaround....

But I would prefer if all this improvements find a place in the original version. In case of upgrades this doesn't cause headaches...

I first would like to have implemented all current features really on all platforms. (of course if they supported by the OS)

Here only some issues I could not understand:

- Windows_Center of a big Window does not work on EEE-PC

- No optical difference at "Selected"-State in a icon-based Toolbar()-Gadget on MAC

- All Tabs painted together when first open a TABBER()-Gadget on MAC (picture= http://www.blitzforum.de/upload/file.php?id=10645)

- Problems with SetGadgetSensitifity() on a ComboBox()-Gadget

So... for me it would be more important to have a fast responding support in case of bugs and other "features", who publish a update within some days (or weks) ...
Like Brucey does with all his MODs. His service is the best reason for using his MODs also for new software projects

"Featurism"
I do not need a GUI blown up like WxGadgets. So I would carefully think about every new Gadget twice, if it is really necesarry, before adding it to MaxGui. With every new Gadget the problems in keeping up-to-date rise!



(sorry for my bad english)

Last edited 2011


skn3(Posted 2011) [#6]
I would be interested with this! Not sure the rate to pay, I'm guessing maximum £100? It depends on the level of future support and also what new features.

Wishlist:
-Complete low level access to os events for all gadgets.
-direct access to gadget painting with a driver for GDI/Core graphics/whatever Linux uses
-some new gadgets: multicolumn listbox, grid, iconbar, spinner, improved label
-clipboard access text and images
- a managedwebsite or repo for user built gadgets

Basically some building blocks so we can create some awesome gadgets and then a way for those gadgets to be archived so people don't have to repeat code say 1,2,3 years down the line!

The usefulness of blitzmax and maxgui is totally viable with monkey as most games need some form of editor!

Last edited 2011

Last edited 2011


Paul "Taiphoz"(Posted 2011) [#7]
All id like is a working gui open source gui builder.


shinkiro1(Posted 2011) [#8]
a) Yes :)
I keep coming back to MaxGUI all the time simply because it's easy and fast to get an app running in minutes.

b)
- Mainly bug fixes (e.g. Mac toolbar problem with toggled state)
- Access to lower level functionality so we can build our own gadgets from that (if that's possible)
- stability

c) I really appreciate your efforts in continuing MaxGUI. Thank you.


JoshK(Posted 2011) [#9]
a) Would this be something you would be interested in?
Yes!

b) What would be the top 3 features you would want and how much would this be worth to you?

-.NET-style Windows interface.

-Cross-platform drag and drop treeview with icons and checkboxes. We've talked about this, and I don't think it's possible without using .NET?

-Some kind of cross-platform property grid control:


-Drag and drop window layout:


-Multicolumn list boxes (there's a workaround with Windows for this already).

-Status bar fields and status bar progress indicator (for loading big files).

I'd pay $2000 for this.

c) Any other thoughts/feelings on the matter?
Colored gadgets, other than buttons (for color selectors) and panels, have been useless for me. I use to have dreams of customizing the color scheme with this, but I think that's kind of silly. It's extra complexity I think could be safely eliminated.

I don't care about Linux at this time, so support really matter to me. I am coding on Mac quite a lot these days, so I do want that to work the same.

I have a few proxy gadgets I can document, test, and will gladly donate.

You may want to write it in C and make it a library for use with any programming language. You'd make a fortune if you marketed it right. Think how many programmers can't make a decent GUI, or have trouble with Windows MFC, Objective-C, and wxWidgets.

Last edited 2011


shinkiro1(Posted 2011) [#10]
I have discovered that there is a bug tracker on the official maxgui page (but it's nearly empty). Maybe it would be better instead of splitting all bugs around the board to use the bug tracker. Also a feature requester there. Just saying.

EDIT:I have updated my Gui Builder -> http://blitzbasic.com/Community/posts.php?topic=93768#1101493

Last edited 2011


SebHoll(Posted 2011) [#11]
Hmmm... Thanks everyone for your comments. I'd be really keen to implement a multi-column listbox cross-platform and shouldn't think this would be too hard. I'd also be quite keen for looking again into drag 'n' drop treeviews. I'd also like to implement native scroll panels that work properly with mousewheels etc.

I've had a think about this and looked into the license details, and at present, I can't think of a model that would be fair on both the potential re-investors whilst complying with MaxGUI's new open-source nature. Yep, I could fork a private branch (I think), but this wouldn't be fair on the community or Mark or Skid for that matter, who so kindly donated it to public domain. .net support sounds like quite an interesting proposition (I'm working in WPF at the mo) but I'd have to write a completely new MaxGUI driver for it.

The best idea I've come up with so far is to maybe sell an ongoing support-based service. If I set up a private support forum where people can post queries and support tickets for MaxGUI and I'll handle them much like I used to over here at BB.com. Those buying into it would have the opportunity to post their own bug reports/feature requests and have immediate access to my latest revision in a private repository. Then, after testing, these changes would periodically be pushed back out to the official branch. This way, I think, everyone wins. :-)

The only problem I see with this is that all requests aren't equal and it would be at my discretion which ones get priority. That is unless we had some sort of tiered member system, but then this sounds like it's getting complicated.


SebHoll(Posted 2011) [#12]
Thoughts?


aonyn(Posted 2011) [#13]
Hi SebHoll,

This would be fantastic if you do this.
I have been wishing specifically for a multicolumn listbox in maxGui for some time now.

Thanks in advance.

regards,
Dave


skn3(Posted 2011) [#14]
Maybe you could get a wider poll of users. There has got to be a large number of people who are not frequenters on the forums. Perhaps some kind of news letter could be sent with the cooperation of blitz research! Depending on the number of responses you might be able to gauge options better.

I like the idea of a support package but as you suggest there is a strong possibility it could alienate people. Realistically what level of features could you take on board? How many people do you envisage participating in this ?


JoshK(Posted 2011) [#15]
I don't know the difference between .NET and WPF. When I say .NET, I just mean the silvery newer-looking UI some MS software uses, as opposed to plain MFC.


degac(Posted 2011) [#16]
@SebHoll

Do you have a plan?
What are the features you would like to implements?
Do you planned to make MaxGUI releases for all the OS-platforms at the same time, or you have other ideas?

It seems Zlib license allows you to sell 'your own version': of course you need to explain me why I would pay again for an update (I'm the devil advocate...).
Maybe you could setup something like this (just some ideas)

- small updates/fixes for current MaxGUI release: free
- new gadgets: to be paid
- annual fee to accessing updates?
- new gui-drivers (ie: GTK, .Net or whatever): to be paid

(*) marketing idea: MaxGUI should be 'bundled' with BlitzMax, and this features (multiplatform language+os-gui support) should be advertised: for every new purchase (referable to the MaxGUI feature, just add a text field in the product page...) a fee to 'MaxGUI maintainers' should be paid.
(**) please change the MaxGUI product page to something more fresh!

PS: I like the 'open-source' idea, but I must admit that in more than a year none made something useful or some updates for MaxGUI: on Sourceforge the only changes was the 'linux drop' for the MonkIDE.


Grisu(Posted 2011) [#17]
Not sure what the benefits of a ".net gui" would be?!

If this means the user has to install the net libary package )200 MB) in order to run my app I wouldn't waste my time on that. Plus this this is of no use for the rest of the platforms (Linux, Mac), right?

All that counts is that you get some payment for the time you spend on the GUI.


xlsior(Posted 2011) [#18]
I'd be really keen to implement a multi-column listbox cross-platform and shouldn't think this would be too hard.


that would be fantastic -- also, it could be really helpful if it'd support icons/images in multiple columns as well instead of only text.
(for e.g. thumbnails, checkboxes, etc.)


skidracer(Posted 2011) [#19]

Thoughts?



I would be considerate of the commitment you have to your full time job and how valuable your own time, what little you are lucky to have, before selling your services in lieu.

Purchasable enhancement packs / MG2 sound like a good way of making pocket money, you may find there are a few people in the crowd willing to invest in some development funding.

Last edited 2011

In regards to support, MaxIDE and Monk still require core MaxGUI module be significantly free of defects.

Last edited 2011


Chapman7(Posted 2011) [#20]
I think having the ability to use more than one toolbar would be useful. Being able to do things like drag, or have them auto-adjust with the window size. Just simply having more than one would be handy.


degac(Posted 2011) [#21]
I've made a sort-of 'extra' toolbar gadget, that mimics the original one and offers some new enhancements.

See http://www.graphio.net/?page_id=342 for more info (and other proxy-gadgets I've created - not all of my 'new' gadgets have a video or images, probably I will add)

Cheers


Zeke(Posted 2011) [#22]
- MDI window
- ReBar
- Multiple statusbar fields
- Multi column listbox

i have already purchased maxgui, and definitely will buy MaxGui 2 or what it will be to.


SebHoll(Posted 2011) [#23]
OK. Thanks for all the feedback. I'm going to look into this as soon as I'm back in the UK in a few weeks time.


shinkiro1(Posted 2011) [#24]
I don't know if this can be fixed but canvas drawing in a gui window is extremly slow compared to a max2d window. It like 10-30 times as slow (messured in fps). Any way to fix this?


skidracer(Posted 2011) [#25]
Woah, that's a pretty big problem / accusation.

Is that true with GL, DX7 and DX9?

Last edited 2011


shinkiro1(Posted 2011) [#26]
I have a quad core mac (latest model, 2.5 GhZ) and the events in the application are catched via a hook. Even when turning off the logic as soon as I hover over the canvas the fps drop down to ~100. When I am not over the canvas(with the mouse) the fps goes up to around 170.

I have tested this with the glcube demo which comes with BlitzMax. My results:

Drawing on canvas: 600-700 fps


Drawing in graphics mode: 4100 fps

You have to use an own GetFps() Function because mine is in a module.


I tried my app on windows. With GL it's absolutely unuseable without even drawing to the canvas. DX7 same as OpenGL. DX9 is useable if i lower the fps of the app to 30 fps. My windows machine is a duo core laptop (Intel 7500) with an NVidia 9300 Graphics Card.

I know that i don't need over 60 fps, but when even my newest mac is nearly struggling with a 960 x 640 canvas plus a few native gui controls (mainly buttons) there must be something wrong.


klepto2(Posted 2011) [#27]
The reason for this problem is the maximum resolution of the internal used timers. In windows it is eg a maximum resolution of 1 ms which means you can just create a Timer with values <= 1000 if you use higher values the timer will just not tick. (on the other OS it seems to be like this as well).

So change your CreateTimer(6000) to CreateTimer(1000) and it should at least run a around 1000fps.

Another possibility is to remove the timer at all and WaitEvent() as well and just use PollEvent() like here:




joasia36(Posted 2011) [#28]
please don't forget to make the TreeView multicolumn also. Maybe it's possible to subclass the TreeView form the ListView or vice versa?

Technically, the ListView is just a TreeView with disabled disclosure triangles and a slightly different datasource model.

What, if we could add Columns as kids to the xView-Gadget, and Items as kids to the Columns OR other Item-Objects?

I would pay €100 for an serious update.


Grisu(Posted 2011) [#29]
Seb, could you please add "LockListbox()" like functionality to the to-do-list as well? -> http://www.blitzbasic.com/Community/posts.php?topic=95566


jsp(Posted 2011) [#30]
Any support would be good! A paid MaxGui2 is quite ok for me.
I would like to see:
Better Drag & Drop where ever possible
A SetCursorPixmap() command to give the user feedback on what he is doing
Multicolumn Listbox is ok, but a GridGadget would be even better
Reparent of gadgets


joasia36(Posted 2011) [#31]
any news on this?


skn3(Posted 2011) [#32]
Ditto. Still interested in this in some form. I have had to fork maxgui to add in my own modifications. It would be good to get some of them official.


JoshK(Posted 2011) [#33]
So of all the requests, which do you think are possible and which are not supported by the operating systems to do? You have to take all our crazy requests and then tell us out of those what can actually be done.


NoOdle(Posted 2011) [#34]
Not sure if I'm too late..

a) yes please
b) Property grid
Drag and drop
c) full cross platform is a must!
I would also be willing to pay for this. Name the price :)


degac(Posted 2012) [#35]
Any news, decisions or thoughs?


daaan(Posted 2012) [#36]
*crickets*


degac(Posted 2012) [#37]
As I still (ab)use MaxGUI a lot for my work, I decided to make public some of my MaxGUI changes

DOWNLOAD

How to install:
1. copy your *own* MaxGUI folder from Mod to a safe place
2. delete MaxGUI folder
3. extract from zip my MaxGUI.Mod
4. build and rebuild documentation

Main difference:
1. You don't need to specify position and dimensions of a gadget (you can type CreateButton("Text")
2. There are some function to manage 'auto layout' on a window/panel.
3. AddGadgetItems to add in one single pass many items to a gadget (from a list, an array or a map)
4. EnableGadget/DisableGadget affects children

Please post comments and critics.
Enjoy.

ps: I dont' know what version of MaxGUI I've changed... I doubt it is the last one.