Ë
    %êñi0W  ã                   ó°  — 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mZ 	 d dlmZ 	  e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jN                  e(«      Z)e jT                  d„ «       Z+ G d„ de"ejX                  «      Z- G d„ de$ej\                  «      Z/ G d„ deej`                  «      Z1 ejd                  e-«       G d„ dejf                  «      «       Z4 ejd                  e-«       G d„ dejj                  «      «       Z6 ejd                  e-«       G d„ dejn                  «      «       Z8e1Z. ejd                  e-e jr                  «        ejd                  e-e jt                  «        G d„ de#«      Z;e!jx                   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ÚMouseButtonÚ
CloseEventÚKeyEventÚLocationEventÚ
MouseEventÚResizeEvent)Úrequire_versionz#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    úb/var/www/pod-logistic/pod-ai/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„ «       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/   r0   r1   r2   Ú_update_device_pixel_ratioÚon_draw_eventÚ
_post_drawr4   r5   r6   r7   r8   r9   Ú
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_ctxrC   s       €r#   r;   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©rL   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)rL   ÚcursorrU   Úcontexts       r#   rW   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)rL   ÚeventrU   Útrc   rd   Ú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   rk   Ú_mpl_modifiersrj   rQ   )rL   Úwidgetrh   rn   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)Nr0   ©ro   rp   F©r   rk   Úbuttonrt   rj   rQ   ©rL   ru   rh   s      r#   r0   z#FigureCanvasGTK3.button_press_eventƒ   sT   € ÜÐ'¨ð 	#Ø×$Ñ$ UÓ+ð	#Ø-2¯\©\ñ	#à!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør%   c                 óª   — t        d| g| j                  |«      ¢|j                  ‘­| j                  |j                  «      |dœŽj                  «        y)Nr1   rw   Frx   rz   s      r#   r1   z%FigureCanvasGTK3.button_release_eventŠ   sT   € ÜÐ)¨4ð 	#Ø×$Ñ$ UÓ+ð	#Ø-2¯\©\ñ	#à!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør%   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr4   rp   T©r
   Ú_get_keyrk   rQ   rz   s      r#   r4   z FigureCanvasGTK3.key_press_event‘   s>   € ÜÐ" DØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør%   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr5   rp   Tr}   rz   s      r#   r5   z"FigureCanvasGTK3.key_release_event—   s>   € ÜÐ$ dØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør%   c                 óÆ   — t        d| g| j                  |«      ¢­| j                  |j                  «      | j	                  |j                  «      |dœŽj                  «        y)Nr6   )Úbuttonsro   rp   F)r   rk   Ú_mpl_buttonsrj   rt   rQ   rz   s      r#   r6   z$FigureCanvasGTK3.motion_notify_event�   sY   € ÜÐ(¨$ð 	#°×1AÑ1AÀ%Ó1Hñ 	#Ø×,Ñ,¨U¯[©[Ó9Ø!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør%   c                 óô   — t         j                  j                  | j                  «       «      j	                  «       }t        d| g| j                  |«      ¢­| j                  |«      |dœŽj                  «        y )NÚfigure_enter_eventrw   ©	r   ÚKeymapÚget_for_displayr`   Úget_modifier_stater   rk   rt   rQ   ©rL   ru   rh   Úgtk_modss       r#   r7   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_eventrw   r…   r‰   s       r#   r8   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Úwidthre   rg   Úset_size_inchesr   rQ   Ú	draw_idle)rL   ru   Ú
