Ë
    µ2ÚiDT  ã                   óh  — d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZ 	 d dlZ	  ej$                  dd«       d dlmZmZmZmZmZ dd	lmZ dd
lmZmZmZm Z m!Z"  G d„ deejF                  «      Z$ G d„ de ejJ                  «      Z& G d„ de	ejJ                  «      Z' ejP                  e$«       G d„ dejR                  «      «       Z* ejP                  e$«       G d„ dejV                  «      «       Z, ejP                  e$«       G d„ dejZ                  «      «       Z. ejP                  e$ej^                  «        ejP                  e$ej`                  «       e'Z1 G d„ de«      Z2ejf                   G d„ de«      «       Z4y# 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)Ú_apiÚbackend_toolsÚcbook)ÚToolContainerBaseÚKeyEventÚLocationEventÚ
MouseEventÚResizeEventÚ
CloseEventz#The GTK4 backends require PyGObjectÚGtkz4.0)ÚGioÚGLibr   ÚGdkÚ	GdkPixbufé   )Ú_backend_gtk)Ú_BackendGTKÚ_FigureCanvasGTKÚ_FigureManagerGTKÚ_NavigationToolbar2GTKÚTimerGTKc                   óÚ   ‡ — e Zd ZdZdZ ej                  d„ «      Zd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dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZ S )ÚFigureCanvasGTK4Úgtk4Fc                 ó   — t         S ©N)ÚFigureManagerGTK4)Úclss    úW/var/www/html/acx/venv/lib/python3.12/site-packages/matplotlib/backends/backend_gtk4.pyú<lambda>zFigureCanvasGTK4.<lambda>$   s   € Ô3D€ ó    c                 óà  •— t         ‰	| �  |¬«       | j                  d«       | j                  d«       d| _        d | _        | j                  | j                  «       | j                  d| j                  «       | j                  d| j                  «       t        j                  «       }|j                  d«       |j                  d| j                  «       |j                  d| j                  «       | j!                  |«       t        j"                  «       }|j                  d| j$                  «       |j                  d	| j&                  «       | j!                  |«       t        j(                  «       }|j                  d
| j*                  «       |j                  d| j,                  «       |j                  d| j.                  «       | j!                  |«       t        j0                  j3                  t        j4                  j6                  «      }|j                  d| j8                  «       | j!                  |«       | j;                  d«       t        j<                  «       }d}t        j>                  ddd«      €|jA                  |d«       n |jA                  |jC                  d«      «       | jE                  «       }|jG                  |t        jH                  «       |jK                  d«       y )N)ÚfigureTr   Úresizeznotify::scale-factorÚpressedÚreleasedzkey-pressedzkey-releasedÚmotionÚenterÚleaveÚscrollz/.matplotlib-canvas { background-color: white; }é   é	   é   éÿÿÿÿzutf-8zmatplotlib-canvas)&ÚsuperÚ__init__Úset_hexpandÚset_vexpandÚ_idle_draw_idÚ_rubberband_rectÚset_draw_funcÚ
_draw_funcÚconnectÚresize_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Úkeyr'   r*   ÚcssÚstyleÚ	style_ctxÚ	__class__s
            €r   r0   zFigureCanvasGTK4.__init__'   s=  ø€ Ü‰Ñ ÐÔ'à×Ñ˜ÔØ×Ñ˜ÔàˆÔØ $ˆÔà×Ñ˜4Ÿ?™?Ô+Ø�‰�X˜t×0Ñ0Ô1Ø�‰Ð+¨T×-LÑ-LÔMä× Ñ Ó"ˆØ×Ñ˜ÔØ�‰�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   — t        d| «      j                  «        y )NÚclose_event)r   Ú_process©rT   s    r   ÚdestroyzFigureCanvasGTK4.destroyV   s   € Ü�= $Ó'×0Ñ0Õ2r!   c                 óL   — | j                  t        j                  |«      «       y r   )Úset_cursor_from_namer   Úmpl_to_gtk_cursor_name)rT   Úcursors     r   Ú
