
    P/Ph                     L   d dl Z d dlZd dlmZmZ d dlmZ ddlmZ ddl	m
Z
 d dlmZmZmZmZmZmZmZ  G d d	ej        e          Zd
 Z G d de
ej        e          Z G d dej        e          Z G d dej        e          Zej         G d de                      ZdS )    N)_apicbook)Gcf   )_macosx)FigureCanvasAgg)_BackendFigureCanvasBaseFigureManagerBaseNavigationToolbar2ResizeEvent	TimerBase_allow_interruptc                       e Zd ZdZdS )TimerMacz6Subclass of `.TimerBase` using CFRunLoop timer events.N)__name__
__module____qualname____doc__     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/matplotlib/backends/backend_macosx.pyr   r      s        @@@@r   r   c                  8    t          d t          j                  S )zEA context manager that allows terminating a plot by sending a SIGINT.c                 N    t          j        |                                           S N)r   wake_on_fd_writefileno)rsocks    r   <lambda>z(_allow_interrupt_macos.<locals>.<lambda>   s    g.u||~~>> r   )r   r   stopr   r   r   _allow_interrupt_macosr!      s!    >>N N Nr   c                   ~     e Zd ZdZeZ ej        d           Z fdZ	 fdZ
d Zd Zd Zd fd		Zd
 ZddZ xZS )FigureCanvasMacmacosxc                     t           S r   )FigureManagerMacclss    r   r   zFigureCanvasMac.<lambda>(   s    3C r   c                     t                                          |           d| _        d| _        t	                      | _        d S )N)figureF)super__init___draw_pending_is_drawingset_timers)selfr*   	__class__s     r   r,   zFigureCanvasMac.__init__*   s=    '''" uur   c                     | j         rdS t          j        | d          5  t                                                       ddd           n# 1 swxY w Y   |                                  dS )z/Render the figure and update the macosx canvas.NT)r.   )r.   r   _setattr_cmr+   drawupdate)r1   r2   s    r   r5   zFigureCanvasMac.draw1   s      	Ft666 	 	GGLLNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   !AAAc                     t          | dd          s4t          | dd          s%d| _        |                     | j                   d S d S d S )Nr-   Fr.   T)getattrr-   _single_shot_timer
_draw_idler1   s    r   	draw_idlezFigureCanvasMac.draw_idle;   sd    ou55 	5mU33	5!%D ##DO44444	5 	5 	5 	5r   c                       fd}                      d          }d|_        |                    |||            j                            |           |                                 dS )z/Add a single shot timer with the given callbackc                 P     |              j                             |           d S r   )r0   remove)callbacktimerr1   s     r   callback_funcz9FigureCanvasMac._single_shot_timer.<locals>.callback_funcF   s*    HJJJL&&&&&r   r   )intervalTN)	new_timersingle_shotadd_callbackr0   addstart)r1   r@   rB   rA   s   `   r   r9   z"FigureCanvasMac._single_shot_timerD   sx    	' 	' 	' 	' 	' ** =(E:::r   c                     |                                  5  | j        s	 ddd           dS d| _        |                                  ddd           dS # 1 swxY w Y   dS )a	  
        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_cntxr-   r5   r;   s    r   r:   zFigureCanvasMac._draw_idleO   s     !!## 	 	%  		 	 	 	 	 	 	 	
 "'DIIKKK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   	AAAANc                 r    t                                          |           |                                  d S r   )r+   blitr6   )r1   bboxr2   s     r   rL   zFigureCanvasMac.blit_   s*    Tr   c                     | j         j        | j        z  }||z  }||z  }| j                             ||d           t	          d|                                            |                                  d S )NF)forwardresize_event)r*   dpidevice_pixel_ratioset_size_inchesr   _processr<   )r1   widthheightscales       r   resizezFigureCanvasMac.resized   st    $"99%##E65#AAAND))22444r   r   c                     t                      5  |                     |           d d d            d S # 1 swxY w Y   d S )N)timeout)r!   _start_event_loop)r1   rZ   s     r   start_event_loopz FigureCanvasMac.start_event_loopm   s     $%% 	4 	4""7"333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   377r   )r   )r   r   r   required_interactive_frameworkr   
_timer_clsr   classpropertymanager_classr,   r5   r<   r9   r:   rL   rX   r\   __classcell__r2   s   @r   r#   r#      s         &."J&D&'C'CDDM        5 5 5	 	 	        
  4 4 4 4 4 4 4 4r   r#   c                   &    e Zd Zd Zd Zd Zd ZdS )NavigationToolbar2Macc           	      .   t          j        d          t          t          j         \  }}}}t
          j                            | |t          fd|D                       t          d |D                                  t          j        | |           d S )Nimagesc              3   F   K   | ]}|t          |z            dz   V  d S )Nz.pdf)str).0
image_name	data_paths     r   	<genexpr>z1NavigationToolbar2Mac.__init__.<locals>.<genexpr>{   sJ       K K :3I i*,--63I3I3I3IK Kr   c              3      K   | ]}||V  	d S r   r   )ri   tooltips     r   rl   z1NavigationToolbar2Mac.__init__.<locals>.<genexpr>}   s'      IIgW5H'5H5H5H5HIIr   )r   _get_data_pathzipr   	toolitemsr   r,   tuple)r1   canvas_tooltipsimage_namesrk   s        @r   r,   zNavigationToolbar2Mac.__init__v   s    (22	&)+=+G&H#8[!"++& K K K K$/K K K K KIIIIIII		K 	K 	K
 	#D&11111r   c                     | j                             t          |          t          |          t          |          t          |                     d S r   )rs   set_rubberbandint)r1   eventx0y0x1y1s         r   draw_rubberbandz%NavigationToolbar2Mac.draw_rubberband   s<    ""3r77CGGSWWc"ggFFFFFr   c                 8    | j                                          d S r   )rs   remove_rubberbandr;   s    r   r   z'NavigationToolbar2Mac.remove_rubberband   s    %%'''''r   c                    t           j                            t          j        d                   }t          j        d|| j                                                  }|d S t          j        d         r,t           j        	                    |          t          j        d<   | j        j
                            |           |S )Nzsavefig.directoryzSave the figure)ospath
