ó
    ˆ*£h'  ã                  ó^   • S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
Jr   " S S\5      rg	)
zÝConnector (line) shape and related objects.

A connector is a line shape having end-points that can be connected to other
objects (but not to other connectors). A connector can be straight, have
elbows, or can be curved.
é    )Úannotations©Ú
LineFormat)ÚMSO_SHAPE_TYPE)Ú	BaseShape)ÚEmuÚlazypropertyc                  óB  • \ rS rSrSrS r\S 5       r\R                  S 5       r\S 5       r	\	R                  S 5       r	S r
\S	 5       r\R                  S
 5       r\S 5       r\R                  S 5       rS r\S 5       r\S 5       r\S 5       rS rS rS rS rSrg)Ú	Connectoré   zËConnector (line) shape.

A connector is a linear shape having end-points that can be connected to
other objects (but not to other connectors). A connector can be straight,
have elbows, or can be curved.
c                óH   • U R                  X5        U R                  X5        g)a]  
**EXPERIMENTAL** - *The current implementation only works properly
with rectangular shapes, such as pictures and rectangles. Use with
other shape types may cause unexpected visual alignment of the
connected end-point and could lead to a load error if cxn_pt_idx
exceeds the connection point count available on the connected shape.
That said, a quick test should reveal what to expect when using this
method with other shape types.*

