Ë
    µ2Úi-U  ã                   ó¼  — d dl Z d dlZd dlZd dlmZ d dlZd dlmZmZm	Z	 d dl
mZmZmZmZmZmZ 	 d dlZ	  ej(                  dd«       d dlmZmZmZmZmZ d	d
lmZ d	dlmZm Z m!Z!m"Z"m#Z$  ejJ                  e&«      Z'e jP                  d„ «       Z) G d„ de ejT                  «      Z+ G d„ de"ejX                  «      Z- G d„ deej\                  «      Z/ ej`                  e+«       G d„ dejb                  «      «       Z2 ej`                  e+«       G d„ dejf                  «      «       Z4 ej`                  e+«       G d„ dejj                  «      «       Z6e/Z, ej`                  e+ejn                  «        ej`                  e+ejp                  «        G d„ de!«      Z9ejt                   G d„ de«      «       Z;y# e$ rZ ed«      e‚dZ[ww xY w# e$ rZ ee«      e‚dZ[ww xY w)é    N)ÚPath)Ú_apiÚbackend_toolsÚcbook)ÚToolContainerBaseÚ
CloseEventÚKeyEventÚLocationEventÚ
MouseEventÚResizeEventz#The GTK3 backends require PyGObjectÚGtkz3.0)ÚGioÚGLibÚGObjectr   ÚGdké   )Ú_backend_gtk)Ú_BackendGTKÚ_FigureCanvasGTKÚ_FigureManagerGTKÚ_NavigationToolbar2GTKÚTimerGTKc                 ó    — t         j                  j                  t         j                  j	                  «       t        j                  | «      «      S ©N)r   ÚCursorÚnew_from_nameÚDisplayÚget_defaultr   Úmpl_to_gtk_cursor_name)Ú
mpl_cursors    úW/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/backends/backend_gtk3.pyÚ_mpl_to_gtk_cursorr"   %   s7   € ä�:‰:×#Ñ#Ü�‰×ÑÓ!Ü×+Ñ+¨JÓ7ó9ð 9ó    c                   ó|  ‡ — e Zd ZdZ ej
                  d„ «      Zej                  j                  ej                  j                  z  ej                  j                  z  ej                  j                  z  ej                  j                  z  ej                  j                  z  ej                  j                  z  ej                  j                   z  ej                  j"                  z  Zdˆ fd„	Zd„ Zd„ Zdd„Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze ddœd„«       Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*ˆ xZ+S )ÚFigureCanvasGTK3Úgtk3c                 ó   — t         S r   )ÚFigureManagerGTK3)Úclss    r!   ú<lambda>zFigureCanvasGTK3.<lambda>.   s   € Ô3D€ r#   Nc                 óŠ  •— t         ‰| �  |¬«       d| _        d | _        | j	                  d| j
                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d	| j                  «       | j	                  d	| j                  «       | j	                  d
| j                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d| j                  «       | j	                  d| j                   «       | j	                  d| j"                  «       | j%                  | j&                  j(                  «       | j+                  d«       t-        j.                  «       }|j1                  d«       | j3                  «       }|j5                  |t,        j6                  «       |j9                  d«       y )N)Úfigurer   Úscroll_eventÚbutton_press_eventÚbutton_release_eventÚconfigure_eventzscreen-changedznotify::scale-factorÚdrawÚkey_press_eventÚkey_release_eventÚmotion_notify_eventÚenter_notify_eventÚleave_notify_eventÚsize_allocateTs/   .matplotlib-canvas { background-color: white; }zmatplotlib-canvas)ÚsuperÚ__init__Ú_idle_draw_idÚ_rubberband_rectÚconnectr-   r.   r/   r0   Ú_update_device_pixel_ratioÚon_draw_eventÚ
_post_drawr2   r3   r4   r5   r6   r7   Ú
set_eventsÚ	__class__Ú
event_maskÚset_can_focusr   ÚCssProviderÚload_from_dataÚget_style_contextÚadd_providerÚ#STYLE_PROVIDER_PRIORITY_APPLICATIONÚ	add_class)Úselfr,   ÚcssÚ	style_ctxrA   s       €r!   r9   zFigureCanvasGTK3.__init__;   sµ  ø€ Ü‰Ñ ÐÔ'àˆÔØ $ˆÔà�‰�^¨T×->Ñ->Ô?Ø�‰Ð)¨T×-DÑ-DÔEØ�‰Ð+¨T×-FÑ-FÔGØ�‰Ð&¨T×-AÑ-AÔBØ�‰Ð%¨T×-LÑ-LÔMØ�‰Ð+¨T×-LÑ-LÔMØ�‰�V¨T×-?Ñ-?Ô@Ø�‰�V¨T¯_©_Ô=Ø�‰Ð&¨T×-AÑ-AÔBØ�‰Ð(¨T×-CÑ-CÔDØ�‰Ð*¨T×-EÑ-EÔFØ�‰Ð)¨T×-DÑ-DÔEØ�‰Ð)¨T×-DÑ-DÔEØ�‰�_¨T×-?Ñ-?Ô@à�‰˜Ÿ™×1Ñ1Ô2à×Ñ˜4Ô ä�o‰oÓˆØ×ÑÐMÔNØ×*Ñ*Ó,ˆ	Ø×Ñ˜s¤C×$KÑ$KÔLØ×ÑÐ/Õ0r#   c                 ó8   — t        d| «      j                  «        y )NÚclose_event)r   Ú_process©rJ   s    r!   ÚdestroyzFigureCanvasGTK3.destroyZ   s   € Ü�= $Ó'×0Ñ0Õ2r#   c                 ó¾   — | j                  d«      }|�J|j                  t        |«      «       t        j                  j                  «       }|j                  d«       y y )NÚwindowT)Úget_propertyÚ
set_cursorr"   r   ÚMainContextÚdefaultÚ	iteration)rJ   ÚcursorrS   Úcontexts       r!   rU   zFigureCanvasGTK3.set_cursor]   sS   € à×"Ñ" 8Ó,ˆØÐØ×ÑÔ0°Ó8Ô9Ü×&Ñ&×.Ñ.Ó0ˆGØ×Ñ˜dÕ#ð r#   c                 ó^  — |€Q| j                  «       }|j                  |j                  «       j                  «       j	                  «       «      \  }}}}n|j
                  |j                  }}|| j                  z  }| j                  j                  j                  || j                  z  z
  }||fS )a—  
        Convert the position of a GTK event, or of the current cursor position
        if *event* is None, to Matplotlib coordinates.

        GTK use logical pixels, but the figure is scaled to physical pixels for
        rendering.  Transform to physical pixels so that all of the down-stream
        transforms work as expected.

        Also, the origin is different and needs to be corrected.
        )Ú
