Man color pattern

From LSWiki

Jump to: navigation, search





Color pattern descriptors are used internally by the terminal processing code. There is no need for user code to interact with them, and only core systems developers working on the terminal processing system will need to know about them. The most likely scenario for someone needing to work with them is if a new definition needs to be added to /def/color_texture or /def/color_template, though working from example should usually suffice.

The term "color", as used below, means one of four things. First, it may be a string color as normally handled by the terminal system. Second, it may be a color pattern descriptor. Third, in the case of patterns used by color templates, it may be one of the integer macros which is used to specify where color template arguments should be substituted, these macros being Color_Pattern_Template_Argument_1 through 8. Fourth, when color patterns are converted and cached by /mod/definition/ansi_term.c, the colors in them are rewritten to ANSI escape sequences; this is not normally something anyone needs to be concerned about.

Public Fields

Color_Pattern_Type: The type of color pattern. The types are:

   Color_Pattern_Solid: A simple color block.  The pattern content is the
   color to apply.  Any of the various meanings of "color" will be handled
   correctly, though in the case where the pattern content is another
   color pattern descriptor, the descriptor enclosing it is redundant.
   Color_Pattern_Alternation: A set of colors which will be "stretched"
   across their affected area so that the set is passed through no more
   than once.  The pattern content is an array of two or more colors.
   Color_Pattern_Sequence: A set of colors which is processed at a rate of
   one character per element, so the sequence is followed exactly and is
   repeated as necessary to cover the area affected.  The pattern content
   is an array of two or more colors.
   Color_Pattern_Centered: Two colors, a middle color and an edge color;
   the middle color is spread over a specific percentage of the affected
   area, with the edge color for the remainder.  The pattern content is
   an array of exactly two colors; the first is the middle color and the
   second is the edge color.  Color_Pattern_Spec is the percentage to
   cover with the middle color.

Color_Pattern_Content: The pattern content. The exact interpretation of the pattern content depends on the pattern type, as described under each individual type.

Color_Pattern_Spec: A value specification for the color pattern. Used by centered color patterns for the percentage of affected area to cover with the "middle" color.

Internal Fields

Color_Pattern_Pos: The position within the pattern that the descriptor is currently on. The terminal processing internals use this field, and it is not relevant to someone defining a color texture or color template.

Color_Pattern_Tag: The tag for the descriptor system.

Support Functions

void Color_Pattern_Reset(descriptor dxr)

Resets the Color_Pattern_Pos of the specified descriptor, and any further descriptors contained in its Color_Pattern_Content, to 0.

string Color_Pattern_Code(descriptor dxr)

Attempts to return the terminal-control string that would produce the color pattern given in the descriptor. It is possible to construct color pattern descriptors as abstract data that are impossible to produce from a terminal-control string, so it is safest to only use this function with color patterns which are known to have been derived originally from terminal-control strings.

See Also


Personal tools