
    r@;j0                        d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	 d Z
 G d dej                  Z G d d	ej                  Z G d
 de          Z G d d          ZdS )    )annotationsN)dialogobject)RGBc                    t          | t          t          f          r	| d         }n| }t          |t                    r|S t	          |           S Nr   )
isinstancetupleliststrrepr)itemuses     lC:\Users\Administrator\AppData\Local\Temp\2\pip-target-b0z114gj\lib\python\pythonwin/pywin/tools/hierlist.pyGetItemTextr      sK    $&& 1g#s 
Dzz    c                  B    e Zd Zej        ej        dej        fdZd ZdS )
HierDialogNc                r    t           j                            | ||           || _        || _        || _        d S N)r   Dialog__init__hierListdlgIDtitle)selfr   r   bitmapIDr   dllchildListBoxIDs          r   r   zHierDialog.__init__&   s7     	tUC000 



r   c                    |                      | j                   | j                            |            t          j                            |           S r   )SetWindowTextr   r   HierInitr   r   OnInitDialogr   s    r   r#   zHierDialog.OnInitDialog5   sD    4:&&&t$$$}))$///r   )	__name__
__module____qualname__win32uiIDB_HIERFOLDERSIDD_TREE	IDC_LIST1r   r#    r   r   r   r   %   sN        
 ((   0 0 0 0 0r   r   c                      e Zd Zej        ddfdZd Zd Zd ZddZ	d Z
d Zd	 Zd
 Zd Zd Zej        fdZd ZddZd Zd ZddZd Zd Zd Zd ZdS )HierListNc                h    d | _         || _        || _        || _        i | _        i | _        || _        d S r   )listControlr   root	listBoxIditemHandleMapfilledItemHandlesMap
bitmapMask)r   r1   r   r2   r5   s        r   r   zHierList.__init__<   s<       	"$&!$r   c                    	 t          | j        |          S # t          $ r# t          j                            | |          cY S w xY wr   )getattrr0   AttributeErrorr   Object__getattr__)r   attrs     r   r:   zHierList.__getattr__G   sS    	94+T222 	9 	9 	9=,,T488888	9s    *AAc                    | j         |         S r   )r3   )r   handles     r   ItemFromHandlezHierList.ItemFromHandleM   s    !&))r   c                    | j                                         }t          j        |t          j                  }t          j        |t          j        ||z             d S r   )r0   GetSafeHwndwin32apiGetWindowLongwin32con	GWL_STYLESetWindowLong)r   newStylehwndstyles       r   SetStylezHierList.SetStyleP   sN    ++--&tX-?@@tX%7%(:JLLLLLr   c                0   | j         t          ddd          }n| j         }t          j        | j        dd|          | _        |8| j        t          j        | _        |                    | j                  | _	        nW|| _	        |
                                }| j        .| j        |k    s#J d                    | j        |                      || _        | j	                            | j        t          j                   |                    | j        t          j                   |                    | j        t          j                   |                    | j        t          j                   || _        | j        r|                     | j                   d S d S )Nr         zTAn invalid listbox control ID has been specified (specified as {}, but exists as {}))r5   r   r(   CreateImageListr   	imageListr2   r+   
GetDlgItemr0   GetDlgCtrlIDformatSetImageListcommctrlLVSIL_NORMAL
HookNotifyOnTreeItemExpandingTVN_ITEMEXPANDINGWOnTreeItemSelChangedTVN_SELCHANGEDWOnTreeItemDoubleClick	NM_DBLCLKnotify_parentr1   
AcceptRoot)r   parentr0   r5   lbids        r   r"   zHierList.HierInitU   sz    ?"Q3JJJ 0AzRR~%!(!2%00@@D*D++--D>)T^t-C-C-CfmmND  .D-CC
 "DN%%dnh6KLLL 	$2H4OPPP$3X5MNNN$4h6HIII#9 	'OODI&&&&&	' 	'r   c                b    | j                                          d | _        i | _        i | _        d S r   )r0   DeleteAllItemsr1   r3   r4   r$   s    r   ra   zHierList.DeleteAllItemsu   s4    '')))	$&!!!r   c                   | j         }|                    d t          j                   |                    d t          j                   |                    d t          j                   |                                  d | _        d | _         d S r   )r\   rU   rS   rW   rY   r[   ra   r0   )r   r^   s     r   HierTermzHierList.HierTerm{   s}    #$ ;<<<$ 8999$ 2333!r   c                    |\  }}}|| j         k    rd S | j        | j                                                 }|                     |           dS )N   )r2   r3   r0   GetSelectedItemTakeDefaultAction)r   infoextrahwndFromidFromcoder   s          r   rZ   zHierList.OnTreeItemDoubleClick   sU    #' 64T^##4!$"2"B"B"D"DEt$$$qr   c                    |\  }}}|| j         k    rd S |\  }}}}	|d         }
