a
    còfò  ã                   @   sT   d dl mZmZmZ ddlmZmZmZ ddlm	Z	m
Z
 edƒZG dd„ de
ƒZdS )	é    )ÚAnyÚListÚOptionalé   )ÚBooleanObjectÚ
NameObjectÚNumberObject)ÚArrayObjectÚDictionaryObjectFc                       s  e Zd Zeee edœdd„Zeeddœdd„Zeee	 ee	 dœdd	„Z
eee e	dd
œdd„Zeeee  edœdd„Zeee ddœdd„Zeee edœdd„Zeeddœdd„Zee	dœdd„ƒZdeed dœdd„Zdee ddœ‡ fdd„Z‡  ZS ) ÚViewerPreferences©ÚkeyÚdeftÚreturnc                 C   s   |   ||¡S ©N©Úget©Úselfr   r   © r   úV/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/pypdf/generic/_viewerpref.pyÚ	_get_bool*   s    zViewerPreferences._get_boolN)r   Úvr   c                 C   s   t |du ƒ| t|ƒ< d S )NT)r   r   ©r   r   r   r   r   r   Ú	_set_bool-   s    zViewerPreferences._set_boolc                 C   s   |   ||¡S r   r   r   r   r   r   Ú	_get_name0   s    zViewerPreferences._get_name)r   Úlstr   r   c                 C   sL   |d dkrt |› d�ƒ‚|g kr8||vr8t |› d�ƒ‚t|ƒ| t|ƒ< d S )Nr   ú/z is not starting with '/'z  is not par of acceptable values)Ú
ValueErrorr   )r   r   r   r   r   r   r   Ú	_set_name3   s
    zViewerPreferences._set_namec                 C   s   |   ||d u rd nt|ƒ¡S r   )r   r	   r   r   r   r   Ú_get_arr:   s    zViewerPreferences._get_arrc                 C   sP   |d u r.z| t |ƒ= W n ty(   Y n0 d S t|tƒs@tdƒ‚|| t |ƒ< d S )NzArrayObject is expected)r   ÚKeyErrorÚ
isinstancer	   r   r   r   r   r   Ú_set_arr=   s    
zViewerPreferences._set_arrc                 C   s   |   ||¡S r   r   r   r   r   r   Ú_get_intH   s    zViewerPreferences._get_intc                 C   s   t |ƒ| t|ƒ< d S r   )r   r   r   r   r   r   Ú_set_intK   s    zViewerPreferences._set_int)r   c                 C   s   t dƒS )Nú/PrintScaling)r   ©r   r   r   r   ÚPRINT_SCALINGN   s    zViewerPreferences.PRINT_SCALING)ÚclsÚvaluer   c                 C   sf  t tt tdœdd„}t tt  tt tdœdd„}t tt tdœdd„}t tt tdœd	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ƒ ƒ| _t | ¡S )"Nr   c              	      s.   t ‡ ‡fdd„‡fdd„d dˆ› dˆ › d�ƒS )Nc                    s   |   ˆˆ ¡S r   )r   r'   ©r   r   r   r   Ú<lambda>U   ó    zCViewerPreferences.__new__.<locals>._add_prop_bool.<locals>.<lambda>c                    s   |   ˆ |¡S r   )r   ©r   r   ©r   r   r   r,   V   r-   ú*
            Returns/Modify the status of ú
, Returns ú if not defined
            ©Úproperty©r   r   r   r+   r   Ú_add_prop_boolS   s    
ÿÿüz1ViewerPreferences.__new__.<locals>._add_prop_bool)r   r   r   r   c                    s6   t ‡ ‡fdd„‡‡fdd„d dˆ› dˆ › dˆ› d�ƒS )Nc                    s   |   ˆˆ ¡S r   )r   r'   r+   r   r   r,   a   r-   zCViewerPreferences.__new__.<locals>._add_prop_name.<locals>.<lambda>c                    s   |   ˆ ˆ|¡S r   )r   r.   )r   r   r   r   r,   b   r-   r0   r1   z0 if not defined.
            Acceptable values: z
            r3   )r   r   r   r   )r   r   r   r   Ú_add_prop_name]   s    ÿÿþüz1ViewerPreferences.__new__.<locals>._add_prop_namec              	      s.   t ‡ ‡fdd„‡fdd„d dˆ› dˆ › d�ƒS )Nc                    s   |   ˆˆ ¡S r   )r    r'   r+   r   r   r,   l   r-   zBViewerPreferences.__new__.<locals>._add_prop_arr.<locals>.<lambda>c                    s   |   ˆ |¡S r   )r#   r.   r/   r   r   r,   m   r-   r0   r1   r2   r3   r5   r   r+   r   Ú_add_prop_arrj   s    
ÿÿüz0ViewerPreferences.__new__.<locals>._add_prop_arrc              	      s.   t ‡ ‡fdd„‡fdd„d dˆ› dˆ › d�ƒS )Nc                    s   |   ˆˆ ¡S r   )r$   r'   r+   r   r   r,   v   r-   zBViewerPreferences.__new__.<locals>._add_prop_int.<locals>.<lambda>c                    s   |   ˆ |¡S r   )r%   r.   r/   r   r   r,   w   r-   r0   r1   r2   r3   r5   r   r+   r   Ú_add_prop_intt   s    
ÿÿüz0ViewerPreferences.__new__.<locals>._add_prop_intz/HideToolbarz/HideMenubarz/HideWindowUIz
/FitWindowz/CenterWindowz/DisplayDocTitlez/NonFullScreenPageMode)ú/UseNonez/UseOutlinesz
/UseThumbsz/UseOCr:   z
/Directionz/L2Rz/R2Lz	/ViewAreaz	/ViewClipz
/PrintAreaz
/PrintClipr&   z/Duplex)z/Simplexz/DuplexFlipShortEdgez/DuplexFlipLongEdgez/PickTrayByPDFSizez/PrintPageRangez
/NumCopiesz/Enforce)Ústrr   r   r4   r   r   r	   ÚintÚf_objZhide_toolbarZhide_menubarZhide_windowuiZ
fit_windowZcenter_windowZdisplay_doctitleZnon_fullscreen_pagemodeÚ	directionZ	view_areaZ	view_clipZ
print_areaZ
print_clipZprint_scalingZduplexZpick_tray_by_pdfsizeZprint_pagerangeZ
num_copiesZenforcer
   Ú__new__)r)   r*   r6   r7   r8   r9   r   r   r   r?   R   sB    þ

ýÿ
ÿzViewerPreferences.__new__)Úobjr   c                    sF   t ƒ  | ¡ |d ur"|  | ¡ ¡ z|j| _W n ty@   Y n0 d S r   )ÚsuperÚ__init__ÚupdateÚitemsZindirect_referenceÚAttributeError)r   r@   ©Ú	__class__r   r   rB   �   s    zViewerPreferences.__init__)N)N)Ú__name__Ú
__module__Ú__qualname__r;   r   r   r   Úboolr   r   r   r   r   r   r   r    r	   r#   r$   r<   r%   r4   r(   r?   r
   rB   Ú__classcell__r   r   rF   r   r   )   s   Kr   N)Útypingr   r   r   Ú_baser   r   r   Z_data_structuresr	   r
   r=   r   r   r   r   r   Ú<module>   s   