
    %
i=W                       d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	dZ
dZdddddddddd	d
ddddZe	j        e	j        z  e	j        e	j        e	j        e	j        z  e	j        e	j        e	j        e	j        e	j        d	Ze	j        e	j        z  ZdZ G d d          Z G d d          Z G d d          Z G d d          Zd Zd&dZ d&dZ!e"dk    r| e#ej$                  dk    r- e%e             e%              e%d            e%d           dS ej$        d         Z&dej$        v rde_'         e%d e&z              e e&          Z(e(j)        *                                D ]8\  Z+Z, e%d!e+ e#e,          fz              ej        e,            e%             9e(j-        *                                D ]%\  Z+Z. e%d"e+ d#e.j/                    e%             &e(j0        *                                D ] \  Z+Z. e%d$e+ d#e.            e%             !e(j1        *                                D ]"\  Z+Z. e%d%e+ d#e.            e%             !dS dS )'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                  J    e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZd Zd ZdS )	DialogDef r   NzMS Sans Serif   c                L    || _         || _        g | _        g | _        g | _        d S N)nameidstylesstylesExcontrols)selfnis      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\win32/lib/win32rcparser.py__init__zDialogDef.__init__M   s)    	    c                    d }| j         | j        | j        | j        | j        f| j        | j        | j        | j        fgg| _	        | j
        D ].}| j	                            |                                           /| j	        S r   )captionxywhstylestyleExfontSizefonttemplater#   appendcreateDialogTemplate)r$   tcontrols      r'   r6   zDialogDef.createDialogTemplateU   s     0
	*
 } 	A 	AGM  !=!=!?!?@@@@}r)   )__name__
__module____qualname__r   r    r0   r1   r+   r3   r2   r,   r-   r.   r/   r4   r(   r6    r)   r'   r   r   ?   sn        D	
BEGGDH	A	A	A	AH      r)   r   c                  L    e Zd ZdZdZdZdZeZe	Z
dZdZdZdZdZd Zd Zd ZdS )
ControlDefr   r   c                "    g | _         g | _        d S r   )r!   r"   r$   s    r'   r(   zControlDef.__init__s   s    r)   c                   d| j         z   dz   | j        z   dz   | j        z   dz   t          | j                  z   dz   t          | j                  z   dz   t          | j                  z   dz   | j        z   dz   t          | j                  z   d	z   t          | j	                  z   d
z   t          | j
                  z   dz   t          | j                  z   dz   }|S )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idNumr0   r!   labelr,   r-   r.   r/   )r$   ss     r'   toStringzControlDef.toStringw   s,   g  	
 l  $*oo  $*oo	 
 $+  j  $&kk  !" $&kk#$ %& $&kk'( )* $&kk+, - 	
2 r)   c                    | j         }d|k    r| j        }|t          v rt          |         }|| j        | j        | j        | j        | j        | j        f| j	        | j
        g}|S )NCONTROL)rC   rD   _controlMaprG   rF   r,   r-   r.   r/   r0   r1   )r$   ctr7   s      r'   r6   zControlDef.createDialogTemplate   sg    ??BRBJJVTVTVTV,JL
 r)   N)r9   r:   r;   r    rC   rD   rF   defaultControlStyler0   defaultControlStyleExr1   rG   r,   r-   r.   r/   r(   rI   r6   r<   r)   r'   r>   r>   f   sx        	BKGEE#GE	A	A	A	A    8    r)   r>   c                      e Zd Zd Zd ZdS )	StringDefc                0    || _         || _        || _        d S r   r    rF   value)r$   r    rF   rT   s       r'   r(   zStringDef.__init__   s    



r)   c                8    d| j         d| j        d| j        dS )Nz
StringDef(z, )rS   r@   s    r'   __repr__zStringDef.__repr__   s)    HDGHHHHHHHHr)   N)r9   r:   r;   r(   rW   r<   r)   r'   rQ   rQ      s7          
I I I I Ir)   rQ   c                      e Zd ZU dZi Zded<   i Zded<   dZdZd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d  Z!d! Z"d"S )#RCParseri  z?dict[str, list[list[str | int | None | tuple[str | int, ...]]]]dialogszdict[str, DialogDef]_dialogsFr   c                b    d| _         ddi| _        ddi| _        i | _        i | _        i | _        d S )NF
IDC_STATIC)ungotidsnamesbitmapsstringTableiconsr@   s    r'   r(   zRCParser.__init__   s;    
 "%,'



