There are many programs for which the GUI contains several, discrete parts (all visible at the same time) for performing different actions, usually with one main part and other secondary parts.

What are the pros and cons of arranging these parts by dividing a single window (e.g. Visual Studio):

visual studio screenshot

...versus having one main window containing the menu bar, and moving secondary parts into separate windows (e.g. GIMP)?:

GIMP screenshot

Are there any good ways to do this other than these two?

To provide some context for my situation, I'm working on a chess program, where the main part of the GUI is the board, but there are several secondary parts (move list, game metadata, engine analysis, etc.)

4 Answers 4


Visual Studio actually also has their panels available as seperate windows. Just drag something out of the main window to see it in action.

VS has way more docking options available for displaying and arranging them within the main window. You can even create other "main" windows by dragging documents and toolbars out.

It really doesn't sound like you need all this complexity though. It might be nice to make the chess board the main window, and have all your other things as vertical tabs (some on the left, some on the right) that slide out on mouse over. You can have a pin button on them so the user can choose whether they need them visible.


Multiple windows give you more flexibility than panels tiled within a single window. With multiple windows users can resize them and place however they see fit. Tiled panels keep things organized and consistent.

Photoshop is an extreme example of the multiple windows approach. There are more than 20 different kinds of windows that can be opened, but the user only uses a few at a time. Some might like to keep 4 of those windows up, some might prefer to keep 6 of those windows up, and people keep different sets of windows up at different times for different purposes. Keeping those various configurations of windows as panels within a single window would be too restrictive.

On the other hand for some applications, the simplicity and consistency of a single paneled window is better, the freedom to arrange things however desired just isn't useful.

It's the age old tradeoff between customizability and consistency - they both have their places, they both have good points and bad points.

As a general rule I try for simplicity and consistency (single window) first and see if the need for customizability presents itself.

  • 1
    Photoshop is not and extreme multiple windows approach. The controls are docked by default, and the behavior differs depending on OS. Commented Jun 2, 2014 at 19:36
  • @Fresheyeball - yes, perhaps I should have said "extreme flexibility".
    – obelia
    Commented Jun 2, 2014 at 20:38
  • sounds like an interesting athletic event ;) Commented Jun 2, 2014 at 22:43

This is a false choice, here is how I generally put this

  • Panels (locked into a single window)
  • Pallets (undockable from panels to windows and back)
  • Windows (locked out of the single window)

Beyond that its about how its going to be used vs implementation cost. Panels or Windows are the easiest to implement, but Pallets are the most flexible.

Flexibility only pays dividends in design when you are in a system with a high degree of uncertainty as to how the product is going to be used. Both Visual Studio and GIMP are in that scenario, the value they are offering is addressing that uncertainty. It doesn't sound like you are in that situation.

Multiple windows are the extreme case. When users are in a system with Pallets, they generally leave them docked until they absolutely have to 'tear off' the Pallet into a Window.

The simplest solution here for users is likely to be panels.

Because there is not a high degree of use uncertainty you can plan around specific user workflows instead of going down a more philosophical road.


I think this is user preference, or situation dependent. The examples you show assume one complex program running, but usually there are a few more. It might get tedious to arrange many small windows, as opposed to one large window.

And I think this is not a case of "X vs. Y": A good implementation will allow you to either place the panels somewhere in the main window, or detach them into separate windows. I think the pin icon on your first example does exactly that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.