summaryrefslogtreecommitdiffstats
path: root/PySide/QtGui/typesystem_gui_win.xml
blob: 416c5e5badf9f36943513e2e269e9f19645155bd (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
<?xml version="1.0"?>
<!--
    This file is part of PySide project.
    Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
    Contact: PySide team <contact@pyside.org>

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-->
<typesystem package="PySide.QtGui">
  <primitive-type name="WId" target-lang-api-name="PyObject">
    <conversion-rule file="glue/wid_conversions.h">
        <native-to-target>
        #ifdef IS_PY3K
        return PyCapsule_New(%in, 0, 0);
        #else
        return PyCObject_FromVoidPtr(%in, 0);
        #endif
        </native-to-target>
        <target-to-native>
            <add-conversion type="PyNone">
            %out = 0;
            </add-conversion>
            <add-conversion check="checkPyCapsuleOrPyCObject(%in)" type="PyObject">
            #ifdef IS_PY3K
            %out = (%OUTTYPE)PyCapsule_GetPointer(%in, 0);
            #else
            %out = (%OUTTYPE)PyCObject_AsVoidPtr(%in);
            #endif
            </add-conversion>
        </target-to-native>
    </conversion-rule>
  </primitive-type>
  <inject-code class="native" position="beginning">
  static bool checkPyCapsuleOrPyCObject(PyObject* pyObj)
  {
      #ifdef IS_PY3K
      return PyCapsule_CheckExact(pyObj);
      #else
      return PyCObject_Check(pyObj);
      #endif
  }
  </inject-code>
  <enum-type name="QPixmap::HBitmapFormat" />
</typesystem>