allocationÚdpivalÚwinchÚhinchs         r#   r9   zFigureCanvasGTK3.size_allocate²   s{   € Ø—‘—‘ˆØ× Ñ  4×#:Ñ#:Ñ:¸VÑCˆØ×!Ñ! D×$;Ñ$;Ñ;¸fÑDˆØ�‰×#Ñ# E¨5¸%Ð#Ô@Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr%   c                 óâ  — t         j                  t        j                  j                  ft         j
                  t        j                  j                  ft         j                  t        j                  j                  ft         j                  t        j                  j                  ft         j                  t        j                  j                  fg}|D ��cg c]  \  }}| |z  sŒ|‘Œ c}}S c c}}w r   )r   ÚLEFTr   ÚModifierTypeÚBUTTON1_MASKÚMIDDLEÚBUTTON2_MASKÚRIGHTÚBUTTON3_MASKÚBACKÚBUTTON4_MASKÚFORWARDÚBUTTON5_MASK)Úevent_statero   ÚnameÚmasks       r#   r‚   zFigureCanvasGTK3._mpl_buttonsº   s®   € ô ×Ñœs×/Ñ/×<Ñ<Ð=Ü×Ñ¤×!1Ñ!1×!>Ñ!>Ð?Ü×Ñ¤× 0Ñ 0× =Ñ =Ð>Ü×Ñœs×/Ñ/×<Ñ<Ð=Ü× Ñ ¤#×"2Ñ"2×"?Ñ"?Ð@ð
ˆ	ð (1×G™˜˜t°KÀ$Ó4F’ÓGÐGùÓGs   ÃC+Ã#C+©Ú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Úshiftr:   )r   rœ   ÚCONTROL_MASKÚ	MOD1_MASKÚ
SHIFT_MASKÚ	MOD4_MASK)r¦   rª   ro   r§   r¨   Úkeys         r#   rt   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_namert   rj   ÚisprintableÚremoveÚjoin)rL   rh   Ú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©rL   Ú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)NrU   é   Fr�   )rV   r“   re   rg   r.   r’   r”   )rL   ru   rh   ÚwÚhr’   s         r#   r2   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Å   )rL   Ú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   )re   )Ú.0ÚdimrL   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)	rL   ru   ÚctxÚx0Úy0rË   rÌ   Úx1Úy1s	   `        r#   rA   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   © )rL   ru   rÝ   s      r#   r@   zFigureCanvasGTK3.on_draw_event  s   € àr%   c                 óF   — | j                  «       r| j                  «        y y r   )Úis_drawablerÅ   rR   s    r#   r3   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)r3   r<   )rÇ   rL   s    €r#   Ú	idle_drawz-FigureCanvasGTK3.draw_idle.<locals>.idle_draw   s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r<   r   Úidle_add)rL   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   rX   rY   ÚpendingrZ   )rL   r\   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_MASKrD   r;   rS   rW   rk   r/   r0   r1   r4   r5   r6   r7   r8   r9   Ústaticmethodr‚   rt   r~   r?   r2   rÏ   rA   r@   r3   r•   rì   Ú__classcell__)rC   s   @r#   r'   r'   ,   sd  ø„ Ø%+Ð"Ø&�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òð ñ	Hó ð	Hð Ø/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 )Nrm   Úimagesú-symbolic.svg)ÚzoomÚpanÚclickedu   <small>Â 
Â </small>T)'r   r;   Ú	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ÚJustificationr    Úshow_allr   )
rL   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimagery   ÚtoolitemÚlabels
             r#   r;   zNavigationToolbar2GTK3.__init__0  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                  ||¬	«       |S # 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Útransient_forÚactionr�   z*.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ÚdialogrL   s      €€r#   Úon_notify_filterz<NavigationToolbar2GTK3.save_figure.<locals>.on_notify_filterr  sl   ø€ à×$Ñ$Ó&×/Ñ/Ó1ˆDØ—+‘+×=Ñ=Ó?ÀÑEÀaÑHˆCØ×#Ñ#Ü”D˜×0Ñ0Ó2Ó3×?Ñ?À!ÀCÀ5À	ÓJÓKõMr%   zsavefig.directoryTr   )Úformat)r0  r'  Úmessage_typer�   ),r   ÚFileChooserDialogr&  Úget_toplevelÚFileChooserActionÚSAVEÚSTOCK_CANCELÚResponseTypeÚCANCELÚ
