î
\á[\  ã               @   s‰   d  Z  d d l Z d d l Z d d l Td d l j Z d d l j Z	 Gd d „  d e
 ƒ Z e d k r… d d l m Z e e ƒ n  d S)zKDialog to specify or edit the parameters for a user configured help source.é    N)Ú*c               @   ss   e  Z d  Z d d d 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)ÚGetHelpSourceDialogÚ Fc             C   sO  t  j |  | ƒ |  j d d ƒ |  j d t d t ƒ |  j | ƒ |  j | ƒ |  j ƒ  |  j d |  j	 ƒ | |  _
 d |  _ |  j ƒ  |  j j | ƒ |  j j | ƒ |  j ƒ  |  j ƒ  |  j d | j ƒ  | j ƒ  d |  j ƒ  d | j ƒ  | s| j ƒ  d |  j ƒ  d n d	 f ƒ |  j ƒ  |  j d
 |  j ƒ |  j ƒ  d S)a2  Get menu entry and url/ local file location for Additional Help

        User selects a name for the Help resource and provides a web url
        or a local file as its source.  The user can enter a url or browse
        for the file.

        _htest - bool, change box location when running htest
        Úborderwidthé   ZheightÚwidthZWM_DELETE_WINDOWNz+%d+%dé   é–   z<Return>)ÚToplevelÚ__init__Z	configureZ	resizableZFALSEÚtitleZ	transientZgrab_setZprotocolÚCancelÚparentÚresultÚCreateWidgetsÚmenuÚsetÚpathZwithdrawZupdate_idletasksZgeometryZwinfo_rootxZwinfo_widthZwinfo_reqwidthZwinfo_rootyZwinfo_heightZwinfo_reqheightZ	deiconifyZbindÚOkZwait_window)Úselfr   r   ZmenuItemZfilePathZ_htest© r   ú2/usr/lib/python3.4/idlelib/configHelpSourceEdit.pyr      s.    	
		


		0
zGetHelpSourceDialog.__init__c          
   C   sm  t  |  ƒ |  _ t  |  ƒ |  _ t  |  ƒ |  _ t |  d d d t ƒ|  _ |  j j d t d t	 d t
 ƒ t |  j d t d t d	 d
 ƒ} t |  j d |  j d d ƒ|  _ |  j j ƒ  t |  j d t d t d	 d ƒ} t |  j d |  j d d ƒ|  _ |  j j ƒ  | j d t d d d d ƒ |  j j d t d d d d ƒ | j d t d d d d ƒ |  j j d t d d d d ƒ t |  j d	 d d d d |  j ƒ} | j d d ƒ t |  ƒ } | j d t d t ƒ t | d	 d d d d t d |  j ƒ|  _ |  j j d d d d d d d d ƒ t | d	 d d d d |  j ƒ|  _ |  j j d d d d d d d d ƒ d  S)Nr   r   ZreliefZsideÚexpandZfillZanchorZjustifyÚtextz
Menu Item:Ztextvariabler   é   z,Help File Path: Enter URL or browse for fileé(   Zpadxr   Zpadyé   ZBrowseé   ZcommandZOKÚdefaultÚrowr   Úcolumnr   é   )Z	StringVarr   r   ZfontSizeZFrameZGROOVEZ	frameMainZpackZTOPZTRUEZBOTHZLabelÚWZLEFTZEntryÚ	entryMenuÚ	focus_setÚ	entryPathZButtonÚ
browseFileZBOTTOMÚXZACTIVEr   ZbuttonOkZgridr   ZbuttonCancel)r   Z	labelMenuZ	labelPathZbrowseButtonZframeButtonsr   r   r   r   /   s<    		%z!GetHelpSourceDialog.CreateWidgetsc             C   s  d d d d d g } |  j  j ƒ  } | rE t j  j | ƒ \ } } ns d  } t j d  d … d k r¬ t j  j t j  j t j ƒ d ƒ } t j  j	 | ƒ s¸ t j
 ƒ  } q¸ n t j
 ƒ  } t j d |  d | ƒ } | j d | d | ƒ } | r|  j  j | ƒ n  d  S)Nú
HTML Filesú*.htm *.htmlÚTEXTú	PDF Filesú*.pdfúWindows Help Filesú*.chmú
Text Filesú*.txtú	All Filesr   r   ÚwinZDocr   Ú	filetypesZ
initialdirZinitialfile)r(   r)   r*   )r+   r,   r*   )r-   r.   )r/   r0   r*   )r1   r   )r   ÚgetÚosÚsplitÚsysÚplatformÚjoinÚdirnameÚ
executableÚisdirÚgetcwdÚtkFileDialogZOpenZshowr   )r   r3   r   ÚdirÚbaseZ
opendialogÚfiler   r   r   r&   O   s$    	$zGetHelpSourceDialog.browseFilec             C   sŸ   d } |  j  j ƒ  } | j ƒ  | sW t j d d d d d |  ƒ |  j j ƒ  d } nD t | ƒ d k r› t j d d d d	 d |  ƒ |  j j ƒ  d } n  | S)
z3Simple validity check for a sensible menu item nameTr   zMenu Item ErrorÚmessagezNo menu item specifiedr   Fr   z(Menu item too long:
Limit 30 characters.)r   r4   ÚstripÚtkMessageBoxÚ	showerrorr#   r$   Úlen)r   ZmenuOkr   r   r   r   ÚMenuOkf   s     
		zGetHelpSourceDialog.MenuOkc             C   sÚ   d } |  j  j ƒ  } | j ƒ  | sW t j d d d d d |  ƒ |  j j ƒ  d } n | j d ƒ ri nm | d
 d … d k r’ | d d
 … } n  t j  j	 | ƒ sÖ t j d d d d d |  ƒ |  j j ƒ  d } n  | S)z(Simple validity check for menu file pathTr   zFile Path ErrorrB   zNo help file path specified.r   Fúwww.ÚhttpNr   zfile:zHelp file path does not exist.)rH   rI   )
r   r4   rC   rD   rE   r%   r$   Ú
startswithr5   Úexists)r   ZpathOkr   r   r   r   ÚPathOkz   s(    
		zGetHelpSourceDialog.PathOkNc             C   sª   |  j  ƒ  r¦ |  j ƒ  r¦ |  j j ƒ  j ƒ  |  j j ƒ  j ƒ  f |  _ t j d k r™ |  j d } | j	 d ƒ rs q™ t
 |  j ƒ |  _ d | |  j d <n  |  j ƒ  n  d  S)NÚdarwinr!   Úwwwúfile:úhttp:zfile://)rN   rO   rP   )rG   rL   r   r4   rC   r   r   r7   r8   rJ   ÚlistÚdestroy)r   Úeventr   r   r   r   r   ’   s    zGetHelpSourceDialog.Okc             C   s   d  |  _  |  j ƒ  d  S)N)r   rR   )r   rS   r   r   r   r       s    	zGetHelpSourceDialog.Cancel)
Ú__name__Ú
__module__Ú__qualname__r   r   r&   rG   rL   r   r   r   r   r   r   r   
   s   $ r   Ú__main__)Úrun)Ú__doc__r5   r7   ZtkinterZtkinter.messageboxZ
messageboxrD   Ztkinter.filedialogZ
filedialogr>   r
   r   rT   Zidlelib.idle_test.htestrX   r   r   r   r   Ú<module>   s   
š