§
    R¦·f:  ã                  ó¢   — d dl mZ ddlmZ  G d„ d¦  «        Z G d„ d¦  «        Z G d„ d	¦  «        Z G d
„ d¦  «        Z G d„ de¦  «        ZdS )é    )Úannotationsé   )ÚImagec                  ó   — e Zd ZdZd„ Zd„ ZdS )Ú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.
    c                ó   — || _         d S ©N©Údc)Úselfr   s     ú>/var/www/html/env/lib/python3.11/site-packages/PIL/ImageWin.pyÚ__init__zHDC.__init__   s   € ØˆŒˆˆó    c                ó   — | j         S r	   r
   ©r   s    r   Ú__int__zHDC.__int__"   s	   € ØŒwˆr   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   © r   r   r   r      s<   € € € € € ðð ðð ð ðð ð ð ð r   r   c                  ó   — e Zd ZdZd„ Zd„ ZdS )Ú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.
    c                ó   — || _         d S r	   ©Úwnd)r   r   s     r   r   zHWND.__init__-   s   € ØˆŒˆˆr   c                ó   — | j         S r	   r   r   s    r   r   zHWND.__int__0   s	   € ØŒxˆr   Nr   r   r   r   r   r   &   s<   € € € € € ðð ðð ð ðð ð ð ð r   r   c                  óB   — e Zd ZdZd
d„Zd„ Zd
d„Zd„ Zd
d„Zd„ Z	d	„ Z
dS )Ú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 graylevels
    are allocated. For an "RGB" image, a 6x6x6 colour cube is used, together
    with 20 graylevels.

    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.
    Nc                ó4  — t          |d¦  «        rt          |d¦  «        r|j        }|j        }n|}d }|dvrt          j        |¦  «        }t          j                             ||¦  «        | _        || _        || _        |r|                      |¦  «         d S d S )NÚmodeÚsize)Ú1ÚLÚPÚRGB)	Úhasattrr"   r#   r   ÚgetmodebaseÚcoreÚdisplayÚimageÚpaste)r   r,   r#   r"   s       r   r   zDib.__init__H   s¬   € Ý5˜&Ñ!Ô!ð 	¥g¨e°VÑ&<Ô&<ð 	Ø”:ˆDØ”:ˆDˆDàˆDØˆEØÐ-Ð-Ð-ÝÔ$ TÑ*Ô*ˆDÝ”Z×'Ò'¨¨dÑ3Ô3ˆŒ
ØˆŒ	ØˆŒ	Øð 	ØJŠJuÑÔÐÐÐð	ð 	r   c                óF  — t          |t          ¦  «        rq| j                             |¦  «        }	 | j                             |¦  «        }| j                             ||¦  «         n:# | j                             ||¦  «         w xY w| 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
                       ``CDC.GetHandleAttrib()`` to get a suitable handle.
        )Ú
isinstancer   r,   ÚgetdcÚexposeÚ	releasedc)r   Úhandler   Úresults       r   r1   z
Dib.exposeW   s˜   € õ fdÑ#Ô#ð 	/Ø”×!Ò! &Ñ)Ô)ˆBð1Øœ×*Ò*¨2Ñ.Ô.à”
×$Ò$ V¨RÑ0Ô0Ð0Ð0ø”
×$Ò$ V¨RÑ0Ô0Ð0Ð0øøøà”Z×&Ò& vÑ.Ô.ˆFØˆó   ±A' Á'Bc                óf  — |s
d| j         z   }t          |t          ¦  «        rs| j                             |¦  «        }	 | j                             |||¦  «        }| j                             ||¦  «         n<# | j                             ||¦  «         w xY w| 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   r   )r#   r/   r   r,   r0   Údrawr2   )r   r3   ÚdstÚsrcr   r4   s         r   r7   zDib.drawi   s°   € ð ð 	%Ø˜4œ9Ñ$ˆCÝfdÑ#Ô#ð 	7Ø”×!Ò! &Ñ)Ô)ˆBð1ØœŸš¨¨S°#Ñ6Ô6à”
×$Ò$ V¨RÑ0Ô0Ð0Ð0ø”
×$Ò$ V¨RÑ0Ô0Ð0Ð0øøøà”Z—_’_ V¨S°#Ñ6Ô6ˆFØˆs   ½A5 Á5Bc                óF  — t          |t          ¦  «        rq| j                             |¦  «        }	 | j                             |¦  «        }| j                             ||¦  «         n:# | j                             ||¦  «         w xY w| 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).
        )r/   r   r,   r0   Úquery_paletter2   )r   r3   r4   s      r   r;   zDib.query_palette   s˜   € õ fdÑ#Ô#ð 	6Ø”Z×%Ò% fÑ-Ô-ˆFð5Øœ×1Ò1°&Ñ9Ô9à”
