+
    i0W                        ^ RI t ^ RIt^ RIt^ RIHt ^ RIt^ RIHtHtH	t	 ^ RI
HtHtHtHtHtHtHt  ^ RIHt  ]! RR4       ^ R	IHtHtHtHtHt ^R
IH t  ^RI H!t!H"t"H#t#H$t$H%t& ]PN                  ! ](4      t)] PT                  R 4       t+ ! R R]"]PX                  4      t- ! R R]$]P\                  4      t/ ! R R]]P`                  4      t1]Pd                  ! ]-4       ! R R]Pf                  4      4       t4]Pd                  ! ]-4       ! R R]Pj                  4      4       t6]Pd                  ! ]-4       ! R R]Pn                  4      4       t8]1t.]Pd                  ! ]-] Pr                  4       ]Pd                  ! ]-] Pt                  4        ! R R]#4      t;]!Px                   ! R R]!4      4       t=R#   ] d   t]! R4      ]hRtAii ; i  ] d   t]! ]4      ]hRtAii ; i)    N)Path)_apibackend_toolscbook)ToolContainerBaseMouseButton
CloseEventKeyEventLocationEvent
MouseEventResizeEvent)require_versionz#The GTK3 backends require PyGObjectGtkz3.0)GioGLibGObjectr   Gdk)_backend_gtk)_BackendGTK_FigureCanvasGTK_FigureManagerGTK_NavigationToolbar2GTKTimerGTKc                     \         P                  P                  \         P                  P	                  4       \
        P                  ! V 4      4      # N)r   Cursornew_from_nameDisplayget_defaultr   mpl_to_gtk_cursor_name)
