ó
    {ñ:inÈ  ã            	       ó®  • S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r
SSKrSSKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJrJ r   SSK!J"r"  SSK#J$r$  SSK%J&r&  SSK'r'SSK(r'\RR                  " \*5      r+Sr,\RZ                  " S	5      S
 5       r. " S S\5      r/\R`                  " SSSSSSS9 " S S\5      5       r1 " S S\5      r2 " S S\\'Rf                  5      r4 " S S\45      r5 " S S\'Rl                  5      r7 " S S\5      r8S  r9S! r: " S" S#\\'Rv                  5      r< " S$ S%\\'Rv                  5      r=\R|                  " \45       " S& S'\R~                  5      5       r@\R|                  " \45       " S( S)\R‚                  5      5       rB\R|                  " \45       " S* S+\R†                  5      5       rD " S, S-\'RŠ                  5      rF\R|                  " \45       " S. S/\RŽ                  5      5       rH\R|                  " \45       " S0 S1\R’                  5      5       rJ\<\8lK        \=\8lL        \Rš                   " S2 S3\5      5       rNg)4zÒ
A wxPython backend for matplotlib.

Originally contributed by Jeremy O'Donoghue (jeremy@o-donoghue.com) and John
Hunter (jdhunter@ace.bsd.uchicago.edu).

Copyright (C) Jeremy O'Donoghue & John Hunter, 2003-4.
é    N)Ú_BackendÚFigureCanvasBaseÚFigureManagerBaseÚGraphicsContextBaseÚMouseButtonÚNavigationToolbar2ÚRendererBaseÚ	TimerBaseÚToolContainerBaseÚcursorsÚ
CloseEventÚKeyEventÚLocationEventÚ
MouseEventÚResizeEvent)Ú_apiÚcbookÚbackend_toolsÚ_c_internal_utils)ÚGcf)ÚPath)ÚAffine2DéK   é   c                  ó¨   • [         R                  " S5      n U R                  S5        [        R                  " 5         [
        R                  " 5         U $ )NFT)ÚwxÚAppÚSetExitOnFrameDeleter   Ú_setup_new_guiappr   Ú Win32_SetProcessDpiAwareness_max)Úwxapps    Úa/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/matplotlib/backends/backend_wx.pyÚ_create_wxappr#   ,   s:   € ä�FŠF�5‹M€EØ	×Ñ˜tÔ$Ü	×ÒÔä×6Ò6Ô8Ø€Ló    c                   ó>   ^ • \ rS rSrSrU 4S jrS rS rS rSr	U =r
$ )ÚTimerWxé6   z/Subclass of `.TimerBase` using wx.Timer events.c                 ó�   >• [         R                  " 5       U l        U R                  U R                  l        [
        TU ]  " U0 UD6  g ©N)r   ÚTimerÚ_timerÚ	_on_timerÚNotifyÚsuperÚ__init__)ÚselfÚargsÚkwargsÚ	__class__s      €r"   r/   ÚTimerWx.__init__9   s2   ø€ Ü—h’h“jˆŒØ!Ÿ^™^ˆ�‰ÔÜ‰Ò˜$Ð) &Ó)r$   c                 ód   • U R                   R                  U R                  U R                  5        g r)   )r+   ÚStartÚ	_intervalÚ_single©r0   s    r"   Ú_timer_startÚTimerWx._timer_start>   s   € Ø�‰×Ñ˜$Ÿ.™.¨$¯,©,Õ7r$   c                 ó8   • U R                   R                  5         g r)   )r+   ÚStopr9   s    r"   Ú_timer_stopÚTimerWx._timer_stopA   s   € Ø�‰×ÑÕr$   c                 ód   • U R                   R                  5       (       a  U R                  5         g g r)   )r+   Ú	IsRunningr:   r9   s    r"   Ú_timer_set_intervalÚTimerWx._timer_set_intervalD   s&   € Ø�;‰;× Ñ ×"Ñ"Ø×ÑÕð #r$   )r+   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r/   r:   r>   rB   Ú__static_attributes__Ú__classcell__©r3   s   @r"   r&   r&   6   s   ø† Ù9õ*ò
8ò÷ ð  r$   r&   z2.0r   Úbackendz
the futureÚwxaggz7See the Matplotlib usage FAQ for more info on backends.)ÚnameÚobj_typeÚremovalÚalternativeÚaddendumc                   óB  ^ • \ rS rSrSr0 S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S	\R                  _S
\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  _S\R                  0Er	\R                  \R                  \R                  S.r\R                  \R                  \R                   \R"                  \R$                  \R$                  \R$                  S.rU 4S jrS rS rS rS r\S 5       rS$S jrS rS%S jrS  rS! rS" r S#r!U =r"$ )&Ú
RendererWxéI   z¾
The renderer handles all the drawing primitives using a graphics
context instance that controls the colors/styles. It acts as the
'renderer' instance used by many classes in the hierarchy.
éd   éÈ   é,  i�  iô  iX  i¼  i   i„  Ú
ultralightÚlightÚnormalÚmediumÚsemiboldÚboldÚheavyÚ	ultraboldÚblack)Úitalicr[   Úoblique)ÚSansÚRomanÚScriptÚ
DecorativeÚModernÚCourierÚcourierc                 óè   >• [         TU ]  5         [        R                  S[	        U 5      5        UR                  5       U l        UR                  5       U l        Xl	        0 U l
        X l        SU l        g)z)Initialise a wxWindows renderer instance.ú%s - __init__()N)r.   r/   Ú_logÚdebugÚtypeÚGetWidthÚwidthÚ	GetHeightÚheightÚbitmapÚfontdÚdpiÚgc)r0   rt   rv   r3   s      €r"   r/   ÚRendererWx.__init__�   sW   ø€ ä‰ÑÔÜ�
‰
Ð$¤d¨4£jÔ1Ø—_‘_Ó&ˆŒ
Ø×&Ñ&Ó(ˆŒØŒØˆŒ
ØŒØˆ�r$   c                 ó   • g)NT© r9   s    r"   ÚflipyÚRendererWx.flipyŒ   s   € àr$   c                 ó:  • U(       a  [         R                  " U5      nU R                  c  U R                  5       nOU R                  nUR                  nU R                  X5      nUR                  U[        R                  5        UR                  U5      u  pxpšXxU	4$ r)   )
r   Ú
strip_mathrw   Únew_gcÚgfx_ctxÚget_wx_fontÚSetFontr   ÚBLACKÚGetFullTextExtent)r0   ÚsÚpropÚismathrw   r€   ÚfontÚwÚhÚdescentÚleadings              r"   Úget_text_width_height_descentÚ(RendererWx.get_text_width_height_descent�   s~   € ö Ü× Ò  Ó#ˆAà�7‰7‰?Ø—‘“‰Bà—‘ˆBØ—*‘*ˆØ×Ñ Ó(ˆØ�‰˜œbŸh™hÔ'Ø!(×!:Ñ!:¸1Ó!=Ñˆˆgà�Wˆ}Ðr$   c                 ó2   • U R                   U R                  4$ r)   )rq   rs   r9   s    r"   Úget_canvas_width_heightÚ"RendererWx.get_canvas_width_height¡   s   € à�z‰z˜4Ÿ;™;Ð&Ð&r$   c                 ó  • UR                  5       nUb  UR                  nUR                  nUR                  U:w  aN  X#l        Uc  UR	                  5         g UR                  US   U R                  US   -
  US   -
  US   US   5        g g )Nr   r   é   é   )Úget_clip_rectangleÚboundsr€   Ú_lastcliprectÚ	ResetClipÚCliprs   )r0   rw   Ú
new_boundsr€   s       r"   Úhandle_clip_rectangleÚ RendererWx.handle_clip_rectangle¥   s�   € Ø×*Ñ*Ó,ˆ
ØÑ!Ø#×*Ñ*ˆJØ—*‘*ˆØ× Ñ  JÓ.Ø$.Ô!ØÑ!Ø×!Ñ!Õ#à—‘˜Z¨™]Ø!Ÿ[™[¨:°a©=Ñ8¸:Àa¹=ÑHØ'¨™]¨J°q©Mõ;ð /r$   c                 óÎ  • U R                  5       nUR                  U5       H¿  u  pEU[        R                  :X  a  UR                  " U6   M*  U[        R
                  :X  a  UR                  " U6   MO  U[        R                  :X  a  UR                  " U6   Mt  U[        R                  :X  a  UR                  " U6   M™  U[        R                  :X  d  M¯  UR                  5         MÁ     U$ r)   )Ú
CreatePathÚiter_segmentsr   ÚMOVETOÚMoveToPointÚLINETOÚAddLineToPointÚCURVE3ÚAddQuadCurveToPointÚCURVE4ÚAddCurveToPointÚ	CLOSEPOLYÚCloseSubpath)r€   ÚpathÚ	transformÚwxpathÚpointsÚcodes         r"   Úconvert_pathÚRendererWx.convert_path³   s®   € à×#Ñ#Ó%ˆØ ×.Ñ.¨yÖ9‰LˆFØ”t—{‘{Ó"Ø×"Ò" FÓ+ØœŸ™Ó$Ø×%Ò% vÓ.ØœŸ™Ó$Ø×*Ò*¨FÓ3ØœŸ™Ó$Ø×&Ò&¨Ó/ØœŸ™Õ'Ø×#Ñ#Ö%ñ :ð ˆr$   c                 óÄ  • UR                  5         U R                  U5        UR                  nU[        5       R	                  SS5      R                  SU R                  5      -   nU R                  XRU5      nUbF  UR                  [        R                  " UR                  U5      5      5        UR                  U5        OUR                  U5        UR                  5         g )Ng      ð?g      ð¿ç        )Úselectr›   r€   r   ÚscaleÚ	translaters   r¯   ÚSetBrushr   ÚBrushÚget_wxcolourÚDrawPathÚ
StrokePathÚunselect)r0   rw   rª   r«   ÚrgbFacer€   r¬   s          r"   Ú	draw_pathÚRendererWx.draw_pathÃ   s­   € à
�	‰	ŒØ×"Ñ" 2Ô&Ø—*‘*ˆØÜ‹J×Ñ˜S $Ó'×1Ñ1°#°t·{±{ÓCñDˆ	à×"Ñ" 7°)Ó<ˆØÑØ×ÑœRŸXšX b§o¡o°gÓ&>Ó?Ô@Ø×Ñ˜VÕ$à×Ñ˜vÔ&Ø
�‰�r$   c           	      óâ  • UR                  5       nUb  UR                  u  pgp‰OSnSnU R                  nU R                  n	UR                  S S u  p«[
        R                  R                  XºUR                  5       5      nUR                  5         UR                  R                  U[        U5      [        U R                  U-
  5      [        U5      [        U	* 5      5        UR                  5         g )Nr   r”   )r•   r–   rq   rs   Úshaper   ÚBitmapÚFromBufferRGBAÚtobytesr³   r€   Ú
DrawBitmapÚintr»   )r0   rw   ÚxÚyÚimÚbboxÚlÚbr‰   rŠ   ÚrowsÚcolsrt   s                r"   Ú
draw_imageÚRendererWx.draw_imageÒ   s¸   € Ø×$Ñ$Ó&ˆØÑØŸ™‰JˆA�!�QàˆAØˆAØ—
‘
ˆAØ—‘ˆAØ—X‘X˜b˜q�\‰
ˆÜ—‘×)Ñ)¨$°b·j±j³lÓCˆØ
�	‰	ŒØ
�
‰
×Ñ˜f¤c¨!£f¬c°$·+±+À±/Ó.BÜ! !›f¤c¨1¨"£gô	/à
�‰�r$   c	                 óÆ  • U(       a  [         R                  " U5      n[        R                  S[	        U 5      5        UR                  5         U R                  U5        UR                  n	U R                  XE5      n
UR                  UR                  5       5      nU	R                  X«5        U R                  XEU5      u  pÍn[        U5      n[        X=-
  5      nUS:X  a  U	R                  XBU5        Oa[        R                   " U5      nU[        R"                  " U5      -  nU[        R$                  " U5      -  nU	R'                  XBU-
  UU-
  U5        UR)                  5         g )Nz%s - draw_text()r²   )r   r~   rm   rn   ro   r³   r›   r€   r�   r¸   Úget_rgbr‚   r�   rÅ   ÚDrawTextÚmathÚradiansÚsinÚcosÚDrawRotatedTextr»   )r0   rw   rÆ   rÇ   r…   r†   Úangler‡   Úmtextr€   rˆ   Úcolorr‰   rŠ   ÚdÚradsÚxoÚyos                     r"   Ú	draw_textÚRendererWx.draw_textâ   s  € ö Ü× Ò  Ó#ˆAÜ�
‰
Ð%¤t¨D£zÔ2Ø
�	‰	ŒØ×"Ñ" 2Ô&Ø—*‘*ˆà×Ñ Ó(ˆØ—‘ §
¡
£Ó-ˆØ�‰˜Ô$à×4Ñ4°Q¸fÓE‰ˆˆaÜ�‹FˆÜ�‘‹Jˆà�C‹<Ø×Ñ˜Q 1Õ%ä—<’< Ó&ˆDØ”T—X’X˜d“^Ñ#ˆBØ”T—X’X˜d“^Ñ#ˆBØ×#Ñ# A¨2¡v¨q°2©v°tÔ<à
�‰�r$   c                 óö   • [         R                  S[        U 5      5        [        U R                  U 5      U l        U R
                  R                  5         U R
                  R                  5         U R
                  $ )Nz%s - new_gc())rm   rn   ro   ÚGraphicsContextWxrt   rw   r³   r»   r9   s    r"   r   ÚRendererWx.new_gcþ   sM   € ä�
‰
�?¤D¨£JÔ/Ü# D§K¡K°Ó6ˆŒØ�‰�‰ÔØ�‰×ÑÔØ�w‰wˆr$   c                 ó  • [         R                  S[        U 5      5        [        U5      nU R                  R                  U5      nUb  U$ U R                  UR                  5       5      n[        R                  " [        U5      U R                  R                  UR                  5       [        R                  5      U R                  UR                  5          U R                   UR#                  5          S9=U R                  U'   nU$ )z7Return a wx font.  Cache font instances for efficiency.z%s - get_wx_font())Ú	pointSizeÚfamilyÚstyleÚweight)rm   rn   ro   Úhashru   ÚgetÚpoints_to_pixelsÚget_size_in_pointsr   ÚFontÚroundÚ	fontnamesÚget_nameÚROMANÚ
fontanglesÚ	get_styleÚfontweightsÚ
get_weight)r0   r…   r†   Úkeyrˆ   Úsizes         r"   r�   ÚRendererWx.get_wx_font  sÇ   € ä�
‰
Ð'¬¨d«Ô4Ü�4‹jˆØ�z‰z�~‰~˜cÓ"ˆØÑØˆKØ×$Ñ$ T×%<Ñ%<Ó%>Ó?ˆô "$§¢Ü˜D“kØ—>‘>×%Ñ% d§m¡m£o´r·x±xÓ@Ø—/‘/ $§.¡.Ó"2Ñ3Ø×#Ñ# D§O¡OÓ$5Ñ6ñ	"8ð 	8ˆ�
‰
�3‰˜$ð
 ˆr$   c                 ó:   • U[         S-  U R                  -  S-  -  $ )Ng      R@)ÚPIXELS_PER_INCHrv   )r0   r­   s     r"   rë   ÚRendererWx.points_to_pixels  s    € àœ¨4Ñ/°$·(±(Ñ:¸TÑAÑBÐBr$   )rt   rv   ru   rw   rs   rq   r)   )FN)#rD   rE   rF   rG   rH   r   ÚFONTWEIGHT_LIGHTÚFONTWEIGHT_NORMALÚFONTWEIGHT_BOLDrô   ÚFONTSTYLE_ITALICÚFONTSTYLE_NORMALÚFONTSTYLE_SLANTrò   ÚFONTFAMILY_SWISSÚFONTFAMILY_ROMANÚFONTFAMILY_SCRIPTÚFONTFAMILY_DECORATIVEÚFONTFAMILY_MODERNrï   r/   r{   r�   r�   r›   Ústaticmethodr¯   r½   rÎ   rß   r   r�   rë   rI   rJ   rK   s   @r"   rT   rT   I   s  ø† ñ
