Ë
    ¨ehW  ã                   óÀ  — 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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jL                  e'«      Z(e jR                  d„ «       Z* G d„ de!ejV                  «      Z, G d„ de#ejZ                  «      Z. G d„ deej^                  «      Z0 ejb                  e,«       G d„ dejd                  «      «       Z3 ejb                  e,«       G d„ dejh                  «      «       Z5 ejb                  e,«       G d„ dejl                  «      «       Z7e0Z- ejb                  e,ejp                  «        ejb                  e,ejr                  «        G d„ de"«      Z:e jv                   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Ú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    ú^/var/www/skyplay_api_hub/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.   r/   r0   r1   Ú_update_device_pixel_ratioÚon_draw_eventÚ
_post_drawr3   r4   r5   r6   r7   r8   Ú
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_ctxrB   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©rK   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)rK   ÚcursorrT   Úcontexts       r"   rV   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)rK   ÚeventrT   Útrb   rc   Ú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   rj   Ú_mpl_modifiersri   rP   )rK   Úwidgetrg   rm   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/   ©rn   ro   F©r   rj   Úbuttonrs   ri   rP   ©rK   rt   rg   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)Nr0   rv   Frw   ry   s      r"   r0   z%FigureCanvasGTK3.button_release_eventŠ   sT   € ÜÐ)¨4ð 	#Ø×$Ñ$ UÓ+ð	#Ø-2¯\©\ñ	#à!×0Ñ0°·±Ó=Ø!ò	#÷ $,¡8¤:Ør$   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr3   ro   T©r
   Ú_get_keyrj   rP   ry   s      r"   r3   z FigureCanvasGTK3.key_press_event‘   s>   € ÜÐ" DØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør$   c                 ó|   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        y)Nr4   ro   Tr|   ry   s      r"   r4   z"FigureCanvasGTK3.key_release_event—   s>   € ÜÐ$ dØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤Ør$   c                 óÆ   — t        d| g| j                  |«      ¢­| j                  |j                  «      | j	                  |j                  «      |dœŽj                  «        y)Nr5   )Úbuttonsrn   ro   F)r   rj   Ú_mpl_buttonsri   rs   rP   ry   s      r"   r5   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_eventrv   ©	r   ÚKeymapÚget_for_displayr_   Úget_modifier_stater   rj   rs   rP   ©rK   rt   rg   Úgtk_modss       r"   r6   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_eventrv   r„   rˆ   s       r"   r7   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Úwidthrd   rf   Úset_size_inchesr   rP   Ú	draw_idle)rK   rt   Ú
