§
    ‡ÛgN¥  ã                   ó:  — d dl Z d dlZd dlmZ d dlZd dlZd dlZd dlZd dl	Z
d dlZ	d dlZ	d dlZ	d dlmZ d dlZd dlmZmZ d dlZd dlmZmZmZmZ d dlmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( d dl)m*Z* dd	l+m,Z,  ej-        e.¦  «        Z/e"j0        d
e"j1        de"j2        de"j3        de"j4        de"j5        de"j6        diZ7ed„ ¦   «         Z8i Z9d e j:        ¦   «         j;        z   Z<d Z=dZ>d„ Z?d+d„Z@ G d„ de ¦  «        ZA G d„ de¦  «        ZB G d„ de¦  «        ZC G d„ dee
jD        ¦  «        ZE G d„ d¦  «        ZF ejG        eB¦  «         G d„ d ejH        ¦  «        ¦   «         ZI G d!„ d"e!e
jD        ¦  «        ZJ ejG        eB¦  «         G d#„ d$ejK        ¦  «        ¦   «         ZL ejG        eB¦  «         G d%„ d&ejM        ¦  «        ¦   «         ZN ejG        eB¦  «         G d'„ d(ejO        ¦  «        ¦   «         ZPeJZQeEeC_R        eJeC_S        ejT         G d)„ d*e¦  «        ¦   «         ZUdS ),é    N)Úcontextmanager)ÚSimpleDialog)ÚImageÚImageTk)Ú_apiÚbackend_toolsÚcbookÚ_c_internal_utils)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚNavigationToolbar2Ú	TimerBaseÚToolContainerBaseÚcursorsÚ_ModeÚ
CloseEventÚKeyEventÚLocationEventÚ
MouseEventÚResizeEvent)ÚGcfé   )Ú_tkaggÚfleurÚhand2ÚarrowÚtcrossÚwatchÚsb_h_double_arrowÚsb_v_double_arrowc               #   óâ   K  — t          j        ¦   «         } 	 d V — t          j        d         rt          j        | ¦  «         d S d S # t          j        d         rt          j        | ¦  «         w w xY w)Nztk.window_focus)r
   ÚWin32_GetForegroundWindowÚmplÚrcParamsÚWin32_SetForegroundWindow)Ú
foregrounds    úU/granary/edev/quantum/lib/python3.11/site-packages/matplotlib/backends/_backend_tk.pyÚ!_restore_foreground_window_at_endr)   '   s…   è è € å"Ô<Ñ>Ô>€JðDØˆˆˆåŒ<Ð)Ô*ð 	DÝÔ7¸
ÑCÔCÐCÐCÐCð	Dð 	Dø�3Œ<Ð)Ô*ð 	DÝÔ7¸
ÑCÔCÐCÐCð	Døøøs   —A Á)A.Ú	mpl_blit_c                 óÀ   — t                                | ¦  «        \  }}}}}t          j        |j                             ¦   «         t          |¦  «        ||||¦  «         dS )zÍ
    Thin wrapper to blit called via tkapp.call.

    *argsid* is a unique string identifier to fetch the correct arguments from
    the ``_blit_args`` dict, since arguments cannot be passed directly.
    N)Ú
