o
    ZhS                     @   sX   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 deZdS )	    )AnyListOptional   )BooleanObject
NameObjectNumberObjectis_null_or_none)ArrayObjectDictionaryObjectFc                       s*  e Zd Zd dee ddf fddZdedee defdd	Zded
e	ddfddZ
dedee dee fddZdedee d
eddfddZdedeee  defddZded
ee ddfddZdedee defddZded
eddfddZedefddZd dededd fddZ  ZS )!ViewerPreferencesNobjreturnc                    sF   t  |  t|s| |  z|j| _W d S  ty"   Y d S w N)super__init__r	   updateitemsZindirect_referenceAttributeError)selfr   	__class__ P/var/www/html/lang_env/lib/python3.10/site-packages/pypdf/generic/_viewerpref.pyr   *   s   zViewerPreferences.__init__keydefaultc                 C      |  ||S r   getr   r   r   r   r   r   	_get_bool3      zViewerPreferences._get_boolvc                 C   s   t |du | t|< d S )NT)r   r   r   r   r"   r   r   r   	_set_bool6   s   zViewerPreferences._set_boolc                 C   r   r   r   r   r   r   r   	_get_name9   r!   zViewerPreferences._get_namelstc                 C   sL   |d dkrt | d|g kr||vrt | dt|| t|< d S )Nr   /z does not start with '/'z is an unacceptable value)
ValueErrorr   )r   r   r&   r"   r   r   r   	_set_name<   s
   zViewerPreferences._set_namec                 C   s   |  ||d u r
d S t|S r   )r   r
   r   r   r   r   _get_arrC   s   zViewerPreferences._get_arrc                 C   sP   |d u rz| t |= W d S  ty   Y d S w t|ts td|| t |< d S )NzArrayObject is expected)r   KeyError
isinstancer
   r(   r#   r   r   r   _set_arrF   s   
zViewerPreferences._set_arrc                 C   r   r   r   r   r   r   r   _get_intQ   r!   zViewerPreferences._get_intc                 C   s   t || t|< d S r   )r   r   r#   r   r   r   _set_intT   s   zViewerPreferences._set_intc                 C   s   t dS )N/PrintScaling)r   r   r   r   r   PRINT_SCALINGW   s   zViewerPreferences.PRINT_SCALINGclsvaluec                 C   sx  dt dtt dtfdd}dt dtt  dtt dtfdd}dt dtt dtfd	d
}dt dtt dtf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   r   r   c              	      .   t  fddfddd d d  dS )Nc                       |   S r   )r    r1   r   r   r   r   <lambda>^       zCViewerPreferences.__new__.<locals>._add_prop_bool.<locals>.<lambda>c                       |   |S r   )r$   r   r"   r   r   r   r8   _   r9   *
            Returns/Modify the status of 
, Returns  if not defined
            propertyr   r   r   r7   r   _add_prop_bool\      
z1ViewerPreferences.__new__.<locals>._add_prop_boolr&   c                    s6   t  fddfddd d d  d dS )Nc                    r6   r   )r%   r1   r7   r   r   r8   j   r9   zCViewerPreferences.__new__.<locals>._add_prop_name.<locals>.<lambda>c                    s   |   |S r   )r)   r;   )r   r&   r   r   r8   k   s    r=   r>   z0 if not defined.
            Acceptable values: z
            r@   )r   r&   r   r   )r   r   r&   r   _add_prop_namef   s   z1ViewerPreferences.__new__.<locals>._add_prop_namec              	      r5   )Nc                    r6   r   )r*   r1   r7   r   r   r8   u   r9   zBViewerPreferences.__new__.<locals>._add_prop_arr.<locals>.<lambda>c                    r:   r   )r-   r;   r<   r   r   r8   v   r9   r=   r>   r?   r@   rB   r   r7   r   _add_prop_arrs   rD   z0ViewerPreferences.__new__.<locals>._add_prop_arrc              	      r5   )Nc                    r6   r   )r.   r1   r7   r   r   r8      r9   zBViewerPreferences.__new__.<locals>._add_prop_int.<locals>.<lambda>c                    r:   r   )r/   r;   r<   r   r   r8      r9   r=   r>   r?   r@   rB   r   r7   r   _add_prop_int}   rD   z0ViewerPreferences.__new__.<locals>._add_prop_intz/HideToolbarz/HideMenubarz/HideWindowUIz
/FitWindowz/CenterWindowz/DisplayDocTitlez/NonFullScreenPageMode)/UseNonez/UseOutlinesz
/UseThumbsz/UseOCrH   z
/Directionz/L2Rz/R2Lz	/ViewAreaz	/ViewClipz
/PrintAreaz
/PrintClipr0   z/Duplex)z/Simplexz/DuplexFlipShortEdgez/DuplexFlipLongEdgez/PickTrayByPDFSizez/PrintPageRangez
/NumCopiesz/Enforce)strr   r   rA   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__)r3   r4   rC   rE   rF   rG   r   r   r   rM   [   sN   





zViewerPreferences.__new__r   )__name__
__module____qualname__r   r   r   rI   r   r    boolr$   r   r%   r   r)   r   r   r*   r
   r-   r.   rJ   r/   rA   r2   rM   __classcell__r   r   r   r   r   )   s    	 r   N)typingr   r   r   Z_baser   r   r   r	   Z_data_structuresr
   r   rK   r   r   r   r   r   <module>   s
   