set_cursorzFigureCanvasGTK4.set_cursorY   s   € à×!Ñ!¤,×"EÑ"EÀfÓ"MÕNr!   c                 óT  — |€_| j                  «       j                  «       }|j                  | j                  «       j	                  «       j                  «       «      \  }}}}n|\  }}|| j                  z  }| j                  j                  j                  || j                  z  z
  }||fS )a™  
        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)rT   ÚxyÚsurfaceÚis_overÚxÚyÚmasks          r   Ú_mpl_coordszFigureCanvasGTK4._mpl_coords]   sŸ   € ð ˆ:Ø—o‘oÓ'×3Ñ3Ó5ˆGØ")×"=Ñ"=Ø× Ñ Ó"×3Ñ3Ó5×AÑAÓCó#EÑˆG�Q˜™4ð ‰DˆAˆqØ�×'Ñ'Ñ'ˆà�K‰K×Ñ×#Ñ# a¨$×*AÑ*AÑ&AÑAˆØ�!ˆtˆr!   c                 ó|   — t        d| g| j                  «       ¢­|| j                  |«      dœŽj                  «        y)NrJ   )ÚstepÚ	modifiersT©r	   ru   Ú_mpl_modifiersr]   )rT   Ú
controllerÚdxÚdys       r   rJ   zFigureCanvasGTK4.scroll_events   sB   € ÜØ˜Dð	
Ø#'×#3Ñ#3Ó#5ñ	
Ø<>Ø×)Ñ)¨*Ó5ò	
÷ ‰(Œ*Ør!   c                 óÀ   — t        d| g| j                  ||f«      ¢|j                  «       ‘­d| j                  |«      iŽj	                  «        | j                  «        y )Nr<   rx   )r	   ru   Úget_current_buttonrz   r]   Ú
grab_focus©rT   r{   Ún_pressrr   rs   s        r   r<   z#FigureCanvasGTK4.button_press_eventz   s_   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸a¸&Ó)Að	
à×)Ñ)Ó+ò	
ð ×)Ñ)¨*Ó5ñ	
÷ ‰(Œ*Ø�‰Õr!   c                 ó    — t        d| g| j                  ||f«      ¢|j                  «       ‘­d| j                  |«      iŽj	                  «        y )Nr=   rx   )r	   ru   r   rz   r]   r�   s        r   r=   z%FigureCanvasGTK4.button_release_event‚   sU   € ÜØ" Dð	
Ø+/×+;Ñ+;¸QÀ¸FÓ+Cð	
à×)Ñ)Ó+ò	
ð ×)Ñ)¨*Ó5ñ	
÷ ‰(�*r!   c           	      óz   — t        d| | j                  |||«      g| j                  «       ¢­Ž j                  «        y)Nr@   T©r   Ú_get_keyru   r]   ©rT   r{   ÚkeyvalÚkeycodeÚstates        r   r@   z FigureCanvasGTK4.key_press_event‰   s;   € ÜØ˜t T§]¡]°6¸7ÀEÓ%Jð	
à×ÑÓò	
÷ ‰(Œ*Ør!   c           	      óz   — t        d| | j                  |||«      g| j                  «       ¢­Ž j                  «        y)NrA   Tr…   r‡   s        r   rA   z"FigureCanvasGTK4.key_release_event�   s;   € ÜØ  t§}¡}°V¸WÀeÓ'Lð	
à×ÑÓò	
÷ ‰(Œ*Ør!   c                 ó€   — t        d| g| j                  ||f«      ¢­d| j                  |«      iŽj                  «        y )NrC   rx   ry   ©rT   r{   rr   rs   s       r   rC   z$FigureCanvasGTK4.motion_notify_event—   sB   € ÜØ! 4ð	
Ø*.×*:Ñ*:¸A¸q¸6Ó*Bò	
à×)Ñ)¨*Ó5ñ	
÷ ‰(�*r!   c                 ó~   — t        d| g| j                  ||f«      ¢­d| j                  «       iŽj                  «        y )NÚfigure_enter_eventrx   ©r   ru   rz   r]   r�   s       r   rD   z#FigureCanvasGTK4.enter_notify_event�   s@   € ÜØ  $ð	
Ø)-×)9Ñ)9¸1¸a¸&Ó)Aò	
à×)Ñ)Ó+ñ	
÷ ‰(�*r!   c                 óx   — t        d| g| j                  «       ¢­d| j                  «       iŽj                  «        y )NÚfigure_leave_eventrx   r�   )rT   r{   s     r   rE   z#FigureCanvasGTK4.leave_notify_event£   s:   € ÜØ  $ð	
Ø)-×)9Ñ)9Ó);ò	
à×)Ñ)Ó+ñ	
÷ ‰(�*r!   c                 ó(  — | j                  «        | j                  j                  }|| j                  z  |z  }|| j                  z  |z  }| j                  j	                  ||d¬«       t        d| «      j                  «        | j                  «        y )NF)Úforwardr8   )r9   r#   Údpirl   Úset_size_inchesr
   r]   Ú	draw_idle)rT   ÚareaÚwidthrn   r•   ÚwinchÚhinchs          r   r8   zFigureCanvasGTK4.resize_event©   s{   € Ø×'Ñ'Ô)Ø�k‰k�o‰oˆØ˜×/Ñ/Ñ/°#Ñ5ˆØ˜×0Ñ0Ñ0°3Ñ6ˆØ�‰×#Ñ# E¨5¸%Ð#Ô@Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr!   c                 ó  — |€_| j                  «       j                  «       }|j                  | j                  «       j	                  «       j                  «       «      \  }}}}n|j                  «       }dt        j                  j                  fdt        j                  j                  fdt        j                  j                  fdt        j                  j                  fg}|D ��	cg c]  \  }}	||	z  sŒ|‘Œ c}	}S c c}	}w )NÚctrlÚaltÚshiftr/   )rf   rg   rh   ri   rj   rk   Úget_current_event_stater   ÚModifierTypeÚCONTROL_MASKÚALT_MASKÚ