get_windowÚget_device_positionÚget_displayÚget_device_managerÚget_client_pointerÚxÚyÚdevice_pixel_ratior,   ÚbboxÚheight)rJ   ÚeventrS   Útra   rb   Ústates          r!   Ú_mpl_coordszFigureCanvasGTK3._mpl_coordse   s�   € ð ˆ=Ø—_‘_Ó&ˆFØ#×7Ñ7Ø×"Ñ"Ó$×7Ñ7Ó9×LÑLÓNóP‰NˆAˆq�!‘Uð —7‘7˜EŸG™GˆqˆAØ�×'Ñ'Ñ'ˆà�K‰K×Ñ×#Ñ# a¨$×*AÑ*AÑ&AÑAˆØ�!ˆtˆr#   c                 óê   — |j                   t        j                  j                  k(  rdnd}t	        d| g| j                  |«      ¢­|| j                  |j                  «      |dœŽj                  «        y)Nr   éÿÿÿÿr-   )ÚstepÚ	modifiersÚguiEventF)	Ú	directionr   ÚScrollDirectionÚUPr   ri   Ú_mpl_modifiersrh   rO   )rJ   Úwidgetrf   rl   s       r!   r-   zFigureCanvasGTK3.scroll_event{   sh   € Ø—O‘O¤s×':Ñ':×'=Ñ'=Ò=‰qÀ2ˆÜ�> 4ð 	#Ø×$Ñ$ UÓ+ñ	#Ø26Ø!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør#   c                 óª   — t        d| g| j                  |«      ¢|j                  ‘­| j                  |j                  «      |dœŽj                  «        y)Nr.   ©rm   rn   F©r   ri   Úbuttonrr   rh   rO   ©rJ   rs   rf   s      r!   r.   z#FigureCanvasGTK3.button_press_eventƒ   sT   € ÜÐ'¨ð 	#Ø×$Ñ$ UÓ+ð	#Ø-2¯\©\ñ	#à!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør#   c                 óª   — t        d| g| j                  |«      ¢|j                  ‘­| j                  |j                  «      |dœŽj                  «        y)Nr/   ru   Frv   rx   s      r!   r/   z%FigureCanvasGTK3.button_release_eventŠ   sT   € ÜÐ)¨4ð 	#Ø×$Ñ$ UÓ+ð	#Ø-2¯\©\ñ	#à!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør#   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr2   rn   T©r	   Ú_get_keyri   rO   rx   s      r!   r2   z FigureCanvasGTK3.key_press_event‘   s>   € ÜÐ" DØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør#   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr3   rn   Tr{   rx   s      r!   r3   z"FigureCanvasGTK3.key_release_event—   s>   € ÜÐ$ dØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør#   c                 ó’   — t        d| g| j                  |«      ¢­| j                  |j                  «      |dœŽj	                  «        y)Nr4   ru   F)r   ri   rr   rh   rO   rx   s      r!   r4   z$FigureCanvasGTK3.motion_notify_event�   sE   € ÜÐ(¨$ð 	#°×1AÑ1AÀ%Ó1Hñ 	#Ø!×0Ñ0°·±Ó=Ø!ò	#ç#+¡8¤:Ør#   c                 óô   — t         j                  j                  | j                  «       «      j	                  «       }t        d| g| j                  |«      ¢­| j                  |«      |dœŽj                  «        y )NÚfigure_enter_eventru   ©	r   ÚKeymapÚget_for_displayr^   Úget_modifier_stater
   ri   rr   rO   ©rJ   rs   rf   Úgtk_modss       r!   r5   z#FigureCanvasGTK3.enter_notify_event£   ój   € Ü—:‘:×-Ñ-Ø×ÑÓó ß 2Ñ 2Ó 4ð 	äÐ*¨Dð 	&°4×3CÑ3CÀEÓ3Jñ 	&Ø $× 3Ñ 3°HÓ =Ø$ò	&ç&.¡h¥jr#   c                 óô   — t         j                  j                  | j                  «       «      j	                  «       }t        d| g| j                  |«      ¢­| j                  |«      |dœŽj                  «        y )NÚfigure_leave_eventru   r�   r…   s       r!   r6   z#FigureCanvasGTK3.leave_notify_eventª   r‡   r#   c                 ó0  — | j                   j                  }|j                  | j                  z  |z  }|j                  | j                  z  |z  }| j                   j                  ||d¬«       t        d| «      j                  «        | j                  «        y )NF©ÚforwardÚresize_event)	r,   ÚdpiÚwidthrc   re   Úset_size_inchesr   rO   Ú	draw_idle)rJ   rs   Ú
