
    hY                        S SK r S SKrS SKrS SKrS SKJrJrJr  S SKJ	r	J
r
JrJrJrJrJr   S SKr \R&                  " SS5        S SKJrJrJrJrJr  SS	KJr  SS
KJrJrJ r J!r!J"r#  \RH                  S:  r% " S S\\RL                  5      r' " S S\!\RP                  5      r) " S S\	\RP                  5      r*\RV                  " \'5       " S S\RX                  5      5       r-\RV                  " \'5       " S S\R\                  5      5       r/\RV                  " \'5       " S S\R`                  5      5       r1\RV                  " \'\Rd                  5        \RV                  " \'\Rf                  5        \*r4 " S S\ 5      r5\Rl                   " S S\5      5       r7g! \ a  r\" S5      \eSrCff = f! \ a  r\" \5      \eSrCff = f)    N)_apibackend_toolscbook)ToolContainerBaseMouseButtonKeyEventLocationEvent
MouseEventResizeEvent
CloseEventz#The GTK4 backends require PyGObjectGtkz4.0)GioGLibr   Gdk	GdkPixbuf   )_backend_gtk)_BackendGTK_FigureCanvasGTK_FigureManagerGTK_NavigationToolbar2GTKTimerGTK)   /   r   c                      ^  \ rS rSrSrSr\R                  " S 5      rSU 4S jjr	S r
S rSS jrS	 rS
 rS rS rS rS rS rS rS rS rSS jrS rS rS rS rS rS rS rS rS r Sr!U =r"$ )FigureCanvasGTK4#   gtk4Fc                     [         $ N)FigureManagerGTK4)clss    R/var/www/html/env/lib/python3.13/site-packages/matplotlib/backends/backend_gtk4.py<lambda>FigureCanvasGTK4.<lambda>&   s    3D    c                   > [         T	U ]  US9  U R                  S5        U R                  S5        SU l        S U l        U R                  U R                  5        U R                  SU R                  5        U R                  SU R                  5        [        R                  " 5       nUR                  S5        UR                  SU R                  5        UR                  SU R                  5        U R!                  U5        [        R"                  " 5       nUR                  SU R$                  5        UR                  S	U R&                  5        U R!                  U5        [        R(                  " 5       nUR                  S
U R*                  5        UR                  SU R,                  5        UR                  SU R.                  5        U R!                  U5        [        R0                  R3                  [        R4                  R6                  5      nUR                  SU R8                  5        U R!                  U5        U R;                  S5        [        R<                  " 5       nSn[        R>                  " SSS5      c  URA                  US5        O URA                  URC                  S5      5        U RE                  5       nURG                  U[        RH                  5        URK                  S5        g )N)figureTr   resizeznotify::scale-factorpressedreleasedzkey-pressedzkey-releasedmotionenterleavescrollz/.matplotlib-canvas { background-color: white; }   	   r   zutf-8zmatplotlib-canvas)&super__init__set_hexpandset_vexpand_idle_draw_id_rubberband_rectset_draw_func
_draw_funcconnectresize_event_update_device_pixel_ratior   GestureClick
set_buttonbutton_press_eventbutton_release_eventadd_controllerEventControllerKeykey_press_eventkey_release_eventEventControllerMotionmotion_notify_evententer_notify_eventleave_notify_eventEventControllerScrollnewEventControllerScrollFlagsVERTICALscroll_eventset_focusableCssProvidercheck_versionload_from_dataencodeget_style_contextadd_provider#STYLE_PROVIDER_PRIORITY_APPLICATION	add_class)
selfr(   clickkeyr,   r/   cssstyle	style_ctx	__class__s
            r#   r4   FigureCanvasGTK4.__init__(   s=   ' $4??+Xt001+T-L-LM  "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                 8    [        SU 5      R                  5         g )Nclose_event)r   _processrX   s    r#   destroyFigureCanvasGTK4.destroyW   s    =$'002r&   c                 N    U R                  [        R                  " U5      5        g r    )set_cursor_from_namer   mpl_to_gtk_cursor_name)rX   cursors     r#   
set_cursorFigureCanvasGTK4.set_cursorZ   s    !!,"E"Ef"MNr&   c                 J   Uc]  U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pVOUu  pEX@R                  -  nU R                  R                  R                  XPR                  -  -
  nXE4$ )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)rX   xysurfaceis_overxymasks          r#   _mpl_coordsFigureCanvasGTK4._mpl_coords^   s     :oo'335G")"="=  "335AAC#EG4 DA'''KK##a*A*A&AAtr&   c                     [        SU /U R                  5       Q7UU R                  U5      [        (       a  UR	                  5       OS S.6R                  5         g)NrN   )step	modifiersguiEventT)r
   r|   _mpl_modifiers_GOBJECT_GE_3_47get_current_eventrb   )rX   
controllerdxdys       r#   rN   FigureCanvasGTK4.scroll_eventt   sU    D	
#'#3#3#5	
<>))*57G7GZ113T	
 (*r&   c                     [        SU /U R                  X445      QUR                  5       P7U R                  U5      [        (       a  UR                  5       OS S.6R                  5         U R                  5         g )Nr@   r   r   )r
   r|   get_current_buttonr   r   r   rb   
grab_focusrX   r   n_pressry   rz   s        r#   r@   #FigureCanvasGTK4.button_press_event|   sp     $	
)-)9)91&)A	
))+	
 ))*57G7GZ113T		

 (*r&   c                     [        SU /U R                  X445      QUR                  5       P7U R                  U5      [        (       a  UR                  5       OS S.6R                  5         g )NrA   r   )r
   r|   r   r   r   r   rb   r   s        r#   rA   %FigureCanvasGTK4.button_release_event   sf    "D	
+/+;+;QF+C	
))+	
 ))*57G7GZ113T		

 (*r&   c           	          [        SX R                  X#U5      /U R                  5       Q7S[        (       a  UR	                  5       OS 06R                  5         g)NrD   r   Tr   _get_keyr|   r   r   rb   rX   r   keyvalkeycodestates        r#   rD    FigureCanvasGTK4.key_press_event   sR    t]]6E%J	
	
 8H7GZ113T	
 (*r&   c           	          [        SX R                  X#U5      /U R                  5       Q7S[        (       a  UR	                  5       OS 06R                  5         g)NrE   r   Tr   r   s        r#   rE   "FigureCanvasGTK4.key_release_event   sR    }}Ve'L	
	
 8H7GZ113T	
 (*r&   c                     [        SU /U R                  X#45      Q7U R                  U5      U R                  U5      [        (       a  UR                  5       OS S.6R                  5         g )NrG   )buttonsr   r   )r
   r|   _mpl_buttonsr   r   r   rb   rX   r   ry   rz   s       r#   rG   $FigureCanvasGTK4.motion_notify_event   sa    !4	
*.*:*:A6*B	
%%j1))*57G7GZ113T		

 (*r&   c                     [        SU /U R                  X#45      Q7U R                  5       [        (       a  UR	                  5       OS S.6R                  5         g )Nfigure_enter_eventr   r	   r|   r   r   r   rb   r   s       r#   rH   #FigureCanvasGTK4.enter_notify_event   sQ     $	
)-)9)91&)A	
))+7G7GZ113T	
 (*r&   c                     [        SU /U R                  5       Q7U R                  5       [        (       a  UR	                  5       OS S.6R                  5         g )Nfigure_leave_eventr   r   )rX   r   s     r#   rI   #FigureCanvasGTK4.leave_notify_event   sM     $	
)-)9)9);	
))+7G7GZ113T	
 (*r&   c                    U R                  5         U R                  R                  nX R                  -  U-  nX0R                  -  U-  nU R                  R	                  XVSS9  [        SU 5      R                  5         U R                  5         g )NF)forwardr<   )r=   r(   dpirs   set_size_inchesr   rb   	draw_idle)rX   areawidthru   r   winchhinchs          r#   r<   FigureCanvasGTK4.resize_event   su    '')kkoo///#500036##E%#@ND)224r&   c                    U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pV[        R                  [        R                  R                  4[        R                  [        R                  R                  4[        R                  [        R                  R                  4[        R                  [        R                  R                   4[        R"                  [        R                  R$                  4/nU VV	s1 s H  u  pXi-  (       d  M  UiM     sn	n$ s  sn	nf r    )rm   rn   ro   rp   rq   rr   r   LEFTr   ModifierTypeBUTTON1_MASKMIDDLEBUTTON2_MASKRIGHTBUTTON3_MASKBACKBUTTON4_MASKFORWARDBUTTON5_MASK
