Current File : //proc/self/root/opt/alt/python35/lib64/python3.5/idlelib/__pycache__/OutputWindow.cpython-35.pyc
�q�\*�@srddlTddlmZddlZddljZddlmZGdd�de�Z Gdd�d�Z
dS) �)�*)�EditorWindowN)� IOBindingc@s�eZdZdZdd�Zdd�Zdd�Zdd �Zfd
dd�Zd
d�Z dd�Z
d&d'd(d)d*gZdddd d!gZdZ
dd"d#�Zd$d%�ZdS)+�OutputWindowz�An editor window that can serve as an output file.
Also the future base class for the Python shell window.
This class has no input facilities.
cGs*tj||�|jjd|j�dS)Nz<<goto-file-line>>)r�__init__�textZbind�goto_file_line)�self�args�r�9/opt/alt/python35/lib64/python3.5/idlelib/OutputWindow.pyrszOutputWindow.__init__cCsdS)Nrr)r �filenamerrr�ispythonsourceszOutputWindow.ispythonsourcecCsdS)NZOutputr)r rrr�short_titleszOutputWindow.short_titlecCs|j�rdSdSdS)N�yes�no)Z get_saved)r rrr� maybesaveszOutputWindow.maybesave�insertcCsgt|ttf�r*|jtjd�}|jj|||�|jj|�|jj�t |�S)N�replace)
�
isinstance�bytes�decoder�encodingrrZsee�update�len)r �s�tags�markrrr�write%s
zOutputWindow.writecCs"x|D]}|j|�qWdS)N)r)r �lines�linerrr�
writelines-s
zOutputWindow.writelinescCsdS)Nr)r rrr�flush1szOutputWindow.flush�Cut�<<cut>>�rmenu_check_cut�Copy�<<copy>>�rmenu_check_copy�Paste� <<paste>>�rmenu_check_pasteN�Go to file/line�<<goto-file-line>>zfile "([^"]*)", line (\d+)z([^\s]+)\((\d+)\)z^(\s*\S.*?):\s*(\d+):z([^\s]+):\s*(\d+):z^\s*(\S.*?):\s*(\d+):c Cs�|jdkrNg}x-|jD]"}|jtj|tj��qW||_|jjdd�}|j|�}|s�|jjdd�}|j|�}|s�t j
ddd|j�dS|\}}|jj|�}|j
|�dS)Nzinsert linestartzinsert lineendzinsert -1line linestartzinsert -1line lineendzNo special linezTThe line you point at doesn't look like a valid file name followed by a line number.�parent)�file_line_progs�file_line_pats�append�re�compile�
IGNORECASEr�get�_file_line_helper�tkMessageBoxZ showerror�flist�openZgotoline) r Zevent�lZpatr �resultr
�linenoZeditrrrrIs(
zOutputWindow.goto_file_linecCs�xx|jD]i}|j|�}|r
|jdd�\}}yt|d�}|j�PWq
tk
rrw
Yq
Xq
WdSy|t|�fSWntk
r�dSYnXdS)N���r)r/�search�groupr9�close�OSError�int� TypeError)r r �prog�matchr
r<�frrrr6ds
zOutputWindow._file_line_helper)r#r$r%)r&r'r()r)r*r+)NNN)r,r-N)�__name__�
__module__�__qualname__�__doc__rrrrrr!r"Zrmenu_specsr0r/rr6rrrrrs* rc@sReZdZdddidddiiZdd�Zdd �Zd
d�ZdS)
�OnDemandOutputWindow�stdoutZ
foregroundZblue�stderrz#007700cCs||_d|_dS)N)r8�owin)r r8rrrr�s zOnDemandOutputWindow.__init__cCs-|js|j�|jj|||�dS)N)rP�setupr)r rrrrrrr�s
zOnDemandOutputWindow.writecCsut|j�|_}|j}x3|jj�D]"\}}|r/|j||�q/W|jd�|jj|_dS)NZsel) rr8rPr�tagdefs�itemsZ
tag_configureZ tag_raiser)r rPr�tagZcnfrrrrQ�s
zOnDemandOutputWindow.setupN)rIrJrKrRrrrQrrrrrMxs
rM)ZtkinterZidlelib.EditorWindowrr2Ztkinter.messageboxZ
messageboxr7ZidlelibrrrMrrrr�<module>s
q