SHIFT_MASKÚ
SUPER_MASK)
rT   r{   rp   rq   rr   rs   Úevent_stateÚ	mod_tableÚnamert   s
             r   rz   zFigureCanvasGTK4._mpl_modifiers²   sÝ   € ØÐØ—o‘oÓ'×3Ñ3Ó5ˆGØ)0×)DÑ)DØ× Ñ Ó"×3Ñ3Ó5×AÑAÓCó*EÑ&ˆG�Q˜™;ð %×<Ñ<Ó>ˆKà”S×%Ñ%×2Ñ2Ð3Ø”C×$Ñ$×-Ñ-Ð.Ø”c×&Ñ&×1Ñ1Ð2Ø”c×&Ñ&×1Ñ1Ð2ð	
ˆ	ð (1×G™˜˜t°KÀ$Ó4F’ÓGÐGùÓGs   Ã%C;Ã3C;c                 ó  — t        t        j                  |«      «      }t        j                  |t        j
                  |«      «      }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|dk(  r|j                  «       s|‘Œ) }
}}}	dj                  g |
¢|‘«      S c c}	}}w )Nr�   Úcontrolrž   rŸ   r/   ú+)Úchrr   Úkeyval_to_unicoder   Ú_unikey_or_keysym_to_mplkeyÚkeyval_namer¡   r¢   r£   r¤   r¥   ÚisprintableÚjoin)rT   rˆ   r‰   rŠ   ÚunikeyrV   rx   Úmodrt   Úmod_keyÚmodss              r   r†   z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ð DÙ&�C˜˜wØ˜3’ 5¨4¢<Ø š¨F×,>Ñ,>Ô,@ò ðDˆò Dð �x‰x˜˜$˜ ˜Ó%Ð%ùô	Ds   Ã ,Dc                 ód   — | j                  | j                  «       «      r| j                  «        y y r   )Ú_set_device_pixel_ratioÚget_scale_factorÚdraw©rT   ÚargsÚkwargss      r   r9   z+FigureCanvasGTK4._update_device_pixel_ratioÒ   s*   € ð ×'Ñ'¨×(=Ñ(=Ó(?Ô@Ø�I‰I�Kð Ar!   c                 ó2   — || _         | j                  «        y r   )r4   Ú
queue_draw)rT   Úrects     r   Ú_draw_rubberbandz!FigureCanvasGTK4._draw_rubberbandØ   s   € Ø $ˆÔà�‰Õr!   c                 óL   — | j                  | |«       | j                  | |«       y r   )Úon_draw_eventÚ
_post_draw)rT   Údrawing_areaÚctxr™   rn   s        r   r6   zFigureCanvasGTK4._draw_funcÝ   s    € Ø×Ñ˜4 Ô%Ø�‰˜˜cÕ"r!   c                 ó(  ‡ — ‰ j                   €y d}d}‰ j                  sˆ fd„‰ j                   D «       \  }}}}n/‰ j                   \  }}}}|‰ j                  z  }|‰ j                  z  }||z   }	||z   }
|j                  ||«       |j	                  ||
«       |j                  ||«       |j	                  |	|«       |j                  ||
«       |j	                  |	|
«       |j                  |	|«       |j	                  |	|
«       |j                  d«       |j                  |«       |j                  ||fd«       |j                  ddd«       |j                  «        |j                  ||f|«       |j                  ddd«       |j                  «        y )Nr   r-   c              3   ó<   •K  — | ]  }|‰j                   z  –— Œ y ­wr   )rl   )Ú.0ÚdimrT   s     €r   ú	<genexpr>z.FigureCanvasGTK4._post_draw.<locals>.<genexpr>è   s$   øè ø€ ò >Ø #ð   $×"9Ñ"9Õ9ñ >ùs   ƒr   )r4   Ú_context_is_scaledrl   Úmove_toÚline_toÚset_antialiasÚset_line_widthÚset_dashÚset_source_rgbÚstroke_preserveÚstroke)rT   ÚwidgetrÅ   ÚlwÚdashÚx0Úy0ÚwÚhÚx1Úy1s   `          r   rÃ   zFigureCanvasGTK4._post_drawá   st  ø€ Ø× Ñ Ð(ØàˆØˆØ×&Ò&ó>Ø'+×'<Ñ'<ô>‰LˆB��A‘qð  ×0Ñ0‰LˆB��A�qØ�$×)Ñ)Ñ)ˆBØ�D×+Ñ+Ñ+ˆDØ�!‰VˆØ�!‰Vˆð 	�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜ÔØ�‰�B˜Ôà×Ñ˜!ÔØ×Ñ˜2ÔØ�‰�d˜D�\ 1Ô%Ø×Ñ˜1˜a Ô#Ø×ÑÔà�‰�d˜D�\ 4Ô(Ø×Ñ˜1˜a Ô#Ø�
‰
�r!   c                  ó   — y r   © )rT   rÔ   rÅ   s      r   rÂ   zFigureCanvasGTK4.on_draw_event  s   € àr!   c                 óF   — | j                  «       r| j                  «        y y r   )Úis_drawabler¾   r^   s    r   r¹   zFigureCanvasGTK4.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)r¹   r3   )r»   rT   s    €r   Ú	idle_drawz-FigureCanvasGTK4.draw_idle.<locals>.idle_draw  s(   ø€ ð'Ø—	‘	”à%&�Ô"Øøð &'�Õ"ús   ƒ ›	$)r3   r   Úidle_add)rT   rã   s   ` r   r—   zFigureCanvasGTK4.draw_idle  s,   ø€ à×Ñ Ò"Øô	ô "Ÿ]™]¨9Ó5ˆÕr!   c                 ó¦   — t         j                  j                  «       }|j                  «       r#|j	                  d«       |j                  «       rŒ"y y )NT)r   ÚMainContextÚdefaultÚpendingÚ	iteration)rT   Úcontexts     r   Úflush_eventszFigureCanvasGTK4.flush_events  s:   € ä×"Ñ"×*Ñ*Ó,ˆØ�o‰oÔØ×Ñ˜dÔ#ð �o‰o×r!   r   )!Ú__name__Ú
__module__Ú__qualname__Úrequired_interactive_frameworkÚsupports_blitr   ÚclasspropertyÚmanager_classrË   r0   r_   rd   ru   rJ   r<   r=   r@   rA   rC   rD   rE   r8   rz   r†   r9   rÀ   r6   rÃ   rÂ   r¹   r—   rë   Ú__classcell__)rZ   s   @r   r   r   !   sž   ø„ Ø%+Ð"Ø€MØ&�D×&Ñ&Ñ'DÓE€MØÐõ-1ò^3òOóò,òòòòòòòòóHò&ò"òò
#ò#òJòò