_blit_argsÚpopr   ÚblitÚtkÚ
interpaddrÚstr)ÚargsidÚ
photoimageÚdataptrÚoffsetsÚbboxptrÚ	comp_rules         r(   Ú_blitr8   9   s`   € õ 8B·~²~ÀfÑ7MÔ7MÑ4€J�˜ '¨9Ý
„K�
”×(Ò(Ñ*Ô*­C°
©O¬O¸WØ˜7 Gñ-ô -ð -ð -ð -ó    c                 ó”  — t          j        |¦  «        }|j        dd…         \  }}|||j        j        f}|�Á|                     ¦   «         \  \  }}	\  }
}t          t          j        |¦  «        d¦  «        }t          t          j
        |
¦  «        |¦  «        }
t          t          j        |	¦  «        d¦  «        }	t          t          j
        |¦  «        |¦  «        }||
k    s|	|k    rdS ||
|	|f}t          }nd|d|f}t          }| ||||f}t          t          |¦  «        ¦  «        }|t          |<   	 | j                             t$          |¦  «         dS # t           j        $ rb}dt          |¦  «        vr‚ | j                             t$          t*          ¦  «         | j                             t$          |¦  «         Y d}~dS d}~ww xY w)aÂ  
    Blit *aggimage* to *photoimage*.

    *offsets* is a tuple describing how to fill the ``offset`` field of the
    ``Tk_PhotoImageBlock`` struct: it should be (0, 1, 2, 3) for RGBA8888 data,
    (2, 1, 0, 3) for little-endian ARBG32 (i.e. GBRA8888) data and (1, 2, 3, 0)
    for big-endian ARGB32 (i.e. ARGB8888) data.

    If *bbox* is passed, it defines the region that gets blitted. That region
    will be composed with the previous data according to the alpha channel.
    Blitting will be clipped to pixels inside the canvas, including silently
    doing nothing if the *bbox* region is entirely outside the canvas.

    Tcl events must be dispatched to trigger a blit from a non-Tcl thread.
    Né   r   zinvalid command name)ÚnpÚasarrayÚshapeÚctypesÚdataÚ	__array__ÚmaxÚmathÚfloorÚminÚceilÚTK_PHOTO_COMPOSITE_OVERLAYÚTK_PHOTO_COMPOSITE_SETr1   Úidr,   r/   ÚcallÚ_blit_tcl_nameÚTclErrorÚcreatecommandr8   )r3   Úaggimager5   Úbboxr@   ÚheightÚwidthr4   Úx1Úy1Úx2Úy2r6   r7   Úargsr2   Úes                    r(   r.   r.   E   s¼  € õ  Œ:�hÑÔ€DØ”J˜r ˜r”N�M€FˆEØ�u˜dœkÔ.Ð/€GØÐØ!Ÿ^š^Ñ-Ô-Ñ‰ˆˆR‘(�2�rÝ•”˜B‘” Ñ#Ô#ˆÝ•”˜2‘” Ñ&Ô&ˆÝ•”˜B‘” Ñ#Ô#ˆÝ•”˜2‘” Ñ'Ô'ˆØ�ŠGˆG˜˜bš˜ØˆFØ�r˜2˜rÐ"ˆÝ.ˆ	ˆ	à�e˜Q Ð'ˆÝ*ˆ	ð �w ¨°)Ð;€Dõ •�D‘”‰]Œ]€FØ…JˆvÑð3ØŒ×Ò�>¨6Ñ2Ô2Ð2Ð2Ð2øÝŒ;ð 3ð 3ð 3Ø!­¨Q©¬Ð/Ð/ØØŒ×#Ò#¥NµEÑ:Ô:Ð:ØŒ×Ò�>¨6Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2øøøøð	3øøøs   Ä4 E ÅGÅ%AGÇGc                   ó8   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zˆ fd„Zˆ xZS )ÚTimerTkz<Subclass of `backend_bases.TimerBase` using Tk timer events.c                 óV   •— d | _          t          ¦   «         j        |i |¤Ž || _        d S ©N)Ú_timerÚsuperÚ__init__Úparent)Úselfr_   rV   ÚkwargsÚ	__class__s       €r(   r^   zTimerTk.__init__   s1   ø€ ØˆŒØ�‰ŒÔ˜$Ð) &Ð)Ð)Ð)ØˆŒˆˆr9   c                 ó‚   — |                       ¦   «          | j                             | j        | j        ¦  «        | _        d S r[   )Ú_timer_stopr_   ÚafterÚ	_intervalÚ	_on_timerr\   ©r`   s    r(   Ú_timer_startzTimerTk._timer_start„   s5   € Ø×ÒÑÔÐØ”k×'Ò'¨¬¸¼ÑGÔGˆŒˆˆr9   c                 ó`   — | j         �| j                             | j         ¦  «         d | _         d S r[   )r\   r_   Úafter_cancelrh   s    r(   rd   zTimerTk._timer_stopˆ   s-   € ØŒ;Ð"ØŒK×$Ò$ T¤[Ñ1Ô1Ð1ØˆŒˆˆr9   c                 ó*  •‡ — t          ¦   «                              ¦   «          ‰ j        sb‰ j        r[‰ j        dk    r,‰ j                             ‰ j        ‰ j        ¦  «        ‰ _        d S ‰ j                             ˆ fd„¦  «        ‰ _        d S d ‰ _        d S )Nr   c                  óN   •— ‰ j                              ‰ j        ‰ j        ¦  «        S r[   )r_   re   rf   rg   rh   s   €r(   ú<lambda>z#TimerTk._on_timer.<locals>.<lambda>œ   s   ø€ ˜DœK×-Ò-¨d¬n¸d¼nÑMÔM€ r9   )r]   rg   Ú_singler\   rf   r_   re   Ú
after_idle)r`   rb   s   `€r(   rg   zTimerTk._on_timer�   s•   øø€ Ý‰Œ×ÒÑÔÐð
 Œ|ð 	 ¤ð 	ØŒ~ Ò!Ð!Ø"œk×/Ò/°´ÀÄÑOÔO�”��ð #œk×4Ò4ØMÐMÐMÐMñô �”��ð ˆDŒKˆKˆKr9   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r^   ri   rd   rg   Ú__classcell__©rb   s   @r(   rY   rY   |   sx   ø€ € € € € ØFÐFðð ð ð ð ð
Hð Hð Hðð ð ð
ð ð ð ð ð ð ð ð r9   rY   c                   óæ   ‡ — e Zd ZdZ ej        d„ ¦  «        Zdˆ fd„	Zd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eddœd„¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd!d„Zd„ Zd„ Zˆ xZS )"ÚFigureCanvasTkr/   c                 ó   — t           S r[   )ÚFigureManagerTk)Úclss    r(   rn   zFigureCanvasTk.<lambda>¤   s   € µ?€ r9   Nc                 óÀ  •‡	‡
‡‡— t          ¦   «                              |¦  «         d | _        d | _        |                      d¬¦  «        \  }}t          j        |d||dd¬¦  «        | _        t          j        | j        ||¬¦  «        | _	        | j         
                    |dz  |dz  | j	        ¬¦  «         | j                             d	| j        ¦  «         t          j        d
k    r | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         | j                             d| j        ¦  «         dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#dD ]"}| j                             || j        ¦  «         Œ#| j                             ¦   «         }t5          j        | ¦  «        Št5          j        |¦  «        Šˆ
ˆˆfd„}|                     d|d¦  «        Š
ˆ	ˆˆfd„}|                     d|d¦  «        Š	| j                             ¦   «          d | _        d | _        d S )NT©ÚphysicalÚwhiter   )ÚmasterÚ
backgroundrQ   rP   ÚborderwidthÚhighlightthickness©r€   rQ   rP   r;   ©Úimagez<Configure>Úwin32z<Map>z<Key>z<Motion>ú<Enter>ú<Leave>z<KeyRelease>)z
<Button-1>z
<Button-2>z
<Button-3>)z<Double-Button-1>z<Double-Button-2>z<Double-Button-3>)z<ButtonRelease-1>z<ButtonRelease-2>z<ButtonRelease-3>)z
<Button-4>z
<Button-5>c                 óŽ   •—  ‰¦   «         }|€$ ‰¦   «         }|�|                      d‰¦  «         d S |                     | ¦  «        S )Nú<MouseWheel>)ÚunbindÚscroll_event_windows)Úeventr`   ÚrootÚscroll_event_windows_idÚweakrootÚweakselfs      €€€r(   r�   z5FigureCanvasTk.__init__.<locals>.scroll_event_windowsÏ   sR   ø€ Ø�8‘:”:ˆDØˆ|Ø�x‘z”z�ØÐ#Ø—K’K Ð0GÑHÔHÐHØ�Ø×,Ò,¨UÑ3Ô3Ð3r9   r‹   ú+c                 óÌ   •—  ‰¦   «         }|€$ ‰¦   «         }|�|                      d‰¦  «         d S | j        |j        u r$t          d|¦  «                             ¦   «          d S d S )Nú	<Destroy>Úclose_event)rŒ   ÚwidgetÚ	_tkcanvasr   Ú_process)rŽ   r`   r�   Úfilter_destroy_idr‘   r’   s      €€€r(   Úfilter_destroyz/FigureCanvasTk.__init__.<locals>.filter_destroyÛ   sw   ø€ Ø�8‘:”:ˆDØˆ|Ø�x‘z”z�ØÐ#Ø—K’K Ð->Ñ?Ô?Ð?Ø�ØŒ|˜tœ~Ð-Ð-Ý˜=¨$Ñ/Ô/×8Ò8Ñ:Ô:Ð:Ð:Ð:ð .Ð-r9   r•   )r]   r^   Ú_idle_draw_idÚ_event_loop_idÚget_width_heightr/   ÚCanvasr˜   Ú
PhotoImageÚ_tkphotoÚcreate_imageÚbindÚresizeÚsysÚplatformÚ_update_device_pixel_ratioÚ	key_pressÚmotion_notify_eventÚenter_notify_eventÚleave_notify_eventÚkey_releaseÚbutton_press_eventÚbutton_dblclick_eventÚbutton_release_eventÚscroll_eventÚwinfo_toplevelÚweakrefÚrefÚ	focus_setÚ_rubberband_rect_blackÚ_rubberband_rect_white)r`   Úfigurer€   ÚwÚhÚnamer�   r�   r›   rš   r�   r‘   r’   rb   s            @@@@€r(   r^   zFigureCanvasTk.__init__¦   s  øøøøø€ Ý‰Œ×Ò˜Ñ Ô Ð Ø!ˆÔØ"ˆÔØ×$Ò$¨dÐ$Ñ3Ô3‰ˆˆ1ÝœØ gØ˜A¨1ÀðDñ Dô DˆŒõ œØ”>¨°1ð6ñ 6ô 6ˆŒàŒ×#Ò# A q¡D¨!¨Q©$°d´mÐ#ÑDÔDÐDØŒ×Ò˜M¨4¬;Ñ7Ô7Ð7ÝŒ<˜7Ò"Ð"ØŒN×Ò ¨Ô)HÑIÔIÐIØŒ×Ò˜G T¤^Ñ4Ô4Ð4ØŒ×Ò˜J¨Ô(@ÑAÔAÐAØŒ×Ò˜I tÔ'>Ñ?Ô?Ð?ØŒ×Ò˜I tÔ'>Ñ?Ô?Ð?ØŒ×Ò˜N¨DÔ,<Ñ=Ô=Ð=Ø>ð 	?ð 	?ˆDØŒN×Ò  dÔ&=Ñ>Ô>Ð>Ð>ðOð 	Bð 	BˆDàŒN×Ò  dÔ&@ÑAÔAÐAÐAðOð 	Að 	AˆDàŒN×Ò  dÔ&?Ñ@Ô@Ð@Ð@ð /ð 	9ð 	9ˆDØŒN×Ò  dÔ&7Ñ8Ô8Ð8Ð8ð
 Œ~×,Ò,Ñ.Ô.ˆõ ”;˜tÑ$Ô$ˆÝ”;˜tÑ$Ô$ˆð	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð #'§)¢)¨NÐ<PÐRUÑ"VÔ"VÐð	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð !ŸIšI k°>À3ÑGÔGÐàŒ× Ò Ñ"Ô"Ð"à&*ˆÔ#Ø&*ˆÔ#Ð#Ð#r9   c                 ó   — t          | j        j                             dd¦  «        dz  d¦  «        }|                      |¦  «        r7|                      d¬¦  «        \  }}| j                             ||¬¦  «         d S d S )Nr/   ÚscalinggUUUUUUõ?r;   Tr}   ©rQ   rP   )Úroundr˜   r/   rJ   Ú_set_device_pixel_ratiorž   Ú	configure)r`   rŽ   Úratior¸   r¹   s        r(   r§   z)FigureCanvasTk._update_device_pixel_ratioë   sŠ   € õ �d”nÔ'×,Ò,¨T°9Ñ=Ô=ÀÑIÈ1ÑMÔMˆØ×'Ò'¨Ñ.Ô.ð 	8ð ×(Ò(°$Ð(Ñ7Ô7‰DˆAˆqØŒN×$Ò$¨1°QÐ$Ñ7Ô7Ð7Ð7Ð7ð	8ð 	8r9   c                 ó,  — |j         |j        }}| j        j        }||z  }||z  }| j                             ||d¬¦  «         | j                             | j        ¦  «         t          j	        | j        t          |¦  «        t          |¦  «        ¬¦  «        | _        | j                             t          |dz  ¦  «        t          |dz  ¦  «        | j        ¬¦  «         t          d| ¦  «                             ¦   «          |                      ¦   «          d S )NF)Úforwardr„   r;   r…   Úresize_event)rQ   rP   r·   ÚdpiÚset_size_inchesr˜   Údeleter¡   r/   r    Úintr¢   r   r™   Ú	draw_idle)r`   rŽ   rQ   rP   ÚdpivalÚwinchÚhinchs          r(   r¤   zFigureCanvasTk.resize÷   s  € Øœ U¤\ˆvˆð ””ˆØ˜‘ˆØ˜‘ˆØŒ×#Ò# E¨5¸%Ð#Ñ@Ô@Ð@àŒ×Ò˜dœmÑ,Ô,Ð,ÝœØ”>­¨U©¬½CÀ¹K¼KðIñ Iô IˆŒàŒ×#Ò#Ý�˜‘	‰NŒN�C ¨¡
™OœO°4´=ð 	$ñ 	Bô 	Bð 	Bå�N DÑ)Ô)×2Ò2Ñ4Ô4Ð4Ø�ŠÑÔÐÐÐr9   c                 ób   ‡ — ‰ j         rd S ˆ fd„}‰ j                             |¦  «        ‰ _         d S )Nc                  óX   •— 	 ‰                      ¦   «          d ‰_        d S # d ‰_        w xY wr[   )Údrawrœ   ©rV   r`   s    €r(   Ú	idle_drawz+FigureCanvasTk.draw_idle.<locals>.idle_draw  s7   ø€ ð*Ø—	’	‘”�à%)�Ô"Ð"Ð"ø T�Ô"Ð)Ð)Ð)Ð)s   ƒ   	))rœ   r˜   rp   )r`   rÑ   s   ` r(   rÉ   zFigureCanvasTk.draw_idle  sL   ø€ àÔð 	ØˆFð	*ð 	*ð 	*ð 	*ð 	*ð "œ^×6Ò6°yÑAÔAˆÔÐÐr9   c                 ó   — | j         S )z¿
        Return the Tk widget used to implement FigureCanvasTkAgg.

        Although the initial implementation uses a Tk canvas,  this routine
        is intended to hide that fact.
        )r˜   rh   s    r(   Úget_tk_widgetzFigureCanvasTk.get_tk_widget  s   € ð Œ~Ðr9   c                 ó¢   — | j                              |j        ¦  «        | j        j        j        | j                              |j        ¦  «        z
  fS r[   )r˜   ÚcanvasxÚxr·   rO   rP   ÚcanvasyÚy©r`   rŽ   s     r(   Ú_event_mpl_coordsz FigureCanvasTk._event_mpl_coords  sG   € ð ”×&Ò& u¤wÑ/Ô/à”Ô Ô'¨$¬.×*@Ò*@ÀÄÑ*IÔ*IÑIðKð 	Kr9   c                 óš   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |dœŽ                     ¦   «          d S )Nr©   ©Ú	modifiersÚguiEvent)r   rÚ   Ú_mpl_modifiersr™   rÙ   s     r(   r©   z"FigureCanvasTk.motion_notify_event%  s^   € ÝÐ(¨$ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#ð 	#à!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r9   c                 óš   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |dœŽ                     ¦   «          d S )NÚfigure_enter_eventrÜ   ©r   rÚ   rß   r™   rÙ   s     r(   rª   z!FigureCanvasTk.enter_notify_event+  ó^   € ÝÐ*¨Dð 	&Ø×-Ò-¨eÑ4Ô4ð	&ð 	&à $× 3Ò 3°EÑ :Ô :Ø$ð	&ð 	&ð 	&÷ '/¢h¡j¤j j j jr9   c                 óš   — t          d| g|                      |¦  «        ¢R |                      |¦  «        |dœŽ                     ¦   «          d S )NÚfigure_leave_eventrÜ   râ   rÙ   s     r(   r«   z!FigureCanvasTk.leave_notify_event1  rã   r9   Fc                 óF  — | j                              ¦   «          t          |dd ¦  «        }t          j        dk    rdddœ                     ||¦  «        }t          d| g|                      |¦  «        ¢|‘R ||                      |¦  «        |dœŽ 	                    ¦   «          d S )NÚnumÚdarwiné   r;   ©r;   ré   r­   )ÚdblclickrÝ   rÞ   )
r˜   r´   Úgetattrr¥   r¦   Úgetr   rÚ   rß   r™   )r`   rŽ   rë   rç   s       r(   r­   z!FigureCanvasTk.button_press_event7  s¶   € àŒ× Ò Ñ"Ô"Ð"å�e˜U DÑ)Ô)ˆÝŒ<˜8Ò#Ð#Ø˜A�,�,×"Ò" 3¨Ñ,Ô,ˆCÝÐ'¨ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#Ø36ð	#ð 	#ØAIØ!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r9   c                 ó4   — |                       |d¬¦  «         d S )NT)rë   )r­   rÙ   s     r(   r®   z$FigureCanvasTk.button_dblclick_eventC  s!   € Ø×Ò °ÐÑ5Ô5Ð5Ð5Ð5r9   c                 ó  — t          |dd ¦  «        }t          j        dk    rdddœ                     ||¦  «        }t	          d| g|                      |¦  «        ¢|‘R |                      |¦  «        |dœŽ                     ¦   «          d S )Nrç   rè   ré   r;   rê   r¯   rÜ   )rì   r¥   r¦   rí   r   rÚ   rß   r™   )r`   rŽ   rç   s      r(   r¯   z#FigureCanvasTk.button_release_eventF  sŸ   € Ý�e˜U DÑ)Ô)ˆÝŒ<˜8Ò#Ð#Ø˜A�,�,×"Ò" 3¨Ñ,Ô,ˆCÝÐ)¨4ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#Ø36ð	#ð 	#à!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r9   c                 óâ   — t          |dd ¦  «        }|dk    rdn	|dk    rdnd}t          d| g|                      |¦  «        ¢R ||                      |¦  «        |dœŽ                     ¦   «          d S )	Nrç   é   r   é   éÿÿÿÿr   r°   ©ÚsteprÝ   rÞ   )rì   r   rÚ   rß   r™   )r`   rŽ   rç   rõ   s       r(   r°   zFigureCanvasTk.scroll_eventO  sŽ   € Ý�e˜U DÑ)Ô)ˆØ˜1’H�Hˆqˆq¨¨qª¨ " "°aˆÝ�> 4ð 	#Ø×*Ò*¨5Ñ1Ô1ð	#ð 	#Ø8<Ø!×0Ò0°Ñ7Ô7Ø!ð	#ð 	#ð 	#÷ $,¢8¡:¤: : : :r9   c           
      óè  — |j                              |j        |j        ¦  «        }|| j        k    rdS | j                             |j        |                     ¦   «         z
  ¦  «        }| j        j        j	        | j         
                    |j        |                     ¦   «         z
  ¦  «        z
  }|j        dz  }t          d| ||||                      |¦  «        |¬¦  «                             ¦   «          dS )zMouseWheel event processorNéx   r°   rô   )r—   Úwinfo_containingÚx_rootÚy_rootr˜   rÕ   Úwinfo_rootxr·   rO   rP   r×   Úwinfo_rootyÚdeltar   rß   r™   )r`   rŽ   r¸   rÖ   rØ   rõ   s         r(   r�   z#FigureCanvasTk.scroll_event_windowsW  sÕ   € ð ŒL×)Ò)¨%¬,¸¼ÑEÔEˆØ�”ÒÐØˆFØŒN×"Ò" 5¤<°!·-²-±/´/Ñ#AÑBÔBˆØŒ[ÔÔ$ØŒ~×%Ò% e¤l°Q·]²]±_´_Ñ&DÑEÔEñFˆàŒ{˜SÑ ˆÝ�> 4Ø�a˜d¨d×.AÒ.AÀ%Ñ.HÔ.HØ!ð	#ñ 	#ô 	#ç#+¢8¡:¤: : : :r9   ©Úexcludec                ó|   ‡ ‡— t           j        dk    rg d¢nt           j        dk    rg d¢ng d¢}ˆ ˆfd„|D ¦   «         S )Nr‡   )©Úctrlrñ   Úcontrol)Úalti   r  ©Úshiftr   r  rè   )r  )r  é   r  r  )r]   é   r]   )r  )r  r  r  r  )r]   é@   r]   c                 ó<   •— g | ]\  }}}‰j         |z  r‰|k    ¯|‘ŒS © )Ústate)Ú.0rº   ÚmaskÚkeyrŽ   rÿ   s       €€r(   ú
<listcomp>z1FigureCanvasTk._mpl_modifiers.<locals>.<listcomp>~  s>   ø€ ð :ð :ð :™˜˜t SØ”; Ñ%ð:Ø*1°Sª.¨.ð Ø*8¨.¨.r9   )r¥   r¦   )rŽ   rÿ   rÝ   s   `` r(   rß   zFigureCanvasTk._mpl_modifierse  s�   øø€ õ Œ\˜WÒ$Ð$ð	
ð 
ð 
ð 
õ Œ\˜XÒ%Ð%ð+
ð +
ð +
ð +
ð
,
ð ,
ð ,
ð 	ð:ð :ð :ð :ð :¨Ið :ñ :ô :ð 	:r9   c                 óâ   — |j         }t          j        ||j        ¦  «        }|�K|                      ||¬¦  «        }d|v r|r|                     d¦  «         d                     g |¢|‘¦  «        S d S )Nrþ   r  r“   )Úcharr	   Ú_unikey_or_keysym_to_mplkeyÚkeysymrß   ÚremoveÚjoin)r`   rŽ   Úunikeyr  Úmodss        r(   Ú_get_keyzFigureCanvasTk._get_key�  sz   € Ø”ˆÝÔ/°¸¼ÑEÔEˆØˆ?Ø×&Ò& u°cÐ&Ñ:Ô:ˆDà˜$ˆˆ 6ˆØ—’˜GÑ$Ô$Ð$Ø—8’8˜L˜d˜L C˜LÑ)Ô)Ð)ð ˆ?r9   c                 óš   — t          d| |                      |¦  «        g|                      |¦  «        ¢R d|iŽ                     ¦   «          d S )NÚkey_press_eventrÞ   ©r   r  rÚ   r™   rÙ   s     r(   r¨   zFigureCanvasTk.key_press‹  sZ   € ÝÐ" DØ—’˜uÑ%Ô%ð	!Ø(,×(>Ò(>¸uÑ(EÔ(Eð	!ð 	!ð 	!àð	!ð 	!ç!)¢¡¤   r9   c                 óš   — t          d| |                      |¦  «        g|                      |¦  «        ¢R d|iŽ                     ¦   «          d S )NÚkey_release_eventrÞ   r  rÙ   s     r(   r¬   zFigureCanvasTk.key_release�  sZ   € ÝÐ$ dØ—’˜uÑ%Ô%ð	!Ø(,×(>Ò(>¸uÑ(EÔ(Eð	!ð 	!ð 	!àð	!ð 	!ç!)¢¡¤   r9   c                 ó,   — t          | j        g|¢R i |¤ŽS r[   )rY   r˜   )r`   rV   ra   s      r(   Ú	new_timerzFigureCanvasTk.new_timer•  s"   € å�t”~Ð7¨Ð7Ð7Ð7°Ð7Ð7Ð7r9   c                 ó8   — | j                              ¦   «          d S r[   )r˜   Úupdaterh   s    r(   Úflush_eventszFigureCanvasTk.flush_events™  s   € àŒ×ÒÑÔÐÐÐr9   r   c                 ó  — |dk    rbt          d|z  ¦  «        }|dk    r&| j                             || j        ¦  «        | _        n$| j                             | j        ¦  «        | _        | j                             ¦   «          d S )Nr   iè  )rÈ   r˜   re   Ústop_event_loopr�   rp   Úmainloop)r`   ÚtimeoutÚmillisecondss      r(   Ústart_event_loopzFigureCanvasTk.start_event_loop�  sˆ   € à�QŠ;ˆ;Ý˜t g™~Ñ.Ô.ˆLØ˜aÒÐØ&*¤n×&:Ò&:Ø  $Ô"6ñ'8ô '8�Ô#Ð#ð '+¤n×&?Ò&?ØÔ(ñ'*ô '*�Ô#àŒ×ÒÑ!Ô!Ð!Ð!Ð!r9   c                 ó’   — | j         r&| j                             | j         ¦  «         d | _         | j                             ¦   «          d S r[   )r�   r˜   rk   Úquitrh   s    r(   r%  zFigureCanvasTk.stop_event_loop©  sH   € àÔð 	'ØŒN×'Ò'¨Ô(;Ñ<Ô<Ð<Ø"&ˆDÔØŒ×ÒÑÔÐÐÐr9   c                 ó€   — 	 | j                              t          |         ¬¦  «         d S # t          j        $ r Y d S w xY w)N)Úcursor)r˜   rÀ   ÚcursordÚtkinterrL   )r`   r-  s     r(   Ú
set_cursorzFigureCanvasTk.set_cursor°  sO   € ð	ØŒN×$Ò$­G°F¬OÐ$Ñ<Ô<Ð<Ð<Ð<øÝÔð 	ð 	ð 	ØˆDˆDð	øøøs   ‚&* ª=¼=)NNr[   )F)r   ) rq   rr   rs   Úrequired_interactive_frameworkr   ÚclasspropertyÚmanager_classr^   r§   r¤   rÉ   rÓ   rÚ   r©   rª   r«   r­   r®   r¯   r°   r�   Ústaticmethodrß   r  r¨   r¬   r   r#  r)  r%  r0  ru   rv   s   @r(   rx   rx   ¢   sØ  ø€ € € € € Ø%)Ð"Ø&�DÔ&Ð'BÐ'BÑCÔC€MðC+ð C+ð C+ð C+ð C+ð C+ðJ
8ð 
8ð 
8ð 
8ðð ð ð"Bð Bð Bðð ð ðKð Kð Kð.ð .ð .ð1ð 1ð 1ð1ð 1ð 1ð
.ð 
.ð 
.ð 
.ð6ð 6ð 6ð.ð .ð .ð.ð .ð .ð.ð .ð .ð Ø)-ð :ð :ð :ð :ñ „\ð:ð6*ð *ð *ð,ð ,ð ,ð
,ð ,ð ,ð
8ð 8ð 8ð ð  ð  ð
"ð 
"ð 
"ð 
"ðð ð ðð ð ð ð ð ð r9   rx   c                   ó|   ‡ — e Zd ZdZdZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zˆ xZS )rz   zí
    Attributes
    ----------
    canvas : `FigureCanvas`
        The FigureCanvas instance
    num : int or str
        The Figure number
    toolbar : tk.Toolbar
        The tk.Toolbar
    window : tk.Window
        The tk.Window
    Fc                 ó8  •— || _         t          ¦   «                              ||¦  «         | j                              ¦   «          | j        j                             t          j        t          j	        d¬¦  «         t          |                     ¦   «         d¦  «        }t          j        |dd|› �¬¦  «        | _        d| _        t          j        ||j                             ¦   «         ¦  «        r%| j                             d| j        ¦  «        | _        d	| _        d S )
