what library is used to make the gui multiplatform?
If you are doing it by hand, maybe you could use something like [url] http://wxwindows.org
[/url]It has support for opengl, it is binded to python (altough i am not sure how python is used on blender) and has some multiplatform features to create threads, execute programs and read files.
If the multiplatform features are done by having diferent codebases or using this may reduce the code, maybe could even have only one codebase
Blender uses the homemade Ghost Library. There is a doc in the internal NaN docs about possible library's/the gui:
The problem was that wxWindows didn't support enough platforms. Platforms like irix, freebsd and solaris are still missing (from what I read on the website).
All those platforms are surely supported with wxGTK and I believe wxMotif as well. I've used wxWindows for several years and I'm very, very pleased with it. But I don't see blender supporting it any time soon since the interface would change too much.
Personally I would love to see a move to a generic toolkit since inventing one on our own is hardly going to be a better one than a well thought out, widely used toolkit (such as wxGTK/gtk2). I believe the layout of buttons and controls is one of the hardest thing to get used to with blender, and I don't see it bringing any substantial benefits the way it is right now. Of course every layout is the most efficient layout *for you* once you've got used to it, but I don't think that kind of thinking should rule our gui choices.....
But then again I'm just a blender newbie ....
Many descent 3d software proggys actually do have their own interface libraries.
Blender, Lightwave, Mirai, Nendo, Wings3d, XSI, TrueSpace to just name a few.
I don't see any problem with keeping the current one and perhaps develop it further. Since it's all OpenGL it's way fast too.
I would tend to agree, having a custom UI system like Blender currently has offers much greater flexibility. Especially when you consider that other cross platform GUI systems like wxWindows and it's ilk, are by their very nature generic, and will likely cause some problems at some point when being used in an application so specialised as 3D authoring. As you say, just about every other serious 3D application has it's own custom UI system, something to be learned there.
Just my tupp'orth.
If you use a generic toolkit there is nothing that stops you from adding your own custom controls when there isn't any suitable available for a certain purpose (I can't really think of any such control in blender today that isn't available in, say, GTK. But I'm sure there is...).
But I must say that I like the current blender gui as well. It has a nice, cozy feeling.
I'm a huge fan of wxWindows. I've even written a small scripting language
that uses it.
Having said that, I think that there are times when not
using native GUI controls is a great idea, and Blender is one of those. Some of the issues are:
- Size: Blender puts a lot of widgets in a tiny space. Plus, these can be dynamically resized.
- Functionality: Many of Blenders controls don't behave like standard controls.
- Learning: The benefit of being able to use Blender on multiple platforms outweighs the inconvenience of not having native controls.
On the other hand, the look and feel of Blender's controls leaves plenty of room for improvement. But that's another thread