6ö$r!   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚNavigationToolbar2GTK4c                 ó�  — t         j                  j                  | «       | j                  d«       i | _        | j
                  D �];  \  }}}}|€$| j                  t        j                  «       «       Œ/t         j                  j                  t        j                  j                  t        t        j                  d|› d�«      «      «      «      }|dv rt        j                   «       nt        j"                  «       x| j                  |<   }|j%                  |«       |j                  d«       |j                  d«       |j'                  dt)        | |«      «      |_        |j-                  |«       | j                  |«       �Œ> t        j.                  «       }|j1                  d«       |j3                  d	«       | j                  |«       t        j.                  «       | _        | j4                  j7                  t         j8                  j:                  «       | j                  | j4                  «       t=        j                  | |«       y )
NÚtoolbarÚimagesú-symbolic.svg)ÚzoomÚpanÚflatúimage-buttonÚclickedõ   <small>Â 
Â </small>T)r   ÚBoxr0   Úadd_css_classÚ_gtk_idsÚ	toolitemsÚappendÚ	SeparatorÚImageÚnew_from_giconr   ÚIconÚnew_for_stringÚstrr   Ú_get_data_pathÚToggleButtonÚButtonÚ	set_childr7   ÚgetattrÚ_signal_handlerÚset_tooltip_textÚLabelÚ
set_markupr1   ÚmessageÚset_justifyÚJustificationÚRIGHTr   )	rT   ÚcanvasÚtextÚtooltip_textÚ
image_fileÚcallbackÚimageÚbuttonÚlabels	            r   r0   zNavigationToolbar2GTK4.__init__#  sÁ  € Ü�‰×Ñ˜Ôà×Ñ˜9Ô%àˆŒØ8<¿¹ó 	 Ñ4ˆD�, 
¨HØˆ|Ø—‘œ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˜Öð%	 ô0 —	‘	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔä—y‘y“{ˆŒØ�‰× Ñ ¤×!2Ñ!2×!8Ñ!8Ô9Ø�‰�D—L‘LÔ!ä×'Ñ'¨¨fÕ5r!   c                 óÊ  ‡ — t        j                  d‰ j                  j                  «       t         j                  j
                  d¬«      }|‰ _        t        j                  «       }|j                  d«       |j                  d«       |j                  |«       |j                  |«       g }d }t        ‰ j                  j                  «       j                  «       «      D ]‰  \  }\  }}t        j                  «       }|j                  |«       |D ]  }	|j                  d|	› �«       Œ |j                  |«       |j                  |«       ‰ j                  j!                  «       |v sŒˆ|}Œ‹ ||   g|d | ¢||dz   d  ¢}|j#                  dd	||«       |j%                  d||   «       |j'                  t(        j*                  j-                  t.        j0                  j3                  t4        j6                  d
   «      «      «       |j9                  ‰ j                  j;                  «       «       t=        j>                  |j@                  d«      ˆ fd„«       }