allocationÚdpivalÚwinchÚhinchs         r"   r8   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_statern   Ú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Úshiftr9   )r   r›   ÚCONTROL_MASKÚ	MOD1_MASKÚ
SHIFT_MASKÚ	MOD4_MASK)r¥   r©   rn   r¦   r§   Úkeys         r"   rs   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_namers   ri   ÚisprintableÚremoveÚjoin)rK   rg   Ú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©rK   Ú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)NrT   é   FrŽ   )rU   r’   rd   rf   r-   r‘   r“   )rK   rt   rg   ÚwÚhr‘   s         r"   r1   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Ä   )rK   Ú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   )rd   )Ú.0ÚdimrK   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)	rK   rt   Ú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   © )rK   rt   rÜ   s      r"   r?   zFigureCanvasGTK3.on_draw_event  s   € àr$   c                 óF   — | j                  «       r| j                  «        y y r   )Úis_drawablerÄ   rQ   s    r"   r2   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)r2   r;   )rÆ   rK   s    €r"   Ú	idle_drawz-FigureCanvasGTK3.draw_idle.<locals>.idle_draw   s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r;   r   Úidle_add)rK   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   rW   rX   ÚpendingrY   )rK   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_MASKrC   r:   rR   rV   rj   r.   r/   r0   r3   r4   r5   r6   r7   r8   Ústaticmethodr�   rs   r}   r>   r1   rÎ   r@   r?   r2   r”   rë   Ú__classcell__)rB   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 )Nrl   Ú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   )
rK   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimagerx   Ú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ÚdialogrK   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)r/  r&  Úmessage_typer€   ),r   ÚFileChooserDialogr%  Úget_toplevelÚFileChooserActionÚSAVEÚSTOCK_CANCELÚResponseTypeÚCANCELÚ
STOCK_SAVEÚOKr5  ÚitemsÚ
FileFilterÚset_nameÚadd_patternÚ
add_filterÚget_default_filetypeÚ
set_filterÚ	functoolsÚpartialr=   Úset_current_folderÚmplÚrcParamsr6  Úget_default_filenameÚset_do_overwrite_confirmationÚrunÚget_filenamer3  r4  rR   ÚosÚpathÚdirnamer-   ÚsavefigÚ	ExceptionÚMessageDialogr  ÚMessageTypeÚERRORÚButtonsType)rK   rÆ   r¦   ÚfmtsÚffr9  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:   re  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)rK   Ú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 )Nrl   r  )r   r  r  r  r  r  r   r  r  r  r  r  Ú_add_buttonr=   Ú
_call_toolr  r$  rq  Ú
setdefaultÚappend)
rK   r¦   ÚgroupÚpositionr(  ÚdescriptionÚtogglerx   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   )
rp  Ú_add_separatorr   ÚToolbarr  r  r  Ú
pack_startr$  r  )rK   rx   rx  ry  Útoolbars        r"   rt  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)rK   Úbtnr¦   s      r"   ru  zToolbarGTK3._call_toolÃ  s   € Ø×Ñ˜$Õr$   c                 ó¶   — || j                   vry | j                   |   D ]8  \  }}|j                  |«       |j                  |«       |j                  |«       Œ: y r   )rq  Úhandler_blockÚ
set_activeÚhandler_unblock)rK   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   )rq  Úpoprp  r¼   )rK   r¦   r+  Ú_signalrx  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 )Nri  FTr   )r   Ú	Separatorrk  rl  ÚVERTICALr�  r$  )rK   Úseps     r"   r  zToolbarGTK3._add_separatorÔ  sB   € Ü�m‰m‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰˜˜U D¨!Ô,Ø�‰�r$   c                 ó:   — | j                   j                  |«       y r   )rn  r  )rK   Úss     r"   Úset_messagezToolbarGTK3.set_messageÚ  s   € Ø�‰×Ñ Õ"r$   N)rì   rí   rî   Ú_icon_extensionr:   r}  rt  ru  r‹  r�  r  r–  râ   r$   r"   rg  rg  ’  s/   „ Ø%€Oò	ò7ò0	5ò ò-ò9òó#r$   rg  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureGTK3c                 óJ   — t         j                  | j                  «       «       y r   )rÿ   re  Ú"_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µ   Nrl   ú<ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperr½   )rK   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)rK   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)rt   Ú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³   rK   s     €r"   rÓ   z2HelpGTK3._show_shortcuts_window.<locals>.<genexpr>  s2   øè ø€ ò %5àØ×.Ñ.¨sÔ3ð ×,Ñ,¨S×1ñ%5ùs   ƒ,/)Úacceleratorr.  ÚsubtitleÚHelpT)r.  Úmodalr/  )r   ÚShortcutsSectionÚsortedrr  ÚtoolsrG  rz  ÚShortcutsGroupr   ÚforallÚShortcutsShortcutr½   Úget_tool_keymapr¦   ÚShortcutsWindowÚ_figurer%  r?  Úshowr$  )rK   Úsectionr¦   Útoolrx  ÚshortcutrT   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_  rF  Ú_get_help_textrU  rR   )rK   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Ò  )rK   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)
rK   rÆ   rÇ   Ú	clipboardrT   rb   rc   r’   rf   Ú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_classrg  Ú_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å  )=rN  ÚloggingrW  Úpathlibr   Ú
matplotlibrQ  r   r   r   Úmatplotlib.backend_basesr   r   r	   r
   r   r   r   ÚgiÚImportErrorÚerrÚrequire_versionÚ
ValueErrorrd  Úgi.repositoryr   r   r   r   r   r«  r   r   r   r   r   r   Ú	TimerGTK3Ú	getLoggerrì   Ú_logÚcacher#   ÚDrawingArear&   r€  rÿ   rj  rg  Ú_register_tool_classÚSaveFigureBaser™  ÚToolHelpBaserŸ  ÚToolCopyToClipboardBaser×  ÚConfigureSubplotsGTKÚRubberbandGTKr)   Úexportrå  râ   r$   r"   ú<module>rþ     s  ðÛ Û Û 	Ý ã ß 1Ñ 1÷B÷ Bñ BðFÛð ð €B×Ñ�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.   ´F4 ¹G
 Æ4GÆ9	GÇGÇ
GÇ	GÇG