<?xml version="1.0"?>
<!--
    This file is part of PySide project.
    Copyright (C) 2013 Digia Plc 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>
        <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">
    <insert-template name="checkPyCapsuleOrPyCObject_func"/>
  </inject-code>
  <enum-type name="QPixmap::HBitmapFormat" />
</typesystem>