Nr   )ÚsideÚfillÚexpandr  é`   Ú
window_dpi)r€   Úvaluerº   Ú ÚwriteF)Úwindowr]   r^   ÚwithdrawÚcanvasr˜   Úpackr/   ÚTOPÚBOTHrÈ   Úwm_frameÚIntVarÚ_window_dpiÚ_window_dpi_cbnamer   Úenable_dpi_awarenessr0   Ú	trace_addÚ_update_window_dpiÚ_shown)r`   rA  rç   r?  Úwindow_framerb   s        €r(   r^   zFigureManagerTk.__init__Ç  sÿ   ø€ ØˆŒÝ‰Œ×Ò˜ Ñ%Ô%Ð%ØŒ×ÒÑÔÐð 	ŒÔ×"Ò"­¬µR´WÀQÐ"ÑGÔGÐGõ
 ˜6Ÿ?š?Ñ,Ô,¨bÑ1Ô1ˆÝœ9¨F¸"Ø*E°|Ð*EÐ*EðGñ Gô GˆÔà"$ˆÔÝÔ& |°V´Y×5IÒ5IÑ5KÔ5KÑLÔLð 	2Ø&*Ô&6×&@Ò&@Ø˜Ô0ñ'2ô '2ˆDÔ#ð ˆŒˆˆr9   c                 ó6  — t          ¦   «         5  t          j        ¦   «         €&t          j        ¦   «          t	          j        ¦   «          t          j        d¬¦  «        }|                     ¦   «          t          t          j
        d¦  «        ¦  «        }t          j        ||¬¦  «        }t          t          j
        d¦  «        ¦  «        }t          j        ||¬¦  «        }	 |                     d||¦  «         n2# t          $ r%}	t                               d|	¦  «         Y d }	~	nd }	~	ww xY w |||¬¦  «        }
 | |
