I’ve been using wxWidgets quite a lot over the last week and a bit, and I’m now just at the stage where I’m comfortable using it. I’ve used quite a few windowing systems before (including raw Win32, MFC, VB, Java, .Net and a few esoteric tool-specific ones) and they’re all much of a muchness once you get down to it - however each still has it’s own implementation nuances and it can take a while to get settled. There’s also the issue of getting into a code and design style. I’ve delved into most areas now, making my own control (a 4-pane CAD view), figuring out how external resource referencing works, learning when it’s worth using XRC or not, the interplay between sizers and the AUI etc. It’s taken a bit of time but everything’s coming together, as you can see from the shot to the right there. I particularly like the AUI and the fact that getting a fully dockable system going with appropriate control over what can be docked where was pretty easy.
I was dreading needing a bunch of icons though, because I’ve had problems before and am pretty terrible at creating them. I didn’t want to waste lots of time finding or creating icons just so I could get a UI framework up. Luckily I found the Silk Icons at FamFamFam.com, which consists of about 1000 icons all released under the Creative Commons Attribution License. They’re really very nice looking, all high-colour PNG format and very clear, perfect for my needs. There’s enough variation that I’ve pretty much managed to find exactly the icon I need in this collection so far. The sharp eyed might notice that the essential Firefox Web Developer Add-on uses these icons too - I only realised after I’d found them.
All I really wanted to do this week was get an overall framework going that I was happy with, containing all the ‘essentials’, which I’ve done:
- A 4-panel CAD view
- A pluggable Ogre view with changeable view modes, saved views, expandable to full-screen
- A camera mouse control that ‘feels right’ like XSI does - orbiting focus points, zooming in ortho and perspective modes, proportional panning / dollying
- A dockable, representative overall layout with things like notebook views, a log, manual transform tools
- Construction planes / grid guides
- An internal and visual structure I can start to hang more meat on
That all seems to be coming together anyhow. You’ll notice the shot has a typical scene graph explorer, although initially that’s not my main focus - rather than making a ‘scene arranger’ the main chunk of work I want to get to is my world geometry build system. Arranging discrete objects in the scene will of course eventually be part of that (either as static elements or movable ones, which is what the graph is for), but really I just wanted to slot everything in just so I could get to the part I’m most interested in. Until you get a UI roughed out with places allocated for things it’s harder to imagine how to lay it all out. Next week I should be able to start on the world geometry designer, although I’m unlikely to show any shots of that in the early days - I don’t want to spoil the surprise 😀And if the (slightly ununsual) ideas I have fall totally flat I can quietly brush it under the carpet and pretend it never happened of course 😀