mpl_cursors   &ڀ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-packages/matplotlib/backends/backend_gtk3.py_mpl_to_gtk_cursorr#   %   s7    ::##!++J79 9    c                     a a ] tR t^,t oRt]P                  ! R 4      t]P                  P                  ]P                  P                  ,          ]P                  P                  ,          ]P                  P                  ,          ]P                  P                  ,          ]P                  P                  ,          ]P                  P                   ,          ]P                  P"                  ,          ]P                  P$                  ,          tRV 3R lltR tR tRR ltR tR	 tR
 tR tR tR tR tR tR t ]!R 4       t"]!RR/R l4       t#R t$R t%R t&R t'R t(R t)R t*R t+R t,Rt-Vt.V ;t/# )FigureCanvasGTK3gtk3c                    \         # r   )FigureManagerGTK3)clss   &r"   <lambda>FigureCanvasGTK3.<lambda>.   s    3Dr$   Nc                  < \         SV `  VR 7       ^ V n        RV n        V P	                  RV P
                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  R	V P                  4       V P	                  R
V P                  4       V P	                  RV P                  4       V P	                  RV P                  4       V P	                  RV P                   4       V P	                  RV P"                  4       V P%                  V P&                  P(                  4       V P+                  R4       \,        P.                  ! 4       pVP1                  R4       V P3                  4       pVP5                  V\,        P6                  4       VP9                  R4       R# ))figureNscroll_eventbutton_press_eventbutton_release_eventconfigure_eventzscreen-changedznotify::scale-factordrawkey_press_eventkey_release_eventmotion_notify_evententer_notify_eventleave_notify_eventsize_allocateTs/   .matplotlib-canvas { background-color: white; }zmatplotlib-canvas)super__init___idle_draw_id_rubberband_rectconnectr/   r0   r1   r2   _update_device_pixel_ratioon_draw_event
_post_drawr4   r5   r6   r7   r8   r9   
set_events	__class__
event_maskset_can_focusr   CssProviderload_from_dataget_style_contextadd_provider#STYLE_PROVIDER_PRIORITY_APPLICATION	add_class)selfr.   css	style_ctxrC   s   &&  r"   r;   FigureCanvasGTK3.__init__;   s   ' $^T->->?)T-D-DE+T-F-FG&T-A-AB%T-L-LM+T-L-LMVT-?-?@VT__=&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 ooMN**,	sC$K$KL/0r$   c                :    \        R V 4      P                  4        R# )close_eventN)r	   _processrL   s   &r"   destroyFigureCanvasGTK3.destroyZ   s    =$'002r$   c                    V P                  R 4      pVeL   VP                  \        V4      4       \        P                  P                  4       pVP                  R4       R# R# )windowNT)get_property
set_cursorr#   r   MainContextdefault	iteration)rL   cursorrW   contexts   &&  r"   rY   FigureCanvasGTK3.set_cursor]   sS    ""8,089&&..0Gd# r$   c                n   VfP   V P                  4       pVP                  VP                  4       P                  4       P	                  4       4      w  r4rVMVP
                  VP                  rTW@P                  ,          pV P                  P                  P                  WPP                  ,          ,
          pWE3# )a_  
Convert the position of a GTK event, or of the current cursor position
if *event* is None, to Matplotlib coordinates.

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

Also, the origin is different and needs to be corrected.
)
get_windowget_device_positionget_displayget_device_managerget_client_pointerxydevice_pixel_ratior.   bboxheight)rL   eventrW   trf   rg   states   &&     r"   _mpl_coordsFigureCanvasGTK3._mpl_coordse   s     =__&F#77""$779LLNPNA!U 77EGGq'''KK##a*A*A&AAtr$   c           	         VP                   \        P                  P                  8X  d   ^MRp\	        RV .V P                  V4      O5RVRV P                  VP                  4      RV/ P                  4        R# )   r/   step	modifiersguiEventF)		directionr   ScrollDirectionUPr   rn   _mpl_modifiersrm   rR   )rL   widgetrk   rr   s   &&& r"   r/   FigureCanvasGTK3.scroll_event{   st    OOs':':'='==q2>4 	#$$U+	#26	#!00=	# "	# $,8:r$   c                    \        R V .V P                  V4      OVP                  N5RV P                  VP                  4      RV/ P                  4        R# )r0   rs   rt   Fr   rn   buttonry   rm   rR   rL   rz   rk   s   &&&r"   r0   #FigureCanvasGTK3.button_press_event   s[    ' 	#$$U+	#-2\\	#!00=	# "	# $,8:r$   c                    \        R V .V P                  V4      OVP                  N5RV P                  VP                  4      RV/ P                  4        R# )r1   rs   rt   Fr}   r   s   &&&r"   r1   %FigureCanvasGTK3.button_release_event   s[    )4 	#$$U+	#-2\\	#!00=	# "	# $,8:r$   c                ~    \        R V V P                  V4      .V P                  4       O5RV/ P                  4        R# )r4   rt   Tr
   _get_keyrn   rR   r   s   &&&r"   r4    FigureCanvasGTK3.key_press_event   s>    "Du%	!(,(8(8(:	!	!!)r$   c                ~    \        R V V P                  V4      .V P                  4       O5RV/ P                  4        R# )r5   rt   Tr   r   s   &&&r"   r5   "FigureCanvasGTK3.key_release_event   s>    $du%	!(,(8(8(:	!	!!)r$   c           	         \        R V .V P                  V4      O5RV P                  VP                  4      RV P	                  VP                  4      RV/ P                  4        R# )r6   buttonsrs   rt   F)r   rn   _mpl_buttonsrm   ry   rR   r   s   &&&r"   r6   $FigureCanvasGTK3.motion_notify_event   se    ($ 	#1A1A%1H 	#,,U[[9	#!00=	# "	# $,8:r$   c                    \         P                  P                  V P                  4       4      P	                  4       p\        R V .V P                  V4      O5RV P                  V4      RV/ P                  4        R# )figure_enter_eventrs   rt   N	r   Keymapget_for_displayrc   get_modifier_stater   rn   ry   rR   rL   rz   rk   gtk_modss   &&& r"   r7   #FigureCanvasGTK3.enter_notify_event   o    ::--  2 2 4 	*D 	&43C3CE3J 	& $ 3 3H =	&$	&&.hjr$   c                    \         P                  P                  V P                  4       4      P	                  4       p\        R V .V P                  V4      O5RV P                  V4      RV/ P                  4        R# )figure_leave_eventrs   rt   Nr   r   s   &&& r"   r8   #FigureCanvasGTK3.leave_notify_event   r   r$   c                P   V P                   P                  pVP                  V P                  ,          V,          pVP                  V P                  ,          V,          pV P                   P                  WER R7       \        RV 4      P                  4        V P                  4        R# )Fforwardresize_eventN)	r.   dpiwidthrh   rj   set_size_inchesr   rR   	draw_idle)rL   rz   
allocationdpivalwinchhinchs   &&&   r"   r9   FigureCanvasGTK3.size_allocate   sy      4#:#::VC!!D$;$;;fD##E%#@ND)224r$   c                   \         P                  \        P                  P                  3\         P
                  \        P                  P                  3\         P                  \        P                  P                  3\         P                  \        P                  P                  3\         P                  \        P                  P                  3.pV UUu. uF  w  r#W,          '       g   K  VNK  	  upp# u uppi r   )r   LEFTr   ModifierTypeBUTTON1_MASKMIDDLEBUTTON2_MASKRIGHTBUTTON3_MASKBACKBUTTON4_MASKFORWARDBUTTON5_MASK)event_staters   namemasks   &   r"   r   FigureCanvasGTK3._mpl_buttons   s     s//<<=!1!1!>!>? 0 0 = =>s//<<=  #"2"2"?"?@
	 (1GyK4F4FyGGGs   C6,C6excludec               V   R \         P                  P                  R3R\         P                  P                  R3R\         P                  P                  R3R\         P                  P
                  R3.pV UUUu. uF   w  r4pW8w  g   K  W,          '       g   K  VNK"  	  uppp# u upppi )ctrlcontrolaltshiftr:   )r   r   CONTROL_MASK	MOD1_MASK
SHIFT_MASK	MOD4_MASK)r   r   rs   r   r   keys   &$    r"   ry   FigureCanvasGTK3._mpl_modifiers   s     S%%22I>C$$..6c&&117;c&&00':	
	 -6 :IS> &1&8&8 I : 	: :s   9B$	B$B$c                ~   \        \        P                  ! VP                  4      4      p\        P
                  ! V\        P                  ! VP                  4      4      pV P                  VP                  VR 7      pRV9   d(   VP                  4       '       d   VP                  R4       RP                  . VOVN4      # ))r   r   +)chrr   keyval_to_unicodekeyvalr   _unikey_or_keysym_to_mplkeykeyval_namery   rm   isprintableremovejoin)rL   rk   unikeyr   modss   &&   r"   r   FigureCanvasGTK3._get_key   s    S**5<<89//COOELL13""5;;"<d?v1133KK xx$%%r$   c                    V P                  V P                  4       4      '       d#   V P                  4        V P                  4        R # R # r   )_set_device_pixel_ratioget_scale_factorqueue_resize
queue_drawrL   argskwargss   &*,r"   r?   +FigureCanvasGTK3._update_device_pixel_ratio   s<     ''(=(=(?@@ OO Ar$   c                D   VP                  R 4      f   R# VP                  V P                  ,          pVP                  V P                  ,          pV^8  g   V^8  d   R# V P                  P
                  pV P                  P                  W5,          WE,          RR7       R# )rW   NFr   )rX   r   rh   rj   r.   r   r   )rL   rz   rk   whr   s   &&&   r"   r2    FigureCanvasGTK3.configure_event   s{    x(0KK$111LL4222q5AEkkoo##AGQWe#Dr$   c                2    Wn         V P                  4        R # r   )r=   r   )rL   rects   &&r"   _draw_rubberband!FigureCanvasGTK3._draw_rubberband   s     $r$   c                  a  S P                   f   R # V 3R lS P                    4       w  r4rVW5,           pWF,           pVP                  W44       VP                  W84       VP                  W44       VP                  Wt4       VP                  W84       VP                  Wx4       VP                  Wt4       VP                  Wx4       VP                  ^4       VP	                  ^4       VP                  R^ 4       VP                  ^ ^ ^ 4       VP                  4        VP                  R^4       VP                  ^^^4       VP                  4        R # )Nc              3   J   <"   T F  pVSP                   ,          x  K  	  R # 5ir   )rh   ).0dimrL   s   & r"   	<genexpr>.FigureCanvasGTK3._post_draw.<locals>.<genexpr>   s&      :#8C d5555#8s    #)   r   )	r=   move_toline_toset_antialiasset_line_widthset_dashset_source_rgbstroke_preservestroke)	rL   rz   ctxx0y0r   r   x1y1s	   f&&      r"   rA   FigureCanvasGTK3._post_draw   s     (:#'#8#8:VV 	BBBBBBBB!1VQ1a#VQ1a#

r$   c                    R # r    )rL   rz   r   s   &&&r"   r@   FigureCanvasGTK3.on_draw_event  s    r$   c                V    V P                  4       '       d   V P                  4        R # R # r   )is_drawabler   rS   s   &r"   r3   FigureCanvasGTK3.draw  s     OO r$   c                p   a  S P                   ^ 8w  d   R# V 3R lp\        P                  ! V4      S n         R# )r   Nc                  P   <  SP                  4        ^ Sn        R#   ^ Sn        i ; i)r   F)r3   r<   )r   rL   s   *r"   	idle_draw-FigureCanvasGTK3.draw_idle.<locals>.idle_draw   s(    '		%&" &'"s    	%)r<   r   idle_add)rL   r   s   f r"   r   FigureCanvasGTK3.draw_idle  s,    "	 "]]95r$   c                    \         P                  P                  4       pVP                  4       '       d   VP	                  R 4       K)  R# )TN)r   rZ   r[   pendingr\   )rL   r^   s   & r"   flush_eventsFigureCanvasGTK3.flush_events(  s6    ""**,ood#  r$   )r<   r=   r   )0__name__
__module____qualname____firstlineno__required_interactive_frameworkr   classpropertymanager_classr   	EventMaskBUTTON_PRESS_MASKBUTTON_RELEASE_MASKEXPOSURE_MASKKEY_PRESS_MASKKEY_RELEASE_MASKENTER_NOTIFY_MASKLEAVE_NOTIFY_MASKPOINTER_MOTION_MASKSCROLL_MASKrD   r;   rT   rY   rn   r/   r0   r1   r4   r5   r6   r7   r8   r9   staticmethodr   ry   r   r?   r2   r   rA   r@   r3   r   r  __static_attributes____classdictcell____classcell__)rC   __classdict__s   @@r"   r&   r&   ,   sm    %+"&&'DEM --11MM556MM//0 MM001 MM22	3
 MM334 MM334 MM556 MM--.J1>3$,11 	H 	H :t : :&

<

6$ $r$   r&   c                   ,   a  ] tR tRt o R tR tRtV tR# )NavigationToolbar2GTK3i/  c                   \         P                   P                  V 4       V P                  \        P                  P
                  4       / V n        V P                   EFM  w  r#rEVf(   V P                  \        P                  ! 4       R4       K2  \        P                  P                  \        P                  P                  \        \         P"                  ! RV R24      4      4      \        P$                  P&                  4      pVR9   d   \        P(                  ! 4       M\        P*                  ! 4       ;V P                  V&   pVP-                  V4       VP/                  V4       VP1                  R\3        W4      4      Vn        VP7                  V4       V P                  VR4       EKP  	  \        P8                  ! 4       pV P                  VR4       \        P:                  ! 4       p	V	P=                  R4       VP?                  R4       VPA                  V	4       \        P8                  ! 4       pV P                  VR4       \        P:                  ! 4       V n!        V PB                  PE                  \        PF                  PH                  4       VPA                  V PB                  4       V PK                  4        \L        P                  ! W4       R # )Nimages-symbolic.svgclickedu   <small> 
 </small>Tru   )zoompan)'r   r;   	set_styler   ToolbarStyleICONS_gtk_ids	toolitemsinsertSeparatorToolItemImagenew_from_giconr   Iconnew_for_stringstrr   _get_data_pathIconSizeLARGE_TOOLBARToggleToolButton
ToolButton	set_labelset_icon_widgetr>   getattr_signal_handlerset_tooltip_textToolItemLabel
set_markup
set_expandaddmessageset_justifyJustificationr   show_allr   )
rL   canvastexttooltip_text
image_filecallbackimager~   toolitemlabels
   &&        r"   r;   NavigationToolbar2GTK3.__init__0  s     &s''--.8<4D
|C113R8II,,'',,X0:|=-IK LM **	,E +3o*E$$& "DMM$& T"""5)%+^^742&4F"##L1KK#% 9G0 <<>Hb!		C	ED!U<<>Hb!yy{  !2!2!8!89T\\"''5r$   c           	        a a
 \         P                  ! R S P                  P                  4       \         P                  P
                  \         P                  \         P                  P                  \         P                  \         P                  P                  3R7      o
S P                  P                  4       P                  4        F  w  r#\         P                  ! 4       pVP                  V4       V F  pVP                  RV 24       K  	  S
P!                  V4       S P                  P#                  4       V9   g   Kz  S
P%                  V4       K  	  \&        P(                  ! S
P*                  R4      V
V 3R l4       pS
P-                  \.        P0                  R,          4       S
P3                  S P                  P5                  4       4       S
P7                  R4       S
P9                  4       pS
P;                  4       pS
P=                  4       pS P                  P                  4       VP?                  4       ,          ^ ,          pS
PA                  4        V\         P                  P                  8w  d   R# \.        P0                  R,          '       d1   \B        PD                  PG                  V4      \.        P0                  R&    S P                  PH                  PK                  WR7       V#   \L         d   p	\         PN                  ! S P                  P                  4       \Q        T	4      \         PR                  PT                  \         PV                  P                  R	7      o
S
P9                  4        S
PA                  4         Rp	?	R# Rp	?	ii ; i)
zSave the figure)titletransient_foractionr   z*.znotify::filterc                    < SP                  4       P                  4       pSP                  P                  4       V,          ^ ,          pSP	                  \        \        SP                  4       4      P                  RV 24      4      4       R# )r   .N)	
get_filterget_namerC  get_supported_filetypes_groupedset_current_namer/  r   get_current_namewith_suffix)r   r   fmtdialogrL   s   *  r"   on_notify_filter<NavigationToolbar2GTK3.save_figure.<locals>.on_notify_filterr  sl    $$&//1D++==?EaHC##D0023??!C5	JKMr$   zsavefig.directoryTN)format)rN  rD  message_typer   ),r   FileChooserDialogrC  get_toplevelFileChooserActionSAVESTOCK_CANCELResponseTypeCANCEL
STOCK_SAVEOKrT  items
FileFilterset_nameadd_pattern
add_filterget_default_filetype
set_filter	functoolspartialr>   set_current_foldermplrcParamsrU  get_default_filenameset_do_overwrite_confirmationrunget_filenamerR  rS  rT   ospathdirnamer.   savefig	ExceptionMessageDialogr/  MessageTypeERRORButtonsType)rL   r   r   fmtsffrX  rZ  responsefnameerY  s   f*        @r"   save_figure"NavigationToolbar2GTK3.save_figure`  s   &&#++224((--%%s'7'7'>'>^^s'7'7':':<	
 ;;>>@FFH D!BKKC5z* b!{{//1T9!!"% I 
		6>>+;	<	M 
=	M 	!!#,,/B"CD @ @ BC,,T2::<##% kk99;BKKMJ1Ms''***<<+,,020FCLL,-	KK&&u&9L 	&&"kk668s1v __22COO<N<NPF JJLNN	s   'K, ,N7BNN)r'  r?  N)r  r  r  r	  r;   r  r  r  r  s   @r"   r  r  /  s     .6`/ /r$   r  c                   T   a  ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tRtV tR# )ToolbarGTK3i  r   c                   \         P                  ! W4       \        P                  P                  V 4       V P	                  R \        P
                  P                  4       \        P                  ! 4       V n        V P                  P                  \        P                  P                  4       V P                  V P                  RR^ 4       V P                  4        / V n        / V n        R# )orientationFN)r   r;   r   Boxset_propertyOrientation
HORIZONTALr;  _messager@  rA  r   pack_endrB  _groups
_toolitems)rL   toolmanagers   &&r"   r;   ToolbarGTK3.__init__  s    ""45-)C)CD		!!#"3"3"9"9:dmmUE15r$   c                   V'       d   \         P                  ! 4       pM\         P                  ! 4       pVP                  V4       Veg   \         P                  P                  \        P                  P                  V4      \         P                  P                  4      pVP                  V4       Vf   RpV P                  WrV4       VP                  RV P                  V4      p	VP                  V4       VP!                  4        V P"                  P%                  V. 4       V P"                  V,          P'                  Wy34       R # )Nr!  ru   )r   r3  r4  r5  r+  r,  r   r-  r.  r1  r2  r6  _add_buttonr>   
_call_toolr9  rB  r  
setdefaultappend)
rL   r   grouppositionrF  descriptiontoggler~   rH  signals
   &&&&&&&   r"   add_toolitemToolbarGTK3.add_toolitem  s    ))+F^^%F!II,,''
