a „oeqã@s„ddlZddlZddlZddlZddlmZmZdZdZdZ dZ da iZ iZ ddd„ZGd d „d ƒZGd d „d ƒZGd d„dƒZdS)éNé)ÚIDLEenvironmentÚkeycodesééiˆcCs<|dkr0t |d¡}|dkr(t}tda|t|<|t|<|S)Nrr)Úevent_to_commandsÚgetÚnext_idÚcommand_to_events)ÚeventÚid©r úCC:\Program Files\Certbot\pkgs\pythonwin\pywin\scintilla\bindings.pyÚassign_command_ids rc@seZdZdd„Zdd„ZdS)ÚSendCommandHandlercCs ||_dS©N)Úcmd)Úselfrr r rÚ__init__"szSendCommandHandler.__init__cGst ¡ tj|j¡dSr)Úwin32uiZ GetMainFrameZ SendMessageÚwin32conZ WM_COMMANDr)rÚargsr r rÚ__call__%szSendCommandHandler.__call__N)Ú__name__Ú __module__Ú __qualname__rrr r r rr!src@seZdZdd„ZdS)ÚBindingcCs||_||_dSr)ÚhandlerÚhandler_args_type)rrrr r rr*szBinding.__init__N)rrrrr r r rr)src@s†eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Ze d fdd„Z ddd„Z dd„Z dd„Z dd„Zdd„Zd dd„Zdd„ZdS)!ÚBindingsManagercCs||_i|_i|_dSr©Ú parent_viewÚbindingsÚkeymap)rr!r r rr0szBindingsManager.__init__cCs i|_dSr)r#©rr r rÚprepare_configure5sz!BindingsManager.prepare_configurecCs"t ¡D]}|j |j|¡qdSr)r Úkeysr!Z HookCommandÚ _OnCommand)rr r r rÚcomplete_configure8s z"BindingsManager.complete_configurecCsd|_|_|_dSrr r$r r rÚclose<szBindingsManager.closecCs2zt |d¡Wntjy,t|ƒYn0dS)Nr)rZ SetStatusTextÚerrorÚprint)rZproblemr r rÚ report_error?szBindingsManager.report_errorcCs|j |¡dSr)r#Úupdate)rr#r r rÚ update_keymapFszBindingsManager.update_keymaprcCs2|durt|ƒ}| ||¡|j|<| ||¡dSr)rÚ _new_bindingr"Ú bind_command)rr rrZcidr r rÚbindIszBindingsManager.bindcCst||ƒ}|S)z.Binds an event to a Windows control/command ID)r©rr r r r rr0Os zBindingsManager.bind_commandcCs.t |¡}|dur*||jvr dS| |¡}|Sr)rrr"r0r2r r rÚget_command_idTs    zBindingsManager.get_command_idcCs.t |¡}|dur$| d|¡dS| |¡S)Nz$No event associated with event ID %dr)r rr,Úfire)rr Úcoder r r rr']s  zBindingsManager._OnCommandcCs t||ƒSr)r)rr rr r rr/dszBindingsManager._new_bindingc Cs^z*|jj |¡}| dd¡d}t||ƒWSttfyXd||f}| |¡YdS0dS)Nú-Ú_Z_eventz.Can not find event '%s' in IDLE extension '%s')r!ÚidleZ IDLEExtensionÚreplaceÚgetattrÚ ImportErrorÚAttributeErrorr,)rÚextrÚinstanceÚnameÚmsgr r rÚ_get_IDLE_handlergs   z!BindingsManager._get_IDLE_handlerNc Csö|j |¡}|durVt|j|ddƒ}|dur@| d|¡dS| |t¡}||j|<|j}|tkrz|ddkrvt }nt }zD|t kr’|jj |f}n|f}|j |Ž}|t kr¼|dvr¸d}nd}Wn2d|}t |ƒt ¡| |¡d}Yn0|S)NÚEventz%The event name '%s' can not be found.rrú<)NÚbreakzFiring event '%s' failed.)r"rr:r!r,r/ÚHANDLER_ARGS_NATIVErÚHANDLER_ARGS_GUESSÚHANDLER_ARGS_IDLEÚHANDLER_ARGS_EXTENSIONr8rr+Ú tracebackÚ print_exc) rr Z event_paramZbindingrrrÚrcÚmessager r rr4qs:       zBindingsManager.firecCs’|d}d}t tj¡d@r,|tjBtjB}t tj¡d@rF|tjB}t tj¡d@rf|tj Btj B}||f}|j   |¡}|dur†dS|  |d¡S)Nrri€r)Úwin32apiZ GetKeyStaterZ VK_CONTROLZRIGHT_CTRL_PRESSEDZLEFT_CTRL_PRESSEDZVK_SHIFTZ SHIFT_PRESSEDZVK_MENUZLEFT_ALT_PRESSEDZRIGHT_ALT_PRESSEDr#rr4)rr@ÚkeyZkeyStateZkeyinfor r r rÚfire_key_event¡sÿ  zBindingsManager.fire_key_event)r)N)rrrrr%r(r)r,r.rFr1r0r3r'r/rAr4rOr r r rr/s   0r)r)rIrMrrÚrrrFrErGrHr rr rrrrr r r rÚs