Thread: Editor design: Traditional MDI versus Tabbed MDI

  1. #1
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071

    Editor design: Traditional MDI versus Tabbed MDI

    Looking for more opinions on editor design.

    Right now I've got the editor running on a "traditional" MDI interface. Multiple windows, and a window list in the menu bar and such. I also know that this type of interface is falling out of favor pretty quick, but I used it because I figured it may come in handy (multiple windows open at once, like the shader editor and a world for quick testing).

    I'm starting to think that a tabbed MDI (like Visual Studio 2005 uses) might be better. It'd save on working through multiple windows, but you could only see one thing at a time. But I'm also now thinking that it wouldn't take much extra time just to click to a different tab.

    Opinions? What's your preference?
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  2. #2
    pwns nooblars
    Join Date
    Oct 2005
    Location
    Portland, Or
    Posts
    1,094
    Graphical editors, I like windowed, documents and other such that are mainly text I prefer tabs.

    EDIT: Crimson Editor (text editor) has a combination, when a window is full screened it goes into tabbed mode, if it is returned to normal size it is windowed (with still having the tabs at the top for selection).

  3. #3
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Tabbed MDI for sure or even SDI with tabbed docked dialogs. I have never like the layout of MDI as it becomes very confusing when you have several windows open.

  4. #4
    Supermassive black hole cboard_member's Avatar
    Join Date
    Jul 2005
    Posts
    1,709
    I remember falling in love with tabbed MDI when I first used VS 2003.
    VS6 was chaotic at times.
    Good class architecture is not like a Swiss Army Knife; it should be more like a well balanced throwing knife.

    - Mike McShaffry

  5. #5
    The Right Honourable psychopath's Avatar
    Join Date
    Mar 2004
    Location
    Where circles begin.
    Posts
    1,071
    I started to implement a full tabbed MDI design, but it doesn't work that will with the editor. When my 3D view is in the same window as the rest of the editor, none of the standard controls draw themselves properly, because the 3D view is invalidating itself every frame.

    Unless I come up with another work around, what I may do is keep the traditional MDI, but use tabbed MDI for each type of document. For example, the world editor would have it's own MDI window, but different world editor documents would be tabs in that window. Same for the GLSL editor and script editor and so on.

    Sound reasonable?
    M.Eng Computer Engineering Candidate
    B.Sc Computer Science

    Robotics and graphics enthusiast.

  6. #6
    Insane Game Developer Nodtveidt's Avatar
    Join Date
    Nov 2006
    Location
    Isabela, PR
    Posts
    105
    That sounds like a good compromise, as long as you keep it simple.
    Code:
    cout << "Language comparisons are dumb";
    echo("Language comparisons are dumb");
    PRINT "Language comparisons are dumb"
    alert ("Language comparisons are dumb")

  7. #7
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    I really do not like traditional MDI but I do understand that tabbed MDI is a bit more challenging to code.

    I'm not familiar with the GUI library you are using but my guess would be you need to simply subclass a Windows tabbed dialog control, gain access to the client area of it and then draw your window in this client area or create your window in this client area. The control then simply tracks which window is being drawn and adjusts the starting top,left corner and width to fit into the client area.

    I've tried this in MFC and I, too, had problems with graphical glitches.

    Perhaps you could use the system I'm using for my editor. It is SDI but it has a docked tabbed dialog on the left side (but you can drag it around to be on any side or floating). This gives the user a large work area and also can present a large amount of information in a very small area.

    Here is a screenshot of the editor. Honestly I don't like where the tile selection window is but if I dock it, the main window becomes too small. Perhaps this might help you decide. I also tend to use a lot of Tree controls because you can display so much information, or as much as you want, without taking up a lot of space.
    Last edited by VirtualAce; 03-12-2011 at 11:41 AM.

  8. #8
    Supermassive black hole cboard_member's Avatar
    Join Date
    Jul 2005
    Posts
    1,709
    Someone's an IE user...
    Good class architecture is not like a Swiss Army Knife; it should be more like a well balanced throwing knife.

    - Mike McShaffry

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Inserting text into MDI program
    By Rutabega in forum Windows Programming
    Replies: 0
    Last Post: 12-23-2005, 11:25 AM
  2. Tabbed Windows with MDI?
    By willc0de4food in forum Windows Programming
    Replies: 25
    Last Post: 05-19-2005, 10:58 PM