allocationÚdpivalÚwinchÚhinchs         r!   r7   zFigureCanvasGTK3.size_allocate±   s{   € Ø—‘—‘ˆØ× Ñ  4×#:Ñ#:Ñ:¸VÑCˆØ×!Ñ! D×$;Ñ$;Ñ;¸fÑDˆØ�‰×#Ñ# E¨5¸%Ð#Ô@Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr#   ©Úexcludec                ó8  — dt         j                  j                  dfdt         j                  j                  dfdt         j                  j                  dfdt         j                  j
                  dfg}|D ���cg c]  \  }}}||k7  r| |z  r|‘Œ c}}}S c c}}}w )NÚctrlÚcontrolÚaltÚshiftr8   )r   ÚModifierTypeÚCONTROL_MASKÚ	MOD1_MASKÚ
SHIFT_MASKÚ	MOD4_MASK)Úevent_stater—   rm   ÚnameÚmaskÚkeys         r!   rr   zFigureCanvasGTK3._mpl_modifiers¹   s�   € ð ”S×%Ñ%×2Ñ2°IÐ>Ø”C×$Ñ$×.Ñ.°Ð6Ø”c×&Ñ&×1Ñ1°7Ð;Ø”c×&Ñ&×0Ñ0°'Ð:ð	
ˆ	ð -6÷ :ð :™˜˜t SØ˜c’> k°DÒ&8ò ô :ð 	:ùô :s   Á9Bc                 óf  — t        t        j                  |j                  «      «      }t	        j
                  |t        j                  |j                  «      «      }| j                  |j                  |¬«      }d|v r!|j                  «       r|j                  d«       dj                  g |¢|‘«      S )Nr–   rœ   ú+)Úchrr   Úkeyval_to_unicodeÚkeyvalr   Ú_unikey_or_keysym_to_mplkeyÚkeyval_namerr   rh   ÚisprintableÚremoveÚjoin)rJ   rf   Úunikeyr¥   Úmodss        r!   r|   zFigureCanvasGTK3._get_keyÄ   s‹   € Ü”S×*Ñ*¨5¯<©<Ó8Ó9ˆÜ×/Ñ/Ø”C—O‘O E§L¡LÓ1ó3ˆà×"Ñ" 5§;¡;¸Ð"Ó<ˆØ�d‰?˜v×1Ñ1Ô3Ø�K‰K˜Ô Ø�x‰x˜˜$˜ ˜Ó%Ð%r#   c                 ó„   — | j                  | j                  «       «      r!| j                  «        | j                  «        y y r   )Ú_set_device_pixel_ratioÚget_scale_factorÚqueue_resizeÚ
