
    @wg                     f    d dl mZmZmZ ddlmZmZmZmZ ddl	m
Z
mZ  ed      Z G d de      Zy)	    )AnyListOptional   )BooleanObject
NameObjectNumberObjectis_null_or_none)ArrayObjectDictionaryObjectFc                   0    e Zd Zdedee   defdZdededdfdZdedee	   dee	   fdZ
ded	ee   de	ddfd
Zdedeee      defdZdedee   ddfdZdedee   defdZdededdfdZede	fd       Zddededd fdZddee   ddf fdZ xZS )ViewerPreferenceskeydeftreturnc                 &    | j                  ||      S Ngetselfr   r   s      P/var/www/horilla/myenv/lib/python3.12/site-packages/pypdf/generic/_viewerpref.py	_get_boolzViewerPreferences._get_bool*       xxT""    vNc                 6    t        |du       | t        |      <   y )NT)r   r   r   r   r   s      r   	_set_boolzViewerPreferences._set_bool-   s     -a4i 8Z_r   c                 &    | j                  ||      S r   r   r   s      r   	_get_namezViewerPreferences._get_name0   r   r   lstc                     |d   dk7  rt        | d      |g k7  r||vrt        | d      t        |      | t        |      <   y )Nr   /z is not starting with '/'z  is not par of acceptable values)
ValueErrorr   )r   r   r"   r   s       r   	_set_namezViewerPreferences._set_name3   sR    Q43;s";<=="9#s"BCDD *1Z_r   c                 H    | j                  ||d       S t        |            S r   )r   r   r   s      r   _get_arrzViewerPreferences._get_arr:   s$    xxT\TII{47HIIr   c                     |	 | t        |      = y t        |t              st	        d      || t        |      <   y # t        $ r Y y w xY w)NzArrayObject is expected)r   KeyError
isinstancer   r%   r   s      r   _set_arrzViewerPreferences._set_arr=   sX    9C) ![)677 !Z_  s   ; 	AAc                 &    | j                  ||      S r   r   r   s      r   _get_intzViewerPreferences._get_intH   r   r   c                 2    t        |      | t        |      <   y r   )r	   r   r   s      r   _set_intzViewerPreferences._set_intK   s     ,QZ_r   c                     t        d      S )N/PrintScaling)r   )r   s    r   PRINT_SCALINGzViewerPreferences.PRINT_SCALINGN   s    /**r   clsvaluec                    dt         dt        t           dt        fd}dt         dt        t            dt        t
           dt        fd}dt         dt        t           dt        fd}dt         dt        t           dt        fd} |d	t              | _	         |d
t              | _
         |dt              | _         |dt              | _         |dt              | _         |dt              | _         |dg dt        d            | _         |dddgt        d            | _         |dg d       | _         |dg d       | _         |dg d       | _         |dg d       | _         |dg d       | _         |dg dd       | _         |dd       | _         |dd       | _         |dd       | _         |dt                     | _        t7        j8                  |       S ) Nr   r   r   c           
      >     t         fd fdd d  d d      S )Nc                 (    | j                        S r   )r   r   r   r   s    r   <lambda>zCViewerPreferences.__new__.<locals>._add_prop_bool.<locals>.<lambda>U       T^^C6 r   c                 (    | j                  |      S r   )r   r   r   r   s     r   r:   zCViewerPreferences.__new__.<locals>._add_prop_bool.<locals>.<lambda>V   s    sA 6 r   *
            Returns/Modify the status of 
, Returns  if not defined
            propertyr   r   s   ``r   _add_prop_boolz1ViewerPreferences.__new__.<locals>._add_prop_boolS   s3    66**-j ?	 r   r"   c                 H     t         fd fdd d  d d d      S )Nc                 (    | j                        S r   )r!   r9   s    r   r:   zCViewerPreferences.__new__.<locals>._add_prop_name.<locals>.<lambda>a   r;   r   c                 *    | j                  |      S r   )r&   )r   r   r   r"   s     r   r:   zCViewerPreferences.__new__.<locals>._add_prop_name.<locals>.<lambda>b   s    sC ; r   r>   r?   z0 if not defined.
            Acceptable values: z
            rA   )r   r"   r   s   ```r   _add_prop_namez1ViewerPreferences.__new__.<locals>._add_prop_name]   s?     6;**-j ?  #u %	 r   c           
      >     t         fd fdd d  d d      S )Nc                 (    | j                        S r   )r(   r9   s    r   r:   zBViewerPreferences.__new__.<locals>._add_prop_arr.<locals>.<lambda>l       T]]35 r   c                 (    | j                  |      S r   )r,   r=   s     r   r:   zBViewerPreferences.__new__.<locals>._add_prop_arr.<locals>.<lambda>m       c1 5 r   r>   r?   r@   rA   rC   s   ``r   _add_prop_arrz0ViewerPreferences.__new__.<locals>._add_prop_arrj   3    55**-j ?	 r   c           
      >     t         fd fdd d  d d      S )Nc                 (    | j                        S r   )r.   r9   s    r   r:   zBViewerPreferences.__new__.<locals>._add_prop_int.<locals>.<lambda>v   rK   r   c                 (    | j                  |      S r   )r0   r=   s     r   r:   zBViewerPreferences.__new__.<locals>._add_prop_int.<locals>.<lambda>w   rM   r   r>   r?   r@   rA   rC   s   ``r   _add_prop_intz0ViewerPreferences.__new__.<locals>._add_prop_intt   rO   r   z/HideToolbarz/HideMenubarz/HideWindowUIz
/FitWindowz/CenterWindowz/DisplayDocTitlez/NonFullScreenPageMode)/UseNonez/UseOutlinesz
/UseThumbsz/UseOCrT   z
/Directionz/L2Rz/R2Lz	/ViewAreaz	/ViewClipz
/PrintAreaz
/PrintClipr2   z/Duplex)z/Simplexz/DuplexFlipShortEdgez/DuplexFlipLongEdgez/PickTrayByPDFSizez/PrintPageRangez
/NumCopiesz/Enforce)strr   r   rB   r   r   r   intf_objhide_toolbarhide_menubarhide_windowui
fit_windowcenter_windowdisplay_doctitlenon_fullscreen_pagemode	direction	view_area	view_clip
print_area
print_clipprint_scalingduplexpick_tray_by_pdfsizeprint_pagerange
num_copiesenforcer   __new__)r4   r5   rD   rH   rN   rS   s         r   rj   zViewerPreferences.__new__R   s   	 	8M+B 	x 			9	,4Z,@			s 	(;*? 	H 		s 	(3- 	H 	 *.%@).%@*?EB'e<*?EB-.@%H&4$@z"'
#
 '66*Jv,>
 '{B=&{B='b$?'b$?*?BE#RTX

 $22F#M +,=tD&|T:#J>'',,r   objc                     t         |   |        t        |      s| j                  |j	                                	 |j
                  | _        y # t        $ r Y y w xY wr   )super__init__r
   updateitemsindirect_referenceAttributeError)r   rk   	__class__s     r   rn   zViewerPreferences.__init__   sO    s#KK		$	&)&<&<D# 		s   A 	AAr   )__name__
__module____qualname__rU   r   r   r   boolr   r   r!   r   r&   r   r	   r(   r   r,   r.   rV   r0   rB   r3   rj   r   rn   __classcell__)rs   s   @r   r   r   )   s]   #S #(? #M #9S 9T 9d 9#S #(< #*AU #.S .tCy .Z .D .JC JxS	': J| J	"C 	"H[$9 	"d 	"#C #x'= #, #0C 0C 0D 0 +z + +I-S I- I-0C I-VH%56 $  r   r   N)typingr   r   r   _baser   r   r	   r
   _data_structuresr   r   rW   r    r   r   <module>r}      s4   :  L K ;e{( {r   