+
     ]i
,  c                   s   R t ^ RIt^ RIt^ RIt^ RIHtHtHt ^ RIH	t	 ^ RI
HtHtHtHtHt ^ RIHt ^ RIt^ RIHtHtHtHt  ]P0                  ! R4       ]P6                  ! ]4      tRsR	 tR
 t R t! ! R R]4      t" ! R R]4      t# ! R R]4      t$ ! R R]4      t% ! R R]PL                  4      t' ! R R]PP                  4      t) ! R R]4      t*R#   ] d   t]! R4      ]hRtAii ; i)z)
Common code for GTK3 and GTK4 backends.
N)_apibackend_toolscbook)Gcf)_BackendFigureCanvasBaseFigureManagerBaseNavigationToolbar2	TimerBase)Cursors)GdkGioGLibGtkZcairoz Gtk-based backends require cairoc                 sf    V P                  4        F  pVP                  4        K  	  R V n        RsR# )TN)Zget_windowsZclose_created_by_matplotlib_application)appZwin   & G/usr/lib64/python3.14/site-packages/matplotlib/backends/_backend_gtk.py_shutdown_applicationr      s-      		 ! "&CL    c                  s   \         f   \        P                  P                  4       p V e   \	        V RR4      '       d   \
        P                  P                  4       '       g   \        R4      h\        P                  P                  R\        P                  P                  4      s \         P                  RR 4       \         P                  R\        4       \         P                  4        \         P"                  ! 4        \         # V s \         # )Nr   FzInvalid DISPLAY variablezorg.matplotlib.Matplotlib3Zactivatec                  s    R # N )argskwargss   *,r   <lambda>Z%_create_application.<locals>.<lambda>;   s    Tr   Zshutdown)r   r   ZApplicationZget_defaultgetattrmplZ_c_internal_utilsZdisplay_is_validZRuntimeErrorr   ZnewZApplicationFlagsZ
NON_UNIQUEconnectr   Zregisterr   Z_setup_new_guiapp)r   s    r   _create_applicationr   -   s     oo))+;'#'?GG ((99;;"#=>>??../K/2/C/C/N/NPL   -IJ  -BC!!###%  Lr   c                 s   \         P                  ! \        P                  R \        P                  R\        P
                  R\        P                  R\        P                  R\        P                  R\        P                  R/V R7      # )ZmoveZpointerdefaultZ	crosshairZwaitz	ew-resizez	ns-resize)Zcursor)
r    Zcheck_getitemr	   ZMOVEZHANDZPOINTERZSELECT_REGIONZWAITZRESIZE_HORIZONTALZRESIZE_VERTICAL)Z
mpl_cursor   &r   mpl_to_gtk_cursor_namer    E   sd    fi{f!!;  r   c                   sT   a a ] tR t^Qt oRtV 3R ltR tR tR tV 3R lt	Rt
VtV ;t# )TimerGTKz0Subclass of `.TimerBase` using GTK timer events.c                s6   < R V n         \        SV `  ! V/ VB  R # r   )_timersuper__init__)selfr   r   	__class__s   &*,r   r$   ZTimerGTK.__init__T   s    $)&)r   c                s    V P                  4        \        P                  ! V P                  V P                  4      V n        R # r   )_timer_stopr   Ztimeout_addZ	_interval	_on_timerr"   r%   r   r   _timer_startZTimerGTK._timer_startX   s,     	&&t~~t~~Fr   c                st    V P                   e*   \        P                  ! V P                   4       R V n         R # R # r   )r"   r   Zsource_remover)   r   r   r'   ZTimerGTK._timer_stop^   s*    ;;"t{{+DK #r   c                sf    V P                   e#   V P                  4        V P                  4        R # R # r   )r"   r'   r*   r)   r   r   _timer_set_intervalZTimerGTK._timer_set_intervalc   s)    ;;" #r   c                s~   < \         SV `  4        V P                  '       d   V P                  '       g   R # RV n        R# )TNF)r#   r(   Z	callbacksZ_singler"   )r%   r&   s   &r   r(   ZTimerGTK._on_timeri   s.     >>>$,,,DKr   )r"   )__name__
__module____qualname____firstlineno____doc__r$   r*   r'   r+   r(   __static_attributes____classdictcell____classcell__r&   __classdict__   @@r   r!   r!   Q   s'     :*G
 	 	r   r!   c                   s    ] tR t^ut]tRtR# )_FigureCanvasGTKr   N)r,   r-   r.   r/   r!   Z
