summaryrefslogtreecommitdiffstats
path: root/scribus/plugins/scriptplugin/guiapp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scribus/plugins/scriptplugin/guiapp.cpp')
-rw-r--r--scribus/plugins/scriptplugin/guiapp.cpp141
1 files changed, 141 insertions, 0 deletions
diff --git a/scribus/plugins/scriptplugin/guiapp.cpp b/scribus/plugins/scriptplugin/guiapp.cpp
new file mode 100644
index 0000000..518d122
--- /dev/null
+++ b/scribus/plugins/scriptplugin/guiapp.cpp
@@ -0,0 +1,141 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+#include "guiapp.h"
+#include "cmdutil.h"
+#include "scribuscore.h"
+#include <QString>
+#include <QCursor>
+
+PyObject *scribus_messagebartext(PyObject* /* self */, PyObject* args)
+{
+ char *aText;
+ if (!PyArg_ParseTuple(args, "es", "utf-8", &aText))
+ return NULL;
+ ScCore->primaryMainWindow()->setStatusBarInfoText(QString::fromUtf8(aText));
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+PyObject *scribus_progressreset(PyObject* /* self */)
+{
+ ScCore->primaryMainWindow()->mainWindowProgressBar->reset();
+ qApp->processEvents();
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+PyObject *scribus_progresssettotalsteps(PyObject* /* self */, PyObject* args)
+{
+ int steps;
+ if (!PyArg_ParseTuple(args, "i", &steps))
+ return NULL;
+ ScCore->primaryMainWindow()->mainWindowProgressBar->setMaximum(steps);
+ ScCore->primaryMainWindow()->mainWindowProgressBar->setValue(0);
+ qApp->processEvents();
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+PyObject *scribus_progresssetprogress(PyObject* /* self */, PyObject* args)
+{
+ int position;
+ if (!PyArg_ParseTuple(args, "i", &position))
+ return NULL;
+ if (position > ScCore->primaryMainWindow()->mainWindowProgressBar->maximum())
+ {
+ PyErr_SetString(PyExc_ValueError, QString("Tried to set progress > maximum progress").toLocal8Bit().constData());
+ return NULL;
+ }
+ ScCore->primaryMainWindow()->mainWindowProgressBar->setValue(position);
+ qApp->processEvents();
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+
+PyObject *scribus_setcursor(PyObject* /* self */, PyObject* args)
+{
+ char *aCursor;
+ qDebug("WARNING! SetCursor() is not stable!");
+ if (!PyArg_ParseTuple(args, "es", "ascii", &aCursor))
+ return NULL;
+ if (strcmp(aCursor, "wait") == 0)
+ qApp->changeOverrideCursor(Qt::WaitCursor);
+// else
+// qApp->restoreOverrideCursor();
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+PyObject *scribus_docchanged(PyObject* /* self */, PyObject* args)
+{
+ int aValue;
+ if (!PyArg_ParseTuple(args, "i", &aValue))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ ScCore->primaryMainWindow()->slotDocCh(static_cast<bool>(aValue));
+ /*
+ if (aValue>0)
+ ScCore->primaryMainWindow()->slotDocCh(true);
+ else
+ ScCore->primaryMainWindow()->slotDocCh(false);*/
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+PyObject *scribus_zoomdocument(PyObject* /* self */, PyObject* args)
+{
+ double zoomFactor;
+ if (!PyArg_ParseTuple(args, "d", &zoomFactor))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ if (zoomFactor > 0.0 || zoomFactor == -100.0)
+ ScCore->primaryMainWindow()->slotZoom(zoomFactor);
+ else
+ {
+ PyErr_SetString(PyExc_ValueError, QString("The zoom factor should be greater than 0.0 or equal to -100.0. See help(zoomFactor).").toLocal8Bit().constData());
+ return NULL;
+ }
+// Py_INCREF(Py_None);
+// return Py_None;
+ Py_RETURN_NONE;
+}
+
+/*
+ * Gives the possibility to scroll the document.
+ * 13.12.2007: Joachim Neu
+ */
+PyObject *scribus_scrolldocument(PyObject*,PyObject* args)
+{
+ int moveX = 0, moveY = 0;
+ if(!PyArg_ParseTuple(args, "ii", &moveX, &moveY))
+ return NULL;
+ if(!checkHaveDocument())
+ return NULL;
+ ScCore->primaryMainWindow()->view->scrollBy(moveX,moveY);
+ Py_RETURN_NONE;
+}
+
+/*! HACK: this removes "warning: 'blah' defined but not used" compiler warnings
+with header files structure untouched (docstrings are kept near declarations)
+PV */
+void guiappdocwarnings()
+{
+ QStringList s;
+ s << scribus_messagebartext__doc__ << scribus_progressreset__doc__
+ << scribus_progresssettotalsteps__doc__ << scribus_progresssetprogress__doc__
+ << scribus_setcursor__doc__ << scribus_docchanged__doc__
+ << scribus_zoomdocument__doc__ << scribus_scrolldocument__doc__;
+}