---
name: "TextComp"
section: "3"
platform: "linux"
package: "ivtools-dev"
version: "1.1.3-4"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/TextComp"
---

# TextComp(3)

multiline text component subject, view, structured graphic, and PostScript external representation

## NAME

TextComp, TextView, TextGraphic, PSText - multiline text component subject, view, structured graphic, and PostScript external representation

## SYNOPSIS

**#include \<Unidraw/Components/text.h\>**

## DESCRIPTION

TextComp is a GraphicComp that defines a piece of multiline text.  It uses a TextGraphic (a subclass of Label) to store its graphical attributes.  TextView is a GraphicView for displaying the text. PSText is a PostScriptView that externalizes the subject's information in PostScript form.

## TEXTCOMP PUBLIC OPERATIONS

- **TextComp(TextGraphic\* = nil)**

  The constructor takes an optional TextGraphic that defines the attributes of the text.

- **virtual void Interpret(Command\*)**

  - **virtual void Uninterpret(Command\*)**

  TextComp redefines (Un)interpret to ignore BrushCmd and PatternCmd and to (un)interpret FontCmd.

- **TextGraphic\* GetText()**

  Return the TextGraphic that defines the text component's attributes. GetText is simply a more specific form of the GetGraphic operation.

## TEXTVIEW PUBLIC OPERATIONS

- **TextView(TextComp\* = nil)**

  Create an TextView, optionally supplying the subject.

- **virtual void Interpret(Command\*)**

  TextView interprets AlignToGridCmd to align its lower-left to the grid.

- **virtual Manipulator\* CreateManipulator(**

  - **Viewer\*, Event&, Transformer\*, Tool\***

  - **)**

  - **virtual void InterpretManipulator(Manipulator\*)**

  TextView redefines its response to manipulation with a GraphicCompTool. GraphicCompTool will let the user position and type out the component's text using TextManip. Positioning of the text will be influenced by gravity, if any. TextView also defines a response to the ReshapeTool to let the user edit the text.  The subject is actually replaced (via ReplaceCmd) with a new TextComp subject positioned at the original TextComp's location but reflecting the edited text.

- **TextComp\* GetTextComp()**

  Return the subject.

## TEXTVIEW PROTECTED OPERATIONS

- **virtual boolean TextChanged()**

  Return whether the text in the subject is any different from that in the view.

## TEXTGRAPHIC PUBLIC OPERATIONS

- **TextGraphic(const char\*, int h, Graphic\* = nil)**

  - **TextGraphic(const char\*, Graphic\*)**

  Create a TextGraphic, specifying its text, optional inter-line spacing, and optional graphic from which to obtain default graphics attributes.  TextGraphic stores a copy of the given string (behavior it inherits from Label).  If inter-line spacing is not specified, then lines will be separated to reflect the font height reported by PSFont.

- **void SetLineHeight(int)**

  - **int GetLineHeight()**

  Explicitly set and get the inter-line spacing.

- **virtual boolean operator == (TextGraphic&)**

  - **virtual boolean operator != (TextGraphic&)**

  Report whether the given graphic contains or does not contain an identical copy of the text in *this*

## PSTEXT PUBLIC OPERATIONS

- **PSText(TextComp\* = nil)**

  Construct a PostScript external representation of the given subject, if any.

## PSTEXT PROTECTED OPERATIONS

- **const char\* Filter(const char\* string, int length)**

  Filter excapes embedded control or other special characters that would cause syntax errors in the PostScript output.

## SEE ALSO

FontCmd(3U), GraphicComp(3U), GraphicCompTool(3U), GraphicView(3U), Grid(3U), Label(3U), PostScriptView(3U), ReshapeTool(3U), align(3U), edit(3U), manips(3U), pspaint(3U)