||¦  «        }t#          j        ¦   «         r(|                     ¦   «          |
                     ¦   «          |cd d d ¦  «         S # 1 swxY w Y   d S )	NÚ
matplotlib)Ú	classNamezimages/matplotlib.png)Úfiler€   zimages/matplotlib_large.pngFz"Could not load matplotlib icon: %s©r€   )r)   r	   Ú"_get_running_interactive_frameworkÚ_setup_new_guiappr
   Ú Win32_SetProcessDpiAwareness_maxr/   ÚTkr@  r1   Ú_get_data_pathr   r    Ú	iconphotoÚ	ExceptionÚ_logÚinfor$   Úis_interactiveÚshowrÉ   )r{   Úcanvas_classr·   rç   r?  Ú
icon_fnameÚicon_imgÚicon_fname_largeÚicon_img_largeÚexcrA  Úmanagers               r(   Úcreate_with_canvasz"FigureManagerTk.create_with_canvasÜ  sþ  € õ /Ñ0Ô0ð  	ð  	ÝÔ7Ñ9Ô9ÐAÝÔ'Ñ)Ô)Ð)Ý!ÔBÑDÔDÐDÝ”U \Ð2Ñ2Ô2ˆFØ�OŠOÑÔÐõ �UÔ1Ø'ñ)ô )ñ *ô *ˆJåÔ)¨zÀ&ÐIÑIÔIˆHå"¥5Ô#7Ø-ñ$/ô $/ñ  0ô  0Ðå$Ô/Ø%¨fð6ñ 6ô 6ˆNðEØ× Ò  ¨¸ÑAÔAÐAÐAøÝð Eð Eð Eå—	’	Ð>ÀÑDÔDÐDÐDÐDÐDÐDÐDøøøøðEøøøð "�\ &°Ð8Ñ8Ô8ˆFØ�c˜& # vÑ.Ô.ˆGÝÔ!Ñ#Ô#ð #Ø—’‘”�Ø× Ò Ñ"Ô"Ð"ØðA 	ð  	ð  	ð  	ñ  	ô  	ð  	ð  	ð  	ð  	ð  	ð  	øøøð  	ð  	ð  	ð  	ð  	ð  	s=   �CFÃ!C9Ã8FÃ9
D(ÄD#ÄFÄ#D(Ä(AFÆFÆFc                 óÜ   — t          j        ¦   «         }|rV|d         }t          |¦  «        }|j        rd S d|_        	 |j                             ¦   «          d|_        d S # d|_        w xY wd S )Nr   TF)r   Úget_all_fig_managersÚtypeÚ_owns_mainloopr?  r&  )r{   ÚmanagersÚfirst_managerr3  s       r(   Ústart_main_loopzFigureManagerTk.start_main_loop  sŒ   € åÔ+Ñ-Ô-ˆØð 		5Ø$ QœKˆMÝ  Ñ/Ô/ˆMØÔ+ð Ø�Ø+/ˆMÔ(ð5ØÔ$×-Ò-Ñ/Ô/Ð/à/4�Ô,Ð,Ð,ø¨u�Ô,Ð4Ð4Ð4Ð4ð		5ð 		5s   ¾A  Á 	A)c                 ó  — | j                              ¦   «         }| j                             dd|dz  ¦  «         | j        r.t          | j        d¦  «        r| j                             ¦   «          | j                             ¦   «          d S )Nr/   r¼   éH   Ú_rescale)	rG  rí   r?  rJ   ÚtoolbarÚhasattrro  rA  r§   )r`   rV   Únewdpis      r(   rK  z"FigureManagerTk._update_window_dpi  s   € ØÔ!×%Ò%Ñ'Ô'ˆØŒ×Ò˜˜y¨&°2©+Ñ6Ô6Ð6ØŒ<ð 	$�G D¤L°*Ñ=Ô=ð 	$ØŒL×!Ò!Ñ#Ô#Ð#ØŒ×.Ò.Ñ0Ô0Ð0Ð0Ð0r9   c           	      ó¶   — d}||k    s||k    r)t           j        dk    rt          d|› d|› d|› d�¦  «        ‚| j        j                             ||¬¦  «         d S )NiÀ\ Úlinuxz/You have requested to resize the Tk window to (z, z), one of which is bigger than zÔ.  At larger sizes xorg will either exit with an error on newer versions (~1.20) or cause corruption on older version (~1.19).  We do not expect a window over a million pixel wide or tall to be intended behavior.r½   )r¥   r¦   Ú
ValueErrorrA  r˜   rÀ   )r`   rQ   rP   Úmax_sizes       r(   r¤   zFigureManagerTk.resize  s‘   € Øˆà�HÒÐ ¨Ò 1Ð 1µs´|ÀwÒ7NÐ7NÝð+Ø!&ð+ð +Ø*0ð+ð +à"*ð+ð +ð +ñ,ô ,ð ,ð 	ŒÔ×'Ò'¨e¸FÐ'ÑCÔCÐCÐCÐCr9   c                 ó  ‡ — t          ¦   «         5  ‰ j        sXˆ fd„}‰ j                             d|¦  «         ‰ j                             ¦   «          ‰ j        j                             ¦   «          n‰ j                             ¦   «          t          j
        d         rJ‰ j        j        j                             dd¦  «         ‰ j        j        j                             dd¦  «         d‰ _        d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó0   •— t          j        ‰¦  «         d S r[   )r   ÚdestroyrÐ   s    €r(   ry  z%FigureManagerTk.show.<locals>.destroy'  s   ø€ Ý”K Ñ%Ô%Ð%Ð%Ð%r9   ÚWM_DELETE_WINDOWzfigure.raise_windowz-topmostr   r   T)r)   rL  r?  ÚprotocolÚ	deiconifyrA  r˜   r´   rÉ   r$   r%   rd  Ú
attributes)r`   ry  s   ` r(   r]  zFigureManagerTk.show$  sE  ø€ Ý.Ñ0Ô0ð 	ð 	Ø”;ð (ð&ð &ð &ð &ð &à”×$Ò$Ð%7¸ÑAÔAÐAØ”×%Ò%Ñ'Ô'Ð'Ø”Ô%×/Ò/Ñ1Ô1Ð1Ð1à”×%Ò%Ñ'Ô'Ð'ÝŒ|Ð1Ô2ð EØ”Ô#Ô*×5Ò5°jÀ!ÑDÔDÐDØ”Ô#Ô*×5Ò5°jÀ!ÑDÔDÐDØˆDŒKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �CC9Ã9C=Ä C=c                 óø  ‡ — ‰ j         j        r)‰ j         j                             ‰ j         j        ¦  «         ‰ j         j        r)‰ j         j                             ‰ j         j        ¦  «         ‰ j        r ‰ j                             d‰ j        ¦  «         ˆ fd„}t          j	        ¦   «         dk    r(‰ j
                             ‰ j
        j        d|¦  «         d S ‰ j
                             ¦   «           |¦   «          d S )Nr>  c                  ó¨   •— ‰ j                              ¦   «          ‰ j        r.t          j        ¦   «         s‰ j                              ¦   «          d S d S d S r[   )r?  ry  ri  r   Úget_num_fig_managersr+  rh   s   €r(   Údelayed_destroyz0FigureManagerTk.destroy.<locals>.delayed_destroy@  s`   ø€ ØŒK×ÒÑ!Ô!Ð!àÔ"ð #­3Ô+CÑ+EÔ+Eð #Ø”× Ò Ñ"Ô"Ð"Ð"Ð"ð#ð #ð #ð #r9   r/   r   )rA  rœ   r˜   rk   r�   rH  rG  Útrace_remover	   rS  r?  rp   re   r"  )r`   rV   r�  s   `  r(   ry  zFigureManagerTk.destroy3  sÿ   ø€ ØŒ;Ô$ð 	JØŒKÔ!×.Ò.¨t¬{Ô/HÑIÔIÐIØŒ;Ô%ð 	KØŒKÔ!×.Ò.¨t¬{Ô/IÑJÔJÐJØÔ"ð 	LØÔ×)Ò)¨'°4Ô3JÑKÔKÐKð	#ð 	#ð 	#ð 	#ð 	#õ Ô3Ñ5Ô5¸Ò=Ð=àŒK×"Ò" 4¤;Ô#4°a¸ÑIÔIÐIÐIÐIàŒK×ÒÑ Ô Ð ØˆOÑÔÐÐÐr9   c                 ó4   — | j                              ¦   «         S r[   ©r?  Úwm_titlerh   s    r(   Úget_window_titlez FigureManagerTk.get_window_titleM  s   € ØŒ{×#Ò#Ñ%Ô%Ð%r9   c                 ó:   — | j                              |¦  «         d S r[   r„  )r`   Útitles     r(   Úset_window_titlez FigureManagerTk.set_window_titleP  s   € ØŒ×Ò˜UÑ#Ô#Ð#Ð#Ð#r9   c                 óŒ   — t          | j                             d¦  «        ¦  «        }| j                             d| ¦  «         d S )Nz-fullscreen)Úboolr?  r}  )r`   Úis_fullscreens     r(   Úfull_screen_togglez"FigureManagerTk.full_screen_toggleS  s@   € Ý˜Tœ[×3Ò3°MÑBÔBÑCÔCˆØŒ×Ò˜}°-Ð.?Ñ@Ô@Ð@Ð@Ð@r9   )rq   rr   rs   rt   ri  r^   Úclassmethodre  rl  rK  r¤   r]  ry  r†  r‰  r�  ru   rv   s   @r(   rz   rz   ·  só   ø€ € € € € ðð ð €Nðð ð ð ð ð* ð"ð "ñ „[ð"ðH ð5ð 5ñ „[ð5ð1ð 1ð 1ðDð Dð Dðð ð ðð ð ð4&ð &ð &ð$ð $ð $ðAð Að Að Að Að Að Ar9   rz   c                   ó  ‡ — e Zd Z  ej        dd¬¦  «         ed„ ¦  «        ¦  «        Zdddœd„Zd	„ Zd
„ Z	ˆ fd„Z
ˆ fd„Zd„ Zd„ Zd„ Z  ej        d¦  «         ed„ ¦  «        ¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚNavigationToolbar2Tkú3.6zself.master)Úalternativec                 ó   — | j         S r[   rR  rh   s    r(   rn   zNavigationToolbar2Tk.<lambda>Z  s   € ˜dœk€ r9   NT)Úpack_toolbarc                ó(  — |€|                      ¦   «         j        }t          j                             | |dt          |j        j        j        ¦  «        d¬¦  «         i | _	        | j
        D ]‘\  }}}}|€|                      ¦   «          Œ|                      |t          t          j        d|› d�¦  «        ¦  «        |dv t!          | |¦  «        ¬¦  «        x| j	        |<   }|�t"                               ||¦  «         Œ’t&          j                             |d	¬