queue_draw©rJ   ÚargsÚkwargss      r!   r=   z+FigureCanvasGTK3._update_device_pixel_ratioÍ   s9   € ð ×'Ñ'¨×(=Ñ(=Ó(?Ô@ð ×ÑÔØ�O‰OÕð Ar#   c                 ó  — |j                  d«      €y |j                  | j                  z  }|j                  | j                  z  }|dk  s|dk  ry | j                  j
                  }| j                  j                  ||z  ||z  d¬«       y)NrS   é   Fr‹   )rT   r�   rc   re   r,   rŽ   r�   )rJ   rs   rf   ÚwÚhrŽ   s         r!   r0   z FigureCanvasGTK3.configure_event×   s   € Ø×Ñ˜xÓ(Ð0ØØ�K‰K˜$×1Ñ1Ñ1ˆØ�L‰L˜4×2Ñ2Ñ2ˆØˆqŠ5�A˜’EØà�k‰k�o‰oˆØ�‰×#Ñ# A¨¡G¨Q°©W¸eÐ#ÔDØr#   c                 ó2   — || _         | j                  «        y r   )r;   r¶   )rJ   Úrects     r!   Ú_draw_rubberbandz!FigureCanvasGTK3._draw_rubberbandã   s   € Ø $ˆÔà�‰Õr#   c                 ó   ‡ — ‰ j                   €y ˆ fd„‰ j                   D «       \  }}}}||z   }||z   }|j                  ||«       |j                  ||«       |j                  ||«       |j                  ||«       |j                  ||«       |j                  ||«       |j                  ||«       |j                  ||«       |j                  d«       |j	                  d«       |j                  dd«       |j                  ddd«       |j                  «        |j                  dd«       |j                  ddd«       |j                  «        y )Nc              3   ó<   •K  — | ]  }|‰j                   z  –— Œ y ­wr   )rc   )Ú.0ÚdimrJ   s     €r!   ú	<genexpr>z.FigureCanvasGTK3._post_draw.<locals>.<genexpr>ì   s$   øè ø€ ò :Øð ˜d×5Ñ5Õ5ñ :ùs   ƒr   )r»   r»   r   r»   )	r;   Úmove_toÚline_toÚset_antialiasÚset_line_widthÚset_dashÚset_source_rgbÚstroke_preserveÚstroke)	rJ   rs   ÚctxÚx0Úy0r¼   r½   Úx1Úy1s	   `        r!   r?   zFigureCanvasGTK3._post_drawè   s$  ø€ Ø× Ñ Ð(Øó:Ø#'×#8Ñ#8ô:‰ˆˆB��1à�!‰VˆØ�!‰Vˆð 	�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜Ôà×Ñ˜!ÔØ×Ñ˜1ÔØ�‰�V˜QÔØ×Ñ˜1˜a Ô#Ø×ÑÔà�‰�V˜QÔØ×Ñ˜1˜a Ô#Ø�
‰
�r#   c                  ó   — y r   © )rJ   rs   rÎ   s      r!   r>   zFigureCanvasGTK3.on_draw_event  s   € àr#   c                 óF   — | j                  «       r| j                  «        y y r   )Úis_drawabler¶   rP   s    r!   r1   zFigureCanvasGTK3.draw
  s   € à×ÑÔØ�O‰OÕð r#   c                 ód   ‡ — ‰ j                   dk7  ry ˆ fd„}t        j                  |«      ‰ _         y )Nr   c                  óN   •— 	 ‰j                  «        d‰_        y# d‰_        w xY w)Nr   F)r1   r:   )r¸   rJ   s    €r!   Ú	idle_drawz-FigureCanvasGTK3.draw_idle.<locals>.idle_draw  s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r:   r   Úidle_add)rJ   rÙ   s   ` r!   r‘   zFigureCanvasGTK3.draw_idle  s,   ø€ à×Ñ Ò"Øô	ô "Ÿ]™]¨9Ó5ˆÕr#   c                 ó¦   — t         j                  j                  «       }|j                  «       r#|j	                  d«       |j                  «       rŒ"y y )NT)r   rV   rW   ÚpendingrX   )rJ   rZ   s     r!   Úflush_eventszFigureCanvasGTK3.flush_events  s:   € ä×"Ñ"×*Ñ*Ó,ˆØ�o‰oÔØ×Ñ˜dÔ#ð �o‰o×r#   r   ),Ú__name__Ú
__module__Ú__qualname__Úrequired_interactive_frameworkr   ÚclasspropertyÚmanager_classr   Ú	EventMaskÚBUTTON_PRESS_MASKÚBUTTON_RELEASE_MASKÚEXPOSURE_MASKÚKEY_PRESS_MASKÚKEY_RELEASE_MASKÚENTER_NOTIFY_MASKÚLEAVE_NOTIFY_MASKÚPOINTER_MOTION_MASKÚSCROLL_MASKrB   r9   rQ   rU   ri   r-   r.   r/   r2   r3   r4   r5   r6   r7   Ústaticmethodrr   r|   r=   r0   rÀ   r?   r>   r1   r‘   rÝ   Ú__classcell__)rA   s   @r!   r%   r%   ,   sN  ø„ Ø%+Ð"Ø&�D×&Ñ&Ñ'DÓE€Mð —-‘-×1Ñ1Ø—M‘M×5Ñ5ñ6à—M‘M×/Ñ/ñ0ð —M‘M×0Ñ0ñ1ð —M‘M×2Ñ2ñ	3ð
 —M‘M×3Ñ3ñ4ð —M‘M×3Ñ3ñ4ð —M‘M×5Ñ5ñ6ð —M‘M×-Ñ-ñ.€Jõ1ò>3ò$óò,òòòòòò1ò1òð Ø/3ó :ó ð:ò&òò
òò
ò<òò

6ö$r#   r%   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNavigationToolbar2GTK3c                 óŒ  — t         j                   j                  | «       | j                  t        j                  j
                  «       i | _        | j                  D �]E  \  }}}}|€%| j                  t        j                  «       d«       Œ0t        j                  j                  t        j                  j                  t        t!        j"                  d|› d�«      «      «      t        j$                  j&                  «      }|dv rt        j(                  «       nt        j*                  «       x| j                  |<   }|j-                  |«       |j/                  |«       |j1                  dt3        | |«      «      |_        |j7                  |«       | j                  |d«       �ŒH t        j8                  «       }| j                  |d«       t        j:                  «       }	|	j=                  d«       |j?                  d«       |jA                  |	«       t        j8                  «       }| j                  |d«       t        j:                  «       | _!        | jB                  jE                  t        jF                  jH                  «       |jA                  | jB                  «       | jK                  «        tM        j                  | |«       y )Nrk   Úimagesú-symbolic.svg)ÚzoomÚpanÚclickedu   <small>Â 
Â </small>T)'r   r9   Ú	set_styler   ÚToolbarStyleÚICONSÚ_gtk_idsÚ	toolitemsÚinsertÚSeparatorToolItemÚImageÚnew_from_giconr   ÚIconÚnew_for_stringÚstrr   Ú_get_data_pathÚIconSizeÚLARGE_TOOLBARÚToggleToolButtonÚ
ToolButtonÚ	set_labelÚset_icon_widgetr<   ÚgetattrÚ_signal_handlerÚset_tooltip_textÚToolItemÚLabelÚ
set_markupÚ
set_expandÚaddÚmessageÚset_justifyÚJustificationÚRIGHTÚshow_allr   )
rJ   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimagerw   ÚtoolitemÚlabels
             r!   r9   zNavigationToolbar2GTK3.__init__#  s  € Ü�‰× Ñ  Ô&à�‰”s×'Ñ'×-Ñ-Ô.àˆŒØ8<¿¹ó 	$Ñ4ˆD�, 