_timer_clsr1   r   r   r   r7   r7   u   s    Jr   r7   c                   sj   a a ] tR t^yt oRtV 3R ltR t]R 4       tR t	R t
R tR tR	 tR
tVtV ;t# )_FigureManagerGTKa  
Attributes
----------
canvas : `FigureCanvas`
    The FigureCanvas instance
num : int or str
    The Figure number
toolbar : Gtk.Toolbar or Gtk.Box
    The toolbar
vbox : Gtk.VBox
    The Gtk.VBox containing the canvas and toolbar
window : Gtk.Window
    The Gtk.Window
c                s  <a  \         P                  ! 4       ;S n        p\        4       p\         P                  ! 4       S n        VP                  S P
                  4       \        SS `!  W4       V^8X  dU   \        P                  R8X  d   RMRpS P
                  P                  \        \        P                  ! RV 24      4      4       \         P                  ! 4       S n        S P                   P#                  R\         P$                  P&                  4       V^8X  d   S P
                  P)                  S P                   4       S P                   P+                  4        S P,                  P+                  4        S P                   P/                  S P,                  RR^ 4       MQV^8X  dK   S P
                  P1                  S P                   4       S P                   P3                  S P,                  4       S P,                  P5                  4       w  rgS P6                  e   V^8X  dD   S P6                  P+                  4        S P                   P9                  S P6                  RR^ 4       MlV^8X  df   \         P:                  ! \         P<                  P>                  R	7      pVP1                  S P6                  4       S P                   PA                  V4       S P6                  PC                  4       w  rWzPD                  ,          pS P
                  PG                  Wg4       RS n$        S P
                  PK                  R
V 3R l4       S P
                  PK                  ^R^R/V,          V 3R l4       \L        PN                  ! 4       '       d5   S P
                  P+                  4        S P,                  PQ                  4        S P,                  PS                  4        R# )   Zwin32ZpngZsvgzimages/matplotlib.ZorientationTNF)Zvscrollbar_policydestroyc                  0   < \         P                  ! S4      # r   r   r:   r   r%      *r   r   ,_FigureManagerGTK.__init__.<locals>.<lambda>   s    S[[5Fr   Zdelete_eventzclose-requestc                  r;   r   r<   r=   r>   r   r   r?      s    #++d*;r   )*r   get_major_version_gtk_verr   ZWindowwindowZ
add_windowr#   r$   sysZplatformZset_icon_from_fileZstrr   Z_get_data_pathZBoxvboxZset_propertyZOrientationZVERTICALZaddshowcanvasZ
pack_startZ	set_childZprependZget_width_heighttoolbarZpack_endZScrolledWindowZ
PolicyTypeZNEVERZappendget_preferred_sizeheightset_default_size_destroyingr   r   Zis_interactiveZ	draw_idleZ
grab_focus)r%   rF   ZnumZgtk_verr   Zicon_extwZhZswmin_sizenat_sizer&   s   f&&        r   r$   Z_FigureManagerGTK.__init__   s   "%"7"7"99!#jjlt{{#%a< # 7uUHKK**E((+=hZ)HIJL GGI			}coo.F.FGa<KKOODII&IINNKKII  dD!<\KK!!$)),IIdkk* {{++-<<#!|!!#		""4<<qAA''#..:N:NOT\\*		  $!%!@!@!BH A$$Q* I'FGQ?CGL;	=KKKK!!# r   c                s    V P                   '       d   R # RV n         V P                  P                  4        V P                  P                  4        R # NT)rK   rB   r:   rF   r%   r      &*r   r:   Z_FigureManagerGTK.destroy   s;    
 r   c                s   \         f   R #  \         P                  4         R s R #   \         dJ    \        P                  P                  4       pTP                  4       '       d   TP                  R4       K)  h i ; i  R s i ; irO   )r   ZrunZKeyboardInterruptr   ZMainContextr   ZpendingZ	iteration)ZclsZcontextr   r   start_main_loopZ!_FigureManagerGTK.start_main_loop   sr     	   L ! 	 &&..0G//##!!$'	  Ls   % >A9$A99A< <B c                s   V P                   P                  4        V P                  P                  4        \        P
                  R ,          '       dm   ^R^R/V P                  ,          p\        V P                   V4      ! 4       '       d   V P                   P                  4        R# \        P                  ! R4       R# R# )zfigure.raise_window
get_windowZget_surfacez#Cannot raise window yet to be setupN)rB   rE   rF   Zdrawr   ZrcParamsrA   r   Zpresentr    Zwarn_external)r%   Z	meth_namer   r   rE   Z_FigureManagerGTK.show   s    <<-..L!];DMMJIt{{I.00##% ""#HI /r   c                s    ^R ^R /V P                   ,          pV! V P                  4      '       d   V P                  P                  4        R# V P                  P                  4        R# )r9   c                 s|    V P                  4       P                  4       \        P                  P                  ,          # r   )rS   Z	get_stater
   ZWindowStateZ
FULLSCREENrL   r   r   r   6_FigureManagerGTK.full_screen_toggle.<locals>.<lambda>   s%    !,,.224OO667r   c                 s"    V P                  4       # r   )is_fullscreenrT   r   r   r   rU      s    *r   N)rA   rB   ZunfullscreenZ
fullscreen)r%   rV   r   r   full_screen_toggleZ$_FigureManagerGTK.full_screen_toggle   sV     8*
 --	
 %%KK$$&KK""$r   c                s6    V P                   P                  4       # r   )rB   Z	get_titler)   r   r   get_window_titleZ"_FigureManagerGTK.get_window_title   s    {{$$&&r   c                s<    V P                   P                  V4       R # r   )rB   Z	set_title)r%   Ztitles   &&r   set_window_titleZ"_FigureManagerGTK.set_window_title   s    e$r   c                s,   \        WP                  P                  ,          4      p\        W P                  P                  ,          4      pV P                  '       d/   V P                  P	                  4       w  r4W$P
                  ,          pV P                  P                  4       pV P                  ^8  g'   VP                  VP
                  u;8X  d   ^8X  d!   M MV P                  P                  W4       R# V P                  P                  W4       R# )i   N)intrF   Zdevice_pixel_ratiorG   rH   rI   Zget_allocationrA   widthrB   rJ   resize)r%   r[   rI   rM   rN   Zcanvas_sizes   &&&   r   r\   Z_FigureManagerGTK.resize   s    EKK:::;Vkk<<<=<<<!%!@!@!BHoo%Fkk002==A!2!2k6H6H!MA!M
 KK((7KKu-r   )rK   rA   rD   rB   )r,   r-   r.   r/   r0   r$   r:   ZclassmethodrR   rE   rW   rX   rY   r\   r1   r2   r3   r4   r6   r   r8   r8   y   sH     1!f	    $J	%'%. .r   r8   c                   s\   a a ] tR tRt oR tR tR tR tV 3R ltV 3R lt	R t
R	tVtV ;t# )
_NavigationToolbar2GTKi  c                sp    \         P                  ! V4      pV P                  P                  R V R24       R# )z<small>z</small>N)r   Zmarkup_escape_textZmessageZ
set_markup)r%   ZsZescapeds   && r   set_messageZ"_NavigationToolbar2GTK.set_message  s-    ))!,''( ;<r   c                s   V P                   P                  P                  P                  pWe,
          pWc,
          pW#WB,
          WS,
          3 Uu. uF  p\	        V4      NK  	  ppV P                   P                  V4       R # u upi r   )rF   ZfigureZbboxrI   rZ   _draw_rubberband)	r%   Zeventx0y0x1y1rI   ZvalZrects	   &&&&&&   r   draw_rubberbandZ&_NavigationToolbar2GTK.draw_rubberband  sh    ##((//[[%'RWbg$>?$>SC$>?$$T* @s   Bc                s<    V P                   P                  R 4       R # r   )rF   r_   r)   r   r   remove_rubberbandZ(_NavigationToolbar2GTK.remove_rubberband  s    $$T*r   c                s6   R F~  w  rV P                   P                  V4      pV'       g   K*  VP                  VP                  4      ;_uu_ 4        VP	                  V P
                  P                  V8H  4       RRR4       K  	  R#   + '       g   i     K  ; i)PanN))rf   ZPAN)ZZoomZZOOM)_gtk_idsZgetZhandler_blockZ_signal_handlerZ
set_activeZmodename)r%   rh   ZactiveZbuttons   &   r   _update_buttons_checkedZ._NavigationToolbar2GTK._update_buttons_checked  so    >LD]]&&t,Fv))&*@*@AA%%diinn&>? BA ? BAAs   )BBc                D   < \         SV `  ! V!   V P                  4        R # r   )r#   panri   r%   r   r&      &*r   rk   Z_NavigationToolbar2GTK.pan%  s    T$$&r   c                rj   r   )r#   zoomri   rl   rm   r   rn   Z_NavigationToolbar2GTK.zoom)  s    d$$&r   c                sn   V P                   P                  ^ 8  pV P                   P                  \        V P                   4      ^,
          8  pRV P                  9   d#   V P                  R,          P	                  V4       RV P                  9   d%   V P                  R,          P	                  V4       R# R# )i    ZBackZForwardN)Z
