Difference between revisions of "Specifications"

From GIMP GUI Redesign
Jump to: navigation, search
(Design Work 2012)
 
(29 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
Solution models get further developed into UI specifications, ready for implementation.
 
Solution models get further developed into UI specifications, ready for implementation.
  
==version 2.4==
+
== Design Work 2012 ==
  
===selection/crop tool specification===
+
===[[Rethinking GIMP Tool Options]]===
  
This is the specification for the rectangle + oval selection, and the
+
A solutions model for the Tool Options.
crop tools. It is based on the state of GIMP 2.3.13, and is now updated with the realities of 2.3.18.
 
  
====handling the rectangle on the canvas====
+
===[[Text-Handling in GIMP]]===
  
The algorithm for the size of the corner handles as implemented ('''new''' handle height = rectangle height / 4, CLAMPed by 5 and 50, handle width  = rectangle width  / 4, CLAMPed by 5 and 50) allows fast interaction:
+
beyond the Text tool: a redesign of the complete [[Text-Handling in GIMP]]
  
[[image:2.4_basic_corners.png]]
+
==SoC 11==
  
what is black in this image shall be rendered inverted on the canvas.
+
===[[warp tool specification]]===
  
Each corner handle shall enable users to resize the bounding rectangle by dragging one of them, where the diagonally opposite corner of the bounding rectangle shall be the anchor point.
+
iWarp goes [[warp tool specification | to the toolbox]].
  
The rectangle cornered by the corner handles shall be the move area: one big handle where users shall be able to move the bounding rectangle around the canvas by dragging this area:
+
==SoC 09==
  
[[image:2.4_move_area.png‎]]
+
===[[paint dynamics specification]]===
  
''the gray area shown here is purely for illustration in this spec and shall not be rendered in GIMP''
+
This is the [[paint dynamics specification  | specification]] for controlling paint dynamics.
  
Areas between two adjacent corner handles are called a side handle.
+
==version 2.8==
  
The height of the two horizontal side handles shall be exactly the corner handle height, ('''new''') and their width shall be the (bounding rectangle width - 3 * corner handle width.
+
===[[cage tool]]===
  
The width of the two vertical side handles shall be exactly the corner handle width, ('''new''') and their height shall be the (bounding rectangle height - 3 * corner handle height.
+
Work in progress on the [[cage tool]].
  
[[image:2.4_side_handles.png‎]]
+
===[[single-window mode specification]]===
  
''the gray area shown here is purely for illustration in this spec and shall not be rendered in GIMP''
+
This is the [[single-window mode specification  | specification]] for the single-window mode, in addition to the multi-window one.
  
This makes the size of the side handles predictable where it counts most (their smallest dimension) and uses the largest dimension to leave a gap to reach the corner handles from within.
+
===[[transformation tool specification]]===
  
The highlighting of all handle as implemented is good enough
+
This is the [[transformation tool specification  | specification]] for the unified transformation tool.
for rock-n-roll. no change. After evaluating the flashing of
 
the side handles when you fly over them to get to a corner
 
handle, I say: not a serious problem, user is focussed on that
 
corner. Make a release and see how users get along with it.
 
  
When the mouse is over one of the handles, and one of the
+
===[[save + export specification]]===
up/down/right/left cursor keys is pressed, the rectangle
 
shall be resized by one (shift: 15) pixel in that direction.
 
incredibly important: the mouse pointer shall move the same pixels
 
in the same direction. This may sound forbidden but it is exactly
 
what the user needs.
 
  
Mouse over rectangle but not over handle? Like above, but move (including the mouse pointer).
+
This [[save + export specification | specification]] defines a clear separation between saving and export, based on version 2.6.
  
====layer/canvas edges====
+
==version 2.6==
  
It shall be possible to start a crop/selection rectangle outside the
+
===[[selection + crop tool specification]]===
layer/canvas. Unless 'allow growing' for crop is checked (see below) the
 
actual crop/selection rectangle shall be limited by the sides of the
 
layer/canvas, also while the mouse is still down (rubber-banding).
 
This is incredibly important for the 'use ratio' constraint.
 
  
For crop there shall be a new checkbox in the options panel:
+
to be [[selection + crop tool specification  | completed…]]
'allow growing' (default: unchecked). Normally limiting cropping
 
to the exact edges of the layer/canvas has the highest priority,
 
hence the rules above. This checkbox overrides that, and the
 
layer/canvas can be size up by dragging a bigger rectangle
 
around it.
 
  
====the 'use ratio' constraint and the shift key====
+
===[[no image open specification]]===
  
Between the 'Expand from centre' and Highlight checkbox
+
This is the [[no image open specification  | specification]] for the state of GIMP when no image is open. It is still based on a multiple document interface model.
there shall be the 'use ratio' control, for the two select tools and crop.
 
  
[[Image:ratiofield.png]]
+
===[[free-polygon tool specification]]===
  
It is a checkbox, combined with a single textfield and
+
This is the [[free-polygon tool specification  | specification]] for the straight cross between the free selection tool and the new polygon selection tool, developed by Martin Nordholts.
the two portrait + landscape icons from the New dialog.
 
The textfield and icons shall be always displayed in the panel.
 
  
It is extremely important that the textfield shall be
+
==version 2.4==
a single textfield with no up/down arrows. This allows for
 
quicker input. The textfield shall accept the formats
 
A/B and A:B, where A and B are two floating point numbers.
 
 
 
The default value for the textfield shall be "1:1" for
 
the selection tools and
 
<current layer/canvas width>:<current layer/canvas height>
 
for the crop tool. When the user enters a value and confirms
 
it by enter/return or removing the input focus from the textfield,
 
this is the override value for this tool. It shall be displayed and
 
used for this tool for the rest of the runtime session, for every file.
 
This enable a pro to work 8 hours a day to cut out hundreds of 16:9
 
images.
 
 
 
This override value is cleared by clearing any numerical content from the field before confirming. This resets to displaying and using the default value for the tool.
 
 
 
When the checkbox is checked, the ratio shall be enforced while rubber-banding a rectangle. Pressing the shift key while rubber-banding shall toggle the checkbox in the other state.
 
 
 
The two icons shall be just icons, not in pushbuttons like in
 
the New dialog. Clicking one of the icons shall simply enforce
 
portrait or landscape in the textfield by swapping the two
 
number values when necessary.
 
 
 
====the tool option panels====
 
 
 
From all three tool option panels, remove all the Fix buttons,
 
The line with the Aspect fields, and the three buttons below it.
 
 
 
Selecting more than one of constant ratio/width/height actually
 
sets a constant rectangle size and this makes for wild, chaotic
 
rubber-banding behaviour. We could implement a radioing system
 
for these 3 constraints, but the complexity and UI bandwidth
 
usage is too much. So I chose the simple solution: specific
 
widths and heights shall be typed and confirmed by enter/return
 
or removing the input focus from the textfield. Clearing any
 
numerical content from a field before confirming shall just
 
restore the value displayed before the typing commenced.
 
 
 
All lines that contain textfields shall be sized such
 
that they just fit inside a tool option panel that is
 
6 tool icons wide (the default, I believe...).
 
 
 
The guides pop-up menu left side shall be aligned with
 
the left sides of the checkboxes, the pop-up menu right
 
side shall be aligned with the left sides of the textfields.
 
  
====highlight====
+
===[[selection + crop tool specification]]===
  
When the Highlight checkbox is checked, then the darkening
+
This is the [[selection + crop tool specification  | specification]] for the rectangle + oval selection, and the crop tools. It is based on the state of GIMP 2.3.13, and is now updated with the realities of 2.3.18.
effect shall not be displayed during rubber-banding. This
 
allows for precise adjustments.
 

Latest revision as of 07:59, 16 July 2012

Solution models get further developed into UI specifications, ready for implementation.

Design Work 2012

Rethinking GIMP Tool Options

A solutions model for the Tool Options.

Text-Handling in GIMP

beyond the Text tool: a redesign of the complete Text-Handling in GIMP

SoC 11

warp tool specification

iWarp goes to the toolbox.

SoC 09

paint dynamics specification

This is the specification for controlling paint dynamics.

version 2.8

cage tool

Work in progress on the cage tool.

single-window mode specification

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

transformation tool specification

This is the specification for the unified transformation tool.

save + export specification

This specification defines a clear separation between saving and export, based on version 2.6.

version 2.6

selection + crop tool specification

to be completed…

no image open specification

This is the specification for the state of GIMP when no image is open. It is still based on a multiple document interface model.

free-polygon tool specification

This is the specification for the straight cross between the free selection tool and the new polygon selection tool, developed by Martin Nordholts.

version 2.4

selection + crop tool specification

This is the specification for the rectangle + oval selection, and the crop tools. It is based on the state of GIMP 2.3.13, and is now updated with the realities of 2.3.18.