o
    >e                     @   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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ddededd fddZddee ddf fddZ  ZS )ViewerPreferenceskeydeftreturnc                 C      |  ||S Ngetselfr   r    r   Z/var/www/html/humari/django-venv/lib/python3.10/site-packages/pypdf/generic/_viewerpref.py	_get_bool*      zViewerPreferences._get_boolvNc                 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   r   r   r   r   r   r   r   	_get_name0   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 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 S t|S r   )r   r	   r   r   r   r   _get_arr:   s   zViewerPreferences._get_arrc                 C   s"   t |ts	td|| t|< d S )NzArrayObject is expected)
isinstancer	   r   r   r   r   r   r   _set_arr=   s   
zViewerPreferences._set_arrc                 C   r   r   r   r   r   r   r   _get_intB   r   zViewerPreferences._get_intc                 C   s   t || t|< d S r   )r   r   r   r   r   r   _set_intE   s   zViewerPreferences._set_intclsvaluec                 C   sj  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 | _t| S )#Nr   r   r   c              	      .   t  fddfddd d d  dS )Nc                       |   S r   )r   r   r   r   r   r   <lambda>K       zCViewerPreferences.__new__.<locals>._add_prop_bool.<locals>.<lambda>c                       |   |S r   )r   r   r   r   r   r   r,   L   r-   *
            Returns/Modify the status of 
, Returns  if not defined
            propertyr   r   r   r+   r   _add_prop_boolI      
z1ViewerPreferences.__new__.<locals>._add_prop_boolr   c                    s6   t  fddfddd d d  d dS )Nc                    r)   r   )r   r*   r+   r   r   r,   W   r-   zCViewerPreferences.__new__.<locals>._add_prop_name.<locals>.<lambda>c                    s   |   |S r   )r    r/   )r   r   r   r   r,   X   s    r1   r2   z0 if not defined.
            Acceptable values: z
            r4   )r   r   r   r   )r   r   r   r   _add_prop_nameS   s   z1ViewerPreferences.__new__.<locals>._add_prop_namec              	      r(   )Nc                    r)   r   )r!   r*   r+   r   r   r,   b   r-   zBViewerPreferences.__new__.<locals>._add_prop_arr.<locals>.<lambda>c                    r.   r   )r#   r/   r0   r   r   r,   c   r-   r1   r2   r3   r4   r6   r   r+   r   _add_prop_arr`   r8   z0ViewerPreferences.__new__.<locals>._add_prop_arrc              	      r(   )Nc                    r)   r   )r$   r*   r+   r   r   r,   l   r-   zBViewerPreferences.__new__.<locals>._add_prop_int.<locals>.<lambda>c                    r.   r   )r%   r/   r0   r   r   r,   m   r-   r1   r2   r3   r4   r6   r   r+   r   _add_prop_intj   r8   z0ViewerPreferences.__new__.<locals>._add_prop_intz/HideToolbarz/HideMenubarz/HideWindowUIz
/FitWindowz/CenterWindowz/DisplayDocTitlez/NonFullScreenPageMode)/UseNonez/UseOutlinesz
/UseThumbsz/UseOCr<   z
/Directionz/L2Rz/R2Lz	/ViewAreaz	/ViewClipz
/PrintAreaz
/PrintClipz/PrintScalingz/Duplex)z/Simplexz/DuplexFlipShortEdgez/DuplexFlipLongEdgez/PickTrayByPDFSizez/PrintPageRangez
/NumCopies)strr   r   r5   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_copiesr
   __new__)r&   r'   r7   r9   r:   r;   r   r   r   rQ   H   sL   





zViewerPreferences.__new__objc                    sF   t  |  |d ur| |  z|j| _W d S  ty"   Y d S w r   )super__init__updateitemsindirect_referenceAttributeError)r   rR   	__class__r   r   rT      s   zViewerPreferences.__init__r   )__name__
__module____qualname__r=   r   r   r   boolr   r   r   r   r    r   r   r!   r	   r#   r$   r>   r%   rQ   r
   rT   __classcell__r   r   rY   r   r   )   s    $Ir   N)typingr   r   r   _baser   r   r   _data_structuresr	   r
   r?   r   r   r   r   r   <module>   s
   