|jC                  «        y )NzSave the figureT)ÚtitleÚtransient_forÚactionÚmodalz	All filesÚ*z*.r   ÚformatzFile formatúsavefig.directoryÚresponsec           
      ó  •— | j                  «       }| j                  d«      }‰j                  j                  «       |   d   }| j	                  «        d ‰_        |t        j                  j                  k7  ry t        j                  d   r1|j                  «       }|j                  «       t        j                  d<   	 ‰j                  j                  j                  |j                  «       |¬«       y # t        $ r…}t        j                   ‰j                  j#                  «       t        j$                  j&                  t        j(                  j*                  dt-        |«      ¬«      }|j/                  «        Y d }~y d }~ww xY w)Nr&  r   r'  )r&  T)r"  Úmessage_typeÚbuttonsr$  r  )Úget_fileÚ
get_choicer  Úget_supported_filetypes_groupedr_   Ú_save_dialogr   ÚResponseTypeÚACCEPTÚmplÚrcParamsÚ
get_parentÚget_pathr#   ÚsavefigÚ	ExceptionÚMessageDialogÚget_rootÚMessageTypeÚERRORÚButtonsTypeÚOKr
  Úshow)Údialogr(  ÚfileÚfmtÚparentÚeÚmsgrT   s          €r   Úon_responsez7NavigationToolbar2GTK4.save_figure.<locals>.on_responser  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   Â=5C3 Ã3	FÃ<A;E<Å<F)"r   ÚFileChooserNativer  r9  ÚFileChooserActionÚSAVEr/  Ú
