B /g^#@sdZddlZddlZddlmZmZddlmZmZm Z m Z m Z ddlm Z m Z mZmZmZmZmZmZmZmZddlmZddZGd d d eZed krdd lmZed dddddlmZeedS)zAbout Dialog for IDLE N)python_version architecture)ToplevelFrameLabelButton PhotoImage) SUNKENTOPBOTTOMLEFTXBOTHWEWNSEWE)textviewcCs2tjdkrtjdkrdSdStdddSdS)zReturn bits for platform.darwinlZ64Z32rN)sysplatformmaxsizerrr*/usr/lib64/python3.7/idlelib/help_about.py build_bitss rc@sveZdZdZddddddZddZd d Zd d Zd dZddZ ddZ ddZ ddZ dddZ dddZdS) AboutDialogz!Modal about dialog for idle NF)_htest_utestcCst|||jdd|d|d||s6dndfd|_d|_||j ddd | |pd t d t d | |||d |j||_|j|d|j|d|jd|_||_|s||dS)aCreate popup, do not return until tk widget destroyed. parent - parent of this dialog title - string which is title of popup dialog _htest - bool, change box location when running htest _utest - bool, don't wait_window when running unittest ) borderwidthz+%d+%ddz#bbbbbbz#000000F)heightwidthz About IDLE z (z bit)ZWM_DELETE_WINDOWzzN)r__init__Z configureZgeometryZ winfo_rootxZ winfo_rootybgfgcreate_widgetsZ resizabletitlerrZ transientZgrab_setZprotocolokparent button_okZ focus_setZbind_current_textviewrZ deiconifyZ wait_window)selfr+r)rrrrrr%s.     zAboutDialog.__init__cCst|dtd}t|}|jttd|jtdtdt|d|jd|_ |j jddd t||j d }|jdtd t |d |j |j d d}|j ddtddd|jdd}|dkrdnd}tjtjtjtdd|}t||d|_t ||j|j d}|j ddtddddd} t || t|j |j d} | j ddtddddt |d t|j |j d} | j d!ddtddd"t |d#tddd$t|j |j d} | j d%ddtddd"t|d&td|j d'j d(dtddddt |d)t|j |j d*} | j d+dtdddt |d,||j |j d*}|j d+d&tdddt||j d }|j dddtd-t|d.d(|j |jd/|_ |j jtddd0t|d1d(|j |j!d/|_"|j"jtddd0t|d2d(|j |j#d/|_$|j$jtddd0t|d&td|j d'j d3dtddddt |d4t|j |j d*}|j d5dtdddt||j d }|j d6ddtd-t|d7d(|j |j%d/|_&|j&jtddd0t|d8d(|j |j'd/|_(|j(jtddd0t|d2d(|j |j)d/|_*|j*jtddd0dS)9Nr)r relief)sidefillT)r0expandr1ZClose)textcommandr)padxpady)r&)r2r1ZIDLE)ZcourierZbold)r3r'r&Zfontr )rowcolumnstickyr5r6infoZ patchlevelz8.6z.pngz.gifZIconsZidle_48)Zmasterfile)Zimager&)r9r:r;Zrowspanr5r6z=Python's Integrated Development and Learning Environment )r3Zjustifyr'r&)r9r:r; columnspanr5r6zemail: idle-dev@python.org)r9r:r?r;r5r6zhttps://docs.python.org/z/library/idle.html)r r/r#r&zPython version: )r3r'r& z Tk version: )r9r:r?r;ZLicense)r3r$Zhighlightbackgroundr4)r0r5r6Z CopyrightZCredits zIDLE version: ZREADMEZNEWS)+rr Zpackr r r rrr*r,r&rr'ZgridrZtkZcallospathjoinabspathdirname__file__rZ_rootZ icon_imagerr rrrshow_py_licenseZ py_licenseshow_py_copyrightZ py_copyrightshow_py_creditsZ py_credits show_readmeZreadmeshow_idle_newsZ idle_newsshow_idle_creditsZ idle_credits)r.frameZ frame_buttonsZframe_backgroundheaderZ tk_patchlevelZextZiconZlogoZ byline_textZbylineZemailZdocsZpyverZtkverZ py_buttonsZidleverZ idle_buttonsrrrr(<s            zAboutDialog.create_widgetscCs|dtdS)zHandle License button event.zAbout - LicenseN)display_printer_textlicense)r.rrrrNszAboutDialog.show_py_licensecCs|dtdS)zHandle Copyright button event.zAbout - CopyrightN)rV copyright)r.rrrrOszAboutDialog.show_py_copyrightcCs|dtdS)z#Handle Python Credits button event.zAbout - Python CreditsN)rVcredits)r.rrrrPszAboutDialog.show_py_creditscCs|ddddS)z!Handle Idle Credits button event.zAbout - Creditsz CREDITS.txtzutf-8N)display_file_text)r.rrrrSszAboutDialog.show_idle_creditscCs|ddddS)zHandle Readme button event.zAbout - Readmez README.txtasciiN)rZ)r.rrrrQszAboutDialog.show_readmecCs|ddddS)zHandle News button event.z About - NEWSzNEWS.txtzutf-8N)rZ)r.rrrrRszAboutDialog.show_idle_newscCs.|d|j}tj||||jd|_dS)a Create textview for built-in constants. Built-in constants have type _sitebuiltins._Printer. The text is extracted from the built-in and then sent to a text viewer with self as the parent and title as the title of the popup.  )rN)_Printer__setuprJ_Printer__linesrZ view_textrr-)r.r)Zprinterr3rrrrVs z AboutDialog.display_printer_textcCs:tjtjtjt|}tj|||||jd|_ dS)zCreate textview for filename. The filename needs to be in the current directory. The path is sent to a text viewer with self as the parent, title as the title of the popup, and the file encoding. )rN) rHrIrJrKrLrMrZ view_filerr-)r.r)filenameencodingfnrrrrZszAboutDialog.display_file_textcCs||dS)zDismiss help_about dialog.N)Z grab_releaseZdestroy)r.Zeventrrrr*szAboutDialog.ok)N)N)N)__name__ __module__ __qualname____doc__r%r(rNrOrPrSrQrRrVrZr*rrrrrs"V r__main__)mainz!idlelib.idle_test.test_help_aboutrF) verbosityexit)run)rerHrrrrZtkinterrrrrrr r r r r rrrrrZidlelibrrrrbZunittestrgZidlelib.idle_test.htestrjrrrrs0 5