|
| j        vr@| j        |
         }|                     |
|                     |                     d | j        |
<   dS r   )r2   r4   r3   
AddSubList
GetSubListr   rh   ri   rj   rk   rl   actionitemOlditemNewpt
itemHandler   s               r   rV   zHierList.OnTreeItemExpanding   s    #' 64T^##4',$"QZ
T666%j1DOOJ(=(=>>>48D%j1qr   c                    |\  }}}|| j         k    rd S |\  }}}}	|d         }
| j        |
         }|                     |           dS Nr   re   )r2   r3   PerformItemSelectedrp   s               r   rX   zHierList.OnTreeItemSelChanged   s]    #' 64T^##4',$"QZ
!*-  &&&qr   c                <    |D ]}|                      ||           d S r   )AddItem)r   parentHandlesubItemsr   s       r   rn   zHierList.AddSubList   s2     	- 	-DLLt,,,,	- 	-r   c                   |                      |          }|                     |          rd}nd}|                     |          }|                     |          }||}| j                            ||d d d ||||df          }|| j        |<   |S )Nre   r   )GetTextIsExpandableGetBitmapColumnGetSelectedBitmapColumnr0   
InsertItemr3   )	r   r{   r   hInsertAftertextcItems	bitmapCol	bitmapSelhitems	            r   rz   zHierList.AddItem   s    ||D!!T"" 	FFF((..	0066	!I ++4tY	61E
 

 %)5!r   c                    g }	 | j                             |          }	 |                    |           | j                             |t          j                  };# t          j        $ r Y nw xY w|S r   )r0   GetChildItemappendGetNextItemrS   	TVGN_NEXTr(   error)r   r=   rets      r   _GetChildHandleszHierList._GetChildHandles   s    	%226::FR

