Worklog for SebHoll

Max'd GUI

Return to Worklogs

Development Has Started Again...(Posted 2007-05-28)
Hi Everyone,

For a while I've been really busy doing other projects and decided to take a break from development. I've spent the last two days rewriting certain parts of the program I didn't like and adding some more features.

In no particlular order:

1) I've decided to ditch the MDI layout in favour of the more modern multiple screen layout.
2) The Event Coder parser has been rewritten and optimised. It's now (hopefully, though not fully tested) as fast as the official IDE.
3) Toolbars and menu support has been added.
4) Ability to multi-select gadgets using either the Control key or by dragging a selection box over the gadgets.
5) Cut, Copy and Paste have been added properly.
6) Right-click menus for quick access.
7) Live preview and debugging of code.
8) The action-pad, an innovative new UI that provides quick access to common controls.
9) Drag and drop is now a hell of a lot better on Windows

However, there's still a lot to do. I still haven't tackled the Undo/Redo features or gadget grids or many other features I feel are necessary.

Mac at the moment, I don't know how it's progressing as I haven't tried to compile the source on it recently. Linux, for some reason, doesn't compile at all - it throws up some sort of error, and the most useful response I've had so far, is it could be with doing something strange with Constants...

Anyway, I hope to keep going and hopefully, there should be a release by July/August. I wish it would be sooner, but there is still a lot to do, and I've still got a busy schedule as it is.

I'll aim to upload some screenies soon,


Seb

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

Sorting Out The Tough Stuff...(Posted 2006-09-06)
Hi,

Thought another worklog update is due. Max'd GUI has been improved and evolved in many ways, see the image below (notice the new resize handles on the selected gadget, icon support, and now tabber and graphics canvas placeholder functionality):



One major improvement that I forgot to mention here is the presence of the event coder now built-in to Max'd GUI.

The Event Coder Window


Events for Window Gadget: - More to come shortly


Switching Between Gadgets:


Basically, at the moment, I'm trying to tackle the really hard stuff that I've been putting back till I knew what I was going to do. So far I've managed to add:

> Relatively stable tabber support
> Basic Toolbar Gadget
> Gadget Selector Window
> BETA Cut, Copy and Paste commands

Still to do apart from stabilising the above...

> MENUs - I've got a feeling this isn't going to be easy but with every mistake, the solution becomes clearer.
> Improved/Updated Documentation - Should be the nice easy part of the project after full-on coding for months.
> Linux and Mac Catch-up! - So many bugs in the Cocoa module, and so many minor (yet catastrophic) discrepancies between GUI modules, it's likely to take a while to iron it all out.

Bug reports currently yet to be processed by Skid/Mark:

Hiding Window Bug - Win32
Toolbar Resize Bug - Win32
Disabled Menu HotKeys - Win32
Disabling Gadgets - Cocoa

And this very erratic behaviour with Max'd GUI on Mac:

BlitzMax App Crashes Without Debugger - Fixed

Anyway, I'm sorry for the delay but I hate releasing something when it's not actually complete/working...

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

Getting Nearer...(Posted 2006-08-16)
Fixed loads of bugs - for those of you that are interested, see below:



The first release of the Windows version is in very good shape, and the Linux one is doing better. While developing Max'd GUI, as you can imagine, a lot of bugs have also been found with MaxGUI modules itself and the FLTK Linux MaxGUI module is, to be perfectly honest, useless! A big thanks to Brucey for making the GTK module which works so much better and more reliably.

I have also started work on the help docs/tutorial and also made major improvements in stability and speed. As you can imagine though, I don't want to release it until it is ready.

Will keep worklog up to date when major improvements are made,


Seb

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

Introduction(Posted 2006-07-13)
Hi Everyone,

Just thought I'd start a worklog for my latest project: Max'd GUI (until I think of a better name it's staying :P). I intend it to be a fully functional GUI editor for BlitzMax (written in MAX) which can eventually be compiled on different O/S's for cross-platfrom capability.

I had a few initial ideas of how I'd go about it but when I started coding I found them to be extremely difficult to practically implement.

Eventually, I found a way that I might be able to sort it out - panels. Each gadget has it's own "hotspot" panel that detects mouse movement, button hits and keyboard events.

I initially was resizing gadgets every time things changed but once things started being too complex (when changing flags with buttons, etc) I scrapped it and re-wrote the core with a new idea in mind: the gadget is redrawn whenever a change is made in it's new position. This may seem as though it would be very slow and sluggish, but in practice it isn't.

This solution results in shape, size, position, background colours, dragging, parenting, flags and items all being added successfully to gadgets. You can instantly turn a push button into a radio button (or checkbox) on-the-fly and drag items around the window (with them updating in real time).

Now for some pics. Below is a screenshot of the application once it is first opened. As you can see, the window is divided into 2 parts: object properties on the left; drawing area on the right. There is also a floating GADGET toolbar which you use to start adding stuff...


Click for larger image

Once you have added a window, you now have access to all other gadgets which currently include: buttons; text fields; labels; checkboxes; radio buttons; panels; scroll bars; sliders; spinners; password fields; list boxes; combo boxes; web gadgets and rich edit controls. Here is a sample screenshot of all the gadgets in place in a window:



Max'd GUI features a Preview button which compiles the window to a temporary location so you can see what it would actually look like in your program:


Click for larger image

The left panel provides you access to the customizable parts for each gadget. Simply click to select the gadget you want to change, and modify the info. The item will update on the fly.



So, to recap, main features are:

> 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.

Major features I should be adding before release:

> Add Gadgets: Tabber; Toolbar; Treeview Done :-)
> Use of iconstrips, colour and fonts on gadgets Done :-)

Minor add-ons:

> Picture Panels Done :-)
> Cut, Copy and Paste functions Done :-)
> Fully functioning options (that are actually useful) :P
> Optional XP-style manifest addition (when on Win32) Done

So this is my brief introduction to my latest project. Tell me what you think, and if you have any feasible ideas, as this is still very much in development stage:


Seb

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

The Gadget Toolbar(Posted 2006-07-13)
The gadget toolbar is a floating toolbar that provides you access to all the gadgets available in Max'd GUI. It can be hidden or shown when you want to see it and remains ontop of the window being drawn so it can always be accessed:



Reading from left to right:

Gadget Style|Window|Group|Tabber|Button|Radio|Checkbox|Label|Text Field|Password Box|Rich Edit Box|Treeview|Combo Box|List Box|Progress Bar|Slider|Horizontal Scroll|Vertical Scroll|Picture|Web Gadget

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