Saturday 5 January 2013

QtMaxGUI Progress

I've always thought that the best way to test something is to use it yourself.

For QtMax, I realised that the best way I could test the functionality I was implementing (and boy, there is a lot of functionality to implement!!), would be to apply it to a project which used a large chunk of it.

So, QtMaxGUI was born.

Implementing a MaxGUI driver is rather a lot of effort in itself. The way it handles a lot of things is very procedural-like, rather than using an object-orientated model like how most GUI toolkits do. Still, it's nice to push yourself a bit from time to time, and especially when you are trying to figure out how to make A act like B, when it is certainly not intuitive for it to do that.

Anyway, I've finally got most of the basic MaxGUI gadgets working with minimal functionality - that is, you can probably add things to a treeview, or press a button. Yay!

I just finished banging out the "tabber" gadget today (QTabWidget), and for so little code it acts just like the CocoaMaxGUI version. With this widget, it gave me a chance to test out reparenting, and so far it all appears to be working as expected.

There are still some major topics I have yet to investigate. The biggest of those is probably going to be gadget removal. Create a gadget -> delete a gadget. And marvel as all its resources are neatly tidied up too. Well, we'll see how I go about doing that. Hopefully I haven't made it too difficult to unhook all the BlitzMax objects from the Qt objects.

Other than that, I need to look font support, and filling in all the other gaps in the implementation (of which there are many at this time).

However, it does functionally work at the moment, and all the MaxGUI examples appear to be performing well. And it performs identically on all 3 platforms, which is certainly what you hope for, given that Qt is a cross-platform toolkit.

:o)

No comments:

Post a Comment