OnCanvasTextEditing
On-Canvas Text Editing
[this is a very incomplete draft. Pictures are coming too.]
The overall goal is to make GIMP's text handling suitable for a wide variety of needs, ranging from adding a "signature" to a poster, to designing a full-page text layout. This is not turning GIMP into a word processor or text layout program like Scribus, but rather, supporting international, multilingual typography at a level at least comparable to that of other image editors.
Text-mode cursor and the active text layer
- I-beam size is equal to line height for default font, or for current font if there is an active text box, with a mark for baseline position
- The direction of the I-beam is perpendicular to the text direction (e.g. horizontal for vertical text).
- Clicking anywhere on the canvas (or outside it?) creates a new text box and activates it, with the initial baseline where the mark in the I-beam was when the click was made.
- Clicking inside an existing text layer activates the text layer.
- When the active layer is a text layer and the text tool is current, the active layer's text box is activated.
- Clicking outside an existing activated text layer creates a new text layer and activates it
- Activating a text layer sets it to be the active layer and draws text editing controls.
Text editing controls
- A new text layer by default inherits the style attributes set in Preferences for the text tool.
- Tool Options for the text tool includes buttons, "save styles as default", "copy styes" and "paste styles".
- Copy styles "copies" the style attributes for the current location within the current text layer (if any)
- Paste styles sets the style attributes for the active layer to the values most recently "copied" (if any).
- Tool options does not include font or size or colour. These are only now available in the editing controls, and in Preferences for defaults, to reduce confusion.
- The text editing controls is by default on canvas but can be detached. When detached, there are options to use the default system font for editing, with a preview checkbox, and to load/save to/from an external file (which uses Pango markup?). This would replace the existing text editor window.
Because text editing is complex there are a lot of possible controls. Most people will want only a few of them at any one time. Therefore, they are arranged in groups, and the groups can be shown or hidden in Tool Options.
In the following mock-up the idea is that each rectangle is a separate unit that can be turned on or off in tool options. You could configure what was in each unit in preferences, or by turning on "configure editing controls" and dragging them maybe to/from a special dock??? At least that's how word processors do it. But our toolbox configuration is in Preferences.
You'd be able to drag the units around so they snapped into position. A key binding to turn rules on or off would be helpful (probably there should be a horizontal and vertical ruler).
Shown in the "screenshot" is dragging a text guide, for use maybe with Tab (risky because of what tab does elsewhere in gimp?) if we can get Pango to support variable tab stops.
Users must be able to move the on-canvas controls, so that they can see the part of the design that's otherwise obscured by the controls.