a „oeª9ã@s²ddlZddlZddlZddlZddlZddlZddlmZddlm Z m Z dZ dZ dZ dZejdZddlZejjjZGdd „d eƒZddlZddlZGd d „d ejjjƒZdS) éN)ÚGetEditorOption)ÚdocviewÚobjectéééiÏc@steZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„ZdS)ÚEditorDocumentBasecCsftddƒ|_d|_d|_d|_tdtƒ|_t|ƒ|_|j  ¡tddƒ|_ d|_ t   ||| ¡¡dS)Nz Auto Reloadrrz Backup TypezSource Control ModuleÚ)rÚ bAutoReloadÚbDeclinedReloadÚfileStatÚbReportedFileNotFoundÚBAK_DOT_BAK_BAK_DIRÚ bakFileTypeÚFileWatchingThreadÚ watcherThreadZ CreateThreadÚ scModuleNameÚscModuleÚParentEditorDocumentÚ__init__ZCreateWin32uiDocument)ÚselfÚtemplate©rúJC:\Program Files\Certbot\pkgs\pythonwin\pywin\framework\editor\document.pyrs     zEditorDocumentBase.__init__cCs|j ¡|j ¡S©N)rÚ SignalStopÚ_obj_ÚOnCloseDocument©rrrrr-s z"EditorDocumentBase.OnCloseDocumentc Cs^t dd¡tj |¡\}}|jtkrD|dtj |¡dd}n||jtkrpt   ¡dtj |¡dd}nP|jt krÀtj  t   ¡d¡}zt  |d¡Wntjy°Yn0tj  ||¡}zt |¡WntjtfyæYn0zt ||¡WntjttfyYn0z| |¡Wnüty\}zt d|¡WYd}~dSd}~0ttfy"}zªt d|d d d d d dtjtjB¡}|tjkrz|j|ddWn@tyü}z&t d|¡WYd}~WYd}~dSd}~00nWYd}~dSWYd}~n d}~00| d¡d|_t |¡| |¡t d¡|  ¡dS)NzSaving file...rú\rz.bakZbakz!Error - could not save file %szEncoding failed: %szA Please add desired source encoding as first line of file, eg z# -*- coding: mbcs -*- z| ¡ ¡}z| ¡| ¡WntdƒYn0|j ¡S)Nz&Could not bring document to foreground)rPr@ZGetParentFrameZ MDIActivateZ AutoRestorerNrÚ SaveModified)rÚframerrrrc(s  zEditorDocumentBase.SaveModifiedN)Ú__name__Ú __module__Ú __qualname__rrr>r?rCrIrRr:rTrSrarbrcrrrrrs >2*rc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) rcCsD||_t dddd¡|_t dddd¡|_d|_tjjj   |¡dS)Nr) ÚdocÚ win32eventZ CreateEventÚ adminEventÚ stopEventÚ watchEventrUÚmfcÚthreadÚ WinThreadr)rrhrrrr?s zFileWatchingThread.__init__cCst |j¡dSr)riÚSetEventrjrrrrr:Fsz(FileWatchingThread._DocumentStateChangedc Cs¬|j ¡ ¡|_|jdur,t |j¡d|_|j ¡}|rFtj   |¡}|r¨t j t j Bt jB}zt |d|¡|_Wn6tjy¦}ztd|d|jƒWYd}~n d}~00dS)NrúCan not watch fileú for changes -)rhr@Z GetSafeHwndÚhwndrlr)ÚFindCloseChangeNotificationrFr#r$Údirnamer5ZFILE_NOTIFY_CHANGE_FILE_NAMEZFILE_NOTIFY_CHANGE_ATTRIBUTESZFILE_NOTIFY_CHANGE_LAST_WRITEZFindFirstChangeNotificationr,rNrO)rr$ÚfilterrQrrrÚ RefreshEventIs$    ÿþÿzFileWatchingThread.RefreshEventcCst |j¡dSr)rirprkrrrrr\szFileWatchingThread.SignalStopc Csâ|j|jg}|jdur"| |j¡t |dtj¡}|tjkr@qÆq|tjdkrX| ¡qt   |j t dd¡zt   |j¡Wqt jyÂ}z.td|j ¡d|jƒWYd}~qÆWYd}~qd}~00qd|_|jrÞt  |j¡dS)Nrrrqrr)rkrjrlrEriZWaitForMultipleObjectsZINFINITEZ WAIT_OBJECT_0rwr)Z PostMessagersÚMSG_CHECK_EXTERNAL_FILEZFindNextChangeNotificationr,rNrhrFrOrt)rZhandlesr=rQrrrÚRun_s,     ü$zFileWatchingThread.RunN)rerfrgrr:rwrryrrrrr>s r)r#r/r]r)r5r!Zpywin.framework.editorrZ pywin.mfcrrZBAK_NONEr&r(rZWM_USERrxZpywin.scintilla.documentrUZ scintillaZdocumentZCScintillaDocumentrrZpywin.mfc.threadrirmrnrorrrrrÚs* ÿ !