Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
104 Franz 1
#include <Python.h>
103 Franz 2
#include "cmdpage.h"
82 Franz 3
#include "cmdvar.h"
201 Franz 4
#include "cmdutil.h"
82 Franz 5
 
6
PyObject *scribus_actualpage(PyObject *self, PyObject* args)
7
{
8
        if (!PyArg_ParseTuple(args, ""))
332 Franz 9
        {
10
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("CurrentPage()"));
82 Franz 11
                return NULL;
332 Franz 12
        }
82 Franz 13
        if (!Carrier->HaveDoc)
14
                return PyInt_FromLong(0L);
15
        return PyInt_FromLong(static_cast<long>(Carrier->doc->ActPage->PageNr + 1));
16
}
17
 
18
PyObject *scribus_redraw(PyObject *self, PyObject* args)
19
{
20
        if (!PyArg_ParseTuple(args, ""))
332 Franz 21
        {
22
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("RedrawAll()"));
82 Franz 23
                return NULL;
332 Franz 24
        }
82 Franz 25
        Py_INCREF(Py_None);
26
        if (!Carrier->HaveDoc)
27
                return Py_None;
28
        Carrier->view->DrawNew();
29
        return Py_None;
30
}
31
 
32
PyObject *scribus_savepageeps(PyObject *self, PyObject* args)
33
{
34
        char *Name;
35
        if (!PyArg_ParseTuple(args, "s", &Name))
332 Franz 36
        {
37
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("SavePageAsEPS(filename)"));
82 Franz 38
                return NULL;
332 Franz 39
        }
82 Franz 40
        if (!Carrier->HaveDoc)
41
                return PyInt_FromLong(0L);
173 Franz 42
        bool ret = Carrier->DoSaveAsEps(QString(Name));
43
//      qApp->processEvents();
44
        return PyInt_FromLong(static_cast<long>(ret));
82 Franz 45
}
46
 
47
PyObject *scribus_deletepage(PyObject *self, PyObject* args)
48
{
49
        int e;
50
        if (!PyArg_ParseTuple(args, "i", &e))
332 Franz 51
        {
52
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("DeletePage(pagenumber)"));
82 Franz 53
                return NULL;
332 Franz 54
        }
82 Franz 55
        Py_INCREF(Py_None);
56
        if (!Carrier->HaveDoc)
57
                return Py_None;
58
        e--;
59
        if ((e < 0) || (e > static_cast<int>(Carrier->view->Pages.count())-1))
60
                return Py_None;
61
        Carrier->DeletePage2(e);
173 Franz 62
//      qApp->processEvents();
82 Franz 63
        return Py_None;
64
}
65
 
66
PyObject *scribus_gotopage(PyObject *self, PyObject* args)
67
{
68
        int e;
69
        if (!PyArg_ParseTuple(args, "i", &e))
332 Franz 70
        {
71
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("GotoPage(pagenumber)"));
82 Franz 72
                return NULL;
332 Franz 73
        }
82 Franz 74
        Py_INCREF(Py_None);
75
        if (!Carrier->HaveDoc)
76
                return Py_None;
77
        e--;
78
        if ((e < 0) || (e > static_cast<int>(Carrier->view->Pages.count())-1))
79
                return Py_None;
80
        Carrier->view->GotoPage(e);
173 Franz 81
//      qApp->processEvents();
82 Franz 82
        return Py_None;
83
}
84
 
85
PyObject *scribus_newpage(PyObject *self, PyObject* args)
86
{
87
        int e;
88
        char *name = "Normal";
89
        if (!PyArg_ParseTuple(args, "i|s", &e, &name))
332 Franz 90
        {
91
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("NewPage(pagenumber [, pagename])"));
82 Franz 92
                return NULL;
332 Franz 93
        }
82 Franz 94
        Py_INCREF(Py_None);
95
        if (!Carrier->HaveDoc)
96
                return Py_None;
97
        if (e < 0)
98
                Carrier->slotNewPageP(Carrier->view->Pages.count(), QString(name));
99
        else
100
                {
101
                e--;
102
                if ((e < 0) || (e > static_cast<int>(Carrier->view->Pages.count())-1))
103
                        return Py_None;
104
                Carrier->slotNewPageP(e, QString(name));
105
                }
173 Franz 106
//      qApp->processEvents();
82 Franz 107
        return Py_None;
108
}
109
 
110
PyObject *scribus_pagecount(PyObject *self, PyObject* args)
111
{
112
        if (!PyArg_ParseTuple(args, ""))
332 Franz 113
        {
114
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("PageCount()"));
82 Franz 115
                return NULL;
332 Franz 116
        }
82 Franz 117
        if (!Carrier->HaveDoc)
118
                return PyInt_FromLong(0L);
119
        return PyInt_FromLong(static_cast<long>(Carrier->view->Pages.count()));
120
}
121
 
201 Franz 122
PyObject *scribus_pagedimension(PyObject *self, PyObject *args)
123
{
332 Franz 124
        if (!PyArg_ParseTuple(args, ""))
125
        {
126
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("PageDimension()"));
201 Franz 127
                return NULL;
128
        }
332 Franz 129
        if (!Carrier->HaveDoc)
130
        {
131
                Py_INCREF(Py_None);
243 Franz 132
                return Py_None;
201 Franz 133
        }
134
        PyObject *t;
135
        t = Py_BuildValue(
136
                "(dd)",
137
                PointToValue(Carrier->doc->PageB), // it's just view scale... * Carrier->doc->Scale),
138
                PointToValue(Carrier->doc->PageH)  // * Carrier->doc->Scale)
139
                );
140
        return t;
141
}
142
 
216 Franz 143
PyObject *scribus_getpageitems(PyObject *self, PyObject* args)
144
{
145
        if (!PyArg_ParseTuple(args, ""))
332 Franz 146
        {
147
                PyErr_SetString(PyExc_Exception, ERRPARAM + QString("GetPageItems()"));
216 Franz 148
                return NULL;
332 Franz 149
        }
216 Franz 150
        if ((!Carrier->HaveDoc) || (Carrier->doc->ActPage->Items.count() == 0))
151
                return Py_BuildValue((char*)"[]");
152
        PyObject *l = PyList_New(Carrier->doc->ActPage->Items.count());
153
        PyObject *row;
154
        for (uint i = 0; i<Carrier->doc->ActPage->Items.count(); ++i)
155
        {
156
                row = Py_BuildValue((char*)"(sii)",
157
                                Carrier->doc->ActPage->Items.at(i)->AnName.ascii(),
158
                                Carrier->doc->ActPage->Items.at(i)->PType,
159
                                Carrier->doc->ActPage->Items.at(i)->ItemNr
332 Franz 160
                        );
216 Franz 161
                PyList_SetItem(l, i, row);
162
        } // for
163
        return l;
164
}