rX   r   rw   rx   ry   rz   event_state	mod_tablenamer{   s
             r#   r   FigureCanvasGTK4._mpl_buttons   s     //#//1%,%@%@//1==?&A"A s//<<=!1!1!>!>? 0 0 = =>s//<<=  #"2"2"?"?@
	 (1GyK4FyGGGs   1EEc                    Uc]  U R                  5       R                  5       nUR                  U R                  5       R	                  5       R                  5       5      u  p4pVOUR                  5       nS[        R                  R                  4S[        R                  R                  4S[        R                  R                  4S[        R                  R                  4/nU VV	s/ s H  u  pXi-  (       d  M  UPM     sn	n$ s  sn	nf )Nctrlaltshiftr3   )rm   rn   ro   rp   rq   rr   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K4FyGGGs   $D7Dc                 B   [        [        R                  " U5      5      n[        R                  " U[        R
                  " U5      5      nS[        R                  R                  S4S[        R                  R                  S4S[        R                  R                  S4S[        R                  R                  S4/nU VVV	s/ s H7  u  pxn	X:w  d  M  X8-  (       d  M  US:X  a  UR                  5       (       a  M5  UPM9     n
nnn	SR                  / U
QUP5      $ s  sn	nnf )Nr   controlr   r   r3   +)chrr   keyval_to_unicoder   _unikey_or_keysym_to_mplkeykeyval_namer   r   r   r   r   isprintablejoin)rX   r   r   r   unikeyrZ   r   modr{   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,>,>,@ ) 	 D xx$%%	Ds   DDD;Dc                 n    U R                  U R                  5       5      (       a  U R                  5         g g r    )_set_device_pixel_ratioget_scale_factordrawrX   argskwargss      r#   r=   +FigureCanvasGTK4._update_device_pixel_ratio   s-     ''(=(=(?@@IIK Ar&   c                 0    Xl         U R                  5         g r    )r8   
queue_draw)rX   rects     r#   _draw_rubberband!FigureCanvasGTK4._draw_rubberband   s     $r&   c                 H    U R                  X5        U R                  X5        g r    )on_draw_event
_post_draw)rX   drawing_areactxr   ru   s        r#   r:   FigureCanvasGTK4._draw_func   s    4%"r&   c                   ^  T R                   c  g SnSnU 4S jT R                    5       u  pVpxXW-   n	Xh-   n
UR                  XV5        UR                  XZ5        UR                  XV5        UR                  X5        UR                  XZ5        UR                  X5        UR                  X5        UR                  X5        UR                  S5        UR	                  U5        UR                  XD4S5        UR                  SSS5        UR                  5         UR                  XD4U5        UR                  SSS5        UR                  5         g )Nr   r   c              3   B   >#    U  H  nUTR                   -  v   M     g 7fr    )rs   ).0dimrX   s     r#   	<genexpr>.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s#      :#8C d555#8s   r   )	r8   move_toline_toset_antialiasset_line_widthset_dashset_source_rgbstroke_preservestroke)rX   widgetr   lwdashx0y0whx1y1s   `          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                     g r     )rX   r   r   s      r#   r   FigureCanvasGTK4.on_draw_event  s    r&   c                 P    U R                  5       (       a  U R                  5         g g r    )is_drawabler   rc   s    r#   r   FigureCanvasGTK4.draw#  s     OO r&   c                 j   ^  T R                   S:w  a  g U 4S jn[        R                  " U5      T l         g )Nr   c                  N   >  TR                  5         STl        g! STl        f = f)Nr   F)r   r7   )r   rX   s    r#   	idle_draw-FigureCanvasGTK4.draw_idle.<locals>.idle_draw,  s(    '		%&" &'"s    	$)r7   r   idle_add)rX   r  s   ` r#   r   FigureCanvasGTK4.draw_idle(  s,    "	 "]]95r&   c                     [         R                  R                  5       nUR                  5       (       a)  UR	                  S5        UR                  5       (       a  M(  g g )NT)r   MainContextdefaultpending	iteration)rX   contexts     r#   flush_eventsFigureCanvasGTK4.flush_events4  s@    ""**,ood# oor&   )r7   r8   r    )#__name__
__module____qualname____firstlineno__required_interactive_frameworksupports_blitr   classpropertymanager_classr4   rd   rj   r|   rN   r@   rA   rD   rE   rG   rH   rI   r<   r   r   r   r=   r   r:   r   r   r   r   r  __static_attributes____classcell__)r^   s   @r#   r   r   #   s    %+"M&&'DEM-1^3O,H(H&"
#@