FileFilterÚset_nameÚadd_patternÚ
add_filterÚ
set_filterÚ	enumerater.  Úitemsr  Úget_default_filetypeÚ
add_choiceÚ
set_choiceÚset_current_folderr   ÚFileÚnew_for_pathÚosÚpathÚ
expanduserr2  r3  Úset_current_nameÚget_default_filenameÚ	functoolsÚpartialr7   r>  )rT   r»   r?  ÚffÚformatsÚdefault_formatÚir¨   ÚfmtsrA  rE  s   `          r   Úsave_figurez"NavigationToolbar2GTK4.save_figureM  s  ø€ Ü×&Ñ&Ø#ØŸ+™+×.Ñ.Ó0Ü×(Ñ(×-Ñ-Øô	ˆð
 #ˆÔä�^‰^ÓˆØ
�‰�KÔ Ø
�‰�sÔØ×Ñ˜"ÔØ×Ñ˜"ÔàˆØˆÜ(Ø—‘×;Ñ;Ó=×CÑCÓEó Gò 		#‰OˆA‰|��dä—‘Ó!ˆBØ�K‰K˜ÔØò +�Ø—‘  C 5˜zÕ*ð+à×Ñ˜bÔ!Ø�N‰N˜4Ô Ø�{‰{×/Ñ/Ó1°TÒ9Ø!"‘ð		#ð ˜>Ñ*ð 0¨W°_°nÐ-Eð 0Ø˜N¨1Ñ,Ð-Ð.ð0ˆà×Ñ˜( M°7¸GÔDØ×Ñ˜( G¨NÑ$;Ô<à×!Ñ!¤#§(¡(×"7Ñ"7Ü�G‰G×ÑœsŸ|™|Ð,?Ñ@ÓAó#Cô 	Dà×Ñ §¡× @Ñ @Ó BÔCä	×	Ñ	˜6Ÿ>™>¨:Ó	6ó	ó 
7ð	ð, 	�‰�r!   N)rì   rí   rî   r0   rb  rÞ   r!   r   rõ   rõ   "  s   „ ò(6óT<r!   rõ   c                   óF   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚToolbarGTK4rù   c                 ó¢  — t        j                  | |«       t        j                  j                  | «       | j	                  dt        j
                  j                  «       t        j                  «       | _        | j                  | j                  «       i | _	        i | _
        t        j                  «       }|j                  d«       |j                  d«       | j                  |«       t        j                  «       | _        | j                  j                  t        j                   j"                  «       | j                  | j                  «       y )NÚorientationrÿ   T)r   r0   r   r   Úset_propertyÚOrientationÚ
HORIZONTALÚ	_tool_boxr  Ú_groupsÚ
_toolitemsr  r  r1   Ú_messager  r  r  )rT   Útoolmanagerr  s      r   r0   zToolbarGTK4.__init__�  sß   € Ü×"Ñ" 4¨Ô5Ü�‰×Ñ˜ÔØ×Ñ˜-¬¯©×)CÑ)CÔDô Ÿ™›ˆŒØ�‰�D—N‘NÔ#ØˆŒØˆŒô —	‘	“ˆØ×ÑØCô	Eà×Ñ˜$ÔØ�‰�EÔäŸ	™	›ˆŒØ�‰×!Ñ!¤#×"3Ñ"3×"9Ñ"9Ô:Ø�‰�D—M‘MÕ"r!   c                 ó`  — |rt        j                  «       }nt        j                  «       }|j                  |«       |j	                  d«       |�^t         j
                  j                  t        j                  j                  |«      «      }|j                  |«       |j	                  d«       |€d}| j                  |||«       |j                  d| j                  |«      }	|j                  |«       | j                  j!                  |g «       | j                  |   j#                  ||	f«       y )Nrü   rý   r.   rþ   )r   r  r  Ú	set_labelr  r  r  r   r  r	  r  Ú_add_buttonr7   Ú
_call_toolr  rl  Ú
setdefaultr  )
rT   r¨   ÚgroupÚpositionr  ÚdescriptionÚtoggler  r  Úsignals
             r   Úadd_toolitemzToolbarGTK4.add_toolitem¨  só   € áÜ×%Ñ%Ó'‰Fä—Z‘Z“\ˆFØ×Ñ˜ÔØ×Ñ˜VÔ$àÐ!Ü—I‘I×,Ñ,Ü—‘×'Ñ'¨