r)   c                6    | j         rt          |           d S d S r   )debugEnabledprint)r$   argss     r'   debugzRCParser.debug   s&     	$KKKKK	 	r)   c                   | j         r)d| _         |                     d| j                   | j        S | j                                        | _        |                     d| j                   | j        dk    rd | _        | j        S )NFzgetToken returns (ungot):zgetToken returns:r   )r_   ri   tokenlex	get_tokenr@   s    r'   getTokenzRCParser.getToken   sz    : 	DJJJ2DJ???:X''))


&
333:DJzr)   c                    d| _         d S )NT)r_   r@   s    r'   
ungetTokenzRCParser.ungetToken   s    


r)   c                \    |                                  }||k    sJ d| d| d            |S )NzExpected token 'z', but got token 'z'!)rn   )r$   expectedtoks      r'   getCheckTokenzRCParser.getCheckToken   s;    mmooh V8 V Vs V V V
r)   c                ,    |                      d          S )N,)rt   r@   s    r'   getCommaTokenzRCParser.getCommaToken   s    !!#&&&r)   c                v    d}| j         dk    rd}|                                  t          | j                   |z  S )N   -r^   )rk   rn   int)r$   mults     r'   currentNumberTokenzRCParser.currentNumberToken   s9    :DMMOOO4:%%r)   c                   | j                             d          sJ | j                     | j         g}	 |                                 }|                    d          s|                                  n|                    |           Td                    |          dd         }dD ]\  }}|                    ||          }|S )N"ry   r   r^   ))z""r   )z\r)z\n
)z\t	)rk   
startswithrn   rp   r5   joinreplace)r$   bitsrs   svalr&   os         r'   currentQuotedStringzRCParser.currentQuotedString   s    z$$S))554:55)
|	--//C>>#&& !!!KK	 wwt}}QrT" M 	& 	&DAq<<1%%DDr)   c                    |                      |           |                                  | j        1|                                  |                                  | j        /dS dS )aM  
        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)openrn   rk   parser$   rcstreams     r'   loadzRCParser.load   s[     			(j$JJLLLMMOOO j$$$$$r)   c                P    t          j         |          | _        d| j        _        d S )Nz//#)shlexrl   
commentersr   s     r'   r   zRCParser.open  s#    ;x((#r)   c                f   t          j         |          }d|_        d}||                                }|dk    s|d }nn|dk    rh|                                }t          |                                          }|| j        |<   || j        v rn
|| j        |<   | j        |k    r
|dz   | _        |d S d S )Nz// r   definery   )r   r   rm   r{   r`   ra   next_id)r$   filerl   rk   r%   r&   s         r'   parseHzRCParser.parseH  s    k$MMOOE{{emH$$ACMMOO,,A"#DHQKDJ 
 )*
1|q(('(1u) r)   c                   d| j         i}| j        | j        | j        | j        d}d}| j        }|                    |          }| |             d S | j        }|                                  | j        d S d| j        k    rtd}|dk    rf| j        a|                                  |                     d| j                   d| j        k    r|dz  }nd| j        k    r|dz  }|dk    r| j        ]d S d S d S d S |                    | j                  }|+|                     d| j         d	            ||           d S |                     d
|z             |                                  d S )NSTRINGTABLE)DIALOGDIALOGEXBITMAPr   r   BEGINry   zZooming overENDzDispatching ''zSkipping top-level '%s')	parse_stringtableparse_dialogparse_bitmap
parse_iconrk   getrn   ri   rp   )r$   noid_parsers
id_parsersdeep
base_tokenrpresource_ids          r'   r   zRCParser.parse  s   41

 ')'O
 

 Z