¨HØˆ|Ø—‘œC×1Ñ1Ó3°RÔ8ØÜ—I‘I×,Ñ,Ü—‘×'Ñ'Üœ×,Ñ,¨XØ0:¨|¸=Ð-IóKó LóMô —‘×*Ñ*ó	,ˆEð +3°oÑ*E”×$Ñ$Ô&Ü—‘Ó ð"ˆD�M‰M˜$Ñ &ð ×Ñ˜TÔ"Ø×"Ñ" 5Ô)à%+§^¡^Øœ7 4¨Ó2ó&4ˆFÔ"à×#Ñ# LÔ1Ø�K‰K˜ Ö#ð%	$ô0 —<‘<“>ˆØ�‰�H˜bÔ!Ü—	‘	“ˆØ×ÑØCô	Eà×Ñ˜DÔ!Ø�‰�UÔä—<‘<“>ˆØ�‰�H˜bÔ!Ü—y‘y“{ˆŒØ�‰× Ñ ¤×!2Ñ!2×!8Ñ!8Ô9Ø�‰�T—\‘\Ô"à�‰Œä×'Ñ'¨¨fÕ5r#   c           	      óÐ  ‡ ‡
— t        j                  d‰ j                  j                  «       t         j                  j
                  t         j                  t         j                  j                  t         j                  t         j                  j                  f¬«      Š
‰ j                  j                  «       j                  «       D ]„  \  }}t        j                  «       }|j                  |«       |D ]  }|j                  d|› �«       Œ ‰
j!                  |«       ‰ j                  j#                  «       |v sŒt‰
j%                  |«       Œ† t'        j(                  ‰
j*                  d«      ˆ
ˆ fd„«       }‰
j-                  t.        j0                  d   «       ‰
j3                  ‰ j                  j5                  «       «       ‰
j7                  d«       ‰
j9                  «       }‰
j;                  «       }‰
j=                  «       }‰ j                  j                  «       |j?                  «          d   }‰
jA                  «        |t         j                  j                  k7  ry t.        j0                  d   r0tB        jD                  jG                  |«      t.        j0                  d<   	 ‰ j                  jH                  jK                  ||¬	«       y # tL        $ r”}	t        jN                  ‰ j                  j                  «       tQ        |	«      t         jR                  jT                  t         jV                  j                  ¬
«      Š
‰
j9                  «        ‰
jA                  «        Y d }	~	y d }	~	ww xY w)NzSave the figure)ÚtitleÚparentÚactionÚbuttonsz*.znotify::filterc                  ó  •— ‰j                  «       j                  «       }‰j                  j                  «       |   d   }‰j	                  t        t        ‰j                  «       «      j                  d|› �«      «      «       y )Nr   ú.)	Ú
get_filterÚget_namer  Úget_supported_filetypes_groupedÚset_current_namer  r   Úget_current_nameÚwith_suffix)r¸   r£   ÚfmtÚdialogrJ   s      €€r!   Úon_notify_filterz<NavigationToolbar2GTK3.save_figure.<locals>.on_notify_filtere  sl   ø€ à×$Ñ$Ó&×/Ñ/Ó1ˆDØ—+‘+×=Ñ=Ó?ÀÑEÀaÑHˆCØ×#Ñ#Ü”D˜×0Ñ0Ó2Ó3×?Ñ?À!ÀCÀ5À	ÓJÓKõMr#   zsavefig.directoryTr   )Úformat)r"  Úmessage_formatÚtyper$  ),r   ÚFileChooserDialogr  Úget_toplevelÚFileChooserActionÚSAVEÚSTOCK_CANCELÚResponseTypeÚCANCELÚ
STOCK_SAVEÚOKr)  ÚitemsÚ
FileFilterÚset_nameÚadd_patternÚ
add_filterÚget_default_filetypeÚ
set_filterÚ	functoolsÚpartialr<   Úset_current_folderÚmplÚrcParamsr*  Úget_default_filenameÚset_do_overwrite_confirmationÚrunÚget_filenamer'  r(  rQ   ÚosÚpathÚdirnamer,   ÚsavefigÚ	ExceptionÚMessageDialogr  ÚMessageTypeÚERRORÚButtonsType)rJ   r¸   r£   ÚfmtsÚffr-  r/  ÚresponseÚfnameÚer.  s   `         @r!   Úsave_figurez"NavigationToolbar2GTK3.save_figureS  sƒ  ù€ Ü×&Ñ&Ø#Ø—;‘;×+Ñ+Ó-Ü×(Ñ(×-Ñ-Ü×%Ñ%¤s×'7Ñ'7×'>Ñ'>Ü—^‘^¤s×'7Ñ'7×':Ñ':ð<ô	
ˆð —;‘;×>Ñ>Ó@×FÑFÓHò	&‰JˆD�$ä—‘Ó!ˆBØ�K‰K˜ÔØò +�Ø—‘  C 5˜zÕ*ð+à×Ñ˜bÔ!Ø�{‰{×/Ñ/Ó1°TÒ9Ø×!Ñ! "Õ%ð	&ô 
×	Ñ	˜6Ÿ>™>Ð+;Ó	<ô	Mó 
=ð	Mð 	×!Ñ!¤#§,¡,Ð/BÑ"CÔDØ×Ñ §¡× @Ñ @Ó BÔCØ×,Ñ,¨TÔ2à—:‘:“<ˆØ×#Ñ#Ó%ˆØ×ÑÓ ˆØ�k‰k×9Ñ9Ó;¸B¿K¹K»MÑJÈ1ÑMˆØ�‰ÔØ”s×'Ñ'×*Ñ*Ò*Øä�<‰<Ð+Ò,Ü02·±·±ÀÓ0FŒC�L‰LÐ,Ñ-ð	Ø�K‰K×Ñ×&Ñ& u°SÐ&Õ9øÜò 	Ü×&Ñ&Ø—{‘{×/Ñ/Ó1Ä#ÀaÃ&Ü—_‘_×*Ñ*´C·O±O×4FÑ4FôHˆFð �J‰JŒLØ�N‰N×Ñûð	ús   Ê 'K Ë	M%ËB
M Í M%N)rÞ   rß   rà   r9   rZ  rÔ   r#   r!   rñ   rñ   "  s   „ ò.6ó`.r#   rñ   c                   ó@   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚToolbarGTK3rô   c                 óÒ  — t        j                  | |«       t        j                  j                  | «       | j	                  dt        j
                  j                  «       t        j                  «       | _        | j                  j                  t        j                  j                  «       | j                  | j                  ddd«       | j                  «        i | _        i | _        y )NÚorientationFr   )r   r9   r   ÚBoxÚset_propertyÚOrientationÚ