Ó3ó5ˆEà×Ñ˜UÔ#Ø× Ñ  Ô0àÐØˆHà×Ñ˜ ¨Ô1Ø—‘ 	¨4¯?©?¸DÓAˆØ×Ñ Ô,Ø�‰×"Ñ" 4¨Ô,Ø�‰˜Ñ×$Ñ$ f¨fÐ%5Õ6r!   c                 ó˜   — d g}| j                   |   j                  «       }|�$|j                  |«       |j                  «       }|�Œ$||   S r   )rk  Úget_first_childr  Úget_next_sibling)rT   rt  ru  ÚchildrenÚchilds        r   Ú_find_child_at_positionz#ToolbarGTK4._find_child_at_positionÀ  sU   € Ø�6ˆØ—‘˜UÑ#×3Ñ3Ó5ˆØÐØ�O‰O˜EÔ"Ø×*Ñ*Ó,ˆEð Ñð ˜Ñ!Ð!r!   c                 ó2  — || j                   vrZ| j                   r| j                  «        t        j                  «       }| j                  j                  |«       || j                   |<   | j                   |   j                  || j                  ||«      «       y r   )rk  Ú_add_separatorr   r   rj  r  Úinsert_child_afterr  )rT   r  rt  ru  Ú	group_boxs        r   rq  zToolbarGTK4._add_buttonÈ  sv   € Ø˜Ÿ™Ñ$Ø�|Š|Ø×#Ñ#Ô%ÜŸ™›	ˆIØ�N‰N×!Ñ! )Ô,Ø"+ˆD�L‰L˜ÑØ�‰�UÑ×.Ñ.Ø�D×0Ñ0°¸ÓAõ	Cr!   c                 ó&   — | j                  |«       y r   )Útrigger_tool)rT   Úbtnr¨   s      r   rr  zToolbarGTK4._call_toolÒ  s   € Ø×Ñ˜$Õr!   c                 ó¶   — || j                   vry | j                   |   D ]8  \  }}|j                  |«       |j                  |«       |j                  |«       Œ: y r   )rl  Úhandler_blockÚ
set_activeÚhandler_unblock)rT   r¨   ÚtoggledÚtoolitemrx  s        r   Útoggle_toolitemzToolbarGTK4.toggle_toolitemÕ  sX   € Ø�t—‘Ñ&ØØ $§¡°Ñ 5ò 	-ÑˆH�fØ×"Ñ" 6Ô*Ø×Ñ Ô(Ø×$Ñ$ VÕ,ñ	-r!   c                 ó*  — || j                   vr | j                  j                  |› d�| «       y | j                  D ]I  }| j                   |   D ]5  \  }}|| j                  |   v sŒ| j                  |   j	                  |«       Œ7 ŒK | j                   |= y )Nz not in toolbar)rl  rn  Úmessage_eventrk  Úremove)rT   r¨   rt  rŒ  Ú_signals        r   Úremove_toolitemzToolbarGTK4.remove_toolitemÝ  s”   € Ø�t—‘Ñ&Ø×Ñ×*Ñ*¨d¨V°?Ð+CÀTÔJØà—\‘\ò 	9ˆEØ%)§_¡_°TÑ%:ò 9Ñ!�˜'Ø˜tŸ|™|¨EÑ2Ò2Ø—L‘L Ñ'×.Ñ.¨xÕ8ñ9ð	9ð �O‰O˜DÑ!r!   c                 ó¶   — t        j                  «       }|j                  dt         j                  j                  «       | j
                  j                  |«       y )Nrf  )r   r  rg  rh  rI   rj  r  )rT   Úseps     r   r�  zToolbarGTK4._add_separatorè  s9   € Ü�m‰m‹oˆØ×Ñ˜¬¯©×(@Ñ(@ÔAØ�‰×Ñ˜cÕ"r!   c                 ó:   — | j                   j                  |«       y r   )rm  rp  )rT   Úss     r   Úset_messagezToolbarGTK4.set_messageí  s   € Ø�‰×Ñ Õ"r!   N)rì   rí   rî   Ú_icon_extensionr0   ry  r  rq  rr  r�  r’  r�  r—  rÞ   r!   r   rd  rd  Œ  s5   „ Ø%€Oò#ò27ò0"òCò ò-ò	"ò#ó
#r!   rd  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureGTK4c                 óJ   — t         j                  | j                  «       «       y r   )rõ   rb  Ú"_make_classic_style_pseudo_toolbarrº   s      r   ÚtriggerzSaveFigureGTK4.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y)ÚHelpGTK4c                 ó  — 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 `FigureCanvasGTK4._get_key`.
        Ú	BackSpaceÚ	Page_DownÚPage_UpÚScroll_Lock)Ú	backspaceÚpagedownÚpageupÚscroll_lockr«   Nr.   ú<ú>r   z<shift>Ú )ÚsplitÚlenÚ
capitalizeÚisupperr±   )rT   rV   ÚspecialÚpartsr³   rµ   s         r   Ú_normalize_shortcutzHelpGTK4._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 `FigureCanvasGTK4._get_key`).
        - The shortcut window only shows keyboard shortcuts, not mouse buttons.
        zcmd+zMouseButton.)Ú
