Hello,
I'm using AUI (wx.lib.agw.aui) in my application. AUI is very useful for me, because it allows me to position several documents/windows next to each other. The user can customize and save the application's layout.
However, there is one main problem in regards to UI design I have with AUI. Suppose I need to manipulate data in each of the show documents/windows. Those windows are quite heterogeneous, i.e. you can have a code editor, an image editor, some tree control etc. So the actions you can perform on these documents are also manifold. My initial thought was to add a toolbar to each of the windows, so it's easy to e.g. select the brush tool in the image editor. This has several downsides though.
First, I don't like toolbars with small buttons. I always have to hover over the buttons to get the tooltips if I didn't use the application for a week or so (this can partly be resolved with good button images, but that does not always work). Second, some documents can have many actions, yet their size on screen is not very big, so the actions don't fit into the toolbar. Third, having toolbars all over the place takes up valuable screen area which would be better spent on the document data itself.
So I googled a bit how other AUI users solve this problem. Here is one of the screens I came across: http://www.dialogblocks.com/images/screens/screen01.jpg . That's a very bad UI in my opinion. It is crowded with lots of little buttons, tabs and the remaining area for the things the user actually wants to see is maybe not even 25% of the whole. It falls to all of the three points I made above.
So what are other alternatives? I'd tried a Ribbon bar (wx.lib.agw.ribbonbar) as the main toolbar. It has recognizable buttons (image + text) and you can group them nicely by context. It's also a good replacement for a wx.MenuBar. Then I wanted to dynamically add pages/panels to the Ribbon bar depending which AUI windows are currently visible. This has one downside: If there are 3 text editors open in my AUI, I have three identical panels in there and it is not very obvious which panel belongs to which AUI window.
I've also thought about making a small area at the top (or in a corner) of each aui window. When the mouse is hovered over this area, a ribbon bar is shown for the chosen aui window. The advantage here is you only waste a bit of screen area, the disadvantage is you have to hover the area each time you want to perform an action.
Another alternative I was thinking about was to not use toolbars at all, but to offer context menus on right click.
Are there better alternatives? What do you use in your aui applications to overcome the mentioned problems?
-Matthias