a „oe*#ã@szdZddlZddlZddlmZdd„ZGdd„dejƒZGdd „d eƒZGd d „d eƒZ Gd d „d ejƒZ ddd„Z dS)zG Base class for Dialogs. Also contains a few useful utility functions éN)ÚwindowcCsV|dkr dStdƒt|ƒkr&t |¡Sz | ¡WntyLtdƒ‚Yn0|SdS)z?given a 'dll' (maybe a dll, filename, etc), return a DLL objectNÚz6DLL parameter must be None, a filename or a dll object)ÚtypeÚwin32uiZ LoadLibraryZ GetFileNameÚAttributeErrorÚ TypeError)Údllid©r ú;C:\Program Files\Certbot\pkgs\pythonwin\pywin\mfc\dialog.pyÚ dllFromDlls   r c@s’eZdZdZd#dd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„ZdS)$ÚDialogzBase class for a dialogNcCsTt|ƒ|_t|ƒtgƒkr&t |¡}nt ||j¡}tj ||¡|  ¡d|_ dS)ziid is the resource ID, or a template dllid may be None, a dll object, or a string with a dll nameN) r ÚdllrrZCreateDialogIndirectZ CreateDialogrÚWndÚ__init__Ú HookCommandsÚ bHaveInit)ÚselfÚidrÚdlgr r r rs  zDialog.__init__cCsdS©Nr ©rr r r r,szDialog.HookCommandscCs|jj|_tj |¡dSr)Ú_obj_ÚdatarrÚOnAttachedObjectDeathrr r r r/s zDialog.OnAttachedObjectDeathcCs|j ¡dSr)rÚOnOKrr r r r4sz Dialog.OnOKcCs|j ¡dSr)rÚOnCancelrr r r r7szDialog.OnCancelcCsd|_|jjr|j d¡dS)Nér)rrrZ UpdateDatarr r r Ú OnInitDialog:s zDialog.OnInitDialogcCs d|_dSr)r )rÚmsgr r r Ú OnDestroy@szDialog.OnDestroycGs|jj |¡dSr)rZdatalistÚappend)rÚargsr r r ÚAddDDXDsz Dialog.AddDDXcCsdS)NTr rr r r Ú__bool__HszDialog.__bool__cCs t|jƒSr)Úlenrrr r r Ú__len__KszDialog.__len__cCs |j|Sr©r©rÚkeyr r r Ú __getitem__NszDialog.__getitem__cCs||jj|<dSr)rr)rr(Úitemr r r Ú __setitem__QszDialog.__setitem__cCst|j ¡ƒSr)ÚlistrÚkeysrr r r r-Tsz Dialog.keyscCst|j ¡ƒSr)r,rÚitemsrr r r r.Wsz Dialog.itemscCst|j ¡ƒSr)r,rÚvaluesrr r r r/Zsz Dialog.valuescCs ||jvSrr&r'r r r Úhas_key^szDialog.has_key)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrrrrr"r#r%r)r+r-r.r/r0r r r r r s" r c@sTeZdZdZdejejBejBejBej Bddfdd„Z dd„Z dd „Z d d „Z dS) Ú PrintDialogzBase class for a print dialogrNcCsJt|ƒ|_t|ƒtgƒkr"tdƒ‚t |||||j¡}tj ||¡|  ¡d|_ ||_ |  ¡}|tj @dk|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d <| ¡|d <| ¡|d <| ¡|d <| ¡|d <| ¡|d<| ¡|d<| ¡|d<d|d<d|d<d|d<d|d<d|d<d|d<d|d<dS)Nz.dlgID parameter must be an integer resource IDrÚtoFileÚdirectÚpreviewÚcontinuePrintingÚcurPageÚnumPreviewPagesÚuserDataÚdrawÚpageDescÚminPageÚmaxPageÚ offsetPageÚfromPageÚtoPageÚcopiesrÚ deviceNameÚ driverNameÚprintAllÚ printCollateÚ printRangeÚprintSelection)r r rrrZCreatePrintDialogrrrrrÚpInfoÚGetFlagsÚPD_PRINTTOFILEÚ GetDirectÚ GetPreviewÚGetContinuePrintingÚ GetCurPageÚGetNumPreviewPagesÚ GetUserDataÚGetDrawÚ GetPageDescÚ GetMinPageÚ GetMaxPageÚ GetOffsetPageÚ GetFromPageÚ GetToPage)rrKZdlgIDZprintSetupOnlyÚflagsÚparentrrr r r res<              zPrintDialog.__init__cCs|j ¡|j ¡Sr)rKZCreatePrinterDCrrrr r r r•s zPrintDialog.OnInitDialogcCs|`dSr)rKrr r r r™szPrintDialog.OnCancelcCs"|j ¡|j}| ¡}|tj@dk|d<| ¡|d<| ¡|d<| ¡|d<|  ¡|d<|  ¡|d<|  ¡|d<|  ¡|d <|  ¡|d <| ¡|d <| ¡|d <| ¡|d <| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<| ¡|d<|`dS)z6DoModal has finished. Can now access the users choicesrr6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJN)rrrKrLrrMrNrOrPrQrRrSrTrUrVrWrXrYrZZ GetCopiesZ GetDeviceNameZ GetDriverNameZPrintAllZ PrintCollateZ PrintRangeZPrintSelection)rrKr[r r r rœs2                     zPrintDialog.OnOK)r1r2r3r4rZ PD_ALLPAGESZPD_USEDEVMODECOPIESZ PD_NOPAGENUMSZPD_HIDEPRINTTOFILEZPD_NOSELECTIONrrrrr r r r r5bs"ÿþýüó 0r5c@seZdZdZddd„ZdS)Ú PropertyPagezBase class for a Property PageNrcCsnt|ƒ|_|jrt |j¡}t|ƒtgƒkr8t |¡}n t ||¡}|jrTt |¡tj  ||¡|  ¡dS)zZid is the resource ID dllid may be None, a dll object, or a string with a dll nameN) r r rÚ SetResourcerZCreatePropertyPageIndirectÚCreatePropertyPagerrrr)rrrÚcaptionÚoldResrr r r r½s     zPropertyPage.__init__)Nr)r1r2r3r4rr r r r r]ºsr]c@s6eZdZd dd„Zdd„Zdd„Zdd „Zd d „ZdS) Ú PropertySheetNcCs<t|ƒ|_t |¡|_tj ||j¡|dur8| |¡dS)z8Initialize a property sheet. pageList is a list of ID'sN) r r rZCreatePropertySheetÚsheetrrrÚAddPage)rr`r ZpageListr r r rÐs   zPropertySheet.__init__cCs |j ¡Sr)rrrr r r rÙszPropertySheet.OnInitDialogcCs0|jrt |j¡}|j ¡}|jr,t |¡|Sr)r rr^rcÚDoModal)rraÚrcr r r reÜs    zPropertySheet.DoModalc Csv|jrt |j¡}z|dd}Wnttfy<d}Yn0|rX|D]}| |¡qFn | |¡|jrrt |¡dS)Nrr)r rr^rÚKeyErrorÚDoAddSinglePage)rZpagesraZisSeqÚpager r r rdäs   zPropertySheet.AddPagecCs4t|ƒtdƒkr$|j t |¡¡n |j |¡dS)z.Page may be page, or int ID. Assumes DLL setuprN)rrcrdrr_)rrir r r rhôszPropertySheet.DoAddSinglePage)NN)r1r2r3rrrerdrhr r r r rbÏs  rbrcsR|durt ¡ ¡}t‰G‡fdd„dˆƒ}||||ƒ}| ¡tjkrJdS|dS)ztdisplays a dialog, and returns a string, or None if cancelled. args prompt, defValue='', title=main frames titleNcs$eZdZ‡fdd„Z‡fdd„ZdS)z&GetSimpleInput..DlgSimpleInputcsL||_ˆ |tj¡| tjd¡| tjd¡||jjd<||jjd<dS)NÚresultÚprompt) ÚtitlerrZIDD_SIMPLE_INPUTr"Z IDC_EDIT1Z IDC_PROMPT1rr)rrkÚdefValuerl©Z DlgBaseClassr r rs  z/GetSimpleInput..DlgSimpleInput.__init__cs| |j¡ˆ |¡Sr)Z SetWindowTextrlrrrnr r rs z3GetSimpleInput..DlgSimpleInput.OnInitDialogN)r1r2r3rrr rnr r ÚDlgSimpleInputs rorj)rZ GetMainFrameZ GetWindowTextr reÚwin32conZIDOK)rkrmrlrorr rnr ÚGetSimpleInputýs  rq)rN) r4rprZ pywin.mfcrr rr r5r]rbrqr r r r Ús FX.