The library libipelua implements Lua bindings for many classes in Ipelib. The bindings are available in Lua ipelets, as well as in Lua scripts executed using the ipescript program.
These pages document the Lua bindings to Ipelib:
When writing Ipelets in Lua, you have access to additional methods provided by the Ipe program itself:
Examples
Here is a Lua script that reads an Ipe document and then recenters each page on the paper. You can run this script as "ipescript recenter".
The following script prints out all the gradients defined in a document:
And here is a script that shows how to add a gradient to a document (the same technique works for tilings and effects):
For more examples, have a look at the scripts in your Ipe installation, such as add-style.lua or update-styles.lua.
virtual double distance(const Vector &v, const Matrix &m, double bound) const =0
Return distance from v to subpath transformed by m.
Color fill() const
Return current fill color.
Definition: ipepainter.h:114
Linear()
Create identity matrix.
Definition: ipegeo.h:489
bool isStandard() const
Return whether this is the standard style sheet built into Ipe.
Definition: ipestyle.h:119
double len() const
Definition: ipegeo.cpp:137
int glyphIndex(int ch) noexcept
Definition: ipefonts.cpp:335
TVerticalAlignment verticalAlignment() const
Definition: ipeattributes.h:316
@ EPNG
Definition: ipethumbs.h:44
const int OLDEST_FILE_FORMAT
Oldest readable file format version.
Definition: ipebase.h:70
const Text * pageNumber(int page, int view) const noexcept
Definition: iperesources.cpp:256
virtual void accept(Visitor &visitor) const override
Call visitPath of visitor.
Definition: ipepath.cpp:293
virtual bool getString(const char *prompt, String &str)=0
double degrees() const
Definition: ipegeo.cpp:80
@ EPropOpacity
Definition: ipeattributes.h:77
virtual Reference * asReference()
Return pointer to this object.
Definition: ipereference.cpp:123
Attribute gradient() const
Return current gradient fill.
Definition: ipepainter.h:141
virtual void doNewPath()
Perform new path operator.
int view
Definition: iperesources.h:77
virtual Path * asPath()
Return pointer to this object if it is an Path, nullptr otherwise.
Definition: ipeobject.cpp:269
Fixed iOpacity
Definition: ipepainter.h:58
TTransformations iTransformations
Definition: ipestyle.h:50
PdfNull()
Definition: ipepdfparser.h:75
void addGradient(Attribute name, const Gradient &s)
Add gradient to this style sheet.
Definition: ipestyle.cpp:190
void setLineJoin(TLineJoin join)
Set line join.
Definition: ipepainter.cpp:368
void lineTo(const Vector &v)
Add line segment to current subpath.
Definition: ipepainter.cpp:179
XmlAttributes()
Constructor for an empty collection.
Definition: ipexml.cpp:43
@ EMeta
Definition: ipecanvas.h:71
Text()
Construct an empty internal text object.
Definition: ipetext.cpp:60
virtual Group * asGroup()
Return pointer to this object.
Definition: ipegroup.cpp:125
PdfBool(bool val)
Definition: ipepdfparser.h:83
FileFormat
There are several Ipe document formats.
Definition: ipedoc.h:61
Page * iPage
Definition: ipelet.h:82
int layerOf(int i) const
Return layer of object at index i.
Definition: ipepage.h:154
const PdfDict * getDict(const PdfDict *d, String key) const noexcept
Definition: iperesources.cpp:62
int countTotalViews() const
Return total number of views in all pages.
Definition: ipedoc.cpp:535
Filter stream adding ASCII85 encoding.
Definition: ipeutils.h:79
bool operator!=(const Vector &rhs) const
Inequality.
Definition: ipegeo.h:355
int height() const
Definition: ipethumbs.h:71
virtual const PdfNull * null() const noexcept
Return this object as PDF null object.
Definition: ipepdfparser.cpp:118
virtual void doDrawPath(TPathMode mode)
Actually draw the path.
Definition: ipeutils.cpp:149
bool snap(const Vector &v, double &t, Vector &pos, double &bound) const
Find (approximately) nearest point on Bezier spline.
Definition: ipegeo.cpp:954
A geometric shape, consisting of several (open or closed) subpaths.
Definition: ipeshape.h:226
void setPreamble(const String &str)
Set LaTeX preamble.
Definition: ipestyle.h:124
double side(const Vector &p) const
Result is > 0, = 0, < 0 if point lies to the left, on, to the right.
Definition: ipegeo.cpp:340
Arc arc() const
Return segment as Arc.
Definition: ipeshape.cpp:112
Matrix canvasTfm() const
Matrix mapping user coordinates to canvas coordinates.
Definition: ipepdfview.cpp:145
void drawAttributes()
Definition: ipepdfwriter.cpp:118
Angle iAlpha
Definition: ipegeo.h:336
static Attribute BLACK()
Create absolute black color.
Definition: ipeattributes.h:336
Vector iV[2]
The coordinates of the axis endpoints, or the two circle centers.
Definition: ipeattributes.h:177
bool hasAlpha() const
Does the bitmap have transparency?
Definition: ipebitmap.h:150
@ EPropStrokeOpacity
Definition: ipeattributes.h:77
virtual void doClosePath()
Perform closepath operator.
Definition: ipepdfwriter.cpp:86
Group & operator=(const Group &rhs)
Assignment operator (constant-time).
Definition: ipegroup.cpp:101
const PdfDict * findResource(String kind, String name) const noexcept
Definition: iperesources.cpp:79
TVerticalAlignment
Vertical alignment.
Definition: ipeattributes.h:99
Attribute iFill
Fill color.
Definition: ipeattributes.h:425
bool empty() const noexcept
Is the string empty?
Definition: ipebase.h:98
virtual ~Painter()
Virtual destructor.
Definition: ipepainter.cpp:104
@ ERadial
Definition: ipeattributes.h:173
A visitor that recursively scans objects and collects all bitmaps.
Definition: ipeutils.h:44
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute boundary snapping position for transformed object.
Definition: ipereference.cpp:278
TVerticalAlignment iVerticalAlignment
Vertical alignment.
Definition: ipestyle.h:71
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const
Add subpath to box.
Definition: ipeshape.cpp:511
void insertView(int i, String active)
Insert a new view at index i.
Definition: ipepage.cpp:406
virtual void checkStyle(const Cascade *sheet, AttributeSeq &seq) const
Check symbolic size attribute.
Definition: ipetext.cpp:557
String dictRepr() const noexcept
Return PDF representation of the PdfDict without the stream.
Definition: ipepdfparser.cpp:285
void setMarked(bool marked)
Set if page is marked for printing.
Definition: ipepage.cpp:713
Type type() const
Type of segment.
Definition: ipeshape.h:215
bool iSelectionVisible
Definition: ipecanvas.h:217
virtual void doClosePath()
Perform closepath operator.
Definition: ipepainter.cpp:590
@ EGlitterD
Definition: ipeattributes.h:223
virtual ~Ipelet()=0
Pure virtual destructor.
Definition: ipeutils.cpp:692
void setViewMap(int index, const AttributeMap &map)
Set the attribute mapping for the view.
Definition: ipepage.cpp:498
virtual void checkStyle(const Cascade *sheet, AttributeSeq &seq) const
Check all symbolic attributes.
Definition: ipegroup.cpp:376
virtual void drawSimple(Painter &painter) const
Draw simple version for selecting and transforming.
Definition: ipereference.cpp:190
bool iXForm
Definition: ipestyle.h:49
const PageNumberStyle * pageNumberStyle() const
Return page number style.
Definition: ipestyle.cpp:181
std::vector< int > readXRef()
Read xref table (current token is 'xref')
Definition: ipepdfparser.cpp:807
void setState(const State &state)
Set full graphics state at once.
Definition: ipepainter.cpp:453
virtual void doDrawArc(const Arc &arc)
Draw an elliptic arc.
Definition: ipepainter.cpp:574
@ ERGB
Definition: ipebitmap.h:46
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:231
virtual void doDrawArc(const Arc &arc)
Draw an elliptic arc.
Definition: ipecairopainter.cpp:412
void setAttributeMap(const AttributeMap *map)
Set a new attribute map.
Definition: ipepainter.cpp:110
Attribute stroke() const
Return stroke color.
Definition: ipereference.h:80
Attribute(TPathMode pm)
Definition: ipeattributes.h:278
@ EPropSplineType
Definition: ipeattributes.h:81
int countPages() const
Return number of pages of document.
Definition: ipedoc.h:117
void findBitmaps(BitmapFinder &bm) const
Create a list of all bitmaps in the document.
Definition: ipedoc.cpp:381
Buffer pixelData()
Return pixels for rendering.
Definition: ipebitmap.cpp:542
void setShape(const Shape &shape)
Definition: ipepath.cpp:425
String title() const
Return title of this page.
Definition: ipepage.cpp:701
void append(const String &rhs) noexcept
Append rhs to this string.
Definition: ipebase.cpp:292
bool hasType3Font() const noexcept
Definition: ipefonts.cpp:156
bool isString() const
Is it an absolute string value?
Definition: ipeattributes.h:285
QString QIpe(const String &str)
Definition: ipecanvas_qt.h:53
const Object * object(int i) const
Return object at index i (const version).
Definition: ipepage.h:149
String operator[](String str) const
Return attribute with given key.
Definition: ipexml.cpp:57
Color iSymFill
Definition: ipepainter.h:56
virtual long tell() const =0
virtual void putCString(const char *s)
Output C string.
Definition: ipebase.cpp:606
A cubic Bezier spline.
Definition: ipegeo.h:229
Document & operator=(const Document &rhs)=delete
Attribute iSymbolSize
Symbol size.
Definition: ipeattributes.h:434
void setUrl(String url)
Set link destination to use this group as a hyperlink.
Definition: ipegroup.cpp:391
void saveAsXml(Stream &stream) const
save page in XML format.
Definition: ipepage.cpp:98
TLineCap
Line cap style.
Definition: ipeattributes.h:114
virtual void close()
Close the stream. No more writing allowed!
Definition: ipebase.cpp:593
void moveTo(const Vector &v)
Start a new subpath.
Definition: ipepainter.cpp:172
const TextPadding * textPadding() const
Return text object padding (for bbox computation).
Definition: ipestyle.cpp:145
void createNamedDests()
Create the named destinations.
Definition: ipepdfwriter.cpp:1046
const StyleSheet::TitleStyle * findTitleStyle() const
Get style of page titles (or 0 if none defined).
Definition: ipestyle.cpp:756
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Snap to boundary of subpath.
Definition: ipeshape.cpp:746
double iRadius[2]
The radii of the two circles (not used for axial gradients).
Definition: ipeattributes.h:179
int iTransitionTime
Definition: ipeattributes.h:234
String parseToTag()
Parse whitespace and the name of a tag.
Definition: ipexml.cpp:185
@ EGlitterLR
Definition: ipeattributes.h:223
QPointF QPt(const Vector &v)
Definition: ipecanvas_qt.h:43
int iView
Definition: ipecanvas.h:192
double iAngleSize
Angle for angular snapping.
Definition: ipesnap.h:56
double iZoom
Definition: ipecanvas.h:198
Vector operator*(double rhs) const
Vector * scalar.
Definition: ipegeo.h:391
Attribute iColor
Text color.
Definition: ipestyle.h:67
The PDF name object.
Definition: ipepdfparser.h:117
virtual void doDrawBitmap(Bitmap bitmap)
Draw a bitmap.
Definition: ipepainter.cpp:602
Shape & operator=(const Shape &rhs)
Assignment operator (constant-time).
Definition: ipeshape.cpp:812
@ EUncoverTB
Definition: ipeattributes.h:225
std::unique_ptr< PdfDict > iPageResources
Definition: iperesources.h:60
virtual void canvasObserverMouseAction(int button)
Definition: ipecanvas.cpp:56
Vector position() const
Return position of symbol on page.
Definition: ipereference.h:91
Fixed iBlue
Definition: ipeattributes.h:151
void update()
Mark for update with redrawing of objects.
Definition: ipecanvas.cpp:639
LoadErrors
Errors that can happen while loading documents.
Definition: ipedoc.h:87
@ EAlignHCenter
Definition: ipeattributes.h:95
virtual ~CairoPainter()
Definition: ipecairopainter.h:52
virtual const PdfName * name() const noexcept
Return this object as PDF name object.
Definition: ipepdfparser.cpp:199
void setLayerOf(int i, int layer)
Set layer of object at index i.
Definition: ipepage.h:159
@ EHasPen
Definition: ipereference.h:46
@ ESymbolSize
Definition: ipeattributes.h:53
double iWidth
Definition: ipeattributes.h:159
Definition: ipepdfwriter.h:51
Properties of a document.
Definition: ipedoc.h:70
virtual Type type() const override
Definition: ipepath.cpp:287
void setLayout(const Layout &margins)
Set page layout.
Definition: ipestyle.cpp:130
Vector iAutoOrigin
Definition: ipecanvas.h:202
static void drawArrow(Painter &painter, Vector pos, Angle alpha, Attribute shape, Attribute size, double radius)
Definition: ipepath.cpp:346
static Page * basic()
Create a new empty page with standard settings.
Definition: ipepage.cpp:85
Definition: ipepswriter.h:47
void setAdditionalModifiers(int mod)
Set additional modifiers.
Definition: ipecanvas.cpp:200
@ EPropGradient
Definition: ipeattributes.h:77
bool iDefined
Has a PageNumberStyle been defined in the style sheet?
Definition: ipestyle.h:77
virtual Buffer pdfStream(int objNum)
XML contents can refer to data in PDF.
Definition: ipeiml.cpp:68
virtual Attribute getAttribute(Property prop) const noexcept
Get setting of an attribute of this object.
Definition: ipeobject.cpp:342
@ EPropPen
Definition: ipeattributes.h:70
virtual void setMatrix(const Matrix &matrix)
Set the transformation matrix.
Definition: ipeobject.cpp:291
The group object.
Definition: ipegroup.h:44
A directed line segment.
Definition: ipegeo.h:208
int scanObject(const Object *obj)
Definition: ipelatex.cpp:120
virtual void doCurveTo(const Vector &v1, const Vector &v2, const Vector &v3)
Perform curveto operator.
Definition: ipeutils.cpp:112
Vector normal() const
Return a normal vector pointing to the left of the directed line.
Definition: ipegeo.h:409
void clearLayerMatrices(int view)
Definition: ipepage.h:118
String preamble() const
Return Latex preamble.
Definition: ipestyle.h:122
Attribute iDashStyle
Dash style.
Definition: ipeattributes.h:426
void setLayerData(int index, String data)
Set free data field of the layer.
Definition: ipepage.cpp:198
@ Unknown
Unknown file format.
@ ESnapGrid
Definition: ipesnap.h:50
void setMarkedView(int index, bool marked)
Set if view is marked.
Definition: ipepage.cpp:432
void mouseButton(int, Vector)
std::unordered_map< int, int > PdfRenumber
Definition: ipepdfparser.h:44
void setPan(const Vector &v)
Set current pan position.
Definition: ipepdfview.cpp:112
@ EWipeBT
Definition: ipeattributes.h:222
A gradient pattern.
Definition: ipeattributes.h:164
bool exportPages(const char *fname, uint32_t flags, int fromPage, int toPage) const
Export a range of pages to PDF.
Definition: ipedoc.cpp:361
String IpeQ(const QString &str)
Definition: ipecanvas_qt.h:48
int countSubPaths() const
Return number of subpaths.
Definition: ipeshape.h:250
double right() const
Return right side.
Definition: ipegeo.h:149
Map::const_iterator const_iterator
Iterator for (key, value) pairs.
Definition: ipexml.h:48
@ EUncoverLR
Definition: ipeattributes.h:225
The PDF string object.
Definition: ipepdfparser.h:103
void saveComponentsAsXml(Stream &stream) const
Save all the components, one by one, in XML format.
Definition: ipegroup.cpp:153
static Line through(const Vector &p, const Vector &q)
Construct a line through two points.
Definition: ipegeo.cpp:333
A color stop.
Definition: ipeattributes.h:166
TTransformations iTransformations
Allowed transformations.
Definition: ipeattributes.h:451
virtual const PdfDict * dict() const noexcept
Return this object as PDF dictionary object.
Definition: ipepdfparser.cpp:282
const Tiling * findTiling(Attribute sym) const
Definition: ipestyle.cpp:713
@ MarkedView
Create marked views only.
Definition: ipedoc.h:55
void createXml(int compressLevel)
virtual Image * asImage()
Return pointer to this object if it is an Image , nullptr otherwise.
Definition: ipeobject.cpp:275
@ EDotCursor
Definition: ipecanvas.h:75
PdfNumber(double val)
Definition: ipepdfparser.h:94
TSplineType splineType() const
Definition: ipeattributes.h:325
bool visible(int view, int layer) const
Is layer visible in view?
Definition: ipepage.h:111
An absolute RGB color.
Definition: ipeattributes.h:139
void setVisible(int view, String layer, bool vis)
Set visibility of layer layer in view view.
Definition: ipepage.cpp:398
void setTitle(String title)
Set the title of this page.
Definition: ipepage.cpp:694
The text object.
Definition: ipetext.h:41
The PDF null object.
Definition: ipepdfparser.h:73
virtual Attribute getAttribute(Property prop) const noexcept override
Get setting of an attribute of this object.
Definition: ipepath.cpp:783
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Definition: ipereference.cpp:254
TLineCap lineCap() const
Return line cap.
Definition: ipestyle.h:142
TType
There are two types of gradients, along an axis or between two circles.
Definition: ipeattributes.h:173
virtual void save(Stream &stream) const
Save subpath to XML stream.
Definition: ipeshape.cpp:687
int getHexByte()
Extract byte in hex (skipping whitespace).
Definition: ipebase.cpp:510
@ EDictEnd
Definition: ipepdfparser.h:199
TTransformations
Transformations that are permitted for an object.
Definition: ipeattributes.h:128
const char *const property_names[]
Definition: ipeattributes.cpp:60
@ EClosedSpline
Definition: ipeshape.h:89
void updateTool()
Mark for update with redrawing of tool only.
Definition: ipecanvas.cpp:646
void setTitleStyle(const TitleStyle &ts)
Set style of page titles.
Definition: ipestyle.cpp:160
@ ESegment
Definition: ipeshape.h:49
void setProperties(const SProperties &info)
Set document properties.
Definition: ipedoc.cpp:493
bool operator!=(const String &rhs) const noexcept
Operator !=.
Definition: ipebase.h:117
double distance(int i, const Vector &v, double bound) const
Return distance between object at index i and v.
Definition: ipepage.cpp:584
PdfToken token() const noexcept
Definition: ipepdfparser.h:212
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const =0
Add subpath to box.
Cascade * cascade()
Return stylesheet cascade.
Definition: ipedoc.h:139
void insert(int no, Page *page)
Insert a new page.
Definition: ipedoc.cpp:567
XML Parser for Ipe documents and style sheets.
Definition: ipeiml.h:44
A closed B-spline curve.
Definition: ipeshape.h:137
Attribute iColor
Text color.
Definition: ipestyle.h:83
Angle()
Construct uninitialized angle.
Definition: ipegeo.h:79
void pushMatrix()
Save current transformation matrix.
Definition: ipepainter.cpp:238
Layout of a Page.
Definition: ipeattributes.h:190
void appendSubPath(SubPath *sp)
Append a SubPath to shape.
Definition: ipeshape.cpp:936
int createLatexSource(Stream &stream, String preamble)
Definition: ipelatex.cpp:182
Definition: ipepdfview_qt.h:43
Vector orthogonal() const
Return this vector turned 90 degrees to the left.
Definition: ipegeo.cpp:155
@ EOkCancelButtons
Definition: ipelet.h:54
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const =0
Snap to boundary of subpath.
PdfResourceBase()
Definition: iperesources.cpp:42
void skipWhitespace()
Definition: ipexml.cpp:120
void setClip(const Shape &clip)
Set clip path for this group.
Definition: ipegroup.cpp:385
virtual ~PdfPainter()
Definition: ipepdfwriter.h:54
TPathMode iPathMode
Should we stroke and/or fill?
Definition: ipeattributes.h:423
void beziers(std::vector< Bezier > &bez) const
Definition: ipeshape.cpp:731
virtual ~Visitor()
Pure virtual destructor.
Definition: ipeobject.cpp:435
Attribute iFArrowShape
Shape of forward arrows.
Definition: ipeattributes.h:430
void setZoom(double zoom)
Set current zoom factor.
Definition: ipecanvas.cpp:178
TPathMode pathMode() const
Definition: ipeattributes.h:324
@ ECardinalSpline
Definition: ipeshape.h:49
static void checkSymbol(Kind kind, Attribute attr, const Cascade *sheet, AttributeSeq &seq)
Definition: ipeobject.cpp:378
Page * remove(int no)
Remove a page.
Definition: ipedoc.cpp:589
virtual const Ellipse * asEllipse() const
Return this object as an Ellipse, or nullptr if it's not an ellipse.
Definition: ipeshape.cpp:581
static void spline(int n, const Vector *v, std::vector< Bezier > &result)
Convert a clamped uniform B-spline to a series of Bezier splines.
Definition: ipegeo.cpp:717
void drawAxes(cairo_t *cc)
Definition: ipecanvas.cpp:240
Rect pageBBox(const Cascade *sheet) const
Returns a precise bounding box for the artwork on the page.
Definition: ipepage.cpp:329
static const char * readJpegInfo(FILE *file, int &width, int &height, Vector &dotsPerInch, uint32_t &flags)
Read information about JPEG image from file.
Definition: ipebitmap.cpp:672
virtual Type type() const =0
Return type of this subpath.
@ EBoxI
Definition: ipeattributes.h:221
TextType textType() const
Return type of text object.
Definition: ipetext.cpp:246
Symbol & operator=(const Symbol &rhs)
Assignment operator.
Definition: ipestyle.cpp:74
std::vector< Stop > iStops
The color stops.
Definition: ipeattributes.h:185
virtual ~PdfObj()=0
Pure virtual destructor.
Definition: ipepdfparser.cpp:76
const_iterator begin() const
Return iterator for first object.
Definition: ipegroup.h:93
Cascade * replaceCascade(Cascade *cascade)
Replace the entire style sheet cascade.
Definition: ipedoc.cpp:500
const PdfObj * get(String key, const PdfFile *file=nullptr) const noexcept
Look up key in dictionary.
Definition: ipepdfparser.cpp:357
@ EPath
Definition: ipeobject.h:56
Filter stream adding Base64 encoding.
Definition: ipeutils.h:91
virtual Path * asPath() override
Return pointer to this object.
Definition: ipepath.cpp:282
virtual void saveAsXml(Stream &stream, String layer) const override
Save image in XML stream.
Definition: ipeimage.cpp:109
void setPen(Attribute pen)
Set pen, resolving symbolic value.
Definition: ipepainter.cpp:323
bool eos() const noexcept
Definition: ipepdfparser.h:211
void show() const noexcept
Definition: iperesources.cpp:237
@ EVersionTooOld
Definition: ipeiml.h:46
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:153
Matrix canvasTfm() const
Matrix mapping user coordinates to canvas coordinates.
Definition: ipecanvas.cpp:233
Curve()
Create an empty, open subpath.
Definition: ipeshape.cpp:316
void fromMark()
Reset reader to the marked position.
Definition: ipebase.h:208
double iWidth
Definition: ipepdfview.h:92
void popMatrix()
Restore previous transformation matrix.
Definition: ipepainter.cpp:244
@ EPropLabelStyle
Definition: ipeattributes.h:76
void setHorizontalAlignment(THorizontalAlignment align)
Change horizontal alignment (text moves with respect to reference point).
Definition: ipetext.cpp:445
const PdfResources * resources() const noexcept
Return the current PDF resources.
Definition: ipedoc.h:146
TSelect select(int i) const
Return selection status of object at index i.
Definition: ipepage.h:152
std::vector< Bitmap > iBitmaps
Definition: ipeutils.h:51
void setText(String text)
Sets the text of the text object.
Definition: ipetext.cpp:427
virtual ~DataSource()=0
Pure virtual destructor.
Definition: ipebase.cpp:799
@ ESaveDiscardCancelButtons
Definition: ipelet.h:55
bool iAutoSnap
Definition: ipecanvas.h:201
TSnapModes simpleSnap(Vector &pos, const Page *page, int view, double snapDist, Tool *tool=nullptr) const noexcept
Tries vertex, intersection, boundary, and grid snapping.
Definition: ipesnap.cpp:286
const PdfFile * iPdf
Definition: ipepdfview.h:107
Strings and buffers.
Definition: ipebase.h:81
Color primarySelectionColor
Definition: ipecanvas.h:82
virtual void putRaw(const char *data, int size)
Output raw character data.
Definition: ipebase.cpp:613
void setPage(const PdfDict *page, const Rect &paper)
Provide the page to view.
Definition: ipepdfview.cpp:87
double y
Coordinates are public.
Definition: ipegeo.h:126
Angle normalize(double lowlimit)
Normalize the value to the range lowlimit .. lowlimit + 2 pi.
Definition: ipegeo.cpp:87
bool iType3Font
Definition: ipecanvas.h:221
Rect bbox() const
Return a tight bounding box (accurate to within 0.5).
Definition: ipegeo.cpp:936
virtual void doAddClipPath()
Add a clip path.
@ ENotAnIpeFile
The file was not created by Ipe.
Definition: ipedoc.h:91
Attribute find(Kind, Attribute sym) const
Find a symbolic attribute.
Definition: ipestyle.cpp:302
double distance(const Vector &v, double bound) const
Definition: ipegeo.cpp:394
@ ESnapAngle
Definition: ipesnap.h:50
void replace(int i, Object *obj)
Replace the object at index i.
Definition: ipepage.cpp:573
A memory buffer.
Definition: ipebase.h:223
virtual const PdfArray * array() const noexcept
Return this object as PDF array object.
Definition: ipepdfparser.cpp:229
void ensurePrimarySelection()
Definition: ipepage.cpp:774
Vector pan() const
Return current pan.
Definition: ipepdfview.h:62
virtual Type type() const
Return type of this subpath.
Definition: ipeshape.cpp:611
TTransformations transformations() const
Definition: ipeattributes.h:322
virtual void checkStyle(const Cascade *sheet, AttributeSeq &seq) const
Check all symbolic attributes.
Definition: ipeobject.cpp:370
Document()
Construct an empty document for filling by a client.
Definition: ipedoc.cpp:69
@ ECardinalSpline
Definition: ipeattributes.h:104
virtual void mousePressEvent(QMouseEvent *ev)
Definition: ipecanvas_qt.cpp:221
bool iWithAxes
Show coordinate system?
Definition: ipesnap.h:58
friend class ipe::TextCollectingVisitor
Definition: ipelatex.h:92
const PdfObj * value(int index) const noexcept
Definition: ipepdfparser.h:175
Color()
Default constructor.
Definition: ipeattributes.h:142
void setWidth(double width)
Set width of paragraph.
Definition: ipetext.cpp:402
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:201
int iCh
Definition: ipexml.h:96
double height() const
Return height.
Definition: ipegeo.h:168
virtual void doPop()
Perform graphics state pop on output medium.
Definition: ipepdfwriter.cpp:103
void setFillRule(TFillRule rule)
Set fill rule (wind or even-odd).
Definition: ipepainter.cpp:377
FontType
Definition: ipefonts.h:51
@ EHandCursor
Definition: ipecanvas.h:74
virtual void putString(String s)
Output string.
Definition: ipebase.cpp:769
bool parseView(Page &page, AttributeMap &map)
Parse an attribute map.
Definition: ipeiml.cpp:433
bool type3Font()
Has an attempt been made to use a Type3 font?
Definition: ipecanvas.cpp:139
bool isInteger() const
Definition: ipebase.h:394
void pop()
Restore previous graphics state.
Definition: ipepainter.cpp:230
int thinStep
Definition: ipecanvas.h:93
TargetFormat
Definition: ipethumbs.h:44
const Text * titleText() const
Return Text object representing the title text.
Definition: ipepage.cpp:722
TLineCap iLineCap
Line cap style.
Definition: ipeattributes.h:453
Color secondarySelectionColor
Definition: ipecanvas.h:83
bool operator<(const String &rhs) const noexcept
Inequality operator (bytewise comparison).
Definition: ipebase.cpp:367
int viewWidth() const
Return width of view.
Definition: ipepdfview.h:68
Line line() const
Return directed line supporting the segment.
Definition: ipegeo.h:421
virtual int length() const
Return length of input stream in characters.
Definition: ipebase.cpp:808
const Snap & snap() const
Return current snapping information.
Definition: ipecanvas.h:120
int viewHeight() const
Return height of view.
Definition: ipepdfview.h:70
@ EPropStrokeColor
Definition: ipeattributes.h:74
int iPageNo
Definition: ipelet.h:84
@ EBlindsH
Definition: ipeattributes.h:221
int additionalModifiers() const
Return current additional modifiers.
Definition: ipecanvas.h:126
bool markedView(int index) const
Return if view is marked.
Definition: ipepage.h:97
@ EPropFillColor
Definition: ipeattributes.h:74
bool iDimmed
Definition: ipecanvas.h:200
bool saveRender(TargetFormat fm, const char *dst, const Page *page, int view, double zoom)
Definition: ipethumbs.cpp:105
Color stroke() const
Return current stroke color.
Definition: ipepainter.h:112
@ ESpiroSpline
Definition: ipeshape.h:49
virtual ~SubPath()=0
Implementation of pure virtual destructor.
Definition: ipeshape.cpp:568
@ Export
Don't include Ipe markup.
Definition: ipedoc.h:53
const Page * iPage
Definition: ipecanvas.h:190
@ EAlpha
Definition: ipebitmap.h:47
CurveSegment closingSegment() const
Returns the closing segment of a closed path.
Definition: ipeshape.cpp:551
@ EPropRArrow
Definition: ipeattributes.h:71
double height() const
Return height of text object (from baseline to top).
Definition: ipetext.h:185
Vector pos() const
Return last mouse position (snapped!) in user coordinates.
Definition: ipecanvas.h:113
String right(int i) const noexcept
Create substring at the right.
Definition: ipebase.cpp:337
PdfThumbnail(const PdfFile *pdf, int width)
Definition: ipethumbs.cpp:203
bool numberPages
Definition: ipecanvas.h:96
const StyleSheet::PageNumberStyle * findPageNumberStyle() const
Return style of page numbering (or 0 if none defined).
Definition: ipestyle.cpp:766
@ EStandardCursor
Definition: ipecanvas.h:74
virtual void doMoveTo(const Vector &v)
Perform moveto operator.
Definition: ipepdfwriter.cpp:70
String iCreated
Date/time in PDF style "D:20010428191400" format.
Definition: ipedoc.h:80
void addSymbol(Attribute name, const Symbol &symbol)
Add a symbol object.
Definition: ipestyle.cpp:267
TLineCap lineCap() const
Definition: ipeattributes.h:319
Arc()
Construct unit circle.
Definition: ipegeo.h:449
int width() const
Definition: ipethumbs.h:51
virtual void draw(Painter &painter) const =0
Draw the object.
virtual Object * clone() const
Clone a group object (constant-time).
Definition: ipegroup.cpp:119
void setStream(const Buffer &stream)
Add stream data to this dictionary.
Definition: ipepdfparser.cpp:337
StyleSheet * sheet(int index)
Return StyleSheet at index.
Definition: ipestyle.h:189
Layout()
Create null layout.
Definition: ipeattributes.h:192
double distance(const Vector &v) const
Returns distance between line and v.
Definition: ipegeo.cpp:346
@ EBSpline
Definition: ipeattributes.h:104
bool parseBitmap()
Parse an Bitmap.
Definition: ipeiml.cpp:172
virtual double distance(const Vector &v, const Matrix &m, double bound) const override
Definition: ipepath.cpp:520
@ ELabelStyle
Definition: ipeattributes.h:55
PdfArray()
Definition: ipepdfparser.h:141
const Symbol * findSymbol(Attribute sym) const
Definition: ipestyle.cpp:695
double value() const noexcept
Definition: ipepdfparser.h:98
Vector iP
First endpoint.
Definition: ipegeo.h:222
virtual void write(Stream &stream, const PdfRenumber *renumber=nullptr, bool inflate=false) const noexcept=0
Fixed getFixed()
Extract Fixed token (skipping whitespace).
Definition: ipebase.cpp:530
virtual const PdfRef * ref() const noexcept
Return this object as PDF reference object.
Definition: ipepdfparser.cpp:210
virtual void putRaw(const char *data, int size)
Output raw character data.
Definition: ipebase.cpp:739
Matrix iMatrix
Definition: ipeobject.h:144
Bezier()
Default constructor, uninitialized curve.
Definition: ipegeo.h:232
Fixed(int val)
Definition: ipebase.h:157
void drawText(const Text *text)
Render a text object.
Definition: ipepainter.cpp:272
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Snap to boundary of subpath.
Definition: ipeshape.cpp:651
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Return distance from v to subpath transformed by m.
Definition: ipeshape.cpp:517
virtual void drawSimple(Painter &painter) const
Draw simple version for selecting and transforming.
Definition: ipetext.cpp:331
Angle iDir
Direction of x-axis.
Definition: ipesnap.h:60
bool liesBetween(Angle small, Angle large) const
Definition: ipegeo.cpp:99
int count() const
Return number of style sheets.
Definition: ipestyle.h:187
@ EGridSize
Definition: ipeattributes.h:56
static Repository * get()
Get pointer to singleton Repository.
Definition: ipeattributes.cpp:222
@ EPropPinned
Definition: ipeattributes.h:80
@ ECoverLB
Definition: ipeattributes.h:225
@ ETrue
Definition: ipepdfparser.h:198
bool pretty
Definition: ipecanvas.h:89
virtual void doLineTo(const Vector &v)
Perform lineto operator.
Definition: ipepainter.cpp:559
void createTrailer()
Create the root objects and trailer of the PDF file.
Definition: ipepdfwriter.cpp:1077
int countViews() const
Return number of views.
Definition: ipepage.h:83
void push()
Save current graphics state.
Definition: ipepainter.cpp:220
void setTransparent(bool t)
Definition: ipethumbs.h:48
void appendSpline(const std::vector< Vector > &v)
Definition: ipeshape.h:183
virtual const PdfNumber * number() const noexcept
Return this object as PDF number object.
Definition: ipepdfparser.cpp:140
virtual void canvasObserverWheelMoved(double xDegrees, double yDegrees, int kind)
Definition: ipecanvas.cpp:53
bool isMidArrow() const
Is it a symbolic arrow name of the form "arrow/mid-*"?
Definition: ipeattributes.cpp:380
static void closedSpline(int n, const Vector *v, std::vector< Bezier > &result)
Convert a closed uniform cubic B-spline to a series of Bezier splines.
Definition: ipegeo.cpp:779
int iPageNumber
Definition: ipecanvas.h:191
void addPageNumber(int pno, int vno, int npages, int nviews)
Create Text object to represent the page number of this view.
Definition: ipelatex.cpp:146
constexpr double IPE_PI
Definition: ipebase.h:56
virtual const ClosedSpline * asClosedSpline() const
Return this object as an ClosedSpline, or nullptr if it's not a closed spline.
Definition: ipeshape.cpp:682
Definition: ipetext.h:118
static void drawColor(Stream &stream, Color color, const char *gray, const char *rgb)
Definition: ipepdfwriter.cpp:109
void saveAsIpePage(Stream &stream) const
Copy whole page with bitmaps as <ipepage> into the stream.
Definition: ipepage.cpp:788
PdfWriter(TellStream &stream, const Document *doc, const PdfResources *resources, uint32_t flags, int fromPage, int toPage, int compression)
Create a PDF writer operating on this (open and empty) file.
Definition: ipepdfwriter.cpp:263
Style of the title on a page.
Definition: ipestyle.h:59
cairo_font_face_t * cairoFont() noexcept
Definition: ipefonts.h:62
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute vertex snapping position for transformed object.
Definition: ipegroup.cpp:352
bool hasSelection() const
Returns true iff any object on the page is selected.
Definition: ipepage.cpp:757
virtual const PdfNumber * number() const noexcept
Return this object as PDF number object.
Definition: ipepdfparser.cpp:88
bool iNumberPages
Definition: ipedoc.h:78
bool isTagChar(int ch)
Definition: ipexml.h:82
Vector translation() const
Return translation component.
Definition: ipegeo.h:609
Attribute(TLineCap cap)
Definition: ipeattributes.h:274
virtual Object * clone() const =0
Make a copy of this object (constant-time).
virtual void doDrawBitmap(Bitmap bitmap)
Draw a bitmap.
Definition: ipepdfwriter.cpp:205
const AttributeMap * iAttributeMap
Definition: ipepainter.h:169
virtual void message(const char *msg)=0
Show a message in the status bar.
@ EYesNoCancelButtons
Definition: ipelet.h:54
@ EText
Definition: ipeobject.h:56
const PdfDict * iPage
Definition: ipepdfview.h:104
void setFill(Attribute color)
Set fill color, resolving symbolic color.
Definition: ipepainter.cpp:311
std::list< State > iActiveState
Definition: ipepdfwriter.h:83
void setPathMode(TPathMode pm)
Set whether object will be stroked and filled.
Definition: ipepath.cpp:550
@ ErrLatex
Definition: ipedoc.h:153
String parseToTagX()
Parse whitespace and the name of a tag.
Definition: ipexml.cpp:133
double left() const
Return left side.
Definition: ipegeo.h:147
@ ESyntaxError
Definition: ipeiml.h:47
Attribute lookup(Kind kind, Attribute sym) const
Lookup a symbolic attribute.
Definition: ipepainter.cpp:117
Vector iV[4]
Definition: ipegeo.h:259
void pageDictionary(Stream &stream) const
Write part of page dictionary.
Definition: ipeattributes.cpp:143
static void saveAlignment(Stream &stream, THorizontalAlignment h, TVerticalAlignment v)
Definition: ipetext.cpp:285
void appendSegment(const Vector &v0, const Vector &v1)
Append a straight segment to the subpath.
Definition: ipeshape.cpp:322
@ ERoundJoin
Definition: ipeattributes.h:109
StyleSheet()
The default constructor creates an empty style sheet.
Definition: ipestyle.cpp:118
static Attribute ARROW_NORMAL()
Create symbolic attribute "arrow/normal(spx)".
Definition: ipeattributes.h:355
int iRefCount
Definition: ipetext.h:119
double secondarySelectionWidth
Definition: ipecanvas.h:86
Image(const Rect &rect, Bitmap bitmap)
Create a new image.
Definition: ipeimage.cpp:44
Attribute stroke() const
Return stroke color.
Definition: ipetext.h:161
CanvasObserver * iObserver
Definition: ipecanvas.h:188
void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Definition: ipeshape.cpp:279
void setFill(Attribute color)
Set fill color.
Definition: ipereference.cpp:304
void saveAsXml(Stream &stream, bool saveBitmaps=false) const
Save style sheet in XML format.
Definition: ipestyle.cpp:416
void createBookmarks()
Create the bookmarks (PDF outline).
Definition: ipepdfwriter.cpp:975
void setPage(const Page *page, int pno, int view, const Cascade *sheet)
Set the page to be displayed.
Definition: ipecanvas.cpp:152
const_iterator end() const
Return iterator for end of sequence.
Definition: ipegroup.h:95
A subpath of a Path.
Definition: ipeshape.h:86
virtual int length() const override
Return length of input stream in characters.
Definition: ipebase.cpp:883
XmlParser(DataSource &source)
Construct with a data source.
Definition: ipexml.cpp:107
void applyTitleStyle(const Cascade *sheet)
Apply styling to title text object.
Definition: ipepage.cpp:730
virtual Image * asImage() override
Return pointer to this object.
Definition: ipeimage.cpp:92
FileSource(std::FILE *file)
Definition: ipebase.cpp:834
CanvasBase()
Construct a new canvas.
Definition: ipecanvas.cpp:67
Attribute pen() const
Return pen.
Definition: ipereference.h:85
String iText
Template text.
Definition: ipestyle.h:89
virtual Type type() const =0
virtual void close()
Close the stream. No more writing allowed!
Definition: ipeutils.cpp:517
Attribute pen() const
Return object pen.
Definition: ipepath.h:191
virtual Object * clone() const
Clone object.
Definition: ipetext.cpp:193
virtual Type type() const override
Definition: ipeimage.cpp:97
static String freetypeVersion()
Definition: ipefonts.cpp:121
bool parsePage(Page &page)
Parse an Page.
Definition: ipeiml.cpp:199
void rect(const Rect &re)
Add a rectangle subpath to the path.
Definition: ipepainter.cpp:202
@ EPropTransformableText
Definition: ipeattributes.h:81
bool parseStyle(StyleSheet &sheet)
Parse a style sheet.
Definition: ipeiml.cpp:488
Vector operator*(double lhs, const Vector &rhs)
Scalar * vector.
Definition: ipegeo.h:397
@ EString
Definition: ipepdfparser.h:197
The image object.
Definition: ipeimage.h:42
FontType type() const noexcept
Definition: ipefonts.h:59
const Matrix & matrix() const
Return current transformation matrix.
Definition: ipepainter.h:116
Collection of all object attributes.
Definition: ipeattributes.h:420
void setPen(Attribute pen)
Set pen.
Definition: ipereference.cpp:292
@ EHorizontalPin
Definition: ipeattributes.h:123
@ EPropRArrowShape
Definition: ipeattributes.h:73
void operator-=(const Vector &rhs)
Vector-subtraction.
Definition: ipegeo.h:367
void appendSpiroSplinePrecomputed(const std::vector< Vector > &v, int sep)
Append a spiro spline curve with precomputed Bezier control points.
Definition: ipeshape.cpp:402
static StyleSheet * standard()
Create standard built-in style sheet.
Definition: ipestdstyles.cpp:87
@ EIsArrow
Definition: ipereference.h:47
double toDouble() const
Definition: ipebase.h:162
Rect paper() const
Return rectangle describing the paper.
Definition: ipeattributes.h:196
@ EFlyOTB
Definition: ipeattributes.h:224
Attribute size() const
Return symbol size.
Definition: ipereference.h:89
bool has(Kind kind, Attribute sym) const
Check whether symbolic attribute is defined.
Definition: ipestyle.cpp:318
virtual void paintEvent(QPaintEvent *ev)
Definition: ipepdfview_qt.cpp:67
DataSource & iSource
Definition: ipexml.h:94
Attribute iTextStyle
Text style for minipages.
Definition: ipeattributes.h:440
@ ETextStyle
Definition: ipeattributes.h:55
virtual const PdfObj * object(int num) const noexcept
Definition: iperesources.cpp:158
PdfResources()
Definition: iperesources.cpp:116
Ipe Painter using Cairo and Freetype as a backend.
Definition: ipecairopainter.h:48
TEffect iEffect
Definition: ipeattributes.h:233
bool readPdf(DataSource &source)
Read the PDF file created by Pdflatex.
Definition: ipelatex.cpp:411
bool isIpeXForm(int num) const
Definition: iperesources.cpp:121
Fixed iStrokeOpacity
Definition: ipepainter.h:59
@ ESplitHI
Definition: ipeattributes.h:220
Definition: ipethumbs.h:42
bool snap(const Vector &mouse, Vector &pos, double &bound) const
Snap to nearby vertex.
Definition: ipegeo.cpp:182
A widget (control) that displays an Ipe document page.
Definition: ipecanvas_gtk.h:42
virtual void checkStyle(const Cascade *sheet, AttributeSeq &seq) const
Check all symbolic attributes.
Definition: ipereference.cpp:235
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:142
int count() const
Return number of component objects.
Definition: ipegroup.h:89
Flags
Definition: ipebitmap.h:45
virtual void putChar(char ch)=0
Output character.
Type
Definition: ipeobject.h:56
double x
Coordinates are public.
Definition: ipegeo.h:125
void setCustom(Attribute value)
Set the 'custom' attribute (not used by Ipe, for users and ipelets)
Definition: ipeobject.cpp:355
Fixed iRed
Definition: ipeattributes.h:151
void snapBnd(int i, const Vector &mouse, Vector &pos, double &bound) const
Compute possible boundary snapping position for object at index i.
Definition: ipepage.cpp:649
const Cascade * cascade() const
Return current style sheet cascade.
Definition: ipecanvas.h:109
@ ESnapCustom
Definition: ipesnap.h:51
@ EWipeLR
Definition: ipeattributes.h:222
Vector iUnsnappedMousePos
Definition: ipecanvas.h:211
virtual void draw(Painter &painter) const
Draw reference.
Definition: ipereference.cpp:161
bool sectionUsesTitle(int level) const
Does this section title reflect the page title?
Definition: ipepage.h:129
virtual void doMoveTo(const Vector &v)
Perform moveto operator.
Definition: ipeutils.cpp:100
THorizontalAlignment iHorizontalAlignment
Definition: ipeattributes.h:437
Vector operator-() const
Unary minus for Vector.
Definition: ipegeo.h:427
Vector devToUser(const Vector &arg) const
Convert canvas (device) coordinates to user coordinates.
Definition: ipecanvas.cpp:213
Attribute rArrowShape() const
Return shape of reverse arrow.
Definition: ipepath.h:239
void drawGrid(cairo_t *cc)
Definition: ipecanvas.cpp:263
virtual const PdfName * name() const noexcept
Return this object as PDF name object.
Definition: ipepdfparser.cpp:94
String decode() const noexcept
Return value of string after decoding binary strings.
Definition: ipepdfparser.cpp:174
Vector project(const Vector &v) const
Orthogonally project point v onto the line.
Definition: ipegeo.cpp:379
double width() const
Return width.
Definition: ipegeo.h:166
void mouseMove(NSEvent *event)
Definition: ipecanvas_cocoa.cpp:218
bool isNull() const
Is this a null bitmap?
Definition: ipebitmap.h:119
double iBWidth
Definition: ipepdfview.h:93
void scrollWheel(NSEvent *event)
Definition: ipecanvas_cocoa.cpp:253
~Bitmap()
Destructor.
Definition: ipebitmap.cpp:287
Stream & operator<<(char ch)
Output character.
Definition: ipebase.h:262
@ EPropLineJoin
Definition: ipeattributes.h:79
bool type3Font() const
Definition: ipecairopainter.h:58
bool operator==(const Matrix &rhs) const
Check for equality of two matrices.
Definition: ipegeo.h:621
String iDashStyle
Definition: ipepainter.h:51
virtual void snapCtl(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute control point snapping position for transformed object.
Definition: ipegroup.cpp:360
void erase() noexcept
Make string empty.
Definition: ipebase.cpp:285
virtual void save(Stream &stream) const
Save subpath to XML stream.
Definition: ipeshape.cpp:455
Rect iBBox
Definition: ipetext.h:120
LatexType iTexEngine
Definition: ipedoc.h:76
The PDF reference object (indirect object).
Definition: ipepdfparser.h:128
static Attribute SYM_FILL()
Create symbolic attribute "sym-fill".
Definition: ipeattributes.h:351
bool iFArrow
Arrow forward?
Definition: ipeattributes.h:428
Paint objects using this painter to compute an accurate bounding box.
Definition: ipeutils.h:54
@ ESnapVtx
Definition: ipesnap.h:48
void setTextType(TextType type)
Change type.
Definition: ipetext.cpp:435
bool operator==(const String &rhs) const noexcept
Equality operator (bytewise comparison).
Definition: ipebase.cpp:353
virtual void mouseReleaseEvent(QMouseEvent *ev)
Definition: ipecanvas_qt.cpp:226
Shape()
Construct an empty shape (zero subpaths).
Definition: ipeshape.cpp:789
Attribute iStrokeOpacity
Stroke opacity.
Definition: ipeattributes.h:456
@ EHasSize
Definition: ipereference.h:46
virtual void doDrawPath(TPathMode mode)
Actually draw the path.
virtual void accept(Visitor &visitor) const
Call visitGroup of visitor.
Definition: ipegroup.cpp:160
TSplineType
Spline type.
Definition: ipeattributes.h:104
virtual bool setAttribute(Property prop, Attribute value)
Set an attribute on this object.
Definition: ipeobject.cpp:316
Two-dimensional vector.
Definition: ipegeo.h:96
static UINT getDpiForWindow(HWND hwnd)
Definition: ipecanvas_win.cpp:531
@ EGroup
Definition: ipeobject.h:56
Attribute opacity() const
Return opacity of the opject.
Definition: ipepath.h:69
~Shape()
Destructor (takes care of reference counting).
Definition: ipeshape.cpp:803
@ EBoxO
Definition: ipeattributes.h:221
static Attribute BACKGROUND()
Create symbolic attribute "Background".
Definition: ipeattributes.h:347
@ ENormal
Definition: ipeattributes.h:220
void setBackground(const Color &bg)
Set background color.
Definition: ipepdfview.cpp:96
A85Stream(Stream &stream)
Definition: ipeutils.cpp:193
virtual int messageBox(const char *text, const char *details, int buttons)=0
Pop up a modal message box.
void drawFrame(cairo_t *cc)
Definition: ipecanvas.cpp:346
virtual void accept(Visitor &visitor) const
Call visitReference of visitor.
Definition: ipereference.cpp:134
~Cascade()
Destructor.
Definition: ipestyle.cpp:642
void add(const AttributeMapping &map)
Add a mapping.
Definition: ipeattributes.cpp:502
Matrix inverse() const
Return inverse.
Definition: ipegeo.cpp:531
@ EPropPathMode
Definition: ipeattributes.h:75
void intersect(const Line &l, std::vector< Vector > &result) const
Compute intersection points of Arc with Line.
Definition: ipegeo.cpp:1377
CurveSegment segment(int i) const
Return segment.
Definition: ipeshape.cpp:448
virtual void drawSimple(Painter &painter) const override
Draw simple version for selecting and transforming.
Definition: ipeimage.cpp:136
void fill(std::vector< QPixmap > &icons, std::vector< String > &labels)
Definition: ipeselector_qt.cpp:77
Face(const PdfDict *d, const PdfResourceBase *resources) noexcept
Definition: ipefonts.cpp:185
int countSegments() const
Return number of segments. This does not include the closing segment for a closed path.
Definition: ipeshape.h:174
Attribute style() const
Return Latex style of text object.
Definition: ipetext.h:173
Attribute dashStyle() const
Return object line style.
Definition: ipepath.h:197
void setName(const String &name)
Set name of style sheet.
Definition: ipestyle.h:151
static Vector ZERO
The origin (zero vector).
Definition: ipegeo.h:122
virtual void doPop()
Perform graphics state pop on output medium.
Definition: ipecairopainter.cpp:383
virtual void putChar(char ch)
Output character.
Definition: ipeutils.cpp:493
int countPages() const
Return number of pages.
Definition: ipepdfparser.h:240
void drawArc(const Arc &arc)
Add an elliptic arc to current path.
Definition: ipepainter.cpp:194
Tool * iTool
Definition: ipecanvas.h:189
virtual QSize sizeHint() const
Definition: ipecanvas_qt.cpp:126
double iZoom
Definition: ipepdfview.h:95
void setLayerMatrix(int view, int layer, const Matrix &m)
Set matrix for the given layer in this view.
Definition: ipepage.cpp:481
String getLine(int &index) const noexcept
Return line starting at position index. Index is updated to point to next line.
Definition: ipebase.cpp:260
@ EDCT
Definition: ipebitmap.h:48
bool isGray() const
Is the bitmap grayscale?
Definition: ipebitmap.h:143
Attribute iGradient
Gradient pattern.
Definition: ipeattributes.h:458
Group()
Create empty group (objects can be added later).
Definition: ipegroup.cpp:49
@ ETransformationsAffine
Definition: ipeattributes.h:130
@ EImage
Definition: ipeobject.h:56
void insert(int i, TSelect sel, int layer, Object *obj)
Insert a new object at index i.
Definition: ipepage.cpp:545
String value() const noexcept
Definition: ipepdfparser.h:123
Service provider for Ipelets.
Definition: ipelet.h:52
void setOpacity(Attribute opaq)
Set opacity of the object.
Definition: ipetext.cpp:394
int countLayers() const noexcept
Return number of layers.
Definition: ipepage.h:58
Path(const AllAttributes &attr, const Shape &shape, bool withArrows=false)
Create for given shape.
Definition: ipepath.cpp:198
Tool * tool()
Definition: ipecanvas.h:154
Definition: iperesources.h:63
char getChar()
Extract next character (not skipping anything).
Definition: ipebase.h:189
Adds position feedback to IpeStream.
Definition: ipebase.h:278
Factory for Ipe leaf objects.
Definition: ipefactory.h:42
static Attribute ONE()
Create absolute number one.
Definition: ipeattributes.h:340
const PdfArray * getArray(String key, const PdfFile *file=nullptr) const noexcept
Look up key and return if it is an array.
Definition: ipepdfparser.cpp:381
@ EPropTransformations
Definition: ipeattributes.h:80
int objNum() const
Return object number of the bitmap.
Definition: ipebitmap.h:162
void setBlackout(bool bo)
Set blackout.
Definition: ipepdfview.cpp:102
Base64Source(DataSource &source)
Definition: ipeutils.cpp:403
Kind
The different kinds of attributes.
Definition: ipeattributes.h:53
void saveAsXml(Stream &stream, int id, int pdfObjNum=-1) const
Save bitmap in XML stream.
Definition: ipebitmap.cpp:309
@ EPropRArrowSize
Definition: ipeattributes.h:72
int count() const noexcept
Definition: ipeattributes.h:410
@ ESnapCtl
Definition: ipesnap.h:48
virtual void accept(Visitor &visitor) const =0
Calls visitXXX method of the visitor.
void addTiling(Attribute name, const Tiling &s)
Add tiling to this style sheet.
Definition: ipestyle.cpp:209
virtual void putString(String s)
Output string.
Definition: ipebase.cpp:599
bool key(NSEvent *event)
Definition: ipecanvas_cocoa.cpp:228
static Attribute UNDEFINED()
Create symbolic attribute "undefined".
Definition: ipeattributes.h:345
String iName
Definition: ipetext.h:123
String iPreamble
Definition: ipedoc.h:75
const PdfDict * iStream
Definition: ipepdfview.h:106
Object that converts latex source to PDF format.
Definition: ipelatex.h:49
void updatePdf()
Mark for update with redrawing of PDF document.
Definition: ipepdfview.cpp:165
void remove(Kind kind, Attribute sym)
Removes definition for a symbolic attribute from this stylesheet.
Definition: ipestyle.cpp:345
virtual int getChar() override
Get one more character, or EOF.
Definition: ipebase.cpp:840
int width() const
Definition: ipethumbs.h:70
TextType
Definition: ipetext.h:43
void snapVtx(int i, const Vector &mouse, Vector &pos, double &bound) const
Compute possible vertex snapping position for object at index i.
Definition: ipepage.cpp:627
char operator[](int i) const noexcept
Return character at index i.
Definition: ipebase.h:96
bool paperClip
Definition: ipecanvas.h:95
Fixed iPen
Definition: ipepainter.h:50
void setRarrow(bool arrow, Attribute shape, Attribute size)
Set backward arrow (if the object can take it).
Definition: ipepath.cpp:617
@ EMinipage
Definition: ipetext.h:43
Matrix iM
Definition: ipegeo.h:335
void dictWrite(Stream &stream, const PdfRenumber *renumber, bool inflate, int length) const noexcept
Definition: ipepdfparser.cpp:293
void drawPaper(cairo_t *cc)
Definition: ipepdfview.cpp:152
Angle iBeta
Definition: ipegeo.h:337
bool straight(double precision) const
Definition: ipegeo.cpp:589
Matrix matrix() const
Matrix (if Type() == EArc).
Definition: ipeshape.h:223
virtual ~PdfView()
Definition: ipepdfview_cocoa.cpp:48
Color symFill() const
Return current symbol fill color.
Definition: ipepainter.h:131
Rect rect() const
Return the rectangle occupied by the image on the paper.
Definition: ipeimage.h:88
Color color
The color at this offset.
Definition: ipeattributes.h:170
Rect viewBBox(const Cascade *sheet, int view) const
Returns a precise bounding box for the artwork in the view.
Definition: ipepage.cpp:355
@ ESpiroSpline
Definition: ipeattributes.h:104
static Buffer deflate(const char *data, int size, int &deflatedSize, int compressLevel)
Deflate a buffer in a single run.
Definition: ipeutils.cpp:550
virtual void doCurveTo(const Vector &v1, const Vector &v2, const Vector &v3)
Perform curveto operator.
Definition: ipecairopainter.cpp:400
@ EBlindsV
Definition: ipeattributes.h:221
bool isJpeg() const
Is this bitmap a JPEG photo?
Definition: ipebitmap.h:137
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const override
Compute vertex snapping position for transformed object.
Definition: ipepath.cpp:525
virtual void canvasObserverPositionChanged()
Definition: ipecanvas.cpp:57
PsPainter(const Cascade *style, Stream &stream)
Homogeneous transformation in the plane.
Definition: ipegeo.h:284
void setSnapping(int i, SnapMode mode)
Set snapping of layer i.
Definition: ipepage.cpp:210
Object * parseObject(String tag, Page *page=nullptr, int *currentLayer=nullptr)
parse an Object.
Definition: ipeiml.cpp:360
virtual const PdfDict * baseResources() const noexcept
Definition: iperesources.cpp:167
bool iBlackout
Definition: ipepdfview.h:97
double sqLen() const
Return square of Euclidean length.
Definition: ipegeo.h:343
void setFifiVisible(bool visible)
Set whether Fifi should be shown.
Definition: ipecanvas.cpp:614
bool hasPrefix(const char *rhs) const noexcept
Does string start with this prefix? (bytewise comparison)
Definition: ipebase.cpp:346
int isEmpty() const
True if rectangle is empty.
Definition: ipegeo.h:145
~Face() noexcept
Definition: ipefonts.cpp:299
@ EColor
Definition: ipeattributes.h:53
Vector iPan
Definition: ipecanvas.h:197
Color iBackground
Definition: ipepdfview.h:96
Attribute tiling() const
Return tiling pattern.
Definition: ipepath.h:73
void saveAttributesAsXml(Stream &stream, String layer) const
Write layer, pin, transformations, matrix to XML stream.
Definition: ipeobject.cpp:222
void removeView(int i)
Remove the view at index i.
Definition: ipepage.cpp:416
Color iStroke
Definition: ipepainter.h:48
Effect that Acrobat Reader will show on page change.
Definition: ipeattributes.h:216
bool iGridVisible
Is the grid visible?
Definition: ipesnap.h:54
PdfFileResources(const PdfFile *file)
Definition: iperesources.cpp:99
Attribute(TVerticalAlignment align)
Definition: ipeattributes.h:272
double top() const
Return top side.
Definition: ipegeo.h:153
int findPageFromPageObjectNumber(int objNum) const
Return page number given the PDF object number.
Definition: ipepdfparser.cpp:1184
void drawRect(NSRect rect)
Definition: ipepdfview_cocoa.cpp:71
virtual bool setAttribute(Property prop, Attribute value)
Set an attribute on this object.
Definition: ipetext.cpp:456
int count() const noexcept
Definition: ipepdfparser.h:147
static void cardinalSpline(int n, const Vector *v, double tension, std::vector< Bezier > &result)
Convert a cardinal spline to a series of Bezier splines.
Definition: ipegeo.cpp:808
Filter source adding Base64 decoding.
Definition: ipeutils.h:136
static Fixed fromInternal(int32_t val)
Definition: ipebase.h:399
bool isNull() const
Is this an undefined (null) layout?
Definition: ipeattributes.h:194
int runLatex(String docname, String &logFile)
Definition: ipedoc.cpp:692
TFillRule fillRule() const
Return fill rule.
Definition: ipepath.h:215
@ ESnapInt
Definition: ipesnap.h:49
virtual void close()
Close the stream. No more writing allowed!
Definition: ipeutils.cpp:291
@ EPushTB
Definition: ipeattributes.h:224
Attribute map(Kind kind, Attribute sym) const
Map the given symbolic attribute sym. Returns sym if there is no mapping.
Definition: ipeattributes.cpp:481
virtual const Curve * asCurve() const
Return this object as an Curve, or else nullptr.
Definition: ipeshape.cpp:593
String dashStyle() const
Return current dash style (always absolute attribute).
Definition: ipepainter.h:120
int height() const
Definition: ipethumbs.h:52
Style iStyle
Definition: ipecanvas.h:195
Vector position() const
Return text position.
Definition: ipetext.h:149
bool isSymbolic() const
Is it symbolic?
Definition: ipeattributes.h:282
Vector center() const
Return center of canvas.
Definition: ipecanvas.h:111
Linear inverse() const
Return inverse.
Definition: ipegeo.cpp:501
TType iType
The type of gradient: axial or radial.
Definition: ipeattributes.h:175
~Latex()
Destructor.
Definition: ipelatex.cpp:59
String string() const
Return string representing the attribute.
Definition: ipeattributes.cpp:330
Bitmap bitmap() const
Return Bitmap of the image.
Definition: ipeimage.h:94
void mouseButton(QMouseEvent *ev, int button, bool press)
Definition: ipecanvas_qt.cpp:205
@ ETransformationsRigidMotions
Definition: ipeattributes.h:129
void setTiling(Attribute a)
Set tiling pattern of the object.
Definition: ipepath.cpp:569
void operator+=(const String &rhs) noexcept
Operator syntax for append.
Definition: ipebase.h:104
@ EPropLineCap
Definition: ipeattributes.h:79
bool load(String data)
Create a Shape from XML data.
Definition: ipeshape.cpp:992
const PdfObj * getDeep(const PdfDict *d, String key) const noexcept
Definition: iperesources.cpp:52
void drawPaper(cairo_t *cc)
Definition: ipecanvas.cpp:335
@ EFilledOnly
Definition: ipeattributes.h:91
@ ErrNoText
Definition: ipedoc.h:152
void remove(int index)
Remove a style sheet from the cascade.
Definition: ipestyle.cpp:656
Buffer render(const PdfDict *page)
Definition: ipethumbs.cpp:220
@ EArrowSize
Definition: ipeattributes.h:53
virtual void draw(Painter &painter) const override
Draw the object.
Definition: ipepath.cpp:431
virtual ~CanvasObserver()
Definition: ipecanvas.cpp:52
TPinned pinned() const
Definition: ipeattributes.h:321
virtual long tell() const
Definition: ipebase.cpp:786
Fonts(const PdfResourceBase *resources)
Definition: ipefonts.cpp:116
void setZoom(double zoom)
Set current zoom factor.
Definition: ipepdfview.cpp:119
virtual Group * asGroup()
Return pointer to this object if it is an Group, nullptr otherwise.
Definition: ipeobject.cpp:251
Definition: ipecanvas.h:53
bool isColor() const
Is it a color?
Definition: ipeattributes.h:288
const PdfDict * catalog() const noexcept
Return root catalog of PDF file.
Definition: ipepdfparser.cpp:1138
void setGradient(Attribute a)
Set gradient fill of the object.
Definition: ipepath.cpp:577
Abstract base class for PDF objects.
Definition: ipepdfparser.h:57
void setLineJoin(TLineJoin s)
Set line join style.
Definition: ipepath.cpp:632
Attribute stroke() const
Return stroke color.
Definition: ipepath.h:179
void operator+=(const Vector &rhs)
Vector-addition.
Definition: ipegeo.h:361
static Fixed fromDouble(double val)
Definition: ipebase.cpp:435
void setOpacity(Attribute opaq)
Set opacity of the object.
Definition: ipeimage.cpp:190
String iString
The string representing this token.
Definition: ipepdfparser.h:203
int iDepth
Definition: ipetext.h:121
virtual void doDrawText(const Text *text)
Draw a text object.
Definition: ipepainter.cpp:608
Vector simpleSnapPos() const
Return snapped mouse position without angular snapping.
Definition: ipecanvas.cpp:629
Vector iP
Point on the line.
Definition: ipegeo.h:201
virtual void draw(Painter &painter) const override
Draw image.
Definition: ipeimage.cpp:121
String iAuthor
Definition: ipedoc.h:72
TLineJoin lineJoin() const
Definition: ipestyle.cpp:794
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const
snaps to center of ellipse.
Definition: ipeshape.cpp:644
Attribute size() const
Return font size.
Definition: ipetext.h:167
int selectedIndex() const
Definition: ipeselector_qt.h:53
bool isInkMode
Definition: ipecanvas.h:204
A PDF lexical token.
Definition: ipepdfparser.h:195
void setVerticalAlignment(TVerticalAlignment align)
Change vertical alignment (text moves with respect to reference point).
Definition: ipetext.cpp:451
@ EVersionTooRecent
The file version is newer than this Ipelib.
Definition: ipedoc.h:89
virtual void canvasObserverSizeChanged()
Definition: ipecanvas.cpp:59
SProperties properties() const
Return document properties.
Definition: ipedoc.h:135
void objectsPerLayer(std::vector< int > &objcounts) const
Return number of objects in each layer.
Definition: ipepage.cpp:306
Buffer stream() const noexcept
Definition: ipepdfparser.h:177
virtual void mousePressEvent(QMouseEvent *ev)
Definition: ipepdfview_qt.cpp:87
virtual void doDrawBitmap(Bitmap bitmap)
Draw a bitmap.
bool operator!=(const char *rhs) const noexcept
Operator !=.
Definition: ipebase.h:120
Rect(const Vector &c)
Create rectangle containing just the point c.
Definition: ipegeo.h:139
@ EAlignBaseline
Definition: ipeattributes.h:99
@ ESuccess
Definition: ipeiml.h:46
Vector iFrameSize
Size of the frame (the drawing area).
Definition: ipeattributes.h:202
@ EAngleSize
Definition: ipeattributes.h:56
void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const
Snap to vertex of the segment.
Definition: ipeshape.cpp:245
virtual ~PdfViewBase()
destructor.
Definition: ipepdfview.cpp:68
std::vector< Vector > iSnap
Definition: ipestyle.h:52
std::vector< Attribute > AttributeSeq
A sequence of attribute values.
Definition: ipeattributes.h:394
String operator+(const String &rhs) const noexcept
Concatenate this string with rhs.
Definition: ipebase.cpp:375
virtual void putChar(char ch)
Output character.
Definition: ipeutils.cpp:273
double iLeft
Definition: ipeattributes.h:213
void setDimmed(bool dimmed)
Dim whole canvas, except for the Tool.
Definition: ipecanvas.cpp:191
int iGridSize
Snap grid spacing.
Definition: ipesnap.h:55
Rect bbox(int i) const
Return a bounding box for the object at index i.
Definition: ipepage.cpp:617
virtual void mouseDoubleClickEvent(QMouseEvent *ev)
Definition: ipecanvas_qt.cpp:216
static cairo_font_face_t * screenFont()
Return a Cairo font to render to the screen w/o Latex font.
Definition: ipefonts.cpp:133
void setStyle(Attribute style)
Set Latex style of text.
Definition: ipetext.cpp:419
Definition: ipepainter.h:47
Definition: ipeattributes.h:408
PageSelector(QWidget *parent=nullptr)
Construct the widget.
Definition: ipeselector_qt.cpp:56
Vector topRight() const
Return top right corner.
Definition: ipegeo.h:155
const char * data() const noexcept
Return read-only pointer to the data.
Definition: ipebase.h:100
Symbol()
Default constructor.
Definition: ipestyle.cpp:49
void getChar()
Definition: ipexml.h:86
@ ETiling
Definition: ipeattributes.h:56
bool isBoolean() const
Is it a boolean?
Definition: ipeattributes.h:298
bool objSnapsInView(int objNo, int view) const noexcept
Snapping occurs if the layer is visible and has snapping enabled.
Definition: ipepage.cpp:366
@ ETransformationsTranslations
Definition: ipeattributes.h:128
int findDefinition(Kind kind, Attribute sym) const
Find stylesheet defining the attribute.
Definition: ipestyle.cpp:829
Attribute iLabelStyle
Text style for labels.
Definition: ipeattributes.h:441
Base class providing access to PDF objects.
Definition: iperesources.h:46
static Attribute SYM_PEN()
Create symbolic attribute "sym-pen".
Definition: ipeattributes.h:353
virtual void doCurveTo(const Vector &v1, const Vector &v2, const Vector &v3)
Perform curveto operator.
Definition: ipepainter.cpp:566
virtual void snapCtl(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute control point snapping position for transformed object.
Definition: ipeobject.cpp:405
void setSymFill(Attribute color)
Set symbol fill color, resolving symbolic color.
Definition: ipepainter.cpp:431
virtual const Curve * asCurve() const
Return this object as an Curve, or else nullptr.
Definition: ipeshape.cpp:439
StringStream(String &string)
Construct with string reference.
Definition: ipebase.cpp:717
bool checkStyle(AttributeSeq &seq) const
Check all symbolic attributes in the document.
Definition: ipedoc.cpp:516
Lex & operator>>(Fixed &d)
Operator syntax for getFixed().
Definition: ipebase.h:201
~PdfFileResources()=default
const_iterator begin() const
Return const iterator for first attribute.
Definition: ipexml.h:51
static Attribute normal(Kind kind)
Return a standard value for attribute of kind.
Definition: ipeattributes.cpp:455
const Tiling * findTiling(Attribute sym) const
Find tiling in style sheet cascade.
Definition: ipestyle.cpp:216
virtual double distance(const Vector &v, const Matrix &m, double bound) const override
Definition: ipeimage.cpp:147
Interface for drawing.
Definition: ipepainter.h:45
@ EWipeRL
Definition: ipeattributes.h:222
void button(bool press, NSEvent *event)
double a[6]
Definition: ipegeo.h:302
bool isLocked(int i) const noexcept
Is layer i locked?
Definition: ipepage.h:64
Attribute(TPinned pin)
Definition: ipeattributes.h:276
Attribute gradient() const
Return gradient fill.
Definition: ipepath.h:75
uint32_t flags() const
Definition: ipereference.h:96
const Effect * findEffect(Attribute sym) const
Definition: ipestyle.cpp:722
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Return distance from v to subpath transformed by m.
Definition: ipeshape.cpp:717
Lex & operator>>(int &i)
Operator syntax for getInt().
Definition: ipebase.h:194
@ EOpacity
Definition: ipeattributes.h:56
String iSubject
Definition: ipedoc.h:73
@ EPen
Definition: ipeattributes.h:53
void drawOpacity(bool withStroke)
Definition: ipepdfwriter.cpp:161
String viewName(int index) const noexcept
Return name of view.
Definition: ipepage.h:93
void drawBitmap(Bitmap bitmap)
Render a bitmap.
Definition: ipepainter.cpp:263
Fixed()
Definition: ipebase.h:158
Attribute iGradient
Definition: ipepainter.h:61
Attribute fill() const
Return fill color.
Definition: ipereference.h:83
bool equal(Bitmap rhs) const
Definition: ipebitmap.cpp:361
String iTopElement
Definition: ipexml.h:95
TTransformations iTransformations
Definition: ipeobject.h:147
static HBITMAP createBitmap(uint8_t *p, int w, int h)
Stream & operator<<(const char *s)
Output C string.
Definition: ipebase.h:266
A cascade of style sheets.
Definition: ipestyle.h:179
PdfDict()
Definition: ipepdfparser.h:155
Vector beginp() const
Return begin point of arc.
Definition: ipegeo.h:475
virtual void visitPath(const Path *obj)
Called on an Path object.
Definition: ipeobject.cpp:447
@ EVersionTooOld
The version of the file is too old.
Definition: ipedoc.h:88
Snap::TSnapModes iFifiMode
Definition: ipecanvas.h:216
int iView
Definition: ipelet.h:84
@ EFixedPin
Definition: ipeattributes.h:124
~PdfArray()
Definition: ipepdfparser.cpp:244
virtual int length() const override
Return length of input stream in characters.
Definition: ipebase.cpp:845
void drawSymbol(Attribute symbol)
Render a symbol.
Definition: ipepainter.cpp:282
void setLineCap(TLineCap cap)
Set line cap.
Definition: ipepainter.cpp:359
String section(int level) const
Return section title at level.
Definition: ipepage.cpp:672
@ EStrokedAndFilled
Definition: ipeattributes.h:91
double iBottom
Definition: ipeattributes.h:213
~Document()
Destructor.
Definition: ipedoc.cpp:77
virtual void draw(Painter &painter) const
Draw the object.
Definition: ipegroup.cpp:269
virtual void save(Stream &stream) const
Save subpath to XML stream.
Definition: ipeshape.cpp:621
virtual void doLineTo(const Vector &v)
Perform lineto operator.
Definition: ipeutils.cpp:106
int size() const noexcept
Return number of bytes in the string.
Definition: ipebase.h:102
double iBHeight
Definition: ipepdfview.h:93
double iTop
Definition: ipeattributes.h:213
static void oldSpline(int n, const Vector *v, std::vector< Bezier > &result)
Convert an old-style Ipe B-spline to a series of Bezier splines.
Definition: ipegeo.cpp:651
AllAttributes iAttributes
Definition: ipelet.h:85
@ EAlignRight
Definition: ipeattributes.h:95
bool exportView(const char *fname, FileFormat format, uint32_t flags, int pno, int vno) const
Export a single view to PDF.
Definition: ipedoc.cpp:338
int rfind(char ch) const noexcept
Return index of last occurrence of ch.
Definition: ipebase.cpp:276
Fixed number() const
Return value of absolute numeric attribute.
Definition: ipeattributes.cpp:349
@ ECoverLR
Definition: ipeattributes.h:225
static Attribute SYM_STROKE()
Create symbolic attribute "sym-stroke".
Definition: ipeattributes.h:349
virtual void invalidate()=0
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const
Add subpath to box.
Definition: ipeshape.cpp:704
Page()
The default constructor creates a new empty page.
Definition: ipepage.cpp:77
void setSnap(const Snap &s)
Set the snapping information.
Definition: ipecanvas.cpp:184
Attribute(TSplineType st)
Definition: ipeattributes.h:279
int height() const
Return height of pixel array.
Definition: ipebitmap.h:131
void untransform(TTransformations trans)
Reset transformation to original one, but with different origin/direction.
Definition: ipepainter.cpp:136
virtual ~IpeletHelper()=0
Pure virtual destructor.
Definition: ipeutils.cpp:708
bool intersects(const Segment &seg, Vector &pt) const
Compute intersection point. Return false if segs don't intersect.
Definition: ipegeo.cpp:430
Vector iOrigin
Origin of coordinate system.
Definition: ipesnap.h:59
Buffer inflate() const noexcept
Return the (uncompressed) stream data.
Definition: ipepdfparser.cpp:451
TFillRule iFillRule
Definition: ipepainter.h:54
const PdfDict * getDict(String key, const PdfFile *file=nullptr) const noexcept
Look up key and return if it is a dictionary.
Definition: ipepdfparser.cpp:372
void snapToPaperAndFrame()
Definition: ipecanvas.cpp:564
Attribute effect(int index) const
Return effect of view.
Definition: ipepage.h:86
void appendUtf8(uint16_t ch) noexcept
Append a single unicode character ch in UTF-8 encoding.
Definition: ipebase.cpp:319
std::unique_ptr< const PdfObj > take(int num)
Take ownership of object with number num, remove from PdfFile.
Definition: ipepdfparser.cpp:1126
virtual void doNewPath()
Perform new path operator.
Definition: ipeutils.cpp:95
double distance(const Vector &v, const Matrix &m, double bound) const
Return distance to the segment.
Definition: ipeshape.cpp:216
@ EOp
Definition: ipepdfparser.h:197
void setPinned(TPinned pin)
Set pinning mode of the object.
Definition: ipeobject.cpp:303
@ EPropFArrowShape
Definition: ipeattributes.h:73
bool snap(const Vector &mouse, Vector &pos, double &bound) const
Snap mouse position to this segment.
Definition: ipegeo.cpp:459
A directed line.
Definition: ipegeo.h:186
virtual Attribute getAttribute(Property prop) const noexcept
Get setting of an attribute of this object.
Definition: ipegroup.cpp:409
@ EPushLR
Definition: ipeattributes.h:224
DeflateStream(Stream &stream, int level)
Definition: ipeutils.cpp:465
~PdfDict()
Definition: ipepdfparser.cpp:327
An ellipse subpath.
Definition: ipeshape.h:116
virtual void canvasObserverToolChanged(bool hasTool)
Definition: ipecanvas.cpp:58
Effect()
Construct default effect.
Definition: ipeattributes.cpp:133
@ EMiterJoin
Definition: ipeattributes.h:109
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const override
Extend box to include the object transformed by m.
Definition: ipepath.cpp:515
Base class for visitors to Object.
Definition: ipeobject.h:152
int colorKey() const
Return the color key or -1 if none.
Definition: ipebitmap.h:156
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const
Extend box to include the object transformed by m.
Definition: ipereference.cpp:226
void closePath()
Close the current subpath.
Definition: ipepainter.cpp:212
void saveAsXml(Stream &stream) const
Save map in XML format.
Definition: ipeattributes.cpp:491
virtual const PdfObj * object(int num) const noexcept
Definition: iperesources.cpp:104
bool iRArrow
Reverse arrow?
Definition: ipeattributes.h:429
Cascade & operator=(const Cascade &rhs)
Assignment operator.
Definition: ipestyle.cpp:631
bool rArrow() const
Does object have a reverse arrow?
Definition: ipepath.h:227
double thinLine
Definition: ipecanvas.h:91
virtual void save(Stream &stream) const =0
Save subpath to XML stream.
THorizontalAlignment iHorizontalAlignment
Text alignment, horizontal.
Definition: ipestyle.h:85
TPathMode pathMode() const
Is the object stroked and filled?
Definition: ipepath.h:173
@ EFlyILR
Definition: ipeattributes.h:224
Lex(String str)
Construct lexical analyzer from a string.
Definition: ipebase.cpp:465
@ ENative
Definition: ipebitmap.h:50
FileStream(std::FILE *file)
Constructor.
Definition: ipebase.cpp:758
bool snapAngularIntersection(Vector &pos, const Line &l, const Page *page, int view, double snapDist) const noexcept
Perform snapping to intersection of angular line and pos.
Definition: ipesnap.cpp:243
virtual void doCurveTo(const Vector &v1, const Vector &v2, const Vector &v3)
Perform curveto operator.
Definition: ipepdfwriter.cpp:80
void removeLayer(String name)
Removes an empty layer from the page.
Definition: ipepage.cpp:292
@ EStringBinary
Definition: ipepdfparser.h:197
TPathMode
Path mode (stroked, filled, or both).
Definition: ipeattributes.h:91
int page
Definition: iperesources.h:76
TLineJoin iLineJoin
Definition: ipepainter.h:53
@ EPropMarkShape
Definition: ipeattributes.h:74
HWND windowId() const
Definition: ipecanvas_win.h:48
TLineJoin lineJoin() const
Return current line join.
Definition: ipepainter.h:125
int iAdditionalModifiers
Definition: ipecanvas.h:203
Color selectionSurroundColor
Definition: ipecanvas.h:84
@ EFalse
Definition: ipepdfparser.h:198
String key(int index) const noexcept
Definition: ipepdfparser.h:174
bool collect(const PdfDict *resources, PdfFile *file)
Collect (recursively) all the given resources (of the one latex page). Takes ownership of all the sca...
Definition: iperesources.cpp:174
friend class CurveSegment
Definition: ipeshape.h:212
Fixed iSymPen
Definition: ipepainter.h:57
void moveLayer(int index, int newIndex)
Moves the position of a layer in the layer list.
Definition: ipepage.cpp:262
constexpr char IPESEP
Definition: ipebase.h:61
std::list< State > iState
Definition: ipepainter.h:166
void skipWhitespace()
Skip over whitespace.
Definition: ipebase.cpp:552
Padding for text bounding box.
Definition: ipeattributes.h:211
void setStroke(Attribute color)
Set stroke color.
Definition: ipereference.cpp:298
virtual Type type() const
Return type of this subpath.
Definition: ipeshape.cpp:434
void setDimmed(bool dim)
Definition: ipecairopainter.h:54
bool arrow() const
Does object have an arrow?
Definition: ipepath.h:221
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute boundary snapping position for transformed object.
Definition: ipegroup.cpp:368
String notes() const
Return notes for this page.
Definition: ipepage.h:138
virtual const PdfNull * null() const noexcept
Return this object as PDF null object.
Definition: ipepdfparser.cpp:82
Rect()
Create empty rectangle.
Definition: ipegeo.h:137
@ EControl
Definition: ipecanvas.h:70
virtual void visitGroup(const Group *obj)
Called on an Group object.
Definition: ipeutils.cpp:56
Fixed opacity() const
Return current opacity.
Definition: ipepainter.h:135
const char * z() const noexcept
Return a C style string with final zero byte.
Definition: ipebase.cpp:226
Fixed iGreen
Definition: ipeattributes.h:151
A style sheet maps symbolic names to absolute values.
Definition: ipestyle.h:55
Object * object(int i)
Return object at index i.
Definition: ipepage.h:147
Base class for all Ipe objects, composite or leaf.
Definition: ipeobject.h:54
double getDouble()
Extract double token (skipping whitespace).
Definition: ipebase.cpp:546
static FileFormat formatFromFilename(String fn)
Determine format of file from filename fn.
Definition: ipedoc.cpp:123
PdfName(const String &val)
Definition: ipepdfparser.h:119
@ EHasStroke
Definition: ipereference.h:45
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Snap to boundary of subpath.
Definition: ipeshape.cpp:541
virtual Object * clone() const
Clone object.
Definition: ipereference.cpp:117
unsigned long int getHexNumber()
Extract hexadecimal token (skipping whitespace).
Definition: ipebase.cpp:523
Attribute find(Kind, Attribute sym) const
Definition: ipestyle.cpp:678
String getName(String key, const PdfFile *file=nullptr) const noexcept
Look up key and return its value if it is a /Name, otherwise return empty string.
Definition: ipepdfparser.cpp:390
~Symbol()
Destructor.
Definition: ipestyle.cpp:87
void add(String key, String val)
Add a new attribute.
Definition: ipexml.cpp:67
void setViewName(int index, String name) noexcept
Set name of view.
Definition: ipepage.h:95
void setInkMode(bool ink)
Set ink mode.
Definition: ipecanvas.h:123
int parsePosition() const
Definition: ipexml.h:76
Vector iPaperSize
Dimensions of the media.
Definition: ipeattributes.h:198
Ellipse(const Matrix &m)
Definition: ipeshape.cpp:605
void setSize(Attribute size)
Set font size of text.
Definition: ipetext.cpp:411
static Bezier quadBezier(const Vector &p0, const Vector &p1, const Vector &p2)
Convert a quadratic Bezier-spline to a cubic one.
Definition: ipegeo.cpp:636
void appendCardinalSpline(const std::vector< Vector > &v, float tension)
Append a cardinal spline curve.
Definition: ipeshape.cpp:369
double zoom() const
Return current zoom.
Definition: ipepdfview.h:64
Vector normalized() const
Return this vector normalized (with length one).
Definition: ipegeo.cpp:144
char * data() noexcept
Return pointer to buffer data.
Definition: ipebase.h:235
double width() const
Return width of text object.
Definition: ipetext.h:179
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:212
Reference(const AllAttributes &attr, Attribute name, Vector pos)
Create a reference to the named object in stylesheet.
Definition: ipereference.cpp:77
double iParagraphSkip
Paragraph skip (between textboxes).
Definition: ipeattributes.h:204
void allNames(Kind kind, AttributeSeq &seq) const
Return all symbolic names in the style sheet cascade.
Definition: ipestyle.cpp:371
Type
Definition: ipeshape.h:49
Segment(const Vector &p, const Vector &q)
Definition: ipegeo.h:212
int width(int ch) const noexcept
Definition: ipefonts.cpp:316
void appendArc(const Matrix &m, const Vector &v0, const Vector &v1)
Append elliptic arc to the subpath.
Definition: ipeshape.cpp:336
void setOpacity(Attribute opaq)
Set opacity.
Definition: ipepainter.cpp:385
bool operator!=(const Bitmap &rhs) const
Two bitmaps are equal if they share the same data.
Definition: ipebitmap.h:180
double iWidth
Definition: ipecanvas.h:207
void setDashStyle(Attribute dash)
Set dash style.
Definition: ipepath.cpp:602
Matrix()
Create identity matrix.
Definition: ipegeo.h:580
@ ESpline
Definition: ipeshape.h:49
bool parseAttributes(XmlAttributes &attr, bool qm=false)
Parse XML attributes.
Definition: ipexml.cpp:239
const Layout * findLayout() const
Find page layout (such as text margins).
Definition: ipestyle.cpp:732
void appendOldSpline(const std::vector< Vector > &v)
Definition: ipeshape.h:185
static Attribute ARROW_ARC()
Create symbolic attribute "arrow/arc(spx)".
Definition: ipeattributes.h:359
@ ESymbol
Definition: ipeattributes.h:57
void setObserver(CanvasObserver *observer)
Set an observer.
Definition: ipecanvas.cpp:530
bool isIdentity() const
Is this the identity matrix?
Definition: ipegeo.h:509
static void cleanup()
Destroy repository object.
Definition: ipeattributes.cpp:250
const PdfDict * page(int pno=0) const noexcept
Return a page of the document.
Definition: ipepdfparser.cpp:1175
const Cascade * cascade() const
Return stylesheet cascade (const version).
Definition: ipedoc.h:141
virtual void draw(Painter &painter) const
Draw subpath (does not call drawPath()).
Definition: ipeshape.cpp:502
TTransformations transformations() const
Return allowed transformations of the object.
Definition: ipeobject.h:79
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Definition: ipetext.cpp:350
void drawFifi(QPainter &q)
Definition: ipecanvas_qt.cpp:350
Definition: ipethumbs.h:67
String left(int i) const noexcept
Create substring at the left.
Definition: ipebase.h:113
TFillRule fillRule() const
Definition: ipeattributes.h:320
PdfViewBase()
Construct a new canvas.
Definition: ipepdfview.cpp:45
Attribute strokeOpacity() const
Return stroke opacity of the opject.
Definition: ipepath.h:71
void setIpeXForm(int num)
Definition: iperesources.cpp:126
@ EFade
Definition: ipeattributes.h:226
cairo_surface_t * iSurface
Definition: ipepdfview.h:100
virtual bool setAttribute(Property prop, Attribute value) override
Set an attribute on this object.
Definition: ipepath.cpp:661
Stream writing into an open file.
Definition: ipebase.h:295
void refreshSurface()
Definition: ipecanvas.cpp:689
PdfView(QWidget *parent, Qt::WindowFlags f=nullptr)
Definition: ipepdfview_qt.cpp:42
Vector iMousePos
Definition: ipecanvas.h:212
void setArrow(bool arrow, Attribute shape, Attribute size)
Set forward arrow.
Definition: ipepath.cpp:608
static Attribute OPAQUE()
Create symbolic attribute "opaque".
Definition: ipeattributes.h:357
Definition: ipeattributes.cpp:53
int size(const std::vector< T > &v)
Definition: ipebase.h:53
@ EDefaultRule
Definition: ipeattributes.h:119
void subdivide(Bezier &l, Bezier &r) const
Subdivide this Bezier curve in the middle.
Definition: ipegeo.cpp:604
void saveRGB(Stream &stream) const
Save to stream in long format.
Definition: ipeattributes.cpp:105
@ EAxial
Definition: ipeattributes.h:173
void push_back(Object *)
Add an object.
Definition: ipegroup.cpp:145
virtual Text * asText()
Return pointer to this object.
Definition: ipetext.cpp:199
static Angle Degrees(double alpha)
Construct an angle in degrees.
Definition: ipegeo.h:83
static Attribute makeTextSize(String str)
Construct text size attribute from string.
Definition: ipeattributes.cpp:439
virtual void invalidate()=0
Angle iAngle
Definition: ipeattributes.h:157
void setOpacity(Attribute opaq)
Set opacity of the object.
Definition: ipepath.cpp:584
int width() const
Return width of pixel array.
Definition: ipebitmap.h:125
Vector()
Uninitialized vector.
Definition: ipegeo.h:99
Information provided to an ipelet when it is run.
Definition: ipelet.h:81
void drawRect(NSRect rect)
Definition: ipecanvas_cocoa.cpp:120
virtual void drawSimple(Painter &painter) const
Draw simple version for selecting and transforming.
Definition: ipegroup.cpp:300
int iPos
Definition: ipexml.h:97
float tension() const
Tension (if Type() == ECardinalSpline)
Definition: ipeshape.cpp:120
void setSlash()
Set that the tag contains the final /.
Definition: ipexml.h:62
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:131
int scanPage(Page *page)
Definition: ipelatex.cpp:129
virtual int position() const override
Return position in stream.
Definition: ipebase.cpp:858
static Object * createImage(String name, const XmlAttributes &attr, Bitmap bitmap)
Create an Image with a given bitmap.
Definition: ipefactory.cpp:63
const Effect * findEffect(Attribute sym) const
Definition: ipestyle.cpp:233
virtual Text * asText()
Return pointer to this object if it is an Text, nullptr otherwise.
Definition: ipeobject.cpp:263
void renameLayer(String oldName, String newName)
Rename a layer.
Definition: ipepage.cpp:316
Attribute()
Default constructor.
Definition: ipeattributes.h:265
int runLatexAsync(String docname, String &texLog, Latex **pConverter)
Run PdfLatex or Xelatex.
Definition: ipedoc.cpp:599
bool boolean() const
Definition: ipeattributes.h:313
virtual Object * clone() const override
Return a clone (constant-time).
Definition: ipepath.cpp:206
double bottom() const
Return bottom side.
Definition: ipegeo.h:151
static void init(HINSTANCE hInstance)
Definition: ipepdfview_win.cpp:183
@ EArrayEnd
Definition: ipepdfparser.h:199
TVerticalAlignment verticalAlignment() const
Return vertical alignment of text object.
Definition: ipetext.h:216
virtual const PdfDict * dict() const noexcept
Return this object as PDF dictionary object.
Definition: ipepdfparser.cpp:103
bool operator!=(const Color &rhs) const
Definition: ipeattributes.h:149
virtual void doPop()
Perform graphics state pop on output medium.
Definition: ipeutils.cpp:90
Subpath consisting of a sequence of CurveSegment's.
Definition: ipeshape.h:156
void appendSpiroSpline(const std::vector< Vector > &v)
Append a spiro spline curve.
Definition: ipeshape.cpp:376
virtual void snapCtl(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute control point snapping position for transformed object.
Definition: ipetext.cpp:375
void addToBBox(Rect &box, const Matrix &m, bool cp) const
Add shape (transformed by m) to box.
Definition: ipeshape.cpp:900
double distance(const Vector &v, double bound) const
This doesn't really compute the distance, but a reasonable approximation.
Definition: ipegeo.cpp:1296
@ ESecondarySelected
Definition: ipeattributes.h:135
@ ECrossCursor
Definition: ipecanvas.h:74
virtual const PdfBool * boolean() const noexcept
Return this object as PDF bool object.
Definition: ipepdfparser.cpp:129
void executeStream(const PdfDict *stream, const PdfDict *resources)
Definition: ipecairopainter.cpp:674
void setLineCap(TLineCap s)
Set line cap.
Definition: ipestyle.cpp:247
String iKeywords
Definition: ipedoc.h:74
virtual int getChar()
Get one more character, or EOF.
Definition: ipeutils.cpp:626
const Shape & clip() const
Definition: ipegroup.h:82
const int FILE_FORMAT
Current file format version.
Definition: ipebase.h:73
virtual void doDrawBitmap(Bitmap bitmap)
Draw a bitmap.
Definition: ipeutils.cpp:122
virtual Attribute getAttribute(Property prop) const noexcept
Get setting of an attribute of this object.
Definition: ipereference.cpp:355
bool setAttribute(int i, Property prop, Attribute value)
Set attribute prop of object at index i to value.
Definition: ipepage.cpp:660
double iBWidth
Definition: ipecanvas.h:208
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const =0
Extend box to include the object transformed by m.
virtual void drawSimple(Painter &painter) const override
Draw simple version for selecting and transforming.
Definition: ipepath.cpp:504
~String() noexcept
Destruct string if reference count has reached zero.
Definition: ipebase.cpp:187
const Shape & shape() const
Return shape of the path object.
Definition: ipepath.h:123
void ipeDebugBuffer(Buffer data, int maxsize)
Definition: ipeplatform.cpp:254
Vector iTranslation
Definition: ipetext.h:124
void setPageNumberStyle(const PageNumberStyle &pns)
Set style of page numbering.
Definition: ipestyle.cpp:175
Attribute iRArrowShape
Shape of reverse arrows.
Definition: ipeattributes.h:431
The PDF dictionary and stream objects.
Definition: ipepdfparser.h:153
const char * data() const noexcept
Return pointer to buffer data (const version).
Definition: ipebase.h:237
TLineCap lineCap() const
Return current line cap.
Definition: ipepainter.h:123
Attribute(THorizontalAlignment align)
Definition: ipeattributes.h:271
Vector bottomRight() const
Return bottom right corner.
Definition: ipegeo.h:161
bool parsePCDATA(String tag, String &pcdata)
Parse PCDATA.
Definition: ipexml.cpp:288
virtual void tabletEvent(QTabletEvent *ev)
Definition: ipecanvas_qt.cpp:240
int findView(String viewNumberOrName) const
Return index of view with given number or name.
Definition: ipepage.cpp:451
void createPageView(int page, int view)
create contents and page stream for this page view.
Definition: ipepdfwriter.cpp:776
virtual TPinned pinned() const
Return total pinning status of group and its elements.
Definition: ipegroup.cpp:335
@ EWipeTB
Definition: ipeattributes.h:222
bool isGray() const
is it an absolute gray value?
Definition: ipeattributes.cpp:111
Definition: iperesources.h:75
virtual void doPush()
Perform graphics state push on output medium.
Definition: ipepdfwriter.cpp:96
bool operator==(const Vector &rhs) const
Equality.
Definition: ipegeo.h:349
TFillRule fillRule() const
Return path fill rule.
Definition: ipestyle.h:146
void setObjNum(int objNum) const
Set object number of the bitmap.
Definition: ipebitmap.h:168
Rect iPaperBox
Definition: ipepdfview.h:105
void invalidateBBox(int i) const
Invalidate the bounding box at index i (the object is somehow changed).
Definition: ipepage.cpp:601
virtual long tell() const
Definition: ipebase.cpp:745
Vector iPan
Definition: ipepdfview.h:94
Filter source adding ASCII85 decoding.
Definition: ipeutils.h:123
Vector operator*(const Vector &rhs) const
Vector bottomLeft() const
Return bottom left corner.
Definition: ipegeo.h:157
~Text()
Destructor.
Definition: ipetext.cpp:124
TFillRule
Fill rule.
Definition: ipeattributes.h:119
@ EPropDashStyle
Definition: ipeattributes.h:75
int canvasHeight() const
Definition: ipecanvas.h:160
TLineJoin
Line join style.
Definition: ipeattributes.h:109
Attribute name() const
Return symbolic name.
Definition: ipereference.h:76
int unicode(int &index) const noexcept
Return Unicode value from UTF-8 string.
Definition: ipebase.cpp:400
TSnapModes snap(Vector &pos, const Page *page, int view, double snapDist, Tool *tool=nullptr, Vector *autoOrg=nullptr) const noexcept
Performs snapping of position pos.
Definition: ipesnap.cpp:370
Errors
Definition: ipeiml.h:46
void drawFifi(cairo_t *cr)
Definition: ipecanvas.cpp:460
virtual void doDrawBitmap(Bitmap bitmap)
Draw a bitmap.
Definition: ipecairopainter.cpp:590
Definition: ipepswriter.h:68
virtual void doDrawPath(TPathMode mode)
Actually draw the path.
Definition: ipepdfwriter.cpp:176
void setNoCrop(bool n)
Definition: ipethumbs.h:49
TSnapModes
The different snap modes as bitmasks.
Definition: ipesnap.h:47
@ EButtCap
Definition: ipeattributes.h:114
bool operator!=(const Attribute &rhs) const
Are two values different (only compares index!)
Definition: ipeattributes.h:332
@ EPropMinipage
Definition: ipeattributes.h:82
bool createHeader(int pno=0, int vno=0)
bool blackout() const
Return current blackout state.
Definition: ipepdfview.h:72
Page * page(int no)
Return page.
Definition: ipedoc.h:125
const std::vector< int > & embedSequence() const noexcept
Definition: iperesources.h:88
A85Source(DataSource &source)
Definition: ipeutils.cpp:314
void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const
Definition: ipeshape.cpp:917
HWND windowId() const
Definition: ipepdfview_win.h:49
Fonts * iFonts
Definition: ipepdfview.h:108
A typeface (aka font), actually loaded (from a font file or PDF file).
Definition: ipefonts.h:53
bool eos()
Definition: ipexml.h:87
How to show page numbers on the paper.
Definition: ipestyle.h:75
Lexical analyser. Seeded with a string.
Definition: ipebase.h:177
cairo_surface_t * iSurface
Definition: ipecanvas.h:209
bool getNumberArray(String key, const PdfFile *file, std::vector< double > &vals) const noexcept
Retrieve an array of numbers and store in vals.
Definition: ipepdfparser.cpp:420
int count() const noexcept
Definition: ipepdfparser.h:173
virtual void doMoveTo(const Vector &v)
Perform moveto operator.
Definition: ipepainter.cpp:552
@ ESplitVI
Definition: ipeattributes.h:220
@ ErrLatexOutput
Definition: ipedoc.h:153
Color gridLineColor
Definition: ipecanvas.h:88
virtual bool setAttribute(Property prop, Attribute value)
Set an attribute on this object.
Definition: ipereference.cpp:316
Rect mediaBox(const PdfDict *page) const
Return mediabox of a page.
Definition: ipepdfparser.cpp:1194
@ ESplitVO
Definition: ipeattributes.h:220
const_iterator end() const
Return const iterator for end of attributes.
Definition: ipexml.h:53
List::const_iterator const_iterator
Definition: ipegroup.h:49
double determinant() const
Return determinant of a linear matrix.
Definition: ipegeo.h:534
void addRect(const Rect &rhs)
Enlarge rectangle to contain rhs rectangle.
Definition: ipegeo.cpp:261
TVerticalAlignment iVerticalAlignment
Vertical alignment of label objects.
Definition: ipeattributes.h:439
Rect bbox() const
Definition: ipeutils.h:57
@ ErrRunLatex
Definition: ipedoc.h:153
Attribute iTiling
Tiling pattern.
Definition: ipeattributes.h:457
Create PDF file.
Definition: ipepdfwriter.h:88
void clear()
Remove all attributes.
Definition: ipexml.cpp:49
void getToken()
Read the next token from the input stream.
Definition: ipepdfparser.cpp:510
@ EReference
Definition: ipeobject.h:56
int internal() const
Definition: ipebase.h:163
PdfObj * getObjectDef(bool lateStream)
Parse an object definition (current token is object number).
Definition: ipepdfparser.cpp:772
virtual ~InflateSource()
Definition: ipeutils.cpp:600
A tiling pattern.
Definition: ipeattributes.h:156
virtual void putChar(char ch)
Output character.
Definition: ipeutils.cpp:200
void add(String key, const PdfObj *obj)
Add a (key, value) pair to the dictionary.
Definition: ipepdfparser.cpp:344
int getInteger(String key, const PdfFile *file=nullptr) const noexcept
Retrieve a single integer.
Definition: ipepdfparser.cpp:411
virtual void snapCtl(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const override
Compute control point snapping position for transformed object.
Definition: ipeimage.cpp:179
@ EErr
Definition: ipepdfparser.h:197
TLineJoin lineJoin() const
Definition: ipeattributes.h:318
The PDF number object.
Definition: ipepdfparser.h:92
CairoPainter(const Cascade *sheet, Fonts *fonts, cairo_t *cc, double zoom, bool pretty)
Construct a painter.
Definition: ipecairopainter.cpp:371
Attribute iTiling
Definition: ipepainter.h:60
Attribute getCustom() const noexcept
Return value of the 'custom' attribute.
Definition: ipeobject.cpp:362
@ EPropFArrow
Definition: ipeattributes.h:71
Fixed point number with three (decimal) fractional digits.
Definition: ipebase.h:155
@ EVersionTooRecent
Definition: ipeiml.h:46
virtual bool closed() const
Is this subpath closed?
Definition: ipeshape.h:160
bool iFifiVisible
Definition: ipecanvas.h:215
virtual const PdfArray * array() const noexcept
Return this object as PDF array object.
Definition: ipepdfparser.cpp:100
void setClosed(bool closed)
Set whether subpath is closed or not.
Definition: ipeshape.cpp:426
virtual const PdfObj * object(int num) const noexcept=0
bool iFullScreen
Definition: ipedoc.h:77
Canvas(GtkWidget *parent)
Definition: ipecanvas_gtk.cpp:177
@ ESVG
Definition: ipethumbs.h:44
virtual TPinned pinned() const
Return pinning mode of the object.
Definition: ipeobject.cpp:297
@ EPropVerticalAlignment
Definition: ipeattributes.h:78
PdfRef(int val)
Definition: ipepdfparser.h:130
int toIndex(String str)
Return index of given string.
Definition: ipeattributes.cpp:238
Color paperColor
Definition: ipecanvas.h:81
@ ECurve
Definition: ipeshape.h:89
bool iDefined
Has a TitleStyle been defined in the style sheet?
Definition: ipestyle.h:61
@ KeepNotes
Keep page notes as PDF annotations even when exporting.
Definition: ipedoc.h:56
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const
Snap to vertex.
Definition: ipeshape.cpp:736
Definition: ipecanvas_cocoa.h:51
static constexpr int WM_PDFVIEW
Definition: ipepdfview_win.h:44
@ ESnapNone
Definition: ipesnap.h:47
void setTextPadding(const TextPadding &pad)
Set padding for text object bbox computation.
Definition: ipestyle.cpp:154
const PdfDict * resourcesOfKind(String kind) const noexcept
Definition: iperesources.cpp:70
@ EFlyOLR
Definition: ipeattributes.h:224
@ EShift
Definition: ipecanvas.h:70
@ EGlitterTB
Definition: ipeattributes.h:223
void setResources(PdfResources *resources)
Update the PDF resources (after running latex).
Definition: ipedoc.cpp:528
Vector iOldFifi
Definition: ipecanvas.h:214
void setGradient(Attribute grad)
Set gradient fill.
Definition: ipepainter.cpp:410
const int IPELIB_VERSION
Ipelib version.
Definition: ipebase.h:66
Object * iObject
Definition: ipestyle.h:51
@ ETextSize
Definition: ipeattributes.h:54
static Attribute WHITE()
Create absolute white color.
Definition: ipeattributes.h:338
double selectionSurroundWidth
Definition: ipecanvas.h:87
Definition: ipecanvas.h:80
int getInt()
Extract integer token (skipping whitespace).
Definition: ipebase.cpp:492
@ EOldSpline
Definition: ipeshape.h:49
bool iExtend
Whether to extend the gradient beyond the endpoints.
Definition: ipeattributes.h:181
void newPath()
Enter path construction mode.
Definition: ipepainter.cpp:164
Fixed pen() const
Return current pen.
Definition: ipepainter.h:118
virtual void draw(Painter &painter) const
Save text as PDF.
Definition: ipetext.cpp:315
const Document * iDoc
Definition: ipelet.h:83
void insert(int index, StyleSheet *sheet)
Insert a style sheet into the cascade.
Definition: ipestyle.cpp:649
static Attribute makeColor(String str, Attribute deflt)
Make a color attribute.
Definition: ipeattributes.cpp:391
@ EDiscardCancelButtons
Definition: ipelet.h:55
void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Definition: ipeshape.cpp:924
double a[4]
Definition: ipegeo.h:276
const TextPadding * findTextPadding() const
Find text padding (for text bbox computation).
Definition: ipestyle.cpp:744
virtual void doAddClipPath()
Add a clip path.
Definition: ipepainter.cpp:626
static FileFormat fileFormat(DataSource &source)
Determine format of file in source.
Definition: ipedoc.cpp:109
void drawObjects(cairo_t *cc)
Definition: ipecanvas.cpp:363
TPinned iPinned
Pinned status. Should newly created text be transformable?
Definition: ipeattributes.h:442
const char *const kind_names[]
Definition: ipeattributes.cpp:54
void setTransformations(TTransformations trans)
Set allowed transformations of the object.
Definition: ipeobject.cpp:309
Stream writing into an String.
Definition: ipebase.h:283
void addClipPath()
Add current path as clip path.
Definition: ipepainter.cpp:289
virtual void doAddClipPath()
Add a clip path.
Definition: ipeutils.cpp:161
double iStep
Definition: ipeattributes.h:158
int find(char ch) const noexcept
Return index of first occurrence of ch.
Definition: ipebase.cpp:239
int primarySelection() const
Return index of primary selection.
Definition: ipepage.cpp:748
double dot(const Vector &lhs, const Vector &rhs)
Dotproduct of two vectors.
Definition: ipegeo.h:403
double offset
Offset between 0.0 and 1.0.
Definition: ipeattributes.h:168
bool has(Kind kind, Attribute sym) const
Definition: ipestyle.cpp:669
virtual Type type() const
Return type of this subpath.
Definition: ipeshape.cpp:677
Vector last() const
Return last control point.
Definition: ipeshape.h:220
Color color() const
Return absolute color.
Definition: ipeattributes.cpp:356
const PdfObj * obj(int index, const PdfFile *file) const noexcept
Return object with index in array.
Definition: ipepdfparser.cpp:265
@ EAlignBottom
Definition: ipeattributes.h:99
virtual void doAddClipPath()
Add a clip path.
Definition: ipepdfwriter.cpp:91
Vector cp(int i) const
Return control point.
Definition: ipeshape.h:56
Cascade()
Create an empty cascade.
Definition: ipestyle.cpp:608
virtual const PdfString * string() const noexcept
Return this object as PDF string object.
Definition: ipepdfparser.cpp:91
bool operator==(const Color &rhs) const
Definition: ipeattributes.cpp:116
virtual double distance(const Vector &v, const Matrix &m, double bound) const =0
Attribute iSize
Text size.
Definition: ipestyle.h:81
static Attribute NORMAL()
Create symbolic attribute "normal".
Definition: ipeattributes.h:343
virtual void draw(Painter &painter) const
Draw subpath (does not call drawPath()).
Definition: ipeshape.cpp:626
double abs(double val)
Definition: ipegeo.h:68
int countMarkedViews() const
Definition: ipepage.cpp:437
void setLateStream(int pos) noexcept
Definition: ipepdfparser.h:180
virtual void draw(Painter &painter) const
Draw subpath (does not call drawPath()).
Definition: ipeshape.cpp:694
TModifiers
Keyboard modifiers.
Definition: ipecanvas.h:70
The PDF bool object.
Definition: ipepdfparser.h:81
PdfPainter(const Cascade *style, Stream &stream)
Definition: ipepdfwriter.cpp:48
Attribute iCustom
Definition: ipeobject.h:145
~Canvas()
Definition: ipecanvas_cocoa.cpp:47
void setActive(int index, String name)
Set active layer of view.
Definition: ipepage.cpp:391
bool operator==(const Linear &rhs) const
Check for equality of two linear matrices.
Definition: ipegeo.h:527
virtual ~DeflateStream()
Definition: ipeutils.cpp:484
bool intersects(const Line &line, Vector &pt)
Does this line intersect line? If so, computes intersection point.
Definition: ipegeo.cpp:368
Property
A Property identifies an attribute that an object can have.
Definition: ipeattributes.h:70
TPinned
Pinning status of objects.
Definition: ipeattributes.h:123
@ EPropFillRule
Definition: ipeattributes.h:79
Arc operator*(const Matrix &lhs, const Arc &rhs)
Transform arc.
Definition: ipegeo.h:635
virtual void addToBBox(Rect &box, const Matrix &m, bool) const override
Extend box to include the object transformed by m.
Definition: ipeimage.cpp:170
virtual bool setAttribute(Property prop, Attribute value) override
Set an attribute on this object.
Definition: ipeimage.cpp:195
void mark()
Mark the current position.
Definition: ipebase.h:205
void setFill(Attribute fill)
Set fill color.
Definition: ipepath.cpp:562
Attribute iPen
Pen (that is, line width).
Definition: ipeattributes.h:427
void savePixels(const char *fname)
Definition: ipebitmap.cpp:509
virtual Attribute getAttribute(Property prop) const noexcept
Get setting of an attribute of this object.
Definition: ipetext.cpp:529
Vector tangent(double t) const
Return tangent direction of curve at parameter t (from 0.0 to 1.0).
Definition: ipegeo.cpp:575
virtual ~PdfResourceBase()
Definition: iperesources.cpp:47
Stream & iStream
Definition: ipepdfwriter.h:79
Attribute iMarkShape
Shape of Mark to create.
Definition: ipeattributes.h:459
virtual void snapCtl(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const override
Compute control point snapping position for transformed object.
Definition: ipepath.cpp:531
Stream & operator<<(const String &s)
Output string.
Definition: ipebase.h:264
virtual const PdfString * string() const noexcept
Return this object as PDF string object.
Definition: ipepdfparser.cpp:151
void setCanvasStyle(const Style &style)
Set style of canvas drawing.
Definition: ipecanvas.cpp:163
Provides the fonts used to render text.
Definition: ipefonts.h:87
virtual void putString(String s)
Output string.
Definition: ipebase.cpp:729
Attribute to
Definition: ipeattributes.h:405
void operator+=(const char *rhs) noexcept
Operator syntax for append.
Definition: ipebase.h:106
Base64Stream(Stream &stream)
Definition: ipeutils.cpp:266
void setTool(Tool *tool)
Set a new tool.
Definition: ipecanvas.cpp:537
void createXmlStream(String xmldata, bool preCompressed)
Create a stream containing the XML data.
Definition: ipepdfwriter.cpp:912
Abstract base class for output streams.
Definition: ipebase.h:247
void curveTo(const Vector &v1, const Vector &v2, const Vector &v3)
Add a Bezier segment to current subpath.
Definition: ipepainter.cpp:186
@ ESquareCap
Definition: ipeattributes.h:114
std::pair< Buffer, Buffer > embed() const
Create the data to be embedded in an XML or PDF file.
Definition: ipebitmap.cpp:471
A Qt widget that displays a list of Ipe pages.
Definition: ipeselector_qt.h:46
static Path * create(const XmlAttributes &attr, String data)
Construct from XML data.
Definition: ipepath.cpp:61
static int selectPageOrView(Document *doc, int page=-1, int startIndex=0, int pageWidth=240, int width=600, int height=480)
Show dialog to select a page or a view.
Definition: ipeselector_cocoa.cpp:277
Attribute iTextSize
Text size. Horizontal alignment of label objects.
Definition: ipeattributes.h:435
int countCP() const
Number of control points.
Definition: ipeshape.h:54
String toString(int index) const
Return string with given index.
Definition: ipeattributes.cpp:231
Snap iSnap
Definition: ipecanvas.h:199
void setSection(int level, bool useTitle, String name)
Set the section title at level.
Definition: ipepage.cpp:686
static Bitmap readJpeg(const char *fname, Vector &dotsPerInch, const char *&errmsg)
Read JPEG image from file.
Definition: ipebitmap.cpp:789
Flags for saving Ipe documents (to PDF)
Definition: ipedoc.h:49
double depth() const
Return depth of text object.
Definition: ipetext.h:191
double iHeight
Definition: ipecanvas.h:207
const AttributeMap & viewMap(int index) const
Definition: ipepage.h:107
int value() const noexcept
Definition: ipepdfparser.h:134
virtual const PdfBool * boolean() const noexcept
Return this object as PDF bool object.
Definition: ipepdfparser.cpp:85
bool iRepaintObjects
Definition: ipecanvas.h:206
const State & state() const
Return full current graphics state.
Definition: ipepainter.h:144
void push_back(Page *page)
Append a new page.
Definition: ipedoc.cpp:573
virtual void setMatrix(const Matrix &matrix) override
Set the transformation matrix.
Definition: ipepath.cpp:543
virtual void invalidate()
Definition: ipepdfview_cocoa.cpp:53
Vector center() const
Return center of rectangle.
Definition: ipegeo.h:163
@ EDefaultCap
Definition: ipeattributes.h:114
void beziers(std::vector< Bezier > &bez) const
Convert spline curve to a sequence of Bezier splines.
Definition: ipeshape.cpp:127
TFillRule fillRule() const
Definition: ipestyle.cpp:803
Vector iOrigin
Origin of the Ipe coordinate system relative to the paper.
Definition: ipeattributes.h:200
void deselectAll()
Deselect all objects.
Definition: ipepage.cpp:766
Vector devToUser(const Vector &arg) const
Convert canvas (device) coordinates to user coordinates.
Definition: ipepdfview.cpp:125
bool setEdge(const Vector &pos, const Page *page, int view) noexcept
Set axis origin and direction from edge near mouse.
Definition: ipesnap.cpp:407
const PdfObj * object(int num) const noexcept
Return object with number num.
Definition: ipepdfparser.cpp:1116
virtual void doDrawSymbol(Attribute symbol)
Draw a symbol.
Definition: ipepainter.cpp:616
BufferSource(const Buffer &buffer)
Definition: ipebase.cpp:870
double determinant() const
Return determinant of the matrix.
Definition: ipegeo.h:615
virtual void draw(Painter &painter) const =0
Draw subpath (does not call drawPath()).
bool iTransformableText
Definition: ipeattributes.h:447
virtual void doDrawText(const Text *text)
Draw a text object.
Definition: ipecairopainter.cpp:612
const Object * object(int i) const
Return object at index i.
Definition: ipegroup.h:91
Attribute opacity() const
Return opacity of the opject.
Definition: ipetext.h:91
void createPageView(int pno=0, int vno=0)
@ EAlignTop
Definition: ipeattributes.h:100
virtual bool setAttribute(Property prop, Attribute value)
Set attribute on all children.
Definition: ipegroup.cpp:418
static Document * load(DataSource &source, FileFormat format, int &reason)
Construct a document from an input stream.
Definition: ipedoc.cpp:225
void setSelect(int i, TSelect sel)
Set selection status of object at index i.
Definition: ipepage.h:157
TSplineType iSplineType
Definition: ipeattributes.h:449
Attribute iRArrowSize
Reverse arrow size.
Definition: ipeattributes.h:433
virtual Type type() const
Definition: ipetext.cpp:204
String iModified
Definition: ipedoc.h:81
@ EAlignVCenter
Definition: ipeattributes.h:100
virtual ~Stream()
Virtual destructor.
Definition: ipebase.cpp:587
@ ENumber
Definition: ipepdfparser.h:197
@ EFlyITB
Definition: ipeattributes.h:224
@ EFileOpenError
Error opening the file.
Definition: ipedoc.h:90
const Matrix & matrix() const
Return transformation matrix.
Definition: ipeobject.h:84
const Cascade * cascade() const
Return style sheet cascade.
Definition: ipepainter.h:110
static Attribute makeDashStyle(String str)
Construct dash style attribute from string.
Definition: ipeattributes.cpp:423
@ EPrimarySelected
Definition: ipeattributes.h:134
void clearViews()
Remove all views of this page.
Definition: ipepage.cpp:424
static Attribute Boolean(bool flag)
Definition: ipeattributes.h:270
Painter(const Cascade *style)
Constructor takes a (cascaded) style sheet, which is not owned.
Definition: ipepainter.cpp:79
bool save(TellStream &stream, FileFormat format, uint32_t flags) const
Save in a stream.
Definition: ipedoc.cpp:287
virtual int getChar()
Get one more character, or EOF.
Definition: ipeutils.cpp:322
void intersectionSnap(const Vector &pos, Vector &fifi, const Page *page, int view, double &snapDist) const noexcept
Perform intersection snapping.
Definition: ipesnap.cpp:189
THorizontalAlignment
Horizontal alignment.
Definition: ipeattributes.h:95
void append(const PdfObj *)
Append an object to array.
Definition: ipepdfparser.cpp:255
const Symbol * findSymbol(Attribute sym) const
Find a symbol object with given name.
Definition: ipestyle.cpp:275
@ EInflate
Definition: ipebitmap.h:49
TLineCap lineCap() const
Definition: ipestyle.cpp:785
An Ipe document page.
Definition: ipepage.h:45
The reference object.
Definition: ipereference.h:43
const Cascade * iCascade
Definition: ipepainter.h:168
@ EPropSymbolSize
Definition: ipeattributes.h:70
void translate(const Vector &v)
Concatenate a translation to current transformation matrix.
Definition: ipepainter.cpp:155
void setXForm(XForm *xform) const
Update the PDF code for this object.
Definition: ipetext.cpp:594
void setSize(Attribute size)
Set size (magnification) of symbol.
Definition: ipereference.cpp:310
Vector unsnappedPos() const
Return last unsnapped mouse position in user coordinates.
Definition: ipecanvas.h:115
void drawArcAsBezier(double alpha)
Draw an arc of the unit circle of length alpha.
Definition: ipepainter.cpp:488
const Cascade * iCascade
Definition: ipecanvas.h:193
bool deflated() const noexcept
Is this stream compressed with flate compression?
Definition: ipepdfparser.cpp:437
virtual void doNewPath()
Perform new path operator.
Definition: ipepainter.cpp:545
PsWriter(TellStream &stream, const Document *doc, bool noColor)
bool intersects(const Rect &rhs) const
Does rectangle intersect other rectangle?
Definition: ipegeo.cpp:235
virtual void close()
Close the stream. No more writing allowed!
Definition: ipeutils.cpp:224
virtual void addToBBox(Rect &box, const Matrix &m, bool) const
Extend box to include the object transformed by m.
Definition: ipetext.cpp:366
void setAutoOrigin(const Vector &v)
Enable automatic angular snapping with this origin.
Definition: ipecanvas.cpp:206
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute vertex snapping position for transformed object.
Definition: ipereference.cpp:268
std::vector< Vector > iCP
Definition: ipeshape.h:153
void intersect(const Line &l, std::vector< Vector > &result) const
Compute intersection points of Bezier with Line.
Definition: ipegeo.cpp:1229
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const
Snap to vertex.
Definition: ipeshape.cpp:529
Performs snapping operations, and stores snapping state.
Definition: ipesnap.h:44
Interface for getting data for parsing.
Definition: ipebase.h:309
Attribute iSize
Text size.
Definition: ipestyle.h:65
GtkWidget * window() const
Definition: ipecanvas_gtk.h:47
void setTiling(Attribute til)
Set tiling pattern.
Definition: ipepainter.cpp:400
void addEffect(Attribute name, const Effect &e)
Definition: ipestyle.cpp:227
virtual String getParameter(const char *key)=0
TFillRule iFillRule
Shape fill rule.
Definition: ipeattributes.h:454
TLineJoin lineJoin() const
Return line join.
Definition: ipestyle.h:144
virtual void doDrawSymbol(Attribute symbol)
Draw a symbol.
Definition: ipepdfwriter.cpp:227
Attribute arrowShape() const
Return shape of arrow.
Definition: ipepath.h:233
@ EPropFArrowSize
Definition: ipeattributes.h:72
The path object (polylines, polygons, and generalizations).
Definition: ipepath.h:42
Fixed mult(int a, int b) const
Return value times (a/b)
Definition: ipebase.cpp:430
Segment()
Create uninitialized segment.
Definition: ipegeo.h:211
A double that's an angle.
Definition: ipegeo.h:76
Bitmap & operator=(const Bitmap &rhs)
Assignment operator (takes care of reference counting).
Definition: ipebitmap.cpp:296
Attribute tiling() const
Return current tiling.
Definition: ipepainter.h:139
virtual ~Group()
Destructor.
Definition: ipegroup.cpp:87
void createPages()
Create all PDF pages.
Definition: ipepdfwriter.cpp:888
static Document * loadWithErrorReport(const char *fname)
Definition: ipedoc.cpp:252
virtual void doDrawText(const Text *text)
Draw a text object.
Definition: ipeutils.cpp:133
Snap iSnap
Definition: ipelet.h:86
int findLayer(String name) const
Find layer with given name.
Definition: ipepage.cpp:226
void transform(int i, const Matrix &m)
Transform the object at index i.
Definition: ipepage.cpp:594
const SubPath * subPath(int i) const
Return subpath.
Definition: ipeshape.h:252
SnapMode
Definition: ipepage.h:47
void drawPath(TPathMode mode)
Fill and/or stroke a path.
Definition: ipepainter.cpp:252
TSelect
Selection status of an object on the page.
Definition: ipeattributes.h:134
bool objectVisible(int view, int objno) const
Is object at index objno visible in view?
Definition: ipepage.h:114
virtual ~CanvasBase()
destructor.
Definition: ipecanvas.cpp:121
static TVerticalAlignment makeVAlign(String str, TVerticalAlignment def)
Return vertical alignment indicated by a name, or else default.
Definition: ipetext.cpp:212
void setPdf(const PdfFile *pdf, Fonts *fonts)
Provide the PDF document.
Definition: ipepdfview.cpp:78
@ ESnapAuto
Definition: ipesnap.h:51
int completeLatexRun(Latex *converter)
Definition: ipedoc.cpp:681
TEffect
The various fancy effects that Acrobat Reader will show.
Definition: ipeattributes.h:219
Repository of strings.
Definition: ipeattributes.h:240
@ EPDF
Definition: ipethumbs.h:44
void draw(Painter &painter) const
Draw the segment.
Definition: ipeshape.cpp:157
Attribute rArrowSize() const
Return size of reverse arrow.
Definition: ipepath.h:251
TLineJoin iLineJoin
Line join style.
Definition: ipeattributes.h:452
String url() const
Definition: ipegroup.h:85
Axis-parallel rectangle (which can be empty)
Definition: ipegeo.h:134
Attribute iOpacity
Opacity.
Definition: ipeattributes.h:455
bool operator<(const Bitmap &rhs) const
Less operator, to be able to sort bitmaps.
Definition: ipebitmap.h:190
@ ERoundCap
Definition: ipeattributes.h:114
static Attribute makeScalar(String str, Attribute deflt)
Make a scalar attribute.
Definition: ipeattributes.cpp:406
const XForm * getXForm() const
Return the PDF representation of this text object.
Definition: ipetext.h:223
AllAttributes()
Constructor sets default values.
Definition: ipeattributes.cpp:515
virtual Type type() const
Definition: ipegroup.cpp:136
All information obtained by parsing a PDF file.
Definition: ipepdfparser.h:232
Vector center() const
Return center of view.
Definition: ipepdfview.h:66
bool project(const Vector &v, Vector &projection) const
Definition: ipegeo.cpp:417
bool operator==(const Bitmap &rhs) const
Two bitmaps are equal if they share the same data.
Definition: ipebitmap.h:174
void saveSelection(Stream &stream) const
Copy selected objects as <ipeselection> into the stream.
Definition: ipepage.cpp:806
Data source for parsing from a buffer.
Definition: ipebase.h:330
void setLineJoin(TLineJoin s)
Set line join.
Definition: ipestyle.cpp:253
@ EWindRule
Definition: ipeattributes.h:119
virtual void doNewPath()
Perform new path operator.
Definition: ipepdfwriter.cpp:65
virtual const PdfRef * ref() const noexcept
Return this object as PDF reference object.
Definition: ipepdfparser.cpp:97
IpeCanvasView * view()
Definition: ipecanvas_cocoa.h:56
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Definition: ipegroup.cpp:340
void setStroke(Attribute stroke)
Set stroke color.
Definition: ipepath.cpp:556
Stream & operator<<(Stream &stream, const Fixed &f)
Definition: ipebase.cpp:442
std::vector< AttributeMapping > iMap
Definition: ipeattributes.h:415
@ EIsMark
Definition: ipereference.h:47
virtual void mouseMoveEvent(QMouseEvent *ev)
Definition: ipecanvas_qt.cpp:231
int iDuration
Definition: ipeattributes.h:235
Attribute iFArrowSize
Forward arrow size.
Definition: ipeattributes.h:432
int iSnap
Activated snapping modes (TSnapModes)
Definition: ipesnap.h:53
Vector endp() const
Return end point of arc.
Definition: ipegeo.h:481
double iBHeight
Definition: ipecanvas.h:208
Stream & operator<<(Stream &stream, const Color &attr)
Definition: ipeattributes.h:465
String iTitle
Definition: ipedoc.h:71
TToken iType
The type of this token.
Definition: ipepdfparser.h:201
std::vector< Matrix > layerMatrices(int view) const
Return matrices for all layers.
Definition: ipepage.cpp:469
double zoom() const
Return current zoom.
Definition: ipecanvas.h:107
bool iCrop
Crop paper to drawing.
Definition: ipeattributes.h:206
Line()
Create default line (x-axis).
Definition: ipegeo.h:189
void add(Kind kind, Attribute name, Attribute value)
Add an attribute.
Definition: ipestyle.cpp:290
String() noexcept
Construct an empty string.
Definition: ipebase.cpp:91
void transform(const Matrix &m)
Concatenate a matrix to current transformation matrix.
Definition: ipepainter.cpp:126
@ SaveNormal
Nothing special.
Definition: ipedoc.h:52
virtual Reference * asReference()
Return pointer to this object if it is an Ref, nullptr otherwise.
Definition: ipeobject.cpp:281
@ EEvenOddRule
Definition: ipeattributes.h:119
PDF parser.
Definition: ipepdfparser.h:206
TFillRule fillRule() const
Return current fill rule.
Definition: ipepainter.h:127
Attribute(TLineJoin join)
Definition: ipeattributes.h:273
virtual void visitImage(const Image *obj)
Called on an Image object.
Definition: ipeutils.cpp:62
virtual void setPosition(int pos)
Set position in stream.
Definition: ipebase.cpp:815
@ EEffect
Definition: ipeattributes.h:57
@ ESplitHO
Definition: ipeattributes.h:220
int lateStream() const noexcept
Definition: ipepdfparser.h:181
void approximate(double precision, std::vector< Vector > &result) const
Approximate by a polygonal chain.
Definition: ipegeo.cpp:620
virtual bool closed() const
Is this subpath closed?
Definition: ipeshape.cpp:575
void setName(Attribute name)
Set name of symbol referenced.
Definition: ipereference.cpp:285
void snapCtl(int i, const Vector &mouse, Vector &pos, double &bound) const
Compute possible control point snapping position for object at index i.
Definition: ipepage.cpp:638
static Object * createObject(String name, const XmlAttributes &attr, String data)
Create an Ipe object by calling the right constructor.
Definition: ipefactory.cpp:47
virtual void putCString(const char *s)
Output C string.
Definition: ipebase.cpp:734
@ EDashStyle
Definition: ipeattributes.h:54
void refreshSurface()
Definition: ipepdfview.cpp:173
Color iFill
Definition: ipepainter.h:49
SnapMode snapping(int i) const noexcept
Does layer i have snapping?
Definition: ipepage.h:66
static Attribute ARROW_FARC()
Create symbolic attribute "arrow/farc(spx)".
Definition: ipeattributes.h:361
@ EVerticalPin
Definition: ipeattributes.h:124
void setStrokeOpacity(Attribute opaq)
Set stroke opacity of the object.
Definition: ipepath.cpp:590
std::unique_ptr< Text > text
Definition: iperesources.h:78
static Attribute ARROW_PTARC()
Create symbolic attribute "arrow/ptarc(spx)".
Definition: ipeattributes.h:363
bool isArcArrow() const
Is it one of the symbolic attributes "arrow/*arc(spc)"?
Definition: ipeattributes.h:368
virtual void setPosition(int pos) override
Set position in stream.
Definition: ipebase.cpp:888
void addLayer()
Add a new layer with unique name.
Definition: ipepage.cpp:241
THorizontalAlignment horizontalAlignment() const
Definition: ipeattributes.h:314
The PDF array object.
Definition: ipepdfparser.h:139
virtual int position() const override
Return position in stream.
Definition: ipebase.cpp:893
Matrix operator*(const Matrix &lhs, const Matrix &rhs)
Matrix multiplication.
Definition: ipegeo.h:587
virtual void setCursor(TCursor cursor, double w=1.0, Color *color=nullptr)=0
int size() const noexcept
Return size of buffer;.
Definition: ipebase.h:233
String repr() const noexcept
Return PDF representation of the object.
Definition: ipepdfparser.cpp:106
static String withData(char *data, int len=0) noexcept
Construct string by taking ownership of given data.
Definition: ipebase.cpp:113
Page * set(int no, Page *page)
Replace page.
Definition: ipedoc.cpp:580
Filter stream adding flate compression.
Definition: ipeutils.h:103
A segment on an SubPath.
Definition: ipeshape.h:47
int thickStep
Definition: ipecanvas.h:94
virtual int getChar()=0
Get one more character, or EOF.
@ EArc
Definition: ipeshape.h:49
std::unique_ptr< Fonts > iFonts
Definition: ipecanvas.h:220
Attribute from
Definition: ipeattributes.h:404
virtual int position() const
Return position in stream.
Definition: ipebase.cpp:822
void getChar()
Definition: ipepdfparser.h:210
An arc of an ellipse.
Definition: ipegeo.h:310
virtual void saveAsXml(Stream &stream, String layer) const =0
Save the object in XML format.
Color symStroke() const
Return current symbol stroke color.
Definition: ipepainter.h:129
bool certainClearance(const Vector &v, double bound) const
Definition: ipegeo.cpp:302
void setSelectionVisible(bool visible)
Set whether selection should be shown when there is no tool.
Definition: ipecanvas.cpp:622
Buffer render(const Page *page, int view)
Definition: ipethumbs.cpp:62
void draw(Painter &painter) const
Draw the Shape as a path to painter.
Definition: ipeshape.cpp:944
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound, bool cp) const =0
Snap to vertex.
void addToBBox(Rect &box, const Matrix &m, bool cp) const
Add segment to bounding box.
Definition: ipeshape.cpp:186
Line getLine(const Vector &mouse, const Vector &base) const noexcept
Definition: ipesnap.cpp:175
Linear linear() const
Return linear transformation component of this affine transformation.
Definition: ipegeo.h:628
bool has(String str) const
Check whether attribute exists.
Definition: ipexml.cpp:84
virtual void putRaw(const char *data, int size)
Output raw character data.
Definition: ipebase.cpp:780
Attribute(TFillRule rule)
Definition: ipeattributes.h:275
virtual void doMoveTo(const Vector &v)
Perform moveto operator.
Definition: ipecairopainter.cpp:388
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute boundary snapping position for transformed object.
Definition: ipeobject.cpp:416
bool matches(const PdfDict *d) const noexcept
Definition: ipefonts.h:57
@ ENull
Definition: ipepdfparser.h:198
static Bitmap readPNG(const char *fname, Vector &dotsPerInch, const char *&errmsg)
Read PNG image from file.
Definition: ipebitmap_unix.cpp:183
void operator*=(double rhs)
Multiply vector by scalar.
Definition: ipegeo.h:373
Lex & operator>>(double &d)
Operator syntax for getDouble().
Definition: ipebase.h:197
const char & operator[](int index) const noexcept
Character access (const version).
Definition: ipebase.h:231
@ EPropDecoration
Definition: ipeattributes.h:83
virtual void snapVtx(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const
Compute vertex snapping position for transformed object.
Definition: ipeobject.cpp:394
void putHexByte(char b)
Output byte in hexadecimal.
Definition: ipebase.cpp:684
bool slash() const
Return whether tag contains the final /.
Definition: ipexml.h:64
@ ErrNoDir
Definition: ipedoc.h:152
Type
The subpath types.
Definition: ipeshape.h:89
virtual void saveAsXml(Stream &stream, String layer) const
Save object to XML stream.
Definition: ipetext.cpp:254
@ ENotSelected
Definition: ipeattributes.h:134
bool parse(DataSource &source)
Parse entire PDF stream, and store objects.
Definition: ipepdfparser.cpp:899
const Gradient * findGradient(Attribute sym) const
Find gradient in style sheet cascade.
Definition: ipestyle.cpp:197
Linear transformation in the plane (2x2 matrix).
Definition: ipegeo.h:264
virtual void doDrawText(const Text *text)
Draw a text object.
Definition: ipepdfwriter.cpp:213
THorizontalAlignment horizontalAlignment() const
Return horizontal alignment of text object.
Definition: ipetext.h:210
void addPageNumber(SPageNumber &pn) noexcept
Definition: iperesources.cpp:251
Vector operator+(const Vector &rhs) const
Vector-addition.
Definition: ipegeo.h:379
@ EDictBg
Definition: ipepdfparser.h:199
bool isIdentity() const
Is this the identity matrix?
Definition: ipegeo.h:572
T max(const T &lhs, const T &rhs)
Definition: ipegeo.h:51
virtual void doPop()
Perform graphics state pop on output medium.
Definition: ipepainter.cpp:539
Stores attributes of an XML tag.
Definition: ipexml.h:43
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const
Add subpath to box.
Definition: ipeshape.cpp:631
StyleSheet * parseStyleSheet()
parse a complete style sheet.
Definition: ipeiml.cpp:767
virtual const ClosedSpline * asClosedSpline() const
Return this object as an ClosedSpline, or nullptr if it's not a closed spline.
Definition: ipeshape.cpp:587
@ EOkButton
Definition: ipelet.h:54
String name() const
Return name of style sheet.
Definition: ipestyle.h:149
Vector pan() const
Return current pan.
Definition: ipecanvas.h:105
bool isMinipage() const
Return true if text object is formatted as a minipage.
Definition: ipetext.h:204
@ NoZip
Do not compress streams.
Definition: ipedoc.h:54
const PdfResourceBase * resources() const noexcept
Definition: ipefonts.h:94
Attribute opacity() const
Return opacity of the opject.
Definition: ipeimage.h:74
void magnify(NSEvent *event)
Definition: ipecanvas_cocoa.cpp:239
double totalHeight() const
Return height + depth of text object.
Definition: ipetext.h:197
bool classicGrid
Definition: ipecanvas.h:90
static void spiroSpline(int n, const Vector *v, std::vector< Bezier > &result)
Definition: ipegeo.cpp:881
Definition: ipecanvas.h:66
char & operator[](int index) noexcept
Character access.
Definition: ipebase.h:229
~PdfWriter()
Destructor.
Definition: ipepdfwriter.cpp:444
virtual void accept(Visitor &visitor) const override
Call VisitImage of visitor.
Definition: ipeimage.cpp:103
int count() const
Return number of objects on the page.
Definition: ipepage.h:142
Base class for XML stream parsing.
Definition: ipexml.h:71
ImlParser(DataSource &source)
Definition: ipeiml.cpp:54
Attribute fill() const
Return object fill color.
Definition: ipepath.h:185
bool contains(const Vector &rhs) const
Does (closed) rectangle contain the point?
Definition: ipegeo.cpp:216
InflateSource(DataSource &source)
Definition: ipeutils.cpp:576
virtual void addToBBox(Rect &box, const Matrix &m, bool cp) const
Extend box to include the object transformed by m.
Definition: ipegroup.cpp:318
virtual void accept(Visitor &visitor) const
Call visitText of visitor.
Definition: ipetext.cpp:240
Linear operator*(const Linear &lhs, const Linear &rhs)
Linear matrix multiplication.
Definition: ipegeo.h:516
double distance(const Vector &v, double bound)
Return distance to Bezier spline.
Definition: ipegeo.cpp:912
const Page * page(int no) const
Return page (const version).
Definition: ipedoc.h:122
virtual ~PdfResources()=default
@ ErrWritingSource
Definition: ipedoc.h:152
TLineCap iLineCap
Definition: ipepainter.h:52
Page * parsePageSelection()
parse an <ipepage> element (used on clipboard).
Definition: ipeiml.cpp:329
void setFillRule(TFillRule s)
Set fill rule.
Definition: ipestyle.cpp:259
void remove(int i)
Remove the object at index i.
Definition: ipepage.cpp:566
bool value() const noexcept
Definition: ipepdfparser.h:85
All the resources needed by the text objects in the document.
Definition: iperesources.h:73
const PdfResources * iResources
Definition: ipecanvas.h:219
Attribute iStroke
Stroke color.
Definition: ipeattributes.h:424
Style canvasStyle() const
Return canvas style.
Definition: ipecanvas.h:137
@ ESnapBd
Definition: ipesnap.h:49
void setPen(Attribute pen)
Set pen.
Definition: ipepath.cpp:596
Vector globalPos() const
Return global mouse position of last mouse press/release.
Definition: ipecanvas.h:117
TCursor
Definition: ipecanvas.h:74
Vector(double x0, double y0)
Construct a vector.
Definition: ipegeo.h:102
Filter source adding flate decompression.
Definition: ipeutils.h:149
Matrix iMatrix
Gradient transformation.
Definition: ipeattributes.h:183
bool eos() const
Return true if at end of string (not even whitespace left).
Definition: ipebase.h:212
@ EPropTiling
Definition: ipeattributes.h:77
Color iSymStroke
Definition: ipepainter.h:55
int iSnapDistance
Snap distance (in pixels).
Definition: ipesnap.h:57
virtual QSize sizeHint() const
Definition: ipepdfview_qt.cpp:48
bool iRepaint
Definition: ipepdfview.h:99
void append(TSelect sel, int layer, Object *obj)
Append a new object.
Definition: ipepage.cpp:556
Data source for parsing from a file.
Definition: ipebase.h:319
const Gradient * findGradient(Attribute sym) const
Definition: ipestyle.cpp:704
virtual void saveAsXml(Stream &stream, String layer) const override
Save the object in XML format.
Definition: ipepath.cpp:298
bool isNormal() const
Is it the symbolic name "normal"?
Definition: ipeattributes.h:302
A widget (control) that displays a PDF document.
Definition: ipepdfview.h:51
PdfObj * getObject(bool lateStream=false)
Read one object from input stream.
Definition: ipepdfparser.cpp:740
BBoxPainter(const Cascade *style)
Definition: ipeutils.cpp:79
void skipXRef()
Skip xref table (current token is 'xref')
Definition: ipepdfparser.cpp:793
void finishTool()
Definition: ipecanvas.cpp:549
Definition: ipeattributes.h:402
void drawTool(Painter &painter)
Draw the current canvas tool.
Definition: ipecanvas.cpp:501
int index() const
Return index into Repository.
Definition: ipeattributes.h:305
static uint32_t flagsFromName(String name)
Definition: ipereference.cpp:386
@ EName
Definition: ipepdfparser.h:197
String iCreator
Program that created this document (e.g. "Ipe 7.5").
Definition: ipedoc.h:83
virtual int getChar() override
Get one more character, or EOF.
Definition: ipebase.cpp:876
void setPan(const Vector &v)
Set current pan position.
Definition: ipecanvas.cpp:171
virtual Object * clone() const override
Clone object.
Definition: ipeimage.cpp:86
void setStroke(Attribute stroke)
Set stroke color.
Definition: ipetext.cpp:388
bool isEllipse() const
Is this an entire ellipse?
Definition: ipegeo.h:469
@ EPropTextStyle
Definition: ipeattributes.h:76
virtual void doLineTo(const Vector &v)
Perform lineto operator.
Definition: ipecairopainter.cpp:394
double primarySelectionWidth
Definition: ipecanvas.h:85
void setResources(const PdfResources *resources)
set information about Latex fonts (from ipe::Document)
Definition: ipecanvas.cpp:132
@ EAlignLeft
Definition: ipeattributes.h:95
Bitmap()
Default constructor constructs null bitmap.
Definition: ipebitmap.cpp:55
virtual void visitGroup(const Group *obj)
Called on an Group object.
Definition: ipeobject.cpp:441
Fixed strokeOpacity() const
Return current stroke opacity.
Definition: ipepainter.h:137
virtual int getChar()
Get one more character, or EOF.
Definition: ipeutils.cpp:411
virtual void putCString(const char *s)
Output C string.
Definition: ipebase.cpp:775
virtual void setPosition(int pos) override
Set position in stream.
Definition: ipebase.cpp:853
void addLayer(String name)
Add a new layer.
Definition: ipepage.cpp:216
@ EEllipse
Definition: ipeshape.h:89
void putXmlString(String s)
Save a string with XML escaping of &, >, <, ", '.
Definition: ipebase.cpp:692
std::list< Matrix > iMatrix
Definition: ipepainter.h:167
Face * getFace(const PdfDict *d)
Get a typeface.
Definition: ipefonts.cpp:142
const Layout * layout() const
Return page layout (or 0 if none defined).
Definition: ipestyle.cpp:136
virtual void visitImage(const Image *obj)
Called on an Image object.
Definition: ipeobject.cpp:453
@ EPropHorizontalAlignment
Definition: ipeattributes.h:78
Vector iPos
Position on the page (in Ipe coordinate system)
Definition: ipestyle.h:63
float iStretch
Definition: ipetext.h:122
Vector dir() const
Return direction of line.
Definition: ipegeo.h:415
void setFillRule(TFillRule s)
Set fill rule.
Definition: ipepath.cpp:638
String token()
Return NextToken, but without extracting it.
Definition: ipebase.cpp:471
PdfDict * getTrailer()
Parse trailer dictionary (current token is 'trailer')
Definition: ipepdfparser.cpp:826
void setLineCap(TLineCap s)
Set line cap style.
Definition: ipepath.cpp:626
virtual void keyPressEvent(QKeyEvent *ev)
Definition: ipecanvas_qt.cpp:195
Angle(double alpha)
Construct an angle (in radians).
Definition: ipegeo.h:81
String layerData(int index) const
Return layer data.
Definition: ipepage.h:80
bool operator==(const Attribute &rhs) const
Are two values equal (only compares index!)
Definition: ipeattributes.h:328
virtual void checkStyle(const Cascade *sheet, AttributeSeq &seq) const override
Check all symbolic attributes.
Definition: ipepath.cpp:643
An attribute of an Ipe Object.
Definition: ipeattributes.h:255
@ EAlt
Definition: ipecanvas.h:71
@ EPropWidth
Definition: ipeattributes.h:82
int findPage(String nameOrNumber) const
Return page index given a section title or page number.
Definition: ipedoc.cpp:548
const TitleStyle * titleStyle() const
Return title style (or 0 if none defined).
Definition: ipestyle.cpp:166
virtual Attribute getAttribute(Property prop) const noexcept override
Get setting of an attribute of this object.
Definition: ipeimage.cpp:210
int canvasWidth() const
Definition: ipecanvas.h:159
int toInt() const
Definition: ipebase.h:161
Vector iQ
Second endpoint.
Definition: ipegeo.h:224
virtual void putChar(char ch)
Output character.
Definition: ipebase.cpp:764
void setStroke(Attribute color)
Set stroke color, resolving symbolic color and "sym-x" colors.
Definition: ipepainter.cpp:299
double distance(const Vector &v, const Matrix &m, double bound) const
Definition: ipeshape.cpp:906
void computeFifi(double x, double y)
Definition: ipecanvas.cpp:655
String active(int index) const
Return active layer of view.
Definition: ipepage.h:89
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:120
virtual void visitText(const Text *obj)
Called on an Text object.
Definition: ipeobject.cpp:459
Rect bbox() const
Return a tight bounding box.
Definition: ipegeo.cpp:1348
@ EPS
Definition: ipethumbs.h:44
void save(Stream &stream) const
Save to stream.
Definition: ipeattributes.cpp:95
virtual void doPush()
Perform graphics state push on output medium.
Definition: ipecairopainter.cpp:378
@ EHasFill
Definition: ipereference.h:45
TLineCap lineCap() const
Return line cap style.
Definition: ipepath.h:203
LatexType
Definition: ipebase.h:75
The model for an Ipe document.
Definition: ipedoc.h:67
TLineJoin lineJoin() const
Return line join style.
Definition: ipepath.h:209
bool getNumber(String key, double &val, const PdfFile *file=nullptr) const noexcept
Retrieve a single number and stor in val.
Definition: ipepdfparser.cpp:399
Angle angle() const
Return angle of the vector (with positive x-direction).
Definition: ipegeo.cpp:126
TPinned iPinned
Definition: ipeobject.h:146
Matrix matrix() const
Return matrix that transforms unit circle to the ellipse.
Definition: ipeshape.h:122
Vector userToDev(const Vector &arg) const
Convert user coordinates to canvas (device) coordinates.
Definition: ipepdfview.cpp:135
@ ELabel
Definition: ipetext.h:43
TToken
The various types of tokens.
Definition: ipepdfparser.h:197
@ EArrayBg
Definition: ipepdfparser.h:199
virtual void wheelEvent(QWheelEvent *ev)
Definition: ipecanvas_qt.cpp:293
void save(Stream &stream) const
Save Shape onto XML stream.
Definition: ipeshape.cpp:979
String substr(int i, int len=-1) const noexcept
Create substring.
Definition: ipebase.h:110
TVerticalAlignment iVerticalAlignment
Text alignment, vertical.
Definition: ipestyle.h:87
virtual void snapBnd(const Vector &mouse, const Matrix &m, Vector &pos, double &bound) const override
Compute boundary snapping position for transformed object.
Definition: ipepath.cpp:537
virtual void doPush()
Perform graphics state push on output medium.
Definition: ipepainter.cpp:533
@ ETextStretch
Definition: ipeattributes.h:54
Fixed symPen() const
Return current symbol pen.
Definition: ipepainter.h:133
virtual void visitReference(const Reference *obj)
Called on an Reference object.
Definition: ipeobject.cpp:465
virtual void doClosePath()
Perform closepath operator.
Definition: ipecairopainter.cpp:407
String & operator=(const String &rhs) noexcept
Assignment takes constant time.
Definition: ipebase.cpp:172
String value() const noexcept
Definition: ipepdfparser.h:110
virtual void saveAsXml(Stream &stream, String layer) const
Save in XML format.
Definition: ipereference.cpp:140
virtual void doPush()
Perform graphics state push on output medium.
Definition: ipeutils.cpp:85
virtual double distance(const Vector &v, const Matrix &m, double bound) const
Return distance from v to subpath transformed by m.
Definition: ipeshape.cpp:636
virtual ~Object()=0
Pure virtual destructor.
Definition: ipeobject.cpp:216
void addPoint(const Vector &rhs)
Enlarge rectangle to contain point.
Definition: ipegeo.cpp:243
virtual void doDrawPath(TPathMode mode)
Actually draw the path.
Definition: ipepainter.cpp:596
@ ECommand
Definition: ipecanvas.h:72
Vector topLeft() const
Return top left corner.
Definition: ipegeo.h:159
bool marked() const
Return if page is marked for printing.
Definition: ipepage.h:134
virtual void write(Stream &stream, const PdfRenumber *renumber, bool inflate) const noexcept
Definition: ipepdfparser.cpp:314
void setEffect(int index, Attribute sym)
Set effect of view.
Definition: ipepage.cpp:384
double thickLine
Definition: ipecanvas.h:92
Vector userToDev(const Vector &arg) const
Convert user coordinates to canvas (device) coordinates.
Definition: ipecanvas.cpp:223
Vector operator*(const Vector &rhs) const
virtual void doAddClipPath()
Add a clip path.
Definition: ipecairopainter.cpp:583
Object()
Definition: ipeobject.cpp:199
PdfResources * takeResources()
Return the newly created PdfResources and pass ownership to caller.
Definition: ipelatex.cpp:69
Abstract base class for Ipelets.
Definition: ipelet.h:91
std::unique_ptr< Cascade > iCascade
Definition: ipepdfview.h:102
String findPreamble() const
Return total LaTeX preamble (of the whole cascade).
Definition: ipestyle.cpp:776
@ EGradient
Definition: ipeattributes.h:57
A symbol is a named object defined in an ipe::StyleSheet.
Definition: ipestyle.h:42
virtual void doLineTo(const Vector &v)
Perform lineto operator.
Definition: ipepdfwriter.cpp:75
Attribute arrowSize() const
Return size of arrow.
Definition: ipepath.h:245
PdfParser(DataSource &source)
Construct with a data source.
Definition: ipepdfparser.cpp:489
String layer(int index) const noexcept
Return name of layer index.
Definition: ipepage.h:60
static Attribute ARROW_FPTARC()
Create symbolic attribute "arrow/fptarc(spx)".
Definition: ipeattributes.h:365
virtual Type type() const
Definition: ipereference.cpp:128
bool isNumber() const
Is it a number?
Definition: ipeattributes.h:291
int countSegmentsClosing() const
Return number of segments including the closing segment.
Definition: ipeshape.h:176
void scanPage(const Page *page)
Definition: ipeutils.cpp:50
static void init(HINSTANCE hInstance)
Definition: ipecanvas_win.cpp:539
void allNames(Kind kind, AttributeSeq &seq) const
Definition: ipestyle.cpp:812
void setNotes(String notes)
Set the notes of this page.
Definition: ipepage.cpp:707
void setSymStroke(Attribute color)
Set symbol stroke color, resolving symbolic color.
Definition: ipepainter.cpp:419
@ EPropTextSize
Definition: ipeattributes.h:76
void clipTo(const Rect &rhs)
Clip rectangle to fit inside cbox.
Definition: ipegeo.cpp:279
void setStrokeOpacity(Attribute opaq)
Set stroke opacity.
Definition: ipepainter.cpp:392
virtual void putChar(char ch)
Output character.
Definition: ipebase.cpp:724
Vector align() const
Return position of reference point in text box coordinate system.
Definition: ipetext.cpp:612
@ EDissolve
Definition: ipeattributes.h:223
static THorizontalAlignment makeHAlign(String str, THorizontalAlignment def)
Return horizontal alignment indicated by a name, or else default.
Definition: ipetext.cpp:227
Thumbnail(const Document *doc, int width)
Definition: ipethumbs.cpp:52
int iLayer
Definition: ipelet.h:84
Latex(const Cascade *sheet, LatexType latexType)
Create a converter object.
Definition: ipelatex.cpp:50
ClosedSpline(const std::vector< Vector > &v)
Definition: ipeshape.cpp:671
Definition: ipepdfview_cocoa.h:51
@ ErrNone
Definition: ipedoc.h:152
Kind kind
Definition: ipeattributes.h:403
virtual void saveAsXml(Stream &stream, String layer) const
Save the object in XML format.
Definition: ipegroup.cpp:165
void setLocked(int i, bool flag)
Set locking of layer i.
Definition: ipepage.cpp:204
virtual const Ellipse * asEllipse() const
Return this object as an Ellipse, or nullptr if it's not an ellipse.
Definition: ipeshape.cpp:616
String nextToken()
Extract next token.
Definition: ipebase.cpp:482
double iHeight
Definition: ipepdfview.h:92
bool isSegment() const
Is this Shape a single straight segment?
Definition: ipeshape.cpp:885
A bitmap.
Definition: ipebitmap.h:43
@ EStrokedOnly
Definition: ipeattributes.h:91
THorizontalAlignment iHorizontalAlignment
Horizontal alignment.
Definition: ipestyle.h:69
virtual void doDrawPath(TPathMode mode)
Actually draw the path.
Definition: ipecairopainter.cpp:433
double iRight
Definition: ipeattributes.h:213
void saveAsXml(Stream &stream) const
Definition: ipestyle.cpp:661
void setDashStyle(Attribute dash)
Set dash style, resolving symbolic value.
Definition: ipepainter.cpp:333
String text() const
Return text source.
Definition: ipetext.h:155
@ EBevelJoin
Definition: ipeattributes.h:109
void operator+=(char ch) noexcept
Operator syntax for append.
Definition: ipebase.h:108
@ EDefaultJoin
Definition: ipeattributes.h:109
PdfString(const String &val, bool binary=false)
Definition: ipepdfparser.h:105
void clear()
Make rectangle empty.
Definition: ipegeo.h:143
const StyleSheet * sheet(int index) const
Return StyleSheet at index.
Definition: ipestyle.h:191
bool updateTextObjects()
Notify all text objects about their updated PDF code.
Definition: ipelatex.cpp:466
virtual int ipelibVersion() const =0
Return the version of Ipelib the Ipelet was linked against.
int iInPath
Definition: ipepainter.h:170
virtual void drawSimple(Painter &painter) const =0
Draw simple version for selecting and transforming.
bool isEnum() const
Is it an enumeration?
Definition: ipeattributes.h:294
virtual bool run(int function, IpeletData *data, IpeletHelper *helper)=0
Run a function from the Ipelet.
Vector iGlobalPos
Definition: ipecanvas.h:213
virtual void paintEvent(QPaintEvent *ev)
Definition: ipecanvas_qt.cpp:388
T min(const T &lhs, const T &rhs)
Definition: ipegeo.h:60
double factorize(Vector &unit) const
Definition: ipegeo.cpp:162
Vector iPos
Position on the page.
Definition: ipestyle.h:79
Vector point(double t) const
Return point on curve with parameter t (from 0.0 to 1.0).
Definition: ipegeo.cpp:566
@ ENoPin
Definition: ipeattributes.h:123
void setSymPen(Attribute wid)
Set symbol pen, resolving symbolic pen.
Definition: ipepainter.cpp:443
int parseDocument(Document &doc)
Read a complete document from IML stream.
Definition: ipeiml.cpp:75
void saveAsXml(Stream &stream, bool usePdfBitmaps=false) const
Save in XML format into an Stream.
Definition: ipedoc.cpp:396
Attribute(TTransformations trans)
Definition: ipeattributes.h:277
virtual ~XmlParser()
Virtual destructor, so one can destroy through pointer.
Definition: ipexml.cpp:115