+
    ,iP\                        ^ RI t ^ RIt^ RI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$ ]PJ                  R8  t&]PN                  ! ^^^ 4      RJ t( ! R R] ]PR                  4      t* ! R R]"]PV                  4      t, ! R R]	]PV                  4      t-]P\                  ! ]*4       ! R R]P^                  4      4       t0]P\                  ! ]*4       ! R R]Pb                  4      4       t2]P\                  ! ]*4       ! R R]Pf                  4      4       t4]P\                  ! ]*]Pj                  4       ]P\                  ! ]*]Pl                  4       ]-t7 ! R R]!4      t8]Pr                   ! 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)_apibackend_toolscbook)ToolContainerBaseMouseButtonKeyEventLocationEvent
MouseEventResizeEvent
CloseEventz Error: PyGObject module is emptyz#The GTK4 backends require PyGObjectGtkz4.0)GioGLibr   Gdk	GdkPixbuf)_backend_gtk)_BackendGTK_FigureCanvasGTK_FigureManagerGTK_NavigationToolbar2GTKTimerGTKc                      a a ] tR t^'t oRtRt]P                  ! R 4      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 tRR ltR 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$# )FigureCanvasGTK4gtk4Fc                    \         # N)FigureManagerGTK4)clss   &B/usr/lib/python3/dist-packages/matplotlib/backends/backend_gtk4.py<lambda>FigureCanvasGTK4.<lambda>*   s    3D    c                B  < \         S	V `  VR 7       V P                  R4       V P                  R4       ^ V n        RV n        V P                  V P                  4       V P                  RV P                  4       \        '       d   V P                  RV P                  4       MV P                  RV P                  4       \        P                  ! 4       pVP                  ^ 4       VP                  RV P                   4       VP                  RV P"                  4       V P%                  V4       \        P&                  ! 4       pVP                  RV P(                  4       VP                  R	V P*                  4       V P%                  V4       \        P,                  ! 4       pVP                  R
V P.                  4       VP                  RV P0                  4       VP                  RV P2                  4       V P%                  V4       \        P4                  P7                  \        P8                  P:                  4      pVP                  RV P<                  4       V P%                  V4       V P?                  R4       \        P@                  ! 4       pRp\        PB                  ! ^^	^4      f   VPE                  VR4       M VPE                  VPG                  R4      4       V PI                  4       pVPK                  V\        PL                  4       VPO                  R4       R# ))figureTNresizerealizez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_GTK_GE_4_12_realize_event_update_device_pixel_ratior   GestureClick
set_buttonbutton_press_eventbutton_release_eventadd_controllerEventControllerKeykey_press_eventkey_release_eventEventControllerMotionmotion_notify_evententer_notify_eventleave_notify_eventEventControllerScrollnewEventControllerScrollFlagsVERTICALscroll_eventset_focusableCssProvidercheck_versionload_from_dataencodeget_style_contextadd_provider#STYLE_PROVIDER_PRIORITY_APPLICATION	add_class)
selfr$   clickkeyr)   r,   cssstyle	style_ctx	__class__s
   &&       r   r/   FigureCanvasGTK4.__init__,   sV   ' $4??+Xt001<LLD$7$78LL/1P1PQ  "i!8!89j$";";<E"$$&M4#7#78ND$:$:;C **,x!9!9:w 7 78w 7 78F#**..**335x!2!23F#4 ooAQ1%-ub)u||G45**,	sC$K$KL/0r"   c                :    \        R V 4      P                  4        R# )close_eventN)r   _processrU   s   &r   destroyFigureCanvasGTK4.destroy^   s    =$'002r"   c                P    V P                  \        P                  ! V4      4       R # r   )set_cursor_from_namer   mpl_to_gtk_cursor_name)rU   cursors   &&r   
set_cursorFigureCanvasGTK4.set_cursora   s    !!,"E"Ef"MNr"   c                d   Vf^   V P                  4       P                  4       pVP                  V P                  4       P	                  4       P                  4       4      w  r4rVMVw  rEW@P                  ,          pV P                  P                  P                  WPP                  ,          ,
          pWE3# )aa  
Convert the *xy* position of a GTK event, or of the current cursor
position if *xy* is None, to Matplotlib coordinates.

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

Also, the origin is different and needs to be corrected.
)