expandusermplrcParamsr   choose_save_filers   get_default_filenamedirnamer*   savefig)r1   args	directoryfilenames       r   save_figurez!NavigationToolbar2Mac.save_figure   s    G&&s|4G'HII	+,=,5,0K,L,L,N,NP P F<+, 	J020I0ICL,-""8,,,r   N)r   r   r   r,   r   r   r   r   r   r   rd   rd   t   sS        2 2 2G G G( ( (    r   rd   c                   J     e Zd ZeZd Zd Z fdZed             Z	d Z
 xZS )r&   c                    d| _         t          j                            | |           t	          t          j        d                    }t          j                            |           t          j        | ||           | 	                    t          j        d                    | j        | j                                         t          j                    r/|                                  | j                                         d S d S )NFzimages/matplotlib.pdfzmacosx.window_mode)_shownr   FigureManagerr,   rh   r   ro   set_iconr   _set_window_moder   r   toolbarr6   is_interactiveshowrs   r<   )r1   rs   num	icon_paths       r   r,   zFigureManagerMac.__init__   s    &&tV444,-DEEFF	&&y111"4555cl+?@AAA<#L!!! 	$IIKKKK!!#####	$ 	$r   c                 `    t          j        |            | j                                         d S r   )r   destroyrs   flush_eventsr;   s    r   _close_button_pressedz&FigureManagerMac._close_button_pressed   s,    D  """""r   c                     | j         j        r>| j         j                                        }|                                 | j         j        >t	                                                       d S r   )rs   r0   popr    r+   r   )r1   rA   r2   s     r   r   zFigureManagerMac.destroy   s`     k! 	K'++--EJJLLL k! 	 	r   c                 z    t                      5  t          j                     d d d            d S # 1 swxY w Y   d S r   )r!   r   r   r'   s    r   start_main_loopz FigureManagerMac.start_main_loop   s     $%% 	 	LNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   044c                     | j         j        j        r| j                                          | j        s|                                  d| _        t          j        d         r|                                  d S d S )NTzfigure.raise_window)	rs   r*   staler<   r   _showr   r   _raiser;   s    r   r   zFigureManagerMac.show   so    ;# 	$K!!###{ 	JJLLLDK<-. 	KKMMMMM	 	r   )r   r   r   rd   _toolbar2_classr,   r   r   classmethodr   r   ra   rb   s   @r   r&   r&      s        +O$ $ $# # #       [
      r   r&   c                   $    e Zd ZeZeZej        ZdS )_BackendMacN)	r   r   r   r#   FigureCanvasr&   r   r   mainloopr   r   r   r   r      s         "L$M/HHHr   r   )r   
matplotlibr   r   r   matplotlib._pylab_helpersr    r   backend_aggr   matplotlib.backend_basesr	   r
   r   r   r   r   r   Timerr   r!   r   r#   rd   r   r&   exportr   r   r   r   <module>r      s   				     " " " " " " " " ) ) ) ) ) )       ( ( ( ( ( (. . . . . . . . . . . . . . . . . .
A A A A Aw}i A A A
N N NY4 Y4 Y4 Y4 Y4ow';=M Y4 Y4 Y4x    G68J   @) ) ) ) )w,.? ) ) )X 
0 0 0 0 0( 0 0 0 0 0r   