+
    ,i`W                        ^ 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t]P&                  f	   ]! R4      h  ]P,                  ! 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ResizeEventz Error: PyGObject module is emptyz#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   &B/usr/lib/python3/dist-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>1   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.   r/   r0   r1   _update_device_pixel_ratioon_draw_event
_post_drawr3   r4   r5   r6   r7   r8   
set_events	__class__
event_maskset_can_focusr   CssProviderload_from_dataget_style_contextadd_provider#STYLE_PROVIDER_PRIORITY_APPLICATION	add_class)selfr-   css	style_ctxrB   s   &&  r!   r:   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rK   s   &r!   destroyFigureCanvasGTK3.destroy]   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)rK   cursorrV   contexts   &&  r!   rX   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)rK   eventrV   tre   rf   states   &&     r!   _mpl_coordsFigureCanvasGTK3._mpl_coordsh   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   rm   _mpl_modifiersrl   rQ   )rK   widgetrj   rq   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# )r/   rr   rs   Fr   rm   buttonrx   rl   rQ   rK   ry   rj   s   &&&r!   r/   #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# )r0   rr   rs   Fr|   r~   s   &&&r!   r0   %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# )r3   rs   Tr
   _get_keyrm   rQ   r~   s   &&&r!   r3    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# )r4   rs   Tr   r~   s   &&&r!   r4   "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# )r5   buttonsrr   rs   F)r   rm   _mpl_buttonsrl   rx   rQ   r~   s   &&&r!   r5   $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_eventrr   rs   N	r   Keymapget_for_displayrb   get_modifier_stater   rm   rx   rQ   rK   ry   rj   gtk_modss   &&& r!   r6   #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_eventrr   rs   Nr   r   s   &&& r!   r7   #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widthrg   ri   set_size_inchesr   rQ   	draw_idle)rK   ry   
allocationdpivalwinchhinchs   &&&   r!   r8   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_staterr   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shiftr9   )r   r   CONTROL_MASK	MOD1_MASK
SHIFT_MASK	MOD4_MASK)r   r   rr   r   r   keys   &$    r!   rx   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_namerx   rl   isprintableremovejoin)rK   rj   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rK   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# )rV   NFr   )rW   r   rg   ri   r-   r   r   )rK   ry   rj   whr   s   &&&   r!   r1    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   )rK   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   )rg   ).0dimrK   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)	rK   ry   ctxx0y0r   r   x1y1s	   f&&      r!   r@   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    )rK   ry   r   s   &&&r!   r?   FigureCanvasGTK3.on_draw_event  s    r#   c                V    V P                  4       '       d   V P                  4        R # R # r   )is_drawabler   rR   s   &r!   r2   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)r2   r;   )r   rK   s   *r!   	idle_draw-FigureCanvasGTK3.draw_idle.<locals>.idle_draw#  s(    '		%&" &'"s    	%)r;   r   idle_add)rK   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   rY   rZ   pendingr[   )rK   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_MASKrC   r:   rS   rX   rm   r.   r/   r0   r3   r4   r5   r6   r7   r8   staticmethodr   rx   r   r>   r1   r   r@   r?   r2   r   r  __static_attributes____classdictcell____classcell__)rB   __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# )NavigationToolbar2GTK3i2  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>Trt   )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   )
rK   canvastexttooltip_text
image_filecallbackimager}   toolitemlabels
   &&        r!   r:   NavigationToolbar2GTK3.__init__3  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_namerB  get_supported_filetypes_groupedset_current_namer.  r   get_current_namewith_suffix)r   r   fmtdialogrK   s   *  r!   on_notify_filter<NavigationToolbar2GTK3.save_figure.<locals>.on_notify_filteru  sl    $$&//1D++==?EaHC##D0023??!C5	JKMr#   zsavefig.directoryTN)format)rM  rC  message_typer   ),r   FileChooserDialogrB  get_toplevelFileChooserActionSAVESTOCK_CANCELResponseTypeCANCEL
STOCK_SAVEOKrS  items
FileFilterset_nameadd_pattern
add_filterget_default_filetype
set_filter	functoolspartialr=   set_current_foldermplrcParamsrT  get_default_filenameset_do_overwrite_confirmationrunget_filenamerQ  rR  rS   ospathdirnamer-   savefig	ExceptionMessageDialogr.  MessageTypeERRORButtonsType)rK   r   r   fmtsffrW  rY  responsefnameerX  s   f*        @r!   save_figure"NavigationToolbar2GTK3.save_figurec  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  2  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?  r@  r   pack_endrA  _groups
_toolitems)rK   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   rt   )r   r2  r3  r4  r*  r+  r   r,  r-  r0  r1  r5  _add_buttonr=   
_call_toolr8  rA  r  
setdefaultappend)
rK   r   grouppositionrE  descriptiontoggler}   rG  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_startrA  r(  )rK   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)rK   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)rK   r   toggledrH  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   )rK   r   rH  _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  rA  )rK   seps   & r!   r  ToolbarGTK3._add_separator  sB    mmo(@(@AUD!,r#   c                <    V P                   P                  V4       R # r   )r  r4  )rK   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> rt   )splitlen
capitalizeisupperr   )rK   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)rK   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)ry   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   rK   s   & r!   r   2HelpGTK3._show_shortcuts_window.<locals>.<genexpr>  s6      %5E..s3 2D,,S11Es   ::)acceleratorrL  subtitleHelpT)rL  modalrM  )r   ShortcutsSectionsortedr  toolsrf  r  ShortcutsGroupr=  forallShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurerB  r^  showrA  )rK   sectionr   toolr  shortcutrV   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  )rL  N)r   r{  r  rB  r^  r|  INFOr~  re  _get_help_textrt  rS   )rK   rX  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  )rK   r   s   &*r!   r  HelpGTK3.trigger7  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_CLIPBOARDrB  r`   get_geometrypixbuf_get_from_window	set_image)
rK   r   r   	clipboardrV   re   rf   r   ri   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(   iO  r   N)	r  r  r  r  r  _toolbar2_classr  _toolmanager_toolbar_classr  r   r#   r!   r(   r(   O  s    ,O!,r#   r(   c                       ] tR tRt]t]tRtR# )_BackendGTK3iT  r   N)	r  r  r  r  r%   FigureCanvasr(   FigureManagerr  r   r#   r!   r  r  T  s    #L%Mr#   r  )>rm  loggingrv  pathlibr   
matplotlibrp  r   r   r   matplotlib.backend_basesr   r   r	   r
   r   r   r   gi__file__ImportErrorerrrequire_version
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	{{<== 
  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/   G G$ G!	GG!$G9+	G44G9