get_nativeget_surfaceget_device_positionget_displayget_default_seatget_pointerdevice_pixel_ratior$   bboxheight)rU   xysurfaceis_overxymasks   &&     r   _mpl_coordsFigureCanvasGTK4._mpl_coordse   s     :oo'335G")"="=  "335AAC#EG4 DA'''KK##a*A*A&AAtr"   c           
         \        R V .V P                  4       O5RTRV P                  V4      R\        '       d   VP	                  4       MR/ P                  4        R# )rK   step	modifiersguiEventNT)r
   ry   _mpl_modifiers_GOBJECT_GE_3_47get_current_eventr_   )rU   
controllerdxdys   &&&&r   rK   FigureCanvasGTK4.scroll_event{   sb    D	
#'#3#3#5	
<>	
))*5	
 8H7GZ113T	
 (*r"   c                    \        R V .V P                  W434      OVP                  4       N5RV P                  V4      R\        '       d   VP                  4       MR/ P                  4        V P                  4        R# )r=   r}   r~   N)r
   ry   get_current_buttonr   r   r   r_   
grab_focusrU   r   n_pressrv   rw   s   &&&&&r   r=   #FigureCanvasGTK4.button_press_event   sx     $	
)-)9)91&)A	
))+	
 ))*5	
 8H7GZ113T		

 (*r"   c                    \        R V .V P                  W434      OVP                  4       N5RV P                  V4      R\        '       d   VP                  4       MR/ P                  4        R# )r>   r}   r~   N)r
   ry   r   r   r   r   r_   r   s   &&&&&r   r>   %FigureCanvasGTK4.button_release_event   sn    "D	
+/+;+;QF+C	
))+	
 ))*5	
 8H7GZ113T		

 (*r"   c           	         \        R W P                  W#V4      .V P                  4       O5R\        '       d   VP	                  4       MR/ P                  4        R# )rA   r~   NTr   _get_keyry   r   r   r_   rU   r   keyvalkeycodestates   &&&&&r   rA    FigureCanvasGTK4.key_press_event   sR    t]]6E%J	
	
 8H7GZ113T	
 (*r"   c           	         \        R W P                  W#V4      .V P                  4       O5R\        '       d   VP	                  4       MR/ P                  4        R# )rB   r~   NTr   r   s   &&&&&r   rB   "FigureCanvasGTK4.key_release_event   sR    }}Ve'L	
	
 8H7GZ113T	
 (*r"   c           
         \        R V .V P                  W#34      O5RV P                  V4      RV P                  V4      R\        '       d   VP                  4       MR/ P                  4        R# )rD   buttonsr}   r~   N)r
   ry   _mpl_buttonsr   r   r   r_   rU   r   rv   rw   s   &&&&r   rD   $FigureCanvasGTK4.motion_notify_event   sp    !4	
*.*:*:A6*B	
%%j1	
 ))*5	
 8H7GZ113T		

 (*r"   c                    \        R V .V P                  W#34      O5RV P                  4       R\        '       d   VP	                  4       MR/ P                  4        R# )figure_enter_eventr}   r~   Nr	   ry   r   r   r   r_   r   s   &&&&r   rE   #FigureCanvasGTK4.enter_notify_event   sY     $	
)-)9)91&)A	
))+	
 8H7GZ113T	
 (*r"   c                    \        R V .V P                  4       O5RV P                  4       R\        '       d   VP	                  4       MR/ P                  4        R# )figure_leave_eventr}   r~   Nr   )rU   r   s   &&r   rF   #FigureCanvasGTK4.leave_notify_event   sU     $	
)-)9)9);	
))+	
 8H7GZ113T	
 (*r"   c                D   V P                  4        V P                  P                  pW P                  ,          V,          pW0P                  ,          V,          pV P                  P	                  WVR R7       \        RV 4      P                  4        V P                  4        R# )F)forwardr7   N)r:   r$   dpirp   set_size_inchesr   r_   	draw_idle)rU   areawidthrr   r   winchhinchs   &&&&   r   r7   FigureCanvasGTK4.resize_event   su    '')kkoo///#500036##E%#@ND)224r"   c                   V P                  4       P                  4       pVP                  V P                  4       P	                  4       P                  4       4      w  r4rV\        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0 uF  w  rWi,          '       g   K  VkK  	  up	p# u up	pi r   )rj   rk   rl   rm   rn   ro   r   LEFTr   ModifierTypeBUTTON1_MASKMIDDLEBUTTON2_MASKRIGHTBUTTON3_MASKBACKBUTTON4_MASKFORWARDBUTTON5_MASK
rU   r   rt   ru   rv   rw   event_state	mod_tablenamerx   s
   &&        r   r   FigureCanvasGTK4._mpl_buttons   s     //#//1%,%@%@//1==?&A"A s//<<=!1!1!>!>? 0 0 = =>s//<<=  #"2"2"?"?@
	 (1GyK4F4FyGGGs   1EEc                   Vf^   V P                  4       P                  4       pVP                  V P                  4       P	                  4       P                  4       4      w  r4rVMVP                  4       pR\        P                  P                  3R\        P                  P                  3R\        P                  P                  3R\        P                  P                  3.pV UU	u. uF  w  rWi,          '       g   K  VNK  	  up	p# u up	pi )Nctrlaltshiftr.   )rj   rk   rl   rm   rn   ro   get_current_event_stater   r   CONTROL_MASKALT_MASK
SHIFT_MASK
SUPER_MASKr   s
   &&        r   r   FigureCanvasGTK4._mpl_modifiers   s    oo'335G)0)D)D  "335AAC*E&G; %<<>KS%%223C$$--.c&&112c&&112	
	 (1GyK4F4FyGGGs   %D<Dc                P   \        \        P                  ! V4      4      p\        P                  ! V\        P
                  ! V4      4      p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  rxp	W8w  g   K  W8,          '       g   K  VR8X  d   VP                  4       '       d   K=  VNKA  	  p
ppp	RP                  . V
OVN4      # u up	ppi )r   controlr   r   r.   +)chrr   keyval_to_unicoder   _unikey_or_keysym_to_mplkeykeyval_namer   r   r   r   r   isprintablejoin)rU   r   r   r   unikeyrW   r}   modrx   mod_keymodss   &&&&       r   r   FigureCanvasGTK4._get_key   s   S**623//OOF#% S%%22I>C$$--u5c&&117;c&&117;	
	 +4D*3&Cw #(<< F,>,>,@ C) 	 D xx$%%	Ds   D!D!#D!D!c                    V P                  4       P                  4       pVP                  R V P                  4       V P                  4        R# )znotify::scaleN)rj   rk   r6   r:   )rU   objrt   s   && r   r9   FigureCanvasGTK4._realize_event   s7    //#//1)H)HI'')r"   c                    \         '       d.   V P                  4       P                  4       P                  4       pMV P	                  4       pVf   Q hV P                  V4      '       d   V P                  4        R # R # r   )r8   rj   rk   	get_scaleget_scale_factor_set_device_pixel_ratiodraw)rU   argskwargsscales   &*, r   r:   +FigureCanvasGTK4._update_device_pixel_ratio   s`     <OO%113==?E))+E   ''..IIK /r"   c                2    Wn         V P                  4        R # r   )r3   
queue_draw)rU   rects   &&r   _draw_rubberband!FigureCanvasGTK4._draw_rubberband  s     $r"   c                J    V P                  W4       V P                  W4       R # r   )on_draw_event
_post_draw)rU   drawing_areactxr   rr   s   &&&&&r   r5   FigureCanvasGTK4._draw_func  s    4%"r"   c                  a  S P                   f   R # ^p^pV 3R lS P                    4       w  rVrxWW,           p	Wh,           p
VP                  WV4       VP                  WZ4       VP                  WV4       VP                  W4       VP                  WZ4       VP                  W4       VP                  W4       VP                  W4       VP                  ^4       VP	                  V4       VP                  WD3^ 4       VP                  ^ ^ ^ 4       VP                  4        VP                  WD3V4       VP                  ^^^4       VP                  4        R # )Nc              3   J   <"   T F  pVSP                   ,          x  K  	  R # 5ir   )rp   ).0dimrU   s   & r   	<genexpr>.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s&      :#8C d5555#8s    #)	r3   move_toline_toset_antialiasset_line_widthset_dashset_source_rgbstroke_preservestroke)rU   widgetr   lwdashx0y0whx1y1s   f&&        r   r   FigureCanvasGTK4._post_draw  s     (:#'#8#8:VV 	BBBBBBBB!2d\1%1a#d\4(1a#

r"   c                    R # r    )rU   r   r   s   &&&r   r   FigureCanvasGTK4.on_draw_event0  s    r"   c                V    V P                  4       '       d   V P                  4        R # R # r   )is_drawabler   r`   s   &r   r   FigureCanvasGTK4.draw4  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)r   r2   )r   rU   s   *r   	idle_draw-FigureCanvasGTK4.draw_idle.<locals>.idle_draw=  s(    '		%&" &'"s    	%)r2   r   idle_add)rU   r  s   f r   r   FigureCanvasGTK4.draw_idle9  s,    "	 "]]95r"   c                    \         P                  P                  4       pVP                  4       '       d   VP	                  R 4       K)  R# TN)r   MainContextdefaultpending	iteration)rU   contexts   & r   flush_eventsFigureCanvasGTK4.flush_eventsE  s6    ""**,ood#  r"   )r2   r3   r   )%__name__
__module____qualname____firstlineno__required_interactive_frameworksupports_blitr   classpropertymanager_classr/   ra   rg   ry   rK   r=   r>   rA   rB   rD   rE   rF   r7   r   r   r   r9   r:   r   r5   r   r   r   r   r  __static_attributes____classdictcell____classcell__)r[   __classdict__s   @@r   r   r   '   s     %+"M&&'DEM01d3O,H(H&"*
	
#@

6$ $r"   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )NavigationToolbar2GTK4iL  c                   \         P                  P                  V 4       V P                  R 4       / V n        V P
                   EFC  w  r#rEVf'   V P                  \         P                  ! 4       4       K1  \         P                  P                  \        P                  P                  \        \        P                  ! RV R24      4      4      4      pVR	9   d   \         P                   ! 4       M\         P"                  ! 4       ;V P                  V&   pVP%                  V4       VP                  R4       VP                  R4       VP'                  R\)        W4      4      Vn        VP-                  V4       V P                  V4       EKF  	  \         P.                  ! 4       pVP1                  R4       VP3                  R4       V P                  V4       \         P.                  ! 4       V n        V P4                  P7                  \         P8                  P:                  4       V P                  V P4                  4       \<        P                  ! W4       R# )
toolbarNimages-symbolic.svgflatimage-buttonclicked   <small> 
 </small>T)zoompan)r   Boxr/   add_css_class_gtk_ids	toolitemsappend	SeparatorImagenew_from_giconr   Iconnew_for_stringstrr   _get_data_pathToggleButtonButton	set_childr6   getattr_signal_handlerset_tooltip_textLabel
