
    	h=W                       S r SSKJ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SSSSSSSSS	S
SSSS.r\	R                  \	R                  -  \	R                  \	R                   \	R"                  \	R                  -  \	R                  \	R$                  \	R&                  \	R(                  \	R*                  S.	r\	R.                  \	R0                  -  rSr " S S5      r " S S5      r " S S5      r " S S5      rS rS&S jr S&S jr!\"S:X  Gax  \#" \RH                  5      S::  a   \%" \ 5        \%" 5         \%" S5        \%" S5        g\RH                  S   r&S\RH                  ;   a  S\l'        \%" S \&-  5        \ " \&5      r(\(RR                  RU                  5        H2  u  r+r,\%" S!\+\#" \,5      4-  5        \R                  " \,5        \%" 5         M4     \(RZ                  RU                  5        H&  u  r+r.\%" S"\+ S#\.R^                  < 35        \%" 5         M(     \(R`                  RU                  5        H  u  r+r.\%" S$\+ S#\.< 35        \%" 5         M     \(Rb                  RU                  5        H  u  r+r.\%" S%\+ S#\.< 35        \%" 5         M     gg)'zs
This is a parser for Windows .rc files, which are text files which define
dialogs and other Windows UI resources.
    )annotationsNzAdam Walkerz0.11                  RichEdit20A)DEFPUSHBUTTON
PUSHBUTTONButtonGROUPBOXStaticCTEXTRTEXTLTEXTLISTBOX	SCROLLBARCOMBOBOXEDITTEXTICONRICHEDIT)	r   r   r   r   r   r   r   r   r   c                  P    \ rS rSrSrSrSrSrSrSr	Sr
SrSrSrSrSrS rS rS	rg)
	DialogDef?    r   NzMS Sans Serif   c                F    Xl         X l        / U l        / U l        / U l        g N)nameidstylesstylesExcontrols)selfnis      jC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\win32/lib/win32rcparser.py__init__DialogDef.__init__M   s!    	    c                p   S nU R                   U R                  U R                  U R                  U R                  4U R
                  U R                  U R                  U R                  4//U l	        U R                   H,  nU R                  R                  UR                  5       5        M.     U R                  $ r   )captionxywhstylestyleExfontSizefonttemplater$   appendcreateDialogTemplate)r%   tcontrols      r(   r8   DialogDef.createDialogTemplateU   s     0

		*
 }}GMM  !=!=!?@ %}}r+   )r$   r!   r    r"   r#   r6   )__name__