j))>BDDDDD
 *KMMOOOz!$*$$ aiiDJ$:MMOOOJJ~tz:::$*,,	$*,,	 aiiDJ$:$:$:ii$:$:ii  ^^DJ//>JJ<tz<<<===B{OOOOO
 JJ8:EFFFOO%%%%%r)   c                    || j         v r| j         |         }ncdD ]5}||k    r-t          t          |          }|| j         |<   || j        |<   |c S 6| j        }| xj        dz  c_        || j         |<   || j        |<   |S )N)IDOKIDCANCELIDYESIDNOIDABORTry   )r`   getattrwin32conra   r   )r$   id_namer    r%   vs        r'   addIdzRCParser.addIdP  s    dh'"BB F  a<<!,,A"#DHQK$%DJqMHHH	  
 BLLALL "DHW$DJrN	r)   c                    | j         dd         dk    s| j         dd         dk    s| j         dk    rG|                                  | j         dd         dk    '| j         dd         dk    :| j         dk    Ed S d S )Nr      LANG   SUBLANGrv   )rk   rn   r@   s    r'   langzRCParser.langa  s    JqsOv%%z!A#)++zS  MMOOO	 JqsOv%%z!A#)++zS      r)   c                    |                                  dk    r	 |                                  dk    	 | j        dk    rd S |                                  }"Nr   ry   r   )rn   rk   )r$   res_idrH   s      r'   parse_textincludezRCParser.parse_textincludei  sV    mmoo(( mmoo((	 zU""A	 r)   c                `   |                                  dk    r	 |                                  dk    	 |                                   | j        dk    rd S | j        }|                                   t          ||                     |          |                                           }|| j        |<   }r   )rn   rk   rQ   r   r   rc   )r$   sidsds      r'   r   zRCParser.parse_stringtableq  s    mmoo(( mmoo((	'MMOOOzU""*CMMOOO3

31I1I1K1KLLB$&DS!	'r)   c                8    |                      || j                  S r   )parse_bitmap_or_iconrb   r$   r   s     r'   r   zRCParser.parse_bitmap}  s    ((t|<<<r)   c                8    |                      || j                  S r   )r   rd   r   s     r'   r   zRCParser.parse_icon  s    ((tz:::r)   c                    |                                   | j                            d          s.|                                   | j                            d          .| j        dd         }|||<   d S )Nr   ry   r^   )rn   rk   r   )r$   r   dicbmfs       r'   r   zRCParser.parse_bitmap_or_icon  sk    *'',, 	MMOOO *'',, 	j2D			r)   c                   t          ||                     |                    }t          |j                  dk    sJ || j        |<   g }|                                  | j                                        sb|                     d| j                   |	                    | j                   |                                  | j                                        bt          | j                  |_        |                                  |                                  t          | j                  |_        |                                  |                                  t          | j                  |_        |                                  |                                  t          | j                  |_        |                                  | j        | j        dk    s| j        dk    s| j        dk    r|                     |           n| j        dk    r|                     |           nd| j        dk    r|                     |           nC| j        dk    r|                     |           n"| j        d	k    r|                     |           nn| j        | j        dk    s| j        dk    |                                | j        |<   d S )
Nr   extrar   r   STYLEEXSTYLECAPTIONFONTr   )r   r   lenr#   r[   rn   rk   isdigitri   r5   r{   r,   rw   r-   r.   r/   dialogStyledialogExStyledialogCaption
dialogFontr6   rZ   )r$   r   dlgextrass       r'   r   zRCParser.parse_dialog  sx   djj..//3<  A%%%%!d*$$&& 	JJw
+++MM$*%%%MMOOO *$$&& 	 DJDJDJDJ:%r)9)9TZ5=P=PzW$$  %%%%y((""3''''y((""3''''v%%$$$$w&&c"""" :%r)9)9TZ5=P=P !5577Tr)   c                `    |                      g t          j                  \  |_        |_         d S r   )r!   r   
DS_SETFONTr0   r$   r   s     r'   r   zRCParser.dialogStyle  s%     $B0C D D	3:::r)   c                t    |                                   |                     g d          \  |_        |_        d S )Nr   )rn   r!   r1   r"   r   s     r'   r   zRCParser.dialogExStyle  s/    $(KKA$6$6!S\\\r)   c                   |}|}d| j         k    r|                                  d}d}|dz  dk    rd| j         k    sd| j         k    s
|dz  dk    rZ| j         Rd}d| j         k    rd}|                                  |dz  }| j         dk    r| j         t          j        v rt	          t          | j                   }n0| j         t
          j        v rt	          t
          | j                   }nd}|r@|                    d	| j         z              |                     d