set_markupr0   messageset_justifyJustificationr   r   )	rU   canvastexttooltip_text
image_filecallbackimagebuttonlabels	   &&       r   r/   NavigationToolbar2GTK4.__init__M  s   9%8<4D
|CMMO,II,,'',,X0:|=-IK LMNE
 '//&A  "

DMM$& U#  (  0%+^^742&4F"##L1KK% 9G0 		C	E$Eyy{  !2!2!8!89DLL!''5r"   c                  a  \         P                  ! R S P                  P                  4       \         P                  P
                  RR7      pVS n        \         P                  ! 4       pVP                  R4       VP                  R4       VP                  V4       VP                  V4       . pRp\        S P                  P                  4       P                  4       4       F  w  pw  rx\         P                  ! 4       pVP                  V4       V F  p	VP                  RV	 24       K  	  VP                  V4       VP                  V4       S P                  P!                  4       V9   g   K  TpK  	  WE,          .VRV OWE^,           R OpVP#                  RRWD4       VP%                  RV^ ,          4       VP'                  \(        P*                  P-                  \.        P0                  P3                  \4        P6                  R	,          4      4      4       VP9                  S P                  P;                  4       4       \<        P>                  ! VP@                  R
4      V 3R l4       p
VPC                  4        S PD                  # )zSave the figureT)titletransient_foractionmodalz	All files*Nz*.formatzFile formatsavefig.directoryresponsec           
      <  < V P                  4       pV P                  R 4      pSP                  P                  4       V,          ^ ,          pV P	                  4        RSn        V\        P                  P                  8w  d   R# \        P                  R,          '       d2   VP                  4       pVP                  4       \        P                  R&    SP                  P                  P                  VP                  4       VR7       R#   \         d   p\        P                   ! SP                  P#                  4       \        P$                  P&                  \        P(                  P*                  R\-        T4      R7      pTP/                  4         Rp?R# Rp?ii ; i)rY  NrZ  )rY  T)rU  message_typer   rW  rK  )get_file