3**,E ""5)H1	4??DA,""4,$$f%56r$   c                   W P                   9  d   V P                   '       d   V P                  4        \        P                  ! 4       pVP	                  \        P
                  P                  4       V P                  VR R ^ 4       VP                  4        W@P                   V&   V P                   V,          P                  W4       R# )FN)
r  _add_separatorr   Toolbarr$  r%  r&  
pack_startrB  r)  )rL   r~   r  r  toolbars   &&&& r"   r  ToolbarGTK3._add_button  s    $|||##%kkmGc..445OOGUE15")LLU""64r$   c                (    V P                  V4       R # r   )trigger_tool)rL   btnr   s   &&&r"   r  ToolbarGTK3._call_tool  s    $r$   c                    WP                   9  d   R # V P                   V,           F8  w  r4VP                  V4       VP                  V4       VP                  V4       K:  	  R # r   )r  handler_block
set_activehandler_unblock)rL   r   toggledrI  r  s   &&&  r"   toggle_toolitemToolbarGTK3.toggle_toolitem  sR    & $ 5 5H""6*($$V, !6r$   c                    V P                   P                  V. 4       FS  w  r#V P                   F>  pW P                  V,          9   g   K  V P                  V,          P                  V4       K@  	  KU  	  R # r   )r  popr  r   )rL   r   rI  _signalr  s   &&   r"   remove_toolitemToolbarGTK3.remove_toolitem  sT    !%!4!4T2!>H||E22LL'..x8 & "?r$   c                    \         P                  ! 4       pVP                  R \         P                  P                  4       V P                  VRR^ 4       VP                  4        R# )r  FTN)r   	Separatorr  r  VERTICALr  rB  )rL   seps   & r"   r  ToolbarGTK3._add_separator  sB    mmo(@(@AUD!,r$   c                <    V P                   P                  V4       R # r   )r  r5  )rL   ss   &&r"   set_messageToolbarGTK3.set_message  s    "r$   )r  r  r  N)r  r  r  r	  _icon_extensionr;   r  r  r  r  r  r  r  r  r  r  s   @r"   r  r    s7     %O	70	5 -9# #r$   r  c                   &   a  ] tR tRt o R tRtV tR# )SaveFigureGTK3i  c                L    \         P                  V P                  4       4       R # r   )r  r  "_make_classic_style_pseudo_toolbarr   s   &*,r"   triggerSaveFigureGTK3.trigger  s    **335	7r$   r   Nr  r  r  r	  r  r  r  r  s   @r"   r  r    s     7 7r$   r  c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	HelpGTK3i  c                h   RRRRRRRR/pVP                  R	4      pVR
R  Uu. uF  pRV,           R,           NK  	  ppVR,          pW9   d
   W!,          pMA\        V4      ^8  d   VP                  4       pM VP                  4       '       d   VR.,          pRP	                  V4      V,           # u upi )zj
