Ë
    ™2Úi  ã                   óv   — 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y)é   )ÚImagec                   ó   — e Zd ZdZd„ Zd„ Zy)Ú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                 ó   — || _         y ©N©Údc)Úselfr	   s     úC/var/www/html/acx/venv/lib/python3.12/site-packages/PIL/ImageWin.pyÚ__init__zHDC.__init__   s	   € Øˆ�ó    c                 ó   — | j                   S r   r   ©r
   s    r   Ú__int__zHDC.__int__!   s   € Ø�w‰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y)Ú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                 ó   — || _         y r   ©Úwnd)r
   r   s     r   r   zHWND.__init__,   s	   € Øˆ�r   c                 ó   — | j                   S r   r   r   s    r   r   zHWND.__int__/   s   € Ø�x‰xˆr   Nr   r   r   r   r   r   %   s   „ ñòór   r   c                   ó@   — e Zd ZdZd
d„Zd„ Zd
d„Zd„ Zd
d„Zd„ Z	d	„ Z
y)Ú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.
    Nc                 ó.  — t        |d«      r%t        |d«      r|j                  }|j                  }n|}d }|dvrt        j                  |«      }t        j
                  j                  ||«      | _        || _        || _        |r| j                  |«       y y )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__G   s„   € Ü�5˜&Ô!¤g¨e°VÔ&<Ø—:‘:ˆDØ—:‘:‰DàˆDØˆEØÐ-Ñ-Ü×$Ñ$ TÓ*ˆDÜ—Z‘Z×'Ñ'¨¨dÓ3ˆŒ
ØˆŒ	ØˆŒ	ÙØ�J‰J�uÕð r   c                 óH  — t        |t        «      rU| j                  j                  |«      }	 | j                  j	                  |«      }| j                  j                  ||«       |S | j                  j	                  |«      }|S # | j                  j                  ||«       w xY w)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   r/   z
Dib.exposeV   s‰   € ô �fœdÔ#Ø—‘×!Ñ! &Ó)ˆBð1ØŸ™×*Ñ*¨2Ó.�à—
‘
×$Ñ$ V¨RÔ0ð ˆð —Z‘Z×&Ñ& vÓ.ˆFØˆøð —
‘
×$Ñ$ V¨RÕ0úó   ­B ÂB!c                 ór  — |sd| j                   z   }t        |t        «      rW| j                  j	                  |«      }	 | j                  j                  |||«      }| j                  j                  ||«       |S | j                  j                  |||«      }|S # | j                  j                  ||«       w xY w)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.
        )é    r5   )r!   r-   r   r*   r.   Údrawr0   )r
   r1   ÚdstÚsrcr	   r2   s         r   r6   zDib.drawh   sž   € ñ Ø˜4Ÿ9™9Ñ$ˆCÜ�fœdÔ#Ø—‘×!Ñ! &Ó)ˆBð1ØŸ™Ÿ™¨¨S°#Ó6�à—
‘
×$Ñ$ V¨RÔ0ð ˆð —Z‘Z—_‘_ V¨S°#Ó6ˆFØˆøð —
‘
×$Ñ$ V¨RÕ0ús   ¾B ÂB6c                 óH  — t        |t        «      rU| j                  j                  |«      }	 | j                  j	                  |«      }| j                  j                  ||«       |S | j                  j	                  |«      }|S # | j                  j                  ||«       w xY w)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*   r.   Úquery_paletter0   )r
   r1   r2   s      r   r:   zDib.query_palette~   s‰   € ô �fœdÔ#Ø—Z‘Z×%Ñ% fÓ-ˆFð5ØŸ™×1Ñ1°&Ó9�à—
