
    r@;jP                         d dl Z d dlZd dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z	d dl
mZmZmZ ddlmZmZ dad Zeej        _         G d d	ej                  Z G d
 dej                  Z e            ZdS )    N)Sequence)afxresdialogdocview   )appdbgcommands.pyc                     |                                  }ddlm} |                    |           ddlm} |                    |           d S )Nr   toolmenuhelp)GetSharedMenupywin.frameworkr   SetToolsMenur   SetHelpMenuOtherHelp)self
sharedMenur   r   s       pC:\Users\Administrator\AppData\Local\Temp\2\pip-target-b0z114gj\lib\python\pythonwin/pywin/framework/intpyapp.py_SetupSharedMenu_r      se    ##%%J((((((*%%%$$$$$$j)))))    c                   &    e Zd Zd Zd Zd Zd ZdS )	MainFramec                 *   d| _         t          j                            | |          dk    rdS t          j        t          j        z  t          j        z  t          j	        z  t          j
        z  }|                     t          j                   t          j        | |t          j        z            }|                    dt"          j                   |                    t          j                   |                    t          j                   |                    d           |                     |           ddlm}  ||            |                                 }ddlm} |                    |d           ddlm} |                    |           d S )	Nr   Standard)PrepareControlBarsr   r      r   ) closingr   r   OnCreatewin32conWS_CHILDr   CBRS_SIZE_DYNAMICCBRS_TOPCBRS_TOOLTIPS
