U :ez @sddlZddlZddlZddlmZddlmZddlmZm Z m Z ddl m Z da dddZGdd d ZGd d d e ZGd d d e ZddZedkreejdkrddlmZeddddddlmZeedS)N)idleConf)pyshell)TreeNodeTreeItemScrolledCanvas)ListedToplevelcCsg}|D]\}}|dks&|j|kr t|dr|jr|j|krg}|jD]F}t|tdkrd|}n"|j}|j|jkr|jd|}||qJ|jdd|7_||q |S)Nsuper.z({})z, ) itemsmodulehasattrrnametypeappendformatjoin)Z child_dictmodnameZobskeyobjZsuperssupZsnamer4/usr/local/python38/lib/python3.8/idlelib/browser.pytransform_childrens     rc@s>eZdZdddddZdddZdd Zd d Zd d ZdS) ModuleBrowserF)_htest_utestcCs$||_||_||_||_|dSN)masterpathrrinit)selfrrrrrrr__init__As zModuleBrowser.__init__NcCs|j|jdSr)topZdestroynode)r!eventrrrcloseYs zModuleBrowser.closec Cs|j}|js|jstjnt|}|jatj t ||_ }| d|j|d|j|jr|d||df||t}t|dd}t||ddd }|jjdd d |}t|jd||_}|js|| dS) NZWM_DELETE_WINDOWzz+%d+%dZnormal backgroundr)bgZhighlightthicknessZ takefocusZboth)expandfill)!rrrrflistZPyShellFileListopen file_openpyclbrZ_modulesclearrr#protocolr&bindZgeometryZ winfo_rootxZ winfo_rootysettitleZ focus_setrZ CurrentThemeZ GetHighlightrframepackrootnoderZcanvasr$updater+) r!rootr-r#Zthemer(Zscitemr$rrrr ^s4 zModuleBrowser.initcCs*|jdtj|j|jddS)NzModule Browser - zModule Browser)r#Zwm_titleosrbasenameZ wm_iconnamer!rrrr4}szModuleBrowser.settitlecCs t|jSr)ModuleBrowserTreeItemrr=rrrr7szModuleBrowser.rootnode)N)__name__ __module__ __qualname__r"r&r r4r7rrrrr:s  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)r>cCs ||_dSr)file)r!rBrrrr"szModuleBrowserTreeItem.__init__cCstj|jSr)r;rr<rBr=rrrGetTextszModuleBrowserTreeItem.GetTextcCsdS)Npythonrr=rrr GetIconNamesz!ModuleBrowserTreeItem.GetIconNamecCsdd|DS)NcSsg|] }t|qSrChildBrowserTreeItem.0rrrr sz4ModuleBrowserTreeItem.GetSubList..) listchildrenr=rrr GetSubListsz ModuleBrowserTreeItem.GetSubListcCs>tj|jdddkrdStj|js0dSt|jdSN.py)r;rnormcaserBexistsr/r=rrr OnDoubleClicks z#ModuleBrowserTreeItem.OnDoubleClickcCstj|jdddkSrM)r;rrPrBr=rrr IsExpandablesz"ModuleBrowserTreeItem.IsExpandablecCsrtj|j\}}tj|\}}tj|dkr6gSzt||gtj}Wnt k rfgYSXt ||S)NrO) r;rsplitrBsplitextrPr0Z readmodule_exsys ImportErrorr)r!dirbaserextZtreerrrrKs z"ModuleBrowserTreeItem.listchildrenN) r?r@rAr"rCrErLrRrSrKrrrrr>sr>c@s<eZdZddZddZddZddZd d Zd d Zd S)rGcCs ||_|j|_t|tj|_dSr)rr isinstancer0ZFunction isfunction)r!rrrrr"szChildBrowserTreeItem.__init__cCs$|j}|jrd|dSd|SdS)Nzdef z(...)zclass )rr\)r!rrrrrCs zChildBrowserTreeItem.GetTextcCs|jr dSdSdS)NrDZfolder)r\r=rrrrEsz ChildBrowserTreeItem.GetIconNamecCs |jjikSr)rchildrenr=rrrrSsz!ChildBrowserTreeItem.IsExpandablecCsddt|jjDS)NcSsg|] }t|qSrrFrHrrrrJsz3ChildBrowserTreeItem.GetSubList..)rrr]r=rrrrLs zChildBrowserTreeItem.GetSubListc Cs<zt|jj}||jjWnttfk r6YnXdSr)r/rrBZgotolinelinenoOSErrorAttributeError)r!ZeditrrrrRs  z"ChildBrowserTreeItem.OnDoubleClickN) r?r@rAr"rCrErSrLrRrrrrrGs rGcCsHttjdkrtjd}nt}Gdddt}dd}t||dddS)Nr)c@seZdZddZdS)z'_module_browser..Nested_in_funccSsdSrrrrrrnested_in_classz7_module_browser..Nested_in_func.nested_in_classN)r?r@rArarrrrNested_in_funcsrccSsGddd}dS)Nc@s eZdZdS)z;_module_browser..closure..Nested_in_closureN)r?r@rArrrrNested_in_closuresrdr)rdrrrclosuresz _module_browser..closureT)r)lenrVargv__file__rr)parentrBrcrerrr_module_browsers  rj__main__r))mainzidlelib.idle_test.test_browserF) verbosityexit)run)N)r;r0rVZidlelib.configrZidlelibrZ idlelib.treerrrZidlelib.windowrr/rrr>rGrjr?rfrgZunittestrlZidlelib.idle_test.htestrprrrr s$    M4-