‘
×$Ñ$ V¨VÔ4ð ˆð —Z‘Z×-Ñ-¨fÓ5ˆFØˆøð —
‘
×$Ñ$ V¨VÕ4úr3   c                 ó(  — |j                  «        | j                  |j                  k7  r|j                  | j                  «      }|r'| j                  j	                  |j
                  |«       y| j                  j	                  |j
                  «       y)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—   s`   € ð 	�‰Œ	Ø�9‰9˜Ÿ™ÒØ—‘˜DŸI™IÓ&ˆBÙØ�J‰J×Ñ˜RŸU™U CÕ(à�J‰J×Ñ˜RŸU™UÕ#r   c                 ó8   — | j                   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   rA   zDib.frombytes«   s   € ð �z‰z×#Ñ# FÓ+Ð+r   c                 ó6   — | j                   j                  «       S )zy
        Copy display memory contents to bytes object.

        :return: A bytes object containing display data.
        )r*   Útobytesr   s    r   rD   zDib.tobytes´   s   € ð �z‰z×!Ñ!Ó#Ð#r   r   )r   r   r   r   r   r/   r6   r:   r+   rA   rD   r   r   r   r   r   3   s*   „ ñó&òó$ò,ó2$ò(,ó$r   r   c                   óB   — e Zd ZdZdd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zy)ÚWindowz*Create a Window with the given title size.Nc                 óv   — t         j                  j                  || j                  |xs d|xs d«      | _        y )Nr5   )r   r(   ÚcreatewindowÚ_Window__dispatcherÚhwnd)r
   ÚtitleÚwidthÚheights       r   r   zWindow.__init__À   s/   € Ü—J‘J×+Ñ+Ø�4×$Ñ$ e¢j¨q°&²+¸Aó
ˆ�	r   c                 ó&   —  t        | d|z   «      |Ž S )NÚ
ui_handle_)Úgetattr)r
   ÚactionÚargss      r   Ú__dispatcherzWindow.__dispatcherÅ   s   € Ø3Œw�t˜\¨FÑ2Ó3°TÐ:Ð:r   c                  ó   — y r   r   ©r
   r	   Úx0Úy0Úx1Úy1s         r   Úui_handle_clearzWindow.ui_handle_clearÈ   ó   € Ør   c                  ó   — y r   r   )r
   rV   rW   rX   rY   s        r   Úui_handle_damagezWindow.ui_handle_damageË   r[   r   c                  ó   — y r   r   r   s    r   Úui_handle_destroyzWindow.ui_handle_destroyÎ   r[   r   c                  ó   — y r   r   rU   s         r   Úui_handle_repairzWindow.ui_handle_repairÑ   r[   r   c                  ó   — y r   r   )r
   rL   rM   s      r   Úui_handle_resizezWindow.ui_handle_resizeÔ   r[   r   c                 ó@   — t         j                  j                  «        y r   )r   r(   Ú	eventloopr   s    r   ÚmainloopzWindow.mainloop×   s   € Ü�
‰
×ÑÕr   )ÚPILNN)r   r   r   r   r   rI   rZ   r]   r_   ra   rc   rf   r   r   r   rF   rF   ½   s-   „ Ù4ó
ò
;òòòòòór   rF   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.c                 óŒ   •— t        |t        «      st        |«      }|| _        |j                  \  }}t        ‰| �  |||¬«       y )N)rL   rM   )r-   r   r*   r!   Úsuperr   )r
   r*   rK   rL   rM   Ú	__class__s        €r   r   zImageWindow.__init__Þ   s>   ø€ Ü˜%¤Ô%Ü˜“JˆEØˆŒ
ØŸ
™
‰ˆˆvÜ‰Ñ˜ e°FÐÕ;r   c                 óD   — | j                   j                  |||||f«       y r   )r*   r6   rU   s         r   ra   zImageWindow.ui_handle_repairå   s   € Ø�
‰
�‰˜˜R  R¨Ð,Õ-r   )rg   )r   r   r   r   r   ra   Ú__classcell__)rl   s   @r   ri   ri   Û   s   ø„ Ù@õ<ö.r   ri   N)Ú r   r   r   r   rF   ri   r   r   r   ú<module>rp      sA   ðõ( ÷ñ ÷ñ ÷G$ñ G$÷Tñ ô<.�&õ .r   