True MDI on Linux

Do you have a typical platform dependent issue you're battling with ? Ask it here. Make sure you mention your platform, compiler, and wxWidgets version.
Post Reply
martin27
Earned a small fee
Earned a small fee
Posts: 22
Joined: Thu Oct 12, 2006 1:35 pm

True MDI on Linux

Post by martin27 » Sat Jan 20, 2007 11:11 pm

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?

Thanks.

FlyingIsFun1217
Super wx Problem Solver
Super wx Problem Solver
Posts: 497
Joined: Mon Nov 06, 2006 9:58 pm

Post by FlyingIsFun1217 » Sat Jan 20, 2007 11:21 pm

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 :)

martin27
Earned a small fee
Earned a small fee
Posts: 22
Joined: Thu Oct 12, 2006 1:35 pm

Post by martin27 » Sat Jan 20, 2007 11:47 pm

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.

Thanks.

martin27
Earned a small fee
Earned a small fee
Posts: 22
Joined: Thu Oct 12, 2006 1:35 pm

Post by martin27 » Sun Jan 21, 2007 12:41 am

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.

Jorg
Moderator
Moderator
Posts: 3971
Joined: Fri Aug 27, 2004 9:38 pm
Location: Delft, Netherlands
Contact:

Post by Jorg » Sun Jan 21, 2007 10:54 am

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
Forensic Software Engineer
Netherlands Forensic Insitute
http://english.forensischinstituut.nl/
-------------------------------------
Jorg's WasteBucket
http://www.xs4all.nl/~jorgb/wb

Auria
Site Admin
Site Admin
Posts: 6695
Joined: Thu Sep 28, 2006 12:23 am
Contact:

Post by Auria » Sun Jan 21, 2007 3:47 pm

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.

martin27
Earned a small fee
Earned a small fee
Posts: 22
Joined: Thu Oct 12, 2006 1:35 pm

Post by martin27 » Sun Jan 21, 2007 8:46 pm

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.

Post Reply