_nav_stackZ_posZlenrg   Zset_sensitive)r%   Zcan_backwardZcan_forwards   &  r   set_history_buttonsZ*_NavigationToolbar2GTK.set_history_buttons-  s    ++a/oo**S-AA-EET]]"MM&!//=%MM)$22;? &r   r   )r,   r-   r.   r/   r^   rd   re   ri   rk   rn   ro   r1   r2   r3   r4   r6   r   r]   r]     s0     
=++@''@ @r   r]   c                   s,   a  ] tR tRt o R tR tRtV tR# )RubberbandGTKi6  c                sR    \         P                  V P                  4       R WW44       R # r   )r]   rd   "_make_classic_style_pseudo_toolbar)r%   r`   ra   rb   rc   s   &&&&&r   rd   ZRubberbandGTK.draw_rubberband7  s#    ..335tRR	Mr   c                sL    \         P                  V P                  4       4       R # r   )r]   re   rq   r)   r   r   re   ZRubberbandGTK.remove_rubberband;  s    00335	7r   r   N)r,   r-   r.   r/   rd   re   r1   r2   r5      @r   rp   rp   6  s     M7 7r   rp   c                   s&   a  ] tR tRt o R tRtV tR# )ConfigureSubplotsGTKi@  c                s2    \         P                  V R 4       R # r   )r]   Zconfigure_subplotsrP   rQ   r   triggerZConfigureSubplotsGTK.triggerA  s    11$=r   r   N)r,   r-   r.   r/   ru   r1   r2   rr   rs   r   rt   rt   @  s     > >r   rt   c                   s    ] tR tRtRP	                  ]P                  ! 4       ]P                  ! 4       ]P                  ! 4       4      t	]
P                  tRtR# )_BackendGTKiE  z{}.{}.{}r   N)r,   r-   r.   r/   Zformatr   r@   Zget_minor_versionZget_micro_versionZbackend_versionr8   rR   Zmainloopr1   r   r   r   rv   rv   E  sC     ''O
 !00Hr   rv   )+r0   ZloggingrC   Z
matplotlibr   r    r   r   Zmatplotlib._pylab_helpersr   Zmatplotlib.backend_basesr   r   r   r   r   Zmatplotlib.backend_toolsr	   ZgiZgi.repositoryr
   r   r   r   Zrequire_foreignZImportErrorZeZ	getLoggerr,   Z_logr   r   r   r    r!   r7   r8   r]   ZRubberbandBaserp   ZConfigureSubplotsBasert   rv   r   r   r   <module>rw      s     
  1 1 )  - 	 . -Aw "0	!y !H' O.) O.d(@/ (@V7M00 7>=>> >
1( 1[	  A
8
9q@As   C C+	C&&C+