
    	h                      \   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S r
S rS rSS jrS r0 r\	R                   " S S\R"                  5      r\	R&                  " \\	R(                  5      r\R,                  " S5      r \R0                  " \S5      rS q\" \" \5      S 5        \(       d  \R:                  " S5        \(       d  M  \(       a-  \R<                  " 5         \R:                  " S
5        \(       a  M,  gg! \R4                   a    \R0                  " \S	5      r Nf = f)    Nc                    U[         R                  [         R                  4;   a  [        R                  " U 5        gU[         R
                  :X  a  U[         R                  :X  aE  [        R                  " U S5      n[        SU5        [        R                  " U 5        [        U5        gU[         R                  :X  a  [        R                  " U 5        ggg)z1Handles messages from the desktop name dialog boxH   znew desktop name: N)win32conWM_CLOSE
WM_DESTROYwin32guiDestroyWindow
WM_COMMANDIDOKGetDlgItemTextprintcreate_desktopIDCANCEL)hwndmsgwparamlparamdesktop_names        mC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32/Demos/desktopmanager.pydesktop_name_dlgprocr      s    
x  ("5"566t$	##	#X]]"#224<L&5""4(<(x(((""4( ) 
$    c                    [         R                  [        [         R                  [        [         R                  [        0n[         R
                  [         R                  -  [         R                  -  [         R                  -  n[        R                  " [        R                  " S5      SSUS/SS[         R                  S[         R                  [         R                  -  [         R                  -  [         R                   -  /SS[         R"                  S	[         R                  [         R                  -  [         R                  -  /S
SSS[         R                  /SSSS[         R                  //U U5      n[        R$                  " US5        [        R&                  " US5      n[        R$                  " US5        [        R(                  " U5        g)zECreate a dialog box to ask the user for name of desktop to be createdNzOne ugly dialog box !)d   r      r   r   ButtonCreate)
   r         z
Never mind)-   r   2   r   StaticzDesktop name:G   )r   (   F   r   Edit r   )K   r$   Z   r   T)r   r
   r   r   r   	WS_BORDER
WS_VISIBLE
WS_CAPTION
WS_SYSMENUr   CreateDialogIndirectwin32apiGetModuleHandler   
WS_TABSTOP	BS_HOLLOWBS_DEFPUSHBUTTONr   EnableWindow
GetDlgItemSetFocus)parent_hwndmsgsstylehhcontrols        r   get_new_desktop_namer<   !   s    	1/1D 	


	


	 

	 
 	%%  &$&:E1E ##%%&$$% ++,	 !! ##h&9&99H<N<NN ,<h>Q>QRR-x/B/BC)	
, 	3	A8 !T"""1b)H(D)hr   c                    [         S-  q U R                  5         SU-   n[        R                  " 5       n[        R
                  " S5      Ul        X#l        [        R                  [        R                  -  [        R                  -  Ul        [        R                  " S[        R                  5      Ul        [        R                   Ul        [$        Ul        [        R(                  " U5      n[        R*                  [        R,                  -  n[        R.                  " USU-   [        R,                  SS[        R0                  [        R0                  SSUR                  S5      n[        R2                  " U5        [        R4                  [        R6                  -  [        R8                  -  nU[         U[        R:                  S-   [<        SU-  4nU[>        U'   Sn	U	(       d!   [        R@                  " SS5      n	U	(       d  M!  [        RL                  " [        RN                  U5        [        RP                  " 5         g! [        RB                   a)    [D        RF                    [H        RJ                  " S	5         Nf = f)
zRRuns as a thread on each desktop to create a new tray icon and handle its messages   PythonDesktopManagerNr   dm_r   zDesktop Manager (%s)Shell_TrayWndg      ?))idSetThreadDesktopr   WNDCLASSr/   r0   	hInstancelpszClassNamer   
CS_VREDRAW
CS_HREDRAWCS_GLOBALCLASSr9   
LoadCursor	IDC_ARROWhCursorCOLOR_WINDOWhbrBackgroundicon_wndproclpfnWndProcRegisterClassWS_OVERLAPPEDr-   CreateWindowCW_USEDEFAULTUpdateWindowNIF_ICONNIF_MESSAGENIF_TIPWM_USERhiconwindow_info
FindWindowerror	traceback	print_exctimesleepShell_NotifyIconNIM_ADDPumpMessages)
hdeskr   windowclassnamewcwindowclassr9   r   flagsnotify_info
tray_founds
             r   new_iconrl   Q   s    !GB	,|;O				B++D1BL&""X%8%888;R;RRBH$$Q(:(:;BJ,,B!BN((,K""X%8%88E  				
D $ 4 44x7G7GGE
2-K $KJ	!,,_dCJ j h..<	 ~~ 	JJsO	s   #H> >:I;:I;r>   c                    [         R                  " 5       nSUl         [        R                  " U S[
        R                  U5      nU(       aG  [        R                   " 5       nXl        [        R$                  " SSSSS[
        R&                  SSU5	      n[(        R*                  " [,        X045      nUR/                  5         g! [        R                   aj    [        R                  " 5         [        R                  " 5       n[        R                  " SU5        [        R                  " SUR                  5       S5         gf = f)zqCreates a new desktop and spawns a thread running on it
Will also start a new icon thread on an existing desktop
r>   r   NzDesktop creation failedzExplorer.exeTzc:\)
pywintypesSECURITY_ATTRIBUTESbInheritHandlewin32serviceCreateDesktopr   MAXIMUM_ALLOWEDr]   r^   r_   ioStringIOr/   
MessageBoxgetvaluewin32processSTARTUPINFO	lpDesktopCreateProcessCREATE_NEW_CONSOLE_threadstart_new_threadrl   SwitchDesktop)r   start_explorersare   errbufsprc_infoths           r   r   r      s    
	'	'	)BB	**!X55r
 $$&"--''

 
	!	!(U,A	BB	-  D&)Av02KLs   'C   A;D>=D>c           	          U[         R                  :X  Ga  [        R                  " U 5        [        R
                  " SS[         R                  5      n[        R                  " U[         R                  5      n[        R                  " 5       nUR                  5       n[        R                  " 5       n[        U5      n	[        SU	S-   5       H  n
[         R                  nXzS-
     R                  5       S;   a$  U[         R                   [         R"                  -  -  nXzS-
     U:X  a  U[         R$                  -  n[        R&                  " XXU
S-
     5        M     [        R&                  " U[         R                  U	S-   S5        [        R&                  " U[         R                  U	S-   S5        [        R(                  " 5       u  p[        R*                  " U[         R,                  [         R.                  -  [         R0                  -  UUSU S5      n
[        R2                  " 5         [        R4                  " U5        XS-   :X  a  [7        U 5        gXS-   :X  a^  [        R8                  " S5        [        R:                  " [        R<                  [>        U    5        [>        U 	 [@        RC                  5         gU
S:  a<  [        RD                  " XzS-
     SS[         R                  5      nURC                  5         g[        RF                  " XX#5      $ )	zWindow proc for the tray iconsr   Tr>   )winlogon
disconnectzCreate new ...   ExitN)$r   WM_LBUTTONDOWNr   SetForegroundWindowrq   OpenInputDesktoprs   GetUserObjectInformationUOI_NAMEGetProcessWindowStationEnumDesktopsCreatePopupMenulenrange	MF_STRINGlower	MF_GRAYEDMF_DISABLED
MF_CHECKED
AppendMenuGetCursorPosTrackPopupMenuTPM_LEFTBUTTONTPM_RETURNCMDTPM_NONOTIFYPumpWaitingMessagesDestroyMenur<   PostQuitMessagerb   
NIM_DELETEr[   origin_desktopr   OpenDesktopDefWindowProc)r   r   wplpcurr_desktopcurr_desktop_namewinstadesktopsmdesktop_cntdmf_flagsxyre   s                  r   rO   rO      sv   	X$$$$$T*#44Qh>V>VW(AA(++
 557&&($$&(mq+/*A))HA$$&*DDH..1E1EEEA"33H///QQ@ + 	Ax11;?DTUAx11;?FK$$&####h&<&<<x?T?TT
 	$$&Qa &  /!$$Q'%%h&9&9;t;LMD!((*  U ,,QAx'?'?E !%%d88r   T      )r>   )r}   rt   r`   r^   rn   r/   r   r   rx   rq   r   r<   rl   r   rO   r[   r   rs   r   r   r   origin_desktop_namer0   hinstLoadIconrZ   r]   rB   strra   r    r   r   <module>r      s     	        
)- `1h!H49n ..q$8P8PQ";;L))  	  &*eQ'E  s&' + JJqM +   "JJqM k ~~ *eS)E*s   
D #D+*D+