HORIZONTALr  Ú_messager  r  r  Úpack_endr  Ú_groupsÚ
_toolitems)rJ   Útoolmanagers     r!   r9   zToolbarGTK3.__init__‡  s–   € Ü×"Ñ" 4¨Ô5Ü�‰×Ñ˜ÔØ×Ñ˜-¬¯©×)CÑ)CÔDÜŸ	™	›ˆŒØ�‰×!Ñ!¤#×"3Ñ"3×"9Ñ"9Ô:Ø�‰�d—m‘m U¨E°1Ô5Ø�‰ŒØˆŒØˆ�r#   c                 ón  — |rt        j                  «       }nt        j                  «       }|j                  |«       |�ft         j                  j                  t        j                  j                  |«      t         j                  j                  «      }|j                  |«       |€d}| j                  |||«       |j                  d| j                  |«      }	|j                  |«       |j!                  «        | j"                  j%                  |g «       | j"                  |   j'                  ||	f«       y )Nrk   r÷   )r   r  r  r	  rÿ   r   r   r  r  r  r  r
  Ú_add_buttonr<   Ú
_call_toolr  r  rf  Ú
setdefaultÚappend)
rJ   r£   ÚgroupÚpositionr  ÚdescriptionÚtogglerw   r  Úsignals
             r!   Úadd_toolitemzToolbarGTK3.add_toolitem’  sñ   € áÜ×)Ñ)Ó+‰Fä—^‘^Ó%ˆFØ×Ñ˜ÔàÐ!Ü—I‘I×,Ñ,Ü—‘×'Ñ'¨
Ó3Ü—‘×*Ñ*ó,ˆEð ×"Ñ" 5Ô)àÐØˆHà×Ñ˜ ¨Ô1Ø—‘ 	¨4¯?©?¸DÓAˆØ×Ñ Ô,Ø�‰ÔØ�‰×"Ñ" 4¨Ô,Ø�‰˜Ñ×$Ñ$ f¨fÐ%5Õ6r#   c                 óv  — || j                   vrŒ| j                   r| j                  «        t        j                  «       }|j	                  t        j
                  j                  «       | j                  |ddd«       |j                  «        || j                   |<   | j                   |   j                  ||«       y )NFr   )
