PyObject *scribus_getpageitems(PyObject* /* self */) { if (!checkHaveDocument()) return nullptr; ScribusDoc* currentDoc = ScCore->primaryMainWindow()->doc; if (currentDoc->Items->count() == 0) return Py_BuildValue((char*)"[]"); uint counter = 0; int pageNr = currentDoc->currentPageNumber(); for (int lam2 = 0; lam2 < currentDoc->Items->count(); ++lam2) { if (pageNr == currentDoc->Items->at(lam2)->OwnPage) counter++; } PyObject *l = PyList_New(counter); PyObject *row; counter = 0; for (int i = 0; i<currentDoc->Items->count(); ++i) { if (pageNr == currentDoc->Items->at(i)->OwnPage) { row = Py_BuildValue((char*)"(sii)", currentDoc->Items->at(i)->itemName().toUtf8().constData(), currentDoc->Items->at(i)->itemType(), currentDoc->Items->at(i)->uniqueNr ); PyList_SetItem(l, counter, row); counter++; } } // for return l; }
PyObject *scribus_setmargins(PyObject* /* self */, PyObject* args) { double lr, tpr, btr, rr; if (!PyArg_ParseTuple(args, "dddd", &lr, &rr, &tpr, &btr)) return nullptr; if (!checkHaveDocument()) return nullptr; MarginStruct margins(ValueToPoint(tpr), ValueToPoint(lr), ValueToPoint(btr), ValueToPoint(rr)); ScribusDoc* currentDoc = ScCore->primaryMainWindow()->doc; ScribusView* currentView = ScCore->primaryMainWindow()->view; currentDoc->resetPage(currentDoc->pagePositioning(), &margins); currentView->reformPages(); currentDoc->setModified(true); currentView->GotoPage(currentDoc->currentPageNumber()); currentView->DrawNew(); Py_RETURN_NONE; }
PyObject *scribus_setdoctype(PyObject* /* self */, PyObject* args) { int fp, fsl; if (!PyArg_ParseTuple(args, "ii", &fp, &fsl)) return nullptr; if (!checkHaveDocument()) return nullptr; ScribusDoc* currentDoc = ScCore->primaryMainWindow()->doc; ScribusView* currentView = ScCore->primaryMainWindow()->view; if (currentDoc->pagePositioning() == fp) currentDoc->setPageSetFirstPage(currentDoc->pagePositioning(), fsl); currentView->reformPages(); currentView->GotoPage(currentDoc->currentPageNumber()); // is this needed? currentView->DrawNew(); // is this needed? //CB TODO ScCore->primaryMainWindow()->pagePalette->RebuildPage(); // is this needed? ScCore->primaryMainWindow()->slotDocCh(); Py_RETURN_NONE; }