~scribus/scribus/trunk

« back to all changes in this revision

Viewing changes to scribus/plugins/scriptplugin/cmdtext.cpp

  • Committer: jghali
  • Date: 2018-10-14 10:31:03 UTC
  • Revision ID: svn-v4:11d20701-8431-0410-a711-e3c959e3b870:trunk/Scribus:22731
#15441: Text vertical alignment not accessible from python/scripter

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
        return PyInt_FromLong(static_cast<long>(i->textLayout.lines()));
133
133
}
134
134
 
 
135
PyObject *scribus_gettextverticalalignment(PyObject* /* self */, PyObject* args)
 
136
{
 
137
        char *Name = const_cast<char*>("");
 
138
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
 
139
                return nullptr;
 
140
        if (!checkHaveDocument())
 
141
                return nullptr;
 
142
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
 
143
        if (i == nullptr)
 
144
                return nullptr;
 
145
        if (!i->isTextFrame())
 
146
        {
 
147
                PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get vertical alignment of non-text frame.", "python error").toLocal8Bit().constData());
 
148
                return nullptr;
 
149
        }
 
150
        return PyInt_FromLong(static_cast<long>(i->verticalAlignment()));
 
151
}
 
152
 
135
153
PyObject *scribus_getcolumns(PyObject* /* self */, PyObject* args)
136
154
{
137
155
        char *Name = const_cast<char*>("");
150
168
        return PyInt_FromLong(static_cast<long>(i->Cols));
151
169
}
152
170
 
 
171
PyObject *scribus_getcolumngap(PyObject* /* self */, PyObject* args)
 
172
{
 
173
        char *Name = const_cast<char*>("");
 
174
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
 
175
                return nullptr;
 
176
        if (!checkHaveDocument())
 
177
                return nullptr;
 
178
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
 
179
        if (i == nullptr)
 
180
                return nullptr;
 
181
        if (!i->isTextFrame())
 
182
        {
 
183
                PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get column gap of non-text frame.", "python error").toLocal8Bit().constData());
 
184
                return nullptr;
 
185
        }
 
186
        return PyFloat_FromDouble(PointToValue(static_cast<double>(i->ColGap)));
 
187
}
 
188
 
153
189
PyObject *scribus_getfontfeatures(PyObject* /* self */, PyObject* args)
154
190
{
155
191
        char *Name = const_cast<char*>("");
215
251
            PointToValue(i->textToFrameDistBottom()));
216
252
}
217
253
 
218
 
PyObject *scribus_getcolumngap(PyObject* /* self */, PyObject* args)
219
 
{
220
 
        char *Name = const_cast<char*>("");
221
 
        if (!PyArg_ParseTuple(args, "|es", "utf-8", &Name))
222
 
                return nullptr;
223
 
        if (!checkHaveDocument())
224
 
                return nullptr;
225
 
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
226
 
        if (i == nullptr)
227
 
                return nullptr;
228
 
        if (!i->isTextFrame())
229
 
        {
230
 
                PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot get column gap of non-text frame.","python error").toLocal8Bit().constData());
231
 
                return nullptr;
232
 
        }
233
 
        return PyFloat_FromDouble(PointToValue(static_cast<double>(i->ColGap)));
234
 
}
235
 
 
236
254
PyObject *scribus_getframetext(PyObject* /* self */, PyObject* args)
237
255
{
238
256
        char *Name = const_cast<char*>("");
397
415
        Py_RETURN_NONE;
398
416
}
399
417
 
400
 
PyObject *scribus_setalign(PyObject* /* self */, PyObject* args)
 
418
PyObject *scribus_setalignment(PyObject* /* self */, PyObject* args)
401
419
{
402
420
        char *Name = const_cast<char*>("");
403
421
        int alignment;
407
425
                return nullptr;
408
426
        if ((alignment > 4) || (alignment < 0))
409
427
        {
410
 
                PyErr_SetString(PyExc_ValueError, QObject::tr("Alignment out of range. Use one of the scribus.ALIGN* constants.","python error").toLocal8Bit().constData());
 
428
                PyErr_SetString(PyExc_ValueError, QObject::tr("Alignment out of range. Use one of the scribus.ALIGN_* constants.","python error").toLocal8Bit().constData());
411
429
                return nullptr;
412
430
        }
413
431
        PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
709
727
        Py_RETURN_NONE;
710
728
}
711
729
 
 
730
PyObject *scribus_settextverticalalignment(PyObject* /* self */, PyObject* args)
 
731
{
 
732
        char *Name = const_cast<char*>("");
 
733
        int alignment;
 
734
        if (!PyArg_ParseTuple(args, "i|es", &alignment, "utf-8", &Name))
 
735
                return nullptr;
 
736
        if (!checkHaveDocument())
 
737
                return nullptr;
 
738
        if (alignment < 0 || alignment > 2)
 
739
        {
 
740
                PyErr_SetString(PyExc_ValueError, QObject::tr("Vertical alignment out of bounds, Use one of the scribus.ALIGNV_* constants.", "python error").toLocal8Bit().constData());
 
741
                return nullptr;
 
742
        }
 
743
        PageItem *item = GetUniqueItem(QString::fromUtf8(Name));
 
744
        if (item == nullptr)
 
745
                return nullptr;
 
746
        if (!item->isTextFrame())
 
747
        {
 
748
                PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot set vertical alignment on a non-text frame.", "python error").toLocal8Bit().constData());
 
749
                return nullptr;
 
750
        }
 
751
        item->setVerticalAlignment(alignment);
 
752
        item->update();
 
753
 
 
754
        Py_RETURN_NONE;
 
755
}
 
756
 
712
757
PyObject *scribus_selecttext(PyObject* /* self */, PyObject* args)
713
758
{
714
759
        char *Name = const_cast<char*>("");
1243
1288
          << scribus_getframetext__doc__   << scribus_gettext__doc__
1244
1289
          << scribus_getlinespace__doc__   << scribus_getcolumngap__doc__
1245
1290
          << scribus_getcolumns__doc__     << scribus_setboxtext__doc__
 
1291
          << scribus_gettextverticalalignment__doc__
1246
1292
          << scribus_inserttext__doc__     << scribus_inserthtmltext__doc__<< scribus_setfont__doc__
1247
1293
          << scribus_setfontsize__doc__    << scribus_setlinespace__doc__
1248
1294
          << scribus_setcolumngap__doc__   << scribus_setcolumns__doc__
 
1295
          << scribus_settextverticalalignment__doc__
1249
1296
          << scribus_setalign__doc__       << scribus_selecttext__doc__
1250
1297
          << scribus_deletetext__doc__     << scribus_settextfill__doc__
1251
1298
          << scribus_settextstroke__doc__  << scribus_settextshade__doc__