
    %
i:                    Z   d 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	 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 ddlmZ e	rdd	lmZ ddZddZd Z G d dej                  Z G d de          ZddZdZdZ dZ! G d dej"                  Z#ddZ$d Z%d Z&ddZ'd Z(dS )z@The PythonWin application code. Manages most aspects of MDI, etc    )annotationsN)TYPE_CHECKING)afxresdialogwindow)WinApp   )scriptutils)Literal c                    |\  }}}}|r|dz  }t          j        | |dz   |           t          j        | |dz   |           t          j        | |dz   |           t          j        | |dz   |           dS )zWrites a rectangle to an INI file
    Args: section = section name in the applications INI file
          rect = a rectangle in a (cy, cx, y, x) tuple
                 (same format as CREATESTRUCT position tuples). lefttoprightbottomN)win32uiWriteProfileVal)sectionrectstater   r   r   r   s          C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\pythonwin/pywin/framework/app.pySaveWindowSizer      s    
  $D#uf GUV^T:::GUU]C888GUW_e<<<GUX%5v>>>>>    c                    |r|dz  }t          j        | |dz   d          }t          j        | |dz   d          }t          j        | |dz   d          }t          j        | |dz   d          }||||fS )zTLoads a section from an INI file, and returns a rect in a tuple (see SaveWindowSize)r   r   r   r   r   r   )r   GetProfileVal)r   r   r   r   r   r   s         r   LoadWindowSizer   ,   s      %&.!<<D


:
:C!'57?A>>E"7EH,<a@@F#uf%%r   c                b    | d         | d         z
  | d         | d         z
  | d         | d         fS )N   r	      r    )r   s    r   RectToCreateStructRectr"   7   s3    Gd1gtAwa0$q'47CCr   c                  ~    e Zd ZdZej        ej        ej        ej        e	j
        e	j        fZd
dZd Zd Zd Zd Zd	S )	MainFramezMain WindowreturnLiteral[-1, 0, 1]c                .    |                                   dS Nr   )_CreateStatusBar)selfcss     r   OnCreatezMainFrame.OnCreateI   s    qr   c                
   t          j        |           | _        | j                            | j                   |                     | j        t           j                   |                     | j        t           j                   d S N)	r   CreateStatusBar	statusBarSetIndicatorsstatusBarIndicatorsHookCommandUpdateOnUpdatePosIndicatorID_INDICATOR_LINENUMID_INDICATOR_COLNUMr*   s    r   r)   zMainFrame._CreateStatusBarM   sk     066$$T%=>>>t8':VWWWt8':UVVVVVr   c                   t          j                    }d}|	 |                                \  }}|                    |          }||                    |          z
  }|j        t          j        k    rdd|dz   fz  }n
dd|dz   fz  }n# t          j        $ r Y nw xY w|	                    |           |
                                 d S )Nz     z%0*d   r	   r   )r
   GetActiveEditControlGetSelLineFromChar	LineIndexm_nIDr   r5   errorSetTextEnable)r*   cmduieditControlvalue	startCharendCharlineNocolNos           r   r4   zMainFrame.OnUpdatePosIndicatorS   s    !688"
%0%7%7%9%9"	7$11)<<+"7"7"?"??;'">>>"a!_4EE"a^3E=   es   A.B BBc           
     &   | j                             |          }t          | j                  }|| _        |d         |d         z
  rJt          |          }|d         |d         |d         |d         ||d         |d         |d         |d         f	}|S )	Nr    r   r	   r   r9            )_obj_PreCreateWindowr   