__module____qualname____firstlineno__r    r!   r2   r3   r-   r5   r4   r.   r/   r0   r1   r6   r)   r8   __static_attributes__ r+   r(   r   r   ?   sH    D	
BEGGDH	A	A	A	AHr+   r   c                  R    \ rS rSrSrSrSrSr\r	\
rSrSrSrSrSrS rS rS rSrg)	
ControlDeff   r   r   c                     / U l         / U l        g r   r"   r#   r%   s    r(   r)   ControlDef.__init__s   s    r+   c                   SU R                   -   S-   U R                  -   S-   U R                  -   S-   [        U R                  5      -   S-   [        U R
                  5      -   S-   [        U R                  5      -   S-   U R                  -   S-   [        U R                  5      -   S	-   [        U R                  5      -   S
-   [        U R                  5      -   S-   [        U R                  5      -   S-   nU$ )Nz<Control id:z controlType:z	 subType:z idNum:z style:z styles:z label:z x:z y:z w:z h:>)r!   controlTypesubTypestridNumr2   r"   labelr.   r/   r0   r1   )r%   ss     r(   toStringControlDef.toStringw   s4   gg  	
 ll  $**o  $**o	 
 $++  jj  $&&k  !" $&&k#$ %& $&&k'( )* $&&k+, - 	
2 r+   c                    U R                   nSU:X  a  U R                  nU[        ;   a	  [        U   nUU R                  U R                  U R
                  U R                  U R                  U R                  4U R                  U R                  /nU$ )NCONTROL)rK   rL   _controlMaprO   rN   r.   r/   r0   r1   r2   r3   )r%   ctr9   s      r(   r8   ControlDef.createDialogTemplate   sw    ?BRBJJJJVVTVVTVVTVV,JJLL
 r+   rF   N)r<   r=   r>   r?   r!   rK   rL   rN   defaultControlStyler2   defaultControlStyleExr3   rO   r.   r/   r0   r1   r)   rQ   r8   r@   rA   r+   r(   rC   rC   f   sH    	BKGEE#GE	A	A	A	A8r+   rC   c                       \ rS rSrS rS rSrg)	StringDef   c                (    Xl         X l        X0l        g r   r!   rN   value)r%   r!   rN   r_   s       r(   r)   StringDef.__init__   s    

r+   c                \    SU R                   < SU R                  < SU R                  < S3$ )Nz
StringDef(z, )r^   rG   s    r(   __repr__StringDef.__repr__   s)    DGG;bbaHHr+   r^   N)r<   r=   r>   r?   r)   rc   r@   rA   r+   r(   r[   r[      s    
Ir+   r[   c                      \ rS rSr% Sr0 rS\S'   0 rS\S'   SrSr	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S  r!S! r"S" r#S#r$g$)%RCParser   i  z?dict[str, list[list[str | int | None | tuple[str | int, ...]]]]dialogszdict[str, DialogDef]_dialogsFr   c                `    SU l         SS0U l        SS0U l        0 U l        0 U l        0 U l        g )NF
IDC_STATIC)ungotidsnamesbitmapsstringTableiconsrG   s    r(   r)   RCParser.__init__   s7    
 "%,'

r+   c                >    U R                   (       a  [        U5        g g r   )debugEnabledprint)r%   argss     r(   debugRCParser.debug   s    $K r+   c                >   U R                   (       a/  SU l         U R                  SU R                  5        U R                  $ U R                  R	                  5       U l        U R                  SU R                  5        U R                  S:X  a  S U l        U R                  $ )NFzgetToken returns (ungot):zgetToken returns:r   )rm   rx   tokenlex	get_tokenrG   s    r(   getTokenRCParser.getToken   sq    ::DJJJ2DJJ?::XX'')


&

3::DJzzr+   c                    SU l         g )NT)rm   rG   s    r(   
ungetTokenRCParser.ungetToken   s	    
r+   c                L    U R                  5       nX!:X  d   SU SU S35       eU$ )NzExpected token 'z', but got token 'z'!)r~   )r%   expectedtoks      r(   getCheckTokenRCParser.getCheckToken   s3    mmoV"28*<NseSU VV
r+   c                $    U R                  S5      $ )N,)r   rG   s    r(   getCommaTokenRCParser.getCommaToken   s    !!#&&r+   c                z    SnU R                   S:X  a  SnU R                  5         [        U R                   5      U-  $ )N   -rl   )r{   r~   int)r%   mults     r(   currentNumberTokenRCParser.currentNumberToken   s4    ::DMMO4::%%r+   c                x   U R                   R                  S5      (       d   U R                   5       eU R                   /n U R                  5       nUR                  S5      (       d  U R                  5         OUR	                  U5        MJ  SR                  U5      SS nS H  u  pEUR                  XE5      nM     U$ )N"r   r   rl   ))z""r   )z\r)z\n
)z\t	)r{   
startswithr~   r   r7   joinreplace)r%   bitsr   svalr'   os         r(   currentQuotedStringRCParser.currentQuotedString   s    zz$$S))54::5)

