+
    i*\                        ^ 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Ht  ]! RR4       ^ RIt^ 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
CloseEvent)require_versionz#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   &ڀ/Users/tonyclaw/.openclaw/workspace/skills/math-calculator/venv/lib/python3.14/site-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    r0   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rV   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)rV   cursors   &&r    
set_cursorFigureCanvasGTK4.set_cursor_   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)rV   xysurfaceis_overxymasks   &&     r    _mpl_coordsFigureCanvasGTK4._mpl_coordsc   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# )rL   step	modifiersguiEventNT)r
   rz   _mpl_modifiers_GOBJECT_GE_3_47get_current_eventr`   )rV   
controllerdxdys   &&&&r    rL   FigureCanvasGTK4.scroll_eventy   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
   rz   get_current_buttonr   r   r   r`   
grab_focusrV   r   n_pressrw   rx   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
   rz   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# )rB   r   NTr   _get_keyrz   r   r   r`   rV   r   keyvalkeycodestates   &&&&&r    rB    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# )rC   r   NTr   r   s   &&&&&r    rC   "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# )rE   buttonsr~   r   N)r
   rz   _mpl_buttonsr   r   r   r`   rV   r   rw   rx   s   &&&&r    rE   $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	   rz   r   r   r   r`   r   s   &&&&r    rF   #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   )rV   r   s   &&r    rG   #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)forwardr8   N)r;   r%   dpirq   set_size_inchesr   r`   	draw_idle)rV   areawidthrs   r   winchhinchs   &&&&   r    r8   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   )rk   rl   rm   rn   ro   rp   r   LEFTr   ModifierTypeBUTTON1_MASKMIDDLEBUTTON2_MASKRIGHTBUTTON3_MASKBACKBUTTON4_MASKFORWARDBUTTON5_MASK
