HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/PIL/__pycache__/ImageWin.cpython-38.pyc
U

g�
^
�@sXddlmZGdd�d�ZGdd�d�ZGdd�d�ZGdd	�d	�ZGd
d�de�ZdS)
�)�Imagec@s eZdZdZdd�Zdd�ZdS)�HDCz�
    Wraps an HDC integer. The resulting object can be passed to the
    :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose`
    methods.
    cCs
||_dS�N��dc)�selfr�r�./usr/lib/python3/dist-packages/PIL/ImageWin.py�__init__szHDC.__init__cCs|jSrr�rrrr	�__int__!szHDC.__int__N��__name__�
__module__�__qualname__�__doc__r
rrrrr	rsrc@s eZdZdZdd�Zdd�ZdS)�HWNDz�
    Wraps an HWND integer. The resulting object can be passed to the
    :py:meth:`~PIL.ImageWin.Dib.draw` and :py:meth:`~PIL.ImageWin.Dib.expose`
    methods, instead of a DC.
    cCs
||_dSr��wnd)rrrrr	r
,sz
HWND.__init__cCs|jSrrrrrr	r/szHWND.__int__Nr
rrrr	r%src@sNeZdZdZddd�Zdd�Zddd�Zd	d
�Zddd�Zd
d�Z	dd�Z
dS)�Diba&
    A Windows bitmap with the given mode and size.  The mode can be one of "1",
    "L", "P", or "RGB".

    If the display requires a palette, this constructor creates a suitable
    palette and associates it with the image. For an "L" image, 128 greylevels
    are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together
    with 20 greylevels.

    To make sure that palettes work properly under Windows, you must call the
    **palette** method upon certain events from Windows.

    :param image: Either a PIL image, or a mode string. If a mode string is
                  used, a size must also be given.  The mode can be one of "1",
                  "L", "P", or "RGB".
    :param size: If the first argument is a mode string, this
                 defines the size of the image.
    NcCsjt|d�r"t|d�r"|j}|j}n|}d}|dkr<t�|�}tj�||�|_||_||_|rf|�|�dS)N�mode�size)�1�L�PZRGB)	�hasattrrrrZgetmodebase�coreZdisplay�image�paste)rrrrrrr	r
Gs
zDib.__init__c
CsJt|t�r:|j�|�}z|j�|�}W5|j�||�Xn|j�|�}|S)a)
        Copy the bitmap contents to a device context.

        :param handle: Device context (HDC), cast to a Python integer, or an
                       HDC or HWND instance.  In PythonWin, you can use the
                       :py:meth:`CDC.GetHandleAttrib` to get a suitable handle.
        )�
isinstancerr�getdc�	releasedc�expose)r�handler�resultrrr	r"Vs
z
Dib.exposec
Cs`|sd|j}t|t�rL|j�|�}z|j�|||�}W5|j�||�Xn|j�|||�}|S)am
        Same as expose, but allows you to specify where to draw the image, and
        what part of it to draw.

        The destination and source areas are given as 4-tuple rectangles. If
        the source is omitted, the entire image is copied. If the source and
        the destination have different sizes, the image is resized as
        necessary.
        )�r%)rrrrr r!�draw)rr#Zdst�srcrr$rrr	r&hs


zDib.drawc
CsJt|t�r:|j�|�}z|j�|�}W5|j�||�Xn|j�|�}|S)ae
        Installs the palette associated with the image in the given device
        context.

        This method should be called upon **QUERYNEWPALETTE** and
        **PALETTECHANGED** events from Windows. If this method returns a
        non-zero value, one or more display palette entries were changed, and
        the image should be redrawn.

        :param handle: Device context (HDC), cast to a Python integer, or an
                       HDC or HWND instance.
        :return: A true value if one or more entries were changed (this
                 indicates that the image should be redrawn).
        )rrrr r!�
query_palette)rr#r$rrr	r(~s
zDib.query_palettecCsH|��|j|jkr |�|j�}|r6|j�|j|�n|j�|j�dS)a�
        Paste a PIL image into the bitmap image.

        :param im: A PIL image.  The size must match the target region.
                   If the mode does not match, the image is converted to the
                   mode of the bitmap image.
        :param box: A 4-tuple defining the left, upper, right, and
                    lower pixel coordinate.  See :ref:`coordinate-system`. If
                    None is given instead of a tuple, all of the image is
                    assumed.
        N)�loadrZconvertrr�im)rr*Zboxrrr	r�sz	Dib.pastecCs|j�|�S)z�
        Load display memory contents from byte data.

        :param buffer: A buffer containing display data (usually
                       data returned from <b>tobytes</b>)
        )r�	frombytes)r�bufferrrr	r+�sz
Dib.frombytescCs
|j��S)zy
        Copy display memory contents to bytes object.

        :return: A bytes object containing display data.
        )r�tobytesrrrr	r-�szDib.tobytes)N)N)N)rrrrr
r"r&r(rr+r-rrrr	r3s


	rc@sReZdZdZddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�ZdS)�Windowz*Create a Window with the given title size.�PILNcCs"tj�||j|pd|pd�|_dS)Nr%)rrZcreatewindow�_Window__dispatcherZhwnd)r�title�width�heightrrr	r
�s�zWindow.__init__cGst|d|�|�S)NZ
ui_handle_)�getattr)r�action�argsrrr	Z__dispatcher�szWindow.__dispatchercCsdSrr�rr�x0�y0�x1�y1rrr	�ui_handle_clear�szWindow.ui_handle_clearcCsdSrr)rr8r9r:r;rrr	�ui_handle_damage�szWindow.ui_handle_damagecCsdSrrrrrr	�ui_handle_destroy�szWindow.ui_handle_destroycCsdSrrr7rrr	�ui_handle_repair�szWindow.ui_handle_repaircCsdSrr)rr2r3rrr	�ui_handle_resize�szWindow.ui_handle_resizecCstj��dSr)rrZ	eventlooprrrr	�mainloop�szWindow.mainloop)r/NN)rrrrr
r0r<r=r>r?r@rArrrr	r.�s
r.cs*eZdZdZd�fdd�	Zdd�Z�ZS)�ImageWindowz6Create an image window which displays the given image.r/cs8t|t�st|�}||_|j\}}t�j|||d�dS)N)r2r3)rrrr�superr
)rrr1r2r3��	__class__rr	r
�s


zImageWindow.__init__cCs|j�|||||f�dSr)rr&r7rrr	r?�szImageWindow.ui_handle_repair)r/)rrrrr
r?�
__classcell__rrrDr	rB�srBN)�rrrrr.rBrrrr	�<module>s