STOCK_SAVEÚOKr6  ÚitemsÚ
FileFilterÚset_nameÚadd_patternÚ
add_filterÚget_default_filetypeÚ
set_filterÚ	functoolsÚpartialr>   Úset_current_folderÚmplÚrcParamsr7  Úget_default_filenameÚset_do_overwrite_confirmationÚrunÚget_filenamer4  r5  rS   ÚosÚpathÚdirnamer.   ÚsavefigÚ	ExceptionÚMessageDialogr  ÚMessageTypeÚERRORÚButtonsType)rL   rÇ   r§   ÚfmtsÚffr:  r<  ÚresponseÚfnameÚer;  s   `         @r#   Úsave_figurez"NavigationToolbar2GTK3.save_figure`  sˆ  ù€ Ü×&Ñ&Ø#ØŸ+™+×2Ñ2Ó4Ü×(Ñ(×-Ñ-Ü×%Ñ%¤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ØˆLøÜò 	Ü×&Ñ&Ø"Ÿk™k×6Ñ6Ó8¼sÀ1»vÜ Ÿ_™_×2Ñ2¼C¿O¹O×<NÑ<NôPˆFð �J‰JŒLØ�N‰N×Ñûð	ús   Ê (K	 Ë		M&ËB
M!Í!M&N)rí   rî   rï   r;   rf  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   r;   r   ÚBoxÚset_propertyÚOrientationÚ
HORIZONTALr  Ú_messager#  r$  r    Úpack_endr%  Ú_groupsÚ
_toolitems)rL   Útoolmanagers     r#   r;   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 )Nrm   r  )r   r  r  r  r  r  r   r  r  r  r  r  Ú_add_buttonr>   Ú
_call_toolr  r%  rr  Ú
setdefaultÚappend)
rL   r§   ÚgroupÚpositionr)  ÚdescriptionÚtogglery   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   )
rq  Ú_add_separatorr   ÚToolbarr  r  r	  Ú
pack_startr%  r  )rL   ry   ry  rz  Útoolbars        r#   ru  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)rL   Úbtnr§   s      r#   rv  zToolbarGTK3._call_toolÃ  s   € Ø×Ñ˜$Õr%   c                 ó¶   — || j                   vry | j                   |   D ]8  \  }}|j                  |«       |j                  |«       |j                  |«       Œ: y r   )rr  Úhandler_blockÚ
set_activeÚhandler_unblock)rL   r§   Útoggledr,  r}  s        r#   Útoggle_toolitemzToolbarGTK3.toggle_toolitemÆ  sX   € Ø�t—‘Ñ&ØØ $§¡°Ñ 5ò 	-ÑˆH�fØ×"Ñ" 6Ô*Ø×Ñ Ô(Ø×$Ñ$ VÕ,ñ	-r%   c                 óÎ   — | j                   j                  |g «      D ]F  \  }}| j                  D ]2  }|| j                  |   v sŒ| j                  |   j                  |«       Œ4 ŒH y r   )rr  Úpoprq  r½   )rL   r§   r,  Ú_signalry  s        r#   Úremove_toolitemzToolbarGTK3.remove_toolitemÎ  sb   € Ø!%§¡×!4Ñ!4°T¸2Ó!>ò 	9ÑˆH�gØŸ™ò 9�Ø˜tŸ|™|¨EÑ2Ò2Ø—L‘L Ñ'×.Ñ.¨xÕ8ñ9ñ	9r%   c                 óÈ   — t        j                  «       }|j                  dt         j                  j                  «       | j                  |ddd«       |j                  «        y )Nrj  FTr   )r   Ú	Separatorrl  rm  ÚVERTICALr‚  r%  )rL   Úseps     r#   r€  zToolbarGTK3._add_separatorÔ  sB   € Ü�m‰m‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰˜˜U D¨!Ô,Ø�‰�r%   c                 ó:   — | j                   j                  |«       y r   )ro  r  )rL   Úss     r#   Úset_messagezToolbarGTK3.set_messageÚ  s   € Ø�‰×Ñ Õ"r%   N)rí   rî   rï   Ú_icon_extensionr;   r~  ru  rv  rŒ  r�  r€  r—  rã   r%   r#   rh  rh  ’  s/   „ Ø%€Oò	ò7ò0	5ò ò-ò9òó#r%   rh  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureGTK3c                 óJ   — t         j                  | j                  «       «       y r   )r   rf  Ú"_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¶   Nrm   ú<ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperr¾   )rL   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)rL   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)ru   Ú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´   rL   s     €r#   rÔ   z2HelpGTK3._show_shortcuts_window.<locals>.<genexpr>  s2   øè ø€ ò %5àØ×.Ñ.¨sÔ3ð ×,Ñ,¨S×1ñ%5ùs   ƒ,/)Úacceleratorr/  ÚsubtitleÚHelpT)r/  Úmodalr0  )r   ÚShortcutsSectionÚsortedrs  ÚtoolsrH  r{  ÚShortcutsGroupr!  ÚforallÚShortcutsShortcutr¾   Úget_tool_keymapr§   ÚShortcutsWindowÚ_figurer&  r@  Úshowr%  )rL   Úsectionr§   Útoolry  ÚshortcutrU   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   r]  rÊ  r&  r@  r^  ÚINFOr`  rG  Ú_get_help_textrV  rS   )rL   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Ó  )rL   rÇ   s     r#   r�  zHelpGTK3.trigger4  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)
rL   rÇ   rÈ   Ú	clipboardrU   rc   rd   r“   rg   Úpbs
             r#   r�  zToolCopyToClipboardGTK3.trigger=  sk   € Ü—M‘M×%Ñ%¤c×&=Ñ&=Ó>ˆ	Ø—‘×'Ñ'Ó)ˆØ$×1Ñ1Ó3Ñˆˆ1ˆe�VÜ×'Ñ'¨°°1°e¸VÓDˆØ×Ñ˜BÕr%   Nrž  rã   r%   r#   rØ  rØ  ;  s   „ ó r%   rØ  c                   ó   — e Zd ZeZeZy)r*   N)rí   rî   rï   r   Ú_toolbar2_classrh  Ú_toolmanager_toolbar_classrã   r%   r#   r*   r*   L  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æ  Q  s   „ à#€LØ%�Mr%   ræ  )>rO  ÚloggingrX  Úpathlibr   Ú
