3 Õì2a’0ã@sèddlZddlZddlmZmZddlmZmZmZm Z m Z ddl m Z m Z mZmZddlmZddlmZGdd„deƒZGd d „d eƒZGd d „d eƒZGd d„deƒZedkräddlmZedddd�ddlmZeeeƒdS)éN)Ú executableÚplatform)ÚToplevelÚ StringVarÚWÚEÚS)ÚFrameÚButtonÚEntryÚLabel)Ú filedialog)ÚFontcs^eZdZdidddœdd„Zdd„Zdd d „Zd d „Zdd d„Zddd„Z‡fdd„Z ‡Z S)ÚQueryÚF)Útext0Ú used_namesÚ_htestÚ_utestc CsXtj||ƒ|jƒ||_|j|ƒ||_||_||_|j|ƒ|j ƒ|j j ddƒ}|dkr”y|j j dd|j ddƒWn YnX|j d|jƒ|j d |jƒ|jd |jƒ|j d |jƒ|j d |jƒ|jd d d�|jƒ|jƒ|jd|jƒ|jƒd|jƒd|jƒ|�s2|jƒd|jƒdndfƒ|�sT|jƒ|jƒdS)NÚtkÚwindowingsystemZaquaz!::tk::unsupported::MacWindowStyleZstyleZ moveableModalrz z ZWM_DELETE_WINDOWz z F)ZheightÚwidthz+%d+%déé–)rÚ__init__ZwithdrawÚparentÚtitleÚmessagerrZ transientZgrab_setrZcallZ_wZbindÚcancelZprotocolÚokZ resizableÚcreate_widgetsZupdate_idletasksZgeometryZ winfo_rootxZ winfo_widthZwinfo_reqwidthZ winfo_rootyZ winfo_heightZwinfo_reqheightZ deiconifyZ wait_window) Úselfrrrrrrrr©r"ú*/opt/alt/python36/lib64/python3.6/query.pyr%sB    *zQuery.__init__cCs.t|dd�|_}|jdddd�|jddd�t|dd |jd �}t||jƒ|_t |d |jd �|_ |j j ƒt d d|j d�|_t|dd|jd�|_t|dd|jd�|_t|d|jd�|_|jddddtd�|j jddddttddgd�|jjddddttd�|jjdddd�|jjdddd�dS)Né )ZpaddingrZnews)ÚcolumnÚrowÚstickyé)ZweightÚwÚleft)ÚanchorÚjustifyÚtexté)rÚ textvariableZ TkCaptionFontT)ÚnameÚexistsÚrootú Úred)r-Ú foregroundÚfontZOKZactive)r-ÚdefaultÚcommandZCancel)r-r8éé)r%r&Ú columnspanÚpadxr')r%r&r;r<r'Úpadyréc)r%r&r<)r ÚframeÚgridZgrid_columnconfigurer rrrZentryvarr ÚentryÚ focus_setrrÚ error_fontÚ entry_errorr rZ button_okrZ button_cancelrr)r!r?Z entrylabelr"r"r#r Ws.     zQuery.create_widgetsNcCsd||p|jd<dS)NzERROR: r-)rD)r!rZwidgetr"r"r#Ú showerrorsszQuery.showerrorcCs.d|jd<|jjƒjƒ}|s*|jdƒdS|S)Nrr-z blank line.)rDrAÚgetÚstriprE)r!rAr"r"r#Úentry_okws   zQuery.entry_okcCs.|jƒ}|dk r ||_|jƒn |jjƒdS)N)rHÚresultÚdestroyrArB)r!ÚeventrAr"r"r#r€s  zQuery.okcCsd|_|jƒdS)N)rIrJ)r!rKr"r"r#r�sz Query.cancelcs|jƒtƒjƒdS)N)Z grab_releaseÚsuperrJ)r!)Ú __class__r"r#rJ’sz Query.destroy)N)N)N) Ú__name__Ú __module__Ú __qualname__rr rErHrrrJÚ __classcell__r"r")rMr#r s1  rcs,eZdZdddœ‡fdd„ Zdd„Z‡ZS)Ú SectionNameF)rrcstƒj||||||d�dS)N)rrr)rLr)r!rrrrrr)rMr"r#r›szSectionName.__init__cCs`d|jd<|jjƒjƒ}|s*|jdƒdSt|ƒdkrD|jdƒdS||jkr\|jdƒdS|S)Nrr-zno name specified.r.z"name is longer than 30 characters.zname is already in use.)rDrArFrGrEÚlenr)r!r0r"r"r#rH s      zSectionName.entry_ok)rNrOrPrrHrQr"r")rMr#rR—srRcs,eZdZdddœ‡fdd„ Zdd„Z‡ZS)Ú ModuleNameF)rrcstƒj||||||d�dS)N)rrr)rLr)r!rrrrrr)rMr"r#r´szModuleName.__init__cCsÚd|jd<|jjƒjƒ}|s*|jdƒdSytjj|ƒ}Wn2tt fk rl}z|jt |ƒƒdSd}~XnX|dkr„|jdƒdSt |j tj jƒs¢|jdƒdSy|j j|ƒ}Wn"tk rÔ|jd|d�dSX|S)Nrr-zno name specified.zmodule not foundznot a source-based modulez$loader does not support get_filename)r)rDrArFrGrEÚ importlibÚutilÚ find_specÚ ValueErrorÚ ImportErrorÚstrÚ isinstanceÚloaderÚabcÚ SourceLoaderÚ get_filenameÚAttributeError)r!r0ÚspecÚmsgZ file_pathr"r"r#rH¹s.    zModuleName.entry_ok)rNrOrPrrHrQr"r")rMr#rT°srTcs\eZdZddidddœ‡fdd„ Z‡fdd„Zdd „Zd d „ZejZ d d „Z dd„Z‡Z S)Ú HelpSourcerF)ÚmenuitemÚfilepathrrrc s(||_d}tƒj|||||||d�dS)NzName for item on Help menu:)rrrr)rerLr) r!rrrdrerrrr)rMr"r#rÙs zHelpSource.__init__csÔtƒjƒ|j}t|dddd�}t||jƒ|_t||jdd�|_t |dd|j d �}t|d d |j d �|_ |j d ddddd gtd�|jj d dddttdd gd�|j dddttd�|j j d dddttd�dS)Nr)r*z,Help File Path: Enter URL or browse for file)r+r,r-é()r/rZBrowseé)r-rr8r3r4)r-r5r6rr$r9r:)r%r&r;r<r=r'é r)r%r&r;r<r'r=)r%r&r<r'é )r%r&r;r<r')rLr r?r rreÚpathvarr Úpathr Ú browse_filerCÚ path_errorr@rrr)r!r?Z pathlabelZbrowse)rMr"r#r æs"    zHelpSource.create_widgetscCstj||d�j||d�S)N)rÚ filetypes)Z initialdirZ initialfile)r ZOpenZshow)r!rnZinitdirZinitfiler"r"r#Ú askfilenameúszHelpSource.askfilenamecCs˜dddddg}|jjƒ}|r.tjj|ƒ\}}nHd}tdd …d krntjjtjjtƒdƒ}tjj |ƒsvtj ƒ}ntj ƒ}|j |||ƒ}|r”|jj |ƒdS)Nú HTML Filesú *.htm *.htmlÚTEXTú PDF Filesú*.pdfúWindows Help Filesú*.chmú Text Filesú*.txtú All FilesÚ*r9ÚwinZDoc)rprqrr)rsrtrr)rurv)rwrxrr)ryrz) rjrFÚosrkÚsplitrÚjoinÚdirnamerÚisdirÚgetcwdroÚset)r!rnrkÚdirÚbaseÚfiler"r"r#rls"   zHelpSource.browse_filecCs||jjƒjƒ}|s$|jd|jƒdS|jd ƒsx|dd…dkrJ|dd…}tjj|ƒsh|jd|jƒdStdkrxd|}|S) Nzno help file path specified.úwww.Úhttpr:zfile:zhelp file path does not exist.Údarwinzfile://)r†r‡) rkrFrGrErmÚ startswithr|r1r)r!rkr"r"r#Úpath_oks   zHelpSource.path_okcCs@d|jd<d|jd<|jƒ}|jƒ}|dks4|dkr8dS||fS)Nrr-)rDrmÚitem_okrŠ)r!r0rkr"r"r#rH*s   zHelpSource.entry_ok) rNrOrPrr rorlrRrHr‹rŠrQr"r")rMr#rcÕs rcÚ__main__)Úmainzidlelib.idle_test.test_queryrF)Ú verbosityÚexit)Úrun)rUr|ÚsysrrZtkinterrrrrrZ tkinter.ttkr r r r r Z tkinter.fontrrrRrTrcrNZunittestr�Zidlelib.idle_test.htestr�r"r"r"r#Ús  w%^