| j         |           || z  }n;|                    | j                    |                     d| j         |           ||z  }|                                  |dz  dk    rd| j         k    sd| j         k    s	|dz  dk    r| j         R|                     d|           ||fS )Nr   r   F   ry   |NOTTzNOT zstyles add Notz
styles addz	style is )rk   rn   r   __dict__r   commctrlr5   ri   )r$   defaultsdefaultStylelistr0   r&   NotrT   s           r'   r!   zRCParser.styles  s   dj  MMOOOUaZZSDJ..%4:2E2EAPQEUVJJ*$C
""FAzS  :!222#Hdj99EEzX%666 '$* = = ! #KK 3444JJ/UCCCeVOEEKK
+++JJ|TZ???UNEMMOOO/ UaZZSDJ..%4:2E2EAPQEUVJJ*$. 	

;&&&d{r)   c                    d| j         k    r|                                  | j         dd         | _         |                     d| j                    | j         |_        |                                  d S )Nr   ry   r^   zCaption is:)rk   rn   ri   r+   r   s     r'   r   zRCParser.dialogCaption  s^    
""MMOOOZ"%


=$*---jr)   c                n   d| j         k    r|                                  t          | j                   |_        |                                  |                                  | j         dd         |_        |                                  d| j         k    r!|                                  d| j         k    d S d S )Nr   ry   r^   r   )rk   rn   r{   r2   rw   r3   r   s     r'   r   zRCParser.dialogFont  s    TZMMOOO4::ad###MMOOO ######r)   c                h   | j         dk    r|                                  g d}| j         dk    rt                      }| j         |_        |                                  |j        |vr| j         dd         dk    r|                                 |_        nw| j         dk    s| j                                         r't          |                                           |_        n,t          | 	                    | j                             |_        | 
                                 |                                  | j         dk    s| j                                         r&|                                 |_        |j        |_        n+| j         |_        | 	                    |j                  |_        | 
                                 |j        dk    r|                                  | j         dd	         |_        t          t                              |j        d          z  }| 
                                 |                                  |                     g |          \  |_        |_        n/t          t                              |j        d          z  }||_        t'          |                                           |_        | 
                                 t'          |                                           |_        | 
                                 t'          |                                           |_        | 
                                 |                                  t'          | j                   |_        |                                  | j         d