rV   r   ru   rv   rw   rx   event_state	mod_tablenamery   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/   )rk   rl   rm   rn   ro   rp   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)rV   r   r   r   unikeyrX   r~   modry   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)rk   rl   r7   r;   )rV   objru   s   && r    r:   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   )r9   rk   rl   	get_scaleget_scale_factor_set_device_pixel_ratiodraw)rV   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   )r4   
queue_draw)rV   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)rV   drawing_areactxr   rs   s   &&&&&r    r6   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   )rq   ).0dimrV   s   & r    	<genexpr>.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s&      :#8C d5555#8s    #)	r4   move_toline_toset_antialiasset_line_widthset_dashset_source_rgbstroke_preservestroke)rV   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    )rV   r   r   s   &&&r    r   FigureCanvasGTK4.on_draw_event.  s    r#   c                V    V P                  4       '       d   V P                  4        R # R # r   )is_drawabler   ra   s   &r    r   FigureCanvasGTK4.draw2  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   r3   )r   rV   s   *r    	idle_draw-FigureCanvasGTK4.draw_idle.<locals>.idle_draw;  s(    '		%&" &'"s    	%)r3   r   idle_add)rV   r  s   f r    r   FigureCanvasGTK4.draw_idle7  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)rV   contexts   & r    flush_eventsFigureCanvasGTK4.flush_eventsC  s6    ""**,ood#  r#   )r3   r4   r   )%__name__
__module____qualname____firstlineno__required_interactive_frameworksupports_blitr   classpropertymanager_classr0   rb   rh   rz   rL   r>   r?   rB   rC   rE   rF   rG   r8   r   r   r   r:   r;   r   r6   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# )NavigationToolbar2GTK4iJ  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   Boxr0   add_css_class_gtk_ids	toolitemsappend	SeparatorImagenew_from_giconr   Iconnew_for_stringstrr   _get_data_pathToggleButtonButton	set_childr7   getattr_signal_handlerset_tooltip_textLabel
set_markupr1   messageset_justifyJustificationr   r   )	rV   canvastexttooltip_text
image_filecallbackimagebuttonlabels	   &&       r    r0   NavigationToolbar2GTK4.__init__K  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)rZ  Nr[  )rZ  T)rV  message_typer   rX  rL  )get_file
get_choicerK  get_supported_filetypes_groupedrb   _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msgrV   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   FileChooserNativerK  rl  FileChooserActionSAVErb  
FileFilterset_nameadd_pattern
add_filter
set_filter	enumeratera  itemsr8  get_default_filetype
add_choice
set_choiceset_current_folderr   Filenew_for_pathospath
expanduserre  rf  set_current_nameget_default_filename	functoolspartialr7   rq  UNKNOWN_SAVED_STATUS)rV   r   rr  ffformatsdefault_formatir   fmtsrt  rx  s   f*         r    save_figure"NavigationToolbar2GTK4.save_figureu  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#   )r6  rb  rH  N)r  r  r  r  r0   r  r$  r%  r'  s   @r    r)  r)  J  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# )orientationr1  TN)r   r0   r   r4  set_propertyOrientation
HORIZONTAL	_tool_boxr8  _groups
_toolitemsrF  rG  r1   _messagerI  rJ  r   )rV   toolmanagerrR  s   && r    r0   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/  r0  r.   )r   r@  rA  	set_labelr5  r:  r;  r   r<  r=  rB  _add_buttonr7   
_call_toolrE  r  
setdefaultr8  )
rV   r   grouppositionrN  descriptiontogglerQ  rP  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_childr8  get_next_sibling)rV   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   r4  r  r8  insert_child_afterr  )rV   rQ  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)rV   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)rV   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)rV   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   r9  r  r  rK   r  r8  )rV   seps   & r    r  ToolbarGTK4._add_separator  s9    mmo(@(@Ac"r#   c                <    V P                   P                  V4       R # r   )r  r  )rV   ss   &&r    set_messageToolbarGTK4.set_message  s    "r#   )r  r  r  r  N)r  r  r  r  _icon_extensionr0   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)rV   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   )rV   rX   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)rV   rX   s   &&r    _is_valid_shortcutHelpGTK4._is_valid_shortcut8  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   rX   rV   s   & r    r   #HelpGTK4.trigger.<locals>.<genexpr>U  s6      %5E..s3 2D,,S11Es   ::)acceleratorrU  subtitleHelpT)rU  rX  rV  )r   ShortcutsSectionsortedr  toolsr  r  ShortcutsGroupr8  r  set_visibler  ShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurerK  rl  rB  rq  )	rV   r   sectionr   toolr  r  shortcutwindows	   f*       r    r  HelpGTK4.triggerA  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# )ToolCopyToClipboardGTK4if  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BytesIOrK  
print_rgbaget_width_heightr   Pixbufnew_from_data	getbuffer
ColorspaceRGBget_clipboardset)rV   r   r   fr  r  pb	clipboards   &*,     r    r  ToolCopyToClipboardGTK4.triggerh  s    ZZ\\QKK""1%;;//1DA!!//090D0D0H0H$0111>B  KK--/	b \s   B	CC,	r  Nr  r  s   @r    r  r  f  s      r#   r  c                       ] tR tRt]t]tRtR# )r   iz  r  N)	r  r  r  r  r)  _toolbar2_classr  _toolmanager_toolbar_classr$  r  r#   r    r   r   z  s    ,O!,r#   r   c                       ] 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  
matplotlibre  r   r   r   matplotlib.backend_basesr   r   r   r	   r
   r   r   gir   gi_require_versionImportErrorerr
ValueErrorrv  gi.repositoryr   r   r   r   r   r  r   r   r   r   r   r   	TimerGTK4version_infor   rO   r9   DrawingArear   r4  r)  r  _register_tool_classSaveFigureBaser  ToolHelpBaser  ToolCopyToClipboardBaser  ConfigureSubplotsGTKRubberbandGTKToolbarr   exportr%  r  r#   r    <module>r=     s    	 	  1 1B B BF8  ue$ 
 8 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
-) -
 &; & &g  F
;
<#EF    a.a s.   F, 	G ,G3	F<<GG	GG