startswith)rT   rV   s     r   Ú_is_valid_shortcutzHelpGTK4._is_valid_shortcut  s    € ð ˜SÐ ÒG¨¯©¸Ó)GÐ%GÐGr!   c           	      óú  ‡ — t        j                  «       }t        ‰ j                  j                  j                  «       «      D ]Û  \  }}|j                  sŒt        j                  «       }|j                  |«       |j                  «       }|�$|j                  d«       |j                  «       }|�Œ$t        j                  dj                  ˆ fd„‰ j                  j                  |«      D «       «      |j                  |j                  ¬«      }|j                  |«       ŒÝ t        j                   dd‰ j"                  j$                  j'                  «       ¬«      }|j)                  |«       |j+                  «        y )NFú c              3   ób   •K  — | ]&  }‰j                  |«      r‰j                  |«      –— Œ( y ­wr   )r¶  r³  )rÈ   rV   rT   s     €r   rÊ   z#HelpGTK4.trigger.<locals>.<genexpr>1  s2   øè ø€ ò %5àØ×.Ñ.¨sÔ3ð ×,Ñ,¨S×1ñ%5ùs   ƒ,/)Úacceleratorr!  ÚsubtitleÚHelpT)r!  r$  r"  )r   ÚShortcutsSectionÚsortedrn  ÚtoolsrO  rv  ÚShortcutsGroupr  r{  Úset_visibler|  ÚShortcutsShortcutr±   Úget_tool_keymapr¨   ÚShortcutsWindowÚ_figurer  r9  r  r>  )	rT   r»   Úsectionr¨   Útoolrt  r~  ÚshortcutÚwindows	   `        r   r�  zHelpGTK4.trigger  sA  ø€ Ü×&Ñ&Ó(ˆä  ×!1Ñ!1×!7Ñ!7×!=Ñ!=Ó!?Ó@ò 	#‰JˆD�$Ø×#Ò#Øô ×&Ñ&Ó(ˆEØ�N‰N˜5Ô!à×)Ñ)Ó+ˆEØÐ#Ø×!Ñ! %Ô(Ø×.Ñ.Ó0�ð Ñ#ô ×,Ñ,ØŸH™Hó %5à#×/Ñ/×?Ñ?ÀÓEô%5ó 5ð —i‘iØ×)Ñ)ô+ˆHð �L‰L˜Õ"ð/	#ô2 ×$Ñ$ØØØŸ,™,×-Ñ-×6Ñ6Ó8ô:ˆð 	×Ñ˜Ô!à�‰�r!   N)rì   rí   rî   r³  r¶  r�  rÞ   r!   r   r   r   ø  s   „ ò#ò4Hó"r!   r   c                   ó   — e Zd Zd„ Zy)ÚToolCopyToClipboardGTK4c                 ó¸  — t        j                  «       5 }| j                  j                  |«       | j                  j	                  «       \  }}t
        j                  j                  |j                  «       t
        j                  j                  dd|||dz  «      }d d d «       | j                  j                  «       }|j                  «       y # 1 sw Y   Œ5xY w)NTé   r+   )ÚioÚBytesIOr  Ú
print_rgbaÚget_width_heightr   ÚPixbufÚnew_from_dataÚ	getbufferÚ
ColorspaceÚRGBÚget_clipboardÚset)rT   r»   r¼   ÚfrÙ   rÚ   ÚpbÚ	clipboards           r   r�  zToolCopyToClipboardGTK4.triggerD  s¦   € Ü�Z‰Z‹\ð 	>˜QØ�K‰K×"Ñ" 1Ô%Ø—;‘;×/Ñ/Ó1‰DˆAˆqÜ×!Ñ!×/Ñ/°·±³Ü09×0DÑ0D×0HÑ0HÈ$Ø01°1°a¸¸1¹ó>ˆB÷	>ð —K‘K×-Ñ-Ó/ˆ	Ø�‰�bÕ÷	>ð 	>ús   •BCÃCNrž  rÞ   r!   r   rË  rË  B  s   „ ór!   rË  c                   ó   — e Zd ZeZeZy)r   N)rì   rí   rî   rõ   Ú_toolbar2_classrd  Ú_toolmanager_toolbar_classrÞ   r!   r   r   r   V  s   „ Ø,€OØ!,Ñr!   r   c                   ó   — e Zd ZeZeZy)Ú_BackendGTK4N)rì   rí   rî   r   ÚFigureCanvasr   ÚFigureManagerrÞ   r!   r   rà  rà  [  s   „ à#€LØ%�Mr!   rà  )5r[  rÎ  rV  Ú
matplotlibr2  r   r   r   Úmatplotlib.backend_basesr   r   r   r	   r
   r   ÚgiÚImportErrorÚerrÚrequire_versionÚ
ValueErrorrC  Úgi.repositoryr   r   r   r   r   r¬  r   r   r   r   r   r   Ú	TimerGTK4ÚDrawingArear   r   rõ   rd  Ú_register_tool_classÚSaveFigureBaserš  ÚToolHelpBaser   ÚToolCopyToClipboardBaserË  ÚConfigureSubplotsGTKÚRubberbandGTKÚToolbarr   Úexportrà  rÞ   r!   r   ú<module>rõ     sØ  ðÛ Û 	Û 	ã ß 1Ñ 1÷÷ ðFÛð ð €B×Ñ�u˜eÔ$÷ 9Õ 8Ý ÷õ ô~$Ð'¨¯©ô ~$ôBgÐ3°S·W±Wô gôTb#Ð# S§W¡Wô b#ðJ $€×#Ñ#Ð$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à
€ô-Ð)ô -ð
 ×Ñô&�;ó &ó ñ&øð_ ò FÙ
Ð;Ó
<À#ÐEûðFûð ò  ñ �a‹.˜aÐûð ús.   ¬F ±F ÆFÆ	FÆFÆF1Æ#	F,Æ,F1