
    h                     X   S SK r S SKrS SKJrJr  S SKJr  SSKJr  SSK	J
r
  S SKJrJrJrJrJrJrJr   " S S	\R&                  \5      rS
 r " S S\
\R,                  \5      r " S S\R                  \5      r " S S\R2                  \5      r\R6                   " S S\5      5       rg)    N)_apicbook)Gcf   )_macosx)FigureCanvasAgg)_BackendFigureCanvasBaseFigureManagerBaseNavigationToolbar2ResizeEvent	TimerBase_allow_interruptc                       \ rS rSrSrSrg)TimerMac   z6Subclass of `.TimerBase` using CFRunLoop timer events. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       T/var/www/html/env/lib/python3.13/site-packages/matplotlib/backends/backend_macosx.pyr   r      s    @r   r   c                  8    [        S [        R                  5      $ )zEA context manager that allows terminating a plot by sending a SIGINT.c                 J    [         R                  " U R                  5       5      $ N)r   wake_on_fd_writefileno)rsocks    r   <lambda>(_allow_interrupt_macos.<locals>.<lambda>   s    g..u||~>r   )r   r   stopr   r   r   _allow_interrupt_macosr%      s    >N Nr   c                      ^  \ rS rSrSr\r\R                  " S 5      r	U 4S jr
U 4S jrS rS rS rSU 4S	 jjrS
 rSS jrSrU =r$ )FigureCanvasMac   macosxc                     [         $ r   )FigureManagerMacclss    r   r"   FigureCanvasMac.<lambda>(   s    3Cr   c                 Z   > [         TU ]  US9  SU l        SU l        [	        5       U l        g )N)figureF)super__init___draw_pending_is_drawingset_timers)selfr0   	__class__s     r   r2   FigureCanvasMac.__init__*   s,    '" ur   c                    > U R                   (       a  g[        R                  " U SS9   [        TU ]  5         SSS5        U R                  5         g! , (       d  f       N= f)z/Render the figure and update the macosx canvas.NT)r4   )r4   r   _setattr_cmr1   drawupdate)r7   r8   s    r   r<   FigureCanvasMac.draw1   sA     t6GLN 7 76s   A
Ac                     [        U SS5      (       d6  [        U SS5      (       d#  SU l        U R                  U R                  5        g g g )Nr3   Fr4   T)getattrr3   _single_shot_timer
_draw_idler7   s    r   	draw_idleFigureCanvasMac.draw_idle;   sF    ou55mU33!%D ##DOO4	 4 6r   c                    ^  U 4S jnT R                  SS9nSUl        UR                  X!U5        T R                  R	                  U5        UR                  5         g)z/Add a single shot timer with the given callbackc                 J   > U " 5         TR                   R                  U5        g r   )r6   remove)callbacktimerr7   s     r   callback_func9FigureCanvasMac._single_shot_timer.<locals>.callback_funcF   s    JLL&r   r   )intervalTN)	new_timersingle_shotadd_callbackr6   addstart)r7   rI   rK   rJ   s   `   r   rA   "FigureCanvasMac._single_shot_timerD   sM    	' * =E:r   c                     U R                  5          U R                  (       d
   SSS5        gSU l        U R                  5         SSS5        g! , (       d  f       g= f)z
Draw method for singleshot timer

This draw method can be added to a singleshot timer, which can
accumulate draws while the eventloop is spinning. This method will
then only draw the first time and short-circuit the others.
NF)_idle_draw_cntxr3   r<   rC   s    r   rB   FigureCanvasMac._draw_idleO   sE     !!#%% 	 $#
 "'DIIK $##s   AA
Ac                 D   > [         TU ]  U5        U R                  5         g r   )r1   blitr=   )r7   bboxr8   s     r   rX   FigureCanvasMac.blit_   s    Tr   c                     U R                   R                  U R                  -  nX-  nX#-  nU R                   R                  XSS9  [	        SU 5      R                  5         U R                  5         g )NF)forwardresize_event)r0   dpidevice_pixel_ratioset_size_inchesr   _processrD   )r7   widthheightscales       r   resizeFigureCanvasMac.resized   s\    $"9"99##E5#AND)224r   c                 j    [        5          U R                  US9  S S S 5        g ! , (       d  f       g = f)N)timeout)r%   _start_event_loop)r7   rh   s     r   start_event_loop FigureCanvasMac.start_event_loopm   s'     $%""7"3 &%%s   $
2)r3   r4   r6   r   )r   )r   r   r   r   required_interactive_frameworkr   
_timer_clsr   classpropertymanager_classr2   r<   rD   rA   rB   rX   re   rj   r   __classcell__r8   s   @r   r'   r'      sN     &."J&&'CDM5	 
4 4r   r'   c                   ,    \ rS rSrS rS rS rS rSrg)NavigationToolbar2Mact   c           	        ^ [         R                  " S5      m[        [        R                  6 u  p#pB[
        R                  R                  X[        U4S jU 5       5      [        S U 5       5      5        [        R                  " X5        g )Nimagesc              3   N   >#    U  H  oc  M  [        TU-  5      S-   v   M     g 7f)Nz.pdf)str).0
image_name	data_paths     r   	<genexpr>1NavigationToolbar2Mac.__init__.<locals>.<genexpr>{   s*      K$/j 7#i*,-6$/s   %%c              3   .   #    U  H  oc  M  Uv   M     g 7fr   r   )ry   tooltips     r   r|   r}   }   s     Ig''s   	)r   _get_data_pathzipr   	toolitemsr   r2   tuple)r7   canvas_tooltipsimage_namesr{   s        @r   r2   NavigationToolbar2Mac.__init__v   sw    ((2	&)+=+G+G&H#[""++ K$/K KIII		K
 	##D1r   c                     U R                   R                  [        U5      [        U5      [        U5      [        U5      5        g r   )r   set_rubberbandint)r7   eventx0y0x1y1s         r   draw_rubberband%NavigationToolbar2Mac.draw_rubberband   s*    ""3r7CGSWc"gFr   c                 8    U R                   R                  5         g r   )r   remove_rubberbandrC   s    r   r   'NavigationToolbar2Mac.remove_rubberband   s    %%'r   c                    [         R                  R                  [        R                  S   5      n[
        R                  " SUU R                  R                  5       5      nUc  g [        R                  S   (       a0  [         R                  R                  U5      [        R                  S'   U R                  R                  R                  U5        U$ )Nzsavefig.directoryzSave the figure)ospath
expandusermplrcParamsr   choose_save_filer   get_default_filenamedirnamer0   savefig)r7   args	directoryfilenames       r   save_figure!NavigationToolbar2Mac.save_figure   s    GG&&s||4G'HI	++,=,5,0KK,L,L,NP <<+,020ICLL,-""8,r   r   N)	r   r   r   r   r2   r   r   r   r   r   r   r   rs   rs   t   s    2G(r   rs   c                   N   ^  \ rS rSr\rS rS rU 4S jr\	S 5       r
S rSrU =r$ )r+      c                    SU l         [        R                  R                  X5        [	        [
        R                  " S5      5      n[        R                  R                  U5        [        R                  " XU5        U R                  [        R                  S   5        U R                  b  U R                  R                  5         [        R                  " 5       (       a+  U R                  5         U R                   R#                  5         g g )NFzimages/matplotlib.pdfzmacosx.window_mode)_shownr   FigureManagerr2   rx   r   r   set_iconr   _set_window_moder   r   toolbarr=   is_interactiveshowr   rD   )r7   r   num	icon_paths       r   r2   FigureManagerMac.__init__   s    &&t4,,-DEF	&&y1""45cll+?@A<<#LL!IIKKK!!#  r   c                 d    [         R                  " U 5        U R                  R                  5         g r   )r   destroyr   flush_eventsrC   s    r   _close_button_pressed&FigureManagerMac._close_button_pressed   s    D  "r   c                    > U R                   R                  (       aQ  U R                   R                  R                  5       nUR                  5         U R                   R                  (       a  MQ  [        TU ]  5         g r   )r   r6   popr$   r1   r   )r7   rJ   r8   s     r   r   FigureManagerMac.destroy   sQ     kk!!KK''++-EJJL kk!!! 	r   c                 v    [        5          [        R                  " 5         S S S 5        g ! , (       d  f       g = fr   )r%   r   r   r,   s    r   start_main_loop FigureManagerMac.start_main_loop   s     $%LLN &%%s   *
8c                 $   U R                   R                  R                  (       a  U R                   R                  5         U R                  (       d  U R                  5         SU l        [        R                  S   (       a  U R                  5         g g )NTzfigure.raise_window)	r   r0   stalerD   r   _showr   r   _raiserC   s    r   r   FigureManagerMac.show   sW    ;;##KK!!#{{JJLDK<<-.KKM /r   )r   )r   r   r   r   rs   _toolbar2_classr2   r   r   classmethodr   r   r   rp   rq   s   @r   r+   r+      s5    +O$#  
 r   r+   c                   4    \ rS rSr\r\r\R                  r	Sr
g)_BackendMac   r   N)r   r   r   r   r'   FigureCanvasr+   r   r   mainloopr   r   r   r   r   r      s    "L$M//Hr   r   )r   
matplotlibr   r   r   matplotlib._pylab_helpersr    r   backend_aggr   matplotlib.backend_basesr	   r
   r   r   r   r   r   Timerr   r%   r   r'   rs   r   r+   exportr   r   r   r   <module>r      s    	  " )  (. . .
Aw}}i A
NY4ow';';=M Y4xG668J @)w,,.? )X 
0( 0 0r   