Connect the beginning of this connector to *shape* at the connection
point specified by *cxn_pt_idx*. Each shape has zero or more
connection points and they are identified by index, starting with 0.
Generally, the first connection point of a shape is at the top center
of its bounding box and numbering proceeds counter-clockwise from
there. However this is only a convention and may vary, especially
with non built-in shapes.
N)Ú_connect_begin_toÚ_move_begin_to_cxn©ÚselfÚshapeÚ
cxn_pt_idxs      ÚR/home/mande/repo/quber/.venv/lib/python3.13/site-packages/pptx/shapes/connector.pyÚbegin_connectÚConnector.begin_connect   s    € ð$ 	×Ñ˜uÔ1Ø×Ñ Õ2ó    c                ó�   • U R                   nUR                  UR                  UR                  pCnU(       a  X#-   OUn[	        U5      $ )zm
Return the X-position of the begin point of this connector, in
English Metric Units (as a |Length| object).
©Ú_elementÚxÚcxÚflipHr   )r   ÚcxnSpr   r   r   Úbegin_xs         r   r   ÚConnector.begin_x-   ó9   € ð —‘ˆØ—w‘w §¡¨%¯+©+ˆuˆÞ!�!’& qˆÜ�7‹|Ðr   c                ó¶  • U R                   nUR                  UR                  UR                  [	        U5      4u  p4pVU(       aF  X4-   n[        Xg-
  5      nXg:¼  a
  XH-   Ul        g X„::  a
  XH-
  Ul        g SUl        Xbl        X„-
  Ul        g [        Xc-
  5      nXc::  a  Xbl        XH-   Ul        g X„::  a  Xbl        XH-
  Ul        g SUl        X4-   Ul        X„-
  Ul        g ©NFT©r   r   r   r   ÚintÚabs)	r   Úvaluer   r   r   r   Únew_xÚold_xÚdxs	            r   r   r    8   ó¿   € à—‘ˆØ#Ÿg™g u§x¡x°·±¼cÀ%»jÐHÑˆˆuæØ‘FˆEÜ�U‘]Ó#ˆBØ‹~Ø™7�•Ø“Ø™7�•à#�”Ø”Ø™7�•ä�U‘Y“ˆBØ‹zØ”Ø™7�•Ø“Ø”Ø™7�•à"�”Ø™&�”Ø™7�•r   c                ó�   • U R                   nUR                  UR                  UR                  pCnU(       a  X#-   OUn[	        U5      $ )zm
Return the Y-position of the begin point of this connector, in
English Metric Units (as a |Length| object).
©r   ÚyÚcyÚflipVr   )r   r   r.   r/   r0   Úbegin_ys         r   r1   ÚConnector.begin_yU   r!   r   c                ó¶  • U R                   nUR                  UR                  UR                  [	        U5      4u  p4pVU(       aF  X4-   n[        Xg-
  5      nXg:¼  a
  XH-   Ul        g X„::  a
  XH-
  Ul        g SUl        Xbl        X„-
  Ul        g [        Xc-
  5      nXc::  a  Xbl        XH-   Ul        g X„::  a  Xbl        XH-
  Ul        g SUl        X4-   Ul        X„-
  Ul        g r#   ©r   r.   r/   r0   r%   r&   )	r   r'   r   r.   r/   r0   Únew_yÚold_yÚdys	            r   r1   r2   `   r+   r   c                óH   • U R                  X5        U R                  X5        g)a  
**EXPERIMENTAL** - *The current implementation only works properly
with rectangular shapes, such as pictures and rectangles. Use with
other shape types may cause unexpected visual alignment of the
connected end-point and could lead to a load error if cxn_pt_idx
exceeds the connection point count available on the connected shape.
That said, a quick test should reveal what to expect when using this
method with other shape types.*

Connect the ending of this connector to *shape* at the connection
point specified by *cxn_pt_idx*.
N)Ú_connect_end_toÚ_move_end_to_cxnr   s      r   Úend_connectÚConnector.end_connect}   s    € ð 	×Ñ˜UÔ/Ø×Ñ˜eÕ0r   c                ó�   • U R                   nUR                  UR                  UR                  pCnU(       a  UOX#-   n[	        U5      $ )zk
Return the X-position of the end point of this connector, in English
Metric Units (as a |Length| object).
r   )r   r   r   r   r   Úend_xs         r   r>   ÚConnector.end_x�   ó9   € ð —‘ˆØ—w‘w §¡¨%¯+©+ˆuˆÞ‘ ¡ˆÜ�5‹zÐr   c                ó¶  • U R                   nUR                  UR                  UR                  [	        U5      4u  p4pVU(       aQ  [        Xc-
  5      nXc::  a  Xbl        XG-   Ul        g Xt::  a  Xbl        XG-
  Ul        g SUl        X4-   Ul        Xt-
  Ul        g X4-   n[        Xh-
  5      nXh:¼  a
  XG-   Ul        g Xt::  a
  XG-
  Ul        g SUl        Xbl        Xt-
  Ul        g r#   r$   )	r   r'   r   r   r   r   r(   r*   r)   s	            r   r>   r?   ˜   ó¿   € à—‘ˆØ#Ÿg™g u§x¡x°·±¼cÀ%»jÐHÑˆˆuæÜ�U‘Y“ˆBØ‹zØ”Ø™7�•Ø“Ø”Ø™7�•à#�”Ø™&�”Ø™7�•à‘FˆEÜ�U‘]Ó#ˆBØ‹~Ø™7�•Ø“Ø™7�•à"�”Ø”Ø™7�•r   c                ó�   • U R                   nUR                  UR                  UR                  pCnU(       a  UOX#-   n[	        U5      $ )zk
Return the Y-position of the end point of this connector, in English
Metric Units (as a |Length| object).
r-   )r   r   r.   r/   r0   Úend_ys         r   rD   ÚConnector.end_yµ   r@   r   c                ó¶  • U R                   nUR                  UR                  UR                  [	        U5      4u  p4pVU(       aQ  [        Xc-
  5      nXc::  a  Xbl        XG-   Ul        g Xt::  a  Xbl        XG-
  Ul        g SUl        X4-   Ul        Xt-
  Ul        g X4-   n[        Xh-
  5      nXh:¼  a
  XG-   Ul        g Xt::  a
  XG-
  Ul        g SUl        Xbl        Xt-
  Ul        g r#   r4   )	r   r'   r   r.   r/   r0   r5   r7   r6   s	            r   rD   rE   À   rB   r   c                óJ   • U R                   R                  R                  5       $ )z'Helper method required by |LineFormat|.)r   ÚspPrÚget_or_add_ln©r   s    r   rI   ÚConnector.get_or_add_lnÝ   s   € à�}‰}×!Ñ!×/Ñ/Ó1Ð1r   c                ó   • [        U 5      $ )zy|LineFormat| instance for this connector.

Provides access to line properties such as line color, width, and
line style.
r   rJ   s    r   ÚlineÚConnector.lineá   s   € ô ˜$ÓÐr   c                óB   • U R                   R                  R                  $ )z®Helper method required by |LineFormat|.

The ``<a:ln>`` element containing the line format properties such as
line color and width. |None| if no `<a:ln>` element is present.
)r   rH   ÚlnrJ   s    r   rP   ÚConnector.lnê   s   € ð �}‰}×!Ñ!×$Ñ$Ð$r   c                ó"   • [         R                  $ )z€Member of `MSO_SHAPE_TYPE` identifying the type of this shape.

Unconditionally `MSO_SHAPE_TYPE.LINE` for a `Connector` object.
)r   ÚLINErJ   s    r   Ú
shape_typeÚConnector.shape_typeó   s   € ô ×"Ñ"Ð"r   c                ó’   • U R                   R                  R                  nUR                  5       nUR                  Ul        X$l        g)zŽ
Add or update a stCxn element for this connector that connects its
begin point to the connection point of *shape* specified by
*cxn_pt_idx*.
N)r   Ú	nvCxnSpPrÚ
cNvCxnSpPrÚget_or_add_stCxnÚshape_idÚidÚidx)r   r   r   rX   ÚstCxns        r   r   ÚConnector._connect_begin_toû   s7   € ð —]‘]×,Ñ,×7Ñ7ˆ
Ø×+Ñ+Ó-ˆØ—>‘>ˆŒØ�	r   c                ó’   • U R                   R                  R                  nUR                  5       nUR                  Ul        X$l        g)zŽ
Add or update an endCxn element for this connector that connects its
end point to the connection point of *shape* specified by
*cxn_pt_idx*.
N)r   rW   rX   Úget_or_add_endCxnrZ   r[   r\   )r   r   r   rX   ÚendCxns        r   r9   ÚConnector._connect_end_to  s7   € ð —]‘]×,Ñ,×7Ñ7ˆ
Ø×-Ñ-Ó/ˆØ—N‘NˆŒ	Ø�
r   c           	     ó  • UR                   UR                  UR                  UR                  4u  p4pV[	        X5S-  -   5      U4U[	        XFS-  -   5      4[	        X5S-  -   5      XF-   4X5-   [	        XFS-  -   5      4S.U   u  U l        U l        g)zu
Move the begin point of this connector to coordinates of the
connection point of *shape* specified by *cxn_pt_idx*.
é   ©r   é   rd   é   N)ÚleftÚtopÚwidthÚheightr%   r   r1   ©r   r   r   r   r.   r   r/   s          r   r   ÚConnector._move_begin_to_cxn  sŒ   € ð
 —z‘z 5§9¡9¨e¯k©k¸5¿<¹<ÐG‰ˆˆbä�A˜Q™‘J“ Ð#Ø”3�q ™6‘z“?Ð#Ü�A˜Q™‘J“ ¡Ð(Ø‘œ˜A Q¡™J›Ð(ñ	&
ð
 ñ&Ñ"ˆŒ�d•lr   c           	     ó  • UR                   UR                  UR                  UR                  4u  p4pV[	        X5S-  -   5      U4U[	        XFS-  -   5      4[	        X5S-  -   5      XF-   4X5-   [	        XFS-  -   5      4S.U   u  U l        U l        g)zw
Move the end point of this connector to the coordinates of the
connection point of *shape* specified by *cxn_pt_idx*.
rd   re   N)rh   ri   rj   rk   r%   r>   rD   rl   s          r   r:   ÚConnector._move_end_to_cxn  sŒ   € ð
 —z‘z 5§9¡9¨e¯k©k¸5¿<¹<ÐG‰ˆˆbä�A˜Q™‘J“ Ð#Ø”3�q ™6‘z“?Ð#Ü�A˜Q™‘J“ ¡Ð(Ø‘œ˜A Q¡™J›Ð(ñ	"
ð
 ñ"ÑˆŒ
�D•Jr   )r   r1   r>   rD   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   Úpropertyr   Úsetterr1   r;   r>   rD   rI   r	   rM   rP   rT   r   r9   r   r:   Ú__static_attributes__© r   r   r   r      s  † ñò3ð* ñó ðð ‡^�^ñ#ó ð#ð8 ñó ðð ‡^�^ñ#ó ð#ò81ð  ñó ðð ‡\�\ñ#ó ð#ð8 ñó ðð ‡\�\ñ#ó ð#ò82ð ñ ó ð ð ñ%ó ð%ð ñ#ó ð#ò	ò	 òõr   r   N)rt   Ú
__future__r   Úpptx.dml.liner   Úpptx.enum.shapesr   Úpptx.shapes.baser   Ú	pptx.utilr   r	   r   rx   r   r   Ú<module>r~      s)   ðñõ #å $Ý +Ý &ß 'ôY�	õ Yr   