6$ $r&   r   c                        \ rS rSrS rS rSrg)NavigationToolbar2GTK4i;  c                    [         R                  R                  U 5        U R                  S5        0 U l        U R
                   GHA  u  p#pEUc&  U R                  [         R                  " 5       5        M0  [         R                  R                  [        R                  R                  [        [        R                  " SU S35      5      5      5      nUS;   a  [         R                   " 5       O[         R"                  " 5       =U R                  U'   nUR%                  U5        UR                  S5        UR                  S5        UR'                  S[)        X5      5      Ul        UR-                  U5        U R                  U5        GMD     [         R.                  " 5       nUR1                  S5        UR3                  S	5        U R                  U5        [         R.                  " 5       U l        U R4                  R7                  [         R8                  R:                  5        U R                  U R4                  5        [<        R                  " X5        g )
Ntoolbarimages-symbolic.svg)zoompanflatimage-buttonclicked   <small> 
 </small>T)r   Boxr4   add_css_class_gtk_ids	toolitemsappend	SeparatorImagenew_from_giconr   Iconnew_for_stringstrr   _get_data_pathToggleButtonButton	set_childr;   getattr_signal_handlerset_tooltip_textLabel
set_markupr5   messageset_justifyJustificationr   r   )	rX   canvastexttooltip_text
image_filecallbackimagebuttonlabels	            r#   r4   NavigationToolbar2GTK4.__init__<  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                   ^  [         R                  " ST R                  R                  5       [         R                  R
                  SS9nUT l        [         R                  " 5       nUR                  S5        UR                  S5        UR                  U5        UR                  U5        / nS n[        T R                  R                  5       R                  5       5       H  u  nu  px[         R                  " 5       nUR                  U5        U H  n	UR                  SU	 35        M     UR                  U5        UR                  U5        T R                  R!                  5       U;   d  M  UnM     XE   /US U QXES-   S  QnUR#                  SS	XD5        UR%                  SUS
   5        UR'                  [(        R*                  R-                  [.        R0                  R3                  [4        R6                  S   5      5      5        UR9                  T R                  R;                  5       5        [<        R>                  " UR@                  S5      U 4S j5       n
URC                  5         T RD                  $ )NzSave the figureT)titletransient_foractionmodalz	All files*z*.r   formatzFile formatr   savefig.directoryresponsec           
        > U R                  5       nU R                  S5      nTR                  R                  5       U   S   nU R	                  5         S Tl        U[        R                  R                  :w  a  g [        R                  S   (       a1  UR                  5       nUR                  5       [        R                  S'    TR                  R                  R                  UR                  5       US9  g ! [         a  n[        R                   " TR                  R#                  5       [        R$                  R&                  [        R(                  R*                  S[-        U5      S9nUR/                  5          S nAg S nAff = f)NrV  r   rW  )rV  T)rR  message_typer   rT  rH  )get_file
get_choicerG  get_supported_filetypes_groupedrd   _save_dialogr   ResponseTypeACCEPTmplrcParams
get_parentget_pathr(   savefig	ExceptionMessageDialogget_rootMessageTypeERRORButtonsTypeOKr:  show)dialogrX  filefmtparentemsgrX   s          r#   on_response7NavigationToolbar2GTK4.save_figure.<locals>.on_response  s   ??$D##H-C++==?DQGCNN $D3++222||/0*4:OO4E01""**4==?3*G ''"&++"6"6"8!$!6!6OO..dQ	!
 

s   2C6 6
F A9E>>F)#r   FileChooserNativerG  rh  FileChooserActionSAVEr^  
FileFilterset_nameadd_pattern
add_filter
set_filter	enumerater]  itemsr4  get_default_filetype
add_choice
set_choiceset_current_folderr   Filenew_for_pathospath
expanduserra  rb  set_current_nameget_default_filename	functoolspartialr;   rm  UNKNOWN_SAVED_STATUS)rX   r   rn  ffformatsdefault_formatir   fmtsrp  rt  s   `          r#   save_figure"NavigationToolbar2GTK4.save_figuref  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&   )r2  r^  rD  N)r  r  r  r  r4   r  r"  r  r&   r#   r%  r%  ;  s    (6T=)r&   r%  c                   N    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rSrg)ToolbarGTK4i  r)  c                    [         R                  " X5        [        R                  R                  U 5        U R	                  S[        R
                  R                  5        [        R                  " 5       U l        U R                  U R                  5        0 U l	        0 U l
        [        R                  " 5       nUR                  S5        UR                  S5        U R                  U5        [        R                  " 5       U l        U R                  R                  [        R                   R"                  5        U R                  U R                  5        g )Norientationr/  T)r   r4   r   r0  set_propertyOrientation
HORIZONTAL	_tool_boxr4  _groups
_toolitemsrB  rC  r5   _messagerE  rF  r   )rX   toolmanagerrN  s      r#   r4   ToolbarGTK4.__init__  s    ""45-)C)CD DNN# 		C	E$E		!!#"3"3"9"9:DMM"r&   c                 n   U(       a  [         R                  " 5       nO[         R                  " 5       nUR                  U5        UR	                  S5        Ub^  [         R
                  R                  [        R                  R                  U5      5      nUR                  U5        UR	                  S5        Uc  SnU R                  XrU5        UR                  SU R                  U5      n	UR                  U5        U R                  R!                  U/ 5        U R                  U   R#                  Xy45        g )Nr,  r-  r2   r.  )r   r<  r=  	set_labelr1  r6  r7  r   r8  r9  r>  _add_buttonr;   
_call_toolrA  r  
setdefaultr4  )
rX   r   grouppositionrJ  descriptiontogglerM  rL  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                     S /nU R                   U   R                  5       nUb&  UR                  U5        UR                  5       nUb  M&  X2   $ r    )r  get_first_childr4  get_next_sibling)rX   r  r  childrenchilds        r#   _find_child_at_position#ToolbarGTK4._find_child_at_position  sS    6U#335OOE"**,E  !!r&   c                 :   X R                   ;  a_  U R                   (       a  U R                  5         [        R                  " 5       nU R                  R                  U5        X@R                   U'   U R                   U   R                  XR                  X#5      5        g r    )r  _add_separatorr   r0  r  r4  insert_child_afterr  )rX   rM  r  r  	group_boxs        r#   r  ToolbarGTK4._add_button  sn    $||##%	INN!!),"+LLU..00A	Cr&   c                 &    U R                  U5        g r    )trigger_tool)rX   btnr   s      r#   r  ToolbarGTK4._call_tool  s    $r&   c                     XR                   ;  a  g U R                   U    H8  u  p4UR                  U5        UR                  U5        UR                  U5        M:     g r    )r  handler_block
set_activehandler_unblock)rX   r   toggledtoolitemr  s        r#   toggle_toolitemToolbarGTK4.toggle_toolitem  sO    & $ 5H""6*($$V, !6r&   c                     U R                   R                  U/ 5       HJ  u  p#U R                   H5  nX R                  U   ;   d  M  U R                  U   R                  U5        M7     ML     g r    )r  popr  remove)rX   r   r  _signalr  s        r#   remove_toolitemToolbarGTK4.remove_toolitem  sT    !%!4!4T2!>H||E22LL'..x8 & "?r&   c                     [         R                  " 5       nUR                  S[         R                  R                  5        U R
                  R                  U5        g )Nr  )r   r5  r  r  rM   r  r4  )rX   seps     r#   r  ToolbarGTK4._add_separator  s9    mmo(@(@Ac"r&   c                 :    U R                   R                  U5        g r    )r  r  )rX   ss     r#   set_messageToolbarGTK4.set_message  s    "r&   )r  r  r  r  N)r  r  r  r  _icon_extensionr4   r  r  r  r  r  r  r  r  r"  r  r&   r#   r  r    s5    %O#270"C -9#
#r&   r  c                       \ rS rSrS rSrg)SaveFigureGTK4i  c                 J    [         R                  U R                  5       5        g r    )r%  r  "_make_classic_style_pseudo_toolbarr   s      r#   triggerSaveFigureGTK4.trigger  s    **335	7r&   r  Nr  r  r  r  r  r"  r  r&   r#   r  r    s    7r&   r  c                   &    \ rS rSrS rS rS rSrg)HelpGTK4i  c                 .   SSSSS.nUR                  S5      nUSS  Vs/ s H  nS	U-   S
-   PM     nnUS   nX;   a  X!   nO;[        U5      S:  a  UR                  5       nOUR                  5       (       a  US/-  nSR	                  U5      U-   $ s  snf )zj
Convert Matplotlib key presses to GTK+ accelerator identifiers.

Related to `FigureCanvasGTK4._get_key`.
	BackSpace	Page_DownPage_UpScroll_Lock)	backspacepagedownpageupscroll_lockr   Nr2   <>r   z<shift> )splitlen
capitalizeisupperr   )rX   rZ   specialpartsr   r   s         r#   _normalize_shortcutHelpGTK4._normalize_shortcut  s     %#(	
 		#+0":6:Cc	C:6Bi>,CX\.."C[[]]YKDwwt}s"" 7s   Bc                 F    SU;  =(       a    UR                  S5      (       + $ )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)rX   rZ   s     r#   _is_valid_shortcutHelpGTK4._is_valid_shortcut)  s      S G)G%GGr&   c           	        ^  [         R                  " 5       n[        T R                  R                  R                  5       5       H  u  p4UR                  (       d  M  [         R                  " 5       nUR                  U5        UR                  5       nUb&  UR                  S5        UR                  5       nUb  M&  [         R                  " SR                  U 4S jT R                  R                  U5       5       5      UR                  UR                  S9nUR                  U5        M     [         R                   " SST R"                  R$                  R'                  5       S9nUR)                  U5        UR+                  5         g )NF c              3   v   >#    U  H.  nTR                  U5      (       d  M  TR                  U5      v   M0     g 7fr    )r  r  )r   rZ   rX   s     r#   r   #HelpGTK4.trigger.<locals>.<genexpr>F  s6      %5E..s3 2D,,S11Es   99)acceleratorrQ  subtitleHelpT)rQ  rT  rR  )r   ShortcutsSectionsortedr  toolsr  r  ShortcutsGroupr4  r  set_visibler  ShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurerG  rh  r>  rm  )	rX   r   sectionr   toolr  r  shortcutwindows	   `        r#   r  HelpGTK4.trigger2  s;   &&( !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&   r#   r  r    s    #4H"r&   r  c                       \ rS rSrS rSrg)ToolCopyToClipboardGTK4iW  c                    [         R                  " 5        nU R                  R                  U5        U R                  R	                  5       u  pE[
        R                  R                  UR                  5       [
        R                  R                  SSXEUS-  5      nS S S 5        U R                  R                  5       nUR                  W5        g ! , (       d  f       N:= f)NT   r0   )ioBytesIOrG  
print_rgbaget_width_heightr   Pixbufnew_from_data	getbuffer
ColorspaceRGBget_clipboardset)rX   r   r   fr  r  pb	clipboards           r#   r  ToolCopyToClipboardGTK4.triggerY  s    ZZ\QKK""1%;;//1DA!!//090D0D0H0H$0111>B  KK--/	b \s   BC
Cr  Nr  r  r&   r#   r  r  W  s    r&   r  c                       \ rS rSr\r\rSrg)r!   ik  r  N)	r  r  r  r  r%  _toolbar2_classr  _toolmanager_toolbar_classr"  r  r&   r#   r!   r!   k  s    ,O!,r&   r!   c                       \ rS rSr\r\rSrg)_BackendGTK4ip  r  N)	r  r  r  r  r   FigureCanvasr!   FigureManagerr"  r  r&   r#   r!  r!  p  s    #L%Mr&   r!  )8r  r  r  
matplotlibra  r   r   r   matplotlib.backend_basesr   r   r   r	   r
   r   r   giImportErrorerrrequire_version
ValueErrorrr  gi.repositoryr   r   r   r   r   r  r   r   r   r   r   r   	TimerGTK4version_infor   DrawingArear   r0  r%  r  _register_tool_classSaveFigureBaser  ToolHelpBaser  ToolCopyToClipboardBaser  ConfigureSubplotsGTKRubberbandGTKToolbarr!   exportr!  r  r&   r#   <module>r7     s    	 	  1 1B B BF  ue$ 9 8  
 ??j0 U$' U$p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
-) -
 &; & &I  F
;
<#EF    a.a s.   F F0 F-	F((F-0G6	F??G