matplotlibrR  r   r   r   Úmatplotlib.backend_basesr   r   r	   r
   r   r   r   Úgir   Úgi_require_versionÚImportErrorÚerrÚ
ValueErrorre  Úgi.repositoryr   r   r   r   r   r¬  r   r   r   r   r   r   Ú	TimerGTK3Ú	getLoggerrí   Ú_logÚcacher$   ÚDrawingArear'   r�  r   rk  rh  Ú_register_tool_classÚSaveFigureBaserš  ÚToolHelpBaser   ÚToolCopyToClipboardBaserØ  ÚConfigureSubplotsGTKÚRubberbandGTKr*   Úexportræ  rã   r%   r#   ú<module>rÿ     s  ðÛ Û Û 	Ý ã ß 1Ñ 1÷B÷ Bñ BðFÝ8ð ñ �u˜eÔ$÷ 7Õ 6Ý ÷õ ð €w×Ñ˜Ó"€ð ‡�ñ9ó ð9ô@$Ð'¨¯©ô @$ôF`Ð3°S·[±[ô `ôFI#Ð# S§W¡Wô I#ðX $€×#Ñ#Ð$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ô-Ð)ô -ð
 ×Ñô&�;ó &ó ñ&øðI ò FÙ
Ð;Ó
<À#ÐEûðFûð ò  ñ �a‹.˜aÐûð ús.   ´F, »	G Æ,F?Æ1	F:Æ:F?ÇGÇ	GÇG