Single-window mode specification

From GIMP GUI Redesign
Revision as of 15:45, 14 October 2009 by Guiguru (talk)
Jump to: navigation, search

introduction

This is the specification for the single-window mode, in addition to the multi-window one.

The goal of single-window mode it to provide a flat, non-overlapping working surface for GIMP, that also happen to show up as a single item in the task bar. Good customisability, and compatibility with multi-window mode are also on the menu.

states

Both multi-window and single-window modes have a global configuration in common:

  • the number of docks (columns)—including the toolbox one—with the position and size of each
  • which dockable dialogs are in these docks, with order, size and position

This global aspect comes from the fact that it is annoying at best, and impossible worst-case, for users to add and delete dockable dialogs to both both modes independantly.

For both multi-window and single-window mode GIMP shall persist one configuration. This configuration shall contain:

  • what is side-docked to what (side docked elements have simpler position and height constraints)
  • for single-window:
    • the position and size of the single window
    • the parade configuration: size, position

Out of the box GIMP ships with defaults for both configurations.

  • the default for multi-window mode the defaults shall be those used in 2.6
  • the defaults for single-window mode shall be: TBD (everything clicked together)

When users change any aspect of their multi-window or single-window set-up, for instance by rearranging their windows or docks, then this shall be automatically persisted in the relevant configuration.

switching

There shall be one settings item at the bottom of the Windows menu, titled "Single-window mode" which upon being toggled shall enforce the other (i.e. now relevant) configuration on the window(s) and docks layout.

docking

Before specifying the docking interaction of toolbox and dockable dialogs in docks (aka inspectors), let’s look at the requirements. We need a system where: