� J�gx*��\�dZddlmZddlmZddlmZmZmZddlm Z Gd�d��Z d S) a Mixin class for managing a stack of graphics state variables. The contents of this module are internal to fpdf2, and not part of the public API. They may change at any time without prior warning or any deprecation period, in non-backward-compatible ways. �)�copy�)� DeviceGray)�CharVPos� TextEmphasis�TextMode)�FontFacec���eZdZdZed��Zed��Zed��Z�fd�Zd:d�Z d�Z d�Z d�Z e d ���Zejd ���Ze d ���Zejd ���Ze d ���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd���Ze d���Zejd ���Ze d!���Zejd"���Ze d#���Zejd$���Ze d%���Zejd&���Ze d'���Zejd(���Ze d)���Zejd*���Ze d+���Z e jd,���Z e d-���Z!e!jd.���Z!e d/���Z"e"jd0���Z"e d1���Z#e#jd2���Z#e d3���Z$e$jd4���Z$e d5���Z%e%jd6���Z%e d7���Z&e&jd8���Z&d9�Z'�xZ(S);�GraphicsStateMixina�Mixin class for managing a stack of graphics state variables. To the subclassing library and its users, the variables look like normal instance attributes. But by the magic of properties, we can push and pop levels as needed, and users will always see and modify just the current version. This class is mixed in by fpdf.FPDF(), and is not meant to be used directly by user code. rc �J��td#id|j�d|j�d|j�dd�dd�dd �d d �d d�d d �di�dtd d d ����dd �dtj�dt j�dd�dd�dd�dd�dd�dd�dd�d d!�d"d��g|_t��j |i|��dS)$N� draw_color� fill_color� text_color� underlineF� font_style��font_stretching�d� char_spacingr� font_family� font_size_pt� current_font� dash_pattern)�dash�gap�phase� line_width� text_mode� char_vpos� sub_scalegffffff�?� sup_scale� nom_scaleg�?� denom_scale�sub_liftg333333ÿ�sup_liftg�������?�nom_liftg�������?� denom_liftg� text_shaping�) �dict�DEFAULT_DRAW_COLOR�DEFAULT_FILL_COLOR�DEFAULT_TEXT_COLORr�FILLr�LINE�_GraphicsStateMixin__statestack�super�__init__)�self�args�kwargs� __class__s ��c/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/fpdf/graphics_state.pyr2zGraphicsStateMixin.__init__ ss��� � � � ��2�2� ��2�2� � �2�2� � �%�  � �2�  � !$��  ��Q� ��B� ��Q� � �R� �"�q�a�q�9�9�9�9� ��1� �#�-�-� �#�-�-� ��#� � �#�! �"�$�# �$!�D�% �&��' �(��) �*��+ �,�3�- �."�T�/ � ���6 �����$�)�&�)�)�)�)�)�Nc��|r|j�|��dS|j�|�����dS�N)r0�append�_get_current_graphics_state)r3�news r7�_push_local_stackz$GraphicsStateMixin._push_local_stack>sQ�� � I� � � $� $�S� )� )� )� )� )� � � $� $�T�%E�%E�%G�%G� H� H� H� H� Hr8c�4�|j���Sr:)r0�pop�r3s r7�_pop_local_stackz#GraphicsStateMixin._pop_local_stackDs��� �$�$�&�&�&r8c�j�t|jd��}t|d��|d<|S�N�����r()rr0)r3�gss r7r<z.GraphicsStateMixin._get_current_graphics_stateGs5���$�#�B�'� (� (��!�"�^�"4�5�5��>��� r8c�2�t|j��dkS)Nr)�lenr0rAs r7�!_is_current_graphics_state_nestedz4GraphicsStateMixin._is_current_graphics_state_nestedOs���4�$�%�%��)�)r8c�(�|jddS�NrEr �r0rAs r7r zGraphicsStateMixin.draw_colorR���� ��$�\�2�2r8c�&�||jdd<dSrKrL�r3�vs r7r zGraphicsStateMixin.draw_colorV���./���"��l�+�+�+r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.fill_colorZrMr8c�&�||jdd<dSrSrLrOs r7rzGraphicsStateMixin.fill_color^rQr8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.text_colorbrMr8c�&�||jdd<dSrVrLrOs r7rzGraphicsStateMixin.text_colorfrQr8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.underlinej���� ��$�[�1�1r8c�&�||jdd<dSrYrLrOs r7rzGraphicsStateMixin.underlinens��-.���"��k�*�*�*r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.font_stylerrMr8c�&�||jdd<dSr]rLrOs r7rzGraphicsStateMixin.font_stylevrQr8c�(�|jddS�NrErrLrAs r7rz"GraphicsStateMixin.font_stretchingzs��� ��$�%6�7�7r8c�&�||jdd<dSr`rLrOs r7rz"GraphicsStateMixin.font_stretching~s��34���"��/�0�0�0r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.char_spacing����� ��$�^�4�4r8c�&�||jdd<dSrcrLrOs r7rzGraphicsStateMixin.char_spacing����01���"��n�-�-�-r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.font_family�s��� ��$�]�3�3r8c�&�||jdd<dSrhrLrOs r7rzGraphicsStateMixin.font_family�s��/0���"��m�,�,�,r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.font_size_pt�rdr8c�&�||jdd<dSrkrLrOs r7rzGraphicsStateMixin.font_size_pt�rfr8c�8�|jdd|jz Srk)r0�krAs r7� font_sizezGraphicsStateMixin.font_size�s��� ��$�^�4�t�v�=�=r8c�6�||jz|jdd<dSrk)rnr0rOs r7rozGraphicsStateMixin.font_size�s ��01�D�F� ���"��n�-�-�-r8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.current_font�rdr8c�&�||jdd<dSrrrLrOs r7rzGraphicsStateMixin.current_font�rfr8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.dash_pattern�rdr8c�&�||jdd<dSrurLrOs r7rzGraphicsStateMixin.dash_pattern�rfr8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.line_width�rMr8c�&�||jdd<dSrxrLrOs r7rzGraphicsStateMixin.line_width�rQr8c�(�|jddS�NrErrLrAs r7rzGraphicsStateMixin.text_mode�rZr8c�J�tj|��|jdd<dSr{)r�coercer0rOs r7rzGraphicsStateMixin.text_mode�s$��-5�_�Q�-?�-?���"��k�*�*�*r8c�(�|jddS)z� Return vertical character position relative to line. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rErrLrAs r7rzGraphicsStateMixin.char_vpos���� � ��$�[�1�1r8c�J�tj|��|jdd<dS)z� Set vertical character position relative to line. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rErN)rr}r0rOs r7rzGraphicsStateMixin.char_vpos�s&�� .6�_�Q�-?�-?���"��k�*�*�*r8c�(�|jddS)z� Return scale factor for subscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr rLrAs r7r zGraphicsStateMixin.sub_scale�rr8c�@�t|��|jdd<dS)z� Set scale factor for subscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr N��floatr0rOs r7r zGraphicsStateMixin.sub_scale��"�� .3�1�X�X���"��k�*�*�*r8c�(�|jddS)z� Return scale factor for superscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr!rLrAs r7r!zGraphicsStateMixin.sup_scale�rr8c�@�t|��|jdd<dS)z� Set scale factor for superscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr!Nr�rOs r7r!zGraphicsStateMixin.sup_scale�r�r8c�(�|jddS)z� Return scale factor for nominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr"rLrAs r7r"zGraphicsStateMixin.nom_scale�rr8c�@�t|��|jdd<dS)z� Set scale factor for nominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr"Nr�rOs r7r"zGraphicsStateMixin.nom_scale�r�r8c�(�|jddS)z� Return scale factor for denominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr#rLrAs r7r#zGraphicsStateMixin.denom_scales�� � ��$�]�3�3r8c�@�t|��|jdd<dS)z� Set scale factor for denominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr#Nr�rOs r7r#zGraphicsStateMixin.denom_scale s"�� 05�Q�x�x���"��m�,�,�,r8c�(�|jddS)z� Return lift factor for subscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr$rLrAs r7r$zGraphicsStateMixin.sub_lift��� � ��$�Z�0�0r8c�@�t|��|jdd<dS)z� Set lift factor for subscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr$Nr�rOs r7r$zGraphicsStateMixin.sub_lift�"�� -2�!�H�H���"��j�)�)�)r8c�(�|jddS)z� Return lift factor for superscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr%rLrAs r7r%zGraphicsStateMixin.sup_lift"r�r8c�@�t|��|jdd<dS)z� Set lift factor for superscript text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr%Nr�rOs r7r%zGraphicsStateMixin.sup_lift*r�r8c�(�|jddS)z� Return lift factor for nominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr&rLrAs r7r&zGraphicsStateMixin.nom_lift2r�r8c�@�t|��|jdd<dS)z� Set lift factor for nominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr&Nr�rOs r7r&zGraphicsStateMixin.nom_lift:r�r8c�(�|jddS)z� Return lift factor for denominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr'rLrAs r7r'zGraphicsStateMixin.denom_liftBs�� � ��$�\�2�2r8c�@�t|��|jdd<dS)z� Set lift factor for denominator text. ([docs](../TextStyling.html#subscript-superscript-and-fractional-numbers)) rEr'Nr�rOs r7r'zGraphicsStateMixin.denom_liftJs"�� /4�A�h�h���"��l�+�+�+r8c�(�|jddSrDrLrAs r7r(zGraphicsStateMixin.text_shapingRrdr8c�&�||jdd<dSrDrLrOs r7r(zGraphicsStateMixin.text_shapingVrfr8c���t|jtj|j��|j|j|jkr|jnd|j|j kr|jnd���S)z| Return a `fpdf.fonts.FontFace` instance representing a subset of properties of this GraphicsState. N)�family�emphasis�size_pt�colorr) r rrr}rrrr-rr,rAs r7� font_facezGraphicsStateMixin.font_faceZsk�� ��#�!�(���9�9��%�#'�?�d�6M�#M�#M����SW�$(�?�d�6M�#M�#M����SW�  �  �  � r8r:))�__name__� __module__� __qualname__�__doc__rr+r,r-r2r>rBr<rI�propertyr �setterrrrrrrrrrorrrrrr r!r"r#r$r%r&r'r(r�� __classcell__)r6s@r7r r s2������� � �$��A����#��A����#��A����*�*�*�*�*�<I�I�I�I� '�'�'����*�*�*��3�3��X�3���0�0���0��3�3��X�3���0�0���0��3�3��X�3���0�0���0��2�2��X�2���/�/���/��3�3��X�3���0�0���0��8�8��X�8���5�5���5��5�5��X�5���2�2���2��4�4��X�4���1�1���1��5�5��X�5���2�2���2��>�>��X�>���;�;���;��5�5��X�5���2�2���2��5�5��X�5���2�2���2��3�3��X�3���0�0���0��2�2��X�2���@�@���@��2�2��X�2���@�@���@��2�2��X�2���6�6���6��2�2��X�2���6�6���6��2�2��X�2���6�6���6��4�4��X�4���8�8���8��1�1��X�1��_�5�5��_�5��1�1��X�1��_�5�5��_�5��1�1��X�1��_�5�5��_�5��3�3��X�3���7�7���7��5�5��X�5���2�2���2� � � � � � � r8r N) r�r�drawingr�enumsrrr�fontsr r r)r8r7�<module>r�s�����������������3�3�3�3�3�3�3�3�3�3�������Y �Y �Y �Y �Y �Y �Y �Y �Y �Y r8
Memory