sectionPos	startRectr"   )r*   ccposr   s       r   rN   zMainFrame.PreCreateWindowe   s    Z''++T_--q6CF? 	N)#..DA1r!ubeT2a5"Q%A1MB	r   c                z    |                                  d         }|| j        k    rt          | j        |           dS )N   r   )GetWindowPlacementrP   r   rO   )r*   msgrectNows      r   	OnDestroyzMainFrame.OnDestroyn   s<    ))++A.dn$$4?G444qr   N)r%   r&   )__name__
__module____qualname__rO   r   ID_SEPARATORID_INDICATOR_CAPSID_INDICATOR_NUMID_INDICATOR_SCRLr   r5   r6   r2   r,   r)   r4   rN   rX   r!   r   r   r$   r$   >   s        J  $#   W W W  $      r   r$   c                      e 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 Zd Zd Zd Zd Zd ZdS )CAppzA class for the applicationc                n    d | _         t          j        | t          j                               g | _        d S r.   )oldCallbackCallerr   __init__r   GetAppidleHandlersr7   s    r   rd   zCApp.__init__y   s2    !%gn..///r   c                    t                       t          j        ddd          }t          j        |           |                                  |                                  dS )zCalled to crank up the appSettingszRecent File List Size
   N)	HookInputr   r   LoadStdProfileSettingsLoadMainFrameSetApplicationPaths)r*   numMRUs     r   InitInstancezCApp.InitInstance~   s]    &z3JBOO&v...
 	  """""r   c                   t          j        d           	 t          j        | j                   n# t          $ r Y nw xY w| j        r| `d| _        g | _        | j        r| j                            d           d| _        dS )z5Called as the app dies - too late to prevent it here!zApplication shutdown
Nr   )	r   OutputDebugInstallCallbackCallerrc   AttributeErrorframerf   rM   AttachObjectr7   s    r   ExitInstancezCApp.ExitInstance   s    4555	)$*@AAAA 	 	 	D	! 	'&
: 	*J##D)))
qs   0 
==c                    || j         v S r.   )rf   r*   handlers     r   HaveIdleHandlerzCApp.HaveIdleHandler   s    $+++r   c                :    | j                             |           d S r.   )rf   appendrx   s     r   AddIdleHandlerzCApp.AddIdleHandler         )))))r   c                :    | j                             |           d S r.   )rf   removerx   s     r   DeleteIdleHandlerzCApp.DeleteIdleHandler   r~   r   c                D   	 d}| j         d d          }|D ]y}	  |||          }ne#  t          d|d           t          j                     t          d           	 |                     |           n# t
          $ r Y nw xY wd}Y nxY w|p|}z|S # t          $ r Y d S w xY w)Nr   zIdle handler z failedzIdle handler removed from list)rf   print	traceback	print_excr   
ValueErrorKeyboardInterrupt)r*   countrethandlersry   thisRets         r   OnIdlezCApp.OnIdle   s    	C(+H# % %
 %ggu55GG <'<<<==='))):;;;..w7777%   GGGnWJ  	 	 	DD	sI   B %B 7BA32B3
B =B?B  BB 
BBc                    t                      S r.   )r$   r7   s    r   CreateMainFramezCApp.CreateMainFrame   s    {{r   c                   |                                  | _        |                     | j                   | j                            t          j        t          j                   | j                                         | j        	                    t	          j
                               | j                                         |                                  dS )z"Create the main applications frameN)r   rt   SetMainFrame	LoadFramer   IDR_MAINFRAMEwin32conWS_OVERLAPPEDWINDOWDragAcceptFiles
ShowWindowGetInitialStateRequestUpdateWindowHookCommandsr7   s    r   rl   zCApp.LoadMainFrame   s    ))++
$*%%%
W2H4PQQQ
""$$$
g<>>???
!!!r   c                   	 |t           j        k    r!t          j        d          }t          j        }n t          j        d          }t          j        }|t          j        d           d S ddlm	} |
                    ||           d S #  t          j                    \  }}}t          j        d| d|            d }Y d S xY w)NzPythonwin ReferencezMain Python Documentationz The help file is not registered!r	   )helpz(Internal error in help file processing
z: )r   ID_HELP_GUI_REFregutilGetRegisteredHelpFiler   HELP_CONTENTSHELP_FINDER
MessageBoxr   r   OpenHelpFilesysexc_info)	r*   idcodehelpFilehelpCmdr   tvtbs	            r   OnHelpzCApp.OnHelp   s    	W,,,"89NOO"0"89TUU"."#EFFFFF""""""!!(G44444	|~~HAq"TATTQRTTUUUBBBBs   A'B	 +B	 	5Cc                .    |D ]}t          |           d S r.   )
__import__)r*   modulesmodules      r   DoLoadModuleszCApp.DoLoadModules   s.      	 	Fv	 	r   c                   | 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                   d S r.   )rt   HookMessageOnDropFilesr   WM_DROPFILESHookCommandHandleOnFileOpenr   ID_FILE_OPENHandleOnFileNewID_FILE_NEW	OnFileMRUID_FILE_MRU_FILE1OnHelpAboutID_APP_ABOUTr   ID_HELP_PYTHONr   	GetWindowGW_CHILDOnRClickWM_RBUTTONDOWNr7   s    r   r   zCApp.HookCommands   s   
t/1FGGG.0DEEE-w/BCCC)BCCC)7+?@@@g&<===g&=>>>
X.//;;M82	
 	
 	
 	
 	
r   c                2   g }t          j        ddd                              d          }|D ]<}t          |          dk    r'|                    t          j        |                     =t          dd          D ]}t          j        dd|z  d                              d          }t          |          dk    r n@|D ]<}t          |          dk    r'|                    t          j        |                     =|t          j        z   t          _        d S )	NPythonzApplication Pathr   ;r   r	      zApplication Path %d)	r   r   splitlenr|   FullPathranger   path)r*   new_pathapppathr   	extra_nums        r   rm   zCApp.SetApplicationPaths   s   '2DbIIOOPSTT 	8 	8D4yy1}} 0 6 6777q" 	< 	<I+/);R eCjj  7||q   < <t99q==OOG$4T$:$:;;;< ch&r   c                    t          j        t           j                                      d          }|                    |d                    dS )zHandle right click messager   r9   )r   LoadMenuIDR_TEXTTYPE
GetSubMenuTrackPopupMenu)r*   paramsmenus      r   r   zCApp.OnRClick   sB      455@@CCF1I&&&qr   c                l   |d         }| j                                          t          j        |          }	 t	          d|          D ]=}t          j        ||          }t          j                                        |           >	 t          j        |           n# t          j        |           w xY wdS )z-Handle a file being dropped from file managerr    r   )	rt   SetActiveWindowwin32apiDragQueryFiler   r   re   OpenDocumentFile
DragFinish)r*   rV   	hDropInfonFilesiFilefileNames         r   r   zCApp.OnDropFiles  s    F	
""$$$'	22	+q&)) < <#1)UCC  11(;;;;< 	****H	****qs   AB B1c                    t          j                    |t           j        z
           }t          j                                        |           dS )z*Called when a File 1-n message is receivedN)r   GetRecentFileListr   re   r   )r*   r   r   r   s       r   r   zCApp.OnFileMRU+  s?    ,..rG4M/MN))(33333r   c                P    t          j                                                     dS )z(Called when FileOpen message is receivedN)r   re   
OnFileOpenr*   r   r   s      r   r   zCApp.HandleOnFileOpen0  s"    ##%%%%%r   c                P    t          j                                                     dS )z'Called when FileNew message is receivedN)r   re   	OnFileNewr   s      r   r   zCApp.HandleOnFileNew4  s"    ""$$$$$r   c                p    t          j                     t                      }|                                 dS )zFCalled when HelpAbout message is received.  Displays the About dialog.N)r   InitRichEditAboutBoxDoModal)r*   r   r   dlgs       r   r   zCApp.OnHelpAbout8  s+    jjr   N)rY   rZ   r[   __doc__rd   ro   rv   rz   r}   r   r   r   rl   r   r   r   rm   r   r   r   r   r   r   r!   r   r   ra   ra   v   s8       !!  

# 
# 
#  $, , ,* * ** * *  *      &  
 
 
' ' '$    J4 4 4
& & &% % %    r   ra   c                J   	 t          j        t          j        |           }t          j        ||          d         S # t           j        $ rW 	 t          j        t          j        |           }t          j        ||          d         cY S # t           j        $ r |cY cY S w xY ww xY wr(   )r   
RegOpenKeyr   HKEY_CURRENT_USERRegQueryValueExr?   HKEY_LOCAL_MACHINE)keyvaldefaulthkeys       r   _GetRegistryValuer   ?  s    "8#=sCC'c22155>   	&x'BCHHD+D#66q9999~ 	 	 	NNNNN		s-   9< B"9BB"BB"BB"zIScintilla is Copyright 1998-2020 Neil Hodgson (https://www.scintilla.org)zMThis program uses IDLE extensions by Guido van Rossum, Tim Peters and others.zThanks to the following people for making significant contributions: Roger Upole, Sidnei da Silva, Sam Rushing, Curt Hagenlocher, Dave Brennan, Roger Burnham, Gordon McMillan, Neil Hodgson, Laramie Leavitt. (let me know if I have forgotten you!)c                  .    e Zd Zej        fdZd Zd ZdS )r   c                F    t           j                            | |           d S r.   )r   Dialogrd   )r*   idds     r   rd   zAboutBox.__init__S  s     tS)))))r   c                   d                     t          j        t          j        t          t
          t                    }|                     t          j        |           dd l	}|
                                d         }t          j                            |d          }	 t          |          5 }d|                                                                z  }d d d            n# 1 swxY w Y   n# t"          $ r d }Y nw xY w|st%          j        d| dd	           |                     t          j        |           |                     | j        t          j                   d S )
NzSPythonwin - Python IDE and GUI Framework for Windows.

{}

Python is {}

{}

{}

{}r   platlibzpywin32.version.txtzpywin32 build %sz'Could not read pywin32's version from ''r	   )
stacklevel)formatr   	copyrightr   	scintillaidlecontributorsSetDlgItemText	IDC_EDIT1	sysconfig	get_pathsosr   joinopenreadstripOSErrorwarningswarnIDC_ABOUT_VERSIONr   OnButHomePageIDC_BUTTON1)r*   textr  site_packagesversion_pathfvers          r   OnInitDialogzAboutBox.OnInitDialogV  s   nuus}i|
 
 	G-t444!++--i8w||M3HII	l## <q(16688>>+;+;;< < < < < < < < < < < < < < < 	 	 	CCC	 	MI,IIIVW    	G5s;;;+W-@AAAAAs6   C- +*C!C- !C%%C- (C%)C- -C<;C<c                \    |t           j        k    rt          j        dddd dd           d S d S )Nr   r  z#https://github.com/mhammond/pywin32r   r	   )r   
BN_CLICKEDr   ShellExecuter   s      r   r  zAboutBox.OnButHomePagek  sE    8&&&!6@$A     '&r   N)rY   rZ   r[   r   IDD_ABOUTBOXrd   r  r  r!   r   r   r   r   R  sO        "/ * * * *B B B*    r   r   c                    	 t           j                                         t           j                                         n#  Y nxY w| d} t	          j        |           }|t          d          |S )zProvide input() for gui appsNr   zoperation cancelled)r   stdoutflushstderrr   GetSimpleInputr   )promptr   s     r   
Win32Inputr$  r  ss    

~


'
'C
{ 5666Js	   <? Ac                 (    t           t          _        d S r.   )r$  builtinsinputr!   r   r   rj   rj     s    HNNNr   c                     dt           j        v S )z7Returns true if we currently have a good gui available.zpywin.framework.startup)r   r   r!   r   r   HaveGoodGUIr)    s    $33r   c                \    | ddl m} |j        }  |                                              dS )z!Creates a default GUI environmentNr	   )intpyapp)r   r+  InteractivePythonAppro   )appClassr+  s     r   CreateDefaultGUIr.    s@    0HJJr   c                 B    t                      } | st                       | S )z:Checks and creates if necessary a default GUI environment.)r)  r.  )rcs    r   CheckCreateDefaultGUIr1    s$    	B Ir   )r   r.   ))r   
__future__r   r&  r	  r   r   r  typingr   r   r   r   r   	pywin.mfcr   r   r   pywin.mfc.threadr   r   r
   typing_extensionsr   r   r   r"   MDIFrameWndr$   ra   r   r  r  r  r   r   r$  rj   r)  r.  r1  r!   r   r   <module>r8     s2  
 C B " " " " " "  				 



                      , , , , , , , , , , # # # # # #       *))))))? ? ? ?& & & &D D D5 5 5 5 5" 5 5 5pF F F F F6 F F FR
 
 
 
 X	V G    v}   @         4 4 4
       r   