k    r7|                                  |                     g |          \  |_        |_        | j         d
k    r<|                                  |                     g t0                    \  |_        |_        |j                            |           | j         dk     d S d S )Nr   )r   r   r   r   r   r   ry   r   rz   rK   r^   rv   )rk   rn   r>   rC   r   rG   r   rE   r}   r   rw   r    rF   rD   rN   _addDefaultsr   r!   r0   r{   r,   r-   r.   r/   rO   r1   r"   r#   r5   )r$   r   without_textr8   thisDefaultStyles        r'   r#   zRCParser.controls  s   :  MMOOO HGGjE!! llG"&*GMMOOO",66:ac?c))$($<$<$>$>GMM Z3&&$**<*<*>*>&$'(?(?(A(A$B$BGMM %(

4:(>(>$?$?GM""$$$zS  DJ$6$6$8$8 !4466
 '
 "Z
 $

7: 6 6   "i//"&*QrT"2#69I9IOQ: : $  ""$$$04B@P0Q0Q-w~~#69I9I': : $  !1DMMOO,,GI   DMMOO,,GI   DMMOO,,GI   MMOOODJGIMMOOOzS  04B@P0Q0Q-w~zS  48KK-5 51!1 L(((} jE!!!!!!r)   N)#r9   r:   r;   r   rZ   __annotations__r[   rf   rk   r(   ri   rn   rp   rt   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   r   r#   r<   r)   r'   rY   rY      s        GOQGQQQQ%'H''''LE    	 	 	    
' ' '
& & &  "  $ $ $- - -4/& /& /&b  "       
' 
' 
'= = =; ; ;  "8 "8 "8HE E E7 7 7# # #J  	 	 	G) G) G) G) G)r)   rY   c                ~   t                      }|r|                    |           	 |                    |            n#  t          |dd           }|rgt	          d|j                   t	          d           t          d          D ]%}t	          |                                d           &t	                        xY w|S )Nrl   zERROR parsing dialogs at linezNext 10 tokens are:
   r   )end)rY   r   r   r   rg   linenorangerm   )rc_fileh_filercprl   r&   s        r'   ParseStreamsr   7  s    
**C 

6
c5$'' 	13:>>>'(((2YY 0 0cmmoo3/////GGGJs
   = A=B:c                <   |rt          |d          }n| d d         dz   }	 t          |d          }nq# t          $ rd t          j                            t          j                            |           d          }	 t          |d          }n# t          $ r d }Y nw xY wY nw xY wt          | d          }	 t          ||          ||                                 |                                 S # ||                                 |                                 w xY w)Nrr/   z
resource.h)r   OSErrorospathr   dirnamer   close)rc_nameh_namer   r   s       r'   Parser  I  s,    fc"" "#		&#&&FF 	 	 	W\\"'//'":":LIIFfc**   	 7C  GGV,,LLNNN LLNNNs@   3 AB!;BB!BB!BB! B!5C/ /,Dc                   t          | |          }t          j        |           }t          |d          }|                    d|z             |                    d| z             |                    dt
          z             |                    d|t          j                 |t          j                 fz             |                    d           |                    d           |                    d           |                    d	           |                    d
           |                    d           |                    d           |                    d           dD ]S}|                    d| d           t          j        t          ||          |           |                    d           T|                    d           |                    d           |
                                 dS )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:
)rZ   r`   ra   rb   rd   rc   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'   GenerateFrozenResourcer  b  s    
 
 CggG
{D
!
!CIIg#$$$IIDwNOOOII ;.///II'4< '$-"8
9	:  
 II"###II9:::II"###II()))II()))II'(((IIR   II#$$$L  		$t$$$%%%gc4((#...		$II   II'(((IIKKKKKr)   __main__ry   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   r	  r   r  sysr   r   
__author__r  rL   	WS_BORDER
WS_TABSTOPBS_GROUPBOXSS_LEFTBS_DEFPUSHBUTTON	SS_CENTERSS_RIGHTSS_ICON
LBS_NOTIFYr   WS_CHILD
WS_VISIBLErN   rO   r   r>   rQ   rY   r   r  r  r9   r   argvrg   filenamerf   	resourcesrZ   itemsr    ddefrc   sdefrT   rb   rd   r<   r)   r'   <module>r%     s   
 # " " " " " 				    



  
  . "X%88$.1DD%"
 
 '(*==  $ $ $ $ $ $ $ $N< < < < < < < <~I I I I I I I IE) E) E) E) E) E) E) E)P  $   2% % % %P z
s38}}gPQQQIJJJJJ8A;38$(H!-8999E(OO	!)//11 	 	HBE+r33t99o=>>>FM$EGGGG!-3355 	 	HBE/B////000EGGGG!)//11 	 	HBE)B))))***EGGGG!--// 	 	HBE'"''t''(((EGGGG1 ,	 	r)   