a „oeˆã@s>dZddlZddlZddlZddlmZdd„Zdd„ZGdd „d ejƒZ dd d „Z Gdd„dejƒZ ddd„Z e dk�r:ddlZd Zd Zeejƒdkr¢ejdZeejƒdkrºejdZe eeƒ\ZZeekrÜdkrênn edƒnPedeƒedeƒe deƒZedu�redƒnd Zeek�r.dZedeƒdS)a³login -- PythonWin user ID and password dialog box (Adapted from originally distributed with Mark Hammond's PythonWin - this now replaces it!) login.GetLogin() displays a modal "OK/Cancel" dialog box with input fields for a user ID and password. The password field input is masked with *'s. GetLogin takes two optional parameters, a window title, and a default user ID. If these parameters are omitted, the title defaults to "Login", and the user ID is left blank. GetLogin returns a (userid, password) tuple. GetLogin can be called from scripts running on the console - i.e. you don't need to write a full-blown GUI app to use it. login.GetPassword() is similar, except there is no username field. Example: import pywin.dialogs.login title = "FTP Login" def_user = "fred" userid, password = pywin.dialogs.login.GetLogin(title, def_user) Jim Eggleston, 28 August 1996 Merged with dlgpass and moved to pywin.dialogs by Mark Hammond Jan 1998. éN)ÚdialogcCstjtjBtjBtjBtjBtjB}tjtjB}|d|ddgg}| dddd|tj Bg¡|tj Btj B}| ddt j d|g¡| dd dd |tj Bg¡|tj Btj B}| ddt jd |tjBg¡|tj B}| d d tjd|tjBg¡tj|B}| d dtjd|g¡|S)N)rré¸é(©éz MS Sans Serifé‚zUser ID:éÿÿÿÿ)éé éEr ÚEDIT©é2r é<é ú Password:)r ér r )rérré€ÚOK©é|éréÚCancel)rrrr)Úwin32conÚ DS_MODALFRAMEÚWS_POPUPÚ WS_VISIBLEÚ WS_CAPTIONÚ WS_SYSMENUÚ DS_SETFONTÚWS_CHILDÚappendÚSS_LEFTÚ WS_TABSTOPÚ WS_BORDERÚwin32uiÚ IDC_EDIT1Ú IDC_EDIT2Ú ES_PASSWORDÚIDOKÚBS_DEFPUSHBUTTONÚ BS_PUSHBUTTONÚIDCANCEL©ÚtitleZstyleÚcsZdlgÚs©r3ú>C:\Program Files\Certbot\pkgs\pythonwin\pywin\dialogs\login.pyÚMakeLoginDlgTemplate s<ÿþýüûÿ  ÿÿ ÿ r5cCsÌtjtjBtjBtjBtjBtjB}tjtjB}|d|ddgg}| dddd|tj Bg¡|tj Btj B}| ddt j d|tjBg¡|tj BtjB}| d d tjd |tjBg¡| d d tjd |g¡|S)N)rré±é-rrrr)r r r r r r rrrr)rrrr)rrrrrr r!r"r#r$r%r&r'r(r*r-r+r,r.r/r3r3r4ÚMakePasswordDlgTemplateFs4ÿþýüûÿ  ÿÿÿr8c@seZdZdZdd„ZdS)ÚLoginDlgrcCs2tj |t|ƒ¡| tjd¡| tjd¡dS)NÚuseridÚpassword)rÚDialogÚ__init__r5ÚAddDDXr'r(r)©Úselfr0r3r3r4r=hszLoginDlg.__init__N)Ú__name__Ú __module__Ú __qualname__rr=r3r3r3r4r9esr9ÚLoginÚcCs>t|ƒ}||d<||d<| ¡tjkr*dS|d|dfSdS)Nr:r;)NN)r9ÚDoModalrr+)r0r:r;Údr3r3r4ÚGetLoginns rHc@seZdZdd„ZdS)Ú PasswordDlgcCs$tj |t|ƒ¡| tjd¡dS©Nr;)rr<r=r8r>r'r(r?r3r3r4r=yszPasswordDlg.__init__N)rArBrCr=r3r3r3r4rIxsrIÚPasswordcCs*t|ƒ}||d<| ¡tjkr"dS|dSrJ)rIrFrr+)r0r;rGr3r3r4Ú GetPassword~s rLÚ__main__éézUser pressed Cancelz User ID: rzReenter just for funzUser cancelledznot zThe passwords did %smatch)rDrErE)rKrE)Ú__doc__Zwin32apirr'Z pywin.mfcrr5r8r<r9rHrIrLrAÚsysr0Zdef_userÚlenÚargvZ def_useridr:r;ÚprintZ newpasswordZwhatr3r3r3r4Ús< &