Page 1 of 1

True MDI on Linux

Posted: Sat Jan 20, 2007 11:11 pm
by martin27
Do any of the wx Linux versions support a true MDI interface? I just tried the MDI sample on GTK/Linux and it had fixed tabbed windows instead of floating MDI panes.

Is this something that anybody has tried or has any desire to do in wx/Linux? I've done some searching on MDI and Linux and it seems there are a lot of people who associate MDI with MS Windows and hate it for that reason. I personally think it's an excellent feature for certain applications.

Is there a "true" MDI feature in MAC OS?


Posted: Sat Jan 20, 2007 11:21 pm
by FlyingIsFun1217
Haven't ever seen any examples of it, but from what I hear, wxAUI can do that. You might want to look into that.

FlyingIsFun1217 :)

Posted: Sat Jan 20, 2007 11:47 pm
by martin27
Hmm, I couldn't get wxAUI to build on my Linux system, but from looking at the code it seems unlikely that it would support its own MDI classes. It appears to merely implement wx's MDI classes as part of its docking window manager. It just uses MDI as a feature to put the undocked windows into an already existing MDI interface. That's what I get out of it, but I could be wrong. Unfortunately wxAUI doesn't come with either a bakefile or a configure script, so building on Linux is a bit tricky.


Posted: Sun Jan 21, 2007 12:41 am
by martin27
OK, so I didn't notice that there was a wxaui sample in the wx samples directory. I built it and looked at it on Linux. That particular sample doesn't appear to have any MDI functionability.

MDI seems rather simple. All you're doing is making sure that a child frame window gets clipped by its parent, moves itself when the parent does, and is always invisible when its parent is invisible. Is that so difficult on Linux? Who knows.

Posted: Sun Jan 21, 2007 10:54 am
by Jorg
True MDI in linux does not exist. There i no GTK backend for it, so wxWidgets cannot support it natively. What it does is emulating it with tab windows.
I did read that even microsoft abandoned the current MDI framework in their office applications (which is true, a new document now opens a new word instance) seems to me like not many people love that kind of implementation, and maybe that is why GTK never adopted it. The way GIMP (the origin of the GTK) uses MDI is floating windows you can simply place anywhere. One control window, and a lot of sub frames.

- Jorgen

Posted: Sun Jan 21, 2007 3:47 pm
by Auria
wxAUI can be similar in that it holds many different panes in a single window instead of multiplicating windows.

I like that better than MDI - it avoids multiplicating windows, without the grey background.

Posted: Sun Jan 21, 2007 8:46 pm
by martin27
I think the way MS has used MDI in the past, for instance in Office as Jorg pointed out, is a bit silly. However, there are specialized applications where it makes sense. The application I'm interested in is for accounting information. So users are interested in:

1. A variaty of different views of the same data set, for instance a profit/loss statement, a checkbook register, a customer profile.

2. Some views become more important than others at different times. For instance you wish to focus on the P/L statement and hid the other view.

3. Some views have a sort of "dual use," for instance a project browsing window can also be a project selection window. This is something that is absolutely done most efficiently in MDI and not a tabbing scheme because you don't want your project selection window to entirely obscure the selector and other times you want the project selection window to also be the selecting window.

4. The application itself is something that users switch back and forth between other applications frequently, so having a bunch of stray dialogs that aren't minimized with an MDI frame is combersome.

The other thing is that MDI is a very simple solution that doesn't require a lot of complex UI management. As interfaces have matured, software companies have "moved on" from them trying to add value with increasingly complex interfaces. This is not always something that users enjoy. For instance I was talking to a user recently who was bemoaning Autocad's removal of its MDI framework.