¦  «        | _        t          j        | | j        d¬¦  «        }	|	                     t          j        ¬¦  «         t          j        | ¬¦  «        | _        t          j        | | j        | j        t          j        ¬¦  «        | _        | j                             t          j        ¬¦  «         t;          j        | |¦  «         |r-|                      t          j        t          j        ¬¦  «         dS dS )a  
        Parameters
        ----------
        canvas : `FigureCanvas`
            The figure canvas on which to operate.
        window : tk.Window
            The tk.Window which owns this toolbar.
        pack_toolbar : bool, default: True
            If True, add the toolbar to the parent's pack manager's packing
            list during initialization with ``side="bottom"`` and ``fill="x"``.
            If you want to use the toolbar with a different layout manager, use
            ``pack_toolbar=False``.
        Nr;   é2   )r€   r‚   rQ   rP   zimages/ú.png)ÚzoomÚpan)ÚtoggleÚcommandé
   )r�   Úsizeu   Â 
Â )r€   ÚfontÚtext©r7  rR  )r€   rž  ÚtextvariableÚjustify©r7  r8  ) rÓ   r€   r/   ÚFramer^   rÈ   r·   rO   rQ   Ú_buttonsÚ	toolitemsÚ_SpacerÚ_Buttonr1   r	   rW  rì   ÚToolTipÚcreateToolTipr/  rž  ÚFontÚ_label_fontÚLabelrB  ÚRIGHTÚ	StringVarÚmessageÚ_message_labelr   ÚBOTTOMÚX)
r`   rA  r?  r”  rŸ  Útooltip_textÚ
image_fileÚcallbackÚbuttonÚlabels
             r(   r^   zNavigationToolbar2Tk.__init__\  s  € ð ˆ>Ø×)Ò)Ñ+Ô+Ô2ˆFÝ
Œ×Ò˜$ v¸1Ý # F¤MÔ$6Ô$<Ñ =Ô =Àbð 	ñ 	Jô 	Jð 	Jð ˆŒØ8<¼ð 	@ð 	@Ñ4ˆD�, 
¨HØˆ|à—’‘”��à/3¯|ª|ØÝ�Ô,Ð-G°zÐ-GÐ-GÐ-GÑHÔHÑIÔIØ# Ð6Ý# D¨(Ñ3Ô3ð	 0<ñ 0ô 0ð �”˜dÑ# fð  Ð+Ý×)Ò)¨&°,Ñ?Ô?Ð?øå"œ<×,Ò,°&¸rÐ,ÑBÔBˆÔõ ” ¨4Ô+;ØFðHñ Hô Hˆà�
Š
�œˆ
Ñ!Ô!Ð!å”|¨4Ð0Ñ0Ô0ˆŒÝ œh¨d¸Ô9IØ48´LÝ/1¬xð9ñ 9ô 9ˆÔð 	Ô× Ò ¥b¤hÐ Ñ/Ô/Ð/åÔ# D¨&Ñ1Ô1Ð1Øð 	1Ø�IŠI�2œ9­2¬4ˆIÑ0Ô0Ð0Ð0Ð0ð	1ð 	1r9   c                 ó  — |                       ¦   «         D ]×}t          |t          j        t          j        f¦  «        r-t          |d¦  «        rt                               | |¦  «         ŒTŒUt          |t          j        ¦  «        r-| 	                    d¬¦  «         | 
                    d¬¦  «         Œœt          |t          j        ¦  «        rŒ·t                               d|j        ¦  «         ŒØ| j         	                    d¬¦  «         d	S )
a¬  
        Scale all children of the toolbar to current DPI setting.

        Before this is called, the Tk scaling setting will have been updated to
        match the new DPI. Tk widgets do not update for changes to scaling, but
        all measurements made after the change will match the new scaling. Thus
        this function re-applies all the same sizes in points, which Tk will
        scale correctly to pixels.
        Ú_image_fileÚ18p)rP   Ú3p)ÚpadxzUnknown child class %srœ  ©r�  N)Úwinfo_childrenÚ
isinstancer/   ÚButtonÚCheckbuttonrq  r�  Ú_set_image_for_buttonr¤  rÀ   Úpack_configurer­  rZ  ÚwarningÚwinfo_classr¬  ©r`   r—   s     r(   ro  zNavigationToolbar2Tk._rescale“  s  € ð ×)Ò)Ñ+Ô+ð 	Kð 	KˆFÝ˜&¥2¤9­b¬nÐ"=Ñ>Ô>ð KÝ˜6 =Ñ1Ô1ð å(×>Ò>¸tÀVÑLÔLÐLÐLð Ý˜F¥B¤HÑ-Ô-ð KØ× Ò ¨Ð Ñ.Ô.Ð.Ø×%Ò%¨4Ð%Ñ0Ô0Ð0Ð0Ý˜F¥B¤HÑ-Ô-ð KØå—’Ð5°vÔ7IÑJÔJÐJÐJØÔ×"Ò"¨Ð"Ñ+Ô+Ð+Ð+Ð+r9   c                 óð   — dt           j        fdt           j        ffD ]X\  }}|| j        v rJ| j        |k    r | j        |                              ¦   «          Œ9| j        |                              ¦   «          ŒYd S )NÚZoomÚPan)r   ÚZOOMÚPANr¥  ÚmodeÚselectÚdeselect)r`   rŸ  rÍ  s      r(   Ú_update_buttons_checkedz,NavigationToolbar2Tk._update_buttons_checked®  s‚   € à"¥E¤JÐ/°%½¼Ð1CÐDð 	3ð 	3‰JˆD�$Ø�t”}Ð$Ð$Ø”9 Ò$Ð$Ø”M $Ô'×.Ò.Ñ0Ô0Ð0Ð0à”M $Ô'×0Ò0Ñ2Ô2Ð2øð	3ð 	3r9   c                 ó\   •—  t          ¦   «         j        |Ž  |                      ¦   «          d S r[   )r]   r™  rÐ  ©r`   rV   rb   s     €r(   r™  zNavigationToolbar2Tk.pan·  s.   ø€ Ø�‰ŒŒ�TÐÐØ×$Ò$Ñ&Ô&Ð&Ð&Ð&r9   c                 ó\   •—  t          ¦   «         j        |Ž  |                      ¦   «          d S r[   )r]   r˜  rÐ  rÒ  s     €r(   r˜  zNavigationToolbar2Tk.zoom»  s.   ø€ Ø�‰ŒŒ�dÐÐØ×$Ò$Ñ&Ô&Ð&Ð&Ð&r9   c                 ó:   — | j                              |¦  «         d S r[   )r°  Úset©r`   Úss     r(   Úset_messagez NavigationToolbar2Tk.set_message¿  s   € ØŒ×Ò˜ÑÔÐÐÐr9   c                 óÐ  — | j         j        r)| j         j                             | j         j        ¦  «         | j         j        r)| j         j                             | j         j        ¦  «         | j         j        j        j        }||z
  }||z
  }| j         j                             ||||¦  «        | j         _        | j         j                             ||||dd¬¦  «        | j         _        d S )Nr   )ré   ré   )ÚoutlineÚdash)	rA  r¶   r˜   rÇ   rµ   r·   rO   rP   Úcreate_rectangle)r`   rŽ   Úx0Úy0rR   rS   rP   s          r(   Údraw_rubberbandz$NavigationToolbar2Tk.draw_rubberbandÂ  sã   € àŒ;Ô-ð 	MØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØŒ;Ô-ð 	MØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ”Ô#Ô(Ô/ˆØ�b‰[ˆØ�b‰[ˆàŒKÔ!×2Ò2Ø�B˜˜Bñ ô  ð 	ŒÔ*ð ŒKÔ!×2Ò2Ø�B˜˜B¨°fð 3ñ >ô >ð 	ŒÔ*Ð*Ð*r9   c                 ó  — | j         j        r5| j         j                             | j         j        ¦  «         d | j         _        | j         j        r7| j         j                             | j         j        ¦  «         d | j         _        d S d S r[   )rA  r¶   r˜   rÇ   rµ   rh   s    r(   Úremove_rubberbandz&NavigationToolbar2Tk.remove_rubberbandÒ  s|   € ØŒ;Ô-ð 	6ØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ15ˆDŒKÔ.ØŒ;Ô-ð 	6ØŒKÔ!×(Ò(¨¬Ô)KÑLÔLÐLØ15ˆDŒKÔ.Ð.Ð.ð	6ð 	6r9   c                 ó   — | j         j        S r[   )rA  rµ   rh   s    r(   rn   zNavigationToolbar2Tk.<lambda>Û  s   € ˜dœkÔ@€ r9   c           	      óh  ‡‡— ‰j         €dS t          j        d‰j         ¦  «        }|                     |j                             dd¦  «        ¦  «        }‰                     d¦  «        }ˆfd„Šˆfd„}d„ }t          j        |d	k    r| 	                    ¦   «         r|n|¦  «        5 }| 
                    d
¦  «        }t          j        |                     ||f¦  «        | ¬¦  «        }|‰_        dt          j        ‰                     ‰                     d¦  «        ¦  «        ¦  «        z  }	 |||	¦  «        }
t          j        |
                     ||f¦  «        | ¬¦  «        }|‰_        ddd¦  «         n# 1 swxY w Y    |d¦  «        rd|i}nd|i}t)          ‰t*          j        ¦  «        rr‰                     d¦  «        dk    rY| j        dk    rd}n5 ‰d¦  «        \  }}} ‰d¦  «        \  }}}||z   dz  ||z   dz  ||z   dz  f} ||¦  «        r||d<   n||d<    ‰j        di |¤dddœ¤Ž dS )z�
        Set the image for a button based on its pixel size.

        The pixel size is determined by the DPI scaling of the window.
        NÚimagesr—  z