Convert Matplotlib key presses to GTK+ accelerator identifiers.

Related to `FigureCanvasGTK3._get_key`.
	backspace	BackSpacepagedown	Page_DownpageupPage_Upscroll_lockScroll_Lockr   N<>z<shift> ru   )splitlen
capitalizeisupperr   )rL   r   specialpartsmodr   s   &&    r"   _normalize_shortcutHelpGTK3._normalize_shortcut  s     i=	
 		#+0":6:Cc	C:6Bi>,CX\.."C[[]]YKDwwt}s"" 7s   B/c                H    RV9  ;'       d    VP                  R4      '       * # )z
Check for a valid shortcut to be displayed.

- GTK will never send 'cmd+' (see `FigureCanvasGTK3._get_key`).
- The shortcut window only shows keyboard shortcuts, not mouse buttons.
zcmd+zMouseButton.)
startswith)rL   r   s   &&r"   _is_valid_shortcutHelpGTK3._is_valid_shortcut  s#     S GG)G%GGr$   c           	       a  \         P                  ! 4       p\        S P                  P                  P                  4       4       F  w  r#VP                  '       g   K  \         P                  ! 4       pVP                  V4       VP                  R  R4       \         P                  ! RP                  V 3R lS P                  P                  V4       4       4      VP                  VP                  R7      pVP                  V4       K  	  \         P                  ! RRS P                  P                   P#                  4       R7      pVP%                  4        VP                  V4       VP'                  4        R# )c                 $    V P                  R 4      # )F)set_visible)rz   datas   &&r"   r+   1HelpGTK3._show_shortcuts_window.<locals>.<lambda>  s    f.@.@.Gr$   N c              3   x   <"   T F/  pSP                  V4      '       g   K  SP                  V4      x  K1  	  R # 5ir   )r  r  )r   r   rL   s   & r"   r   2HelpGTK3._show_shortcuts_window.<locals>.<genexpr>  s6      %5E..s3 2D,,S11Es   ::)acceleratorrM  subtitleHelpT)rM  modalrN  )r   ShortcutsSectionsortedr  toolsrg  r  ShortcutsGroupr>  forallShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurerC  r_  showrB  )rL   sectionr   toolr  shortcutrW   s   f      r"   _show_shortcuts_windowHelpGTK3._show_shortcuts_window
  s   &&( !1!1!7!7!=!=!?@JD### &&(EKKLLGN,,HH %5#//??E%5 5 ii))+H IIh) A, $$,,--::<> 	

7r$   c           	     >   \         P                  ! V P                  P                  P	                  4       ^ \         P
                  P                  \         P                  P                  V P                  4       RR7      pVP                  4        VP                  4        R# )r   r  )rM  N)r   r|  r  rC  r_  r}  INFOr  rf  _get_help_textru  rT   )rL   rY  s   & r"   _show_shortcuts_dialogHelpGTK3._show_shortcuts_dialog,  sf    ""LL,,.s##S__%7%79L9L9N 	

r$   c                ~    \         P                  ! ^^^ 4      f   V P                  4        R# V P                  4        R# )r   N)r   check_versionr  r  )rL   r   s   &*r"   r  HelpGTK3.trigger4  s/    QA&.'')'')r$   r   N)r  r  r  r	  r  r  r  r  r  r  r  r  s   @r"   r  r    s%     #4H D* *r$   r  c                   &   a  ] tR tRt o R tRtV tR# )ToolCopyToClipboardGTK3i;  c                   \         P                  P                  \        P                  4      pV P
                  P                  4       pVP                  4       w  rVrx\        P                  ! WEWgV4      p	VP                  V	4       R # r   )
r   	Clipboardgetr   SELECTION_CLIPBOARDrC  ra   get_geometrypixbuf_get_from_window	set_image)
rL   r   r   	clipboardrW   rf   rg   r   rj   pbs
   &*,       r"   r  ToolCopyToClipboardGTK3.trigger=  sc    MM%%c&=&=>	'')$113e''1VDBr$   r   Nr  r  s   @r"   r  r  ;  s        r$   r  c                       ] tR tRt]t]tRtR# )r)   iL  r   N)	r  r  r  r	  r  _toolbar2_classr  _toolmanager_toolbar_classr  r   r$   r"   r)   r)   L  s    ,O!,r$   r)   c                       ] tR tRt]t]tRtR# )_BackendGTK3iQ  r   N)	r  r  r  r	  r&   FigureCanvasr)   FigureManagerr  r   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   gir   gi_require_versionImportErrorerr
ValueErrorr  gi.repositoryr   r   r   r   r   r  r   r   r   r   r   r   	TimerGTK3	getLoggerr  _logcacher#   DrawingArear&   r  r  r  r  _register_tool_classSaveFigureBaser  ToolHelpBaser  ToolCopyToClipboardBaser  ConfigureSubplotsGTKRubberbandGTKr)   exportr  r   r$   r"   <module>r0     s     	   1 1B B BF8  ue$ 7 6   " 9 9@$' @$F`3S[[ `FI##SWW I#X ##$457]11 7 67 ##$45R*})) R* 6R*j ##$45 mCC   6    " "l779  " "l002-) -
 &; & &I  F
;
<#EF    a.a s.   F- 	G -G4	F==GG	GG