aboutsummaryrefslogtreecommitdiffstats
path: root/PySide/typesystem_templates.xml
blob: 7aafaa98a9fc3ee79c522f132a11adfd33eddac0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?xml version="1.0"?>
<typesystem>
    <!-- Templates to fix bool* parameters -->
    <template name="fix_bool*">
        bool ok_;
        %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_);
        %PYARG_0 = Shiboken::makeTuple(retval_, ok_);
    </template>
    <template name="fix_args,bool*">
        bool ok_;
        %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;ok_);
        %PYARG_0 = Shiboken::makeTuple(retval_, ok_);
    </template>
    <template name="fix_arg,bool*,arg">
        bool ok_;
        %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(%1, &amp;ok_, %3);
        %PYARG_0 = Shiboken::makeTuple(retval_, ok_);
    </template>
    <template name="fix_bool*,arg">
        bool ok_;
        %RETURN_TYPE retval_ = %CPPSELF.%FUNCTION_NAME(&amp;ok_, %2);
        %PYARG_0 = Shiboken::makeTuple(retval_, ok_);
    </template>
    <template name="get_slice">
        %TYPE* sequence;
        Py_ssize_t start, end;
        Py_ssize_t len = %CPPSELF->count();

        if (_i1 &gt; len)
            start = len;
        else if (_i1 &lt; 0)
            start = 0;
        else
            start = _i1;

        if (_i2 &gt; len)
            end = len;
        else if (_i2 &lt; 0)
           end = 0;
        else
           end = _i2;

        sequence = new %TYPE();
        for (Py_ssize_t i = start; i &lt; end; i++)
            sequence->append(%CPPSELF->at(i));

        return %CONVERTTOPYTHON[%TYPE](*sequence);
    </template>

    <template name="fix_args,QRectF*">
        QRectF rect_;
        %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;rect_);
        return %CONVERTTOPYTHON[QRectF](rect_);
    </template>

    <template name="fix_args,QRect*">
        QRect rect_;
        %CPPSELF.%FUNCTION_NAME(%ARGUMENT_NAMES, &amp;rect_);
        return %CONVERTTOPYTHON[QRectF](rect_);
    </template>

</typesystem>