_large.pngr»  c                 óT   •— ‰                      ‰                     | ¦  «        ¦  «        S r[   )Ú	winfo_rgbÚcget)Ú
color_namer·  s    €r(   Ú
_get_colorz>NavigationToolbar2Tk._set_image_for_button.<locals>._get_colorî  s#   ø€ à×#Ò# F§K¢K°
Ñ$;Ô$;Ñ<Ô<Ð<r9   c                 ój   •— t          | t          ¦  «        r ‰| ¦  «        } t          | ¦  «        dk     S )Ng    àÿß@)rÀ  r1   rB   )Úcolorré  s    €r(   Ú_is_darkz<NavigationToolbar2Tk._set_image_for_button.<locals>._is_darkò  s5   ø€ Ý˜%¥Ñ%Ô%ð *Ø"˜
 5Ñ)Ô)�Ý�u‘:”: 	Ò)Ð)r9   c                 óÔ   — t          j        | ¦  «                             ¦   «         }|dd d…f         dk                         d¬¦  «        }|||d d…f<   t	          j        |d¬¦  «        S )N.ré   r   ró   )ÚaxisÚRGBA)rÍ  )r<   r=   ÚcopyÚallr   Ú	fromarray)r†   rë  Ú
image_dataÚ
black_masks       r(   Ú_recolor_iconzANavigationToolbar2Tk._set_image_for_button.<locals>._recolor_icon÷  sl   € Ýœ EÑ*Ô*×/Ò/Ñ1Ô1ˆJØ$ S¨"¨1¨" WÔ-°Ò2×7Ò7¸RÐ7Ñ@Ô@ˆJØ).ˆJ�z 2 A 2�~Ñ&Ý”? :°FÐ;Ñ;Ô;Ð;r9   é   rï  rR  g ààào?r'   r�   r†   Úselectcolorr=  Úx11Úactivebackgroundr;   Úselectimage)rP   rQ   r  )rº  r	   rW  Ú	with_namerº   ÚreplaceÚwinfo_pixelsr   ÚopenÚexistsÚconvertr   r    r¤   Ú_ntimager<   Úarrayræ  rç  Ú_ntimage_altrÀ  r/   rÂ  Ú_windowingsystemrÀ   )r`   r·  Úpath_regularÚ
path_larger�  rì  rõ  Úimr†   r'   Úim_altÚ	image_altÚimage_kwargsr÷  Úr1Úg1Úb1Úr2Úg2Úb2ré  s    `                  @r(   rÃ  z*NavigationToolbar2Tk._set_image_for_buttonÝ  sý  øø€ ð ÔÐ%ØˆFõ Ô+¨H°fÔ6HÑIÔIˆØ!×+Ò+ØÔ×%Ò% f¨lÑ;Ô;ñ=ô =ˆ
à×"Ò" 5Ñ)Ô)ˆð	=ð 	=ð 	=ð 	=ð 	=ð	*ð 	*ð 	*ð 	*ð 	*ð
	<ð 	<ð 	<õ ŒZ t¨b¢y y°Z×5FÒ5FÑ5HÔ5H y˜
˜
Ø)ñ+ô +ð 	,Ø.0à—’˜FÑ#Ô#ˆBÝÔ& r§y¢y°$¸°Ñ'>Ô'>ÀtÐLÑLÔLˆEØ#ˆFŒOð &­¬Ø× Ò  §¢¨\Ñ!:Ô!:Ñ;Ô;ñ*=ô *=ñ =ˆJà"�] 2 zÑ2Ô2ˆFÝÔ*Ø—’˜t T˜lÑ+Ô+°Dð:ñ :ô :ˆIà"+ˆFÔð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ˆ8�LÑ!Ô!ð 	,ð
 $ YÐ/ˆLˆLà# UÐ+ˆLõ
 �v�rœ~Ñ.Ô.ð	4à—’˜MÑ*Ô*¨bÒ0Ð0àÔ$¨Ò-Ð-Ø+��ð
 (˜Z¨Ñ6Ô6‘
��B˜Ø'˜ZÐ(:Ñ;Ô;‘
��B˜Ø " 2¡ q™y¨2¨b©5°!©)°b¸±e¸Q±YÐ?�Øˆx˜Ñ$Ô$ð 4Ø.7�˜]Ñ+Ð+à.3�˜]Ñ+àˆÔÐCÐC˜<ÐC°¸UÐCÐCÐCÐCÐCÐCÐCs   Â&CE5Å5E9Å<E9c           
      óp  — |st          j        | ||ddd¬¦  «        }n8t          j        | ¬¦  «        }t          j        | ||d|ddd¬¦  «        }||_        ||_        |�t                               | |¦  «         n|                     | j	        ¬¦  «         | 
                    t           j        ¬	¦  «         |S )
NÚflatÚgroover   )r€   rŸ  r›  ÚreliefÚ
overreliefr‚   rR  F)r€   rŸ  r›  ÚindicatoronÚvariableÚ	offreliefr  r‚   )rž  r   )r/   rÁ  rF  rÂ  Úvarrº  r�  rÃ  rÀ   r¬  rB  ÚLEFT)r`   rŸ  rµ  rš  r›  Úbr  s          r(   r¨  zNavigationToolbar2Tk._Button,  sÎ   € Øð 	Ý”	Ø $°Ø¨(Àðñ ô ˆAˆAõ ”) 4Ð(Ñ(Ô(ˆCÝ”Ø $°ÀUØ¨¸8Øðñ ô ˆAð
 ˆAŒEØ"ˆŒØÐ!å ×6Ò6°t¸QÑ?Ô?Ð?Ð?à�KŠK˜TÔ-ˆKÑ.Ô.Ð.Ø	�Š•B”GˆÑÔÐØˆr9   c                 óŒ   — t          j        | dt           j        d¬¦  «        }|                     t           j        d¬¦  «         |S )Nr»  ÚDarkGray)r€   rP   r  Úbgr¼  )r7  r½  )r/   r¤  ÚRIDGErB  r  rÖ  s     r(   r§  zNavigationToolbar2Tk._SpacerH  s9   € åŒH˜D¨µr´xÀJÐOÑOÔOˆØ	�Š•B”G $ˆÑ'Ô'Ð'Øˆr9   c                 óˆ  — | j                              ¦   «                              ¦   «         }| j                              ¦   «         }|                     |¦  «        }||fgt          |                     ¦   «         ¦  «        z   }d„ |D ¦   «         }d}t          j         	                    t          j        d         ¦  «        }| j                              ¦   «         }	t          j                             | j                              ¦   «         j        d||||	¬¦  «        }
|
dv rd S |dk    r9t          j                             t'          |
¦  «        ¦  «        t          j        d<   	 | j         j                             |
¦  «         d S # t,          $ r8}t          j                             dt'          |¦  «        ¦  «         Y d }~d S d }~ww xY w)Nc                 ó"   — g | ]\  }}|d |z  f‘ŒS )z*.%sr  )r  Úextrº   s      r(   r  z4NavigationToolbar2Tk.save_figure.<locals>.<listcomp>W  s%   € ÐOÐOÐO±°°d˜˜v¨™|Ð,ÐOÐOÐOr9   r=  zsavefig.directoryzSave the figure)r€   rˆ  Ú	filetypesÚdefaultextensionÚ
initialdirÚinitialfile)r=  r  zError saving file)rA  Úget_supported_filetypesrð  Úget_default_filetyper-   ÚsortedÚitemsÚosÚpathÚ
expanduserr$   r%   Úget_default_filenamer/  Ú
filedialogÚasksaveasfilenamerÓ   r€   Údirnamer1   r·   ÚsavefigrY  Ú
messageboxÚ	showerror)r`   rV   r#  Údefault_filetypeÚdefault_filetype_nameÚsorted_filetypesÚtk_filetypesr$  r%  r&  ÚfnamerW   s               r(   Úsave_figurez NavigationToolbar2Tk.save_figureN  sº  € Ø”K×7Ò7Ñ9Ô9×>Ò>Ñ@Ô@ˆ	Øœ;×;Ò;Ñ=Ô=Ðð !*§¢Ð.>Ñ ?Ô ?ÐØ.Ð0EÐFÐGÝ$ Y§_¢_Ñ%6Ô%6Ñ7Ô7ñ8ÐàOÐOÐ>NÐOÑOÔOˆð ÐÝ”W×'Ò'­¬Ð5HÔ(IÑJÔJˆ
Ø”k×6Ò6Ñ8Ô8ˆÝÔ"×4Ò4Ø”;×,Ò,Ñ.Ô.Ô5Ø#Ø"Ø-Ø!Ø#ð 5ñ ô ˆð �HÐÐØˆFà˜ÒÐå”—’¥ E¡
¤
Ñ+Ô+õ ŒLÐ,Ñ-ð	FàŒKÔ×&Ò& uÑ-Ô-Ð-Ð-Ð-øÝð 	Fð 	Fð 	FÝÔ×(Ò(Ð)<½cÀ!¹f¼fÑEÔEÐEÐEÐEÐEÐEÐEÐEøøøøð	Føøøs   ÅE? Å?
GÆ	-F<Æ<Gc                 ó,  — t           j        t           j        dœ}| j        j        dk    }| j        j        t          | j        j        ¦  «        dz
  k     }d| j        v r||         | j        d         d<   d| j        v r||         | j        d         d<   d S d S )N)TFr   r   ÚBackr  ÚForward)r/   ÚNORMALÚDISABLEDÚ