re  Ú_add_separatorr   ÚToolbarrø   rù   rú   Ú
pack_startr  rý   )rJ   rw   rm  rn  Útoolbars        r!   ri  zToolbarGTK3._add_buttonª  s‹   € Ø˜Ÿ™Ñ$Ø�|Š|Ø×#Ñ#Ô%Ü—k‘k“mˆGØ×Ñœc×.Ñ.×4Ñ4Ô5Ø�O‰O˜G U¨E°1Ô5Ø×ÑÔØ")ˆD�L‰L˜ÑØ�‰�UÑ×"Ñ" 6¨8Õ4r#   c                 ó&   — | j                  |«       y r   )Útrigger_tool)rJ   Úbtnr£   s      r!   rj  zToolbarGTK3._call_toolµ  s   € Ø×Ñ˜$Õr#   c                 ó¶   — || j                   vry | j                   |   D ]8  \  }}|j                  |«       |j                  |«       |j                  |«       Œ: y r   )rf  Úhandler_blockÚ
set_activeÚhandler_unblock)rJ   r£   Útoggledr  rq  s        r!   Útoggle_toolitemzToolbarGTK3.toggle_toolitem¸  sX   € Ø�t—‘Ñ&ØØ $§¡°Ñ 5ò 	-ÑˆH�fØ×"Ñ" 6Ô*Ø×Ñ Ô(Ø×$Ñ$ VÕ,ñ	-r#   c                 ó*  — || j                   vr | j                  j                  |› d�| «       y | j                  D ]I  }| j                   |   D ]5  \  }}|| j                  |   v sŒ| j                  |   j	                  |«       Œ7 ŒK | j                   |= y )Nz not in toolbar)rf  rg  Úmessage_eventre  r®   )rJ   r£   rm  r  Ú_signals        r!   Úremove_toolitemzToolbarGTK3.remove_toolitemÀ  s”   € Ø�t—‘Ñ&Ø×Ñ×*Ñ*¨d¨V°?Ð+CÀTÔJØà—\‘\ò 	9ˆEØ%)§_¡_°TÑ%:ò 9Ñ!�˜'Ø˜tŸ|™|¨EÑ2Ò2Ø—L‘L Ñ'×.Ñ.¨xÕ8ñ9ð	9ð �O‰O˜DÑ!r#   c                 óÈ   — t        j                  «       }|j                  dt         j                  j                  «       | j                  |ddd«       |j                  «        y )Nr^  FTr   )r   Ú	Separatorr`  ra  ÚVERTICALrv  r  )rJ   Úseps     r!   rt  zToolbarGTK3._add_separatorË  sB   € Ü�m‰m‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰˜˜U D¨!Ô,Ø�‰�r#   c                 ó:   — | j                   j                  |«       y r   )rc  r	  )rJ   Úss     r!   Úset_messagezToolbarGTK3.set_messageÑ  s   € Ø�‰×Ñ Õ"r#   N)rÞ   rß   rà   Ú_icon_extensionr9   rr  ri  rj  r€  r„  rt  r‹  rÔ   r#   r!   r\  r\  „  s/   „ Ø%€Oò	ò7ò0	5ò ò-ò	"òó#r#   r\  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureGTK3c                 óJ   — t         j                  | j                  «       «       y r   )rñ   rZ  Ú"_make_classic_style_pseudo_toolbarr·   s      r!   ÚtriggerzSaveFigureGTK3.trigger×  s   € Ü×*Ñ*Ø×3Ñ3Ó5õ	7r#   N©rÞ   rß   rà   r‘  rÔ   r#   r!   rŽ  rŽ  Õ  s   „ ó7r#   rŽ  c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚHelpGTK3c                 ó  — dddddœ}|j                  d«      }|dd D �cg c]
  }d	|z   d
z   ‘Œ }}|d   }||v r||   }n5t        |«      dkD  r|j                  «       }n|j                  «       r|dgz  }dj	                  |«      |z   S c c}w )z‚
        Convert Matplotlib key presses to GTK+ accelerator identifiers.

        Related to `FigureCanvasGTK3._get_key`.
        Ú	BackSpaceÚ	Page_DownÚPage_UpÚScroll_Lock)Ú	backspaceÚpagedownÚpageupÚscroll_lockr§   Nrk   ú<ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperr¯   )rJ   r¥   ÚspecialÚpartsÚmodr±   s         r!   Ú_normalize_shortcutzHelpGTK3._normalize_shortcutÞ  s¤   € ð %Ø#ØØ(ñ	
ˆð —	‘	˜#“ˆØ+0°°"¨:Ö6 C��c‘	˜C“Ð6ˆÐ6Ø�B‰iˆà�'‰>Ø˜#‘,‰CÜ�‹X˜Š\Ø—.‘.Ó"‰CØ�[‰[Œ]Ø�Y�KÑˆDà�w‰w�t‹}˜sÑ"Ð"ùò 7s    B	c                 ó2   — d|vxr |j                  d«       S )zÖ
        Check for a valid shortcut to be displayed.

        - GTK will never send 'cmd+' (see `FigureCanvasGTK3._get_key`).
        - The shortcut window only shows keyboard shortcuts, not mouse buttons.
        zcmd+zMouseButton.)Ú
startswith)rJ   r¥   s     r!   Ú_is_valid_shortcutzHelpGTK3._is_valid_shortcutø  s    € ð ˜SÐ ÒG¨¯©¸Ó)GÐ%GÐGr#   c           	      óÔ  ‡ — t        j                  «       }t        ‰ j                  j                  j                  «       «      D ]¸  \  }}|j                  sŒt        j                  «       }|j                  |«       |j                  d„ d «       t        j                  dj                  ˆ fd„‰ j                  j                  |«      D «       «      |j                  |j                  ¬«      }|j                  |«       Œº t        j                  dd‰ j                  j                   j#                  «       ¬«      }|j%                  «        |j                  |«       |j'                  «        y )Nc                 ó$   — | j                  d«      S )NF)Úset_visible)rs   Údatas     r!   r*   z1HelpGTK3._show_shortcuts_window.<locals>.<lambda>  s   € ¨f×.@Ñ.@ÀÓ.G€ r#   ú c              3   ób   •K  — | ]&  }‰j                  |«      r‰j                  |«      –— Œ( y ­wr   )r«  r¨  )rÃ   r¥   rJ   s     €r!   rÅ   z2HelpGTK3._show_shortcuts_window.<locals>.<genexpr>  s2   øè ø€ ò %5àØ×.Ñ.¨sÔ3ð ×,Ñ,¨S×1ñ%5ùs   ƒ,/)Úacceleratorr!  ÚsubtitleÚHelpT)r!  ÚmodalÚtransient_for)r   ÚShortcutsSectionÚsortedrg  Útoolsr<  ro  ÚShortcutsGroupr  ÚforallÚShortcutsShortcutr¯   Úget_tool_keymapr£   ÚShortcutsWindowÚ_figurer  r4  Úshowr  )rJ   Úsectionr£   Útoolrm  ÚshortcutrS   s   `      r!   Ú_show_shortcuts_windowzHelpGTK3._show_shortcuts_window  s  ø€ Ü×&Ñ&Ó(ˆä  ×!1Ñ!1×!7Ñ!7×!=Ñ!=Ó!?Ó@ò 	 ‰JˆD�$Ø×#Ò#Øô ×&Ñ&Ó(ˆEØ�K‰K˜Ôà�L‰LÑGÈÔNä×,Ñ,ØŸH™Hó %5à#×/Ñ/×?Ñ?ÀÓEô%5ó 5ð —i‘iØ×)Ñ)ô+ˆHð �I‰I�hÕð)	 ô, ×$Ñ$ØØØŸ,™,×-Ñ-×:Ñ:Ó<ô>ˆð 	�‰ŒØ�
‰
�7Ôà�‰Õr#   c                 ó:  — t        j                  | j                  j                  j	                  «       dt         j
                  j                  t         j                  j                  | j                  «       d¬«      }|j                  «        |j                  «        y )Nr   r´  )r!  )r   rQ  r¿  r  r4  rR  ÚINFOrT  r;  Ú_get_help_textrJ  rQ   )rJ   r.  s     r!   Ú_show_shortcuts_dialogzHelpGTK3._show_shortcuts_dialog#  sf   € Ü×"Ñ"Ø�L‰L×Ñ×,Ñ,Ó.ØŒs�‰×#Ñ#¤S§_¡_×%7Ñ%7¸×9LÑ9LÓ9NØôˆð 	�
