
    rbi*\                        d dl Z d dlZd dlZd dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZ 	 d dlmZ n# e$ rZ ed          edZ[ww xY w	  edd           n# e$ rZ ee          edZ[ww xY wd dlZd dlmZmZmZmZmZ d	d
lmZ d	dlmZm Z m!Z!m"Z"m#Z$ ej%        dk    Z& ej'        ddd           du Z( G d de ej)                  Z* G d de"ej+                  Z, G d de	ej+                  Z- ej.        e*           G d dej/                              Z0 ej.        e*           G d dej1                              Z2 ej.        e*           G d dej3                              Z4 ej.        e*ej5                    ej.        e*ej6                   e-Z7 G d de!          Z8ej9         G d de                      Z:dS )    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TimerGTK)   /   r         c                        e Zd ZdZdZ ej        d           Zd fd	Zd Z	d Z
ddZd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z  xZ!S )FigureCanvasGTK4gtk4Fc                     t           S N)FigureManagerGTK4)clss    p/var/www/html/mdtn/previsions/meteo_cartes/venv/lib/python3.11/site-packages/matplotlib/backends/backend_gtk4.py<lambda>zFigureCanvasGTK4.<lambda>(   s    3D     Nc                    t                                          |           |                     d           |                     d           d| _        d | _        |                     | j                   |                     d| j	                   t          r|                     d| j                   n|                     d| j                   t          j                    }|                    d           |                    d| j                   |                    d| j                   |                     |           t          j                    }|                    d	| j                   |                    d
| j                   |                     |           t          j                    }|                    d| j                   |                    d| j                   |                    d| j                   |                     |           t          j                            t          j        j                  }|                    d| j                   |                     |           |                     d           t          j                     }d}t          j!        ddd          |"                    |d           n(|"                    |#                    d                     | $                                }|%                    |t          j&                   |'                    d           d S )N)figureTr   resizerealizeznotify::scale-factorpressedreleasedzkey-pressedzkey-releasedmotionenterleavescrollz/.matplotlib-canvas { background-color: white; }r   	   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_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.   r1   cssstyle	style_ctx	__class__s
            r%   r5   zFigureCanvasGTK4.__init__*   s   ''' $4?+++Xt0111 	RLLD$78888LL/1PQQQ ""i!8999j$";<<<E"""$&&M4#7888ND$:;;;C   *,,x!9:::w 7888w 7888F###*..*35 5x!2333F###4   oAQ1%%-ub))))u||G44555**,,	sC$KLLL/00000r'   c                 J    t          d|                                            d S )Nclose_event)r   _processr[   s    r%   destroyzFigureCanvasGTK4.destroy\   s$    =$''0022222r'   c                 T    |                      t          j        |                     d S r"   )set_cursor_from_namer   mpl_to_gtk_cursor_name)r[   cursors     r%   
set_cursorzFigureCanvasGTK4.set_cursor_   s'    !!,"Ef"M"MNNNNNr'   c                 R   |w|                                                                  }|                    |                                                                                                           \  }}}}n|\  }}|| j        z  }| j        j        j	        || j        z  z
  }||fS )a  
        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)r[   xysurfaceis_overxymasks          r%   _mpl_coordszFigureCanvasGTK4._mpl_coordsc   s     :oo''3355G")"="=  ""3355AACC#E #EGQ44 DAq''K#a$*A&AA!tr'   c                     t          d| g|                                 R ||                     |          t          r|                                nd d                                 dS )NrQ   )step	modifiersguiEventT)r
   r|   _mpl_modifiers_GOBJECT_GE_3_47get_current_eventrd   )r[   
controllerdxdys       r%   rQ   zFigureCanvasGTK4.scroll_eventy   sv    D	
#'#3#3#5#5	
 	
<>))*557GQZ11333T	
 	
 	
 (***tr'   c                 $   t          d| g|                     ||f          |                                R |                     |          t          r|                                nd d                                 |                                  d S )NrC   r   r   )r
   r|   get_current_buttonr   r   r   rd   
grab_focusr[   r   n_pressry   rz   s        r%   rC   z#FigureCanvasGTK4.button_press_event   s     $	
)-)9)91a&)A)A	
))++	
 	
 ))*557GQZ11333T		
 	
 	

 (***r'   c                     t          d| g|                     ||f          |                                R |                     |          t          r|                                nd d                                 d S )NrD   r   )r
   r|   r   r   r   r   rd   r   s        r%   rD   z%FigureCanvasGTK4.button_release_event   s    "D	
+/+;+;QF+C+C	
))++	
 	
 ))*557GQZ11333T		
 	
 	

 (*****r'   c           	          t          d| |                     |||          g|                                 R dt          r|                                nd i                                 dS )NrG   r   Tr   _get_keyr|   r   r   rd   r[   r   keyvalkeycodestates        r%   rG   z FigureCanvasGTK4.key_press_event   sw    tT]]67E%J%J	
	
 	
 	
 8HQZ11333T	
 	
 (***tr'   c           	          t          d| |                     |||          g|                                 R dt          r|                                nd i                                 dS )NrH   r   Tr   r   s        r%   rH   z"FigureCanvasGTK4.key_release_event   sw    t}}VWe'L'L	
	
 	
 	
 8HQZ11333T	
 	
 (***tr'   c                     t          d| g|                     ||f          R |                     |          |                     |          t          r|                                nd d                                 d S )NrJ   )buttonsr   r   )r
   r|   _mpl_buttonsr   r   r   rd   r[   r   ry   rz   s       r%   rJ   z$FigureCanvasGTK4.motion_notify_event   s    !4	
*.*:*:Aq6*B*B	
 	
%%j11))*557GQZ11333T		
 	
 	

 (*****r'   c                     t          d| g|                     ||f          R |                                 t          r|                                nd d                                 d S )Nfigure_enter_eventr   r	   r|   r   r   r   rd   r   s       r%   rK   z#FigureCanvasGTK4.enter_notify_event   sv     $	
)-)9)91a&)A)A	
 	
))++7GQZ11333T	
 	
 	
 (*****r'   c                     t          d| g|                                 R |                                 t          r|                                nd d                                 d S )Nfigure_leave_eventr   r   )r[   r   s     r%   rL   z#FigureCanvasGTK4.leave_notify_event   sp     $	
)-)9)9););	
 	
))++7GQZ11333T	
 	
 	
 (*****r'   c                     |                                   | j        j        }|| j        z  |z  }|| j        z  |z  }| j                            ||d           t          d|                                            |                                  d S )NF)forwardr=   )r@   r)   dpirs   set_size_inchesr   rd   	draw_idle)r[   areawidthru   r   winchhinchs          r%   r=   zFigureCanvasGTK4.resize_event   s    '')))ko//#50036##E5%#@@@ND))22444r'   c                 (   |                                                                  }|                    |                                                                                                           \  }}}t          j        t          j	        j
        ft          j        t          j	        j        ft          j        t          j	        j        ft          j        t          j	        j        ft          j        t          j	        j        fg}fd|D             S )Nc                 $    h | ]\  }}|z  
|S  r   .0namer{   event_states      r%   	<setcomp>z0FigureCanvasGTK4._mpl_buttons.<locals>.<setcomp>   '    GGGtK$4FGGGGr'   )rm   rn   ro   rp   rq   rr   r   LEFTr   ModifierTypeBUTTON1_MASKMIDDLEBUTTON2_MASKRIGHTBUTTON3_MASKBACKBUTTON4_MASKFORWARDBUTTON5_MASKr[   r   rw   rx   ry   rz   	mod_tabler   s          @r%   r   zFigureCanvasGTK4._mpl_buttons   s     //##//11%,%@%@//11==??&A &A"A{ s/<=!1!>? 0 =>s/<= #"2"?@
	 HGGGyGGGGr'   c                    |w|                                                                  }|                    |                                                                                                           \  }}}n|                                dt          j        j	        fdt          j        j
        fdt          j        j        fdt          j        j        fg}fd|D             S )Nctrlaltshiftr4   c                 $    g | ]\  }}|z  
|S r   r   r   s      r%   
<listcomp>z3FigureCanvasGTK4._mpl_modifiers.<locals>.<listcomp>   r   r'   )rm   rn   ro   rp   rq   rr   get_current_event_stater   r   CONTROL_MASKALT_MASK
SHIFT_MASK
SUPER_MASKr   s          @r%   r   zFigureCanvasGTK4._mpl_modifiers   s    oo''3355G)0)D)D  ""3355AACC*E *E&GQ;; %<<>>KS%23C$-.c&12c&12	
	 HGGGyGGGGr'   c                    t          t          j        |                    t          j        t          j        |                    dt          j        j        dfdt          j        j        dfdt          j        j	        dfdt          j        j
        dfg}fd|D             }d                    g |          S )Nr   controlr   r   r4   c                 f    g | ]-\  }}}|k    r!|z  r|d k    r                                 +|.S )r   )isprintable)r   modr{   mod_keyr]   r   unikeys       r%   r   z-FigureCanvasGTK4._get_key.<locals>.<listcomp>   sT     D D D&Cw354<F,>,>,@,@ 'r'   +)chrr   keyval_to_unicoder   _unikey_or_keysym_to_mplkeykeyval_namer   r   r   r   r   join)r[   r   r   r   r   modsr]   r   s      `  @@r%   r   zFigureCanvasGTK4._get_key   s    S*62233/OF##% % S%2I>C$-u5c&17;c&17;	
	D D D D D D*3D D D xx$%%%r'   c                     |                                                                  }|                    d| j                   |                                  d S )Nznotify::scale)rm   rn   r<   r@   )r[   objrw   s      r%   r?   zFigureCanvasGTK4._realize_event   sL    //##//11)HIII'')))))r'   c                    t           r9|                                                                                                 }n|                                 }|J |                     |          r|                                  d S d S r"   )r>   rm   rn   	get_scaleget_scale_factor_set_device_pixel_ratiodraw)r[   argskwargsscales       r%   r@   z+FigureCanvasGTK4._update_device_pixel_ratio   s      	,OO%%1133==??EE))++E   ''.. 	IIKKKKK	 	r'   c                 <    || _         |                                  d S r"   )r9   
queue_draw)r[   rects     r%   _draw_rubberbandz!FigureCanvasGTK4._draw_rubberband  s      $r'   c                 ^    |                      | |           |                     | |           d S r"   )on_draw_event
_post_draw)r[   drawing_areactxr   ru   s        r%   r;   zFigureCanvasGTK4._draw_func
  s2    4%%%c"""""r'   c                 &     j         d S d}d} fd j         D             \  }}}}||z   }	||z   }
|                    ||           |                    ||
           |                    ||           |                    |	|           |                    ||
           |                    |	|
           |                    |	|           |                    |	|
           |                    d           |                    |           |                    ||fd           |                    ddd           |                                 |                    ||f|           |                    ddd           |                                 d S )Nr   r   c              3   ,   K   | ]}|j         z  V  d S r"   )rs   )r   dimr[   s     r%   	<genexpr>z.FigureCanvasGTK4._post_draw.<locals>.<genexpr>  s?       : : d55 : : : : : :r'   r   )	r9   move_toline_toset_antialiasset_line_widthset_dashset_source_rgbstroke_preservestroke)r[   widgetr   lwdashx0y0whx1y1s   `          r%   r   zFigureCanvasGTK4._post_draw  s    (F: : : :#'#8: : :B1!V!V 	BBBBBBBB!2dD\1%%%1a###dD\4(((1a###

r'   c                     d S r"   r   )r[   r   r   s      r%   r   zFigureCanvasGTK4.on_draw_event.  s    r'   c                 Z    |                                  r|                                  d S d S r"   )is_drawabler   re   s    r%   r   zFigureCanvasGTK4.draw2  s6     	OO	 	r'   c                 ^      j         dk    rd S  fd}t          j        |           _         d S )Nr   c                  Z    	                                   d_        n# d_        w xY wdS )Nr   F)r   r8   )r   r[   s    r%   	idle_drawz-FigureCanvasGTK4.draw_idle.<locals>.idle_draw;  s9    '		%&""Q"&&&&5s    	()r8   r   idle_add)r[   r  s   ` r%   r   zFigureCanvasGTK4.draw_idle7  sI    ""F	 	 	 	 	 "]955r'   c                     t           j                                        }|                                r+|                    d           |                                )d S d S )NT)r   MainContextdefaultpending	iteration)r[   contexts     r%   flush_eventszFigureCanvasGTK4.flush_eventsC  sd    "**,,oo 	$d### oo 	$ 	$ 	$ 	$ 	$r'   r"   )"__name__
__module____qualname__required_interactive_frameworksupports_blitr   classpropertymanager_classr5   rf   rk   r|   rQ   rC   rD   rG   rH   rJ   rK   rL   r=   r   r   r   r?   r@   r   r;   r   r   r   r   r  __classcell__)ra   s   @r%   r   r   %   s       %+"M&D&'D'DEEM01 01 01 01 01 01d3 3 3O O O   ,                  H H H(H H H H& & &"* * *
	 	 	  
# # #  @    

6 
6 
6$ $ $ $ $ $ $r'   r   c                       e Zd Zd Zd ZdS )NavigationToolbar2GTK4c                    t           j                            |            |                     d           i | _        | j        D ]V\  }}}}|'|                     t          j                               1t           j        	                    t          j                            t          t          j        d| d                                        }|dv rt          j                    nt          j                    x| j        |<   }|                    |           |                    d           |                    d           |                    dt)          | |                    |_        |                    |           |                     |           Xt          j                    }|                    d           |                    d	           |                     |           t          j                    | _        | j                            t           j        j                   |                     | j                   t=          j        | |           d S )
Ntoolbarimages-symbolic.svg)zoompanflatimage-buttonclicked   <small> 
 </small>T)r   Boxr5   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_markupr6   messageset_justifyJustificationr   r   )	r[   canvastexttooltip_text
image_filecallbackimagebuttonlabels	            r%   r5   zNavigationToolbar2GTK4.__init__K  s2   9%%%8< 	  	 4D,
H|CMOO,,,I,,'',X0:-I-I-IK K L LM MN NE
 '//&A&A """
DM$& U###  (((  000%+^^7422&4 &4F"##L111KK 	C	E 	E 	E$Ey{{  !2!8999DL!!!'f55555r'   c                 <    t          j        d j                                        t           j        j        d          }| _        t          j                    }|                    d           |	                    d           |
                    |           |                    |           g }d }t           j                                                                                  D ]\  }\  }}t          j                    }|                    |           |D ]}	|	                    d|	            |
                    |           |                    |            j                                        |v r|}||         g|d |         ||dz   d          }|                    dd	||           |                    d|d
                    |                    t(          j                            t.          j                            t4          j        d                                        |                     j                                                   t=          j        |j         d           fd            }
|!                                  j"        S )NzSave the figureT)titletransient_foractionmodalz	All files*z*.r   formatzFile formatr   savefig.directoryresponsec           
         |                                  }|                     d          }j                                        |         d         }|                                  d _        |t          j        j        k    rd S t          j
        d         r5|                                }|                                t          j
        d<   	 j        j                            |                                |           d S # t          $ rz}t          j        j                                        t          j        j        t          j        j        dt-          |                    }|                                 Y d }~d S d }~ww xY w)NrF  r   rG  )rF  T)rB  message_typer   rD  r9  )get_file
get_choicer8  get_supported_filetypes_groupedrf   _save_dialogr   ResponseTypeACCEPTmplrcParams
get_parentget_pathr)   savefig	ExceptionMessageDialogget_rootMessageTypeERRORButtonsTypeOKr+  show)dialogrH  filefmtparentemsgr[   s          r%   on_responsez7NavigationToolbar2GTK4.save_figure.<locals>.on_response  sU   ??$$D##H--C+==??DQGCNN $D3+222|/0 F**4:OO4E4E01"**4==??3*GGGGG   '"&+"6"6"8"8!$!6O.dQ	! ! !
 








s   
3C? ?
F	A/E>>F)#r   FileChooserNativer8  rX  FileChooserActionSAVErN  
FileFilterset_nameadd_pattern
add_filter
set_filter	enumeraterM  itemsr%  get_default_filetype
add_choice
set_choiceset_current_folderr   Filenew_for_pathospath
expanduserrQ  rR  set_current_nameget_default_filename	functoolspartialr<   r]  UNKNOWN_SAVED_STATUS)r[   r   r^  ffformatsdefault_formatir   fmtsr`  rd  s   `          r%   save_figurez"NavigationToolbar2GTK4.save_figureu  s   &#+..00(-	  
 #^
K   
s""(;;==CCEE G  G 		# 		#OA|d!!BKK + +zCzz****b!!!NN4   {//11T99!" >* 0W_n_-E 0N1,--.0(M7GDDD(GAJ///!!#("7"7Gs|,?@AA#C #C 	D 	D 	D @ @ B BCCC		6>:	6	6	 	 	 	 
7	6	, 	((r'   N)r  r  r  r5   r  r   r'   r%   r  r  J  s3        (6 (6 (6T=) =) =) =) =)r'   r  c                   H    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )ToolbarGTK4r  c                    t          j        | |           t          j                            |            |                     dt          j        j                   t          j                    | _        |                     | j                   i | _	        i | _
        t          j                    }|                    d           |                    d           |                     |           t          j                    | _        | j                            t          j        j                   |                     | j                   d S )Norientationr   T)r   r5   r   r!  set_propertyOrientation
HORIZONTAL	_tool_boxr%  _groups
_toolitemsr3  r4  r6   _messager6  r7  r   )r[   toolmanagerr?  s      r%   r5   zToolbarGTK4.__init__  s   "4555-)CDDD DN### 	C	E 	E 	E$E	!!#"3"9:::DM"""""r'   c                    |rt          j                    }nt          j                    }|                    |           |                    d           |ft           j                            t          j        	                    |                    }|
                    |           |                    d           |d}|                     |||           |                    d| j        |          }	|                    |           | j                            |g            | j        |                             ||	f           d S )Nr  r  r3   r  )r   r-  r.  	set_labelr"  r'  r(  r   r)  r*  r/  _add_buttonr<   
_call_toolr2  r  
setdefaultr%  )
r[   r   grouppositionr;  descriptiontoggler>  r=  signals
             r%   add_toolitemzToolbarGTK4.add_toolitem  s1    	"%''FFZ\\FV$$$!I,,''
335 5EU###  000H111	4?DAA,,,""4,,,$$ff%566666r'   c                     d g}| j         |                                         }|+|                    |           |                                }|+||         S r"   )r  get_first_childr%  get_next_sibling)r[   r  r  childrenchilds        r%   _find_child_at_positionz#ToolbarGTK4._find_child_at_position  s_    6U#3355OOE"""**,,E  !!r'   c                 &   || j         vrR| j         r|                                  t          j                    }| j                            |           || j         |<   | j         |                             ||                     ||                     d S r"   )r  _add_separatorr   r!  r  r%  insert_child_afterr  )r[   r>  r  r  	group_boxs        r%   r  zToolbarGTK4._add_button  s    $$| &##%%%		IN!!),,,"+DLU..D00AA	C 	C 	C 	C 	Cr'   c                 0    |                      |           d S r"   )trigger_tool)r[   btnr   s      r%   r  zToolbarGTK4._call_tool  s    $r'   c                     || j         vrd S | j         |         D ]D\  }}|                    |           |                    |           |                    |           Ed S r"   )r  handler_block
set_activehandler_unblock)r[   r   toggledtoolitemr  s        r%   toggle_toolitemzToolbarGTK4.toggle_toolitem  sx    t&&F $ 5 	- 	-Hf""6***((($$V,,,,	- 	-r'   c                     | j                             |g           D ]>\  }}| j        D ]1}|| j        |         v r | j        |                             |           2?d S r"   )r  popr  remove)r[   r   r  _signalr  s        r%   remove_toolitemzToolbarGTK4.remove_toolitem  sv    !%!4!4T2!>!> 	9 	9Hg 9 9t|E222L'..x8889	9 	9r'   c                     t          j                    }|                    dt           j        j                   | j                            |           d S )Nr  )r   r&  r  r  rP   r  r%  )r[   seps     r%   r  zToolbarGTK4._add_separator  sD    moo(@AAAc"""""r'   c                 :    | j                             |           d S r"   )r  r  )r[   ss     r%   set_messagezToolbarGTK4.set_message  s    """""r'   N)r  r  r  _icon_extensionr5   r  r  r  r  r  r  r  r  r   r'   r%   r  r    s        %O# # #27 7 70" " "C C C     - - -9 9 9# # #
# # # # #r'   r  c                       e Zd Zd ZdS )SaveFigureGTK4c                 ^    t                               |                                            d S r"   )r  r  "_make_classic_style_pseudo_toolbar)r[   r   r   s      r%   triggerzSaveFigureGTK4.trigger  s3    **3355	7 	7 	7 	7 	7r'   Nr  r  r  r  r   r'   r%   r  r    s#        7 7 7 7 7r'   r  c                        e Zd Zd Zd Zd ZdS )HelpGTK4c                 @   ddddd}|                     d          }d |dd	         D             }|d	         }||v r	||         }nBt          |          d
k    r|                                }n|                                r|dgz  }d                    |          |z   S )z
        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   c                     g | ]
}d |z   dz   S )<>r   )r   r   s     r%   r   z0HelpGTK4._normalize_shortcut.<locals>.<listcomp>,  s     666Cc	C666r'   Nr3   r   z<shift> )splitlen
capitalizeisupperr   )r[   r]   specialpartsr   s        r%   _normalize_shortcutzHelpGTK4._normalize_shortcut  s     %#(	
 
 		#665":666Bi'>>#,CCXX\\..""CC[[]] 	 YKDwwt}}s""r'   c                 6    d|vo|                     d           S )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)r[   r]   s     r%   _is_valid_shortcutzHelpGTK4._is_valid_shortcut8  s#     S G)G)G%GGr'   c           	          t          j                    }t           j        j                                                  D ]\  }}|j        st          j                    }|                    |           |	                                }|+|
                    d           |                                }|+t          j        d                     fd j                            |          D                       |j        |j                  }|                    |           t          j        dd j        j                                                  }|                    |           |                                 d S )NF c              3   l   K   | ].}                     |                              |          V  /d S r"   )r  r  )r   r]   r[   s     r%   r   z#HelpGTK4.trigger.<locals>.<genexpr>U  sY       %5 %5..s33%5,,S11%5 %5 %5 %5 %5 %5r'   )acceleratorrA  subtitleHelpT)rA  rD  rB  )r   ShortcutsSectionsortedr  toolsrn  r  ShortcutsGroupr%  r  set_visibler  ShortcutsShortcutr   get_tool_keymapr   ShortcutsWindow_figurer8  rX  r/  r]  )	r[   r   sectionr   toolr  r  shortcutwindows	   `        r%   r  zHelpGTK4.triggerA  s   &(( !1!7!=!=!?!?@@ 	# 	#JD$#  &((ENN5!!!))++E#!!%(((..00 # ,HH %5 %5 %5 %5#/??EE%5 %5 %5 5 5 i)+ + +H LL""""$,-6688: : : 	!!!r'   N)r  r  r  r  r  r  r   r'   r%   r  r    sD        # # #4H H H" " " " "r'   r  c                       e Zd Zd ZdS )ToolCopyToClipboardGTK4c                    t          j                    5 }| j                            |           | j                                        \  }}t
          j                            |                                t
          j	        j
        dd|||dz            }d d d            n# 1 swxY w Y   | j                                        }|                    |           d S )NT   r   )ioBytesIOr8  
print_rgbaget_width_heightr   Pixbufnew_from_data	getbuffer
ColorspaceRGBget_clipboardset)r[   r   r   fr   r   pb	clipboards           r%   r  zToolCopyToClipboardGTK4.triggerh  s    Z\\ 	>QK""1%%%;//11DAq!//090D0H$011a1> >B	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> K--//	bs   B B  B$'B$Nr  r   r'   r%   r  r  f  s#            r'   r  c                       e Zd ZeZeZdS )r#   N)r  r  r  r  _toolbar2_classr  _toolmanager_toolbar_classr   r'   r%   r#   r#   z  s        ,O!,r'   r#   c                       e Zd ZeZeZdS )_BackendGTK4N)r  r  r  r   FigureCanvasr#   FigureManagerr   r'   r%   r  r    s        #L%MMMr'   r  );rz  r  ru  
matplotlibrQ  r   r   r   matplotlib.backend_basesr   r   r   r	   r
   r   r   gir   gi_require_versionImportErrorerr
ValueErrorrb  gi.repositoryr   r   r   r   r   r  r   r   r   r   r   r   	TimerGTK4version_infor   rT   r>   DrawingArear   r!  r  r  _register_tool_classSaveFigureBaser  ToolHelpBaser  ToolCopyToClipboardBaser  ConfigureSubplotsGTKRubberbandGTKToolbarr#   exportr  r   r'   r%   <module>r     sL       				 				     1 1 1 1 1 1 1 1 1 1B B B B B B B B B B B B B B B B B BF8888888 F F F
+;
<
<#EF  ue$$$$       +a..a 
 
			 8 8 8 8 8 8 8 8 8 8 8 8 8 8                   
 ?j0  s B**d2b$ b$ b$ b$ b$' b$ b$ b$J	h) h) h) h) h)3SW h) h) h)V]# ]# ]# ]# ]##SW ]# ]# ]#@ $#$4557 7 7 7 7]1 7 7 657 $#$455F F F F F}) F F 65FR $#$455	 	 	 	 	mC 	 	 65	 # "l79 9 9 " "l02 2 2
- - - - -) - - -
 & & & & &; & & & & &s,   5 AAAA A2!A--A2