CBRS_FLYBYEnableDockingCBRS_ALIGN_ANYwin32uiCreateToolBar
WS_VISIBLEModifyStylecommctrlTBSTYLE_FLATLoadToolBarIDR_MAINFRAMESetWindowTextDockControlBarpywin.debugger.debuggerr   GetMenu r   r   r   r   r   )r   createStructstyletbr   menur   r   s           r   r!   zMainFrame.OnCreate#   s   =!!$55;;2&'o "# 	  	 	60111"41D)DEE
q(/000
w,---
.///
$$$B>>>>>>4    ||~~dA&&&((((((!!$'''''r   c                 0   	 dd l }|j        j        N|j        j        j        r=	 |j        j                            d           n#  t          j                     Y nxY wd S n# t          j        $ r Y nw xY wd| _	        | 
                    d           |                     d            ddlm} |                                 |                     t           j                   |                     t          j                   | j                                        S )Nr   r   ToolbarDefaultr   )pywin.debuggerdebuggercurrentDebuggerpumpingclose	traceback	print_excr*   errorr    SaveBarStateSetActiveViewr   r   FinalizeHelpDestroyControlBarr   AFX_IDW_TOOLBARID_VIEW_TOOLBAR_DBG_obj_OnClose)r   pywinr   s      r   rL   zMainFrame.OnCloseG   s-   	!!!! .:N2: ;*N288;;;;*')))))} 	 	 	D	*+++4   ((((((v5666w:;;;z!!###s(   !A! A A! AA! !A32A3c                     	 |                      |          }n# t          j        $ r Y d S w xY w|                                 d S N)GetControlBarr*   rD   DestroyWindow)r   idbars      r   rH   zMainFrame.DestroyControlBarc   sX    	$$R((CC} 	 	 	FF	s    ++c                     	 |                                  }|                    ||          rdS n# t          j        t          f$ r Y nw xY w| j                            ||          S Nr   )GetActiveView	OnCommandr*   rD   AttributeErrorrK   )r   wparamlparamvs       r   rW   zMainFrame.OnCommandj   s|    	""$$  {{66** q~. 	 	 	D	z##FF333s   */ AAN)__name__
__module____qualname__r!   rL   rH   rW    r   r   r   r   "   sQ        "( "( "(H$ $ $8  4 4 4 4 4r   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	dd	e
e         fd
Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )InteractivePythonAppc                 P   t           j                            |            t          j                                                     |                     | j        t          j                   |                     | j	        t          j
                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t2          j                   |                     | j        t          j                   |                     | j        t          j                   |                     | j        t          j                   d S rO   ) r   CAppHookCommandsr	   DebuggerCommandHandlerHookCommandOnViewBrowser*   ID_VIEW_BROWSEOnFileImportID_FILE_IMPORTOnFileCheckID_FILE_CHECKHookCommandUpdateOnUpdateFileCheck	OnFileRunID_FILE_RUNOnFileLocateID_FILE_LOCATEOnInteractiveWindowID_VIEW_INTERACTIVEOnUpdateInteractiveWindowOnViewOptionsID_VIEW_OPTIONSOnHelpIndexr   ID_HELP_INDEXOnFileSaveAllID_FILE_SAVE_ALLOnViewToolbarDbgrJ   OnUpdateViewToolbarDbgr   s    r   rd   z!InteractivePythonApp.HookCommands   s   d###*,,99;;;*G,BCCC*G,BCCC)7+@AAAt5w7LMMM)<===*G,BCCC173NOOO*G,G	
 	
 	
 	+W-DEEE)6+?@@@+W-EFFF.0KLLLt:G<WXXXXXr   c                     t                      S rO   )r   r~   s    r   CreateMainFramez$InteractivePythonApp.CreateMainFrame   s    {{r   c                     	 ddl m} n# t          $ r Y d S w xY w|                    | j                  }	 |                    dd           |S # |j        $ r Y d S w xY w)Nr   intpydde	PythonwinSystem)r6   r   ImportErrorCreateConversation	ddeServer	ConnectTorD   )r   r   convs      r   MakeExistingDDEConnectionz.InteractivePythonApp.MakeExistingDDEConnection   s    	""""""" 	 	 	44	 **4>::	NN;111K~ 	 	 	44	s   	 
A 
AAc                    	 ddl m} n# t          $ r d | _        d }Y nw xY w||                    |           | _        | j                            d|j                   	 |                                 }|7|                    d           | 	                    t          j        |          dS d S d S #  t          j        t          j                    d           Y dS xY wd S )Nr   r   r   zself.Activate()z+ - error in DDE conversation with Pythonwin)r6   r   r   r   	DDEServerCreateCBF_FAIL_SELFCONNECTIONSr   ExecProcessArgssysargvr*   DisplayTracebackexc_info)r   r   
connections      r   InitDDEzInteractivePythonApp.InitDDE   s   	""""""" 	 	 	!DNHHH	 %//55DNN!!+x/PQQQ!;;==
)OO$5666''*==E q *)EE (LNN$Q   qq!  s   	 AB0 0(Cc                     dt           j        vrAdt           j        vr3dt           j        vr%dt           j        vr|                                 rdS nd | _        t	          j        dt           j                    t          j        	                    |            t	          j
                     t	          j                     ddlm} |                                 |                                  |                                  	 | j                            d           n# t          j        $ r Y nw xY w	 |                     t           j                   d S #  t	          j        t          j                    d	           Y d S xY w)
N/nodde/newz-noddez-newr   zPython interactr<   z% - error processing command line args)r   r   r   r   r*   SetRegistryKeywinverr   rc   InitInstanceCreateDebuggerThreadEnableControlContainerr6   r   %CreateInteractiveWindowUserPreferenceLoadSystemModulesLoadUserModulesframeLoadBarStaterD   r   r   r   r   r   s     r   r   z!InteractivePythonApp.InitInstance   s    CH$$ch&&((ch&&||~~ q "DN"cj""	
 	
 	
 	d### 	$&&& 	&((( 	66888 	    	
	J##$45555} 	 	 	
 D		SX&&&&&	$ G     s    D D-,D-1E (E=c                     t          j                     	 ddlm} |                                 n#  Y nxY w| j         | j                                         d | _        t          j        	                    |           S Nr   r   )
r*   DestroyDebuggerThreadr6   r   DestroyInteractiveWindowr   Shutdownr   rc   ExitInstancer   s     r   r   z!InteractivePythonApp.ExitInstance   s    %'''	""""""--////	D>%N##%%%!DNx$$T***s   0 4c                     t          j                    }|                                 |                                d         t          j        k    r!|                    t          j                   d S d S rU   )r*   GetMainFrameSetForegroundWindowGetWindowPlacementr"   SW_SHOWMINIMIZED
ShowWindow
SW_RESTORE)r   r   s     r   ActivatezInteractivePythonApp.Activate  si     $&&!!#####%%a(H,EEEX011111 FEr   Nargsc           
         t          |          dk     s|d         sd S d}|t          |          k     r||         }|dz  }|                    d          rd|dd          z   }|                    d          s-t          j        ddd                                          }|dz  }|t          |          k     r||         pd}|d	v rn|                    d
          rt          |t          d
          d                    }|r|                    d|z             nddlm} |	                                }|r+|
                    |                    |dz
                       nB|dk    r|dz  }t          j        |          }	t          j                            |	          sGt          j        d                    |	t          j                              dt(          j                   |r|                    d|	d           nt          j                                        |           nx|dk    r|rH|                    d                    |d                    ||dz   d                                         n:ddlm} |                    |d                    ||dz   d                               d S |dk    r|rH|                    d                    |d                    ||dz   d                                         n;ddlm} |                    |d                    ||dz   d                    d           d S |dk    rt5          d          |dk    r2||                    |           nt          j        d           |dz  }nt7          d|z            |t          |          k     d S d S )Nr   r   -/PythonzDefault Arg Typez/editMISSING>   r   r   z/goto:zvfrom pywin.framework import scriptutils
ed = scriptutils.GetActiveEditControl()
if ed: ed.SetSel(ed.LineIndex(%s - 1))scriptutilsz"No such file: {}

