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