Subversion Repositories Scribus

Rev

Rev 4120 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4119 craig 1
#include "cmdvar.h"
2
 
3
 
4
 
5
#include "scribus.h"
6
#include "scribusdoc.h"
7
#include "pageitem.h"
8
 
9
using boost::python::list;
10
using boost::python::throw_error_already_set;
11
 
12
PageItem & findItemByName(QPtrList<PageItem> & items, const QString name)
13
{
14
        for (
15
                QPtrList<PageItem>::iterator it(items.begin()) ;
16
                it != items.end() ;
17
                ++it)
18
        {
19
                if ( (*it)->itemName() == name)
20
                        return *(*it);
21
        }
22
        PyErr_SetString(PyExc_KeyError, "Item not found");
23
        throw_error_already_set();
24
}
25
 
26
PageItem & getItem(const QString name)
27
{
28
        return findItemByName(ScMW->doc->DocItems, name);
29
}
30
 
31
list getItemNames()
32
{
33
        list l;
34
        QPtrList<PageItem>& items( ScMW->doc->DocItems );
35
        for (
36
                QPtrList<PageItem>::iterator it(items.begin()) ;
37
                it != items.end() ;
38
                ++it)
39
        {
40
                l.append((*it)->itemName());
41
        }
42
        return l;
43
}
44
 