ðØˆR× Ñ ðàˆR× Ñ ðð 	ˆR× Ñ ðð 	ˆR×!Ñ!ð	ð
 	ˆR×!Ñ!ðð 	ˆR×!Ñ!ðð 	ˆR×Ñðð 	ˆR×Ñðð 	ˆR×Ñðð 	�b×)Ñ)ðð 	�×$Ñ$ðð 	�"×&Ñ&ðð 	�"×&Ñ&ðð 	�B×(Ñ(ðð 	�×"Ñ"ðð  	�×#Ñ#ð!ð" 	�R×'Ñ'ð#ð$ 	�×#Ñ#ñ%€Kð* ×%Ñ%Ø×%Ñ%Ø×%Ñ%ñ€Jð ×#Ñ#Ø×$Ñ$Ø×&Ñ&Ø×.Ñ.Ø×&Ñ&Ø×'Ñ'Ø×'Ñ'ñ€Iõ	òòò"'ò;ð ñó ðôòô ò8ò÷"Cð Cr$   rT   c                   ó$  ^ • \ rS rSrSr\R                  \R                  \R                  S.r	\R                  \R                  \R                  S.r\R                  " 5       rU 4S jrS rS rSU 4S jjrU 4S	 jrU 4S
 jrU 4S jrS rSrU =r$ )râ   i  a  
The graphics context provides the color, line styles, etc.

This class stores a reference to a wxMemoryDC, and a
wxGraphicsContext that draws to it.  Creating a wxGraphicsContext
seems to be fairly heavy, so these objects are cached based on the
bitmap object that is passed in.

The base GraphicsContext stores colors as an RGB tuple on the unit
interval, e.g., (0.5, 0.0, 1.0).  wxPython uses an int interval, but
since wxPython colour management is rather simple, I have not chosen
to implement a separate colour manager class.
)ÚbuttÚ
projectingrî   )ÚbevelÚmiterrî   c                 óø  >• [         TU ]  5         [        R                  S[	        U 5      U5        U R
                  R                  US5      u  p4UcL  [        R                  " U5      n[        R                  R                  U5      nS Ul        X44U R
                  U'   Xl        X0l        X@l        [        R                  " SS[        R                   5      U l        UR%                  U R"                  5        X l        g )Nz%s - __init__(): %s)NNrƒ   r   )r.   r/   rm   rn   ro   Ú_cacherê   r   ÚMemoryDCÚGraphicsContextÚCreater—   rt   Údcr€   ÚPenÚSOLIDÚ_penÚSetPenÚrenderer)r0   rt   r  r  r€   r3   s        €r"   r/   ÚGraphicsContextWx.__init__4  s¶   ø€ Ü‰ÑÔä�
‰
Ð(¬$¨t«*°fÔ=à—k‘k—o‘o f¨lÓ;‰ˆØ‰:Ü—’˜VÓ$ˆBÜ×(Ñ(×/Ñ/°Ó3ˆGØ$(ˆGÔ!Ø"$ +ˆD�K‰K˜ÑàŒØŒØŒÜ—F’F˜7 A¤r§x¡xÓ0ˆŒ	Ø�‰�t—y‘yÔ!Ø �r$   c                 ó†   • [         R                  S:X  a-  U R                  R                  U R                  5        SU l        gg)z2Select the current bitmap into this wxDC instance.Úwin32TN)ÚsysÚplatformr  ÚSelectObjectrt   Ú
IsSelectedr9   s    r"   r³   ÚGraphicsContextWx.selectG  s0   € ä�<‰<˜7Ó"Ø�G‰G× Ñ  §¡Ô-Ø"ˆD�Oð #r$   c                 óŽ   • [         R                  S:X  a1  U R                  R                  [        R
                  5        SU l        gg)z-Select a Null bitmap into this wxDC instance.r  FN)r  r  r  r  r   Ú
NullBitmapr  r9   s    r"   r»   ÚGraphicsContextWx.unselectM  s0   € ä�<‰<˜7Ó"Ø�G‰G× Ñ ¤§¡Ô/Ø#ˆD�Oð #r$   c                 ó\  >• [         R                  S[        U 5      5        U R                  5         [        TU ]  X5        U R                  R                  U R                  U R                  5       5      5        U R                  R                  U R                  5        U R                  5         g )Nz%s - set_foreground())rm   rn   ro   r³   r.   Úset_foregroundr  Ú	SetColourr¸   rÑ   r€   r  r»   )r0   ÚfgÚisRGBAr3   s      €r"   r$  Ú GraphicsContextWx.set_foregroundS  sp   ø€ ô 	�
‰
Ð*¬D°«JÔ7Ø�‰ŒÜ‰Ñ˜rÔ*à�	‰	×Ñ˜D×-Ñ-¨d¯l©l«nÓ=Ô>Ø�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óÈ  >• [        U5      n[        R                  S[        U 5      5        U R	                  5         SUs=:  a  S:  a  O  OSn[
        TU ]  U5        [        U R                  R                  U R                  5      5      nUS:X  a  SnU R                  R                  U5        U R                  R                  U R                  5        U R                  5         g )Nz%s - set_linewidth()r   r   )Úfloatrm   rn   ro   r³   r.   Úset_linewidthrÅ   r  rë   Ú
_linewidthr  ÚSetWidthr€   r  r»   )r0   r‰   Úlwr3   s      €r"   r+  ÚGraphicsContextWx.set_linewidthb  sŸ   ø€ ä�!‹HˆÜ�
‰
Ð)¬4°«:Ô6Ø�‰ŒØˆq�9�1Ž9ØˆAÜ‰Ñ˜aÔ Ü�—‘×/Ñ/°·±Ó@ÓAˆØ�‹7ØˆBØ�	‰	×Ñ˜2ÔØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óX  >• [         R                  S[        U 5      5        U R                  5         [        TU ]  U5        U R                  R                  [        R                  U R                     5        U R                  R                  U R                  5        U R                  5         g )Nz%s - set_capstyle())rm   rn   ro   r³   r.   Úset_capstyler  ÚSetCaprâ   Ú_capdÚ	_capstyler€   r  r»   )r0   Úcsr3   s     €r"   r1  ÚGraphicsContextWx.set_capstyleq  sm   ø€ ä�
‰
Ð(¬$¨t«*Ô5Ø�‰ŒÜ‰Ñ˜RÔ Ø�	‰	×ÑÔ*×0Ñ0°·±Ñ@ÔAØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óX  >• [         R                  S[        U 5      5        U R                  5         [        TU ]  U5        U R                  R                  [        R                  U R                     5        U R                  R                  U R                  5        U R                  5         g )Nz%s - set_joinstyle())rm   rn   ro   r³   r.   Úset_joinstyler  ÚSetJoinrâ   Ú_joindÚ
_joinstyler€   r  r»   )r0   Újsr3   s     €r"   r8  ÚGraphicsContextWx.set_joinstylez  sm   ø€ ä�
‰
Ð)¬4°«:Ô6Ø�‰ŒÜ‰Ñ˜bÔ!Ø�	‰	×ÑÔ+×2Ñ2°4·?±?ÑCÔDØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c           	      óª   • [         R                  S[        U 5      5        [        R                  " U Vs/ s H  n[        SU-  5      PM     sn6 $ s  snf )z'Convert an RGB(A) color to a wx.Colour.z%s - get_wx_color()éÿ   )rm   rn   ro   r   ÚColourrÅ   )r0   rÚ   rÆ   s      r"   r¸   ÚGraphicsContextWx.get_wxcolourƒ  s>   € ä�
‰
Ð(¬$¨t«*Ô5Ü�yŠy±Ó7²¨Aœ3˜s Q™wž<±Ñ7Ð8Ð8ùÒ7s   ´A)r  r  rt   r  r€   r  r)   )rD   rE   rF   rG   rH   r   ÚCAP_BUTTÚCAP_PROJECTINGÚ	CAP_ROUNDr3  Ú
JOIN_BEVELÚ
JOIN_MITERÚ
JOIN_ROUNDr:  ÚweakrefÚWeakKeyDictionaryr  r/   r³   r»   r$  r+  r1  r8  r¸   rI   rJ   rK   s   @r"   râ   râ     sƒ   ø† ñð —[‘[Ø×,Ñ,Ø—l‘lñ$€Eð —}‘}Ø—}‘}Ø—}‘}ñ&€Fð ×&Ò&Ó(€Fõ!ò&#ò$÷õõõ÷9ð 9r$   râ   c                   ó  • \ rS rSrSrSr\r\R                  " S 5      r
0 \R                  S_\R                  S_\R                  S_\R                  S_\R                   S	_\R"                  S
_\R$                  S_\R&                  S_\R(                  S_\R*                  S_\R,                  S_\R.                  S_\R0                  S_\R2                  S_\R4                  S_\R6                  S_\R8                  S_0 \R:                  S_\R<                  S_\R>                  S_\R@                  S_\RB                  S_\RD                  S_\RF                  S_\RH                  S_\RJ                  S_\RL                  S_\RN                  S _\RP                  S!_\RR                  S"_\RT                  S#_\RV                  S$_\RX                  S%_\RZ                  S&_E0 \R\                  S'_\R^                  S(_\R`                  S)_\Rb                  S*_\Rd                  S+_\Rf                  S,_\Rh                  S-_\Rj                  S._\Rl                  S/_\Rn                  S0_\Rp                  S1_\Rr                  S2_\Rt                  S_\Rv                  S
_\Rx                  S_\Rz                  S_\R|                  S	_E\R~                  S"\R€                  S#\R‚                  S \R„                  S!\R†                  S\Rˆ                  S0ErESVS4 jrFSVS5 jrGS6 rHS7 rIS8 rJSWS9 jrKSVS: jrLS; rMSVS< jrN0 \OR                   ES=S>S>S?S@SASASBSC.ErPSD rQSE rR\SSF 5       rT\SSVS3SG.SH jj5       rUSI rVSVSJ jrWSK rXSL rYSM rZSXSN jr[SO r\SP r]SQ r^SR r_SS r`ST raSUrbg3)YÚ_FigureCanvasWxBasei‰  aI  
The FigureCanvas contains the figure and does event handling.

In the wxPython backend, it is derived from wxPanel, and (usually) lives
inside a frame instantiated by a FigureManagerWx. The parent window
probably implements a wx.Sizer to control the displayed control size - but
we give a hint as to our preferred minimum size.
r   c                 ó   • [         $ r)   )ÚFigureManagerWx)Úclss    r"   Ú<lambda>Ú_FigureCanvasWxBase.<lambda>•  s   € µ?r$   ÚcontrolÚshiftÚaltÚ	caps_lockÚleftÚupÚrightÚdownÚescapeÚf1Úf2Úf3Úf4Úf5Úf6Úf7Úf8Úf9Úf10Úf11Úf12Úscroll_lockÚbreakÚ	backspaceÚenterÚinsertÚdeleteÚhomeÚendÚpageupÚpagedownÚ0Ú1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9Ú+Ú-Ú*Ú/ÚdecNc                 ó„  • [         R                  " X5        [        R                  " [	        [
        R                  U R                  R                  R                  5      6 n[        R                  S:w  a  UR                  U5      n[        R                  R                  XX$S9  SU l        SU l        SU l        [        R                   " SS[        R"                  5      U l        [        R                   " SS[        R&                  5      U l        U R+                  [        R,                  U R.                  5        U R+                  [        R0                  U R2                  5        U R+                  [        R4                  U R6                  5        U R+                  [        R8                  U R:                  5        U R+                  [        R<                  U R>                  5        U R+                  [        R@                  U R>                  5        U R+                  [        RB                  U R>                  5        U R+                  [        RD                  U R>                  5        U R+                  [        RF                  U R>                  5        U R+                  [        RH                  U R>                  5        U R+                  [        RJ                  U R>                  5        U R+                  [        RL                  U R>                  5        U R+                  [        RN                  U R>                  5        U R+                  [        RP                  U R>                  5        U R+                  [        RR                  U R>                  5        U R+                  [        RT                  U R>                  5        U R+                  [        RV                  U R>                  5        U R+                  [        RX                  U R>                  5        U R+                  [        RZ                  U R>                  5        U R+                  [        R\                  U R^                  5        U R+                  [        R`                  U Rb                  5        U R+                  [        Rd                  U Rf                  5        U R+                  [        Rh                  U Rj                  5        U R+                  [        Rl                  U Rn                  5        U R+                  [        Rp                  U Rn                  5        U Rs                  [        Rt                  5        U Rw                  [        Rx                  5        [        R                  S:X  aG  U R{                  5       nU R}                  U R                  5       SU-  -  5        U R�                  U5        gg)	z§
Initialize a FigureWx instance.

- Initialize the FigureCanvasBase and wxPanel parents.
- Set event handlers for resize, paint, and keyboard and mouse
  interaction.
Ú	__WXMSW__©r÷   NFrƒ   r   ÚWHITEÚ	__WXMAC__)Ar   r/   r   ÚSizeÚmaprÓ   ÚceilÚfigurerÉ   r÷   ÚPlatformÚFromDIPÚPanelrt   Ú_isDrawnÚ_rubberband_rectr  ÚPENSTYLE_SHORT_DASHÚ_rubberband_pen_blackÚPENSTYLE_SOLIDÚ_rubberband_pen_whiteÚBindÚEVT_SIZEÚ_on_sizeÚ	EVT_PAINTÚ	_on_paintÚEVT_CHAR_HOOKÚ_on_key_downÚ
EVT_KEY_UPÚ
_on_key_upÚEVT_LEFT_DOWNÚ_on_mouse_buttonÚEVT_LEFT_DCLICKÚEVT_LEFT_UPÚEVT_MIDDLE_DOWNÚEVT_MIDDLE_DCLICKÚEVT_MIDDLE_UPÚEVT_RIGHT_DOWNÚEVT_RIGHT_DCLICKÚEVT_RIGHT_UPÚEVT_MOUSE_AUX1_DOWNÚEVT_MOUSE_AUX1_UPÚEVT_MOUSE_AUX2_DOWNÚEVT_MOUSE_AUX2_UPÚEVT_MOUSE_AUX1_DCLICKÚEVT_MOUSE_AUX2_DCLICKÚEVT_MOUSEWHEELÚ_on_mouse_wheelÚ
EVT_MOTIONÚ
_on_motionÚEVT_ENTER_WINDOWÚ	_on_enterÚEVT_LEAVE_WINDOWÚ	_on_leaveÚEVT_MOUSE_CAPTURE_CHANGEDÚ_on_capture_lostÚEVT_MOUSE_CAPTURE_LOSTÚSetBackgroundStyleÚBG_STYLE_PAINTÚSetBackgroundColourr‚  ÚGetDPIScaleFactorÚSetInitialSizeÚGetSizeÚ_set_device_pixel_ratio)r0   ÚparentÚidr‡  r÷   ÚdpiScales         r"   r/   Ú_FigureCanvasWxBase.__init__Ó  sš  € ô 	×!Ò! $Ô/Ü�wŠwœœDŸI™I t§{¡{×'7Ñ'7×'<Ñ'<Ó=Ð>ˆÜ�;‰;˜+Ó%Ø—>‘> $Ó'ˆDä
�‰×Ñ˜$¨ÐÑ6ØˆŒØˆŒØ $ˆÔÜ%'§V¢V¨G°Q¼×8NÑ8NÓ%OˆÔ"Ü%'§V¢V¨G°Q¼×8IÑ8IÓ%JˆÔ"à�	‰	”"—+‘+˜tŸ}™}Ô-Ø�	‰	”"—,‘, §¡Ô/Ø�	‰	”"×"Ñ" D×$5Ñ$5Ô6Ø�	‰	”"—-‘- §¡Ô1Ø�	‰	”"×"Ñ" D×$9Ñ$9Ô:Ø�	‰	”"×$Ñ$ d×&;Ñ&;Ô<Ø�	‰	”"—.‘. $×"7Ñ"7Ô8Ø�	‰	”"×$Ñ$ d×&;Ñ&;Ô<Ø�	‰	”"×&Ñ&¨×(=Ñ(=Ô>Ø�	‰	”"×"Ñ" D×$9Ñ$9Ô:Ø�	‰	”"×#Ñ# T×%:Ñ%:Ô;Ø�	‰	”"×%Ñ% t×'<Ñ'<Ô=Ø�	‰	”"—/‘/ 4×#8Ñ#8Ô9Ø�	‰	”"×(Ñ(¨$×*?Ñ*?Ô@Ø�	‰	”"×&Ñ&¨×(=Ñ(=Ô>Ø�	‰	”"×(Ñ(¨$×*?Ñ*?Ô@Ø�	‰	”"×&Ñ&¨×(=Ñ(=Ô>Ø�	‰	”"×*Ñ*¨D×,AÑ,AÔBØ�	‰	”"×*Ñ*¨D×,AÑ,AÔBØ�	‰	”"×#Ñ# T×%9Ñ%9Ô:Ø�	‰	”"—-‘- §¡Ô1Ø�	‰	”"×%Ñ% t§~¡~Ô6Ø�	‰	”"×%Ñ% t§~¡~Ô6à�	‰	”"×.Ñ.°×0EÑ0EÔFØ�	‰	”"×+Ñ+¨T×-BÑ-BÔCà×Ñ¤× 1Ñ 1Ô2Ø× Ñ ¤§¡Ô*ä�;‰;˜+Ó%à×-Ñ-Ó/ˆHØ×Ñ §¡£°°(±
Ñ ;Ô<Ø×(Ñ(¨Õ2ð	 &r$   c                 ó®  • [         R                  " 5       nUR                  U R                  5        [         R                  R                  5       (       d‚  [         R                  R                  5       nU(       a\  [         R                  R                  U5        [         R                  R                  5         [         R                  R                  5         ggg)z*Copy bitmap of canvas to system clipboard.N)
r   ÚBitmapDataObjectÚ	SetBitmaprt   ÚTheClipboardÚIsOpenedÚOpenÚSetDataÚFlushÚClose)r0   ÚeventÚbmp_objÚopen_successs       r"   ÚCopy_to_ClipboardÚ%_FigureCanvasWxBase.Copy_to_Clipboard  s†   € ä×%Ò%Ó'ˆØ×Ñ˜$Ÿ+™+Ô&ä�‰×'Ñ'×)Ñ)ÜŸ?™?×/Ñ/Ó1ˆLÞÜ—‘×'Ñ'¨Ô0Ü—‘×%Ñ%Ô'Ü—‘×%Ñ%Õ'ð ð *r$   c                 ón   • U R                  U R                  5       5      (       a  U R                  5         g g r)   )r»  r¸  Údraw©r0   r1   r2   s      r"   Ú_update_device_pixel_ratioÚ._FigureCanvasWxBase._update_device_pixel_ratio  s-   € ð ×'Ñ'¨×(>Ñ(>Ó(@×AÑAØ�I‰I�Kð Br$   c                 ón   • [         R                  S[        U 5      5        SU l        U R	                  SS9  g )Nz%s - draw_idle()F©ÚeraseBackground)rm   rn   ro   r‹  ÚRefreshr9   s    r"   Ú	draw_idleÚ_FigureCanvasWxBase.draw_idle  s,   € ä�
‰
Ð%¤t¨D£zÔ2ØˆŒð 	�‰ UˆÒ+r$   c                 ó.   • [         R                  " 5         g r)   )r   ÚYieldr9   s    r"   Úflush_eventsÚ _FigureCanvasWxBase.flush_events'  s   € ä
�Š�
r$   c                 ó¼  • [        U S5      (       a  [        S5      e[        R                  " U [        R                  S9nUS:”  aS  UR                  [        US-  5      SS9  U R                  [        R                  U R                  UR                  5       S9  [        R                  " 5       U l        U R                  R                  5         UR                  5         g )NÚ_event_loopzEvent loop already running©r½  r   iè  T)ÚoneShot)ÚhasattrÚRuntimeErrorr   r*   ÚID_ANYr6   rÅ   r‘  Ú	EVT_TIMERÚstop_event_loopÚGetIdÚGUIEventLooprÞ  ÚRunr=   )r0   ÚtimeoutÚtimers      r"   Ústart_event_loopÚ$_FigureCanvasWxBase.start_event_loop+  s›   € ä�4˜×'Ñ'ÜÐ;Ó<Ð<Ü—’˜¤"§)¡)Ñ,ˆØ�Q‹;Ø�K‰Kœ˜G d™NÓ+°TˆKÑ:Ø�I‰I”b—l‘l D×$8Ñ$8¸U¿[¹[»]ˆIÑKäŸ?š?Ó,ˆÔØ×Ñ×ÑÔØ�
‰
�r$   c                 óž   • [        U S5      (       a<  U R                  R                  5       (       a  U R                  R                  5         U ?g g )NrÞ  )rá  rÞ  rA   ÚExit©r0   rÉ  s     r"   rå  Ú#_FigureCanvasWxBase.stop_event_loop8  sA   € ä�4˜×'Ñ'Ø×Ñ×)Ñ)×+Ñ+Ø× Ñ ×%Ñ%Ô'ØÑ ð (r$   c                 ó˜  • U R                  5       nU R                  5       n[        UR                  5       5      n/ n/ nSn[	        U5       Hc  u  nu  p‰SR                  U	 V
s/ s H  n
SU
-  PM
     sn
5      nUR                  U	S   5        U SU SU 3nX;   a  UnUR                  U5        Me     SR                  U5      nXEU4$ s  sn
f )z3Return the wildcard string for the filesave dialog.r   Ú;z*.%sz (z)|Ú|)Úget_default_filetypeÚget_supported_filetypes_groupedÚsortedÚitemsÚ	enumerateÚjoinÚappend)r0   Údefault_filetypeÚ	filetypesÚsorted_filetypesÚ	wildcardsÚ
extensionsÚfilter_indexÚirN   ÚextsÚextÚext_listÚwildcards                r"   Ú_get_imagesave_wildcardsÚ,_FigureCanvasWxBase._get_imagesave_wildcards?  sØ   € à×4Ñ4Ó6ÐØ×8Ñ8Ó:ˆ	Ü! )§/¡/Ó"3Ó4ÐØˆ	Øˆ
ØˆÜ(Ð)9Ö:‰OˆA‰|�Ø—x‘x¹Ó >º°# ¨#¤¹Ñ >Ó?ˆHØ×Ñ˜d 1™gÔ&Ø˜˜r ( ¨2¨h¨ZÐ8ˆHØÓ'Ø �Ø×Ñ˜XÖ&ñ  ;ð —H‘H˜YÓ'ˆ	Ø lÐ2Ð2ùò !?s   Á"C
c                 ó¸  • [         R                  S[        U 5      5        U (       a  U R                  5       (       d  gU(       d  [        R
                  " U 5      n[        R                  S:X  a_  [        U R                  R                  R                  5       [        5      (       a(  U R                  R                  5       R                  5       OU R                  nUR                  USS5        U R                   bb  [#        [$        U R                   5      u  p4pVX4XT4XTXV4X4X64X6XV4/nUR'                  XpR(                  5        UR'                  XpR*                  5        gg)z]
Update the displayed image on the GUI canvas, using the supplied
wx.PaintDC device context.
z%s - gui_repaint()Nr€  r   )rm   rn   ro   ÚIsShownOnScreenr   ÚClientDCrˆ  Ú
isinstancer‡  ÚcanvasÚget_rendererrT   rt   ÚConvertToImageÚConvertToBitmaprÄ   rŒ  r…  rî   ÚDrawLineListr�  rŽ  )r0   ÚdrawDCÚbmpÚx0Úy0Úx1Úy1Úrects           r"   Úgui_repaintÚ_FigureCanvasWxBase.gui_repaintQ  s  € ô
 	�
‰
Ð'¬¨d«Ô4ö ˜×-Ñ-×/Ñ/ØÞÜ—[’[ Ó&ˆFô —+‘+ Ó,Ü  §¡×!3Ñ!3×!@Ñ!@Ó!BÄJ×OÑOð �{‰{×)Ñ)Ó+×;Ñ;Ô=ð —K‘Kð 	ð 	×Ñ˜#˜q !Ô$Ø× Ñ Ñ,ä ¤¨×(=Ñ(=Ó>‰NˆB�BØ˜RÐ$ r¨rÐ&6Ø˜RÐ$ r¨rÐ&6ð8ˆDà×Ñ ×&@Ñ&@ÔAØ×Ñ ×&@Ñ&@ÕAð -r$   zWindows bitmapÚJPEGÚPCXzPortable Network GraphicszTagged Image Format FilezX pixmap)r  ÚjpegÚjpgÚpcxÚpngÚtifÚtiffÚxpmc                 óî   • [         R                  S[        U 5      5        [        R                  " U 5      nU R
                  (       d  U R                  US9  OU R                  US9  UR                  5         g)z$Called when wxPaintEvt is generated.z%s - _on_paint()©r  N)	rm   rn   ro   r   ÚPaintDCr‹  rÏ  r  ÚDestroy)r0   rÉ  r  s      r"   r•  Ú_FigureCanvasWxBase._on_paintx  sS   € ä�
‰
Ð%¤t¨D£zÔ2Ü—’˜DÓ!ˆØ�}�}Ø�I‰I˜VˆIÒ$à×Ñ FÐÑ+Ø�‰Õr$   c                 óø  • U R                  5         [        R                  S[        U 5      5        U R	                  5       R                  5       nU(       a  UR                  U 5      nU(       aK  W(       aD  UR                  (       d3  UR                  [        R                  -  (       d  U R                  5       nO/U R                  5       nUR                  U R                  5       5        [        U SS5      (       a  X@R                  U R                   4:X  a  gUu  U l        U l        SU l        U R                  S::  d  U R                   S::  a  gU R$                  R&                  n[        R(                  S:X  d  U R+                  5       nXV-  nU R                  U-  nU R                   U-  nU R$                  R-                  XxSS9  U R/                  SS9  [1        S	U 5      R3                  5         U R5                  5         g)
z­
Called when wxEventSize is generated.

In this application we attempt to resize to fit the window, so it
is better to take the performance hit and redraw the whole window.
z%s - _on_size()Ú_widthNFr   r€  )ÚforwardrÔ  Úresize_event)rÑ  rm   rn   ro   Ú	GetParentÚGetSizerÚGetItemÚ
ProportionÚFlagr   ÚEXPANDÚ
GetMinSizeÚGetClientSizeÚIncToÚgetattrr)  Ú_heightr‹  r‡  rv   rˆ  r¸  Úset_size_inchesrÖ  r   Ú_processr×  )	r0   rÉ  ÚszÚsir÷   Údpivalr´   ÚwinchÚhinchs	            r"   r“  Ú_FigureCanvasWxBase._on_size‚  sv  € ð 	×'Ñ'Ô)Ü�
‰
Ð$¤d¨4£jÔ1Ø�^‰^Ó×&Ñ&Ó(ˆÞØ—‘˜DÓ!ˆBÞ–"˜RŸ]Ÿ]°2·7±7¼R¿Y¹Y×3Fà—?‘?Ó$‰Dð ×%Ñ%Ó'ˆDà�J‰J�t—‘Ó(Ô)Ü�4˜ 4×(Ñ(ØŸ™ T§\¡\Ð2Ó2àØ$(Ñ!ˆŒ�T”\ØˆŒà�;‰;˜!Ó˜tŸ|™|¨qÓ0Øð —‘—‘ˆÜ�{‰{˜kÓ)Ø×*Ñ*Ó,ˆEØ‰OˆFØ—‘˜fÑ$ˆØ—‘˜vÑ%ˆØ�‰×#Ñ# E¸%Ð#Ñ@ð
 	�‰ UˆÑ+Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr$   c                  ó²  • [         R                  " 5       n [        R                  U R	                  5       4[        R
                  U R                  5       4[        R                  U R                  5       4[        R                  U R                  5       4[        R                  U R                  5       4/nU VVs1 s H  u  p#U(       d  M  UiM     snn$ s  snnf r)   )r   ÚGetMouseStater   ÚLEFTÚ
LeftIsDownÚRIGHTÚRightIsDownÚMIDDLEÚMiddleIsDownÚBACKÚ
Aux1IsDownÚFORWARDÚ
Aux2IsDown)ÚstateÚ	mod_tableÚbuttonÚflags       r"   Ú_mpl_buttonsÚ _FigureCanvasWxBase._mpl_buttons°  sª   € ä× Ò Ó"ˆô
 ×Ñ˜u×/Ñ/Ó1Ð2Ü×Ñ × 1Ñ 1Ó 3Ð4Ü×Ñ ×!3Ñ!3Ó!5Ð6Ü×Ñ˜u×/Ñ/Ó1Ð2Ü× Ñ  %×"2Ñ"2Ó"4Ð5ð
ˆ	ñ ,5Ô=ª9™<˜6¼—©9Ò=Ð=ùÓ=s   Â8CÃ	C©Úexcludec                óÎ  • S[         R                  [         R                  4S[         R                  [         R                  4S[         R
                  [         R                  4/nU b<  U R                  5       nU VVVs/ s H  u  pEnX5-  (       d  M  X:w  d  M  UPM     snnn$ U VVVs/ s H%  u  pEn[         R                  " U5      (       d  M#  UPM'     snnn$ s  snnnf s  snnnf )NÚctrlrS  rR  )	r   ÚMOD_CONTROLÚWXK_CONTROLÚMOD_ALTÚWXK_ALTÚ	MOD_SHIFTÚ	WXK_SHIFTÚGetModifiersÚGetKeyState)rÉ  rR  rL  Ú	modifiersrN   Úmodrö   s          r"   Ú_mpl_modifiersÚ"_FigureCanvasWxBase._mpl_modifiersÀ  sÂ   € ð ”R—^‘^¤R§^¡^Ð4Ø”B—J‘J¤§
¡
Ð+Ø”b—l‘l¤B§L¡LÐ1ð
ˆ	ð
 ÑØ×*Ñ*Ó,ˆIÙ/8õ ;ªy™^˜T¨Ø •ó Ø+2©>÷ ©yó ;ð ;ñ 09õ ,ªy™^˜T¨Ü—~’~ c×*÷ ©yó ,ð ,ùô;ùô,s   Á<CÂCÂCÂ("C ÃC c                 óh  • UR                   nX R                  ;   a  U R                  U   nO8US:  a1  [        U5      nUR                  5       (       d  UR	                  5       nOg U R                  XS9nSU;   a&  UR                  5       (       a  UR                  S5        SR                  / UQUP5      $ )Né   rQ  rR  rz  )	ÚKeyCodeÚkeyvaldÚchrÚ	ShiftDownÚlowerr_  ÚisupperÚremoverù  )r0   rÉ  Úkeyvalrö   Úmodss        r"   Ú_get_keyÚ_FigureCanvasWxBase._get_keyÏ  s˜   € Ø—‘ˆØ—\‘\Ó!Ø—,‘,˜vÑ&‰CØ�c‹\Ü�f“+ˆCð —?‘?×$Ñ$Ø—i‘i“k�øàØ×"Ñ" 5Ð"Ð9ˆØ�d‹?˜sŸ{™{Ÿ}™}Ø�K‰K˜Ô Ø�x‰x˜˜$˜ ˜Ó%Ð%r$   c                 ó”  • Uc>  [         R                  " 5       nU R                  UR                  UR                  5      u  p#OUR                  UR                  p2[         R
                  S:X  d9  U R                  5       nX$-  U R                  R                  R                  X4-  -
  4$ X R                  R                  R                  U-
  4$ )z^
Convert a wx position, defaulting to the current cursor position, to
Matplotlib coordinates.
r€  )
r   r@  ÚScreenToClientÚXÚYrˆ  r¸  r‡  rÉ   rs   )r0   ÚposrÆ   rÇ   r´   s        r"   Ú_mpl_coordsÚ_FigureCanvasWxBase._mpl_coordsà  s    € ð
 ‰;Ü×"Ò"Ó$ˆCØ×&Ñ& s§u¡u¨c¯e©eÓ4‰DˆAˆqà—5‘5˜#Ÿ%™%ˆqä�{‰{˜kÓ)Ø×*Ñ*Ó,ˆEØ‘7˜DŸK™K×,Ñ,×3Ñ3°a±gÑ=Ð=Ð=à—k‘k×&Ñ&×-Ñ-°Ñ1Ð1Ð1r$   c                 ó¬   • [        SU U R                  U5      /U R                  5       Q7SU06R                  5         U (       a  UR	                  5         gg)zCapture key press.Úkey_press_eventÚguiEventN©r   rl  rs  r8  ÚSkiprï  s     r"   r—  Ú _FigureCanvasWxBase._on_key_downñ  sL   € äÐ" DØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤ÞØ�J‰J�Lð r$   c                 ó¬   • [        SU U R                  U5      /U R                  5       Q7SU06R                  5         U (       a  UR	                  5         gg)zRelease key.Úkey_release_eventrw  Nrx  rï  s     r"   r™  Ú_FigureCanvasWxBase._on_key_upù  sL   € äÐ$ dØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤ÞØ�J‰J�Lð r$   c                 ó<  • [         R                  " [        R                  " [        R
                  [         R                  [        R                  [         R                  [        R                  [         R                  [        R                  [         R                  [        R                  [         R                  [        R                  [         R                  [        R                   [         R"                  0US95      nU R%                  U5        U R'                  5         g )N)Úcursor)r   ÚCursorr   Úcheck_getitemr   ÚMOVEÚCURSOR_HANDÚHANDÚPOINTERÚCURSOR_ARROWÚSELECT_REGIONÚCURSOR_CROSSÚWAITÚCURSOR_WAITÚRESIZE_HORIZONTALÚCURSOR_SIZEWEÚRESIZE_VERTICALÚCURSOR_SIZENSÚ	SetCursorrÖ  )r0   r  s     r"   Ú
set_cursorÚ_FigureCanvasWxBase.set_cursor  s£   € ä—’œ4×-Ò-Ü�L‰Lœ"Ÿ.™.Ü�L‰Lœ"Ÿ.™.Ü�O‰OœRŸ_™_Ü×!Ñ!¤2§?¡?Ü�L‰Lœ"Ÿ.™.Ü×%Ñ%¤r×'7Ñ'7Ü×#Ñ#¤R×%5Ñ%5ð/
ð ñó ˆð 	�‰�vÔØ�‰�r$   c                 ó~   • U R                  5       (       a  U R                  5         U(       a  U R                  5         gg)zControl wx mouse capture.N)Ú
HasCaptureÚReleaseMouseÚCaptureMouse)r0   Úcaptures     r"   Ú_set_captureÚ _FigureCanvasWxBase._set_capture  s/   € à�?‰?×ÑØ×ÑÔÞØ×ÑÕð r$   c                 ó&   • U R                  S5        g)zCapture changed or lostFN)r—  rï  s     r"   r³  Ú$_FigureCanvasWxBase._on_capture_lost  s   € à×Ñ˜%Õ r$   c                 ól  • UR                  5         U R                  UR                  5       =(       d    UR                  5       5        U R	                  U5      u  p#[
        R                  [        R                  [
        R                  [        R                  [
        R                  [        R                  [
        R                  [        R                  [
        R                  [        R                   0nUR#                  5       nUR%                  XU5      nU R'                  U5      nUR                  5       (       a  [)        SXX5XaS9R+                  5         gUR                  5       (       a  [)        SXX5SXaS9R+                  5         gUR-                  5       (       a  [)        SXX5XaS9R+                  5         gg)úStart measuring on an axis.Úbutton_press_event©r]  rw  T)Údblclickr]  rw  Úbutton_release_eventN)ry  r—  Ú
ButtonDownÚButtonDClickrs  r   ÚMOUSE_BTN_LEFTr   rA  ÚMOUSE_BTN_MIDDLErE  ÚMOUSE_BTN_RIGHTrC  ÚMOUSE_BTN_AUX1rG  ÚMOUSE_BTN_AUX2rI  Ú	GetButtonrê   r_  r   r8  ÚButtonUp)r0   rÉ  rÆ   rÇ   Ú
button_maprM  r]  s          r"   r›  Ú$_FigureCanvasWxBase._on_mouse_button  sG  € à�
‰
ŒØ×Ñ˜%×*Ñ*Ó,×D°×0BÑ0BÓ0DÔEØ×Ñ Ó&‰ˆä×Ñœ{×/Ñ/Ü×Ñ¤×!3Ñ!3Ü×Ñ¤× 1Ñ 1Ü×Ñœ{×/Ñ/Ü×Ñœ{×2Ñ2ð
ˆ
ð —‘Ó"ˆØ—‘ Ó/ˆØ×'Ñ'¨Ó.ˆ	Ø×Ñ×ÑÜÐ+¨T°aØ!*ñ<ß<D¹H½JØ×Ñ×!Ñ!ÜÐ+¨T°aÈ$Ø!*ñ<ß<D¹H½JØ�^‰^×ÑÜÐ-¨t¸Ø!*ñ<ß<D¹H½Jð r$   c           
      ó„  • U R                  U5      u  p#UR                  UR                  -  UR                  -  nUR	                  5         [
        R                  S:X  a9  [        U S5      (       d  SU l        O U R                  (       a  SU l        gSU l        [        SXX4U R                  U5      US9R                  5         g)z3Translate mouse wheel events into matplotlib eventsrƒ  Ú_skipwheeleventTFNÚscroll_event)Ústepr]  rw  )rs  ÚLinesPerActionÚWheelRotationÚ
WheelDeltary  r   rˆ  rá  r­  r   r_  r8  )r0   rÉ  rÆ   rÇ   r¯  s        r"   r«  Ú#_FigureCanvasWxBase._on_mouse_wheel3  s¢   € à×Ñ Ó&‰ˆà×#Ñ# e×&9Ñ&9Ñ9¸E×<LÑ<LÑLˆà�
‰
Œä�;‰;˜+Ó%Ü˜4Ð!2×3Ñ3Ø'+�Õ$Ø×%×%Ø',�Ô$Øà'+�Ô$Ü�> 4¨AØ!×0Ñ0°Ó7Ø!ñ	#ç#+¡8¥:r$   c                 ó¼   • UR                  5         [        SU /U R                  U5      Q7U R                  5       U R	                  U5      US.6R                  5         g)rœ  Úmotion_notify_event)Úbuttonsr]  rw  N)ry  r   rs  rO  r_  r8  rï  s     r"   r­  Ú_FigureCanvasWxBase._on_motionG  sV   € à�
‰
ŒÜÐ(¨$ð 	#Ø×$Ñ$ UÓ+ñ	#à×,Ñ,Ó.Ø!×0Ñ0°Ó7Ø!ò		#÷ $,¡8¥:r$   c                 óœ   • UR                  5         [        SU /U R                  U5      Q7U R                  5       US.6R	                  5         g)zMouse has entered the window.Úfigure_enter_eventrž  N©ry  r   rs  r_  r8  rï  s     r"   r¯  Ú_FigureCanvasWxBase._on_enterP  óH   € à�
‰
ŒÜÐ*¨Dð 	&Ø×'Ñ'¨Ó.ñ	&à $× 3Ñ 3Ó 5Ø$ò	&÷ '/¡h¥jr$   c                 óœ   • UR                  5         [        SU /U R                  U5      Q7U R                  5       US.6R	                  5         g)zMouse has left the window.Úfigure_leave_eventrž  Nrº  rï  s     r"   r±  Ú_FigureCanvasWxBase._on_leaveX  r¼  r$   )	rÞ  r6  r‹  rŽ  r�  rŒ  r­  r)  rt   r)   )r   ©T)crD   rE   rF   rG   rH   Úrequired_interactive_frameworkr&   Ú
_timer_clsr   ÚclasspropertyÚmanager_classr   rV  rZ  rX  ÚWXK_CAPITALÚWXK_LEFTÚWXK_UPÚ	WXK_RIGHTÚWXK_DOWNÚ
WXK_ESCAPEÚWXK_F1ÚWXK_F2ÚWXK_F3ÚWXK_F4ÚWXK_F5ÚWXK_F6ÚWXK_F7ÚWXK_F8ÚWXK_F9ÚWXK_F10ÚWXK_F11ÚWXK_F12Ú
WXK_SCROLLÚ	WXK_PAUSEÚWXK_BACKÚ
WXK_RETURNÚ
WXK_INSERTÚ
WXK_DELETEÚWXK_HOMEÚWXK_ENDÚ
WXK_PAGEUPÚWXK_PAGEDOWNÚWXK_NUMPAD0ÚWXK_NUMPAD1ÚWXK_NUMPAD2ÚWXK_NUMPAD3ÚWXK_NUMPAD4ÚWXK_NUMPAD5ÚWXK_NUMPAD6ÚWXK_NUMPAD7ÚWXK_NUMPAD8ÚWXK_NUMPAD9ÚWXK_NUMPAD_ADDÚWXK_NUMPAD_SUBTRACTÚWXK_NUMPAD_MULTIPLYÚWXK_NUMPAD_DIVIDEÚWXK_NUMPAD_DECIMALÚWXK_NUMPAD_ENTERÚWXK_NUMPAD_UPÚWXK_NUMPAD_RIGHTÚWXK_NUMPAD_DOWNÚWXK_NUMPAD_LEFTÚWXK_NUMPAD_PAGEUPÚWXK_NUMPAD_PAGEDOWNÚWXK_NUMPAD_HOMEÚWXK_NUMPAD_ENDÚWXK_NUMPAD_INSERTÚWXK_NUMPAD_DELETErd  r/   rÌ  rÑ  r×  rÛ  rë  rå  r  r  r   rü  r•  r“  r  rO  r_  rl  rs  r—  r™  r�  r—  r³  r›  r«  r­  r¯  r±  rI   rz   r$   r"   rK  rK  ‰  s¸  † ñð &*Ð"Ø€JØ×&Ò&Ñ'BÓC€Mð:Ø
�‰˜	ð:à
�‰�gð:ð 	�
‰
�Eð:ð 	�‰˜ð	:ð
 	�‰�Vð:ð 	�	‰	�4ð:ð 	�‰�gð:ð 	�‰�Vð:ð 	�‰�xð:ð 	�	‰	�4ð:ð 	�	‰	�4ð:ð 	�	‰	�4ð:ð 	�	‰	�4ð:ð 	�	‰	�4ð:ð 	�	‰	�4ð:ð  	�	‰	�4ð!:ð" 	�	‰	�4ñ#:ð$ 	�	‰	�4ð%:ð& 	�
‰
�Eð':ð( 	�
‰
�Eð):ð* 	�
‰
�Eð+:ð, 	�‰�}ð-:ð. 	�‰�gð/:ð0 	�‰�[ð1:ð2 	�‰�wð3:ð4 	�‰�xð5:ð6 	�‰�xð7:ð8 	�‰�Vð9:ð: 	�
‰
�Eð;:ð< 	�‰�xð=:ð> 	�‰˜ð?:ð@ 	�‰˜ðA:ðB 	�‰˜ðC:ðD 	�‰˜òE:ðF 	�‰˜ðG:ðH 	�‰˜ðI:ðJ 	�‰˜ðK:ðL 	�‰˜ðM:ðN 	�‰˜ðO:ðP 	�‰˜ðQ:ðR 	�‰˜ðS:ðT 	×Ñ˜3ðU:ðV 	×Ñ ðW:ðX 	×Ñ ðY:ðZ 	×Ñ˜cð[:ð\ 	×Ñ˜uð]:ð^ 	×Ñ˜Wð_:ð` 	×Ñ˜$ða:ðb 	×Ñ˜Wðc:ðd 	×Ñ˜Fðe:ðf 	×Ñ˜Fñg:ðh 	×Ñ˜hØ
×Ñ 
Ø
×Ñ˜FØ
×Ñ˜5Ø
×Ñ˜hØ
×Ñ˜hñs:€Gôx73ôr
(òò,òôô!ò3ô$Bð6
Ø
×
$Ñ
$ð
àØØØØ*Ø)Ø*Øò
€Iòò,ð\ ñ>ó ð>ð ð,¨dõ ,ó ð,ò&ô"2ò"òòô ò!òGò2.ò(.ò1õ1r$   rK  c                   óˆ  • \ rS rSrSS jrS r\R                  " \\R                  5      r
\R                  " \\R                  5      =rr\R                  " \\R                  5      r\R                  " \\R                   5      r\R                  " \\R$                  5      =rr\R                  " \\R*                  5      rSrg)ÚFigureCanvasWxia  Nc                 ó  • [         R                  S[        U 5      5        [        U R                  U R
                  R                  5      U l        U R
                  R                  U R                  5        SU l	        U R                  US9  g)zt
Render the figure using RendererWx instance renderer, or using a
previously defined renderer if none is specified.
z%s - draw()Tr$  N)rm   rn   ro   rT   rt   r‡  rv   r  rÏ  r‹  r  )r0   r  s     r"   rÏ  ÚFigureCanvasWx.drawd  s^   € ô
 	�
‰
�=¤$ t£*Ô-Ü" 4§;¡;°·±·±Ó@ˆŒØ�‰×Ñ˜Ÿ™Ô'ØˆŒØ×Ñ ÐÒ'r$   c                 ó~  • [         R                  " [        R                  " U R                  R
                  R                  5      [        R                  " U R                  R
                  R                  5      5      nU R                  R                  [        X0R                  R                  5      5        [        R                  " U5      (       a  UR                  5       OUnUR                  X!5      (       d  [        SU 35      eU R                   (       a  U R                  5         U (       a  U R#                  5         g g )NzCould not save figure to )r   rÁ   rÓ   r†  r‡  rÉ   rq   rs   rÏ  rT   rv   r   Úis_writable_file_liker  ÚSaveFilerâ  r‹  rÖ  )r0   ÚfiletypeÚfilenamert   Ú	saved_objs        r"   Ú_print_imageÚFigureCanvasWx._print_imageo  sØ   € Ü—’œ4Ÿ9š9 T§[¡[×%5Ñ%5×%;Ñ%;Ó<ÜŸ9š9 T§[¡[×%5Ñ%5×%<Ñ%<Ó=ó?ˆà�‰×Ñœ F¯K©K¯O©OÓ<Ô=ä×3Ò3°H×=Ñ=ð ×*Ñ*Ô,à ð 	ð ×!Ñ! (×5Ñ5ÜÐ!:¸8¸*ÐEÓFÐFð
 �=�=Ø�I‰IŒKö Ø�L‰L�Nð r$   )r‹  r  r)   )rD   rE   rF   rG   rÏ  r  Ú	functoolsÚpartialmethodr   ÚBITMAP_TYPE_BMPÚ	print_bmpÚBITMAP_TYPE_JPEGÚ
print_jpegÚ	print_jpgÚBITMAP_TYPE_PCXÚ	print_pcxÚBITMAP_TYPE_PNGÚ	print_pngÚBITMAP_TYPE_TIFÚ
print_tiffÚ	print_tifÚBITMAP_TYPE_XPMÚ	print_xpmrI   rz   r$   r"   rü  rü  a  s¾   † ô	(òð( ×'Ò'Ø�b×(Ñ(ó*€Ià&×4Ò4Ø�b×)Ñ)ó+ð +€J�à×'Ò'Ø�b×(Ñ(ó*€Ià×'Ò'Ø�b×(Ñ(ó*€Ià&×4Ò4Ø�b×(Ñ(ó*ð *€J�à×'Ò'Ø�b×(Ñ(ó*ƒIr$   rü  c                   ó.   ^ • \ rS rSrU 4S jrS rSrU =r$ )ÚFigureFrameWxi‘  c                ó¤  >• [         R                  S:X  a  [         R                  nO[         R                  " SS5      n[        T	U ]  S SUS9  [        R                  S[        U 5      5        [        U 5        U" U SU5      U l
        [        U R                  X5      nU R                  R                  R                  nUb  U R                  U5        [        [         R"                  UR$                  R&                  5      u  pxU R                  R)                  U R+                  [         R,                  " Xx5      5      5        U R                  R/                  U R+                  [         R,                  " SS5      5      5        U R                  R1                  5         U R3                  5         U R5                  [         R6                  U R8                  5        g )Nr€  é   éÿÿÿÿ)r¼  r½  rr  rl   r”   )r   rˆ  ÚDefaultPositionÚPointr.   r/   rm   rn   ro   Ú_set_frame_iconr  rM  ÚmanagerÚtoolbarÚ
SetToolBarr…  rÓ   r†  rÉ   r÷   r¹  r‰  r„  Ú
SetMinSizeÚSetFocusÚFitr‘  Ú	EVT_CLOSEÚ	_on_close)
r0   ÚnumÚfigÚcanvas_classrr  r  r   r‰   rŠ   r3   s
            €r"   r/   ÚFigureFrameWx.__init__’  s5  ø€ ô �;‰;˜+Ó%Ü×$Ñ$‰Cä—(’(˜2˜rÓ"ˆCÜ‰Ñ ¨°ÐÑ5ä�
‰
Ð$¤d¨4£jÔ1Ü˜Ôá" 4¨¨SÓ1ˆŒä! $§+¡+¨sÓ9ˆà—+‘+×%Ñ%×-Ñ-ˆØÑØ�O‰O˜GÔ$ô ”4—9‘9˜cŸh™hŸm™mÓ,‰ˆØ�‰×"Ñ" 4§<¡<´·²¸³Ó#>Ô?Ø�‰×Ñ˜tŸ|™|¬B¯GªG°A°q«MÓ:Ô;Ø�‰×ÑÔà�‰Œ
à�	‰	”"—,‘, §¡Õ/r$   c                 óü  • [         R                  S[        U 5      5        [        SU R                  5      R                  5         U R                  R                  5         S U R                  R                  l        [        R                  " U R                  R                  5         U R                  R                  U R                  R                  R                  5        UR                  5         g ! [         a     Nf = f)Nz%s - on_close()Úclose_event)rm   rn   ro   r   r  r8  rå  r  Úframer   ÚdestroyÚmpl_disconnectr   Ú_id_dragÚAttributeErrorry  rï  s     r"   r&  ÚFigureFrameWx._on_close±  s¬   € Ü�
‰
Ð$¤d¨4£jÔ1Ü�= $§+¡+Ó.×7Ñ7Ô9Ø�‰×#Ñ#Ô%ð %)ˆ�‰×ÑÔ!ä�Š�D—K‘K×'Ñ'Ô(ð	Ø�K‰K×&Ñ& t§{¡{×':Ñ':×'CÑ'CÔDð 	�
‰
�øô ó 	Ùð	ús   Â$9C. Ã.
C;Ã:C;)r  )rD   rE   rF   rG   r/   r&  rI   rJ   rK   s   @r"   r  r  ‘  s   ø† õ0÷>ð r$   r  c                   óp   ^ • \ rS rSrSrU 4S jr\S 5       r\S 5       rS r	S r
S rS	 rS
 rS rSrU =r$ )rM  iÂ  aj  
Container/controller for the FigureCanvas and GUI frame.

It is instantiated by Gcf whenever a new figure is created.  Gcf is
responsible for managing multiple instances of FigureManagerWx.

Attributes
----------
canvas : `FigureCanvas`
    a FigureCanvasWx(wx.Panel) instance
window : wxFrame
    a wxFrame instance - wxpython.org/Phoenix/docs/html/Frame.html
c                 ó~   >• [         R                  S[        U 5      5        U=U l        U l        [
        TU ]  X5        g )Nrl   )rm   rn   ro   r-  Úwindowr.   r/   )r0   r  r'  r-  r3   s       €r"   r/   ÚFigureManagerWx.__init__Ñ  s1   ø€ Ü�
‰
Ð$¤d¨4£jÔ1Ø#(Ð(ˆŒ
�T”[Ü‰Ñ˜Õ%r$   c                 ó.  • [         R                  " 5       =(       d
    [        5       n[        X2US9nUR                  R
                  n[        R                  " 5       (       a4  UR                  R                  5         UR                  R                  5         U$ )N)r)  )r   ÚGetAppr#   r  r  r  ÚmplÚis_interactiver-  ÚShowr×  )rN  r)  r‡  r'  r!   r-  r  s          r"   Úcreate_with_canvasÚ"FigureManagerWx.create_with_canvasÖ  se   € ô —	’	“×.œ}›ˆÜ˜c¸ÑEˆØ—-‘-×'Ñ'ˆÜ×Ò×ÑØ�M‰M×ÑÔ Ø�M‰M×#Ñ#Ô%Øˆr$   c                 óž   • [         R                  R                  5       (       d*  [         R                  " 5       nUb  UR	                  5         g g g r)   )r   r   ÚIsMainLoopRunningr8  ÚMainLoop)rN  r!   s     r"   Ústart_main_loopÚFigureManagerWx.start_main_loopá  s:   € ä�v‰v×'Ñ'×)Ñ)Ü—I’I“KˆEØÑ Ø—‘Õ ð !ð *r$   c                 óÒ   • U R                   R                  5         U R                  R                  5         [        R
                  S   (       a  U R                   R                  5         g g )Nzfigure.raise_window)r-  r;  r  rÏ  r9  ÚrcParamsÚRaiser9   s    r"   ÚshowÚFigureManagerWx.showè  sB   € à�
‰
�‰ÔØ�‰×ÑÔÜ�<‰<Ð-×.Ø�J‰J×ÑÕð /r$   c                 óª   • [         R                  S[        U 5      5        U R                  nU(       a!  [        R
                  " UR                  5        g g )Nz%s - destroy())rm   rn   ro   r-  r   Ú	CallAfterrÈ  )r0   r1   r-  s      r"   r.  ÚFigureManagerWx.destroyï  s8   € ä�
‰
Ð#¤T¨$£ZÔ0Ø—
‘
ˆÞô �LŠL˜Ÿ™Õ%ð r$   c                 ót   • U R                   R                  U R                   R                  5       (       + 5        g r)   )r-  ÚShowFullScreenÚIsFullScreenr9   s    r"   Úfull_screen_toggleÚ"FigureManagerWx.full_screen_toggleø  s$   € à�
‰
×!Ñ! d§j¡j×&=Ñ&=Ó&?Ô"?Õ@r$   c                 ó6   • U R                   R                  5       $ r)   )r5  ÚGetTitler9   s    r"   Úget_window_titleÚ FigureManagerWx.get_window_titleü  s   € à�{‰{×#Ñ#Ó%Ð%r$   c                 ó:   • U R                   R                  U5        g r)   )r5  ÚSetTitle)r0   Útitles     r"   Úset_window_titleÚ FigureManagerWx.set_window_title   s   € à�‰×Ñ˜UÕ#r$   c           
      óæ   • U R                   R                  U R                   R                  [        R                  " [
        R                  " U5      [
        R                  " U5      5      5      5        g r)   )r5  ÚSetSizeÚClientToWindowSizer   r„  rÓ   r†  )r0   rq   rs   s      r"   ÚresizeÚFigureManagerWx.resize  sI   € ð 	�‰×Ñ˜DŸK™K×:Ñ:¼2¿7º7Ü�IŠI�eÓœdŸiši¨Ó/ó<1ó 2õ 	3r$   )r-  r5  )rD   rE   rF   rG   rH   r/   Úclassmethodr<  rA  rF  r.  rN  rR  rW  r\  rI   rJ   rK   s   @r"   rM  rM  Â  sY   ø† ñõ&ð
 ñó ðð ñ!ó ð!òò&òAò&ò$÷3ð 3r$   rM  c                 ój   • [         R                  " [        [        R                  " SU 5      5      5      $ )zP
Load a wx.Bitmap from a file in the "images" directory of the Matplotlib
data.
Úimages)r   rÁ   Ústrr   Ú_get_data_path)r  s    r"   Ú_load_bitmaprc    s%   € ô
 �9Š9”Sœ×-Ò-¨h¸ÓAÓBÓCÐCr$   c                 óð   • [         R                  " 5       nS HJ  n[         R                  " [        U5      5      nUR	                  5       (       d    g UR                  U5        ML     U R                  U5        g )N)zmatplotlib.pngzmatplotlib_large.png)r   Ú
IconBundleÚIconrc  ÚIsOkÚAddIconÚSetIcons)r-  ÚbundleÚimageÚicons       r"   r  r    sR   € Ü�]Š]‹_€FÛ;ˆÜ�wŠw”| EÓ*Ó+ˆØ�y‰y�{‰{ÙØ�‰�tÖñ	 <ð
 
‡N�N�6Õr$   c                   óŽ   ^ • \ rS rSrS\R
                  S.S jjr\S 5       rS r	U 4S jr
U 4S jrS rS	 rS
 rS rS rSrU =r$ )ÚNavigationToolbar2Wxi  ©rç   c          
      ó°  • [         R                  R                  XR                  5       SUS9  [         R                  S:X  a0  U R                  U R                  5       U R                  5       -  5        0 U l        U R                   H¾  u  pEpgUc  U R                  5         M  U R                  SU R                  U S35      [         R                  XEUS;   a  [         R                  O[         R                  S9R                   U R                  U'   U R#                  [         R$                  ['        X5      U R                  U   S9  MÀ     X l        U R(                  (       aS  U R+                  5         [         R,                  " U [         R.                  S9U l        U R3                  U R0                  5        U R5                  5         [6        R                  " X5        g )Nr  ro  rƒ  ú.svg)ÚPanÚZoom)rt   ÚbmpDisabledÚlabelÚ	shortHelpÚkindrß  )r   ÚToolBarr/   r,  rˆ  ÚSetToolBitmapSizeÚGetToolBitmapSizer¸  Úwx_idsÚ	toolitemsÚAddSeparatorÚAddToolÚ_iconr!  Ú
ITEM_CHECKÚITEM_NORMALÚIdr‘  ÚEVT_TOOLr5  Ú_coordinatesÚAddStretchableSpaceÚ
StaticTextÚALIGN_RIGHTÚ_label_textÚ
AddControlÚRealizer   )r0   r  Úcoordinatesrç   ÚtextÚtooltip_textÚ
image_fileÚcallbacks           r"   r/   ÚNavigationToolbar2Wx.__init__  sh  € Ü
�
‰
×Ñ˜D×"2Ñ"2Ó"4°bÀÐÑFÜ�;‰;˜+Ó%Ø×"Ñ" 4×#9Ñ#9Ó#;¸D×<RÑ<RÓ<TÑ#TÔUàˆŒØ8<¿¼Ñ4ˆD 
Ø‰|Ø×!Ñ!Ô#Ùà—‘ØØŸ:™:¨¨°DÐ&9Ó:Ü "§¡ØØ+/°?Ó+Bœ"Ÿ-š-Ü!Ÿ~™~ð ð 0÷ ‘ð �K‰K˜Ñð �I‰I”b—k‘k¤7¨4Ó#:ØŸ™ TÑ*ð ó ,ñ 9Gð  (ÔØ××Ø×$Ñ$Ô&Ü!Ÿ}š}¨T¼¿¹ÑHˆDÔØ�O‰O˜D×,Ñ,Ô-à�‰Œä×#Ò# DÕ1r$   c                 óh  •  [         R                  R                  5       R                  5       n[        R                  " SU 5      nUR                  S:X  az  UR                  5       nU(       a  UR                  SS	5      n[         R                   " 5       R#                  [         R$                  5      n[         R&                  R)                  Xx5      $ [*        R,                  R/                  U5      n	[0        R2                  " U	R5                  S
5      5      n
U(       a{  [         R                  R                  [         R                  5      nU
SSS24   S:H  R7                  SS9nUR9                  5       UR;                  5       UR=                  5       4X«SS24'   [         R>                  RA                  U
RB                  S   U
RB                  S   U
RE                  5       5      $ ! [         aÉ    [         R                  R                  [         R                  5      n[         R                  R                  [         R                  5      nSUR                  -  SUR                  -  -   SUR                  -  -   S-  nSUR                  -  SUR                  -  -   SUR                  -  -   S-  nXT-
  S:„  n GN‚f = f)z›
Construct a `wx.Bitmap` suitable for use as icon from an image file
*name*, including the extension and relative to Matplotlib's "images"
data directory.
g‰A`åÐ"Ó?gbX9´Èâ?gÉv¾Ÿ/½?r?  gš™™™™™É?r`  rq  s   fill:black;s   fill:white;ÚRGBA.Nr“   r   r  )Úaxisr   )#r   ÚSystemSettingsÚGetAppearanceÚIsDarkr1  Ú	GetColourÚSYS_COLOUR_WINDOWÚSYS_COLOUR_WINDOWTEXTÚredÚgreenÚbluer   rb  ÚsuffixÚ
read_bytesÚreplaceÚArtProviderÚGetDIPSizeHintÚART_TOOLBARÚBitmapBundleÚFromSVGÚPILÚImageÚopenÚnpÚarrayÚconvertÚallÚRedÚGreenÚBluerÁ   rÂ   rÀ   rÃ   )rN   ÚdarkÚbgr&  Úbg_lumÚfg_lumrª   ÚsvgÚtoolbarIconSizeÚpilimgrk  Ú
black_masks               r"   r  ÚNavigationToolbar2Wx._icon>  s  € ð		(Ü×$Ñ$×2Ñ2Ó4×;Ñ;Ó=ˆDô ×#Ò# H¨dÓ3ˆØ�;‰;˜&Ó Ø—/‘/Ó#ˆCÞØ—k‘k .°.ÓA�Ü ŸnšnÓ.×=Ñ=¼b¿n¹nÓMˆOÜ—?‘?×*Ñ*¨3Ó@Ð@ä—Y‘Y—^‘^ DÓ)ˆFä—H’H˜VŸ^™^¨FÓ3Ó4ˆEÞÜ×&Ñ&×0Ñ0´×1IÑ1IÓJ�Ø# C¨¨!¨ G™n°Ñ1×6Ñ6¸BÐ6Ð?�
Ø)+¯©«°2·8±8³:¸r¿w¹w»yÐ(I� " 1 "�nÑ%Ü—9‘9×+Ñ+Ø—‘˜A‘ §¡¨A¡°·±³óAð Aøô1 ó 	(ä×"Ñ"×,Ñ,¬R×-AÑ-AÓBˆBÜ×"Ñ"×,Ñ,¬R×-EÑ-EÓFˆBà˜RŸV™V‘m d¨R¯X©X¡oÑ5¸¸r¿w¹w¹ÑFÈ#ÑMˆFØ˜RŸV™V‘m d¨R¯X©X¡oÑ5¸¸r¿w¹w¹ÑFÈ#ÑMˆFØ‘? RÑ'‹Dð	(ús   ‚,G ÇCJ1Ê0J1c                 ó  • SU R                   ;   a6  U R                  U R                   S   U R                  R                  S:H  5        SU R                   ;   a7  U R                  U R                   S   U R                  R                  S:H  5        g g )Nrr  ÚPANrs  ÚZOOM)r{  Ú
ToggleToolÚmoderN   r9   s    r"   Ú_update_buttons_checkedÚ,NavigationToolbar2Wx._update_buttons_checkedb  sg   € Ø�D—K‘KÓØ�O‰O˜DŸK™K¨Ñ.°·	±	·±À%Ñ0GÔHØ�T—[‘[Ó Ø�O‰O˜DŸK™K¨Ñ/°·±·±À6Ñ1IÕJð !r$   c                 ó@   >• [         TU ]  " U6   U R                  5         g r)   )r.   Úzoomr½  ©r0   r1   r3   s     €r"   rÀ  ÚNavigationToolbar2Wx.zoomh  s   ø€ Ü‰Š�dÑØ×$Ñ$Õ&r$   c                 ó@   >• [         TU ]  " U6   U R                  5         g r)   )r.   Úpanr½  rÁ  s     €r"   rÄ  ÚNavigationToolbar2Wx.panl  s   ø€ Ü‰Š�TÑØ×$Ñ$Õ&r$   c           	      ó‚  • U R                   R                  5       u  p#nU R                   R                  5       n[        R                  " U R                   R                  5       S[        R                  S   XR[        R                  [        R                  -  5      nUR                  U5        UR                  5       [        R                  :X  Ga  [        R                  " UR                  5       5      n[         R#                  S[%        U 5      U5        X6R'                  5          nUR(                  SS  n	X�R                   R+                  5       ;   a  X‰:w  a  [         R-                  SX˜U	5        U	n[        R                  S   (       a&  [/        UR0                  5      [        R                  S'    U R                   R2                  R5                  XxS9  U$ g ! [6         aa  n
[        R8                  " U R                   R                  5       [/        U
5      SS9nUR                  5         UR;                  5          S n
A
g S n
A
ff = f)	NzSave to filezsavefig.directoryz%s - Save file path: %sr   zDextension %s did not match the selected image type %s; going with %s)ÚformatzMatplotlib error)r¼  ÚmessageÚcaption)r  r  Úget_default_filenamer   Ú
FileDialogr,  r9  rD  ÚFD_SAVEÚFD_OVERWRITE_PROMPTÚSetFilterIndexÚ	ShowModalÚID_OKÚpathlibr   ÚGetPathrm   rn   ro   ÚGetFilterIndexr�  Úget_supported_filetypesÚwarningra  r¼  r‡  ÚsavefigÚ	ExceptionÚMessageDialogr&  )r0   r1   rü  r  r   Údefault_fileÚdialogrª   Úfmtr  Úes              r"   Úsave_figureÚ NavigationToolbar2Wx.save_figurep  s¶  € à(,¯©×(LÑ(LÓ(NÑ%ˆ	˜Ø—{‘{×7Ñ7Ó9ˆÜ—’Ø�K‰K×!Ñ!Ó# ^Ü�L‰LÐ,Ñ-¨|Ü�J‰Jœ×/Ñ/Ñ/ó1ˆð 	×Ñ˜lÔ+Ø×ÑÓ¤§¡Ô)Ü—<’< §¡Ó 0Ó1ˆDÜ�J‰JÐ0´$°t³*¸dÔCØ×,Ñ,Ó.Ñ/ˆCØ—+‘+˜a˜b�/ˆCØ—k‘k×9Ñ9Ó;Ó;ÀÃ
ô —‘ð <à  sô,ð �ä�|‰|Ð/×0Ü47¸¿¹Ó4D”—‘Ð0Ñ1ð!Ø—‘×"Ñ"×*Ñ*¨4Ð*Ñ<Ø�ð# *øô$ ó !Ü×)Ò)ØŸ;™;×0Ñ0Ó2¼CÀ»FØ.ñ0�ð × Ñ Ô"Ø—‘× Ñ ûð!ús   Æ-$G Ç
H>ÇAH9È9H>c                 ó2  • U R                   R                  R                  R                  n[        R
                  S:X  a  SOU R                   R                  5       nX'-  Xc-
  U-  XG-  Xe-
  U-  4U R                   l        U R                   R                  5         g )Nr€  r   )	r  r‡  rÉ   rs   r   rˆ  r¸  rŒ  rÖ  )r0   rÉ  r  r  r  r  rs   Úsfs           r"   Údraw_rubberbandÚ$NavigationToolbar2Wx.draw_rubberband’  sw   € Ø—‘×#Ñ#×(Ñ(×/Ñ/ˆÜ—+‘+ Ó,‰Q°$·+±+×2OÑ2OÓ2QˆØ(*©°±¸RÑ/?Ø(*©°±¸RÑ/?ð(Aˆ�‰Ô$à�‰×ÑÕr$   c                 óZ   • S U R                   l        U R                   R                  5         g r)   )r  rŒ  rÖ  r9   s    r"   Úremove_rubberbandÚ&NavigationToolbar2Wx.remove_rubberband™  s   € Ø'+ˆ�‰Ô$Ø�‰×ÑÕr$   c                 ó^   • U R                   (       a  U R                  R                  U5        g g r)   )r„  rˆ  ÚSetLabel©r0   r…   s     r"   Úset_messageÚ NavigationToolbar2Wx.set_message�  s$   € Ø××Ø×Ñ×%Ñ% aÕ(ð r$   c                 óR  • U R                   R                  S:„  nU R                   R                  [        U R                   5      S-
  :  nSU R                  ;   a  U R	                  U R                  S   U5        SU R                  ;   a   U R	                  U R                  S   U5        g g )Nr   r   ÚBackÚForward)Ú
_nav_stackÚ_posÚlenr{  Ú
EnableTool)r0   Úcan_backwardÚcan_forwards      r"   Úset_history_buttonsÚ(NavigationToolbar2Wx.set_history_buttons¡  sƒ   € Ø—‘×+Ñ+¨aÑ/ˆØ—o‘o×*Ñ*¬S°·±Ó-AÀAÑ-EÑEˆØ�T—[‘[Ó Ø�O‰O˜DŸK™K¨Ñ/°Ô>Ø˜Ÿ™Ó#Ø�O‰O˜DŸK™K¨	Ñ2°KÕ@ð $r$   )r„  rˆ  r{  rÀ  )rD   rE   rF   rG   r   Ú	TB_BOTTOMr/   r  r  r½  rÀ  rÄ  rÝ  rá  rä  ré  rô  rI   rJ   rK   s   @r"   rn  rn    s\   ø† ð2¸"¿,¹,ö 2ð@ ñ!Aó ð!AòFKõ'õ'ò !òDòò)÷Að Ar$   rn  c                   óX   • \ rS rSrSrS\R                  4S jrS rS r	S r
S rS	 rS
rg)Ú	ToolbarWxi¬  rq  Nc                 ót  • Uc  UR                   R                  5       n[        R                  " X5        [        R
                  R                  XSUS9  U R                  5       U l        [        R                  " U [        R                  S9U l
        U R                  U R                  5        0 U l        0 U l        g )Nr  ro  )r  r,  r   r/   r   rx  r…  Ú_spacer†  r‡  rˆ  r‰  Ú
_toolitemsÚ_groups)r0   Útoolmanagerr¼  rç   s       r"   r/   ÚToolbarWx.__init__¯  s‰   € Ø‰>Ø ×'Ñ'×1Ñ1Ó3ˆFÜ×"Ò" 4Ô5Ü
�
‰
×Ñ˜D¨"°EÐÑ:Ø×.Ñ.Ó0ˆŒÜŸ=š=¨´R·^±^ÑDˆÔØ�‰˜×(Ñ(Ô)ØˆŒØˆ�r$   c                 óN   ^ ^• U U4S j[        T R                  5       5       u  nU$ )z¯
Find the position (index) of a wx.ToolBarToolBase in a ToolBar.

``ToolBar.GetToolPos`` is not useful because wx assigns the same Id to
all Separators and StretchableSpaces.
c              3   óV   >#   • U  H  nTR                  U5      T:X  d  M  Uv •  M      g 7fr)   )ÚGetToolByPos)Ú.0rr  r0   Útools     €€r"   Ú	<genexpr>Ú*ToolbarWx._get_tool_pos.<locals>.<genexpr>Á  s-   øé € ð 3Ò5˜Ø×$Ñ$ SÓ)¨TÑ1÷ ‘Ò5ùs   ƒ) 	))ÚrangeÚ
ToolsCount)r0   r  rr  s   `` r"   Ú_get_tool_posÚToolbarWx._get_tool_posº  s!   ù€ õ3œu T§_¡_Ô5ó 3‰ˆàˆ
r$   c           
      ó
  ^ ^• UT R                   ;  a7  T R                  T R                  T R                  5      5      T R                   U'   T R                   U   n[	        T R
                  [        T R                  5      5       Vs/ s H3  nUR                  5       (       d  M  UR                  5       (       a  M1  UPM5     n	nUS:¼  a3  XyS   :X  a  SO'T R                  X™R                  U5      S-
     5      S-   n
OT R                  U5      S-   n
X£-   nU(       ak  [        R                  U5      nU(       d  [        R                  O[        R                  nT R!                  USTU[        R"                  UU=(       d    S5      nO`T R%                  T5      S   S-   S4nU(       a  [        R&                  " T STUS9nO[        R(                  " T STUS9nT R+                  UUTS9nT R-                  5         UU 4S jnU(       a"  T R/                  [        R0                  UU5        O WR/                  [        R2                  U5        T R4                  R7                  T/ 5        T R4                  T   R9                  UU45        g s  snf )	Nr   r   r  Ú é
   r�  ©ru  c                 ó(   >• TR                  T5        g r)   )Útrigger_tool)rÉ  rN   r0   s    €€r"   ÚhandlerÚ'ToolbarWx.add_toolitem.<locals>.handlerç  s   ø€ Ø×Ñ˜dÕ#r$   )rü  ÚInsertSeparatorr  rú  r…  r  r  r  ÚIsSeparatorÚIsStretchableSpaceÚindexrn  r  r   r�  r€  Ú
InsertToolr!  ÚGetTextExtentÚToggleButtonÚButtonÚInsertControlrŠ  r‘  rƒ  rš  rû  Ú
setdefaultrú  )r0   rN   ÚgroupÚpositionrŽ  ÚdescriptionÚtoggleÚsepÚtÚsepsÚstartÚidxr  rw  r  r÷   rQ  r  s   ``                r"   Úadd_toolitemÚToolbarWx.add_toolitemÅ  s  ù€ ð ˜Ÿ™Ó$Ø"&×"6Ñ"6Ø×"Ñ" 4§;¡;Ó/ó#1ˆD�L‰L˜Ñà�l‰l˜5Ñ!ˆä˜t×0Ñ0´%¸¿¹Ó2HÔIó CÒI�aØ—=‘=—?ó Ø+,×+?Ñ+?×+A÷ ÑIˆð Cð �q‹=ð  a¡›.‘QØ×,Ñ,¨T·*±*¸S³/ÀAÑ2EÑ-FÓGÈ!ÑKñ ð ×&Ñ& sÓ+¨aÑ/ˆEØÑˆÞÜ&×,Ñ,¨ZÓ8ˆCÞ)/”2—>’>´R·]±]ˆDØ—?‘? 3¨¨D°#´r·}±}ÀdØ#.×#4°"ó6‰Dð ×&Ñ& tÓ,¨QÑ/°"Ñ4°bÐ9ˆDÞÜŸ/š/¨$°°D¸tÑD‘äŸ)š) D¨"¨d¸Ñ>�Ø×%Ñ% c¨7¸$Ð%Ð?ˆDØ�‰Œö	$ö Ø�I‰I”b—k‘k 7¨DÕ1à�L‰Lœ×)Ñ)¨7Ô3à�‰×"Ñ" 4¨Ô,Ø�‰˜Ñ×$Ñ$ d¨G _Õ5ùòGCs   ÂJ Â!J Â8J c                 ó  • XR                   ;  a  g U R                   U    HW  u  p4UR                  5       (       d  U R                  UR                  U5        M8  UR	                  5       R                  U5        MY     U R                  5         g r)   )rû  Ú	IsControlr»  r‚  Ú
GetControlÚSetValuerÖ  )r0   rN   Útoggledr  r  s        r"   Útoggle_toolitemÚToolbarWx.toggle_toolitemò  sc   € Ø—‘Ó&ØØ!Ÿ_™_¨TÔ2‰MˆDØ—>‘>×#Ñ#Ø—‘ §¡¨Ö1à—‘Ó!×*Ñ*¨7Ö3ñ	 3ð
 	�‰�r$   c                 ó„   • U R                   R                  U/ 5       H   u  p#U R                  UR                  5        M"     g r)   )rû  ÚpopÚ
DeleteToolr‚  )r0   rN   r  r  s       r"   Úremove_toolitemÚToolbarWx.remove_toolitemü  s/   € Ø!Ÿ_™_×0Ñ0°°rÖ:‰MˆDØ�O‰O˜DŸG™GÖ$ò ;r$   c                 ó:   • U R                   R                  U5        g r)   )rˆ  rç  rè  s     r"   ré  ÚToolbarWx.set_message   s   € Ø×Ñ×!Ñ! !Õ$r$   )rü  rˆ  rú  rû  )rD   rE   rF   rG   Ú_icon_extensionr   rö  r/   r  r%  r,  r1  ré  rI   rz   r$   r"   rø  rø  ¬  s/   † Ø€Oà+/°r·|±|ô 	ò	ò+6òZò%õ%r$   rø  c                   ó   • \ rS rSrS rSrg)ÚConfigureSubplotsWxi  c                 ó.   • [         R                  U 5        g r)   )rn  Úconfigure_subplots©r0   r1   s     r"   ÚtriggerÚConfigureSubplotsWx.trigger  s   € Ü×/Ñ/°Õ5r$   rz   N©rD   rE   rF   rG   r;  rI   rz   r$   r"   r7  r7    s   † õ6r$   r7  c                   ó   • \ rS rSrS rSrg)ÚSaveFigureWxi
  c                 óJ   • [         R                  U R                  5       5        g r)   )rn  rÝ  Ú"_make_classic_style_pseudo_toolbarr:  s     r"   r;  ÚSaveFigureWx.trigger  s   € Ü×(Ñ(Ø×3Ñ3Ó5õ	7r$   rz   Nr=  rz   r$   r"   r?  r?  
  s   † õ7r$   r?  c                   ó    • \ rS rSrS rS rSrg)ÚRubberbandWxi  c                 óP   • [         R                  U R                  5       S XX45        g r)   )rn  rá  rA  )r0   r  r  r  r  s        r"   rá  ÚRubberbandWx.draw_rubberband  s#   € Ü×,Ñ,Ø×3Ñ3Ó5°t¸RÀRõ	Mr$   c                 óJ   • [         R                  U R                  5       5        g r)   )rn  rä  rA  r9   s    r"   rä  ÚRubberbandWx.remove_rubberband  s   € Ü×.Ñ.Ø×3Ñ3Ó5õ	7r$   rz   N)rD   rE   rF   rG   rá  rä  rI   rz   r$   r"   rD  rD    s   † òMõ7r$   rD  c                   óP   ^ • \ rS rSrSrS/r/ SQrU 4S jrS r\	S 5       r
SrU =r$ )	Ú_HelpDialogi  N)ÚActionÚ	ShortcutsÚDescription)rV   éŒ   rX   c                 ó6  >• [         TU ]  US[        R                  [        R                  -  S9  [        R
                  " [        R                  5      n[        R                  " SSSS5      nU R                  5       R                  5       n[        U R                  U-   5       Hs  u  pg[        XpR                  5       HU  u  p‰[        R                  " XS9n
US:X  a  U
R                  U5        U
R!                  U	5        UR#                  U
SSS5        MW     Mu     UR#                  US[        R$                  S5        [        R&                  " U [        R(                  5      nUR#                  US[        R*                  [        R$                  -  S5        U R-                  U5        UR/                  U 5        U R1                  5         U R3                  [        R4                  U R6                  5        UR3                  [        R8                  U R6                  5        g )NÚHelp)rV  rç   r   r“   é   é   r  )r.   r/   r   ÚDEFAULT_DIALOG_STYLEÚRESIZE_BORDERÚBoxSizerÚVERTICALÚFlexGridSizerÚGetFontÚMakeBoldrø  ÚheadersÚzipÚwidthsr†  r‚   ÚWrapÚAddÚALLr  rÐ  ÚALIGN_CENTER_HORIZONTALÚSetSizerr$  ÚLayoutr‘  r%  r&  Ú
EVT_BUTTON)r0   r¼  Úhelp_entriesÚsizerÚ
grid_sizerr^   ÚrÚrowÚcolrq   ru  Úokr3   s               €r"   r/   Ú_HelpDialog.__init__!  ss  ø€ Ü‰Ñ˜ vÜ!×6Ñ6¼×9IÑ9IÑIð 	ñ 	Kô —’œBŸK™KÓ(ˆÜ×%Ò% a¨¨A¨qÓ1ˆ
à�|‰|‹~×&Ñ&Ó(ˆÜ §¡¨|Ñ ;Ö<‰FˆAÜ # C¯©Ö 5‘�ÜŸš dÑ6�Ø˜“6Ø—M‘M $Ô'Ø—
‘
˜5Ô!Ø—‘˜u a¨¨AÖ.ó !6ñ =ð 	�	‰	�*˜a¤§¡¨Ô+Ü�YŠY�tœRŸX™XÓ&ˆØ�	‰	�"�aœ×3Ñ3´b·f±fÑ<¸aÔ@Ø�‰�eÔØ�	‰	�$ŒØ�‰ŒØ�	‰	”"—,‘, §¡Ô/Ø
�‰”—‘˜tŸ~™~Õ.r$   c                 óZ   • S [         l        U R                  5         UR                  5         g r)   )rJ  Ú	_instanceÚDestroyLaterry  rï  s     r"   r&  Ú_HelpDialog._on_close:  s   € Ø $ŒÔØ×ÑÔØ�
‰
�r$   c                 óª   • U R                   (       a  U R                   R                  5         g U " X5      U l         U R                   R                  5         g r)   )rm  rE  r;  )rN  r¼  rd  s      r"   rF  Ú_HelpDialog.show?  s:   € ð �=�=Ø�M‰M×ÑÔ!ØÙ˜FÓ1ˆŒØ�‰×ÑÕr$   rz   )rD   rE   rF   rG   rm  rZ  r\  r/   r&  r^  rF  rI   rJ   rK   s   @r"   rJ  rJ    s3   ø† Ø€IØ5Ð6€GÚ€Fõ/ò2ð
 ñó ör$   rJ  c                   ó   • \ rS rSrS rSrg)ÚHelpWxiI  c                 ó�   • [         R                  U R                  R                  R	                  5       U R                  5       5        g r)   )rJ  rF  r‡  r  ÚGetTopLevelParentÚ_get_help_entriesr:  s     r"   r;  ÚHelpWx.triggerK  s1   € Ü×Ñ˜Ÿ™×+Ñ+×=Ñ=Ó?Ø×/Ñ/Ó1õ	3r$   rz   Nr=  rz   r$   r"   rs  rs  I  s   † õ3r$   rs  c                   ó   • \ rS rSrS rSrg)ÚToolCopyToClipboardWxiP  c                 ó  • U R                   R                  (       d  U R                   R                  5         U R                   R                  R	                  5       (       a#  [
        R                  R                  5       (       d  g  [
        R                  R                  [
        R                  " U R                   R                  5      5        [
        R                  R                  5         g ! [
        R                  R                  5         f = fr)   )r  r‹  rÏ  rt   rg  r   rÃ  rÅ  rÆ  rÁ  rÈ  rÐ  s      r"   r;  ÚToolCopyToClipboardWx.triggerR  sš   € Ø�{‰{×#×#Ø�K‰K×ÑÔØ�{‰{×!Ñ!×&Ñ&×(Ñ(´·±×0DÑ0D×0FÑ0FØð	$Ü�O‰O×#Ñ#¤B×$7Ò$7¸¿¹×8JÑ8JÓ$KÔLä�O‰O×!Ñ!Õ#øŒB�O‰O×!Ñ!Õ#ús   ÂAC* Ã* D
rz   Nr=  rz   r$   r"   ry  ry  P  s   † õ$r$   ry  c                   ó4   • \ rS rSr\r\r\R                  r	Sr
g)Ú
_BackendWxia  rz   N)rD   rE   rF   rG   rü  ÚFigureCanvasrM  ÚFigureManagerrA  ÚmainlooprI   rz   r$   r"   r}  r}  a  s   † à!€LØ#€MØ×.Ñ.ƒHr$   r}  )OrH   r  ÚloggingrÓ   rÑ  r  rH  Únumpyr¨  Ú	PIL.Imager¥  Ú
matplotlibr9  Úmatplotlib.backend_basesr   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úmatplotlib._pylab_helpersr   Úmatplotlib.pathr   Úmatplotlib.transformsr   r   Úwx.svgÚ	getLoggerrD   rm   rú   Ú	lru_cacher#   r&   Ú
deprecatedrT   râ   rŠ  rK  rü  ÚFramer  rM  rc  r  rx  rn  rø  Ú_register_tool_classÚConfigureSubplotsBaser7  ÚSaveFigureBaser?  ÚRubberbandBaserD  ÚDialogrJ  ÚToolHelpBasers  ÚToolCopyToClipboardBasery  Ú_toolbar2_classÚ_toolmanager_toolbar_classÚexportr}  rz   r$   r"   Ú<module>r˜     sŒ  ðñó Û Û Û Û 
Û ã Û ã ÷B÷ B÷ B÷ Bñ B÷ EÓ DÝ )Ý  Ý *ã 	Û à×Ò˜Ó"€ð
 €ð ×Ò�QÓñó ðô ˆiô  ð& ‡‚Ø	�˜y°,ØØFñHôLC�ó LCó	HðLCô^j9Ð+ô j9ôZU1Ð*¨B¯H©Hô U1ôp-*Ð(ô -*ô`.�B—H‘Hô .ôbF3Ð'ô F3òRDòôJAÐ-¨r¯z©zô JAô^U%Ð! 2§:¡:ô U%ðp ×#Ò#Ð$7Ó8ô6˜-×=Ñ=ó 6ó 9ð6ð
 ×#Ò#Ð$7Ó8ô7�=×/Ñ/ó 7ó 9ð7ð ×#Ò#Ð$7Ó8ô7�=×/Ñ/ó 7ó 9ð7ô*�"—)‘)ô *ðZ ×#Ò#Ð$7Ó8ô3ˆ]×'Ñ'ó 3ó 9ð3ð ×#Ò#Ð$7Ó8ô	$˜M×AÑAó 	$ó 9ð	$ð #7€Ô Ø-6€Ô *ð 
‡�ô/�ó /ó ñ/r$   