Main Page   Modules   Class Hierarchy   Compound List   Compound Members  

IpeText Class Reference
[Ipe Objects]

The text object. More...

Inherits IpeObject.

List of all members.

Public Methods


Detailed Description

The text object.

The text object is a tricky Ipe object. It has a Latex-source representation, which needs to be translated into PDF by Pdflatex before it can be saved as PDF.

A text object is either a label or a minipage. The IsMiniPage() method tells you which. Its dimensions are given by Width(), Height(), and Depth(), but they are recomputed by Ipe when running LaTeX, with the exception of the width for minipage objects (whose width is fixed). Before Latex has been run, the dimensions are not reliable.

The position of the reference point relative to the text box is given by VerticalAlignment() and HorizontalAlignment(). The text can also by transformed by the TextMatrix() (it is set from the style sheet, using the Size() attribute), which is applied to the whole text box, with the reference point as the fix point.

Text can be either transformable, or fixed. In the first case, the Matrix() is applied to the complete text box (after the TextMatrix()), in the second case, the Matrix() is only applied to the reference point Position(), and the text box remains fixed relative to the reference point.

The Text() must be a legal LaTeX fragment that can be interpreted by LaTeX inside \hbox, possibly using the macros or packages defined in the preamble.


Constructor & Destructor Documentation

IpeText::IpeText const IpeAllAttributes   attr,
IpeString    data,
const IpeVector   pos,
IpeScalar    width,
const IpeStyleSheet   sheet
[explicit]
 

Create minipage object, with top-left alignment.

IpeText::IpeText const IpeAllAttributes   attr,
IpeString    data,
const IpeVector   pos,
const IpeStyleSheet   sheet
[explicit]
 

Create label object, with bottom-left alignment.

IpeText::IpeText IpeRepository   rep,
const IpeXmlAttributes   attr,
IpeString    data
[explicit]
 

Create from XML stream.

IpeText::IpeText const IpeText &    rhs
 

Copy constructor.

IpeText::~IpeText  
 

Destructor.


Member Function Documentation

IpeObject * IpeText::Clone   [virtual]
 

Clone object.

Implements IpeObject.

IpeText * IpeText::AsText   [virtual]
 

Return pointer to this object.

Reimplemented from IpeObject.

void IpeText::SaveAsXml IpePainter   painter,
IpeStream   stream,
IpeString    layer
const [virtual]
 

Save object to XML stream.

Implements IpeObject.

void IpeText::Draw IpePainter   painter const [virtual]
 

Save text as PDF.

Implements IpeObject.

void IpeText::Accept IpeVisitor   visitor const [virtual]
 

Call VisitText of visitor.

Implements IpeObject.

void IpeText::AddToBBox IpeRect   box,
const IpeMatrix   m
const [virtual]
 

Extend box to include the object transformed by m.

For Ipe objects in a page, don't call this directly. The IpePgObject caches the bounding box, so it is far more efficient to call IpePgObject::BBox.

If called with an empty box, the result of this function is a tight bounding box for the object, with a little leeway in case the boundary is determined by a spline (it has to be approximated to perform this operation).

Implements IpeObject.

double IpeText::Distance const IpeVector   v,
const IpeMatrix   m,
double    bound
const [virtual]
 

Return distance of transformed object to point v. If larger than bound, can just return bound.

Implements IpeObject.

void IpeText::SnapVtx const IpeVector   mouse,
const IpeMatrix   m,
IpeVector   pos,
double &    bound
const [virtual]
 

Compute possible vertex snapping position for transformed object.

Looks only for positions closer than bound. If successful, modify pos and bound.

Implements IpeObject.

void IpeText::NotifyStyle const IpeStyleSheet   sheet,
IpeAttributeSeq   seq
const [virtual]
 

Update text matrix, check size.

Reimplemented from IpeObject.

void IpeText::Quadrilateral const IpeMatrix   m,
IpeVector    v[4]
const
 

Return quadrilateral including the text.

This is the bounding box transformed by the text matrix, correctly transformed by Matrix(), taking into consideration whether the object is transformable.

IpeVector IpeText::Align   const
 

Return position of reference point in text box coordinate system.

Assume a coordinate system where the text box has corners (0,0) and (Width(), TotalHeight()). This function returns the coordinates of the reference point in this coordinate system.

IpeVector IpeText::Position   [inline]
 

Return text position.

IpeString IpeText::Text   [inline]
 

Return text source.

IpeAttribute IpeText::Size   [inline]
 

Return font size.

bool IpeText::IsMiniPage   [inline]
 

Return true if text object is a minipage.

void IpeText::SetMiniPage bool    mp
 

Change between label and paragraph type.

IpeText::THorizontalAlignment IpeText::HorizontalAlignment   [inline]
 

Return horizontal alignment of text object.

IpeText::TVerticalAlignment IpeText::VerticalAlignment   [inline]
 

Return vertical alignment of text object.

void IpeText::SetHorizontalAlignment THorizontalAlignment    align
 

Change horizontal alignment (text moves with respect to reference point).

void IpeText::SetVerticalAlignment TVerticalAlignment    align
 

Change vertical alignment (text moves with respect to reference point).

IpeScalar IpeText::Width   [inline]
 

Return width of text object.

IpeScalar IpeText::Height   [inline]
 

Return height of text object (from baseline to top).

IpeScalar IpeText::Depth   [inline]
 

Return depth of text object.

IpeScalar IpeText::TotalHeight   [inline]
 

Return height + depth of text object.

bool IpeText::IsTransformable   [inline]
 

Return true if text object can be transformed.

IpeMatrix IpeText::TextMatrix   const [inline]
 

Return the text matrix.

This is always a linear matrix, that is, its translation component is zero.

void IpeText::SetTransformable bool    transf
 

Set whether the text object can be transformed.

This invalidates (and destroys) the XForm.

void IpeText::SetSize IpeAttribute    size
 

Set font size of text.

This invalidates (and destroys) the XForm.

void IpeText::SetWidth IpeScalar    width
 

Set width of paragraph.

This invalidates (and destroys) the XForm. The function panics if object is not a minipage.

void IpeText::SetText IpeString    text
 

Sets the text of the text object.

This invalidates (and destroys) the XForm.

void IpeText::SetXForm XForm *    xform const
 

Update the PDF code for this object.

const IpeText::XForm * IpeText::GetXForm   const [inline]
 

Return the PDF representation of this text object.

If Pdflatex has not been run yet, returns 0.


The documentation for this class was generated from the following files: