Subversion Repositories Scribus

Rev

Rev 5721 | Rev 5781 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
103 Franz 7
#include "cmdgetprop.h"
8
#include "cmdutil.h"
82 Franz 9
 
2790 craig 10
PyObject *scribus_getfillcolor(PyObject* /* self */, PyObject* args)
82 Franz 11
{
934 subik 12
        char *Name = const_cast<char*>("");
900 cbradney 13
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 14
                return NULL;
649 fschmid 15
        if(!checkHaveDocument())
16
                return NULL;
900 cbradney 17
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
1394 cbradney 18
        return i != NULL ? PyString_FromString(i->fillColor().utf8()) : NULL;
82 Franz 19
}
20
 
2790 craig 21
PyObject *scribus_getlinecolor(PyObject* /* self */, PyObject* args)
82 Franz 22
{
934 subik 23
        char *Name = const_cast<char*>("");
82 Franz 24
        PageItem *it;
900 cbradney 25
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
1217 subik 26
                return NULL;
649 fschmid 27
        if(!checkHaveDocument())
28
                return NULL;
900 cbradney 29
        it = GetUniqueItem(QString::fromUtf8(Name));
720 subik 30
        if (it == NULL)
31
                return NULL;
1460 cbradney 32
        if ((it->HasSel) && ((it->itemType() == PageItem::TextFrame) || (it->itemType() == PageItem::PathText)))
332 Franz 33
        {
5753 jghali 34
                for (int b = 0; b < it->itemText.length(); ++b)
82 Franz 35
                {
5721 avox 36
                        if (it->itemText.selected(b))
37
                                return PyString_FromString(it->itemText.charStyle(b).fillColor().utf8());
82 Franz 38
                }
332 Franz 39
        }
40
        else
1394 cbradney 41
                return PyString_FromString(it->lineColor().utf8());
1217 subik 42
        PyErr_SetString(NotFoundError, QObject::tr("Color not found - python error", "python error"));
934 subik 43
        return NULL;
82 Franz 44
}
45
 
2790 craig 46
PyObject *scribus_getlinewidth(PyObject* /* self */, PyObject* args)
82 Franz 47
{
934 subik 48
        char *Name = const_cast<char*>("");
900 cbradney 49
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 50
                return NULL;
649 fschmid 51
        if(!checkHaveDocument())
52
                return NULL;
900 cbradney 53
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
4580 cbradney 54
        return i != NULL ? PyFloat_FromDouble(static_cast<double>(i->lineWidth())) : NULL;
82 Franz 55
}
56
 
2790 craig 57
PyObject *scribus_getlineshade(PyObject* /* self */, PyObject* args)
82 Franz 58
{
934 subik 59
        char *Name = const_cast<char*>("");
82 Franz 60
        PageItem *it;
900 cbradney 61
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 62
                return NULL;
649 fschmid 63
        if(!checkHaveDocument())
64
                return NULL;
900 cbradney 65
        it = GetUniqueItem(QString::fromUtf8(Name));
720 subik 66
        if (it == NULL)
67
                return NULL;
1460 cbradney 68
        if ((it->HasSel) && ((it->itemType() == PageItem::TextFrame) || (it->itemType() == PageItem::PathText)))
332 Franz 69
        {
5753 jghali 70
                for (int b = 0; b < it->itemText.length(); ++b)
82 Franz 71
                {
5721 avox 72
                        if (it->itemText.selected(b))
73
                                return PyInt_FromLong(static_cast<long>(it->itemText.charStyle(b).fillShade()));
82 Franz 74
                }
332 Franz 75
        }
76
        else
1394 cbradney 77
                return PyInt_FromLong(static_cast<long>(it->lineShade()));
82 Franz 78
        return PyInt_FromLong(0L);
79
}
80
 
2790 craig 81
PyObject *scribus_getlinejoin(PyObject* /* self */, PyObject* args)
82 Franz 82
{
934 subik 83
        char *Name = const_cast<char*>("");
900 cbradney 84
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 85
                return NULL;
649 fschmid 86
        if(!checkHaveDocument())
87
                return NULL;
900 cbradney 88
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
720 subik 89
        return i != NULL ? PyInt_FromLong(static_cast<long>(i->PLineJoin)) : NULL;
82 Franz 90
}
91
 
2790 craig 92
PyObject *scribus_getlineend(PyObject* /* self */, PyObject* args)
82 Franz 93
{
934 subik 94
        char *Name = const_cast<char*>("");
900 cbradney 95
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 96
                return NULL;
649 fschmid 97
        if(!checkHaveDocument())
98
                return NULL;
900 cbradney 99
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
720 subik 100
        return i != NULL ? PyInt_FromLong(static_cast<long>(i->PLineEnd)) : NULL;
82 Franz 101
}
102
 
2790 craig 103
PyObject *scribus_getlinestyle(PyObject* /* self */, PyObject* args)
82 Franz 104
{
934 subik 105
        char *Name = const_cast<char*>("");
900 cbradney 106
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 107
                return NULL;
649 fschmid 108
        if(!checkHaveDocument())
109
                return NULL;
900 cbradney 110
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
720 subik 111
        return i != NULL ? PyInt_FromLong(static_cast<long>(i->PLineArt)) : NULL;
82 Franz 112
}
113
 
2790 craig 114
PyObject *scribus_getfillshade(PyObject* /* self */, PyObject* args)
82 Franz 115
{
934 subik 116
        char *Name = const_cast<char*>("");
900 cbradney 117
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 118
                return NULL;
649 fschmid 119
        if(!checkHaveDocument())
120
                return NULL;
900 cbradney 121
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
1394 cbradney 122
        return i != NULL ? PyInt_FromLong(static_cast<long>(i->fillShade())) : NULL;
82 Franz 123
}
124
 
2790 craig 125
PyObject *scribus_getcornerrad(PyObject* /* self */, PyObject* args)
82 Franz 126
{
934 subik 127
        char *Name = const_cast<char*>("");
900 cbradney 128
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 129
                return NULL;
649 fschmid 130
        if(!checkHaveDocument())
131
                return NULL;
900 cbradney 132
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
3989 cbradney 133
        return i != NULL ? PyInt_FromLong(static_cast<long>(i->cornerRadius())) : NULL;
82 Franz 134
}
135
 
2790 craig 136
PyObject *scribus_getimgscale(PyObject* /* self */, PyObject* args)
82 Franz 137
{
934 subik 138
        char *Name = const_cast<char*>("");
900 cbradney 139
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 140
                return NULL;
649 fschmid 141
        if(!checkHaveDocument())
142
                return NULL;
900 cbradney 143
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
3985 cbradney 144
        return i != NULL ? Py_BuildValue("(ff)", i->imageXScale(), i->imageYScale()) : NULL;
82 Franz 145
}
146
 
2790 craig 147
PyObject *scribus_getimgname(PyObject* /* self */, PyObject* args)
82 Franz 148
{
934 subik 149
        char *Name = const_cast<char*>("");
900 cbradney 150
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 151
                return NULL;
649 fschmid 152
        if(!checkHaveDocument())
153
                return NULL;
900 cbradney 154
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
155
        return i != NULL ? PyString_FromString(i->Pfile.utf8()) : NULL;
82 Franz 156
}
157
 
2790 craig 158
PyObject *scribus_getposi(PyObject* /* self */, PyObject* args)
82 Franz 159
{
934 subik 160
        char *Name = const_cast<char*>("");
900 cbradney 161
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 162
                return NULL;
649 fschmid 163
        if(!checkHaveDocument())
164
                return NULL;
900 cbradney 165
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
2027 craig 166
        if (!i)
167
                return NULL;
3903 cbradney 168
        return Py_BuildValue("(ff)", docUnitXToPageX(i->xPos()),
169
                                                                 docUnitYToPageY(i->yPos()));
82 Franz 170
}
171
 
2790 craig 172
PyObject *scribus_getsize(PyObject* /* self */, PyObject* args)
82 Franz 173
{
934 subik 174
        char *Name = const_cast<char*>("");
900 cbradney 175
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 176
                return NULL;
649 fschmid 177
        if(!checkHaveDocument())
178
                return NULL;
900 cbradney 179
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
3934 cbradney 180
        return (i != NULL) ? Py_BuildValue("(ff)", PointToValue(i->width()), PointToValue(i->height())) : NULL;
82 Franz 181
}
182
 
2790 craig 183
PyObject *scribus_getrotation(PyObject* /* self */, PyObject* args)
82 Franz 184
{
934 subik 185
        char *Name = const_cast<char*>("");
900 cbradney 186
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
82 Franz 187
                return NULL;
649 fschmid 188
        if(!checkHaveDocument())
189
                return NULL;
900 cbradney 190
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
3934 cbradney 191
        return i != NULL ? PyFloat_FromDouble(static_cast<double>(i->rotation() * -1)) : NULL;
82 Franz 192
}
193
 
2790 craig 194
PyObject *scribus_getallobj(PyObject* /* self */, PyObject* args)
82 Franz 195
{
196
        PyObject *l;
290 Franz 197
        int typ = -1;
198
        uint counter = 0;
199
        uint counter2 = 0;
4026 craig 200
        uint pageNr = ScMW->doc->currentPageNumber();
290 Franz 201
        if (!PyArg_ParseTuple(args, "|i", &typ))
82 Franz 202
                return NULL;
649 fschmid 203
        if(!checkHaveDocument())
204
                return NULL;
647 fschmid 205
        // have doc already
206
        if (typ != -1)
207
        {
4026 craig 208
                for (uint lam2 = 0; lam2 < ScMW->doc->Items->count(); ++lam2)
82 Franz 209
                {
4166 fschmid 210
                        if ((ScMW->doc->Items->at(lam2)->itemType() == typ) && (pageNr == static_cast<uint>(ScMW->doc->Items->at(lam2)->OwnPage)))
647 fschmid 211
                                counter++;
212
                }
213
        }
214
        else
3410 fschmid 215
        {
4026 craig 216
                for (uint lam2 = 0; lam2 < ScMW->doc->Items->count(); ++lam2)
3410 fschmid 217
                {
4166 fschmid 218
                        if (pageNr == static_cast<uint>(ScMW->doc->Items->at(lam2)->OwnPage))
3410 fschmid 219
                                counter++;
220
                }
221
        }
647 fschmid 222
 
223
        l = PyList_New(counter);
4026 craig 224
        for (uint lam=0; lam < ScMW->doc->Items->count(); ++lam)
647 fschmid 225
        {
4166 fschmid 226
                if  (pageNr == static_cast<uint>(ScMW->doc->Items->at(lam)->OwnPage))
290 Franz 227
                {
3410 fschmid 228
                        if (typ != -1)
82 Franz 229
                        {
4026 craig 230
                                if (ScMW->doc->Items->at(lam)->itemType() == typ)
3410 fschmid 231
                                {
4026 craig 232
                                        PyList_SetItem(l, counter2, PyString_FromString(ScMW->doc->Items->at(lam)->itemName().utf8()));
3410 fschmid 233
                                        counter2++;
234
                                }
235
                        }
236
                        else
237
                        {
4026 craig 238
                                PyList_SetItem(l, counter2, PyString_FromString(ScMW->doc->Items->at(lam)->itemName().utf8()));
647 fschmid 239
                                counter2++;
82 Franz 240
                        }
241
                }
647 fschmid 242
        }
82 Franz 243
        return l;
244
}