# Copyright (C) 2022 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
"""
This file contains the exact signatures for all functions in module
PySide6.QtPrintSupport, except for defaults which are replaced by "...".
"""

# mypy: disable-error-code="override, overload-overlap"
# Module `PySide6.QtPrintSupport`

import PySide6.QtPrintSupport
import PySide6.QtGui
import PySide6.QtWidgets

import enum
import typing
from PySide6.QtCore import Signal
from shiboken6 import Shiboken


class QAbstractPrintDialog(PySide6.QtWidgets.QDialog):

    class PrintDialogOption(enum.Flag):

        PrintToFile               = 0x1
        PrintSelection            = 0x2
        PrintPageRange            = 0x4
        PrintShowPageSize         = 0x8
        PrintCollateCopies        = 0x10
        PrintCurrentPage          = 0x40

    class PrintRange(enum.Enum):

        AllPages                  = 0x0
        Selection                 = 0x1
        PageRange                 = 0x2
        CurrentPage               = 0x3


class QIntList: ...


class QPageSetupDialog(PySide6.QtWidgets.QDialog): ...


class QPrintDialog(PySide6.QtPrintSupport.QAbstractPrintDialog):

    accepted                 : typing.ClassVar[Signal] = ... # accepted(QPrinter*)


class QPrintEngine(Shiboken.Object):

    class PrintEnginePropertyKey(enum.Enum):

        PPK_CollateCopies         = 0x0
        PPK_ColorMode             = 0x1
        PPK_Creator               = 0x2
        PPK_DocumentName          = 0x3
        PPK_FullPage              = 0x4
        PPK_NumberOfCopies        = 0x5
        PPK_Orientation           = 0x6
        PPK_OutputFileName        = 0x7
        PPK_PageOrder             = 0x8
        PPK_PageRect              = 0x9
        PPK_PageSize              = 0xa
        PPK_PaperSize             = 0xa
        PPK_PaperRect             = 0xb
        PPK_PaperSource           = 0xc
        PPK_PrinterName           = 0xd
        PPK_PrinterProgram        = 0xe
        PPK_Resolution            = 0xf
        PPK_SelectionOption       = 0x10
        PPK_SupportedResolutions  = 0x11
        PPK_WindowsPageSize       = 0x12
        PPK_FontEmbedding         = 0x13
        PPK_Duplex                = 0x14
        PPK_PaperSources          = 0x15
        PPK_CustomPaperSize       = 0x16
        PPK_PageMargins           = 0x17
        PPK_CopyCount             = 0x18
        PPK_SupportsMultipleCopies = 0x19
        PPK_PaperName             = 0x1a
        PPK_QPageSize             = 0x1b
        PPK_QPageMargins          = 0x1c
        PPK_QPageLayout           = 0x1d
        PPK_CustomBase            = 0xff00


class QPrintPreviewDialog(PySide6.QtWidgets.QDialog):

    paintRequested           : typing.ClassVar[Signal] = ... # paintRequested(QPrinter*)


class QPrintPreviewWidget(PySide6.QtWidgets.QWidget):

    paintRequested           : typing.ClassVar[Signal] = ... # paintRequested(QPrinter*)
    previewChanged           : typing.ClassVar[Signal] = ... # previewChanged()

    class ViewMode(enum.Enum):

        SinglePageView            = 0x0
        FacingPagesView           = 0x1
        AllPagesView              = 0x2

    class ZoomMode(enum.Enum):

        CustomZoom                = 0x0
        FitToWidth                = 0x1
        FitInView                 = 0x2


class QPrinter(PySide6.QtGui.QPagedPaintDevice):

    class ColorMode(enum.Enum):

        GrayScale                 = 0x0
        Color                     = 0x1

    class DuplexMode(enum.Enum):

        DuplexNone                = 0x0
        DuplexAuto                = 0x1
        DuplexLongSide            = 0x2
        DuplexShortSide           = 0x3

    class OutputFormat(enum.Enum):

        NativeFormat              = 0x0
        PdfFormat                 = 0x1

    class PageOrder(enum.Enum):

        FirstPageFirst            = 0x0
        LastPageFirst             = 0x1

    class PaperSource(enum.Enum):

        OnlyOne                   = 0x0
        Upper                     = 0x0
        Lower                     = 0x1
        Middle                    = 0x2
        Manual                    = 0x3
        Envelope                  = 0x4
        EnvelopeManual            = 0x5
        Auto                      = 0x6
        Tractor                   = 0x7
        SmallFormat               = 0x8
        LargeFormat               = 0x9
        LargeCapacity             = 0xa
        Cassette                  = 0xb
        FormSource                = 0xc
        MaxPageSource             = 0xd
        CustomSource              = 0xe
        LastPaperSource           = 0xe

    class PrintRange(enum.Enum):

        AllPages                  = 0x0
        Selection                 = 0x1
        PageRange                 = 0x2
        CurrentPage               = 0x3

    class PrinterMode(enum.Enum):

        ScreenResolution          = 0x0
        PrinterResolution         = 0x1
        HighResolution            = 0x2

    class PrinterState(enum.Enum):

        Idle                      = 0x0
        Active                    = 0x1
        Aborted                   = 0x2
        Error                     = 0x3

    class Unit(enum.Enum):

        Millimeter                = 0x0
        Point                     = 0x1
        Inch                      = 0x2
        Pica                      = 0x3
        Didot                     = 0x4
        Cicero                    = 0x5
        DevicePixel               = 0x6


class QPrinterInfo(Shiboken.Object): ...


# eof
