My New GUI Editor

BlitzMax Forums/BlitzMax Programming/My New GUI Editor

SebHoll(Posted 2006) [#1]
Hi Everyone,

I thought it was about time to tell the world about my first major BlitzMax project which seems to be coming into form nicely: Max'd GUI. (I know it's a bit of a dodgy name to have but I can't think of a better one) - BRL: please let me know if you have any issues to do with it being called Max'd GUI and I'll change it.

In short, Max'd GUI is a visual GUI editor for BlitzMax (like GUIde) created using BlitzMax (so it should be cross-platform). I've done a complete introduction here, so let me know what you think.

(Click for More Information)

Features already in Max'd GUI:

> Cross Platform - I don't have access to a Mac yet to compile on but I haven't used any Non BlitzMax commands so all should be well.
> Fully customizable gadget names, text, size, position, flags
> Code can be exported into BMX format at the click of a button, and then compiled or opened into your editor at your discretion. Code is SuperStrict compliant.
> Projects can be saved and loaded from/to Max'd GUI.
> Includes a full item editor to add items to combo boxes and listboxes
> Flags can be set using check boxes and radio buttons.

Because of the long amount of time it has taken me to think and develop all ideas and code (many late nights), my intention is for it to be a commercial project.

As such, any good commerical project should have its target market in mind and my target market is you (well those who have Max GUI and BlitzMax anyways). Have a flick through the introduction and let me know of any ideas, comments and additions you want added to the project: Tell me what you like and what you don't like. I know it's hard to judge from screenies but please try your best.

Would any of you be interested in purchasing such a package?

Thanks for the comments


Seb


LarsG(Posted 2006) [#2]
this is looking very good, Seb..
I would probably pay some money for it, if it shows to be of excellent standard, and it is cross platform..
However, I don't think I'd pay any large sum for it though, seeing as GUIde is now free, and I believe there's also another GUI editor in the works..

but, as I said, if it's cheap, and if it's really good, then I might buy it..


Regular K(Posted 2006) [#3]
From what I can see in those (rather small) screenshots and your description, this would be great !!!!!

I hope you dont sell it cause im a cheap skate :P

Can I drag the gadgets around on the window (and rescale, etc) or do I have to use the buttons on the left panel?


SebHoll(Posted 2006) [#4]
Hi Everyone,

Thanks for your comments so far...


LarsG:
Thanks - one of the major advantages Max'd GUI has over other GUI editors is that it is cross-platform so I am going to get it compiled on a Mac/Linux ASAP so I know it works (absolutely no reason why it shouldn't though). :P


Regular K:
Yes, you can drag the gadgets around on the window using the mouse, but you can also use the keyboard keys (W,A,S,D) and the buttons on the panel. It's up to you depending on what you are doing. Resizing is slightly different, you can't (as yet) resize on the window directly. You have to either use the keyboard ( + or - / [ or ] ) to increase/decrease the width/height or the arrow panel on the left.


Keep the comments coming,


Seb


LarsG(Posted 2006) [#5]
can we get a demo which can show all the stuff, but perhaps be crippled in the way that it can't save and load projects perhaps?

I would like to test it.. :)


SebHoll(Posted 2006) [#6]
LarsG:
Thanks for the suggestion: I need to finish off a few things and sort a few minor bugs out before I feel that I can release a demo, but I almost certainly will do as soon as they are done.



SebHoll(Posted 2006) [#7]
Nobody else with any comments?


z80jim(Posted 2006) [#8]
I think it looks great also.

I would definately be interested in downloading a demo version just to see how it feels etc.

For a particular game I am working on I ended up writing a "crude" GUI editor. I would probably be interested in paying a shareware type fee for a more full-featured editor.

How does the GUI interface with your own application? Does it just create BMax code that you put in your own app and then you use normal MaxGUI calls to interact with the window?

For my own GUI Editor I had a new GUIWindow type that you could use to load and execute a window. This type also had it's own functions to set and read control information. This kind of created a simplified GUI wrapper around the BMAX stuff.


SebHoll(Posted 2006) [#9]
z80jim:

"Does it just create BMax code that you put in your own app and then you use normal MaxGUI calls to interact with the window?"


That's exactly what it does... You export the window as a set of CreateGadget() commands (using native MaxGUI UIs) which you can interact with using events triggered by them, e.g. EVENT_GADGETACTION, EVENT_GADGETSELECT.

For example, I have actually used Max'd GUI to develop some of the windows within it. The Add Item window was made purely using Max'd GUI. Below is the code outputted from Max'd GUI:

Obviously, the formatting and intracacies will be improved before release, but just to give you a flavour of what you get when you hit "Export!". There is an optional preference, that you can select if you want to automatically add the default GUI framework commands at the top of the export (as shown above).


Pit-le-rouge(Posted 2006) [#10]
HI Seb.

Is it based on GUIde code ?


SebHoll(Posted 2006) [#11]
Nope - I have never seen the GUIde code (and for some reason I can't get GUIde to work on my computer), but I've been through the manual looking for the best bits and the things that are missing. I need to sort out the erratic panel order behaviour (or find a way around it for release).


LESTROSO(Posted 2006) [#12]
Hy seb!!!!

When it will be the mac version???? i need it as soon as possible......thank you in advance.......... Very good job......


LESTROSO


CS_TBL(Posted 2006) [#13]
I dunno, it'll prolly make a good GUI editor for those who require a GUI editor. I for one am not not sure about all these GUI-editors in the first place. Somehow I don't feel this is how proper apps are being made. One-shot apps perhaps, apps that don't grow too big.. but for large apps otoh I'd usually say a large part of a GUI (if not all) can or should be dynamically created based on whether or not you're using a related component.

It's a different way of thinking. I can only speak for myself ofcourse, but with GUI-builders I usually get the impression one starts with a GUI concept to later fill in the code, while I prefer to start with a functionality concept, no GUI whatsoever. Usually, an app is made out of various smaller parts and each part should have its own private GUI rather than tuning in on a globally designed GUI. Because a private GUI should imho be part of each individual component, you'll get to the point of dynamically generated gadgets, or to a point where it doesn't pay off to use a GUI editor at all. I mean, everyone can type a gadget-create command, right? Gadget-dimensions usually depend on technical limits/properties/functionality rather than human influences or even art! (e.g. where you need a form editor to resize all gadgets until you see the perfect layout)

Now, when every part of the app has its own private functionality and GUI you can assume that every bit and byte is local. If every part has a button to update itself (just assume it), called "Updatebutton" then you can create as many different parts as you like, no interference whatsoever.
When I see all those gadget globals in your source (they're generated output from your form-editor I guess?) then this will create the usual problems with globals if you intend to have similar functions per part. That's why I'd put a GUI into an instance, everything nice 'n private.

Ohwell, perhaps I shouldn't have mentioned it at all.. :P Somewhere I can see how a form-editor can help beginners, esp. if they've no former GUI experience. So, just go on and please them, and ignore my monologue. (orso :P)


SebHoll(Posted 2006) [#14]
I agree totally with you, many apps require content to be created, as you say "dynamically". That is programs that load into multiple tabs, and where the content changes depending on what is happening. I made a Remote Control client recently in BlitzMax where the whole UI was created dynamically and at-run-time to meet the user's need.

However, some apps require a static interface with only basic changes, such as Disabling/Enabling gagdets and changing text etc. In which case, a GUI-editor can save hours of time. Usually, these applications are designed to perform a series of tasks, and the UI of the app is there to allow easy input, not as a core feature of the app itself (lol, if you see what I mean).

It all depends on what you are doing really - but a GUI editor is usually the best option for the job.

LESTROSO:
Step 1 complete: got my hands on an old B&W G3
Step 2 complete: Bought Apple OS 9
Step 3: Waiting for it to arrive (should be anyday soon)

As soon as it comes, I will compile and upload a demo for you. :-P


Seb


Jason W.(Posted 2006) [#15]
Seb

Looks fantastic...will your GUI editor supply all property settings for each gadget and window? What about resizing settings?

Thanks,

Jason


SebHoll(Posted 2006) [#16]
Jason W.: Eventually, it will support as many as the property settings as feasibly possible. As far as resize settings go, I'm just finishing off the SetGadgetLayout extension now which allows you to specify what happens to the gadget's layout once it has resized.


Jason W.(Posted 2006) [#17]
Very cool!

Jason


LESTROSO(Posted 2006) [#18]
Thank you Seb for your support!!!!!

I hope that you haven't pay too much your new mac computer, to satisfy all mac users......with your mac version program.......

so i'm happy and i'll wait.....

thanks a lot again....


SebHoll(Posted 2006) [#19]
Hi,

Just to give everyone an update. Managed to get Tiger running on my G3 but seem to be having problems with various bugs in the MaxGUI Cocoa module. I've posted the first bug report here which is a problem to do with Cocoa crashing when adding a second window with a toolbar. This is kind of vital to Max'd GUI's floating toolbars so until Skid/Mark fix this, I'm stuck.

Also, in Windows MaxGUI, I found a fix which sorts layering problems with gadgets in MaxGUI and have posted it here, which when added to official MaxGUI mods, should making Win32 layering more predictable. Again, just waiting for Skid or Mark to implement/acknowledge when they get a chance.

Hopefully bugs will be fixed soon and a Max'd GUI demo can be released soon after,


Seb


siread(Posted 2006) [#20]
How are things progressing Seb? :)


SebHoll(Posted 2006) [#21]
Very nicely thanks... My G3 HDD failed so I had to get a new one and I have just installed it yesterday. Got BlitzMax back onto it and I'm now resuming my bug reporting. As far as improvements to Max'd GUI:

Added: *Resize handles* for gadgets - yay!!!
Fixed: Gadget's won't resize less than 0px and 0px
Added: *Smart Export* - Gadgets are exported now tabbed, and according to the position on the window
Fixed: Bug where cursor changes while dragging when mouse moves over one of resize handles
Added: Tabber gadget support (phew!!!)
Fixed: Duplicate Gadget bug
Added: Action Source Coding!!!
Fixed: Highlighting issues with code

Just Added Tonight: Project are now saved using XML

Plus loads more of little bug fixes. The Windows version should be ready very soon and the Linux one is not far behind. However until all these Cocoa bugs are ironed out in the official Mods, the Mac one is lagging behind.

Here are some screenies of the Action Source Code feature I added. It gives you a kind of Visual Basic feel, where you can write Blitz code directly into the editor so that you could (theoretically) create your whole application in Max'd GUI (providing you have a licensed copy of BlitzMax and MaxGUI):







If you have any questions, just let me know... It seems like I've been working flat-out for the past month... (note to self: "Welcome to the world of programming...")


Seb


Smokey(Posted 2006) [#22]
does it look like vb style editor ?

nice work seb, I also working on my MaxEdit but it's not cute like your editor. I discover a way to move and resize gadget with the mouse but don't worry my editor is not nice as your. I did it only for knowelge and for fun.

cya.


SebHoll(Posted 2006) [#23]
Hi Smokey,

does it look like vb style editor ?

It depends what you mean... I've put in some basic function highlighting (like MaxIDE) and automatic capitalisation.

A bit more info: the idea at the moment is that there are 3 tabs: Events; Functions; and Declarations.

> Events: Lets you view and edit gadget events from within Max'd GUI, so that they are exported with the program.
> Functions: Basically, a place where you can easily access and write your functions for your code. It includes a bookmark jumper at the top to go straight to the selected function.
> Declarations: Anything else you want to add. There are 2 sections. Above or below. You can put anything you want in here, e.g. type declarations, external lib references and constant declarations.

I don't know what I'm going to do about the demo version at the moment, because I can't release it without the ability to export, as it cuts away Max'd GUI's most prominent feature: its ability to code event actions within the IDE etc.

I've also updated my worklog, so have a look back there for more information.

Thanks for the interest


Seb


Booticus(Posted 2006) [#24]
Dude. This looks killer. Can never have enough GUIs and editors are a definite plus! Programmatically creating GUI's is fine, but sometimes you wanna slap something together and rapid prototype a program. Thats where I find a Editor realllly handy!


Smokey(Posted 2006) [#25]
Seb you can put 2 tabs, one that show the entire code source and another tab for fast coding ala visual basic so people that don't like vb can switch to the full source tab for coding.

in these time I try to find a way to move and resize all gadget with the mouse but since bmaxgui events is incomplete I plan to reproduce each gadget in a panel
just to be able to place them with the mouse, I did a screenshot of all gadget and take a picture of all gadget and load them in a panel. to have proper mouse event. but I wonder if it will slow down the process. but this is my attempt. maybe I could make some custom gadget like a better Richtextbox .


Cruis.In(Posted 2006) [#26]
can i use this in my space game to make clickable graphics like, for example, a shield graphic on the hud, if you click it, code runs that raises your shields.

is this what this can do?


kiami(Posted 2006) [#27]
This is the right question for those who think about making game not application. Also, you can see in MaxGUI tutorials that it is possible to make game in MaxGUI canvas. However, if joystick events or some other events are supported, is yet to be known. Also, efficiency is an issue too.


siread(Posted 2006) [#28]
Hi Seb. My main reason for logging onto the blitz forums lately is to see if you've updated this thread. I'm desperate to see Max'd GUI in action. Any idea when you might be releasing this project unto the world? :D


Booticus(Posted 2006) [#29]
Yeah dammit! :)


SebHoll(Posted 2006) [#30]
Hi Everyone,

I'm really sorry about the delay but I'm struggling with the menu editor (mainly finding a cross-platform solution, have tried about 3 different methods and none seem right) at the moment, and the additional features such as the code builder etc (getting the parser/highlighter to work quickly). If you really need it, I could release it on a BETA license I suppose, but it would be sold "as is" until there is an update where you will be upgraded automatically. By "as is", I mean:

> No Menu-Editor
> Still A Few Bugs
> Not Fully Functioning Code Builder
> Windows Only (Very Possible Linux As Well)

I suppose this is what I wanted to avoid by only releasing it when it is ready - however if you *really* want it, e-mail me and we'll sort something out!

Also, for Mac, I need to get the code to look presentable so I can send it Skid (having kindly offered) for debugging - it seems to crash after adding a few objects on OS X PPC and I think it must be MaxGUI freeing objects before it is ready.

Many thanks for your patience, and I apologize once again,


Seb


boblol(Posted 2013) [#31]
Where do you download this at


GaryV(Posted 2013) [#32]
The thread has not been posted in for seven years. Do you really expect any download links to still be active?


skidracer(Posted 2013) [#33]
Hi William, if I was you I would check out Logic Gui which is still current.


GaryV(Posted 2013) [#34]
GUIde is no longer updated, but it is free:

https://code.google.com/p/noisycode/wiki/guide


boblol(Posted 2013) [#35]
LOL i actually didnt even read the dates that was posted LOL

I just bumped up a 7 year old post LOL AHAHAHHHAHAH


And thankyou for the links skid/garvy