6""")55fh>PQQR } 	 	 	D	 
s   AA A,+A,c                   |t           j        }|| j        vrd S | j        |         }|                     |          }t          t          | j        |                    }|                     |          }d}t           j	        }t          t          |                    D ] }|}	d}
|	t          |          k     r-||         ||	         k    rd}
n|	dz  }	|	t          |          k     -|
r\t          ||	          D ]}|                     |||         |          } |	dz   }||         }|| j        v r|                     |           nS||         }|                     |          D ]}| j        |= || j        v r| j        |= | j                            |           ||         }||d          D ]}|                     ||           d S rw   )rS   TVI_ROOTr4   r3   r   r   mapr>   ro   	TVI_FIRSTrangelenrz   Refreshr0   
DeleteItem)r   hparent	root_itemold_handles	old_items	new_itemsinewhAfterioldinewlookmatchediholdhdeletehchildnewItems                   r   r   zHierList.Refresh   s    ?'G$333F&w/	++G44T0+>>??	OOI..	##i..)) 	' 	'DHGS^^++T?i&999GA	 S^^++
  5 tX.. I IA!\\'9Q<HHFF!|"4(4444LL&&& &d+"33G<< > >F*62!::: 5f= ++G444 &FF ' 	+ 	+GLL'****	+ 	+r   c                    | j                                          t          j        |i| _        t          j        |i| _        |                     |          }|                     d|           d S r   )r0   ra   rS   r   r3   r4   ro   rn   )r   r1   r|   s      r   r]   zHierList.AcceptRoot   sb    '')))&/6%-%6$=!??4((8$$$$$r   c                4    |                      |          rdS dS )Nr      )r   r   r   s     r   r   zHierList.GetBitmapColumn   s"    T"" 	11r   return
int | Nonec                    dS r   r,   r   s     r   r   z HierList.GetSelectedBitmapColumn  s    qr   c                4    | j                                         S r   )r0   CheckChangedChildrenr$   s    r   r   zHierList.CheckChangedChildren	  s    44666r   c                     t          |          S r   )r   r   s     r   r~   zHierList.GetText  s    4   r   c                    	 t          j        d|                     |          z              d S # t           j        $ r Y d S w xY w)Nz	Selected )r(   SetStatusTextr~   r   r   s     r   rx   zHierList.PerformItemSelected  sS    	!+T0B0B"BCCCCC} 	 	 	DD	s   *. A Ac                Z    t          j        d|                     |          z              d S )Nz	Got item )r(   
MessageBoxr~   r   s     r   rg   zHierList.TakeDefaultAction  s*    ;d););;<<<<<r   r   )r   r   )r%   r&   r'   r(   r)   r   r:   r>   rI   r"   ra   rc   rZ   rV   rX   rn   rS   TVI_LASTrz   r   r   r]   r   r   r   r~   rx   rg   r,   r   r   r.   r.   ;   s       $4QU	% 	% 	% 	%9 9 9* * *M M M
' ' ' '@' ' '	" 	" 	"  
 
 
  - - - 8@7H    $
 
 
1+ 1+ 1+ 1+f% % %     7 7 7! ! !  = = = = =r   r.   c                  V    e Zd Zej        ddfdZd Zd Zd Zd Z	d Z
d Zd	 Zd
 ZdS )HierListWithItemsNc                B    t                               | ||||           d S r   )r.   r   )r   r1   r   	listBoxIDr5   s        r   r   zHierListWithItems.__init__  s&     	$h	:FFFFFr   c                     |            S r   r,   )r   fns     r   DelegateCallzHierListWithItems.DelegateCall$  s    rttr   c                t    |                      |j                  }|t                              | |          }|S r   )r   r   r.   )r   r   rcs      r   r   z!HierListWithItems.GetBitmapColumn'  s7    t344:))$55B	r   c                6    |                      |j                  S r   )r   r   r   s     r   r   z)HierListWithItems.GetSelectedBitmapColumn-  s      !=>>>r   c                6    |                      |j                  S r   )r   r   r   s     r   r   zHierListWithItems.IsExpandable0  s      !2333r   c                6    |                      |j                  S r   )r   r~   r   s     r   r~   zHierListWithItems.GetText3  s      ...r   c                6    |                      |j                  S r   )r   ro   r   s     r   ro   zHierListWithItems.GetSubList6  s      111r   c                    t          |dd           }|t                              | |          S |                     |          S )Nrx   )r7   r.   rx   r   r   r   funcs      r   rx   z%HierListWithItems.PerformItemSelected9  sC    t2D99<//d;;;$$T***r   c                    t          |dd           }|t                              | |          S |                     |          S )Nrg   )r7   r.   rg   r   r   s      r   rg   z#HierListWithItems.TakeDefaultAction@  sC    t0$77<--dD999$$T***r   )r%   r&   r'   r(   r)   r   r   r   r   r   r~   ro   rx   rg   r,   r   r   r   r     s        $4QUG G G G
    ? ? ?4 4 4/ / /2 2 2+ + ++ + + + +r   r   c                  >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
HierListItemc                    d S r   r,   r$   s    r   r   zHierListItem.__init__J      r   c                    d S r   r,   r$   s    r   r~   zHierListItem.GetTextM  r   r   c                    d S r   r,   r$   s    r   ro   zHierListItem.GetSubListP  r   r   c                    d S r   r,   r$   s    r   r   zHierListItem.IsExpandableS  r   r   c                    d S r   r,   r$   s    r   r   zHierListItem.GetBitmapColumnV      tr   c                    d S r   r,   r$   s    r   r   z$HierListItem.GetSelectedBitmapColumnY  r   r   c                B    t          |           t          |          k     S r   )idr   others     r   __lt__zHierListItem.__lt__\  s    $xx"U))##r   c                    dS )NFr,   r   s     r   __eq__zHierListItem.__eq__`  s    ur   N)r%   r&   r'   r   r~   ro   r   r   r   r   r   r,   r   r   r   r   I  s                    $ $ $    r   r   )
__future__r   rS   rA   rC   r(   	pywin.mfcr   r   r   r   r   r   r9   r.   r   r   r,   r   r   <module>r      s4   # " " " " "     $ $ $ $ $ $ $ $        0 0 0 0 0 0 0 0,[= [= [= [= [=v} [= [= [=F'+ '+ '+ '+ '+ '+ '+ '+V         r   