_nav_stackÚ_posÚlenÚ	_elementsr¥  )r`   Ú	state_mapÚcan_backÚcan_forwards       r(   Úset_history_buttonsz(NavigationToolbar2Tk.set_history_buttonsv  s—   € Ýœ9­R¬[Ð9Ð9ˆ	Ø”?Ô'¨!Ò+ˆØ”oÔ*­S°´Ô1JÑ-KÔ-KÈaÑ-OÒOˆà�T”]Ð"Ð"Ø-6°xÔ-@ˆDŒM˜&Ô! 'Ñ*à˜œÐ%Ð%Ø09¸+Ô0FˆDŒM˜)Ô$ WÑ-Ð-Ð-ð &Ð%r9   r[   )rq   rr   rs   r   Ú
deprecatedÚpropertyr?  r^   ro  rÐ  r™  r˜  rØ  rß  rá  ÚlastrectrÃ  r¨  r§  r:  rG  ru   rv   s   @r(   r�  r�  X  s  ø€ € € € € Ø>ˆ_ˆTŒ_˜U°Ð>Ñ>Ô>ØˆÐ)Ð)Ñ*Ô*ñ,ô ,€Fð51¸Dð 51ð 51ð 51ð 51ð 51ðn,ð ,ð ,ð63ð 3ð 3ð'ð 'ð 'ð 'ð 'ð'ð 'ð 'ð 'ð 'ðð ð ð?ð ?ð ?ð 6ð 6ð 6ð &ˆˆtŒ˜uÑ%Ô%ØˆÐ@Ð@ÑAÔAñCô C€HðMDð MDð MDð^ð ð ð8ð ð ð&Fð &Fð &FðP	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gr9   r�  c                   ó:   — e Zd ZdZed„ ¦   «         Zd„ Zd„ Zd„ ZdS )r©  zi
    Tooltip recipe from
    http://www.voidspace.org.uk/python/weblog/arch_d7_2006_07_01.shtml#e387
    c                 ó–   ‡‡— t          | ¦  «        Šˆˆfd„}ˆfd„}|                      d|¦  «         |                      d|¦  «         d S )Nc                 ó2   •— ‰                      ‰¦  «         d S r[   )Úshowtip)rŽ   rŸ  ÚtoolTips    €€r(   Úenterz$ToolTip.createToolTip.<locals>.enterŠ  s   ø€ Ø�OŠO˜DÑ!Ô!Ð!Ð!Ð!r9   c                 ó0   •— ‰                      ¦   «          d S r[   )Úhidetip)rŽ   rO  s    €r(   Úleavez$ToolTip.createToolTip.<locals>.leaveŒ  s   ø€ Ø�OŠOÑÔÐÐÐr9   rˆ   r‰   )r©  r£   )r—   rŸ  rP  rS  rO  s    `  @r(   rª  zToolTip.createToolTip‡  st   øø€ å˜&‘/”/ˆð	"ð 	"ð 	"ð 	"ð 	"ð 	"ð	ð 	ð 	ð 	ð 	à�Š�I˜uÑ%Ô%Ð%Ø�Š�I˜uÑ%Ô%Ð%Ð%Ð%r9   c                 óL   — || _         d | _        d | _        dx| _        | _        d S )Nr   )r—   Ú	tipwindowrI   rÖ   rØ   rÇ  s     r(   r^   zToolTip.__init__‘  s)   € ØˆŒØˆŒØˆŒØÐˆŒ�”��r9   c                 ó¸  — || _         | j        s| j         sdS | j                             d¦  «        \  }}}}|| j                             ¦   «         z   | j                             ¦   «         z   }|| j                             ¦   «         z   }t          j        | j        ¦  «        x| _        }| 	                    d¦  «         | 
                    d||fz  ¦  «         	 |j                             dd|j        dd¦  «         n# t          j        $ r Y nw xY wt          j        || j         t          j        t          j        d¬	¦  «        }|                     d¬
¦  «         dS )zDisplay text in tooltip window.NÚinsertr   z+%d+%dz!::tk::unsupported::MacWindowStyleÚstyleÚhelpÚnoActivates)rŸ  r¢  r  r‚   )Úipadx)rŸ  rU  r—   rO   rû   Úwinfo_widthrü   r/   ÚToplevelÚwm_overrideredirectÚwm_geometryrJ   Ú_wrL   r­  r  ÚSOLIDrB  )r`   rŸ  rÖ   rØ   Ú_Útwr¸  s          r(   rN  zToolTip.showtip—  s^  € àˆŒ	ØŒ>ð 	 ¤ð 	ØˆFØ”[×%Ò% hÑ/Ô/‰
ˆˆ1ˆa�Ø�”×'Ò'Ñ)Ô)Ñ)¨D¬K×,CÒ,CÑ,EÔ,EÑEˆØ�”×'Ò'Ñ)Ô)Ñ)ˆÝ œk¨$¬+Ñ6Ô6Ð6ˆŒ˜Ø
×Ò˜qÑ!Ô!Ð!Ø
�Š�x 1 a &Ñ(Ñ)Ô)Ð)ð	àŒE�JŠJÐ:Ø ¤Ø˜}ñ.ô .ð .ð .øõ Œ{ð 	ð 	ð 	ØˆDð	øøøå”˜ $¤)µR´WÝ "¤°að9ñ 9ô 9ˆà�
Š
˜ˆ
ÑÔÐÐÐs   Ã#C= Ã=DÄDc                 óR   — | j         }d | _         |r|                     ¦   «          d S d S r[   )rU  ry  )r`   rc  s     r(   rR  zToolTip.hidetip­  s3   € ØŒ^ˆØˆŒØð 	Ø�JŠJ‰LŒLˆLˆLˆLð	ð 	r9   N)	rq   rr   rs   rt   r4  rª  r^   rN  rR  r  r9   r(   r©  r©  ‚  sf   € € € € € ðð ð ð&ð &ñ „\ð&ðð ð ðð ð ð,ð ð ð ð r9   r©  c                   ó`   — e Zd Zd„ Zd„ Z  ej        d¦  «         ed„ ¦  «        ¦  «        ZdS )ÚRubberbandTkc                 óh   — t                                |                      ¦   «         d ||||¦  «         d S r[   )r�  rß  Ú"_make_classic_style_pseudo_toolbar)r`   rÝ  rÞ  rR   rS   s        r(   rß  zRubberbandTk.draw_rubberband¶  sB   € Ý×,Ò,Ø×3Ò3Ñ5Ô5°t¸RÀÀRÈñ	Mô 	Mð 	Mð 	Mð 	Mr9   c                 ó^   — t                                |                      ¦   «         ¦  «         d S r[   )r�  rá  rh  rh   s    r(   rá  zRubberbandTk.remove_rubberbandº  s3   € Ý×.Ò.Ø×3Ò3Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	7r9   r‘  c                 ó$   — | j         j        j        S r[   )r·   rA  rµ   rh   s    r(   rn   zRubberbandTk.<lambda>¿  s   € ˜dœkÔ0ÔG€ r9   N)	rq   rr   rs   rß  rá  r   rH  rI  rJ  r  r9   r(   rf  rf  ´  sa   € € € € € ðMð Mð Mð7ð 7ð 7ð &ˆˆtŒ˜uÑ%Ô%ØˆÐGÐGÑHÔHñJô J€H€H€Hr9   rf  c                   óF   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ ZdS )Ú	ToolbarTkNc                 óÆ  — t          j        | |¦  «         |€#| j        j                             ¦   «         j        }| j        j        j        j        j        \  }}d||z
  }}t          j
                             | |t          |¦  «        t          |¦  «        d¬¦  «         t          j                             d¬¦  «        | _        t          j        | ¬¦  «        | _        t          j        | | j        | j        ¬¦  «        | _        | j                             t          j        ¬¦  «         i | _        |                      t          j        t          j        ¬	¦  «         i | _        d S )
