Transformation tool specification

From GIMP GUI Redesign
Revision as of 19:45, 1 March 2009 by Guiguru (talk)
Jump to: navigation, search

intro

This is the specification for the unified transformation tool.

This tool has been designed to achieve some very specific goals:

  1. it is a tool for users who know what they are doing, at a pace of a around two actions per second; this tool stays out of their way and does not make them think;
  2. it is a tool to work on pixels creatively, more by feeling than by numbers; this gives us the confidence to ban working with numbers for transformations where this can be useful—scale, move, rotate—to other tools or menu commands;
  3. combining bot points above, we try to enable a positive feedback loop where the result of the last transformation input inspires the next few steps;
  4. it is a tool to supersede the move, scale and shear tools, in a drive to slim down the toolbox; this means that simple things need to remain simple;
  5. it is a tool that provides a more freewheeling alternative to the rotate and perspective tools; as a follow-up to this design the rotate and perspective need a serious refresh—to for instance support getting horizons really horizontal and verticals really vertical for photographers.

pixels, selections, paths and guides

The first thing we have to do is to untangle the mess of the different modes—layer, selection, paths—as used in the 2.6 transform tools. We do that with the following strategy:

  • selections are transformed in any selection tool;
  • paths are transformed in the path tool;
  • pixels are transformed in the transform tool;
  • guides are moved with the transform tool.

intermezzo: tool icon

the tool icon for the transform tool shall be the ‘mouse arrow‘—example: Transform tool icon.png. This enables the tool to be instantly recognised for moving and scaling pixels, and for moving guides.

transforming selections

In any selection tool, either the pending selection or else (each, in a multi-selection future) committed selection shall have a transform icon—Transform icon.png—associated with it on-canvas. Clicking it shall invoke the transform mode;

  • the transform icon shall change into a similarly styled icon representing the current selection tool; clicking it shall commit the transformation (if any) and return to the state the selection tool was in just before invoking the transform mode;
  • only the marching-ants outline of this (pending) selection shall remain and the smallest transform rectangle that can contain this outline shall be overlaid;
  • the selection tool shall remain the official active tool in the toolbox, but the tool options shall be swapped out for the ones of the transform tool;
  • the transform tool shall operate on the marching ants outline;