"""
PySide stub files generated by **IceSpringPySideStubs**

Home: https://baijifeilong.github.io/2022/01/06/ice-spring-pyside-stubs/index.html

Github: https://github.com/baijifeilong/IceSpringPySideStubs

PyPI(PySide2): https://pypi.org/project/IceSpringPySideStubs-PySide2

PyPI(PySide6): https://pypi.org/project/IceSpringPySideStubs-PySide6

PyPI(PyQt5): https://pypi.org/project/IceSpringPySideStubs-PyQt5

PyPI(PyQt6): https://pypi.org/project/IceSpringPySideStubs-PyQt6

Generated by BaiJiFeiLong@gmail.com

License: MIT
"""
import enum
import typing
import PyQt6.sip
from PyQt6 import QtGui
from PyQt6.QtPrintSupport import *
import enum


class QPrintEngine(PyQt6.sip.simplewrapper):
    """
    https://doc.qt.io/qt-6/qprintengine.html

    **Detailed Description**

    The common case when creating your own print engine is to derive from both
    **QPaintEngine**  and QPrintEngine. Various properties of a print engine are
    given with **property** () and set with **setProperty** ().

    **See also** **QPaintEngine** .
    """

    class PrintEnginePropertyKey(enum.Enum):
        PPK_CollateCopies: QPrintEngine = ...
        PPK_ColorMode: QPrintEngine = ...
        PPK_Creator: QPrintEngine = ...
        PPK_DocumentName: QPrintEngine = ...
        PPK_FullPage: QPrintEngine = ...
        PPK_NumberOfCopies: QPrintEngine = ...
        PPK_Orientation: QPrintEngine = ...
        PPK_OutputFileName: QPrintEngine = ...
        PPK_PageOrder: QPrintEngine = ...
        PPK_PageRect: QPrintEngine = ...
        PPK_PageSize: QPrintEngine = ...
        PPK_PaperRect: QPrintEngine = ...
        PPK_PaperSource: QPrintEngine = ...
        PPK_PrinterName: QPrintEngine = ...
        PPK_PrinterProgram: QPrintEngine = ...
        PPK_Resolution: QPrintEngine = ...
        PPK_SelectionOption: QPrintEngine = ...
        PPK_SupportedResolutions: QPrintEngine = ...
        PPK_WindowsPageSize: QPrintEngine = ...
        PPK_FontEmbedding: QPrintEngine = ...
        PPK_Duplex: QPrintEngine = ...
        PPK_PaperSources: QPrintEngine = ...
        PPK_CustomPaperSize: QPrintEngine = ...
        PPK_PageMargins: QPrintEngine = ...
        PPK_PaperSize: QPrintEngine = ...
        PPK_CopyCount: QPrintEngine = ...
        PPK_SupportsMultipleCopies: QPrintEngine = ...
        PPK_PaperName: QPrintEngine = ...
        PPK_QPageSize: QPrintEngine = ...
        PPK_QPageMargins: QPrintEngine = ...
        PPK_QPageLayout: QPrintEngine = ...
        PPK_CustomBase: QPrintEngine = ...

    @typing.overload
    def __init__(self) -> None:
        ...

    @typing.overload
    def __init__(self, a0: "QPrintEngine") -> None:
        ...

    def printerState(self) -> "QPrinter.PrinterState":
        """
        https://doc.qt.io/qt-6/qprintengine.html#printerState

        **[pure virtual] QPrinter::PrinterState QPrintEngine::printerState()
        const**

        Returns the current state of the printer being used by the print engine.
        """
        ...

    def metric(self, a0: QtGui.QPaintDevice.PaintDeviceMetric) -> int:
        """
        https://doc.qt.io/qt-6/qprintengine.html#metric

        **[pure virtual] int
        QPrintEngine::metric(QPaintDevice::PaintDeviceMetric id ) const**

        Returns the metric for the given **id**.
        """
        ...

    def abort(self) -> bool:
        """
        https://doc.qt.io/qt-6/qprintengine.html#abort

        **[pure virtual] bool QPrintEngine::abort()**

        Instructs the print engine to abort the printing process. Returns true
        if successful; otherwise returns `false`.
        """
        ...

    def newPage(self) -> bool:
        """
        https://doc.qt.io/qt-6/qprintengine.html#newPage

        **[pure virtual] bool QPrintEngine::newPage()**

        Instructs the print engine to start a new page. Returns `true` if the
        printer was able to create the new page; otherwise returns `false`.
        """
        ...

    def property(self, key: "QPrintEngine.PrintEnginePropertyKey") -> typing.Any:
        """
        https://doc.qt.io/qt-6/qprintengine.html#property

        **[pure virtual] QVariant
        QPrintEngine::property(QPrintEngine::PrintEnginePropertyKey key )
        const**

        Returns the print engine's property specified by **key**.

        **See also** **setProperty** ().
        """
        ...

    def setProperty(
        self, key: "QPrintEngine.PrintEnginePropertyKey", value: typing.Any
    ) -> None:
        """
        https://doc.qt.io/qt-6/qprintengine.html#setProperty

        **[pure virtual] void
        QPrintEngine::setProperty(QPrintEngine::PrintEnginePropertyKey key ,
        const QVariant & value )**

        Sets the print engine's property specified by **key** to the given
        **value**.

        **See also** **property** ().
        """
        ...
