<?xml version="1.0" encoding="UTF-8"?>
<!--
// Copyright (C) 2026 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
-->
<typesystem package="PySide6.QtCanvasPainter"
            namespace-begin="QT_BEGIN_NAMESPACE" namespace-end="QT_END_NAMESPACE">
    <load-typesystem name="QtWidgets/typesystem_widgets.xml" generate="no"/>
    <load-typesystem name="QtQuick/typesystem_quick.xml" generate="no"/>
    <value-type name="QCanvasBoxGradient"/>
    <value-type name="QCanvasBoxShadow"/>
    <value-type name="QCanvasBrush">
        <enum-type name="BrushType"/>
    </value-type>
    <value-type name="QCanvasConicalGradient"/>
    <value-type name="QCanvasCustomBrush"/>
    <value-type name="QCanvasGradient"/>
    <value-type name="QCanvasGridPattern"/>
    <value-type name="QCanvasImage"/>
    <value-type name="QCanvasImagePattern"/>
    <value-type name="QCanvasLinearGradient"/>
    <value-type name="QCanvasOffscreenCanvas">
        <enum-type name="Flag" flags="Flags"/>
    </value-type>
    <object-type name="QCanvasPainter">
        <enum-type name="PathConnection"/>
        <enum-type name="PathWinding"/>
        <enum-type name="LineCap"/>
        <enum-type name="LineJoin"/>
        <enum-type name="TextAlign"/>
        <enum-type name="TextBaseline"/>
        <enum-type name="TextDirection"/>
        <enum-type name="CompositeOperation"/>
        <enum-type name="WrapMode"/>
        <enum-type name="ImageFlag" flags="ImageFlags"/>
        <enum-type name="RenderHint" flags="RenderHints"/>
    </object-type>
    <object-type name="QCanvasPainterFactory"/>
    <value-type name="QCanvasPath"/>
    <object-type name="QCanvasPainterWidget">
        <add-function signature="grabCanvas(const QCanvasOffscreenCanvas &amp;@canvas@,PyCallable*@resultCallback@)">
            <inject-code class="target" position="beginning" file="../glue/qtcanvaspainter.cpp"
                         snippet="qcpainterwidget-grabcanvas"/>
            <inject-documentation format="target" mode="append" file="../doc/qtcanvaspainter.rst"
                                  snippet="qcpainterwidget-grabcanvas"/>
        </add-function>
    </object-type>
    <value-type name="QCanvasRadialGradient"/>
    <object-type name="QCanvasRhiPaintDriver">
        <enum-type name="BeginPaintFlag" flags="BeginPaintFlags"/>
        <enum-type name="EndPaintFlag" flags="EndPaintFlags"/>
        <add-function signature="grabCanvas(const QCanvasOffscreenCanvas &amp;@canvas@,PyCallable*@resultCallback@)">
            <inject-code class="target" position="beginning" file="../glue/qtcanvaspainter.cpp"
                         snippet="qcpainterwidget-grabcanvas"/>
            <inject-documentation format="target" mode="append" file="../doc/qtcanvaspainter.rst"
                                  snippet="qcpainterwidget-grabcanvas"/>
        </add-function>
    </object-type>
    <object-type name="QCanvasPainterItem"/>
    <object-type name="QCanvasPainterItemRenderer"/>
</typesystem>
