setTextScaling.diff (5,134 bytes)
Index: Scribus/scribus/plugins/scriptplugin/cmdtext.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdtext.cpp (revision 13197)
+++ Scribus/scribus/plugins/scriptplugin/cmdtext.cpp (working copy)
@@ -684,6 +694,77 @@
Py_RETURN_NONE;
}
+
+PyObject *scribus_settextscaling(PyObject* /* self */, PyObject* args)
+{
+ char *Name = const_cast<char*>("");
+ double sc;
+ if (!PyArg_ParseTuple(args, "d|es", &sc, "utf-8", &Name))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ if (sc < 10)
+ {
+ PyErr_SetString(PyExc_ValueError, QObject::tr("Character scaling out of bounds, must be >= 10","python error").toLocal8Bit().constData());
+ return NULL;
+ }
+ PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
+ if (i == NULL)
+ return NULL;
+ if (!i->asTextFrame())
+ {
+ PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot set character scaling on a non-text frame.","python error").toLocal8Bit().constData());
+ return NULL;
+ }
+
+ int Apm = ScCore->primaryMainWindow()->doc->appMode;
+ ScCore->primaryMainWindow()->doc->m_Selection->clear();
+ ScCore->primaryMainWindow()->doc->m_Selection->addItem(i);
+ if (i->HasSel)
+ ScCore->primaryMainWindow()->doc->appMode = modeEdit;
+ ScCore->primaryMainWindow()->doc->itemSelection_SetScaleH(qRound(sc * 10));
+ ScCore->primaryMainWindow()->doc->appMode = Apm;
+ ScCore->primaryMainWindow()->view->Deselect();
+
+ Py_RETURN_NONE;
+}
+
+
+PyObject *scribus_settextscalingv(PyObject* /* self */, PyObject* args)
+{
+ char *Name = const_cast<char*>("");
+ double sc;
+ if (!PyArg_ParseTuple(args, "d|es", &sc, "utf-8", &Name))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ if (sc < 10)
+ {
+ PyErr_SetString(PyExc_ValueError, QObject::tr("Character scaling out of bounds, must be >= 10","python error").toLocal8Bit().constData());
+ return NULL;
+ }
+ PageItem *i = GetUniqueItem(QString::fromUtf8(Name));
+ if (i == NULL)
+ return NULL;
+ if (!i->asTextFrame())
+ {
+ PyErr_SetString(WrongFrameTypeError, QObject::tr("Cannot set character scaling on a non-text frame.","python error").toLocal8Bit().constData());
+ return NULL;
+ }
+
+ int Apm = ScCore->primaryMainWindow()->doc->appMode;
+ ScCore->primaryMainWindow()->doc->m_Selection->clear();
+ ScCore->primaryMainWindow()->doc->m_Selection->addItem(i);
+ if (i->HasSel)
+ ScCore->primaryMainWindow()->doc->appMode = modeEdit;
+ ScCore->primaryMainWindow()->doc->itemSelection_SetScaleV(qRound(sc * 10));
+ ScCore->primaryMainWindow()->doc->appMode = Apm;
+ ScCore->primaryMainWindow()->view->Deselect();
+
+ Py_RETURN_NONE;
+}
+
+
PyObject *scribus_settextshade(PyObject* /* self */, PyObject* args)
{
char *Name = const_cast<char*>("");
Index: Scribus/scribus/plugins/scriptplugin/cmdtext.h
===================================================================
--- Scribus/scribus/plugins/scriptplugin/cmdtext.h (revision 13197)
+++ Scribus/scribus/plugins/scriptplugin/cmdtext.h (working copy)
@@ -284,6 +284,28 @@
PyObject *scribus_settextstroke(PyObject * /*self*/, PyObject* args);
/*! docstring */
+PyDoc_STRVAR(scribus_settextscalingv__doc__,
+QT_TR_NOOP("setTextScalingV(scale, [\"name\"])\n\
+\n\
+Sets the vertical character scaling of the object \"name\" to \"scale\" in percent.\n\
+If \"name\" is not given the currently selected item is\n\
+used.\n\
+"));
+/*! Set text shde */
+PyObject *scribus_settextscalingv(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
+PyDoc_STRVAR(scribus_settextscaling__doc__,
+QT_TR_NOOP("setTextScaling(scale, [\"name\"])\n\
+\n\
+Sets the horizontal character scaling of the object \"name\" to \"scale\" in percent.\n\
+If \"name\" is not given the currently selected item is\n\
+used.\n\
+"));
+/*! Set text shde */
+PyObject *scribus_settextscaling(PyObject * /*self*/, PyObject* args);
+
+/*! docstring */
PyDoc_STRVAR(scribus_settextshade__doc__,
QT_TR_NOOP("setTextShade(shade, [\"name\"])\n\
\n\
Index: Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp
===================================================================
--- Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (revision 13197)
+++ Scribus/scribus/plugins/scriptplugin/scriptplugin.cpp (working copy)
@@ -458,6 +458,8 @@
{const_cast<char*>("setTextAlignment"), scribus_setalign, METH_VARARGS, tr(scribus_setalign__doc__)},
{const_cast<char*>("setTextColor"), scribus_settextfill, METH_VARARGS, tr(scribus_settextfill__doc__)},
{const_cast<char*>("setText"), scribus_setboxtext, METH_VARARGS, tr(scribus_setboxtext__doc__)},
+ {const_cast<char*>("setTextScaling"), scribus_settextscaling, METH_VARARGS, tr(scribus_settextscaling__doc__)},
+ {const_cast<char*>("setTextScalingV"), scribus_settextscalingv, METH_VARARGS, tr(scribus_settextscalingv__doc__)},
{const_cast<char*>("setTextShade"), scribus_settextshade, METH_VARARGS, tr(scribus_settextshade__doc__)},
{const_cast<char*>("setTextStroke"), scribus_settextstroke, METH_VARARGS, tr(scribus_settextstroke__doc__)},
{const_cast<char*>("setUnit"), scribus_setunit, METH_VARARGS, tr(scribus_setunit__doc__)},