Nr–  r;   )r€   rQ   rP   r‚   rœ  r¾  rR  )r€   rž  r¡  r   r£  )r   r^   ÚtoolmanagerrA  rÓ   r€   r·   rO   Ú	intervalxr/   r¤  rÈ   r/  rž  r«  r¬  r¯  Ú_messager­  r±  rB  r®  Ú
_toolitemsrC  r³  Ú_groups)r`   rn  r?  ÚxminÚxmaxrP   rQ   s          r(   r^   zToolbarTk.__init__Ã  s1  € ÝÔ" 4¨Ñ5Ô5Ð5Øˆ>ØÔ%Ô,×:Ò:Ñ<Ô<ÔCˆFØÔ%Ô,Ô3Ô8ÔB‰
ˆˆdØ˜D 4™K�ˆÝ
Œ×Ò˜$ vÝ # E¡
¤
µ3°v±;´;Ø&'ð 	ñ 	)ô 	)ð 	)õ #œ<×,Ò,°"Ð,Ñ5Ô5ˆÔÝœ¨DÐ1Ñ1Ô1ˆŒÝ œh¨d¸Ô9IØ48´MðCñ Cô CˆÔàÔ× Ò ¥b¤hÐ Ñ/Ô/Ð/ØˆŒØ�	Š	•r”v¥B¤Dˆ	Ñ)Ô)Ð)ØˆŒˆˆr9   c                 ó6   — t                                | ¦  «        S r[   )r�  ro  rh   s    r(   ro  zToolbarTk._rescaleÕ  s   € Ý#×,Ò,¨TÑ2Ô2Ð2r9   c                 óÄ  ‡ ‡— ‰                       |¦  «        }|                     ¦   «         }|t          |¦  «        k    s|dk     rd }	n||         }	t                               |‰||ˆˆ fd„¦  «        }
|
                     |	¬¦  «         |�t                               |
|¦  «         ‰ j         	                    ‰g ¦  «         ‰ j        ‰          
                    |
¦  «         d S )Nr   c                  ó.   •— ‰                      ‰ ¦  «        S r[   )Ú_button_click)rº   r`   s   €€r(   rn   z(ToolbarTk.add_toolitem.<locals>.<lambda>á  s   ø€ °d×6HÒ6HÈÑ6NÔ6N€ r9   )Úbefore)Ú_get_groupframeÚpack_slavesrB  r�  r¨  rÄ  r©  rª  rq  Ú
setdefaultÚappend)r`   rº   ÚgroupÚpositionrµ  Údescriptionrš  ÚframeÚbuttonsry  r·  s   ``         r(   Úadd_toolitemzToolbarTk.add_toolitemØ  sì   øø€ à×$Ò$ UÑ+Ô+ˆØ×#Ò#Ñ%Ô%ˆØ•s˜7‘|”|Ò#Ð# x°!¢| |ØˆFˆFà˜XÔ&ˆFÝ%×-Ò-¨e°T¸:ÀvØ.NÐ.NÐ.NÐ.NÐ.NñPô Pˆà×Ò VÐÑ,Ô,Ð,ØÐ"Ý×!Ò! &¨+Ñ6Ô6Ð6ØŒ×"Ò" 4¨Ñ,Ô,Ð,ØŒ˜Ô×$Ò$ VÑ,Ô,Ð,Ð,Ð,r9   c                 ó  — || j         vrr| j         r|                      ¦   «          t          j        | d¬¦  «        }|                     t          j        t          j        ¬¦  «         | j        |_        || j         |<   | j         |         S )Nr   )r€   r‚   r£  )rr  Ú_add_separatorr/   r¤  rB  r  ÚYr¬  )r`   r~  r�  s      r(   rz  zToolbarTk._get_groupframeè  s}   € Ø˜œÐ$Ð$ØŒ|ð &Ø×#Ò#Ñ%Ô%Ð%Ý”H D°aÐ8Ñ8Ô8ˆEØ�JŠJ�BœG­"¬$ˆJÑ/Ô/Ð/Ø $Ô 0ˆEÔØ"'ˆDŒL˜ÑØŒ|˜EÔ"Ð"r9   c                 ó6   — t                                | ¦  «        S r[   )r�  r§  rh   s    r(   r…  zToolbarTk._add_separatorò  s   € Ý#×+Ò+¨DÑ1Ô1Ð1r9   c                 ó0   — |                       |¦  «         d S r[   )Útrigger_tool)r`   rº   s     r(   rx  zToolbarTk._button_clickõ  s   € Ø×Ò˜$ÑÔÐÐÐr9   c                 ó’   — || j         vrd S | j         |         D ]-}|r|                     ¦   «          Œ|                     ¦   «          Œ.d S r[   )rq  rÎ  rÏ  )r`   rº   ÚtoggledÚtoolitems       r(   Útoggle_toolitemzToolbarTk.toggle_toolitemø  sd   € Ø�t”Ð&Ð&ØˆFØœ¨Ô-ð 	$ð 	$ˆHØð $Ø—’Ñ!Ô!Ð!Ð!à×!Ò!Ñ#Ô#Ð#Ð#ð		$ð 	$r9   c                 ó^   — | j         |         D ]}|                     ¦   «          Œ| j         |= d S r[   )rq  Úpack_forget)r`   rº   rŒ  s      r(   Úremove_toolitemzToolbarTk.remove_toolitem  s=   € Øœ¨Ô-ð 	#ð 	#ˆHØ× Ò Ñ"Ô"Ð"Ð"ØŒO˜DÐ!Ð!Ð!r9   c                 ó:   — | j                              |¦  «         d S r[   )rp  rÕ  rÖ  s     r(   rØ  zToolbarTk.set_message  s   € ØŒ×Ò˜!ÑÔÐÐÐr9   r[   )rq   rr   rs   r^   ro  rƒ  rz  r…  rx  r�  r�  rØ  r  r9   r(   rl  rl  Â  s    € € € € € ðð ð ð ð$3ð 3ð 3ð-ð -ð -ð #ð #ð #ð2ð 2ð 2ð ð  ð  ð$ð $ð $ð"ð "ð "ð
ð ð ð ð r9   rl  c                   ó   — e Zd Zd„ ZdS )ÚSaveFigureTkc                 ó^   — t                                |                      ¦   «         ¦  «         d S r[   )r�  r:  rh  ©r`   rV   s     r(   ÚtriggerzSaveFigureTk.trigger  s3   € Ý×(Ò(Ø×3Ò3Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	7r9   N©rq   rr   rs   r–  r  r9   r(   r“  r“  
  s#   € € € € € ð7ð 7ð 7ð 7ð 7r9   r“  c                   ó   — e Zd Zd„ ZdS )ÚConfigureSubplotsTkc                 ó:   — t                                | ¦  «         d S r[   )r�  Úconfigure_subplotsr•  s     r(   r–  zConfigureSubplotsTk.trigger  s   € Ý×/Ò/°Ñ5Ô5Ð5Ð5Ð5r9   Nr—  r  r9   r(   r™  r™    s#   € € € € € ð6ð 6ð 6ð 6ð 6r9   r™  c                   ó   — e Zd Zd„ ZdS )ÚHelpTkc                 ó‚   ‡— t          | j        j        j        |                      ¦   «         dg¦  «        Šˆfd„‰_        d S )NÚOKc                 ó@   •— ‰j         j                             ¦   «         S r[   )r�  r€   r@  )rç   Údialogs    €r(   rn   z HelpTk.trigger.<locals>.<lambda>  s   ø€  &¤,Ô"5×">Ò">Ñ"@Ô"@€ r9   )r   r·   rA  r˜   Ú_get_help_textÚdone)r`   rV   r¡  s     @r(   r–  zHelpTk.trigger  sE   ø€ ÝØŒKÔÔ(¨$×*=Ò*=Ñ*?Ô*?À$ÀñIô Iˆà@Ð@Ð@Ð@ˆŒˆˆr9   Nr—  r  r9   r(   r�  r�    s(   € € € € € ðAð Að Að Að Ar9   r�  c                   ó2   — e Zd Zej        ZeZeZ	ej
        ZdS )Ú
_BackendTkN)rq   rr   rs   r/   Ú	TkVersionÚbackend_versionrx   ÚFigureCanvasrz   ÚFigureManagerrl  r&  r  r9   r(   r¥  r¥  $  s'   € € € € € à”l€OØ!€LØ#€MØÔ.€H€H€Hr9   r¥  r[   )VÚuuidr²   Ú
contextlibr   ÚloggingrC   Úos.pathr+  r¥   r/  r/   Útkinter.filedialogÚtkinter.fontÚtkinter.messageboxÚtkinter.simpledialogr   Únumpyr<   ÚPILr   r   rO  r$   r   r   r	   r
   Úmatplotlib.backend_basesr   r   r   r   r   r   r   r   r   r   r   r   r   Úmatplotlib._pylab_helpersr   r=  r   Ú	getLoggerrq   rZ  ÚMOVEÚHANDÚPOINTERÚSELECT_REGIONÚWAITÚRESIZE_HORIZONTALÚRESIZE_VERTICALr.  r)   r,   Úuuid4ÚhexrK   rG   rH   r8   r.   rY   rx   rz   r¤  r�  r©  Ú_register_tool_classÚRubberbandBaserf  rl  ÚSaveFigureBaser“  ÚConfigureSubplotsBaser™  ÚToolHelpBaser�  ÚToolbarÚ_toolbar2_classÚ_toolmanager_toolbar_classÚexportr¥  r  r9   r(   ú<module>rÉ     s9  ðØ €€€Ø €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø €€€Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ð Ð à Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DðBð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð Bð *Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð ð €wÔ˜Ñ"Ô"€à„L�'Ø„L�'Ø„O�WØÔ˜8Ø„L�'ØÔÐ2ØÔÐ0ð€ð ðDð Dñ „ðDð €
à˜z˜tœz™|œ|Ô/Ñ/€àÐ ØÐ ð	-ð 	-ð 	-ð43ð 43ð 43ð 43ðn#ð #ð #ð #ð #ˆiñ #ô #ð #ðLRð Rð Rð Rð RÐ%ñ Rô Rð Rðj^Að ^Að ^Að ^Að ^AÐ'ñ ^Aô ^Að ^AðBgGð gGð gGð gGð gGÐ-¨r¬xñ gGô gGð gGðT	/ð /ð /ð /ð /ñ /ô /ð /ðd $€Ô# NÑ3Ô3ð
Jð 
Jð 
Jð 
Jð 
J�=Ô/ñ 
Jô 
Jñ 4Ô3ð
JðEð Eð Eð Eð EÐ! 2¤8ñ Eô Eð EðP $€Ô# NÑ3Ô3ð7ð 7ð 7ð 7ð 7�=Ô/ñ 7ô 7ñ 4Ô3ð7ð $€Ô# NÑ3Ô3ð6ð 6ð 6ð 6ð 6˜-Ô=ñ 6ô 6ñ 4Ô3ð6ð
 $€Ô# NÑ3Ô3ðAð Að Að Að Aˆ]Ô'ñ Aô Añ 4Ô3ðAð €Ø"6€Ô Ø-6€Ô *ð 
„ð/ð /ð /ð /ð /�ñ /ô /ñ „ð/ð /ð /r9   