a „oeVã@sXddlZddlZddlZddlZddlZddlZGdd„dƒZdd„ZedkrTeƒdS)éNc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú MainWindowc Cst d¡}||jtj|jtj|jtjd|j i}t  ¡}t   d¡}|_ d|_tjtjB|_t  dtj¡|_tj|_||_zt |¡}Wn4tjy¼}z|jtjkr¨‚WYd}~n d}~00tjtjB}t |jd|ddtjtjdd|d¡ |_ t !|j ¡| "¡dS)NZTaskbarCreatedéZPythonTaskbarDemorz Taskbar Demo)#Úwin32guiZRegisterWindowMessageÚ OnRestartÚwin32conZ WM_DESTROYÚ OnDestroyZ WM_COMMANDÚ OnCommandÚWM_USERÚOnTaskbarNotifyZWNDCLASSÚwin32apiÚGetModuleHandleZ hInstanceZ lpszClassNameZ CS_VREDRAWZ CS_HREDRAWÚstyleZ LoadCursorZ IDC_ARROWZhCursorZ COLOR_WINDOWZ hbrBackgroundZ lpfnWndProcZ RegisterClassÚerrorÚwinerrorZERROR_CLASS_ALREADY_EXISTSZ WS_OVERLAPPEDZ WS_SYSMENUZ CreateWindowZ CW_USEDEFAULTÚhwndZ UpdateWindowÚ_DoCreateIcons)ÚselfZmsg_TaskbarRestartZ message_mapZwcÚhinstZ classAtomZerr_infor ©rú=C:\Program Files\Certbot\pkgs\win32\Demos\win32gui_taskbar.pyÚ__init__ sD  ü  õ zMainWindow.__init__cCs6t d¡}tj tj tj tj¡dd¡¡}tj  |¡s`tj tj tj tj¡ddd¡¡}tj  |¡stj tj tj tj¡dd¡¡}tj  |¡rÀt j t j B}t  ||t jdd|¡}ntdƒt  dt j¡}t jt jBt jB}|jd|t jd|df}zt  t j|¡Wnt jy0tdƒYn0dS) Nrzpyc.icoZDLLsz ..\PC\pyc.icoz-Can't find a Python icon file - using defaultrz Python Demoz5Failed to add the taskbar icon - is explorer running?)r r ÚosÚpathÚabspathÚjoinÚsplitÚsysÚ executableÚisfilerZLR_LOADFROMFILEZLR_DEFAULTSIZErZ LoadImageZ IMAGE_ICONÚprintZLoadIconZIDI_APPLICATIONZNIF_ICONZ NIF_MESSAGEZNIF_TIPrr ÚShell_NotifyIconZNIM_ADDr)rrZ iconPathNameZ icon_flagsZhiconÚflagsÚnidrrrr7s2 ÿ ÿ ÿ  ÿzMainWindow._DoCreateIconscCs | ¡dS©N)r)rrÚmsgÚwparamÚlparamrrrr[szMainWindow.OnRestartcCs&|jdf}t tj|¡t d¡dS)Nr)rrr Z NIM_DELETEZPostQuitMessage)rrr$r%r&r"rrrr^s zMainWindow.OnDestroyc CsÒ|tjkrtdƒnº|tjkr4tdƒt |j¡nš|tjkrÎtdƒt ¡}t  |tj dd¡t  |tj dd¡t  |tj dd ¡t  ¡}t  |j¡t  |tj|d |d d |jd¡t |jtjd d ¡d S) NzYou clicked me.zYou double-clicked me - goodbyezYou right clicked me.éÿzDisplay Dialogéz Say Helloéz Exit programré)rZ WM_LBUTTONUPrZWM_LBUTTONDBLCLKrÚ DestroyWindowrZ WM_RBUTTONUPZCreatePopupMenuZ AppendMenuZ MF_STRINGZ GetCursorPosZSetForegroundWindowZTrackPopupMenuZ TPM_LEFTALIGNZ PostMessageZWM_NULL)rrr$r%r&ZmenuÚposrrrr cs$     ÿzMainWindow.OnTaskbarNotifycCsbt |¡}|dkr$ddl}| ¡n:|dkr6tdƒn(|dkrTtdƒt |j¡n td|ƒdS)Nr'rr(ZHellor)ZGoodbyezUnknown command -)r ZLOWORDÚwin32gui_dialogZ DemoModalrrr+r)rrr$r%r&Úidr-rrrrxs   zMainWindow.OnCommandN) Ú__name__Ú __module__Ú __qualname__rrrrr rrrrrr s *$rcCstƒ}t ¡dSr#)rrZ PumpMessages)ÚwrrrÚmain‡sr3Ú__main__) rrr rrrrr3r/rrrrÚs{