Command Line: {}zOpen file for editz"win32ui.GetApp().OpenDocumentFile()z/rundlgzLfrom pywin.framework import scriptutils;scriptutils.RunScript({!r}, {!r}, 1) z/runzLfrom pywin.framework import scriptutils;scriptutils.RunScript({!r}, {!r}, 0)z/appz6/app only supported for new instances of Pythonwin.exez/ddezDThe /dde command can only be used
when Pythonwin is already runningz(Command line argument not recognised: %s)len
startswithr*   GetProfileVallowerintr   r6   r   GetActiveEditControlSetSel	LineIndexwin32apiGetFullPathNameospathisfile
MessageBoxformatGetCommandLiner"   MB_ICONERRORGetAppOpenDocumentFilejoin	RunScriptRuntimeError
ValueError)
r   r   ddeiargTypepargotoliner   edfnames
             r   r   z InteractivePythonApp.ProcessArgs  sG    IIMMaMF#d))mm1gGFA!!#&& , +%%c** !/0' %''  Qc$ii-+DG8yC,,,##H-- HWws8}}788 >HHACKL    .-----$99;;B >		",,x!|"<"<===G##Q 055w~~e,, 
 &>EE!8#:#<#<  - -    ;HHL%LLLMMMMN$$55c::::I%% 	HHHfmm$q1uww-!8!8     .-----))#sxxQUWW/F/FGGGF"" 	KHHfmm$q1uww-!8!8     .-----))#sxxQUWW/F/FJJJF"""L   F""?HHSMMMM&`   Q !Kg!UVVVq #d))mmmmmmr   c                 0    |                      d           d S )Nz,pywin.framework.editor,pywin.framework.stdin)DoLoadModulesr~   s    r   r   z&InteractivePythonApp.LoadSystemModulesq  s    IJJJJJr   c                 d    |d}t          j        dd|          }|                     |           d S )Nzpywin.framework.sgrepmdir   zStartup Modules)r*   r   r   )r   moduleNamesdefaults      r   r   z$InteractivePythonApp.LoadUserModulest  s<    0G!/:KWUUK;'''''r   c                     |sd S |                     d          }|D ]T}	 t          |           #  t          j                     d|z  }t	          |           t          j        |           Y RxY wd S )N,z)Startup import of user module "%s" failed)split
