o
     JAf#                     @   s   	 d dl Z d dlZd dlZd dlmZmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZ e Zdd ZG dd	 d	eZed
krmd dlmZ edddd d dlmZ ee dS dS )    N)python_versionarchitecture)ToplevelFrameLabelButton
PhotoImage)
SUNKENTOPBOTTOMLEFTXBOTHWEWNSEWE)textviewc                   C   s0   	 t jdkrt jdkrdS dS t d d d S )Ndarwinl        Z64Z32r      )sysplatformmaxsizer    r   r   )/usr/lib/python3.10/idlelib/help_about.py
build_bits   s   
r   c                   @   st   e Zd Z	 ddddddZdd Zdd	 Zd
d Zdd Zdd Zdd Z	dd Z
dd ZdddZdddZdS )AboutDialogNF)_htest_utestc                C   s   	 t | | | jdd | d| d | |sdnd f  d| _d| _|   | j	ddd	 | 
|p@d
t dt  d | | |   | d| j || _| j  | d| j | d| j d | _|| _|sz|   |   d S d S )N   )borderwidthz+%d+%d   d   z#bbbbbbz#000000F)heightwidthzAbout IDLE z (z bit)ZWM_DELETE_WINDOWz<Return>z<Escape>)r   __init__Z	configureZgeometryZwinfo_rootxZwinfo_rootybgfgcreate_widgetsZ	resizabletitleversionr   Z	transientZgrab_setprotocolokparent	button_okZ	focus_setbind_current_textviewr   Z	deiconifyZwait_window)selfr-   r)   r   r   r   r   r   r%      s6   


zAboutDialog.__init__c                    s  t | dtd}t | }|jttd |jtdtd t|d| jd| _	| j	jddd	 t || j
d
}|jdtd t|d| j| j
dd}|jddtddd | jdd}|dkr[dnd}tjtjtjtdd| }t|  |d| _t|| j| j
d}|jddtdddd d}	t||	t| j| j
d}
|
jddtdddd t|d t| j| j
d}|jd!ddtddd" d#tjd d  }t||t| j| j
d  jd$ddtddd"  d% fd&d' t |d(td| j
d)jd*dtdddd t|d+t  | j| j
d,}|jd-dtddd t|d.| | j| j
d,}|jd-d(tddd t || j
d
}|jdddt!d/ t|d0d*| j
| j"d1| _#| j#jtddd2 t|d3d*| j
| j$d1| _%| j%jtddd2 t|d4d*| j
| j&d1| _'| j'jtddd2 t |d(td| j
d)jd5dtdddd t|d6t  | j| j
d,}|jd7dtddd t || j
d
}|jd8ddt!d/ t|d9d*| j
| j(d1| _)| j)jtddd2 t|d:d*| j
| j*d1| _+| j+jtddd2 t|d4d*| j
| j,d1| _-| j-jtddd2 d S );Nr   )r    relief)sidefillT)r3   expandr4   Close)textcommandr   )padxpady)r&   )r5   r4   ZIDLE)Zcourier   Zbold)r7   r'   r&   Zfontr   
   )rowcolumnstickyr9   r:   infoZ
patchlevelz8.6z.pngz.gifZIconsZidle_48)Zmasterfile)Zimager&   )r=   r>   r?   Zrowspanr9   r:   z=Python's Integrated Development
and Learning Environment




)r7   Zjustifyr'   r&      )r=   r>   r?   
columnspanr9   r:   zemail:  idle-dev@python.org   )r=   r>   rC   r?   r9   r:   z/https://docs.python.org/%d.%d/library/idle.html   z
<Button-1>c                    s   t  d S )Nr7   )
webbrowseropen)eventZdocsr   r   <lambda>c   s    z,AboutDialog.create_widgets.<locals>.<lambda>   )r    r2   r#   r&      zPython version:  )r7   r'   r&   	   zTk version:  )r=   r>   rC   r?   ZLicense)r7   r$   Zhighlightbackgroundr8   )r3   r9   r:   Z	CopyrightZCredits   zIDLE version:         ZREADMEZNEWS).r   r	   packr   r   r
   r   r   r,   r.   r&   r   r'   Zgridr   Ztkcallospathjoinabspathdirname__file__r   _rootZ
icon_imager   r   r   version_infor/   r   r*   r   show_py_licenseZ
py_licenseshow_py_copyrightZpy_copyrightshow_py_creditsZ
py_creditsshow_readmeZreadmeshow_idle_newsZ	idle_newsshow_idle_creditsZidle_credits)r1   frameZframe_buttonsZframe_backgroundheaderZtk_patchlevelextZiconZlogoZbyline_textZbylineZemailZdocs_urlZpyverZtkverZ
py_buttonsZidleverZidle_buttonsr   rI   r   r(   ?   s   




zAboutDialog.create_widgetsc                 C      	 |  dt d S )NzAbout - License)display_printer_textlicenser1   r   r   r   r[         zAboutDialog.show_py_licensec                 C   rd   )NzAbout - Copyright)re   	copyrightrg   r   r   r   r\      rh   zAboutDialog.show_py_copyrightc                 C   rd   )NzAbout - Python Credits)re   creditsrg   r   r   r   r]      rh   zAboutDialog.show_py_creditsc                 C      	 |  ddd d S )NzAbout - CreditszCREDITS.txtutf-8display_file_textrg   r   r   r   r`         zAboutDialog.show_idle_creditsc                 C   rk   )NzAbout - Readmez
README.txtasciirm   rg   r   r   r   r^      ro   zAboutDialog.show_readmec                 C   rk   )NzAbout - NEWSzNEWS.txtrl   rm   rg   r   r   r   r_      ro   zAboutDialog.show_idle_newsc                 C   s0   	 |   d|j}tj| ||| jd| _d S )N
r   )_Printer__setuprU   _Printer__linesr   Z	view_textr   r0   )r1   r)   Zprinterr7   r   r   r   re      s   
z AboutDialog.display_printer_textc                 C   s<   	 t jt jt jt|}tj| |||| jd| _	d S )Nrr   )
rS   rT   rU   rV   rW   rX   r   Z	view_filer   r0   )r1   r)   filenameencodingfnr   r   r   rn      s
   zAboutDialog.display_file_textc                 C   s   	 |    |   d S N)Zgrab_releaseZdestroy)r1   rH   r   r   r   r,      s   zAboutDialog.okrx   )__name__
__module____qualname__r%   r(   r[   r\   r]   r`   r^   r_   re   rn   r,   r   r   r   r   r      s    "X
r   __main__)mainz!idlelib.idle_test.test_help_aboutr   F)	verbosityexit)run) rS   r   rF   r   r   r   tkinterr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Zidlelibr   r*   r   r   ry   Zunittestr}   Zidlelib.idle_test.htestr   r   r   r   r   <module>   s$    0 7