Work in progress on text
Contents
Text in GIMP
towards solution models
Grouping of task packages
IN
- typography aka in-text-layouting
- character and paragraph level
- preset functionality and behavior
- OpenType implementation may need to be postponed
- lots of functions -> much screen space
- toolbox space?
- editing modes
- editor, on canvas, HUD
- level of abstraction
- availability and placement of functions
- switching between modes
- basic shape
- non-shape, rectangle
- creation
- modification
- text in 2D-space
- needs logical specification
- needs ui implementation, how to make the two tools work together
- dependencies: vector tool, GEGL (for non-destructiveness)
- minor number of functions inside text tool. most adjustment is done in vector tool
OUT
- annotations
- differ in many dimensions to usual text:
- need to be turned on and off quickly
- have no need for most of the formatting options
- searchable?
- = are better managed by its own system
- differ in many dimensions to usual text:
- complex shape/vector management
- creation and modification of complex shapes and paths is exactly what the new vector tool is made for
- doubling it in the text-tool…
- …overloads the text tool
- …uses space and control used for text-specific work
- with GEGL a "link" between text-object and the shape should do the job
- = should be done in vector tool: unified approach
- text effects
- drop shadow etc. are not unique to text
- useful for different sorts of objects (vectors)
- workflow is "select object" - "apply effect", no matter if it is special to text or a global effect
- = unified approach suits it better
starting points
text (no container) | fixed basic (rectangular) shape | fixed (any) vector shape | |
---|---|---|---|
aims/scenarios | click'n'type
workflow text centered small amounts of text non-strict layouting area/shape is not an object as itself |
layout centered = placement control
prevent/control intereference with other objects on canvas (boundaries) use box as a shape (the box itself is s.th.) justification
|
generally broad variety of aims
free art vs. exact layouting interaction with rest of canvas |
definition | one corner is defined (e.g. its coordinates) | all four sides are defined.
when reaching the right side, text is wrapped when reaching the lower side, text runs out of the box and is visually clipped |
same as in fixed basic shape |
creating | click + enter text,
sets start point of baseline resulting "shape" is always rectangular |
click + drag
? convert rectangular vector shape + enter text? |
|
modifying | resize -> becomes fixed shape
in-text layouting might modify shape rotate
move stroke/fill convert to fixed shape convert to vector shape |
resize shape (alters line breaks)
rotate
move stroke/fill convert to dynamic shape convert to vector shape |
resize shape (alters line breaks)
node manipulation (alters line breaks) rotate
move any other transformation applicable to vectors stroke/fill conversion to dynamic shape (e.g. unbind from vector) not possible to make basic shape |
two subcases of the dynamic and fixed basic shape are missing from this analysis.
- a fixed basic shape, that does not clip: lines over the bottom of the box are not clipped. Rather, the box is extended.
- workaround: this can easily be achieved by vertically resizing the box
- a fixed basic shape, that does not wrap: text runs out of the right side of the box, but is invisible outside the box. only manual line breaks cause new lines. However it is clipped at the bottom of the box
- workaround: if wrapping is a property of text on a paragraph level (by default set to positive), this can be turned off. In combination with a fixed shape it allows for a replication of above case.
conclusion: these special cases can be replicated with existing means. A native implementation would complicate the system too much and is much less appealing than the simplicity of the current implementation.