__import__rB   rC   printr*   r   )r   r   modulesmodulemsgs        r   r   z"InteractivePythonApp.DoLoadModules{  s     	F##C(( 	( 	(F(6""""(#%%%AFJc


"3'''''	( 	(s	   /=A.c                 ~    	 t          |dz              d S #  t          d|           t          j                      xY w)N
zERROR executing DDE command: )execr   rB   rC   )r   commands     r   OnDDECommandz!InteractivePythonApp.OnDDECommand  sK    	4     	17;;;!!!s    &<c                    ddl m} t          j        ddd          }|dS 	 |                    t          |t          j        t          j                             dS # t          $ r t          j
        d           Y dS t          $ r t          j
        d           Y dS  t          j                     t          j
        d	           Y dS xY w)
z*Called when ViewBrowse message is receivedr   )browserObject__builtins__zBrowse Python ObjectNz This is no object with this namez(The object has no attribute of that namezThis object can not be browsed)pywin.toolsr   r   GetSimpleInputBrowseeval__main____dict__	NameErrorr*   r   rX   rB   rC   )r   rR   coder   obNames        r   rg   z!InteractivePythonApp.OnViewBrowse  s    ''''''&xAWXX>F	ANN4(98;LMMNNNNN 	C 	C 	CABBBBBB 	K 	K 	KIJJJJJJ	A!!!?@@@@@@s   8A C=C(Cc                 :    ddl m} |                                 dS )zRCalled when a FileImport message is received. Import the current or specified filer   r   N)r6   r   
ImportFiler   rR   r   r   s       r   ri   z!InteractivePythonApp.OnFileImport  s,    !!!!!!     r   c                 :    ddl m} |                                 dS )zDCalled when a FileCheck message is received. Check the current file.r   r   N)r6   r   	CheckFiler   s       r   rk   z InteractivePythonApp.OnFileCheck  s,    !!!!!!r   c                 f    ddl m} |                    |                    d          d u           d S )Nr   r   r   )r6   r   EnableGetActiveFileName)r   cmduir   s      r   rn   z&InteractivePythonApp.OnUpdateFileCheck  s?    !!!!!![22155TABBBBBr   c                     ddl m} t          j        t          j                  dk    }|                    dd|           dS )z*Called when a FileRun message is received.r   r   r   N)r6   r   r   GetKeyStater"   VK_SHIFTr   )r   rR   r   r   showDlgs        r   ro   zInteractivePythonApp.OnFileRun  sJ    !!!!!!&x'899Q>dD'22222r   c                    ddl m} t          j        dt          d          }|d S |at          dd                                          dk    rt          d d         at                              dd          a|                    t                    }|t          j	        d	t          z             d S t          j
                                        |           d S )
Nr   r   z	File namezLocate Python Filer
   .\z The file '%s' can not be located)r6   r   r   r   lastLocateFileNamer   replaceLocatePythonFiler*   r   r   r   )r   rR   r   r   namenewNames         r   rq   z!InteractivePythonApp.OnFileLocate  s    !!!!!! $+-A
 
 <F! bcc"((**e33!3CRC!8/77TBB../ABB?ADVVWWWWWN--g66666r   c                    t          j                     t          j        d          }ddlm} |                    |                                           ddlm	} |                    |
                                           g }|                                 D ]8}	 |j        }n# t          $ r Y w xY w|                     |                       9	 ddlm}	 n# t"          $ r d }	Y nw xY w|	'|                    |	                                           |D ]}
|                    |
           |                                t*          j        k    rqt          j        dd           t          j        d           t          j                                        t*          j        dd           t          j        d           d S d S )NzPythonwin Optionsr   )
ideoptionsr   r   )configuiz!Applying configuration changes...)r*   InitRichEditr   PropertySheetpywin.dialogsr  AddPageOptionsPropPager6   r   ToolMenuPropPageGetDocTemplateListGetPythonPropertyPagesrX   extendr=   r  r   appendDebuggerOptionsPropPageDoModalr"   IDOKSetStatusTextDoWaitCursorr   SendMessageToDescendantsWM_WININICHANGE)r   rR   r   sheetr  r   pagestemplategetterr  pages              r   rv   z"InteractivePythonApp.OnViewOptions  s   $%899,,,,,,j0022333h//11222 //11 	# 	#H!8!    LL""""	/////// 	 	 	HHH	LL99;;<<< 	  	 DMM$==??hm++!"EqIII ### "";;(!Q    ##### ,+s$   B##
B0/B0C C('C(c                 :    ddl m} |                                 d S r   )r6   r   ToggleInteractiveWindow)r   rR   r   r   s       r   rs   z(InteractivePythonApp.OnInteractiveWindow  s,    ((*****r   c                     	 t           j        d         }|                                }n# t          $ r d}Y nw xY w|                                 |                    |           d S )Nzpywin.framework.interactr   )r   r   IsInteractiveWindowVisibleKeyErrorr  SetCheck)r   r  r   states       r   ru   z.InteractivePythonApp.OnUpdateInteractiveWindow  sp    	{#=>H7799EE 	 	 	EEE	us   &) 88c                    ddl m} d}|                                D ]U}|                                r?|                                r+dx}}|                    |                                           Vt          j        d|z  d           d S )Nr   )editorTemplater   z%d documents saved)pywin.framework.editorr4  GetDocumentList
IsModifiedGetPathNameOnSaveDocumentr*   r#  )r   rR   r   r4  numdocs         r   rz   z"InteractivePythonApp.OnFileSaveAll  s    999999!1133 	6 	6C~~ 6COO$5$5 6c""3??#4#45552S8!<<<<<r   c                 `    |dk    r't          j                                        |           S d S )Nr   )r*   r   
OnBarCheck)r   rR   r   s      r   r|   z%InteractivePythonApp.OnViewToolbarDbg  s2    199+--88<<<< 9r   c                 |    t          j                                        |           |                    d           d S rU   )r*   r   OnUpdateControlBarMenur  )r   r  s     r   r}   z+InteractivePythonApp.OnUpdateViewToolbarDbg  s2    55e<<<Qr   c                 :    ddl m} |                                 d S )Nr   r   )r6   r   SelectAndRunHelpFile)r   rR   r   r   s       r   rx   z InteractivePythonApp.OnHelpIndex#  s,    !!#####r   rO   )r\   r]   r^   rd   r   r   r   r   r   r   r   strr   r   r   r   r   rg   ri   rk   rn   ro   rq   rv   rs   ru   rz   r|   r}   rx   r_   r   r   ra   ra   |   s       
Y Y Y&      66 6 6p+ + +2 2 2aW aW aW aW aW aWFK K K( ( ( (( ( (   A A A"! ! !     C C C
3 3 37 7 7.)$ )$ )$V+ + +  	= 	= 	== = =  $ $ $ $ $r   ra   )r   r   rB   collections.abcr   r   r.   r   r"   r*   	pywin.mfcr   r   r   r6   r   r	   r  r   DocTemplater   rc   ra   thisAppr_   r   r   <module>rG     s:   
			 



     $ $ $ $ $ $      - - - - - - - - - -         * * * ):  %W4 W4 W4 W4 W4 W4 W4 W4tj$ j$ j$ j$ j$38 j$ j$ j$Z 

 
 r   