45
void export_PageItem()
46
{
47
        using namespace boost::python;
48
 
49
        def("getItemNames", getItemNames);
50
        def("getItem", getItem, return_internal_reference<>());
51
 
52
        {
53
                scope p = class_<PageItem,boost::noncopyable>(
54
                                "PageItem",
55
                                "A Scribus canvas object",
56
                                no_init)
57
                        .def("clearContents", &PageItem::clearContents)
58
                        .def("AdjustPictScale", &PageItem::AdjustPictScale)
59
                        //TODO Needs: ObjAttrVector, Problem: pointer return
60
                        //.def("getObjectAttributes", &PageItem::getObjectAttributes,
61
                        //TODO Needs: ObjectAttribute
62
                        .def("getObjectAttribute", &PageItem::getObjectAttribute)
63
                        .def("setObjectAttributes", &PageItem::setObjectAttributes)
64
                        .def("SetFrameShape", &PageItem::SetFrameShape)
65
                        .def("SetRectFrame", &PageItem::SetRectFrame)
66
                        .def("SetOvalFrame", &PageItem::SetOvalFrame)
67
                        .def("SetFrameRound", &PageItem::SetFrameRound)
68
                        .def("SetPolyClip", &PageItem::SetPolyClip)
69
                        .def("getBoundingRect", &PageItem::getBoundingRect)
70
                        .def("pointWithinItem", &PageItem::pointWithinItem)
71
                        //.def("SetZeichAttr", &PageItem::SetZeichAttr) // WTF?
72
                        .def("SetFarbe", &PageItem::SetFarbe)
73
                        .def_readwrite("AspectRatio", &PageItem::AspectRatio)
74
                        .def_readwrite("AutoName", &PageItem::AutoName)
75
                        .def_readwrite("BottomLine", &PageItem::BottomLine)
76
                        .def_readwrite("ChangedMasterItem", &PageItem::ChangedMasterItem)
77
                        .def_readwrite("ClipEdited", &PageItem::ClipEdited)
78
                        .def_readwrite("Dirty", &PageItem::Dirty)
79
                        .def_readwrite("fillRule", &PageItem::fillRule)
80
                        .def_readwrite("Frame", &PageItem::Frame)
81
                        .def_readwrite("FrameOnly", &PageItem::FrameOnly)
82
                        .def_readwrite("HasSel", &PageItem::HasSel)
83
                        .def_readwrite("isAutoText", &PageItem::isAutoText)
84
                        .def_readwrite("isBookmark", &PageItem::isBookmark)
85
                        .def_readwrite("isEmbedded", &PageItem::isEmbedded)
86
                        .def_readwrite("isRaster", &PageItem::isRaster)
87
                        .def_readwrite("isSingleSel", &PageItem::isSingleSel)
88
                        .def_readwrite("isTableItem", &PageItem::isTableItem)
89
                        .def_readwrite("LeftLine", &PageItem::LeftLine)
90
                        .def_readwrite("PicArt", &PageItem::PicArt)
91
                        .def_readwrite("PicAvail", &PageItem::PicAvail)
92
                        .def_readwrite("PoShow", &PageItem::PoShow)
93
                        .def_readwrite("Redrawn", &PageItem::Redrawn)
94
                        .def_readwrite("RightLine", &PageItem::RightLine)
95
                        .def_readwrite("ScaleType", &PageItem::ScaleType)
96
                        .def_readwrite("Sizing", &PageItem::Sizing)
97
                        .def_readwrite("Tinput", &PageItem::Tinput)
98
                        .def_readwrite("toPixmap", &PageItem::toPixmap)
99
                        .def_readwrite("TopLine", &PageItem::TopLine)
100
                        .def_readwrite("UseEmbedded", &PageItem::UseEmbedded)
101
                        .def_readwrite("BaseOffs", &PageItem::BaseOffs)
102
                        .def_readwrite("BBoxH", &PageItem::BBoxH)
103
                        .def_readwrite("BBoxX", &PageItem::BBoxX)
104
                        .def_readwrite("BoundingH", &PageItem::BoundingH)
105
                        .def_readwrite("BoundingW", &PageItem::BoundingW)
106
                        .def_readwrite("BoundingX", &PageItem::BoundingX)
107
                        .def_readwrite("BoundingY", &PageItem::BoundingY)
108
                        .def_readwrite("ColGap", &PageItem::ColGap)
109
                        .def_readwrite("CurX", &PageItem::CurX)
110
                        .def_readwrite("CurY", &PageItem::CurY)
111
                        .def_readwrite("DashOffset", &PageItem::DashOffset)
112
                        .def_readwrite("gHeight", &PageItem::gHeight)
113
                        .def_readwrite("GrEndX", &PageItem::GrEndX)
114
                        .def_readwrite("GrEndY", &PageItem::GrEndY)
115
                        .def_readwrite("GrStartX", &PageItem::GrStartX)
116
                        .def_readwrite("GrStartY", &PageItem::GrStartY)
117
                        .def_readwrite("gWidth", &PageItem::gWidth)
118
                        .def_readwrite("gXpos", &PageItem::gXpos)
119
                        .def_readwrite("gYpos", &PageItem::gYpos)
120
                        .def_readwrite("LineSp", &PageItem::LineSp)
121
                        .def_readwrite("OldB", &PageItem::OldB)
122
                        .def_readwrite("OldB2", &PageItem::OldB2)
123
                        .def_readwrite("OldH", &PageItem::OldH)
124
                        .def_readwrite("OldH2", &PageItem::OldH2)
125
                        .def_readwrite("OldPwidth", &PageItem::OldPwidth)
126
                        .def_readwrite("Pwidth", &PageItem::Pwidth)
127
                        .def_readwrite("ContourLine", &PageItem::ContourLine)
128
                        .def_readwrite("imageClip", &PageItem::imageClip)
129
                        .def_readwrite("PoLine", &PageItem::PoLine)
130
                        .def_readwrite("BMnr", &PageItem::BMnr)
131
                        .def_readwrite("BottomLinkID", &PageItem::BottomLinkID)
132
                        .def_readwrite("Cols", &PageItem::Cols)
133
                        .def_readwrite("CPos", &PageItem::CPos)
134
                        .def_readwrite("ExtraV", &PageItem::ExtraV)
135
                        .def_readwrite("FrameType", &PageItem::FrameType)
136
                        .def_readwrite("GrType", &PageItem::GrType)
137
                        .def_readwrite("IRender", &PageItem::IRender)
138
                        .def_readwrite("LayerNr", &PageItem::LayerNr)
139
                        .def_readwrite("LeftLinkID", &PageItem::LeftLinkID)
140
                        .def_readwrite("LineSpMode", &PageItem::LineSpMode)
141
                        .def_readwrite("NextIt", &PageItem::NextIt)
142
                        .def_readwrite("NextPg", &PageItem::NextPg)
143
                        .def_readwrite("oldOwnPage", &PageItem::oldOwnPage)
144
                        .def_readwrite("OrigH", &PageItem::OrigH)
145
                        .def_readwrite("OrigW", &PageItem::OrigW)
146
                        .def_readwrite("OwnPage", &PageItem::OwnPage)
147
                        .def_readwrite("RightLinkID", &PageItem::RightLinkID)
148
                        .def_readwrite("ShTxtFill", &PageItem::ShTxtFill)
149
                        .def_readwrite("ShTxtStroke", &PageItem::ShTxtStroke)
150
                        .def_readwrite("textAlignment", &PageItem::textAlignment)
151
                        .def_readwrite("TopLinkID", &PageItem::TopLinkID)
152
                        .def_readwrite("TxtBase", &PageItem::TxtBase)
153
                        .def_readwrite("TxtOutline", &PageItem::TxtOutline)
154
                        .def_readwrite("TxtScale", &PageItem::TxtScale)
155
                        .def_readwrite("TxtScaleV", &PageItem::TxtScaleV)
156
                        .def_readwrite("TxtShadowX", &PageItem::TxtShadowX)
157
                        .def_readwrite("TxtShadowY", &PageItem::TxtShadowY)
158
                        .def_readwrite("TxtStrikePos", &PageItem::TxtStrikePos)
159
                        .def_readwrite("TxtStrikeWidth", &PageItem::TxtStrikeWidth)
160
                        .def_readwrite("TxTStyle", &PageItem::TxTStyle)
161
                        .def_readwrite("TxtUnderPos", &PageItem::TxtUnderPos)
162
                        .def_readwrite("TxtUnderWidth", &PageItem::TxtUnderWidth)
163
                        .def_readwrite("*BackBox", &PageItem::BackBox)
164
                        .def_readwrite("BottomLink", &PageItem::BottomLink)
165
                        .def_readwrite("LeftLink", &PageItem::LeftLink)
166
                        .def_readwrite("*NextBox", &PageItem::NextBox)
167
                        .def_readwrite("RightLink", &PageItem::RightLink)
168
                        .def_readwrite("TopLink", &PageItem::TopLink)
169
                        .def_readwrite("PLineEnd", &PageItem::PLineEnd)
170
                        .def_readwrite("PLineJoin", &PageItem::PLineJoin)
171
                        .def_readwrite("PLineArt", &PageItem::PLineArt)
172
                        .def_readwrite("Clip", &PageItem::Clip)
173
                        .def_readwrite("itemText", &PageItem::itemText)
174
                        .def_readwrite("EmProfile", &PageItem::EmProfile)
175
                        .def_readwrite("IProfile", &PageItem::IProfile)
176
                        .def_readwrite("Language", &PageItem::Language)
177
                        .def_readwrite("NamedLStyle", &PageItem::NamedLStyle)
178
                        .def_readwrite("OnMasterPage", &PageItem::OnMasterPage)
179
                        .def_readwrite("Pfile", &PageItem::Pfile)
180
                        .def_readwrite("Pfile2", &PageItem::Pfile2)
181
                        .def_readwrite("Pfile3", &PageItem::Pfile3)
182
                        .def_readwrite("TxtFill", &PageItem::TxtFill)
183
                        .def_readwrite("TxtStroke", &PageItem::TxtStroke)
184
                        .def_readwrite("DashValues", &PageItem::DashValues)
185
                        .def_readwrite("effectsInUse", &PageItem::effectsInUse)
186
                        .def_readwrite("TabValues", &PageItem::TabValues)
187
                        .def_readwrite("Segments", &PageItem::Segments)
188
                        .def_readwrite("Groups", &PageItem::Groups)
189
                        .def_readwrite("pixm", &PageItem::pixm)
190
                        .def_readwrite("ItemNr", &PageItem::ItemNr)
191
                        .def_readwrite("MaxChars", &PageItem::MaxChars)
192
                        .def_readwrite("fill_gradient", &PageItem::fill_gradient)
193
                        .add_property("xPos", &PageItem::xPos, &PageItem::setXPos)
194
                        .add_property("yPos", &PageItem::yPos, &PageItem::setYPos)
195
                        .def("moveBy", &PageItem::moveBy)
196
                        .def("width", &PageItem::width)
197
                        .def("height", &PageItem::height)
198
                        .def("setWidth", &PageItem::setWidth)
199
                        .def("setHeight", &PageItem::setHeight)
200
                        .def("resizeBy", &PageItem::resizeBy)
201
                        // TODO: Weird error
202
                        //.def("rotation", &PageItem::rotation)
203
                        .def("setRotation", &PageItem::setRotation)
204
                        .def("rotateBy", &PageItem::rotateBy)
205
                        .def("isSelected", &PageItem::isSelected)
206
                        .def("setSelected", &PageItem::setSelected)
207
                        .def("imageXScale", &PageItem::imageXScale)
208
                        .def("imageYScale", &PageItem::imageYScale)
209
                        .def("setImageXScale", &PageItem::setImageXScale)
210
                        .def("setImageYScale", &PageItem::setImageYScale)
211
                        .def("imageXOffset", &PageItem::imageXOffset)
212
                        .def("imageYOffset", &PageItem::imageYOffset)
213
 
214
                        .def("setImageYOffset", &PageItem::setImageYOffset)
215
                        .def("moveImageXYOffsetBy", &PageItem::moveImageXYOffsetBy)
216
                        .def("reversed", &PageItem::reversed)
217
                        .def("setReversed", &PageItem::setReversed)
218
                        // TODO: Weird error
219
                        //.def("cornerRadius", &PageItem::cornerRadius)
220
                        .def("setCornerRadius", &PageItem::setCornerRadius)
221
                        .def("textToFrameDistLeft", &PageItem::textToFrameDistLeft)
222
                        .def("textToFrameDistRight", &PageItem::textToFrameDistRight)
223
                        .def("textToFrameDistTop", &PageItem::textToFrameDistTop)
224
                        .def("textToFrameDistBottom", &PageItem::textToFrameDistBottom)
225
                        .def("setTextToFrameDistLeft", &PageItem::setTextToFrameDistLeft)
226
                        .def("setTextToFrameDistRight", &PageItem::setTextToFrameDistRight)
227
                        .def("setTextToFrameDistTop", &PageItem::setTextToFrameDistTop)
228
                        .def("setTextToFrameDistBottom", &PageItem::setTextToFrameDistBottom)
229
                        .def("setTextToFrameDist", &PageItem::setTextToFrameDist)
230
                        .def("itemName", &PageItem::itemName)
231
                        .def("setItemName", &PageItem::setItemName)
232
 
233
                        .def("fillColor", &PageItem::fillColor)
234
                        .def("setFillColor", &PageItem::setFillColor)
235
                        .def("fillShade", &PageItem::fillShade)
236
                        .def("setFillShade", &PageItem::setFillShade)
237
                        .def("fillTransparency", &PageItem::fillTransparency)
238
                        .def("setFillTransparency", &PageItem::setFillTransparency)
239
                        .def("lineColor", &PageItem::lineColor)
240
                        .def("setLineColor", &PageItem::setLineColor)
241
                        .def("lineShade", &PageItem::lineShade)
242
                        .def("setLineShade", &PageItem::setLineShade)
243
                        .def("lineTransparency", &PageItem::lineTransparency)
244
                        .def("setLineTransparency", &PageItem::setLineTransparency)
245
                        .def("setLineQColor", &PageItem::setLineQColor)
246
                        .def("setFillQColor", &PageItem::setFillQColor)
247
                        .def("lineStyle", &PageItem::lineStyle)
248
                        // TODO: weird error
249
                        //.def("setLineStyle", &PageItem::setLineStyle)
250
                        //.def("lineWidth", &PageItem::lineWidth)
251
                        .def("setLineWidth", &PageItem::setLineWidth)
252
                        .def("lineEnd", &PageItem::lineEnd)
253
                        .def("setLineEnd", &PageItem::setLineEnd)
254
                        .def("lineJoin", &PageItem::lineJoin)
255
                        .def("setLineJoin", &PageItem::setLineJoin)
256
                        .def("customLineStyle", &PageItem::customLineStyle)
257
                        .def("setCustomLineStyle", &PageItem::setCustomLineStyle)
258
                        .def("startArrowIndex", &PageItem::startArrowIndex)
259
                        .def("setStartArrowIndex", &PageItem::setStartArrowIndex)
260
                        .def("endArrowIndex", &PageItem::endArrowIndex)
261
                        .def("setEndArrowIndex", &PageItem::setEndArrowIndex)
262
                        .def("imageFlippedH", &PageItem::imageFlippedH)
263
                        .def("setImageFlippedH", &PageItem::setImageFlippedH)
264
                        .def("flipImageH", &PageItem::flipImageH)
265
                        .def("imageFlippedV", &PageItem::imageFlippedV)
266
                        .def("setImageFlippedV", &PageItem::setImageFlippedV)
267
                        .def("flipImageV", &PageItem::flipImageV)
268
                        .def("setImageScalingMode", &PageItem::setImageScalingMode)
269
                        .def("toggleLock", &PageItem::toggleLock)
270
                        .def("locked", &PageItem::locked)
271
                        .def("setLocked", &PageItem::setLocked)
272
                        .def("toggleSizeLock", &PageItem::toggleSizeLock)
273
                        .def("sizeLocked", &PageItem::sizeLocked)
274
                        .def("setSizeLocked", &PageItem::setSizeLocked)
275
                        .def("font", &PageItem::font)
276
                        .def("setFont", &PageItem::setFont)
277
                        .def("fontSize", &PageItem::fontSize)
278
                        .def("setFontSize", &PageItem::setFontSize)
279
                        .def("fontHeight", &PageItem::fontHeight)
280
                        .def("setFontHeight", &PageItem::setFontHeight)
281
                        .def("fontWidth", &PageItem::fontWidth)
282
                        .def("setFontWidth", &PageItem::setFontWidth)
283
                        .def("fontFillColor", &PageItem::fontFillColor)
284
                        .def("setFontFillColor", &PageItem::setFontFillColor)
285
                        .def("fontFillShade", &PageItem::fontFillShade)
286
                        .def("setFontFillShade", &PageItem::setFontFillShade)
287
                        .def("fontStrokeColor", &PageItem::fontStrokeColor)
288
                        .def("setFontStrokeColor", &PageItem::setFontStrokeColor)
289
                        .def("fontStrokeShade", &PageItem::fontStrokeShade)
290
                        .def("setFontStrokeShade", &PageItem::setFontStrokeShade)
291
                        .def("fontEffects", &PageItem::fontEffects)
292
                        .def("setFontEffects", &PageItem::setFontEffects)
293
                        .def("kerning", &PageItem::kerning)
294
                        .def("setKerning", &PageItem::setKerning)
295
                        // TODO: weird error
296
                        //.def("lineSpacing", &PageItem::lineSpacing)
297
                        .def("setLineSpacing", &PageItem::setLineSpacing)
298
                        .def("language", &PageItem::language)
299
                        .def("setLanguage", &PageItem::setLanguage)
300
                        .def("textFlowsAroundFrame", &PageItem::textFlowsAroundFrame)
301
                        .def("setTextFlowsAroundFrame", &PageItem::setTextFlowsAroundFrame)
302
                        .def("textFlowUsesBoundingBox", &PageItem::textFlowUsesBoundingBox)
303
                        .def("setTextFlowUsesBoundingBox", &PageItem::setTextFlowUsesBoundingBox)
304
                        .def("textFlowUsesContourLine", &PageItem::textFlowUsesContourLine)
305
                        .def("setTextFlowUsesContourLine", &PageItem::setTextFlowUsesContourLine)
306
                        .def("itemType", &PageItem::itemType)
307
                        .def("convertTo", &PageItem::convertTo)
308
                        .def("setLayer", &PageItem::setLayer)
309
                        .def("printable", &PageItem::printable)
310
                        .def("setPrintable", &PageItem::setPrintable)
311
                        .def("loadImage", &PageItem::loadImage)
312
                        .def("isAnnotation", &PageItem::isAnnotation)
313
                        .def("setIsAnnotation", &PageItem::setIsAnnotation)
314
                        .def("annotation", &PageItem::annotation, return_internal_reference<>());
315
 
316
                enum_<PageItem::ItemType>("ItemType")
317
                        .value("ImageFrame", PageItem::ImageFrame)
318
                        .value("ImageFrame", PageItem::ImageFrame)
319
                        .value("TextFrame", PageItem::TextFrame)
320
                        .value("Line", PageItem::Line)
321
                        .value("Polygon", PageItem::Polygon)
322
                        .value("PolyLine", PageItem::PolyLine)
323
                        .value("PathText", PageItem::PathText)
324
                        .export_values();
325
 
326
                enum_<PageItem::ItemFrameType>("ItemFrameType")
327
                        .value("Unspecified", PageItem::Unspecified)
328
                        .value("Rectangle", PageItem::Rectangle)
329
                        .value("Ellipse", PageItem::Ellipse)
330
                        .value("Round", PageItem::Round)
331
                        .value("Other", PageItem::Other)
332
                        .export_values();
333
 
334
                class_<PageItem::TabRecord>("TabRecord")
335
                        .def_readwrite("tabPosition", &PageItem::TabRecord::tabPosition)
336
                        .def_readwrite("tabType", &PageItem::TabRecord::tabType)
337
                        .add_property("tabFillChar", make_getter(&PageItem::TabRecord::tabFillChar, return_value_policy<return_by_value>()),
338
                                                                                 make_setter(&PageItem::TabRecord::tabFillChar, return_value_policy<return_by_value>()));
339
 
340
        } // end scope p
341
}
342
 
343