Ë
    #´˜j?#  ã                   óV  — d Z 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ej                  dk(  rej4                  dkD  rd	nd
Zn e«       d   dd Z G d„ de«      Zedk(  r ddlmZ  eddd¬«       ddl m!Z!  e!e«       yy)zAbout Dialog for IDLE

é    N)Úpython_versionÚarchitecture)ÚToplevelÚFrameÚLabelÚButtonÚ
PhotoImage)
ÚSUNKENÚTOPÚBOTTOMÚLEFTÚXÚBOTHÚWÚEWÚNSEWÚE)ÚtextviewÚdarwinl        Ú64Ú32é   c                   ó`   — e Zd ZdZddddœd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Z	d„ Z
d„ Zd„ Zdd„Zdd„Zy)ÚAboutDialogz!Modal about dialog for idle

    NF)Ú_htestÚ_utestc                ó  — t        j                  | |«       | j                  d¬«       | j                  d|j	                  «       dz   |j                  «       |sdndz   fz  «       d| _        d| _        | j                  «        | j                  dd¬	«       | j                  |xs d
t        › dt        › d�«       | j                  |«       | j                  «        | j                  d| j                   «       || _        | j$                  j'                  «        | j)                  d| j                   «       | j)                  d| j                   «       d| _        || _        |s!| j/                  «        | j1                  «        yy)a  Create 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+%dé   éd   z#bbbbbbz#000000F)ÚheightÚwidthzAbout IDLE z (z bit)ÚWM_DELETE_WINDOWz<Return>z<Escape>N)r   Ú__init__Ú	configureÚgeometryÚwinfo_rootxÚwinfo_rootyÚbgÚfgÚcreate_widgetsÚ	resizableÚtitleÚpyverÚbitsÚ	transientÚgrab_setÚprotocolÚokÚparentÚ	button_okÚ	focus_setÚbindÚ_current_textviewr   Ú	deiconifyÚwait_window)Úselfr5   r.   r   r   s        ú$lib/python3.12/idlelib/help_about.pyr%   zAboutDialog.__init__   sD  € ô 	×Ñ˜$ Ô'Ø�‰ 1ˆÔ%à�‰�hØ×*Ñ*Ó,¨RÑ/Ø×*Ñ*Ó,¹©bÀCÑHð"Jñ Jô 	Kð ˆŒØˆŒØ×ÑÔØ�‰˜e¨5ˆÔ1Ø�
‰
�5ò 6Ø ¤  r¬$¨¨uÐ5ô	7à�‰�vÔØ�‰ŒØ�‰Ð(¨$¯'©'Ô2ØˆŒØ�‰× Ñ Ô"Ø�	‰	�*˜dŸg™gÔ&Ø�	‰	�*˜dŸg™gÔ&Ø!%ˆÔØˆŒáØ�N‰NÔØ×ÑÕð ó    c                 óÜ  ‡‡— t        | dt        ¬«      }t        | «      }|j                  t        t        ¬«       |j                  t
        dt        ¬«       t        |d| j                  ¬«      | _	        | j                  j                  dd¬	«       t        || j                  ¬
«      }|j                  dt        ¬«       t        |d| j                  | j                  d¬«      }|j                  ddt        dd¬«       | j                  «       j!                  d«      }|dk\  rdnd}t"        j$                  j'                  t"        j$                  j)                  t"        j$                  j+                  t,        «      «      dd|› �«      }t/        | j                  «       |¬«      | _        t        || j0                  | j                  ¬«      }|j                  ddt2        ddd¬«       d}	t        ||	t4        | j                  | j                  ¬«      }
|
j                  ddt2        ddd¬«       dŠt        |d d!| j                  ˆfd"„¬#«      }|j                  d$dt2        dd¬«       d%t6        j8                  d d z  Št        |d&d!| j                  ˆfd'„¬#«      }|j                  d(ddt2        dd¬)«       t        |d*t        d| j                  ¬+«      j                  d,dt:        ddd¬«       t=        | j?                  «       «      }||k7  rd-|z   nd.}d/t@        › d0|› |› �}t        ||| j                  | j                  ¬1«      }|j                  d2dt2        dd¬«       t        || j                  ¬
«      }|j                  dddtB        ¬3«       t        |d4d,| j                  | jD                  ¬#«      | _#        | jF                  j                  t4        dd¬5«       t        |d6d,| j                  | jH                  ¬#«      | _%        | jJ                  j                  t4        dd¬5«       t        |d7d,| j                  | jL                  ¬#«      | _'        | jN                  j                  t4        dd¬5«       t        |d*t        d| j                  ¬+«      j                  d8dt:        ddd¬«       t        |d| j                  | j                  ¬1«      }|j                  d9dt2        dd¬«       t        || j                  ¬
«      }|j                  d:ddtB        ¬3«       t        |d;d,| j                  | jP                  ¬#«      | _)        | jR                  j                  t4        dd¬5«       t        |d<d,| j                  | jT                  ¬#«      | _+        | jV                  j                  t4        dd¬5«       t        |d7d,| j                  | jX                  ¬#«      | _-        | jZ                  j                  t4        dd¬5«       y )=Nr   )r   Úrelief)ÚsideÚfillT)rA   ÚexpandrB   ÚClose)ÚtextÚcommandr   )ÚpadxÚpady)r*   )rC   rB   ÚIDLE)Úcourieré   Úbold)rE   r+   r*   Úfontr   é
   )ÚrowÚcolumnÚstickyrG   rH   Útk_patchLevelz8.6z.pngz.gifÚIconsÚidle_48)ÚmasterÚfile)Úimager*   )rO   rP   rQ   ÚrowspanrG   rH   z=Python's Integrated Development
and Learning Environment




)rE   Újustifyr+   r*   é   )rO   rP   rQ   Ú
columnspanrG   rH   zhttps://discuss.python.orgzPython (and IDLE) Discussioné#   c                  ó.   •— t        j                  ‰ «      S ©N©Ú
webbrowserÚopen)Ú
forums_urls   €r=   Ú<lambda>z,AboutDialog.create_widgets.<locals>.<lambda>\   s   ø€ ´·±ÀÔ1Lr>   )rE   r#   ÚhighlightbackgroundrF   é   z/https://docs.python.org/%d.%d/library/idle.htmlzIDLE Documentationc                  ó.   •— t        j                  ‰ «      S r^   r_   )Údocs_urls   €r=   rc   z,AboutDialog.create_widgets.<locals>.<lambda>d   s   ø€ ´·±ÀÔ1Jr>   é   )rO   rP   r[   rQ   rG   rH   é   )r   r@   r"   r*   é   z and Ú zPython z with tcl/tk )rE   r+   r*   é	   )rO   rP   r[   rQ   ÚLicense)rA   rG   rH   Ú	CopyrightÚCreditsé   é   é   ÚReadmeÚNews).r   r
   Úpackr   r   r   r   r   r4   r6   r*   r   r+   Úgridr   Ú_rootÚgetvarÚosÚpathÚjoinÚabspathÚdirnameÚ__file__r	   Ú
icon_imager   r   ÚsysÚversion_infor   ÚstrÚinfo_patchlevelr/   r   Úshow_py_licenseÚ
py_licenseÚshow_py_copyrightÚpy_copyrightÚshow_py_creditsÚ
py_creditsÚshow_readmeÚreadmeÚshow_idle_newsÚ	idle_newsÚshow_idle_creditsÚidle_credits)r<   ÚframeÚframe_buttonsÚframe_backgroundÚheaderÚtkpatchÚextÚiconÚlogoÚbyline_textÚbylineÚforumsÚdocsÚtclverÚtkverÚversionsÚversÚ
py_buttonsÚidleÚidle_buttonsrg   rb   s                       @@r=   r,   zAboutDialog.create_widgets<   sþ  ù€ Ü�d¨´&Ô9ˆÜ˜d›ˆØ×Ñ¤¬QÐÔ/Ø�
‰
œ D¬tˆ
Ô4Ü °GØ(,¯©ô1ˆŒà�‰×Ñ ¨ÐÔ+ä  ¨4¯7©7Ô3ÐØ×Ñ T´ÐÔ5äÐ'¨f¸¿¹ØŸ'™'Ð(?ôAˆà�‰˜ !¬A°B¸RˆÔ@à—*‘*“,×%Ñ% oÓ6ˆØ 5Ò(‰f¨fˆÜ�w‰w�|‰|œBŸG™GŸO™O¬B¯G©G¯O©O¼HÓ,EÓFØ# w¨s¨e _ó6ˆä$¨D¯J©J«L¸tÔDˆŒÜÐ%¨T¯_©_ÀÇÁÔIˆØ�	‰	�a ¬!°Q¸RÀbˆ	ÔIàZˆÜÐ'¨kÄ4ØŸ'™' d§g¡gô/ˆà�‰˜ !¬A¸!À"È1ˆÔMà1ˆ
ÜÐ(Ð/MÐUWØ59·W±WÛ)LôNˆð 	�‰˜ !¬A°B¸RˆÔ@ð FÜ×$Ñ$ R aÐ(ñ)ˆäÐ&Ð-AÈØ59·W±WÛ)JôLˆð 	�	‰	�a ¨a¼ÀÈˆ	ÔLô 	Ð¨A´fØ˜4Ÿ7™7ô	$ß$(¡D¨Q°qÄØ45¸AÀAð %)ô %Gô �T×)Ñ)Ó+Ó,ˆØ%,°Ò%6�˜'Ò!¸BˆØœU˜G =°°¸¸Ð@ˆÜÐ%¨H¸¿¹ÀTÇWÁWÔMˆØ�	‰	�a ¬!°"¸1ˆ	Ô=ÜÐ+°·±Ô8ˆ
Ø�‰˜B q°Q¼tˆÔDÜ  °)À1Ø59·W±WØ)-×)=Ñ)=ô?ˆŒð 	�‰×Ñ¤$¨R°bÐÔ9Ü" :°KÀqØ7;·w±wØ+/×+AÑ+AôCˆÔð 	×Ñ×Ñ¤D¨r¸ÐÔ;Ü  °)À1Ø59·W±WØ)-×)=Ñ)=ô?ˆŒð 	�‰×Ñ¤$¨R°bÐÔ9äÐ¨A´fØ˜4Ÿ7™7ô	$ß$(¡D¨R¸Ä"Ø45¸AÀAð %)ô %Gô Ð%¨F°t·w±wÀ4Ç7Á7ÔKˆØ�	‰	�b ¬1°2¸Aˆ	Ô>ÜÐ-°$·'±'Ô:ˆØ×Ñ˜b¨°qÄÐÔFÜ˜\°ÀØ15·±Ø%)×%5Ñ%5ô7ˆŒð 	�‰×Ñœd¨°"ÐÔ5Ü °6ÀØ48·G±GØ(,×(;Ñ(;ô=ˆŒð 	�‰×Ñ¤¨B°RÐÔ8Ü" <°iÀqØ7;·w±wØ+/×+AÑ+AôCˆÔð 	×Ñ×Ñ¤D¨r¸ÐÕ;r>   c                 ó0   — | j                  dt        «       y)zHandle License button event.zAbout - LicenseN)Údisplay_printer_textÚlicense©r<   s    r=   r„   zAboutDialog.show_py_license–   s   € à×!Ñ!Ð"3´WÕ=r>   c                 ó0   — | j                  dt        «       y)zHandle Copyright button event.zAbout - CopyrightN)r¤   Ú	copyrightr¦   s    r=   r†   zAboutDialog.show_py_copyrightš   s   € à×!Ñ!Ð"5´yÕAr>   c                 ó0   — | j                  dt        «       y)z#Handle Python Credits button event.zAbout - Python CreditsN)r¤   Úcreditsr¦   s    r=   rˆ   zAboutDialog.show_py_creditsž   s   € à×!Ñ!Ð":¼GÕDr>   c                 ó*   — | j                  ddd«       y)z!Handle Idle Credits button event.zAbout - CreditszCREDITS.txtúutf-8N©Údisplay_file_textr¦   s    r=   rŽ   zAboutDialog.show_idle_credits¤   s   € à×ÑÐ0°-ÀÕIr>   c                 ó*   — | j                  ddd«       y)zHandle Readme button event.zAbout - Readmez
README.txtÚasciiNr­   r¦   s    r=   rŠ   zAboutDialog.show_readme¨   s   € à×ÑÐ/°¸wÕGr>   c                 ó*   — | j                  ddd«       y)zHandle News button event.zAbout - Newsz	News3.txtr¬   Nr­   r¦   s    r=   rŒ   zAboutDialog.show_idle_news¬   s   € à×Ñ˜~¨{¸GÕDr>   c                 óª   — |j                  «        dj                  |j                  «      }t        j                  | ||| j
                  ¬«      | _        y)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.
        Ú
©r   N)Ú_Printer__setupr{   Ú_Printer__linesr   Ú	view_textr   r9   )r<   r.   ÚprinterrE   s       r=   r¤   z AboutDialog.display_printer_text°   sD   € ð 	×ÑÔ!Ø�y‰y˜×0Ñ0Ó1ˆÜ!)×!3Ñ!3Ø�%˜ d§k¡kô"3ˆÕr>   c                 ó  — t         j                  j                  t         j                  j                  t         j                  j	                  t
        «      «      |«      }t        j                  | |||| j                  ¬«      | _	        y)zæCreate 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.
        r´   N)
ry   rz   r{   r|   r}   r~   r   Ú	view_filer   r9   )r<   r.   ÚfilenameÚencodingÚfns        r=   r®   zAboutDialog.display_file_text½   sT   € ô �W‰W�\‰\œ"Ÿ'™'Ÿ/™/¬"¯'©'¯/©/¼(Ó*CÓDÀhÓOˆÜ!)×!3Ñ!3Ø�%˜˜X¨d¯k©kô";ˆÕr>   c                 óD   — | j                  «        | j                  «        y)zDismiss help_about dialog.N)Úgrab_releaseÚdestroy)r<   Úevents     r=   r4   zAboutDialog.okÈ   s   € à×ÑÔØ�‰�r>   r^   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   r,   r„   r†   rˆ   rŽ   rŠ   rŒ   r¤   r®   r4   © r>   r=   r   r      sO   „ ñð °UÀ5ô  òDW<òt>òBòEòJòHòEò3ó	;ôr>   r   Ú__main__)Úmainz!idlelib.idle_test.test_help_aboutF)Ú	verbosityÚexit)Úrun)"rÅ   ry   r€   r`   Úplatformr   r   Útkinterr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   Úidlelibr   r/   Úmaxsizer0   r   rÂ   ÚunittestrÈ   Úidlelib.idle_test.htestrË   rÆ   r>   r=   Ú<module>rÒ      sœ   ðñó 
Û 
Û ß 1ç >Õ >ß F× F× Få áÓ€à‡<�<�8ÒØ—;‘; Ò&‰4¨D�Dá‹>˜!Ñ˜R˜aÐ €Dôu�(ô uðp ˆzÒÝÙÐ	,¸ÀÕFå+ÙˆÕð r>   