Moi & linux

 From:  Michael Gibson
1583.42 In reply to 1583.35 
Hi AdderD,

> May I suggest that using mshtml to draw the interface for
> your desktop application is like using a hacksaw to open a
> can of soup? Sure, it might work fine but why would you
> do that when can openers exist?

You can certainly suggest it, but you'd be wrong! :)

I have a lot of experience in developing UI, and I can definitely tell you that a markup based UI mechanism is a huge time saver once it is all up and running.

The big difference is that HTML has a layout mechanism built into it, so the HTML engine handles all the details about expanding entities to fit around text, stuff like that.

It's one reason why MoI has some unique features like being able to set a fine-tuned UI scale (any point size can be set, not just "large or small icons"), or being able to switch to different languages on the fly without restarting the program.

To try these out, in MoI go to Options / General, and adjust the "UI size" slider, and switch the "Language" dropdown to a different language.

As far as I know it would be quite difficult to make this same kind of functionality in a Qt app. But if you know of any examples of a Qt app that has similar functionality please let me know so I can take a look!

It's also a major advantage to have the ability to have small bits of script logic bundled along with the UI, to handle some UI specific things like hiding or showing different portions in response to various UI actions. In MoI's UI system most of the UI is implemented in this way, it is a lot faster and more flexible way to do things than trying to handle each little bit of UI in C++ code. C++ code is great for making the building blocks, but then script or markup is better to handle gluing the building blocks together and arranging them.


Basically without MoI's UI system I would not have been able to develop the UI to its current level. I would have been stuck back at one of the earlier iterations because it would take too much time to try new things.


> Also, QT is plenty customizeable and extensible all by itself.
> I'm sure it could produce the GUI layout of MoI without the need
> to hacksaw the soup can with HTML.

Well, I'd love to see any example that has stuff like the dynamic scaling or language change!

The other factor is that when I developed MoI it was not like I had everything completely figured out from the very beginning. It was a long drawn out process to develop the UI and it went through many iterations. It helps to have a very flexible UI system when doing this, and not having to worry about coding layout makes it much easier to do experiments.

If I knew from the very beginning exactly how I wanted the UI to be set up, it would have been more possible to do it in a more "hard coded" kind of fashion (which is what happens when you rely more on C++ code to form the UI instead of markup), but that totally ignores the actual design process of iteration and experimentation.


> The newest version of QT can be used as LGPL and thus
> used in commercial products without a commercial license.

Yes, that's pretty cool and I am actually planning on trying it out, especially since they have WebKit along with it.

However, the LGPL release is something that literally happened a few weeks ago. Meanwhile I started on MoI 5 years ago. So I'm not sure how I would have made use of a brand new thing when I needed it 5 years ago? :)


Anyway those are some of the issues...

The main thing to keep in mind is that, yes it is great that Qt now has LGPL, but if it didn't when a project was started that does not help a whole lot.

- Michael