|--/C>>#&&!KK  wwt}Qr" MDA<<%D Mr+   c                    U R                  U5        U R                  5         U R                  b0  U R                  5         U R                  5         U R                  b  M/  gg)a%  
RCParser.loadDialogs(rcFileName) -> None
Load the dialog information into the parser. Dialog Definations can then be accessed
using the "dialogs" dictionary member (name->DialogDef). The "ids" member contains the dictionary of id->name.
The "names" member contains the dictionary of name->id
N)openr~   r{   parser%   rcstreams     r(   loadRCParser.load   sA     			(jj$JJLMMO jj$r+   c                \    [         R                   " U5      U l        SU R                  l        g )Nz//#)shlexr|   
commentersr   s     r(   r   RCParser.open  s    ;;x(#r+   c                v   [         R                   " U5      nSUl        SnUb  UR                  5       nUS:X  d  Uc  S nOuUS:X  ao  UR                  5       n[        UR                  5       5      nXPR                  U'   XPR
                  ;   a  OX@R
                  U'   U R                  U::  a
  US-   U l        Ub  M  g g )Nz// r   definer   )r   r   r}   r   rn   ro   next_id)r%   filer|   r{   r&   r'   s         r(   parseHRCParser.parseH  s    kk$MMOE{emH$ACMMO,A"#HHQKJJ 
 )*

1||q('(1u) r+   c                $   SU R                   0nU R                  U R                  U R                  U R                  S.nSnU R                  nUR                  U5      nUb  U" 5         g U R                  nU R                  5         U R                  c  g SU R                  :X  a  SnUS:w  a|  U R                  bn  U R                  5         U R                  SU R                  5        SU R                  :X  a  US-  nOSU R                  :X  a  US-  nUS:w  a  U R                  b  Ml  g g g g UR                  U R                  5      nUb(  U R                  SU R                   S	35        U" U5        g U R                  S
U-  5        U R                  5         g )NSTRINGTABLE)DIALOGDIALOGEXBITMAPr   r   BEGINr   zZooming overENDzDispatching ''zSkipping top-level '%s')	parse_stringtableparse_dialogparse_bitmap
parse_iconr{   getr~   rx   r   )r%   noid_parsers
id_parsersdeep
base_tokenrpresource_ids          r(   r   RCParser.parse  sb   411

 ''))''OO

 ZZ
j)>D
 **KMMOzz!$**$ aiDJJ$:MMOJJ~tzz:$**,	$**,	 aiDJJ$:i$:i  ^^DJJ/>JJtzzl!<={O
 JJ8:EFOO%r+   c                <   XR                   ;   a  U R                   U   nU$ S H8  nX:X  d  M
  [        [        U5      nX@R                   U'   X0R                  U'   Us  $    U R                  nU =R                  S-  sl        X R                   U'   XR                  U'   U$ )N)IDOKIDCANCELIDYESIDNOIDABORTr   )rn   getattrwin32conro   r   )r%   id_namer!   r&   vs        r(   addIdRCParser.addIdP  s    hh'"B 	 F<!,A"#HHQK$%JJqMH F BLLAL "HHW$JJrN	r+   c                
   U R                   SS S:X  d#  U R                   SS S:X  d  U R                   S:X  aM  U R                  5         U R                   SS S:X  a  M%  U R                   SS S:X  a  M:  U R                   S:X  a  ML  g g )Nr      LANG   SUBLANGr   )r{   r~   rG   s    r(   langRCParser.langa  sm    JJqOv%zz!A)+zzS MMO	 JJqOv%zz!A)+zzS r+   c                    U R                  5       S:w  a   U R                  5       S:w  a  M   U R                  S:X  a  g U R                  5       nM#  Nr   r   )r~   r{   )r%   res_idrP   s      r(   parse_textincludeRCParser.parse_textincludei  sE    mmo( mmo(zzU"A r+   c                F   U R                  5       S:w  a   U R                  5       S:w  a  M   U R                  5         U R                  S:X  a  g U R                  nU R                  5         [        XR                  U5      U R	                  5       5      nX R
                  U'   Mv  r   )r~   r{   r[   r   r   rq   )r%   sidsds      r(   r   RCParser.parse_stringtableq  s    mmo( mmo(MMOzzU"**CMMO3

31I1I1KLB$&S! r+   c                8    U R                  XR                  5      $ r   )parse_bitmap_or_iconrp   r%   r    s     r(   r   RCParser.parse_bitmap}  s    ((||<<r+   c                8    U R                  XR                  5      $ r   )r   rr   r   s     r(   r   RCParser.parse_icon  s    ((zz::r+   c                    U R                  5         U R                  R                  S5      (       d2  U R                  5         U R                  R                  S5      (       d  M2  U R                  SS nX2U'   g )Nr   r   rl   )r~   r{   r   )r%   r    dicbmfs       r(   r   RCParser.parse_bitmap_or_icon  sW    **'',,MMO **'',,jj2D	r+   c                   [        XR                  U5      5      n[        UR                  5      S:X  d   eX R                  U'   / nU R                  5         U R                  R                  5       (       dh  U R                  SU R                  5        UR                  U R                  5        U R                  5         U R                  R                  5       (       d  Mh  [        U R                  5      Ul        U R                  5         U R                  5         [        U R                  5      Ul        U R                  5         U R                  5         [        U R                  5      Ul        U R                  5         U R                  5         [        U R                  5      Ul        U R                  5         U R                  b  U R                  S:X  d  U R                  S:X  d  U R                  S:X  a  U R!                  U5        OU R                  S:X  a  U R#                  U5        OgU R                  S:X  a  U R%                  U5        OEU R                  S:X  a  U R'                  U5        O#U R                  S	:X  a  U R                  U5        OO/U R                  b"  U R                  S:X  d  U R                  S:X  d  M  UR)                  5       U R*                  U'   g )
Nr   extrar   r   STYLEEXSTYLECAPTIONFONTr   )r   r   lenr$   ri   r~   r{   isdigitrx   r7   r   r.   r   r/   r0   r1   dialogStyledialogExStyledialogCaption
dialogFontr8   rh   )r%   r    dlgextrass       r(   r   RCParser.parse_dialog  s   jj./3<< A%%%!d**$$&&JJw

+MM$**%MMO **$$&& DJJDJJDJJDJJ::%r)9TZZ5=PzzW$  %y(""3'y(""3'v%$w&c" ::%r)9TZZ5=P !557Tr+   c                ^    U R                  / [        R                  5      u  Ul        Ul         g r   )r"   r   
DS_SETFONTr2   r%   r   s     r(   r   RCParser.dialogStyle  s!     $B0C0C D	3:r+   c                b    U R                  5         U R                  / S5      u  Ul        Ul        g )Nr   )r~   r"   r3   r#   r   s     r(   r   RCParser.dialogExStyle  s$    $(KKA$6!S\r+   c                   UnUnSU R                   :X  a  U R                  5         SnSnUS-  S:X  a   SU R                   :X  d  SU R                   :X  d
  US-  S:X  Ga  U R                   Gb  SnSU R                   :X  a  SnU R                  5         US-  nU R                   S:w  a  U R                   [        R                  ;   a  [	        [        U R                   5      nO;U R                   [
        R                  ;   a  [	        [
        U R                   5      nOSnU(       aA  UR                  S	U R                   -   5        U R                  S
U R                   U5        XG) -  nO<UR                  U R                   5        U R                  SU R                   U5        XG-  nU R                  5         US-  S:X  a   SU R                   :X  d  SU R                   :X  d	  US-  S:X  a  U R                   b  GM  U R                  SU5        XC4$ )Nr   r   F   r   |NOTTzNOT zstyles add Notz
styles addz	style is )r{   r~   r   __dict__r   commctrlr7   rx   )r%   defaultsdefaultStylelistr2   r'   Notr_   s           r(   r"   RCParser.styles  s   djj MMOUaZSDJJ.%4::2EAPQEUVJ**$C

"FAzzS ::!2!22#Hdjj9EzzX%6%66 '$** = !KK 34JJ/UCVOEKK

+JJ|TZZ?NEMMO/ UaZSDJJ.%4::2EAPQEUVJ**$. 	

;&{r+   c                    SU R                   :X  a  U R                  5         U R                   SS U l         U R                  SU R                   5        U R                   Ul        U R                  5         g )Nr   r   rl   zCaption is:)r{   r~   rx   r-   r   s     r(   r   RCParser.dialogCaption  sO    

"MMOZZ"%


=$**-jjr+   c                f   SU R                   :X  a  U R                  5         [        U R                   5      Ul        U R	                  5         U R                  5         U R                   SS Ul        U R                  5         SU R                   :w  a#  U R                  5         SU R                   :w  a  M"  g g )Nr   r   rl   r   )r{   r~   r   r4   r   r5   r   s     r(   r   RCParser.dialogFont  sy    TZZMMO4::::a##MMO #r+   c                   U R                   S:X  a  U R                  5         / SQnU R                   S:w  Ga  [        5       nU R                   Ul        U R                  5         UR                  U;  a  U R                   SS S:X  a  U R	                  5       Ul        OwU R                   S:X  d  U R                   R                  5       (       a  [        U R                  5       5      Ul        O)[        U R                  U R                   5      5      Ul        U R                  5         U R                  5         U R                   S:X  d  U R                   R                  5       (       a'  U R                  5       Ul        UR                  Ul        O1U R                   Ul        U R                  UR                  5      Ul        U R                  5         UR                  S:X  a  U R                  5         U R                   SS	 Ul        [        [        R!                  UR                  S5      -  nU R                  5         U R                  5         U R#                  / U5      u  Ul        Ul        O-[        [        R!                  UR                  S5      -  nXCl        ['        U R                  5       5      Ul        U R                  5         ['        U R                  5       5      Ul        U R                  5         ['        U R                  5       5      Ul        U R                  5         U R                  5         ['        U R                   5      Ul        U R                  5         U R                   S
:X  a/  U R                  5         U R#                  / U5      u  Ul        Ul        U R                   S
:X  a3  U R                  5         U R#                  / [0        5      u  Ul        Ul        UR6                  R9                  U5        U R                   S:w  a  GM  g g )Nr   )r   r   r   r   r   r   r   r   r   rT   rl   r   )r{   r~   rC   rK   r   rO   r   rM   r   r   r   r!   rN   rL   rX   _addDefaultsr   r"   r2   r   r.   r/   r0   r1   rY   r3   r#   r$   r7   )r%   r   without_textr:   thisDefaultStyles        r(   r$   RCParser.controls  s   :: MMO HjjE! lG"&**GMMO"",6::a?c)$($<$<$>GM ZZ3&$***<*<*>*>$'(?(?(A$BGM %(

4::(>$?GM""$zzS DJJ$6$6$8$8!446
 '

 "ZZ
 $

7:: 6 ""i/"&**Qr"2#69I9IOOQ: $  ""$04B@P0Q-w~#69I9I'': $  !1DMMO,GI DMMO,GI DMMO,GI MMODJJGIMMOzzS 04B@P0Q-w~zzS 48KK-51!1 LL(} jjE!!r+   )	rp   rr   rn   r|   ro   r   rq   r{   rm   N)%r<   r=   r>   r?   r   rh   __annotations__ri   ru   r{   r)   rx   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r   r   r$   r@   rA   r+   r(   rf   rf      s    GOQGLQ%'H"'LE	
'
&"$-4/&b" 
'=;"8HE7#J	G)r+   rf   c                L   [        5       nU(       a  UR                  U5         UR                  U 5        U$ !   [        USS 5      nU(       aU  [	        SUR
                  5        [	        S5        [        S5       H  n[	        UR                  5       SS9  M     [	        5         e = f)Nr|   zERROR parsing dialogs at linezNext 10 tokens are:
   r   )end)rf   r   r   r   rv   linenoranger}   )rc_fileh_filercpr|   r'   s        r(   ParseStreamsr  7  s    
*C

6
 Jc5$'13::>'(2Ycmmo3/ Gs
   7 A,B#c                   U(       a  [        US5      nOU S S S-   n [        US5      n[        U S5      n [        X25      Ub  UR                  5         UR                  5         $ ! [         a`    [        R                  R	                  [        R                  R                  U 5      S5      n [        US5      n N! [         a    S n  Nf = ff = f! Ub  UR                  5         UR                  5         f = f)Nrr1   z
resource.h)r   OSErrorospathr   dirnamer  close)rc_nameh_namer  r  s       r(   Parser)  I  s    fc" "#		&#&F 7C GG,LLN  	WW\\"''//'":LIFfc* 	 LLNs5   A% 
C %AC-B;;CC
CC%C7c                `   [        X5      n[        R                  " U 5      n[        US5      nUR	                  SU-  5        UR	                  SU -  5        UR	                  S[
        -  5        UR	                  SU[        R                     U[        R                     4-  5        UR	                  S5        UR	                  S5        UR	                  S5        UR	                  S	5        UR	                  S
5        UR	                  S5        UR	                  S5        UR	                  S5        S HI  nUR	                  SU S35        [        R                  " [        X65      U5        UR	                  S5        MK     UR	                  S5        UR	                  S5        UR                  5         g)a	  Converts an .rc windows resource source file into a python source file
with the same basic public interface as the rest of this module.
Particularly useful for py2exe or other 'freeze' type solutions,
where a frozen .py file can be used inplace of a real .rc file.
wtz#%s
z3#This is a generated file. Please edit %s instead.
z__version__=%r
z_rc_size_=%d
_rc_mtime_=%d
zclass StringDef:
z'	def __init__(self, id, idNum, value):
z		self.id = id
z		self.idNum = idNum
z		self.value = value
z	def __repr__(self):
zE		return "StringDef(%r, %r, %r)" % (self.id, self.idNum, self.value)
zclass FakeParser:
)rh   rn   ro   rp   rr   rq   r   z = \
r   zdef Parse(s):
z	return FakeParser()
N)r)  r#  statr   write__version__ST_SIZEST_MTIMEpprintr   r&  )r'  output_namer(  r  in_statoutr    s          r(   GenerateFrozenResourcer5  b  s\    
 CgggG
{D
!CIIg#$IIDwNOII ;./II'4<< '$--"8
9	:
 II"#II9:II"#II()II()II'(IIR II#$L		BtfG$%gc(#.		$ M
 II II'(IIKr+   __main__r   z@See test_win32rcparser.py, and the win32rcparser directory (bothz9in the test suite) for an example of this module's usage.z-vTzDumping all resources in '%s'zDialog %s (%d controls)zString =zBitmap zIcon r   )2__doc__
__future__r   r#  r1  r   r,  sysr  r   
__author__r.  rU   	WS_BORDER
WS_TABSTOPBS_GROUPBOXSS_LEFTBS_DEFPUSHBUTTON	SS_CENTERSS_RIGHTSS_ICON
LBS_NOTIFYr  WS_CHILD
WS_VISIBLErX   rY   r   rC   r[   rf   r  r)  r5  r<   r   argvrv   filenameru   	resourcesrh   itemsr!   ddefrq   sdefr_   rp   rr   rA   r+   r(   <module>rM     s  
 # 	    
  
 . ""X%8%88$$..1D1DD%%""
 ''(*=*==  $ $N< <~I IE) E)P$2%P z
388}gPQIJ88A;388$(H!-89(O	!))//1HB+r3t9o=>MM$G 2 "--335HBGB4q/0G 6 "))//1HBGB4q)*G 2 "--/HBE"Qth'(G 0- r+   