‰
ŒØ�‰Õr#   c                 ót   — t        j                  ddd«      €| j                  «        y | j                  «        y )Nr»   é   r   )r   Úcheck_versionrÄ  rÈ  )rJ   r¸   s     r!   r‘  zHelpGTK3.trigger+  s/   € Ü×Ñ˜Q  AÓ&Ð.Ø×'Ñ'Õ)à×'Ñ'Õ)r#   N)rÞ   rß   rà   r¨  r«  rÄ  rÈ  r‘  rÔ   r#   r!   r”  r”  Ü  s   „ ò#ò4Hò òDó*r#   r”  c                   ó   — e Zd Zd„ Zy)ÚToolCopyToClipboardGTK3c                 ó  — t         j                  j                  t        j                  «      }| j
                  j                  «       }|j                  «       \  }}}}t        j                  |||||«      }	|j                  |	«       y r   )
r   Ú	ClipboardÚgetr   ÚSELECTION_CLIPBOARDr  r\   Úget_geometryÚpixbuf_get_from_windowÚ	set_image)
rJ   r¸   r¹   Ú	clipboardrS   ra   rb   r�   re   Úpbs
             r!   r‘  zToolCopyToClipboardGTK3.trigger4  sk   € Ü—M‘M×%Ñ%¤c×&=Ñ&=Ó>ˆ	Ø—‘×'Ñ'Ó)ˆØ$×1Ñ1Ó3Ñˆˆ1ˆe�VÜ×'Ñ'¨°°1°e¸VÓDˆØ×Ñ˜BÕr#   Nr’  rÔ   r#   r!   rÍ  rÍ  2  s   „ ó r#   rÍ  c                   ó   — e Zd ZeZeZy)r(   N)rÞ   rß   rà   rñ   Ú_toolbar2_classr\  Ú_toolmanager_toolbar_classrÔ   r#   r!   r(   r(   C  s   „ Ø,€OØ!,Ñr#   r(   c                   ó   — e Zd ZeZeZy)Ú_BackendGTK3N)rÞ   rß   rà   r%   ÚFigureCanvasr(   ÚFigureManagerrÔ   r#   r!   rÛ  rÛ  H  s   „ à#€LØ%�Mr#   rÛ  )<rC  ÚloggingrL  Úpathlibr   Ú
matplotlibrF  r   r   r   Úmatplotlib.backend_basesr   r   r	   r
   r   r   ÚgiÚImportErrorÚerrÚrequire_versionÚ
ValueErrorrY  Úgi.repositoryr   r   r   r   r   r   r   r   r   r   r   r   Ú	TimerGTK3Ú	getLoggerrÞ   Ú_logÚcacher"   ÚDrawingArear%   ru  rñ   r_  r\  Ú_register_tool_classÚSaveFigureBaserŽ  ÚToolHelpBaser”  ÚToolCopyToClipboardBaserÍ  ÚConfigureSubplotsGTKÚRubberbandGTKr(   ÚexportrÛ  rÔ   r#   r!   ú<module>rô     s  ðÛ Û Û 	Ý ã ß 1Ñ 1÷÷ ðFÛð ð €B×Ñ�u˜eÔ$÷ 7Õ 6Ý ÷õ ð €w×Ñ˜Ó"€ð ‡�ñ9ó ð9ôs$Ð'¨¯©ô s$ôl_Ð3°S·[±[ô _ôDN#Ð# S§W¡Wô N#ðb $€×#Ñ#Ð$4Ó5ô7�]×1Ñ1ó 7ó 6ð7ð $€×#Ñ#Ð$4Ó5ôR*ˆ}×)Ñ)ó R*ó 6ðR*ðj $€×#Ñ#Ð$4Ó5ô ˜m×CÑCó  ó 6ð ð €Ø "€× "Ñ "Ø�l×7Ñ7ô9à "€× "Ñ "Ø�l×0Ñ0ô2ô-Ð)ô -ð
 ×Ñô&�;ó &ó ñ&øðw ò FÙ
Ð;Ó
<À#ÐEûðFûð ò  ñ �a‹.˜aÐûð ús.   ²F2 ·G Æ2GÆ7	G Ç GÇGÇ	GÇG