×$Ò$ V¨VÑ4Ô4Ð4Ð4ø”
×$Ò$ V¨VÑ4Ô4Ð4Ð4øøøà”Z×-Ò-¨fÑ5Ô5ˆFØˆr5   c                ó  — |                      ¦   «          | j        |j        k    r|                     | j        ¦  «        }|r"| j                             |j        |¦  «         dS | j                             |j        ¦  «         dS )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)Úloadr"   Úconvertr,   r-   Úim)r   r?   Úboxs      r   r-   z	Dib.paste˜   sy   € ð 	Š‰	Œ	ˆ	ØŒ9˜œÒÐØ—’˜DœIÑ&Ô&ˆBØð 	$ØŒJ×Ò˜RœU CÑ(Ô(Ð(Ð(Ð(àŒJ×Ò˜RœUÑ#Ô#Ð#Ð#Ð#r   c                ó6   — | j                              |¦  «        S )zÐ
        Load display memory contents from byte data.

        :param buffer: A buffer containing display data (usually
                       data returned from :py:func:`~PIL.ImageWin.Dib.tobytes`)
        )r,   Ú	frombytes)r   Úbuffers     r   rB   zDib.frombytes¬   s   € ð Œz×#Ò# FÑ+Ô+Ð+r   c                ó4   — | j                              ¦   «         S )zy
        Copy display memory contents to bytes object.

        :return: A bytes object containing display data.
        )r,   Útobytesr   s    r   rE   zDib.tobytesµ   s   € ð Œz×!Ò!Ñ#Ô#Ð#r   r	   )r   r   r   r   r   r1   r7   r;   r-   rB   rE   r   r   r   r    r    4   s–   € € € € € ðð ð&ð ð ð ðð ð ð$ð ð ð ð,ð ð ð2$ð $ð $ð $ð(,ð ,ð ,ð$ð $ð $ð $ð $r   r    c                  óD   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ ZdS )ÚWindowz*Create a Window with the given title size.ÚPILNc                óf   — t           j                             || j        |pd|pd¦  «        | _        d S )Nr   )r   r*   ÚcreatewindowÚ_Window__dispatcherÚhwnd)r   ÚtitleÚwidthÚheights       r   r   zWindow.__init__Á   s3   € Ý”J×+Ò+Ø4Ô$ e j¨q°&°+¸Añ
ô 
ˆŒ	ˆ	ˆ	r   c                ó.   —  t          | d|z   ¦  «        |Ž S )NÚ
ui_handle_)Úgetattr)r   ÚactionÚargss      r   Ú__dispatcherzWindow.__dispatcherÆ   s   € Ø3wt˜\¨FÑ2Ñ3Ô3°TÐ:Ð:r   c                ó   — d S r	   r   ©r   r   Úx0Úy0Úx1Úy1s         r   Úui_handle_clearzWindow.ui_handle_clearÉ   ó   € Øˆr   c                ó   — d S r	   r   )r   rX   rY   rZ   r[   s        r   Úui_handle_damagezWindow.ui_handle_damageÌ   r]   r   c                ó   — d S r	   r   r   s    r   Úui_handle_destroyzWindow.ui_handle_destroyÏ   r]   r   c                ó   — d S r	   r   rW   s         r   Úui_handle_repairzWindow.ui_handle_repairÒ   r]   r   c                ó   — d S r	   r   )r   rN   rO   s      r   Úui_handle_resizezWindow.ui_handle_resizeÕ   r]   r   c                óB   — t           j                             ¦   «          d S r	   )r   r*   Ú	eventloopr   s    r   ÚmainloopzWindow.mainloopØ   s   € ÝŒ
×ÒÑÔÐÐÐr   )rH   NN)r   r   r   r   r   rK   r\   r_   ra   rc   re   rh   r   r   r   rG   rG   ¾   s—   € € € € € Ø4Ð4ð
ð 
ð 
ð 
ð
;ð ;ð ;ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   rG   c                  ó*   ‡ — e Zd ZdZdˆ fd„	Zd„ Zˆ xZS )ÚImageWindowz6Create an image window which displays the given image.rH   c                óº   •— t          |t          ¦  «        st          |¦  «        }|| _        |j        \  }}t	          ¦   «                              |||¬¦  «         d S )N)rN   rO   )r/   r    r,   r#   Úsuperr   )r   r,   rM   rN   rO   Ú	__class__s        €r   r   zImageWindow.__init__ß   sW   ø€ Ý˜%¥Ñ%Ô%ð 	Ý˜‘J”JˆEØˆŒ
Øœ
‰ˆˆvÝ‰Œ×Ò˜ e°FÐÑ;Ô;Ð;Ð;Ð;r   c                óD   — | j                              |||||f¦  «         d S r	   )r,   r7   rW   s         r   rc   zImageWindow.ui_handle_repairæ   s'   € ØŒ
Š˜˜R  R¨Ð,Ñ-Ô-Ð-Ð-Ð-r   )rH   )r   r   r   r   r   rc   Ú__classcell__)rm   s   @r   rj   rj   Ü   sR   ø€ € € € € Ø@Ð@ð<ð <ð <ð <ð <ð <ð.ð .ð .ð .ð .ð .ð .r   rj   N)	Ú
__future__r   Ú r   r   r   r    rG   rj   r   r   r   ú<module>rr      s  ðð& #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð ðð ð ð ð ñ ô ð ðð ð ð ð ñ ô ð ðG$ð G$ð G$ð G$ð G$ñ G$ô G$ð G$ðTð ð ð ð ñ ô ð ð<.ð .ð .ð .ð .&ñ .ô .ð .ð .ð .r   