get_choicerJ  get_supported_filetypes_groupedra   _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msgrU   s   &&     r   on_response7NavigationToolbar2GTK4.save_figure.<locals>.on_response  s   ??$D##H-C++==?DQGCNN $D3++222||/00*4:OO4E01""**4==?3*G ''"&++"6"6"8!$!6!6OO..dQ	!
 

s   5D	 	FA<FF)#r   FileChooserNativerJ  rk  FileChooserActionSAVEra  
FileFilterset_nameadd_pattern
add_filter
set_filter	enumerater`  itemsr7  get_default_filetype
add_choice
set_choiceset_current_folderr   Filenew_for_pathospath
expanduserrd  re  set_current_nameget_default_filename	functoolspartialr6   rp  UNKNOWN_SAVED_STATUS)rU   r   rq  ffformatsdefault_formatir   fmtsrs  rw  s   f*         r   save_figure"NavigationToolbar2GTK4.save_figurew  s   &&#++..0((--	
 #^^
K 
s""(;;=CCE GOA|!BKKC5z* b!NN4 {{//1T9!" G * 0W_n-E 01,-.0(M7D(GAJ/!!#(("7"7GGs||,?@A#C 	D @ @ BC			6>>:	6	 
7	, 	(((r"   )r5  ra  rG  N)r  r  r  r  r/   r  r#  r$  r&  s   @r   r(  r(  L  s     (6T=) =)r"   r(  c                   Z   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RtV tR# )ToolbarGTK4i  r,  c                   \         P                  ! W4       \        P                  P                  V 4       V P	                  R \        P
                  P                  4       \        P                  ! 4       V n        V P                  V P                  4       / V n	        / V n
        \        P                  ! 4       pVP                  R4       VP                  R4       V P                  V4       \        P                  ! 4       V n        V P                  P                  \        P                   P"                  4       V P                  V P                  4       R# )orientationr0  TN)r   r/   r   r3  set_propertyOrientation
HORIZONTAL	_tool_boxr7  _groups
_toolitemsrE  rF  r0   _messagerH  rI  r   )rU   toolmanagerrQ  s   && r   r/   ToolbarGTK4.__init__  s    ""45-)C)CD DNN# 		C	E$E		!!#"3"3"9"9:DMM"r"   c                ~   V'       d   \         P                  ! 4       pM\         P                  ! 4       pVP                  V4       VP	                  R 4       Ve_   \         P
                  P                  \        P                  P                  V4      4      pVP                  V4       VP	                  R4       Vf   RpV P                  WrV4       VP                  RV P                  V4      p	VP                  V4       V P                  P!                  V. 4       V P                  V,          P#                  Wy34       R# )r-  Nr.  r/  r-   )r   r?  r@  	set_labelr4  r9  r:  r   r;  r<  rA  _add_buttonr6   
_call_toolrD  r  
setdefaultr7  )
rU   r   grouppositionrM  descriptiontogglerP  rO  signals
   &&&&&&&   r   add_toolitemToolbarGTK4.add_toolitem  s    %%'FZZ\FV$!II,,''
35EU#  0H1	4??DA,""4,$$f%56r"   c                    R .pV P                   V,          P                  4       pVe$   VP                  V4       VP                  4       pK'  W2,          # r   )r  get_first_childr7  get_next_sibling)rU   r  r  childrenchilds   &&&  r   _find_child_at_position#ToolbarGTK4._find_child_at_position  sI    6U#335OOE"**,E!!r"   c                H   W P                   9  da   V P                   '       d   V P                  4        \        P                  ! 4       pV P                  P                  V4       W@P                   V&   V P                   V,          P                  WP                  W#4      4       R # r   )r  _add_separatorr   r3  r  r7  insert_child_afterr  )rU   rP  r  r  	group_boxs   &&&& r   r  ToolbarGTK4._add_button  sp    $|||##%	INN!!),"+LLU..00A	Cr"   c                (    V P                  V4       R # r   )trigger_tool)rU   btnr   s   &&&r   r  ToolbarGTK4._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)rU   r   toggledtoolitemr  s   &&&  r   toggle_toolitemToolbarGTK4.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  remove)rU   r   r  _signalr  s   &&   r   remove_toolitemToolbarGTK4.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
                  P                  V4       R# )r  N)r   r8  r  r  rJ   r  r7  )rU   seps   & r   r  ToolbarGTK4._add_separator  s9    mmo(@(@Ac"r"   c                <    V P                   P                  V4       R # r   )r  r  )rU   ss   &&r   set_messageToolbarGTK4.set_message  s    "r"   )r  r  r  r  N)r  r  r  r  _icon_extensionr/   r  r  r  r  r  r  r  r  r#  r$  r  s   @r   r  r    s=     %O#270"C -9#
# #r"   r  c                   &   a  ] tR tRt o R tRtV tR# )SaveFigureGTK4i  c                L    \         P                  V P                  4       4       R # r   )r(  r  "_make_classic_style_pseudo_toolbar)rU   r   r   s   &*,r   triggerSaveFigureGTK4.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                   2   a  ] tR tRt o R tR tR tRtV tR# )HelpGTK4i  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 `FigureCanvasGTK4._get_key`.
	backspace	BackSpacepagedown	Page_DownpageupPage_Upscroll_lockScroll_Lockr   N<>z<shift> r-   )splitlen
capitalizeisupperr   )rU   rW   specialpartsr   r   s   &&    r   _normalize_shortcutHelpGTK4._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 `FigureCanvasGTK4._get_key`).
- The shortcut window only shows keyboard shortcuts, not mouse buttons.
zcmd+zMouseButton.)
startswith)rU   rW   s   &&r   _is_valid_shortcutHelpGTK4._is_valid_shortcut:  s#     S GG)G%GGr"   c           	       a  \         P                  ! 4       p\        S P                  P                  P                  4       4       F  w  r4VP                  '       g   K  \         P                  ! 4       pVP                  V4       VP                  4       pVe$   VP                  R4       VP                  4       pK'  \         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)                  V4       VP+                  4        R # )NF 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   rW   rU   s   & r   r   #HelpGTK4.trigger.<locals>.<genexpr>W  s6      %5E..s3 2D,,S11Es   ::)acceleratorrT  subtitleHelpT)rT  rW  rU  )r   ShortcutsSectionsortedr  toolsr  r  ShortcutsGroupr7  r  set_visibler  ShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurerJ  rk  rA  rp  )	rU   r   sectionr   toolr  r  shortcutwindows	   f*       r   r  HelpGTK4.triggerC  s4   &&( !1!1!7!7!=!=!?@JD### &&(ENN5!))+E#!!%(..0,,HH %5#//??E%5 5 ii))+H LL"/ A2 $$,,--668: 	!r"   r  N)	r  r  r  r  r  r  r  r#  r$  r  s   @r   r  r    s     #4H" "r"   r  c                   &   a  ] tR tRt o R tRtV tR# )ToolCopyToClipboardGTK4ih  c                   \         P                  ! 4       ;_uu_ 4       pV P                  P                  V4       V P                  P	                  4       w  rE\
        P                  P                  VP                  4       \
        P                  P                  R ^WEV^,          4      pRRR4       V P                  P                  4       pVP                  X4       R#   + '       g   i     L=; ir  )ioBytesIOrJ  
print_rgbaget_width_heightr   Pixbufnew_from_data	getbuffer
ColorspaceRGBget_clipboardset)rU   r   r   fr  r  pb	clipboards   &*,     r   r  ToolCopyToClipboardGTK4.triggerj  s    ZZ\\QKK""1%;;//1DA!!//090D0D0H0H$0111>B  KK--/	b \s   B	CC,	r  Nr  r  s   @r   r  r  h  s      r"   r  c                       ] tR tRt]t]tRtR# )r   i|  r  N)	r  r  r  r  r(  _toolbar2_classr  _toolmanager_toolbar_classr#  r  r"   r   r   r   |  s    ,O!,r"   r   c                       ] tR tRt]t]tRtR# )_BackendGTK4i  r  N)	r  r  r  r  r   FigureCanvasr   FigureManagerr#  r  r"   r   r$  r$    s    #L%Mr"   r$  )   /   r   );r  r  r  
matplotlibrd  r   r   r   matplotlib.backend_basesr   r   r   r	   r
   r   r   gi__file__ImportErrorerrrequire_version
ValueErrorru  gi.repositoryr   r   r   r   r   r  r   r   r   r   r   r   	TimerGTK4version_infor   rN   r8   DrawingArear   r3  r(  r  _register_tool_classSaveFigureBaser  ToolHelpBaser  ToolCopyToClipboardBaser  ConfigureSubplotsGTKRubberbandGTKToolbarr   exportr$  r  r"   r   <module>r=     s    	 	  1 1B B BF	{{<== 
  ue$ 9 8  
 ??j0   B*d2b$' b$J	h)3SWW h)V]##SWW ]#@ ##$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
-) -
 &; & &e  F
;
<#EF    a.a s/   G 
G G	GGG4&	G//G4