Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/site-packages/mouseinfo/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/site-packages/mouseinfo/__pycache__/__init__.cpython-312.pyc

�

&ٜgЧ��n�dZdZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZddlZddlZ	ddlmZdZej
dk(r�ddlZerdd	lmZ	ej0j2j5�ej0j2j9d�ZGd
�dej<�Zd�Z e Z!d1d
�Z"e"Z#d�Z$e$Z%d�Z&e&Z'�naej
dk(�r�ddl(m)Z)m*Z*ddl+m,Z,ejZej\d��Z/e)d�Z0e0jcd�ejZej\d��Z2e
Z3eZ4e,de4�eZ5e,de5�e
Z6e
Z7e
Z8eZ9e
Z:e
Z;e3ge2jx_=ee2jx_>e5e9ege2j~_=e4e2j~_>e5e7e*e:ge2j�_=e4e2j�_>e5e;e
e	ge2j�_=e4e2j�_>e4e8e
ge2j�_=de2j�_>e4e7ge2j�_Dde2j�_>e6e4ge2j�_=de2j�_>ge2j�_=e3e2j�_>d�ZGeGZ!d1d�ZHeHZ#d�ZIeIZ%d�ZJeJZ'n�ej��dk(ruddlLmMZMddlNZNdZO	ej�dd gej�ej��!�ZReRj��dk(ZOeMej�d"�ZXd#�ZYeYZ!d1d$�ZZeZZ#d%�Z[e[Z%d&�Z\e\Z'ej�dd'k(Z^ej��dk(r"e^r	ddl_Z`e`Zadd(l_mbZbn1	ddl`Z`dd*l`maZadd(l`mbZbne^r
ddl_Z`e`Zadd(l_mbZbnddl`Z`dd*l`maZadd(l`mbZbd,ZdGd-�d.�Zed/�Zfegd0k(ree�yy#e$rdZY���wxYw#e$rY��LwxYw#eT$r%ZUeUj�eNj�k(rn�YdZU[U��dZU[UwwxYw#e$rej�d)�Y�}wxYw#e$rej�d+�Y��wxYw)2a�
Features we should consider adding:
* Register a global hotkey for copying/logging info. (Should this hotkey be configurable?)

Features that have been considered and rejected:

* The Save Log/Save Screenshot buttons should open a file dialog box.
* The Save Log button should append text, instead of overwrite it.
* The log text area should prepopulate itself with the contents of the given filename.
* The button delay should be configurable instead of just set to 3 seconds.
z0.1.3�N)	�c_bool�c_int32�c_int64�c_size_t�c_uint16�c_uint32�c_void_p�cdll�util)�ImageTF�win32)�	ImageGrabc�D�eZdZdejfdejfgZy)�POINT�x�yN)�__name__�
__module__�__qualname__�ctypes�c_long�_fields_���=/usr/local/lib/python3.12/site-packages/mouseinfo/__init__.pyrr<s!���&�-�-�(��&�-�-�(�*�rrc��t�}tjjj	tj
|��|j|jfS�N)rr�windll�user32�GetCursorPos�byrefrr)�cursors r�_winPositionr#@s=������
�
���)�)�&�,�,�v�*>�?����&�(�(�#�#rc��	tj�}|�|j|�|S#t$rt	d��wxYw)NzGPillow module must be installed to use screenshot functions on Windows.)r�grab�save�	NameError�ImportError)�filename�ims  r�_winScreenshotr+GsL��	i����!�B��#�����!��	���	i��g�h�h�	i�s	�'+�Ac��tjjjd�tjjjd�fS)Nr�)rrr�GetSystemMetricsrrr�_winSizer/Ss8���
�
�$�$�5�5�a�8�&�-�-�:N�:N�:_�:_�`a�:b�c�crc��tjjjt||�}|dz}|dz}|dz}|dz}|}|||fS)N�)rr�gdi32�GetPixel�dc)rr�colorRef�red�green�blues      r�_winGetPixelr9WsX���=�=�&�&�/�/��A�q�9����n���S����3����S������U�D�!�!r�darwin)�	ObjCClass�CGPoint)�register_preferred_encoding�AppKit�NSEvent�
mouseLocation�CoreGraphicss
^{__CGEvent=}s^{__CGEventSource=}c��tj}t|j�ttjd�|jz
�fS)Nr)r?r@�intr�
core_graphics�CGDisplayPixelsHighr)�locs r�_macPositionrG�s9���#�#���3�5�5�z�3�}�@�@��C�c�e�e�K�L�L�Lrc��|�|}n0dtjj�jd�z}tjdd|g�tj|�}|j�|�tj|�|S)Nzscreenshot%s.png�%Y-%m%d_%H-%M-%S-%f�
screencapturez-x)
�datetime�now�strftime�
subprocess�callr�open�load�os�unlink�r)�tmpFilenamer*s   r�_macScreenshotrV�su����"�K�,��0A�0A�0E�0E�0G�0P�0P�Qf�0g�h�K�����$��<�=�
�Z�Z��
$��	���	����I�I�k�"��	rc��tjtj��tjtj��fSr)rD�CGDisplayPixelsWide�CGMainDisplayIDrErrr�_macSizerZ�s:���-�-�m�.K�.K�.M�N��-�-�m�.K�.K�.M�N�
�	
rc�T�t�j||f�}|d|d|dfS�Nrr-���
screenshot�getpixel�rr�rgbValues   r�_macGetPixelrc��1���<�(�(�!�Q��0����{�H�Q�K��!��4�4r�Linux)�Display�which�scrot)�stdout�stderr�DISPLAYc��tj�jj�j}|d|dfS)N�root_x�root_y)�_display�screen�root�
query_pointer�_data)�coords r�_linuxPositionru�s6�����!�&�&�4�4�6�<�<���X���h��/�/rc�\�tstd��|�|}n0dtjj�j	d�z}trVtjdd|g�tj|�}|j�|�tj|�|Std��)Nz_"scrot" must be installed to use screenshot functions in Linux. Run: sudo apt-get install scrotz.screenshot%s.pngrIrhz-zzqThe scrot program must be installed to take a screenshot with PyScreeze on Linux. Run: sudo apt-get install scrot)
�scrotExists�NotImplementedErrorrKrLrMrNrOrrPrQrRrS�	ExceptionrTs   r�_linuxScreenshotrz�s����%�'H�I�
I���"�K�-��1B�1B�1F�1F�1H�1Q�1Q�Rg�1h�i�K���O�O�W�d�K�8�9����K�(�B�
�G�G�I����	�	�+�&��I��P�Q�
Qrc�z�tj�jtj�jfSr)rorp�width_in_pixels�height_in_pixelsrrr�
_linuxSizer~�s'����� �0�0�(�/�/�2C�2T�2T�T�Trc�T�t�j||f�}|d|d|dfSr\r^ras   r�_linuxGetPixelr�rdrr])�EventzvNOTE: You must install tkinter on Linux to use MouseInfo. Run the following: sudo apt-get install python-tk python-dev)�ttkzxNOTE: You must install tkinter on Linux to use MouseInfo. Run the following: sudo apt-get install python3-tk python3-dev�c�f�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zy)�MouseInfoWindowc���t�\}}|jj||jz
�d||jz
���t�\}}ts|jjd�n�tjdk(r|jjd�njd|cxkr|krnn
d|cxkr|ksn|jjd�n3t||�\}}}|jj|�d|�d|���ts|jjd��ntjdk(r|jjd�n�d|cxkr|krnn
d|cxkr|ksn|jjd�n�t�ddj�jdd�}t�ddj�jdd�}	t�ddj�jdd�}
d	|�|	�|
��}|jj|�tr.tjdk(sd|cxkr|krnn
d|cxkr|ksn|jj!d
��n|jj!��|j"r,|j$j'd|j(�|_yy)
N�,�NA_Pillow_unsupportedr:�NA_on_macOSr�NA_on_multimonitor_setupsr]�0�#�black)�
background�d)�position�xyTextboxSV�set�xOrigin�yOrigin�size�_PILLOW_INSTALLED�rgbSV�sys�platform�getPixel�rgbHexSV�hex�upper�rjust�
colorFrame�	configure�	isRunningrq�after�_updateMouseInfoTextFields�_updateMouseInfoJob)�selfrr�width�height�r�g�b�rHex�gHex�bHex�hexColors            rr�z*MouseInfoWindow._updateMouseInfoTextFields(s/���z���1�������D�L�L�(8�!�d�l�l�:J�K�L�
��
��v� ��J�J�N�N�2�3�
�\�\�X�
%��J�J�N�N�=�)��q�.�5�.�Q�!�_�f�_��J�J�N�N�6�7��q�!�n�G�A�q�!��J�J�N�N��A�q�1�2� ��M�M���5�6�
�\�\�X�
%��M�M���m�,��q�.�5�.�Q�!�_�f�_��M�M���9�:��q�6�!�"�:�#�#�%�+�+�A�s�3�D��q�6�!�"�:�#�#�%�+�+�A�s�3�D��q�6�!�"�:�#�#�%�+�+�A�s�3�D�$(�$��5�H��M�M���h�'�!�s�|�|�x�'?�!�q�.�SX�.�]^�bc�]l�fl�]l��O�O�%�%��%�9�
�O�O�%�%��%�:��>�>�'+�y�y���s�D�<[�<[�'\�D�$�rc�j�	tj|�|jjd|z�y#tj$ri}tj�dk(r|jjd�n,|jjdt|�z�Yd}~yYd}~yd}~wwxYw)NzCopied rez-Copy failed. Run "sudo apt-get install xsel".zClipboard error: )�	pyperclip�copy�statusbarSVr��PyperclipExceptionr��system�str)r��
textToCopy�es   r�	_copyTextzMouseInfoWindow._copyTextds���	C��N�N�:�&���� � ��Z�!7�8���+�+�	C���� �G�+�� � �$�$�%T�U�� � �$�$�%8�3�q�6�%A�B�B�V��	C�s�36�B2�	AB-�-B2c��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|j|jj	��|jjd
�y)Nrr�on��r]�	Copy in 3r-�	Copy in 2�	Copy in 1�Copy XY)�len�
isinstancer��delayEnabledSV�getrqr��_copyXyMouseInfo�xyCopyButtonSVr�r�r��r��argss  rr�z MouseInfoWindow._copyXyMouseInfoos'���t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"7�"7��;����#�#�K�0�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�K�0�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�K�0�
�N�N�4�+�+�/�/�1�2����#�#�I�.rc��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|j|jj	��|jjd
�y)Nrrr�r�r]r�r-r�r��Copy RGB)r�r�r�r�r�rqr��_copyRgbMouseInfo�rgbCopyButtonSVr�r�r�r�s  rr�z!MouseInfoWindow._copyRgbMouseInfo�s#���t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�
��Y�!�^��Q��1���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�
��Y�!�^��Q��1���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�
�N�N�4�:�:�>�>�+�,�� � �$�$�Z�0rc��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|j|jj	��|jjd
�y)Nrrr�r�r]r�r-r�r�zCopy RGB Hex)r�r�r�r�r�rqr��_copyRgbHexMouseInfo�rgbHexCopyButtonSVr�r�r�r�s  rr�z$MouseInfoWindow._copyRgbHexMouseInfo�s%���t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�";�";�Q�?��#�#�'�'��4�
��Y�!�^��Q��1���I�I�O�O�D�$�";�";�Q�?��#�#�'�'��4�
��Y�!�^��Q��1���I�I�O�O�D�$�";�";�Q�?��#�#�'�'��4�
�N�N�4�=�=�,�,�.�/��#�#�'�'��7rc�*�|jj��d|jj��d|jj���}t	|�dkDrt|dt�rd}|jj�dk(rQt	|�dk(rC|jjd|jd�|jjd�yt	|�dk(rK|ddk(rC|jjd|jd�|jjd	�yt	|�dk(rK|ddk(rC|jjd|jd�|jjd
�y|jj��d|jj��d|jj���}|j|�|jjd�y)N� rrr�r�r]r�r-r�r��Copy All)r�r�r�r�r�r�r�r�rqr��_copyAllMouseInfo�allCopyButtonSVr�r�)r�r��textFieldContentss   rr�z!MouseInfoWindow._copyAllMouseInfo�s���+/�*:�*:�*>�*>�*@�*.�*�*�.�.�*:�*.�-�-�*;�*;�*=�?��
�t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�
��Y�!�^��Q��1���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�
��Y�!�^��Q��1���I�I�O�O�D�$�"8�"8�!�<�� � �$�$�[�1�/3�.>�.>�.B�.B�.D�.2�j�j�n�n�.>�.2�m�m�.?�.?�.A�!C��
�N�N�,�-�� � �$�$�Z�0rc��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|jj	d
d�d|jj	�zz}|jj|�|j|�|jjd
|jj	�z�|jjd�y)Nrrr�r�r]�Log in 3r-�Log in 2�Log in 1�1.0�end-1c�%s
�Logged �Log XY)r�r�r�r�r�rqr��_logXyMouseInfo�
xyLogButtonSVr��logTextarear��logTextboxSV�_setLogTextAreaContentsr��r�r��logContentss   rr�zMouseInfoWindow._logXyMouseInfo�s����t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"6�"6��:����"�"�:�.�
��Y�!�^��Q��1���I�I�O�O�D�$�"6�"6��:����"�"�:�.�
��Y�!�^��Q��1���I�I�O�O�D�$�"6�"6��:����"�"�:�.��*�*�.�.�u�h�?�&�D�L\�L\�L`�L`�Lb�Bc�c�K����!�!�+�.��(�(��5���� � ��T�-=�-=�-A�-A�-C�!C�D����"�"�8�,rc��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|jj	d
d�d|jj	�zz}|jj|�|j|�|jjd
|jj	�z�|jjd�y)Nrrr�r�r]r�r-r�r�r�r�r�r��Log RGB)r�r�r�r�r�rqr��_logRgbMouseInfo�rgbLogButtonSVr�r�r�r�r�r�r�s   rr�z MouseInfoWindow._logRgbMouseInfo�s���t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"7�"7��;����#�#�J�/�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�J�/�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�J�/��*�*�.�.�u�h�?�&�D�J�J�N�N�L\�B]�]�K����!�!�+�.��(�(��5���� � ��T�Z�Z�^�^�-=�!=�>����#�#�I�.rc��t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|jj	d
d�d|jj	�zz}|jj|�|j|�|jjd
|jj	�z�|jjd�y)Nrrr�r�r]r�r-r�r�r�r�r�r�zLog RGB Hex)r�r�r�r�r�rqr��_logRgbHexMouseInfo�rgbHexLogButtonSVr�r�r�r�r�r�r�s   rr�z#MouseInfoWindow._logRgbHexMouseInfos����t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�":�":�A�>��"�"�&�&�z�2�
��Y�!�^��Q��1���I�I�O�O�D�$�":�":�A�>��"�"�&�&�z�2�
��Y�!�^��Q��1���I�I�O�O�D�$�":�":�A�>��"�"�&�&�z�2��*�*�.�.�u�h�?�&�D�M�M�L]�L]�L_�B`�`�K����!�!�+�.��(�(��5���� � ��T�]�]�->�->�-@�!@�A��"�"�&�&�}�5rc�<�t|�dkDrt|dt�rd}|jj	�dk(rQt|�dk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd�yt|�dk(rK|ddk(rC|j
j
d|jd�|jjd	�y|jj	��d
|jj	��d
|jj	���}|jj	dd�d
|zz}|jj|�|j|�|j jd|z�|jjd�y)Nrrr�r�r]r�r-r�r�r�r�r�r�r��Log All)r�r�r�r�r�rqr��_logAllMouseInfo�allLogButtonSVr�r�r�r�r�r�r�r�)r�r�r�r�s    rr�z MouseInfoWindow._logAllMouseInfo.s����t�9�q�=�Z��Q���7��D����"�"�$��,��T��a���I�I�O�O�D�$�"7�"7��;����#�#�J�/�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�J�/�
��Y�!�^��Q��1���I�I�O�O�D�$�"7�"7��;����#�#�J�/�/3�.>�.>�.B�.B�.D�.2�j�j�n�n�.>�.2�m�m�.?�.?�.A�!C���*�*�.�.�u�h�?�&�L]�B^�^�K����!�!�+�.��(�(��5���� � ��->�!>�?����#�#�I�.rc���|j�}t|jd��dk7ry|jd�\}}|j�}|j�}|j	�r|j	�syt|�|_t|�|_|jjdt|j�zdzt|j�z�y)Nr�r]zSet XY Origin to z, )r�r��split�strip�	isdecimalrCr�r�r�r�r�)r��sv�contentsrrs     r�_xyOriginChangedz MouseInfoWindow._xyOriginChangedLs����6�6�8���x�~�~�c�"�#�q�(���~�~�c�"���1�
�G�G�I��
�G�G�I���{�{�}�A�K�K�M���1�v����1�v��������0�3�t�|�|�3D�D�t�K�c�RV�R^�R^�N_�_�`rc��trU|jjdtj�|jjtj|�n+|jj
dtj|�|jj�\}}|jj|�y)Nr�)	�RUNNING_PYTHON_2r��delete�tkinter�END�insert�replace�yview�yview_moveto)r�r��
topOfTextArea�bottomOfTextAreas    rr�z'MouseInfoWindow._setLogTextAreaContentsYs�������#�#�E�7�;�;�7����#�#�G�K�K��=����$�$�U�G�K�K��E�+/�*:�*:�*@�*@�*B�'�
�'����%�%�&6�7rc��	t|jj�d�5}|j|jj��ddd�|j
j
d|jj�z�y#1swY�@xYw#t$r1}|j
j
dt|�z�Yd}~yd}~wwxYw)N�wzLog file saved to �ERROR: )	rP�
logFilenameSVr��writer�r�r�ryr�)r�r��for�s    r�_saveLogFilezMouseInfoWindow._saveLogFilees���	R��d�(�(�,�,�.��4������*�*�.�.�0�1�5�

��� � �!5��8J�8J�8N�8N�8P�!P�Q�5�4���	5���� � ��S��V�!3�4�4��	5�s.�$B�*B�B�B�B�	C�$'C�Cc�v�ts|jjd�y	t|jj��|jjd|jj�z�y#t$r1}|jjdt|�z�Yd}~yd}~wwxYw)NzERROR: NA_Pillow_unsupportedzScreenshot file saved to r)r�r�r�r_�screenshotFilenameSVr�ryr�)r�r�r�s   r�_saveScreenshotFilez#MouseInfoWindow._saveScreenshotFilers���!���� � �!?�@��	`��t�0�0�4�4�6�7�
��� � �!<�t�?X�?X�?\�?\�?^�!^�_���	5���� � ��S��V�!3�4�4��	5�s�#A>�>	B8�'B3�3B8c	�j(��d�_tj��_�jj	dt
z��jj
dd�tr tj�j�}n!tj�jd��}|jddtjtjtjtjf��|jdd	�
�|j!dd	�
�d	}tj"��_�j$j'd�tj(|d�j$dd
��}|jd	|dtj��tj"��_�j*j'd�tj,|�j*t.�j0���_�j2jd|tj���j2j5d�j0�tj"��_�j6j'd�tj,|�j6t.�j8���_�j:jd|tj���j:j5d�j8�tj"��_tj"��_tj"��_ tj"��_!tj"��_"tj"��_#tj"��_$tj"��_%|d	z
}tjL|d�j<���_'�jNjd|tjtjf��tjP|d��jd	|tj��tj"��_)�jRj'd�tj,|�jRt.�jT���_+�jVjd|tj���jVj5d�jT�tj"��_,�jXj'd�tj,|�jXt.�jZ���_.�j\jd|tj���j\j5d�jZ�|d	z
}tjL|d�j>���_/�j^jd|tjtjf��tjP|d��jd	|tj��tj"��_0�j`j'd�tj,|�j`t.�jb���_2�jdjd|tj���jdj5d�jb�tj"��_3�jfj'd�tj,|�jft.�jh���_5�jjjd|tj���jjj5d�jh�|d	z
}tjL|d�j@���_6�jljd|tjtjf��tjP|d ��jd	|tj��tj"��_7�jnj'd!�tj,|�jnt.�jp���_9�jrjd|tj���jrj5d�jp�tj"��_:�jtj'd"�tj,|�jtt.�jv���_<�jxjd|tj���jxj5d�jv�|d	z
}tj|d#d#�$��_=�jzjd|tjtjf��tjP|d%��jd	|tj��|d	z
}d�_>d�_?�jBj'd&�tjP|d'��jd	|tj���jBj�d(�jBf�fd)�	�tjL|d�jB���_A�j�jd|tjtjf��|d	z
}tj�|d*d+�$��_C�j�jd	|dtjtjtjtjf��tj�|tj��j�j��,��_G�j�jd-|tjtjf���j�j&�j�d.<|d	z
}tjL|d�jF���_H�j�jd	|dtjtjf��tj,|d/t.�j��0��_J�j�jd|tj���j�j5d�j���jFj't�j�j�t�j��d1��|d	z
}tjL|d�jH��}|jd	|dtjtjf��tj,|d2t.�j��0��_P�j�jd|tj���j�j5d�j���jHj't�j�j�t�j��d3��|d	z
}tjP|tj��jJ�4�}|jd	|d-tjtjf��|j��D]t}|�j�k(r|j�dd�5��&|�j�k(r|j�d6d�5��I||k(r|j�dd6�5��b|j�dd�5��v�jj�d7tj��tj��j�}�jj�|�8�tj�|�}|j�d9�j0d:d-�;�|j�d<�jTd=d-�;�|j�d>�jbd?d-�;�|j�d@�jpdAdB�;�|j�dC|d�D�tj�|�}	|	j�dE�j8dFd�;�|	j�dG�jZdHd�;�|	j�dI�jhdJd�;�|	j�dK�jvdLdM�;�|j�dN|	d�D�tj�|�}
|
j�dOdP�d+�Q�|j�dR|
d�D��jj�dS�j0��jj�dT�jT��jj�dU�jb��jj�dV�jp��jj�dW�j8��jj�dX�jZ��jj�dY�jh��jj�dZ�jv��jj�d[d[��jNj���jj�d�j���__�jj�d\d��jj���jj���jj��j��d[�_	�jj��y]#tj�$rYy]wxYw)^zLaunches the MouseInfo window, which displays XY coordinate and RGB
        color information for the mouse's current position.Tz
MouseInfo i�r�z	3 3 12 12)�paddingr)�column�row�stickyr-)�weightr�z3 Sec. Button Delay�off)�text�variable�onvalue�offvaluer])rr�
columnspanrz
Copy All (F1))�textvariabler��command�z<Return>zLog All (F5)�r�)r�rzXY Position)rzCopy XY (F2)zLog XY (F6)z	RGB Colorz
Copy RGB (F3)zLog RGB (F7)z
RGB as HexzCopy RGB Hex (F4)zLog RGB Hex (F8)�2)r�r��Colorz0, 0z	XY Originrc�&���j|�Sr)r�)�name�index�moder�r�s    �r�<lambda>z*MouseInfoWindow.__init__.<locals>.<lambda>s���QU�Qf�Qf�gi�Qjr��)�orientr��yscrollcommandzSave Log)rr�rzmouseInfoLog.txtzSave ScreenshotzmouseInfoScreenshot.png)�reliefr)�padx�pady)rrz*tearOff)�menur��F1)�labelr�accelerator�	underliner��F2r��F3zCopy RGB as Hex�F4��Copy)r-r+r/r��F5r��F6r��F7zLog RGB as Hex�F8��LogzOnline Documentationc�,�tjd�S)Nz https://mouseinfo.readthedocs.io)�
webbrowserrPrrrr"z*MouseInfoWindow.__init__.<locals>.<lambda>Vs��:�?�?�[}�K~r)r-rr/�Helpz<F1>z<F2>z<F3>z<F4>z<F5>z<F6>z<F7>z<F8>Fz-topmostN)fr�r��Tkrq�title�__version__�minsizer��Framer��grid�N�W�E�S�columnconfigure�rowconfigure�	StringVarr�r��Checkbuttonr��Button�MOUSE_INFO_BUTTON_WIDTHr��
allCopyButton�bindr�r��allLogButtonr�r�r��
xyOriginSVr�rr
r��Entry�
xyInfoTextbox�Labelr�r��xyCopyButtonr�r��xyLogButton�rgbSV_entryr�r��
rgbCopyButtonr�r��rgbLogButton�rgbHexSV_entryr�r��rgbHexCopyButtonr�r��rgbHexLogButtonr�r�r��trace�xyOriginSV_entry�Textr��	Scrollbar�VERTICALr��logTextareaScrollbar�logFilenameTextboxr�
saveLogButtonrR�path�join�getcwdr�saveScreenshotButton�SUNKEN�winfo_children�grid_configure�
option_add�FALSE�Menu�config�add_command�add_cascade�bind_all�	resizable�focusr�r�r��
attributes�update�mainloop�after_cancel�destroy�TclError)r��	mainframe�CUR_ROW�
delayCheckbox�&G_MOUSE_INFO_SCREENSHOT_FILENAME_entry�	statusbar�childr+�copyMenu�logMenu�helpMenus`          r�__init__zMouseInfoWindow.__init__�s��������J�J�L��	��	�	����{�2�3��	�	���#�s�#���
�
�d�i�i�0�I��	�	�$�)�)�[�A�I�	���a�Q��	�	�7�9�9�g�i�i�QX�QZ�QZ�/[��\��!�!�!�A�!�.����q���+���&�/�/�1���������%����	�8M�X\�Xk�Xk�uy�EJ�K�
����!��Q�w�y�y��Q� '�0�0�2������ � ��1� �Z�Z�	��@T�@T�\s�~B�~T�~T�U��������q�g�g�i�i��H������
�D�,B�,B�C�&�/�/�1���������/��J�J�y�t�?R�?R�Zq�{�|Q�|Q�R��������a�W�W�Y�Y��G������z�4�+@�+@�A�%,�$5�$5�$7���$+�$5�$5�$7��
�$+�$5�$5�$7��
�$+�$5�$5�$7���$+�$5�$5�$7���$+�$5�$5�$7���$+�$5�$5�$7��!�$+�$5�$5�$7���	�1���!�Y�Y�y���IY�IY�Z��������q�g�w�y�y�'�)�)�>T��U��	�	�)�-�0�5�5�Q�G�T[�T]�T]�5�^�&�/�/�1���������/��J�J�y�t�?R�?R�Zq�{�|Q�|Q�R��������a�W�W�Y�Y��G������z�4�+@�+@�A�%�.�.�0��������}�-��:�:�i�d�>P�>P�Xo�y}�zN�zN�O��������Q�G�G�I�I��F������j�$�*>�*>�?�	�1����9�9�Y�b�t�z�z�R��������Q�G�W�Y�Y��	�	�<R��S��	�	�)�+�.�3�3�1�'�RY�R[�R[�3�\� '�0�0�2������ � ��1� �Z�Z�	��@T�@T�\s�~B�~T�~T�U��������q�g�g�i�i��H������
�D�,B�,B�C�&�/�/�1���������/��J�J�y�t�?R�?R�Zq�{�|Q�|Q�R��������a�W�W�Y�Y��G������z�4�+@�+@�A�	�1���"�i�i�	��$�-�-�X������ � ��w��	�	�7�9�9�?U� �V��	�	�)�,�/�4�4�A�7�SZ�S\�S\�4�]�#*�"3�"3�"5������#�#�$7�8� #�
�
�9�4�CZ�CZ�by�DH�D]�D]�!^������"�"�!�����"�K����"�"�:�t�/H�/H�I�")�!2�!2�!4������"�"�#5�6�"�z�z�)�$�BX�BX�`w�BF�BZ�BZ� [������!�!����	�	�!�J����!�!�*�d�.F�.F�G�	�1���"�-�-�	��B�G��������A�7�G�I�I�w�y�y�;Q��R��	�	�)�'�*�/�/�q�g�g�i�i�/�X�	�1��������������F�#��	�	�)�+�.�3�3�1�'�RY�R[�R[�3�\������c����#j�k� #�	�	�)�2�D�O�O� \������"�"�!��'�)�)�W�Y�Y�AW�"�X�	�1���#�<�<�	��A�F��������Q�G��7�9�9�V]�V_�V_�ah�aj�aj�ls�lu�lu�Jv��w�$'�M�M�)�G�DT�DT�^b�^n�^n�^t�^t�$u��!��!�!�&�&�a�W�g�i�i�QX�QZ�QZ�E[�&�\�-1�-F�-F�-J�-J����)�*�	�1���"%�)�)�I�R�d�N`�N`�"a������$�$�A�7�q�RY�R[�R[�]d�]f�]f�Qg�$�h� �Z�Z�	�
�Ja�ko�k|�k|�}��������q�g�g�i�i��H������
�D�,=�,=�>������r�w�w�|�|�B�I�I�K�9K�L�M�	�1���14���9�B�]a�]v�]v�1w�.�.�3�3�1�'�VW�ah�aj�aj�ls�lu�lu�`v�3�w�$'�J�J�y�?P�Xo�y}�zR�zR�%S��!��!�!�&�&�a�W�W�Y�Y�&�O��!�!�&�&�z�4�3K�3K�L��!�!�%�%�b�g�g�l�l�2�9�9�;�@Y�&Z�[�	�1����I�I�i����T�M]�M]�^�	����a�W��G�I�I�w�y�y�CY��Z��-�-�/�E���1�1�1��$�$�!�!�$�4��$�*�*�*��$�$�&�q�$�9��)�#��$�$�!�&�$�9��$�$�!�!�$�4�0�	
�	�	���Z����7��|�|�D�I�I�&���	�	���d��#��<�<��%�����:�t�7M�7M�[_�kl��m����9�d�6K�6K�Y]�ij��k����:�t�7M�7M�[_�kl��m����#4�d�>W�>W�ei�uw��x����v�H���B��,�,�t�$�����)�T�5J�5J�X\�hi��j����(�D�4H�4H�VZ�fg��h����)�T�5J�5J�X\�hi��j����"2�D�<T�<T�bf�rt��u����u�7�a��@��<�<��%�����#9�C~�KL��	M����v�H���B��	�	���6�4�#9�#9�:��	�	���6�4�#8�#8�9��	�	���6�4�#9�#9�:��	�	���6�4�#<�#<�=��	�	���6�4�#8�#8�9��	�	���6�4�#7�#7�8��	�	���6�4�#8�#8�9��	�	���6�4�#;�#;�<�	
�	�	���E�5�)���� � �"�#'�9�9�?�?�3��8W�8W�#X�� �	
�	�	���Z��.��	�	����	
�	�	����	
�	�	���t�7�7�8����	��I�I��������	��	�s�PAP�PAP2�P1AP2N)rrrr�r�r�r�r�r�r�r�r�r�r�r�rrr�rrrr�r�'sT��9�xC�/�21�28�21�@-�8/�86�8/�<a�	8�
R�
`� vrr�c��t�y)a
    Launch the MouseInfo application in a new window.

    This exists as a shortcut instead of running MouseInfoWindow() because
    PyAutoGUI (which imports mouseinfo) is set up with a simple mouseInfo()
    function and I'd like to keep this consistent with that.
    N)r�rrr�	mouseInfor�zs
���r�__main__r)h�__doc__r@r�r�rRr�r<rrrrrrrr	r
rrKrN�PILrr�r(rrr�SetProcessDPIAware�AttributeError�GetDCr4�	Structurerr#r�r+r_r/r�r9r��rubicon.objcr;r<�rubicon.objc.typesr=�LoadLibrary�find_library�appkitr?�declare_class_propertyrD�CGDirectDisplayID�
CGEventRef�CGEventSourceRef�CGEventTapLocation�CGEventType�CGEventField�	CGKeyCode�
CGMouseButton�CGScrollEventUnitrX�argtypes�restype�CGEventCreateKeyboardEvent�CGEventCreateMouseEvent�CGEventCreateScrollWheelEvent�CGEventSetIntegerValueField�CGEventSetType�argtype�CGEventPostrYrGrVrZrcr��Xlib.displayrf�errnorw�Popen�PIPE�	whichProc�wait�OSError�ex�ENOENT�environrorurzr~r��version_infor��Tkinterr�r�r��exitrMr�r�rrrr�<module>r�s���
���/�/�/���� ������<�<�7����!�
�
�}�}���.�.�0�
���	�	�	#�	#�A�	&�B�*�� � �*�$��H�	� �J�d��D�"��H�	�\�\�X��/�>��T�
�
�/�d�/�/��9�
:�F��	�"�G��"�"�?�3�
%�D�$�$�%6�T�%6�%6�~�%F�G�M� ���J�� 0�*�=���� 6�8H�I�!���K��L��I��M� ��3D�1D�M�%�%�.�08�M�%�%�-�:J�9�V\�8]�M�,�,�5�7A�M�,�,�4�7G��U\�^k�5l�M�)�)�2�4>�M�)�)�1�=M�N_�ai�kr�;s�M�/�/�8�:D�M�/�/�7�;E�l�T[�9\�M�-�-�6�8<�M�-�-�5�-7��+D�M� � �(�+/�M� � �(�+=�j�)I�M���&�(,�M���%�.0�M�!�!�*�,=�M�!�!�)�M��H�
� �J�
�
�D�5��H��X�_�_��'�!�$���K�
�(�
�(�(��'�"�:�?�?�:�?�?�T�I�#�.�.�*�a�/�K��r�z�z�)�,�-�H�0��H�Q�*"�J�U��D�5��H��#�#�A�&�!�+���8�?�?�����	O�%��C�%�
	Q��#�%�
�!���!�	��!���Q	�Q	�f��z������s�������
��
��@��
�8�8�u�|�|�#�
��
��	��p�	O��C�H�H�N�
O�	O���	Q��C�H�H�P�
Q�	Q�s_�N6�$O�
>O�O=�)P�6O�O�O
�O
�O:�O5�5O:�=P�P�P4�3P4

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists