ó
    {ñ:i*\  ã                   ó²  • S SK r S SKrS SKrS SKrS SKJrJrJr  S SKJ	r	J
r
JrJrJrJrJr   S SKJr   \" SS5        S SKrS SKJrJrJrJrJr  S	S
KJr  S	SKJrJ r J!r!J"r"J#r$  \RJ                  S:¬  r&\RN                  " SSS 5      SL r( " S S\ \RR                  5      r* " S S\"\RV                  5      r, " S S\	\RV                  5      r-\R\                  " \*5       " S S\R^                  5      5       r0\R\                  " \*5       " S S\Rb                  5      5       r2\R\                  " \*5       " S S\Rf                  5      5       r4\R\                  " \*\Rj                  5        \R\                  " \*\Rl                  5        \-r7 " S S\!5      r8\Rr                   " S S\5      5       r:g! \ a  r\" S5      \eSrCff = f! \ a  r\" \5      \eSrCff = f)é    N)Ú_apiÚbackend_toolsÚcbook)ÚToolContainerBaseÚMouseButtonÚKeyEventÚLocationEventÚ
MouseEventÚResizeEventÚ
CloseEvent)Úrequire_versionz#The GTK4 backends require PyGObjectÚGtkz4.0)ÚGioÚGLibr   ÚGdkÚ	GdkPixbufé   )Ú_backend_gtk)Ú_BackendGTKÚ_FigureCanvasGTKÚ_FigureManagerGTKÚ_NavigationToolbar2GTKÚTimerGTK)é   é/   r   é   é   c                   óò   ^ • \ rS rSrSrSr\R                  " S 5      rSU 4S jjr	S r
S rSS jrS	 rS
 rS rS rS rS rS rS rS rS rSS jrS rS rS rS rS rS rS rS rS r S r!Sr"U =r#$ ) ÚFigureCanvasGTK4é%   Úgtk4Fc                 ó   • [         $ ©N)ÚFigureManagerGTK4)Úclss    Úc/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_gtk4.pyÚ<lambda>ÚFigureCanvasGTK4.<lambda>(   s   € Õ3Dó    c                 ó6  >• [         T	U ]  US9  U R                  S5        U R                  S5        SU l        S U l        U R                  U R                  5        U R                  SU R                  5        [        (       a  U R                  SU R                  5        OU R                  SU R                  5        [        R                  " 5       nUR                  S5        UR                  SU R                   5        UR                  SU R"                  5        U R%                  U5        [        R&                  " 5       nUR                  S	U R(                  5        UR                  S
U R*                  5        U R%                  U5        [        R,                  " 5       nUR                  SU R.                  5        UR                  SU R0                  5        UR                  SU R2                  5        U R%                  U5        [        R4                  R7                  [        R8                  R:                  5      nUR                  SU R<                  5        U R%                  U5        U R?                  S5        [        R@                  " 5       nSn[        RB                  " SSS5      c  URE                  US5        O URE                  URG                  S5      5        U RI                  5       nURK                  U[        RL                  5        URO                  S5        g )N)ÚfigureTr   ÚresizeÚrealizeznotify::scale-factorÚpressedÚreleasedzkey-pressedzkey-releasedÚmotionÚenterÚleaveÚscrollz/.matplotlib-canvas { background-color: white; }r   é	   r   éÿÿÿÿzutf-8zmatplotlib-canvas)(ÚsuperÚ__init__Úset_hexpandÚset_vexpandÚ_idle_draw_idÚ_rubberband_rectÚset_draw_funcÚ
_draw_funcÚconnectÚresize_eventÚ_GTK_GE_4_12Ú_realize_eventÚ_update_device_pixel_ratior   ÚGestureClickÚ
set_buttonÚbutton_press_eventÚbutton_release_eventÚadd_controllerÚEventControllerKeyÚkey_press_eventÚkey_release_eventÚEventControllerMotionÚmotion_notify_eventÚenter_notify_eventÚleave_notify_eventÚEventControllerScrollÚnewÚEventControllerScrollFlagsÚVERTICALÚscroll_eventÚset_focusableÚCssProviderÚcheck_versionÚload_from_dataÚencodeÚget_style_contextÚadd_providerÚ#STYLE_PROVIDER_PRIORITY_APPLICATIONÚ	add_class)
Úselfr+   ÚclickÚkeyr0   r3   ÚcssÚstyleÚ	style_ctxÚ	__class__s
            €r&   r7   ÚFigureCanvasGTK4.__init__*   sV  ø€ Ü‰Ñ ÐÑ'à×Ñ˜ÔØ×Ñ˜ÔàˆÔØ $ˆÔà×Ñ˜4Ÿ?™?Ô+Ø�‰�X˜t×0Ñ0Ô1ßŠ<Ø�L‰L˜ D×$7Ñ$7Õ8à�L‰LÐ/°×1PÑ1PÔQä× Ò Ó"ˆØ×Ñ˜ÔØ�‰�i ×!8Ñ!8Ô9Ø�‰�j $×";Ñ";Ô<Ø×Ñ˜EÔ"ä×$Ò$Ó&ˆØ�‰�M 4×#7Ñ#7Ô8Ø�‰�N D×$:Ñ$:Ô;Ø×Ñ˜CÔ ä×*Ò*Ó,ˆØ�‰�x ×!9Ñ!9Ô:Ø�‰�w × 7Ñ 7Ô8Ø�‰�w × 7Ñ 7Ô8Ø×Ñ˜FÔ#ä×*Ñ*×.Ñ.Ü×*Ñ*×3Ñ3ó5ˆà�‰�x ×!2Ñ!2Ô3Ø×Ñ˜FÔ#à×Ñ˜4Ô ä�oŠoÓˆØAˆÜ×Ò˜Q  1Ó%Ñ-Ø×Ñ˜u bÕ)à×Ñ˜uŸ|™|¨GÓ4Ô5Ø×*Ñ*Ó,ˆ	Ø×Ñ˜s¤C×$KÑ$KÔLØ×ÑÐ/Õ0r)   c                 ó8   • [        SU 5      R                  5         g )NÚclose_event)r   Ú_process©r]   s    r&   ÚdestroyÚFigureCanvasGTK4.destroy\   s   € Ü�= $Ó'×0Ñ0Õ2r)   c                 óN   • U R                  [        R                  " U5      5        g r#   )Úset_cursor_from_namer   Úmpl_to_gtk_cursor_name)r]   Úcursors     r&   Ú
set_cursorÚFigureCanvasGTK4.set_cursor_   s   € à×!Ñ!¤,×"EÒ"EÀfÓ"MÕNr)   c                 óJ  • Uc]  U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pVOUu  pEX@R                  -  nU R                  R                  R                  XPR                  -  -
  nXE4$ )aa  
Convert the *xy* position of a GTK event, or of the current cursor
position if *xy* 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_nativeÚget_surfaceÚget_device_positionÚget_displayÚget_default_seatÚget_pointerÚdevice_pixel_ratior+   ÚbboxÚheight)r]   ÚxyÚsurfaceÚis_overÚxÚyÚmasks          r&   Ú_mpl_coordsÚFigureCanvasGTK4._mpl_coordsc   s•   € ð ‰:Ø—o‘oÓ'×3Ñ3Ó5ˆGØ")×"=Ñ"=Ø× Ñ Ó"×3Ñ3Ó5×AÑAÓCó#EÑˆG˜˜4ð ‰DˆAØ×'Ñ'Ñ'ˆà�K‰K×Ñ×#Ñ# a×*AÑ*AÑ&AÑAˆØˆtˆr)   c                 ó´   • [        SU /U R                  5       Q7UU R                  U5      [        (       a  UR	                  5       OS S.6R                  5         g)NrS   )ÚstepÚ	modifiersÚguiEventT)r
   r�   Ú_mpl_modifiersÚ_GOBJECT_GE_3_47Úget_current_eventrg   )r]   Ú
controllerÚdxÚdys       r&   rS   ÚFigureCanvasGTK4.scroll_eventy   sU   € ÜØ˜Dð	
Ø#'×#3Ñ#3Ó#5ñ	
Ø<>Ø×)Ñ)¨*Ó5ß7GÒ7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(Œ*Ør)   c                 óö   • [        SU /U R                  X445      QUR                  5       P7U R                  U5      [        (       a  UR                  5       OS S.6R                  5         U R                  5         g )NrE   ©r…   r†   )r
   r�   Úget_current_buttonr‡   rˆ   r‰   rg   Ú
grab_focus©r]   rŠ   Ún_pressr~   r   s        r&   rE   Ú#FigureCanvasGTK4.button_press_event�   sp   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸&Ó)Að	
à×)Ñ)Ó+ñ	
ð ×)Ñ)¨*Ó5ß7GÒ7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(Œ*Ø�‰Õr)   c                 óÖ   • [        SU /U R                  X445      QUR                  5       P7U R                  U5      [        (       a  UR                  5       OS S.6R                  5         g )NrF   r�   )r
   r�   r�   r‡   rˆ   r‰   rg   r’   s        r&   rF   Ú%FigureCanvasGTK4.button_release_eventŠ   sf   € ÜØ" Dð	
Ø+/×+;Ñ+;¸Q¸FÓ+Cð	
à×)Ñ)Ó+ñ	
ð ×)Ñ)¨*Ó5ß7GÒ7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(�*r)   c           	      ó²   • [        SX R                  X#U5      /U R                  5       Q7S[        (       a  UR	                  5       OS 06R                  5         g)NrI   r†   T©r   Ú_get_keyr�   rˆ   r‰   rg   ©r]   rŠ   ÚkeyvalÚkeycodeÚstates        r&   rI   Ú FigureCanvasGTK4.key_press_event’   sR   € ÜØ˜t§]¡]°6ÀEÓ%Jð	
à×ÑÓò	
÷ 8HÒ7G�Z×1Ñ1Ô3ÈTñ	
÷ ‰(Œ*Ør)   c           	      ó²   • [        SX R                  X#U5      /U R                  5       Q7S[        (       a  UR	                  5       OS 06R                  5         g)NrJ   r†   Tr˜   rš   s        r&   rJ   Ú"FigureCanvasGTK4.key_release_eventš   sR   € ÜØ §}¡}°VÀeÓ'Lð	
à×ÑÓò	
÷ 8HÒ7G�Z×1Ñ1Ô3ÈTñ	
÷ ‰(Œ*Ør)   c                 óÖ   • [        SU /U R                  X#45      Q7U R                  U5      U R                  U5      [        (       a  UR                  5       OS S.6R                  5         g )NrL   )Úbuttonsr…   r†   )r
   r�   Ú_mpl_buttonsr‡   rˆ   r‰   rg   ©r]   rŠ   r~   r   s       r&   rL   Ú$FigureCanvasGTK4.motion_notify_event¢   sa   € ÜØ! 4ð	
Ø*.×*:Ñ*:¸A¸6Ó*Bñ	
à×%Ñ% jÓ1Ø×)Ñ)¨*Ó5ß7GÒ7G�Z×1Ñ1Ô3ÈTò		
÷
 ‰(�*r)   c                 ó´   • [        SU /U R                  X#45      Q7U R                  5       [        (       a  UR	                  5       OS S.6R                  5         g )NÚfigure_enter_eventr�   ©r	   r�   r‡   rˆ   r‰   rg   r¤   s       r&   rM   Ú#FigureCanvasGTK4.enter_notify_eventª   sQ   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸&Ó)Añ	
à×)Ñ)Ó+ß7GÒ7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(�*r)   c                 ó°   • [        SU /U R                  5       Q7U R                  5       [        (       a  UR	                  5       OS S.6R                  5         g )NÚfigure_leave_eventr�   r¨   )r]   rŠ   s     r&   rN   Ú#FigureCanvasGTK4.leave_notify_event±   sM   € ÜØ  $ð	
Ø)-×)9Ñ)9Ó);ñ	
à×)Ñ)Ó+ß7GÒ7G�Z×1Ñ1Ô3ÈTò	
÷ ‰(�*r)   c                 ó  • U R                  5         U R                  R                  nX R                  -  U-  nX0R                  -  U-  nU R                  R	                  XVSS9  [        SU 5      R                  5         U R                  5         g )NF)Úforwardr?   )rB   r+   Údpirx   Úset_size_inchesr   rg   Ú	draw_idle)r]   ÚareaÚwidthrz   r¯   ÚwinchÚhinchs          r&   r?   ÚFigureCanvasGTK4.resize_event¸   su   € Ø×'Ñ'Ô)Ø�k‰k�o‰oˆØ×/Ñ/Ñ/°#Ñ5ˆØ×0Ñ0Ñ0°3Ñ6ˆØ�‰×#Ñ# E¸%Ð#Ñ@Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr)   c                 ó¨  • U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pV[        R                  [        R                  R                  4[        R                  [        R                  R                  4[        R                  [        R                  R                  4[        R                  [        R                  R                   4[        R"                  [        R                  R$                  4/nU VV	s1 s H  u  p‰Xi-  (       d  M  UiM     sn	n$ s  sn	nf r#   )rr   rs   rt   ru   rv   rw   r   ÚLEFTr   ÚModifierTypeÚBUTTON1_MASKÚMIDDLEÚBUTTON2_MASKÚRIGHTÚBUTTON3_MASKÚBACKÚBUTTON4_MASKÚFORWARDÚBUTTON5_MASK©
r]   rŠ   r|   r}   r~   r   Úevent_stateÚ	mod_tableÚnamer€   s
             r&   r£   ÚFigureCanvasGTK4._mpl_buttonsÁ   sù   € ð —/‘/Ó#×/Ñ/Ó1ˆØ%,×%@Ñ%@Ø×ÑÓ×/Ñ/Ó1×=Ñ=Ó?ó&AÑ"ˆ�Aô ×Ñœs×/Ñ/×<Ñ<Ð=Ü×Ñ¤×!1Ñ!1×!>Ñ!>Ð?Ü×Ñ¤× 0Ñ 0× =Ñ =Ð>Ü×Ñœs×/Ñ/×<Ñ<Ð=Ü× Ñ ¤#×"2Ñ"2×"?Ñ"?Ð@ð
ˆ	ñ (1ÔG¢y™˜°KÕ4F—¡yÒGÐGùÓGs   Ä1EÅEc                 ó  • Uc]  U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pVOUR                  5       nS[        R                  R                  4S[        R                  R                  4S[        R                  R                  4S[        R                  R                  4/nU VV	s/ s H  u  p‰Xi-  (       d  M  UPM     sn	n$ s  sn	nf )NÚctrlÚaltÚshiftr6   )rr   rs   rt   ru   rv   rw   Úget_current_event_stater   r¹   ÚCONTROL_MASKÚALT_MASKÚ
SHIFT_MASKÚ
SUPER_MASKrÃ   s
             r&   r‡   ÚFigureCanvasGTK4._mpl_modifiersÕ   sÛ   € ØÑØ—o‘oÓ'×3Ñ3Ó5ˆGØ)0×)DÑ)DØ× Ñ Ó"×3Ñ3Ó5×AÑAÓCó*EÑ&ˆG˜˜;ð %×<Ñ<Ó>ˆKà”S×%Ñ%×2Ñ2Ð3Ø”C×$Ñ$×-Ñ-Ð.Ø”c×&Ñ&×1Ñ1Ð2Ø”c×&Ñ&×1Ñ1Ð2ð	
ˆ	ñ (1ÔG¢y™˜°KÕ4F—¡yÒGÐGùÓGs   Ã$DÃ7Dc                 óB  • [        [        R                  " U5      5      n[        R                  " U[        R
                  " U5      5      nS[        R                  R                  S4S[        R                  R                  S4S[        R                  R                  S4S[        R                  R                  S4/nU VVV	s/ s H7  u  pxn	X•:w  d  M  X8-  (       d  M  US:X  a  UR                  5       (       a  M5  UPM9     n
nnn	SR                  / U
QUP5      $ s  sn	nnf )NrÉ   ÚcontrolrÊ   rË   r6   Ú+)Úchrr   Úkeyval_to_unicoder   Ú_unikey_or_keysym_to_mplkeyÚkeyval_namer¹   rÍ   rÎ   rÏ   rÐ   ÚisprintableÚjoin)r]   r›   rœ   r�   Úunikeyr_   r…   Úmodr€   Úmod_keyÚmodss              r&   r™   ÚFigureCanvasGTK4._get_keyä   s  € Ü”S×*Ò*¨6Ó2Ó3ˆÜ×/Ò/ØÜ�OŠO˜FÓ#ó%ˆð ”S×%Ñ%×2Ñ2°IÐ>Ø”C×$Ñ$×-Ñ-¨uÐ5Ø”c×&Ñ&×1Ñ1°7Ð;Ø”c×&Ñ&×1Ñ1°7Ð;ð	
ˆ	ñ +4õDÚ*3Ñ&�C˜wØ‘ó Ø#(¥<ó à ›¨F×,>Ñ,>×,@÷ ©)ð 	ò Dð �x‰x˜˜$˜ ˜Ó%Ð%ùô	Ds   ÃDÃDÃDÃ;Dc                 ó˜   • U R                  5       R                  5       nUR                  SU R                  5        U R                  5         g )Nznotify::scale)rr   rs   r>   rB   )r]   Úobjr|   s      r&   rA   ÚFigureCanvasGTK4._realize_eventõ   s7   € Ø—/‘/Ó#×/Ñ/Ó1ˆØ�‰˜¨×)HÑ)HÔIØ×'Ñ'Õ)r)   c                 óì   • [         (       a-  U R                  5       R                  5       R                  5       nOU R	                  5       nUc   eU R                  U5      (       a  U R                  5         g g r#   )r@   rr   rs   Ú	get_scaleÚget_scale_factorÚ_set_device_pixel_ratioÚdraw)r]   ÚargsÚkwargsÚscales       r&   rB   Ú+FigureCanvasGTK4._update_device_pixel_ratioú   s`   € ÷ Š<Ø—O‘OÓ%×1Ñ1Ó3×=Ñ=Ó?‰Eà×)Ñ)Ó+ˆEØÑ Ð Ð Ø×'Ñ'¨×.Ñ.Ø�I‰I�Kð /r)   c                 ó0   • Xl         U R                  5         g r#   )r;   Ú
queue_draw)r]   Úrects     r&   Ú_draw_rubberbandÚ!FigureCanvasGTK4._draw_rubberband  s   € Ø $Ôà�‰Õr)   c                 óH   • U R                  X5        U R                  X5        g r#   )Úon_draw_eventÚ
_post_draw)r]   Údrawing_areaÚctxr³   rz   s        r&   r=   ÚFigureCanvasGTK4._draw_func
  s   € Ø×Ñ˜4Ô%Ø�‰˜Õ"r)   c                 ó˜  ^ • T R                   c  g SnSnU 4S jT R                    5       u  pVpxXW-   n	Xh-   n
UR                  XV5        UR                  XZ5        UR                  XV5        UR                  X–5        UR                  XZ5        UR                  Xš5        UR                  X–5        UR                  Xš5        UR                  S5        UR	                  U5        UR                  XD4S5        UR                  SSS5        UR                  5         UR                  XD4U5        UR                  SSS5        UR                  5         g )Nr   r   c              3   óB   >#   • U  H  nUTR                   -  v •  M     g 7fr#   )rx   )Ú.0Údimr]   s     €r&   Ú	<genexpr>Ú.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s#   øé € ð :Ú#8˜Cð ˜d×5Ñ5Ö5Ú#8ùs   ƒr   )	r;   Úmove_toÚline_toÚset_antialiasÚset_line_widthÚset_dashÚset_source_rgbÚstroke_preserveÚstroke)r]   Úwidgetrõ   ÚlwÚdashÚx0Úy0ÚwÚhÚx1Úy1s   `          r&   ró   ÚFigureCanvasGTK4._post_draw  s  ø€ Ø× Ñ Ñ(ØàˆØˆô:Ø#'×#8Ò#8ó:‰ˆ�à‰VˆØ‰Vˆð 	�‰�BÔØ�‰�BÔØ�‰�BÔØ�‰�BÔØ�‰�BÔØ�‰�BÔØ�‰�BÔØ�‰�BÔà×Ñ˜!ÔØ×Ñ˜2ÔØ�‰�d�\ 1Ô%Ø×Ñ˜1˜a Ô#Ø×ÑÔà�‰�d�\ 4Ô(Ø×Ñ˜1˜a Ô#Ø�
‰
�r)   c                 ó   • g r#   © )r]   r  rõ   s      r&   rò   ÚFigureCanvasGTK4.on_draw_event.  s   € àr)   c                 óP   • U R                  5       (       a  U R                  5         g g r#   )Úis_drawablerí   rh   s    r&   rç   ÚFigureCanvasGTK4.draw2  s    € à×Ñ×ÑØ�O‰OÕð r)   c                 ój   ^ • T R                   S:w  a  g U 4S jn[        R                  " U5      T l         g )Nr   c                  óN   >•  TR                  5         STl        g! STl        f = f)Nr   F)rç   r:   )rè   r]   s    €r&   Ú	idle_drawÚ-FigureCanvasGTK4.draw_idle.<locals>.idle_draw;  s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r:   r   Úidle_add)r]   r  s   ` r&   r±   ÚFigureCanvasGTK4.draw_idle7  s,   ø€ à×Ñ Ó"Øõ	ô "Ÿ]š]¨9Ó5ˆÕr)   c                 ó¼   • [         R                  R                  5       nUR                  5       (       a)  UR	                  S5        UR                  5       (       a  M(  g g )NT)r   ÚMainContextÚdefaultÚpendingÚ	iteration)r]   Úcontexts     r&   Úflush_eventsÚFigureCanvasGTK4.flush_eventsC  s@   € ä×"Ñ"×*Ñ*Ó,ˆØ�o‰o×ÑØ×Ñ˜dÔ#ð �o‰o×Õr)   )r:   r;   r#   )$Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úrequired_interactive_frameworkÚsupports_blitr   ÚclasspropertyÚmanager_classr7   ri   ro   r�   rS   rE   rF   rI   rJ   rL   rM   rN   r?   r£   r‡   r™   rA   rB   rï   r=   ró   rò   rç   r±   r!  Ú__static_attributes__Ú__classcell__)rc   s   @r&   r   r   %   s¦   ø† Ø%+Ð"Ø€MØ×&Ò&Ñ'DÓE€M÷01òd3òOôò,òòòòòòòòòHô(Hò&ò"*ò
	òò
#òò@òò

6÷$ð $r)   r   c                   ó    • \ rS rSrS rS rSrg)ÚNavigationToolbar2GTK4iJ  c                 ó¢  • [         R                  R                  U 5        U R                  S5        0 U l        U R
                   GHA  u  p#pEUc&  U R                  [         R                  " 5       5        M0  [         R                  R                  [        R                  R                  [        [        R                  " SU S35      5      5      5      nUS;   a  [         R                   " 5       O[         R"                  " 5       =U R                  U'   nUR%                  U5        UR                  S5        UR                  S5        UR'                  S[)        X5      5      Ul        UR-                  U5        U R                  U5        GMD     [         R.                  " 5       nUR1                  S5        UR3                  S	5        U R                  U5        [         R.                  " 5       U l        U R4                  R7                  [         R8                  R:                  5        U R                  U R4                  5        [<        R                  " X5        g )
NÚtoolbarÚimagesú-symbolic.svg)ÚzoomÚpanÚflatúimage-buttonÚclickedõ   <small>Â 
Â </small>T)r   ÚBoxr7   Úadd_css_classÚ_gtk_idsÚ	toolitemsÚappendÚ	SeparatorÚImageÚnew_from_giconr   ÚIconÚnew_for_stringÚstrr   Ú_get_data_pathÚToggleButtonÚButtonÚ	set_childr>   ÚgetattrÚ_signal_handlerÚset_tooltip_textÚLabelÚ
set_markupr8   ÚmessageÚset_justifyÚJustificationr½   r   )	r]   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimageÚbuttonÚlabels	            r&   r7   ÚNavigationToolbar2GTK4.__init__K  sµ  € Ü�‰×Ñ˜Ôà×Ñ˜9Ô%àˆŒØ8<¿½Ñ4ˆD 
Ø‰|Ø—‘œCŸMšM›OÔ,ÙÜ—I‘I×,Ñ,Ü—‘×'Ñ'Üœ×,Ò,¨XØ0:¨|¸=Ð-IóKó LóMóNˆEð
 '/°/Ó&A”× Ò Ô"Ü—
’
“ðˆD�M‰M˜$Ñ &ð ×Ñ˜UÔ#Ø× Ñ  Ô(Ø× Ñ  Ô0à%+§^¡^Øœ7 4Ó2ó&4ˆFÔ"à×#Ñ# LÔ1Ø�K‰K˜×ñ% 9Gô0 —	’	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔä—y’y“{ˆŒØ�‰× Ñ ¤×!2Ñ!2×!8Ñ!8Ô9Ø�‰�D—L‘LÔ!ä×'Ò'¨Õ5r)   c                 óê  ^ • [         R                  " ST R                  R                  5       [         R                  R
                  SS9nUT l        [         R                  " 5       nUR                  S5        UR                  S5        UR                  U5        UR                  U5        / nS n[        T R                  R                  5       R                  5       5       H�  u  nu  px[         R                  " 5       nUR                  U5        U H  n	UR                  SU	 35        M     UR                  U5        UR                  U5        T R                  R!                  5       U;   d  M�  UnM‘     XE   /US U QXES-   S  QnUR#                  SS	XD5        UR%                  SUS
   5        UR'                  [(        R*                  R-                  [.        R0                  R3                  [4        R6                  S   5      5      5        UR9                  T R                  R;                  5       5        [<        R>                  " UR@                  S5      U 4S j5       n
URC                  5         T RD                  $ )NzSave the figureT)ÚtitleÚtransient_forÚactionÚmodalz	All filesÚ*z*.r   ÚformatzFile formatr   úsavefig.directoryÚresponsec           
      ó  >• U R                  5       nU R                  S5      nTR                  R                  5       U   S   nU R	                  5         S Tl        U[        R                  R                  :w  a  g [        R                  S   (       a1  UR                  5       nUR                  5       [        R                  S'    TR                  R                  R                  UR                  5       US9  g ! [         aƒ  n[        R                   " TR                  R#                  5       [        R$                  R&                  [        R(                  R*                  S[-        U5      S9nUR/                  5          S nAg S nAff = f)Nr_  r   r`  )r_  T)r[  Úmessage_typer¢   r]  rQ  )Úget_fileÚ
get_choicerP  Úget_supported_filetypes_groupedri   Ú_save_dialogr   ÚResponseTypeÚACCEPTÚmplÚrcParamsÚ
get_parentÚget_pathr+   ÚsavefigÚ	ExceptionÚMessageDialogÚget_rootÚMessageTypeÚERRORÚButtonsTypeÚOKrC  Úshow)Údialogra  ÚfileÚfmtÚparentÚeÚmsgr]   s          €r&   Úon_responseÚ7NavigationToolbar2GTK4.save_figure.<locals>.on_responseš  s  ø€ à—?‘?Ó$ˆDØ×#Ñ# HÓ-ˆCØ—+‘+×=Ñ=Ó?ÀÑDÀQÑGˆCØ�N‰NÔØ $ˆDÔØœ3×+Ñ+×2Ñ2Ó2Øä�|‰|Ð/×0ØŸ™Ó*�Ø4:·O±OÓ4E”—‘Ð0Ñ1ðØ—‘×"Ñ"×*Ñ*¨4¯=©=«?À3Ð*ÒGøÜó Ü×'Ò'Ø"&§+¡+×"6Ñ"6Ó"8Ü!$§¡×!6Ñ!6ÜŸO™O×.Ñ.°dÜ˜Q›ñ	!�ð
 —‘—
‘
ûðús   Ã2C6 Ã6
FÄ A9E>Å>F)#r   ÚFileChooserNativerP  rq  ÚFileChooserActionÚSAVErg  Ú
FileFilterÚset_nameÚadd_patternÚ
add_filterÚ
set_filterÚ	enumeraterf  Úitemsr=  Úget_default_filetypeÚ
add_choiceÚ
set_choiceÚset_current_folderr   ÚFileÚnew_for_pathÚosÚpathÚ
expanduserrj  rk  Úset_current_nameÚget_default_filenameÚ	functoolsÚpartialr>   rv  ÚUNKNOWN_SAVED_STATUS)r]   rè   rw  ÚffÚformatsÚdefault_formatÚirÆ   Úfmtsry  r}  s   `          r&   Úsave_figureÚ"NavigationToolbar2GTK4.save_figureu  s  ø€ Ü×&Ò&Ø#ØŸ+™+×.Ñ.Ó0Ü×(Ñ(×-Ñ-Øñ	ˆð
 #ˆÔä�^Š^ÓˆØ
�‰�KÔ Ø
�‰�sÔØ×Ñ˜"ÔØ×Ñ˜"ÔàˆØˆÜ(Ø—‘×;Ñ;Ó=×CÑCÓEö G‰OˆA‰|�ä—’Ó!ˆBØ�K‰K˜ÔÛ�Ø—‘  C 5˜zÖ*ñ à×Ñ˜bÔ!Ø�N‰N˜4Ô Ø�{‰{×/Ñ/Ó1°TÕ9Ø!"’ñ Gð Ñ*ð 0¨W°_°nÐ-Eð 0Ø¨1Ñ,Ð-Ð.ð0ˆà×Ñ˜( M°7ÔDØ×Ñ˜( G¨A¡JÔ/à×!Ñ!¤#§(¡(×"7Ñ"7Ü�G‰G×ÑœsŸ|™|Ð,?Ñ@ÓAó#Cô 	Dà×Ñ §¡× @Ñ @Ó BÔCä	×	Ò	˜6Ÿ>™>¨:Ó	6ô	ó 
7ð	ð, 	�‰ŒØ×(Ñ(Ð(r)   )r;  rg  rM  N)r#  r$  r%  r&  r7   rœ  r+  r  r)   r&   r.  r.  J  s   † ò(6õT=)r)   r.  c                   óN   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSrg)ÚToolbarGTK4iµ  r2  c                 ó¨  • [         R                  " X5        [        R                  R                  U 5        U R	                  S[        R
                  R                  5        [        R                  " 5       U l        U R                  U R                  5        0 U l	        0 U l
        [        R                  " 5       nUR                  S5        UR                  S5        U R                  U5        [        R                  " 5       U l        U R                  R                  [        R                   R"                  5        U R                  U R                  5        g )NÚorientationr8  T)r   r7   r   r9  Úset_propertyÚOrientationÚ
HORIZONTALÚ	_tool_boxr=  Ú_groupsÚ
_toolitemsrK  rL  r8   Ú_messagerN  rO  r½   )r]   ÚtoolmanagerrW  s      r&   r7   ÚToolbarGTK4.__init__¸  sÝ   € Ü×"Ò" 4Ô5Ü�‰×Ñ˜ÔØ×Ñ˜-¬¯©×)CÑ)CÔDô Ÿš›ˆŒØ�‰�D—N‘NÔ#ØˆŒØˆŒô —	’	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔäŸ	š	›ˆŒØ�‰×!Ñ!¤#×"3Ñ"3×"9Ñ"9Ô:Ø�‰�D—M‘MÕ"r)   c                 ón  • U(       a  [         R                  " 5       nO[         R                  " 5       nUR                  U5        UR	                  S5        Ub^  [         R
                  R                  [        R                  R                  U5      5      nUR                  U5        UR	                  S5        Uc  SnU R                  XrU5        UR                  SU R                  U5      n	UR                  U5        U R                  R!                  U/ 5        U R                  U   R#                  Xy45        g )Nr5  r6  r5   r7  )r   rE  rF  Ú	set_labelr:  r?  r@  r   rA  rB  rG  Ú_add_buttonr>   Ú
_call_toolrJ  r§  Ú
setdefaultr=  )
r]   rÆ   ÚgroupÚpositionrS  ÚdescriptionÚtogglerV  rU  Úsignals
             r&   Úadd_toolitemÚToolbarGTK4.add_toolitemÑ  sï   € æÜ×%Ò%Ó'‰Fä—Z’Z“\ˆFØ×Ñ˜ÔØ×Ñ˜VÔ$àÑ!Ü—I‘I×,Ñ,Ü—‘×'Ñ'¨
Ó3ó5ˆEà×Ñ˜UÔ#Ø× Ñ  Ô0àÑØˆHà×Ñ˜¨Ô1Ø—‘ 	¨4¯?©?¸DÓAˆØ×Ñ Ô,Ø�‰×"Ñ" 4¨Ô,Ø�‰˜Ñ×$Ñ$ fÐ%5Õ6r)   c                 óœ   • S /nU R                   U   R                  5       nUb&  UR                  U5        UR                  5       nUb  M&  X2   $ r#   )r¦  Úget_first_childr=  Úget_next_sibling)r]   r°  r±  ÚchildrenÚchilds        r&   Ú_find_child_at_positionÚ#ToolbarGTK4._find_child_at_positioné  sS   € Ø�6ˆØ—‘˜UÑ#×3Ñ3Ó5ˆØÑØ�O‰O˜EÔ"Ø×*Ñ*Ó,ˆEð Óð Ñ!Ð!r)   c                 ó:  • X R                   ;  a_  U R                   (       a  U R                  5         [        R                  " 5       nU R                  R                  U5        X@R                   U'   U R                   U   R                  XR                  X#5      5        g r#   )r¦  Ú_add_separatorr   r9  r¥  r=  Úinsert_child_afterr¼  )r]   rV  r°  r±  Ú	group_boxs        r&   r­  ÚToolbarGTK4._add_buttonñ  sn   € ØŸ™Ó$Ø�|�|Ø×#Ñ#Ô%ÜŸš›	ˆIØ�N‰N×!Ñ! )Ô,Ø"+�L‰L˜ÑØ�‰�UÑ×.Ñ.Ø×0Ñ0°ÓAõ	Cr)   c                 ó&   • U R                  U5        g r#   )Útrigger_tool)r]   ÚbtnrÆ   s      r&   r®  ÚToolbarGTK4._call_toolû  s   € Ø×Ñ˜$Õr)   c                 óº   • XR                   ;  a  g U R                   U    H8  u  p4UR                  U5        UR                  U5        UR                  U5        M:     g r#   )r§  Úhandler_blockÚ
set_activeÚhandler_unblock)r]   rÆ   ÚtoggledÚtoolitemr´  s        r&   Útoggle_toolitemÚToolbarGTK4.toggle_toolitemþ  sO   € Ø—‘Ó&ØØ $§¡°Ô 5ÑˆHØ×"Ñ" 6Ô*Ø×Ñ Ô(Ø×$Ñ$ VÖ,ò !6r)   c                 óØ   • U R                   R                  U/ 5       HJ  u  p#U R                   H5  nX R                  U   ;   d  M  U R                  U   R                  U5        M7     ML     g r#   )r§  Úpopr¦  Úremove)r]   rÆ   rÌ  Ú_signalr°  s        r&   Úremove_toolitemÚToolbarGTK4.remove_toolitem  sT   € Ø!%§¡×!4Ñ!4°T¸2Ö!>ÑˆHØŸœ�ØŸ|™|¨EÑ2Õ2Ø—L‘L Ñ'×.Ñ.¨xÖ8ó &ò "?r)   c                 ó¸   • [         R                  " 5       nUR                  S[         R                  R                  5        U R
                  R                  U5        g )Nr¡  )r   r>  r¢  r£  rR   r¥  r=  )r]   Úseps     r&   r¿  ÚToolbarGTK4._add_separator  s9   € Ü�mŠm‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰×Ñ˜cÕ"r)   c                 ó:   • U R                   R                  U5        g r#   )r¨  r¬  )r]   Úss     r&   Úset_messageÚToolbarGTK4.set_message  s   € Ø�‰×Ñ Õ"r)   )r¦  r¨  r¥  r§  N)r#  r$  r%  r&  Ú_icon_extensionr7   rµ  r¼  r­  r®  rÍ  rÓ  r¿  rÚ  r+  r  r)   r&   rŸ  rŸ  µ  s5   † Ø%€Oò#ò27ò0"òCò ò-ò9ò#õ
#r)   rŸ  c                   ó   • \ rS rSrS rSrg)ÚSaveFigureGTK4i  c                 óJ   • [         R                  U R                  5       5        g r#   )r.  rœ  Ú"_make_classic_style_pseudo_toolbar)r]   rè   ré   s      r&   ÚtriggerÚSaveFigureGTK4.trigger  s   € Ü×*Ñ*Ø×3Ñ3Ó5õ	7r)   r  N©r#  r$  r%  r&  rá  r+  r  r)   r&   rÞ  rÞ    s   † õ7r)   rÞ  c                   ó&   • \ rS rSrS rS rS rSrg)ÚHelpGTK4i  c                 ó.  • SSSSS.nUR                  S5      nUSS  Vs/ s H  nS	U-   S
-   PM     nnUS   nX;   a  X!   nO;[        U5      S:”  a  UR                  5       nOUR                  5       (       a  US/-  nSR	                  U5      U-   $ s  snf )zj
Convert Matplotlib key presses to GTK+ accelerator identifiers.

Related to `FigureCanvasGTK4._get_key`.
Ú	BackSpaceÚ	Page_DownÚPage_UpÚScroll_Lock)Ú	backspaceÚpagedownÚpageupÚscroll_lockrÔ   Nr5   Ú<Ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperrÚ   )r]   r_   ÚspecialÚpartsrÜ   rÞ   s         r&   Ú_normalize_shortcutÚHelpGTK4._normalize_shortcut  s£   € ð %Ø#ØØ(ñ	
ˆð —	‘	˜#“ˆØ+0°°"©:Ó6ª: C��c‘	˜C”©:ˆÐ6Ø�B‰iˆà‹>Ø‘,‰CÜ�‹X˜‹\Ø—.‘.Ó"‰CØ�[‰[�]‰]Ø�Y�KÑˆDà�w‰w�t‹}˜sÑ"Ð"ùò 7s    Bc                 óF   • SU;  =(       a    UR                  S5      (       + $ )z¶
Check for a valid shortcut to be displayed.

- GTK will never send 'cmd+' (see `FigureCanvasGTK4._get_key`).
- The shortcut window only shows keyboard shortcuts, not mouse buttons.
zcmd+zMouseButton.)Ú
startswith)r]   r_   s     r&   Ú_is_valid_shortcutÚHelpGTK4._is_valid_shortcut8  s    € ð ˜SÑ ×G¨¯©¸Ó)GÔ%GÐGr)   c           	      ó  ^ • [         R                  " 5       n[        T R                  R                  R                  5       5       Hä  u  p4UR                  (       d  M  [         R                  " 5       nUR                  U5        UR                  5       nUb&  UR                  S5        UR                  5       nUb  M&  [         R                  " SR                  U 4S jT R                  R                  U5       5       5      UR                  UR                  S9nUR                  U5        Mæ     [         R                   " SST R"                  R$                  R'                  5       S9nUR)                  U5        UR+                  5         g )NFÚ c              3   óv   >#   • U  H.  nTR                  U5      (       d  M  TR                  U5      v •  M0     g 7fr#   )rü  rø  )rù   r_   r]   s     €r&   rû   Ú#HelpGTK4.trigger.<locals>.<genexpr>U  s6   øé € ð %5âE˜Ø×.Ñ.¨s×3ó 2�D×,Ñ,¨S×1Ð1ÚEùs   ƒ9¡9)ÚacceleratorrZ  ÚsubtitleÚHelpT)rZ  r]  r[  )r   ÚShortcutsSectionÚsortedr©  Útoolsrˆ  r²  ÚShortcutsGroupr=  r¸  Úset_visibler¹  ÚShortcutsShortcutrÚ   Úget_tool_keymaprÆ   ÚShortcutsWindowÚ_figurerP  rq  rG  rv  )	r]   rè   ÚsectionrÆ   Útoolr°  r»  ÚshortcutÚwindows	   `        r&   rá  ÚHelpGTK4.triggerA  s;  ø€ Ü×&Ò&Ó(ˆä  ×!1Ñ!1×!7Ñ!7×!=Ñ!=Ó!?Ö@‰JˆDØ×#×#Ùô ×&Ò&Ó(ˆEØ�N‰N˜5Ô!à×)Ñ)Ó+ˆEØÑ#Ø×!Ñ! %Ô(Ø×.Ñ.Ó0�ð Ó#ô ×,Ò,ØŸH™Hô %5à#×/Ñ/×?Ñ?ÀÔEó%5ó 5ð —i‘iØ×)Ñ)ñ+ˆHð �L‰L˜Ö"ñ/ Aô2 ×$Ò$ØØØŸ,™,×-Ñ-×6Ñ6Ó8ñ:ˆð 	×Ñ˜Ô!à�‰�r)   r  N)r#  r$  r%  r&  rø  rü  rá  r+  r  r)   r&   rå  rå    s   † ò#ò4Hõ"r)   rå  c                   ó   • \ rS rSrS rSrg)ÚToolCopyToClipboardGTK4if  c                 óÀ  • [         R                  " 5        nU R                  R                  U5        U R                  R	                  5       u  pE[
        R                  R                  UR                  5       [
        R                  R                  SSXEUS-  5      nS S S 5        U R                  R                  5       nUR                  W5        g ! , (       d  f       N:= f)NTé   r   )ÚioÚBytesIOrP  Ú
print_rgbaÚget_width_heightr   ÚPixbufÚnew_from_dataÚ	getbufferÚ
ColorspaceÚRGBÚget_clipboardÚset)r]   rè   ré   Úfr
  r  ÚpbÚ	clipboards           r&   rá  ÚToolCopyToClipboardGTK4.triggerh  sš   € Ü�ZŠZŒ\˜QØ�K‰K×"Ñ" 1Ô%Ø—;‘;×/Ñ/Ó1‰DˆAÜ×!Ñ!×/Ñ/°·±³Ü09×0DÑ0D×0HÑ0HÈ$Ø01°1¸¸1¹ó>ˆB÷ ð —K‘K×-Ñ-Ó/ˆ	Ø�‰�bÕ÷ �\ús   –BCÃ
Cr  Nrã  r  r)   r&   r  r  f  s   † õr)   r  c                   ó   • \ rS rSr\r\rSrg)r$   iz  r  N)	r#  r$  r%  r&  r.  Ú_toolbar2_classrŸ  Ú_toolmanager_toolbar_classr+  r  r)   r&   r$   r$   z  s   † Ø,€OØ!,Ór)   r$   c                   ó   • \ rS rSr\r\rSrg)Ú_BackendGTK4i  r  N)	r#  r$  r%  r&  r   ÚFigureCanvasr$   ÚFigureManagerr+  r  r)   r&   r*  r*    s   † à#€LØ%ƒMr)   r*  );r”  r  r�  Ú
matplotlibrj  r   r   r   Úmatplotlib.backend_basesr   r   r   r	   r
   r   r   Úgir   Úgi_require_versionÚImportErrorÚerrÚ
ValueErrorr{  Úgi.repositoryr   r   r   r   r   rñ  r   r   r   r   r   r   Ú	TimerGTK4Úversion_inforˆ   rV   r@   ÚDrawingArear   r9  r.  rŸ  Ú_register_tool_classÚSaveFigureBaserÞ  ÚToolHelpBaserå  ÚToolCopyToClipboardBaser  ÚConfigureSubplotsGTKÚRubberbandGTKÚToolbarr$   Úexportr*  r  r)   r&   Ú<module>r@     sû  ðÛ Û 	Û 	ã ß 1Ñ 1÷B÷ Bñ BðFÝ8ð ñ �u˜eÔ$ó 
ß 8Õ 8Ý ÷õ ð
 —?‘? jÑ0Ð Ø× Ò   B¨Ó*¨dÐ2€ôb$Ð'¨¯©ô b$ôJ	h)Ð3°S·W±Wô h)ôV]#Ð# S§W¡Wô ]#ð@ ×#Ò#Ð$4Ó5ô7�]×1Ñ1ó 7ó 6ð7ð ×#Ò#Ð$4Ó5ôFˆ}×)Ñ)ó Fó 6ðFðR ×#Ò#Ð$4Ó5ô	˜m×CÑCó 	ó 6ð	ð × "Ò "Ø�l×7Ñ7ô9à × "Ò "Ø�l×0Ñ0ô2à
€ô-Ð)ô -ð
 ×Ñô&�;ó &ó ñ&øðg ó FÙ
Ð;Ó
<À#ÐEûðFûð ó  ñ �a‹.˜aÐûð ús.   ®F+ µ	G Æ+F?Æ1	F:Æ:F?ÇGÇ	GÇG