Ë
    ¨eh`È  ã                   ó´  — d 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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mZmZ ddlmZmZmZm Z  ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl'Z'ddl(Z' ejR                  e*«      Z+dZ, ejZ                  d	«      d
„ «       Z. G d„ de«      Z/ ej`                  dddddd¬«       G d„ de«      «       Z1 G d„ de«      Z2 G d„ dee'jf                  «      Z4 G d„ de4«      Z5 G d„ de'jl                  «      Z7 G d„ de«      Z8d „ Z9d!„ Z: G d"„ d#ee'jv                  «      Z< G d$„ d%ee'jv                  «      Z= ej|                  e4«       G d&„ d'ej~                  «      «       Z@ ej|                  e4«       G d(„ d)ej‚                  «      «       ZB ej|                  e4«       G d*„ d+ej†                  «      «       ZD G d,„ d-e'jŠ                  «      ZF ej|                  e4«       G d.„ d/ejŽ                  «      «       ZH ej|                  e4«       G d0„ d1ej’                  «      «       ZJe<e8_K        e=e8_L        ejš                   G d2„ d3e«      «       ZNy)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                  ó¢   — t        j                  d«      } | j                  d«       t        j                  «        t        j                  «        | S )NFT)ÚwxÚAppÚSetExitOnFrameDeleter   Ú_setup_new_guiappr   Ú Win32_SetProcessDpiAwareness_max)Úwxapps    ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/matplotlib/backends/backend_wx.pyÚ_create_wxappr#   ,   s:   € ä�F‰F�5‹M€EØ	×Ñ˜tÔ$Ü	×ÑÔä×6Ñ6Ô8Ø€Ló    c                   ó4   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zˆ xZS )ÚTimerWxz/Subclass of `.TimerBase` using wx.Timer events.c                 óŒ   •— t        j                  «       | _        | j                  | j                  _        t        ‰| �  |i |¤Ž y ©N)r   ÚTimerÚ_timerÚ	_on_timerÚNotifyÚsuperÚ__init__)ÚselfÚargsÚkwargsÚ	__class__s      €r"   r.   zTimerWx.__init__9   s2   ø€ Ü—h‘h“jˆŒØ!Ÿ^™^ˆ�‰ÔÜ‰Ñ˜$Ð) &Ó)r$   c                 ód   — | j                   j                  | j                  | j                  «       y r(   )r*   ÚStartÚ	_intervalÚ_single©r/   s    r"   Ú_timer_startzTimerWx._timer_start>   s   € Ø�‰×Ñ˜$Ÿ.™.¨$¯,©,Õ7r$   c                 ó8   — | j                   j                  «        y r(   )r*   ÚStopr7   s    r"   Ú_timer_stopzTimerWx._timer_stopA   s   € Ø�‰×ÑÕr$   c                 óZ   — | j                   j                  «       r| j                  «        y y r(   )r*   Ú	IsRunningr8   r7   s    r"   Ú_timer_set_intervalzTimerWx._timer_set_intervalD   s#   € Ø�;‰;× Ñ Ô"Ø×ÑÕð #r$   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r.   r8   r;   r>   Ú__classcell__©r2   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                   ó4  ‡ — e Zd ZdZi dej
                  “dej
                  “dej
                  “dej                  “dej                  “dej                  “dej                  “d	ej                  “d
ej                  “dej
                  “dej
                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  “dej                  i¥Zej                  ej                  ej                  dœZej                  ej                  ej                  ej                   ej"                  ej"                  ej"                  dœZˆ fd„Zd„ Zd„ Zd„ Zd„ Zed„ «       Zd"d„Zd„ Zd#d„Zd„ Zd „ Zd!„ Zˆ xZ S )$Ú
RendererWxzÎ
    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)ÚitalicrS   Úoblique)ÚSansÚRomanÚScriptÚ
DecorativeÚModernÚCourierÚcourierc                 óì   •— t         ‰| �  «        t        j                  dt	        | «      «       |j                  «       | _        |j                  «       | _        || _	        i | _
        || _        d| _        y)z)Initialise a wxWindows renderer instance.ú%s - __init__()N)r-   r.   Ú_logÚdebugÚtypeÚGetWidthÚwidthÚ	GetHeightÚheightÚbitmapÚfontdÚdpiÚgc)r/   rl   rn   r2   s      €r"   r.   zRendererWx.__init__�   s[   ø€ ä‰ÑÔÜ�
‰
Ð$¤d¨4£jÔ1Ø—_‘_Ó&ˆŒ
Ø×&Ñ&Ó(ˆŒØˆŒØˆŒ
ØˆŒØˆ�r$   c                  ó   — y)NT© r7   s    r"   ÚflipyzRendererWx.flipyŒ   s   € àr$   c                 ó4  — |rt        j                  |«      }| j                  €| j                  «       }n| j                  }|j                  }| j                  ||«      }|j                  |t        j                  «       |j                  |«      \  }}}	}
|||	fS r(   )
r   Ú
strip_mathro   Únew_gcÚgfx_ctxÚget_wx_fontÚSetFontr   ÚBLACKÚGetFullTextExtent)r/   ÚsÚpropÚismathro   rv   ÚfontÚwÚhÚdescentÚleadings              r"   Úget_text_width_height_descentz(RendererWx.get_text_width_height_descent�   s†   € ñ Ü× Ñ  Ó#ˆAà�7‰7ˆ?Ø—‘“‰Bà—‘ˆBØ—*‘*ˆØ×Ñ  4Ó(ˆØ�‰˜œbŸh™hÔ'Ø!(×!:Ñ!:¸1Ó!=Ñˆˆ1ˆg�wà�!�Wˆ}Ðr$   c                 ó2   — | j                   | j                  fS r(   )ri   rk   r7   s    r"   Úget_canvas_width_heightz"RendererWx.get_canvas_width_height¡   s   € à�z‰z˜4Ÿ;™;Ð&Ð&r$   c                 ó  — |j                  «       }|�|j                  }|j                  }|j                  |k7  rN||_        |€|j	                  «        y |j                  |d   | j                  |d   z
  |d   z
  |d   |d   «       y y )Nr   r   é   é   )Úget_clip_rectangleÚboundsrv   Ú_lastcliprectÚ	ResetClipÚCliprk   )r/   ro   Ú
new_boundsrv   s       r"   Úhandle_clip_rectanglez RendererWx.handle_clip_rectangle¥   s�   € Ø×*Ñ*Ó,ˆ
ØÐ!Ø#×*Ñ*ˆJØ—*‘*ˆØ× Ñ  JÒ.Ø$.ˆGÔ!ØÐ!Ø×!Ñ!Õ#à—‘˜Z¨™]Ø!Ÿ[™[¨:°a©=Ñ8¸:Àa¹=ÑHØ'¨™]¨J°q©Mõ;ð /r$   c                 ó¸  — | j                  «       }|j                  |«      D ]µ  \  }}|t        j                  k(  r |j                  |Ž  Œ)|t        j
                  k(  r |j                  |Ž  ŒL|t        j                  k(  r |j                  |Ž  Œo|t        j                  k(  r |j                  |Ž  Œ’|t        j                  k(  sŒ¦|j                  «        Œ· |S r(   )Ú
CreatePathÚiter_segmentsr   ÚMOVETOÚMoveToPointÚLINETOÚAddLineToPointÚCURVE3ÚAddQuadCurveToPointÚCURVE4ÚAddCurveToPointÚ	CLOSEPOLYÚCloseSubpath)rv   ÚpathÚ	transformÚwxpathÚpointsÚcodes         r"   Úconvert_pathzRendererWx.convert_path³   s½   € à×#Ñ#Ó%ˆØ ×.Ñ.¨yÓ9ò 
	&‰LˆF�DØ”t—{‘{Ò"Ø"�×"Ñ" FÒ+ØœŸ™Ò$Ø%�×%Ñ% vÒ.ØœŸ™Ò$Ø*�×*Ñ*¨FÒ3ØœŸ™Ò$Ø&�×&Ñ&¨Ò/ØœŸ™Ó'Ø×#Ñ#Õ%ð
	&ð ˆr$   c                 óÂ  — |j                  «        | j                  |«       |j                  }|t        «       j	                  dd«      j                  d| j                  «      z   }| j                  |||«      }|�E|j                  t        j                  |j                  |«      «      «       |j                  |«       n|j                  |«       |j                  «        y )Ng      ð?g      ð¿ç        )Úselectr�   rv   r   ÚscaleÚ	translaterk   r¢   ÚSetBrushr   ÚBrushÚget_wxcolourÚDrawPathÚ
StrokePathÚunselect)r/   ro   r�   rž   ÚrgbFacerv   rŸ   s          r"   Ú	draw_pathzRendererWx.draw_pathÃ   s¯   € à
�	‰	ŒØ×"Ñ" 2Ô&Ø—*‘*ˆØÜ‹J×Ñ˜S $Ó'×1Ñ1°#°t·{±{ÓCñDˆ	à×"Ñ" 7¨D°)Ó<ˆØÐØ×ÑœRŸX™X b§o¡o°gÓ&>Ó?Ô@Ø×Ñ˜VÕ$à×Ñ˜vÔ&Ø
�‰�r$   c           	      óè  — |j                  «       }|�|j                  \  }}}}	nd}d}| j                  }| j                  }	|j                  d d \  }
}t
        j                  j                  ||
|j                  «       «      }|j                  «        |j                  j                  |t        |«      t        | j                  |z
  «      t        |«      t        |	 «      «       |j                  «        y )Nr   rˆ   )r‰   rŠ   ri   rk   Úshaper   ÚBitmapÚFromBufferRGBAÚtobytesr¥   rv   Ú
DrawBitmapÚintr­   )r/   ro   ÚxÚyÚimÚbboxÚlÚbr   r€   ÚrowsÚcolsrl   s                r"   Ú
draw_imagezRendererWx.draw_imageÒ   s¾   € Ø×$Ñ$Ó&ˆØÐØŸ™‰JˆAˆq�!‘QàˆAØˆAØ—
‘
ˆAØ—‘ˆAØ—X‘X˜b˜q�\‰
ˆˆdÜ—‘×)Ñ)¨$°°b·j±j³lÓCˆØ
�	‰	ŒØ
�
‰
×Ñ˜f¤c¨!£f¬c°$·+±+À±/Ó.BÜ! !›f¤c¨1¨"£gô	/à
�‰�r$   c	                 óÀ  — |rt        j                  |«      }t        j                  dt	        | «      «       |j                  «        | j                  |«       |j                  }	| j                  ||«      }
|j                  |j                  «       «      }|	j                  |
|«       | j                  |||«      \  }}}t        |«      }t        ||z
  «      }|dk(  r|	j                  |||«       n_t        j                   |«      }|t        j"                  |«      z  }|t        j$                  |«      z  }|	j'                  |||z
  ||z
  |«       |j)                  «        y )Nz%s - draw_text()r¤   )r   rt   re   rf   rg   r¥   r�   rv   rw   rª   Úget_rgbrx   rƒ   r¶   ÚDrawTextÚmathÚradiansÚsinÚcosÚDrawRotatedTextr­   )r/   ro   r·   r¸   r{   r|   Úangler}   Úmtextrv   r~   Úcolorr   r€   ÚdÚradsÚxoÚyos                     r"   Ú	draw_textzRendererWx.draw_textâ   s  € ñ Ü× Ñ  Ó#ˆAÜ�
‰
Ð%¤t¨D£zÔ2Ø
�	‰	ŒØ×"Ñ" 2Ô&Ø—*‘*ˆà×Ñ  4Ó(ˆØ—‘ §
¡
£Ó-ˆØ�‰˜˜eÔ$à×4Ñ4°Q¸¸fÓE‰ˆˆ1ˆaÜ�‹FˆÜ��A‘‹Jˆà�CŠ<Ø×Ñ˜Q  1Õ%ä—<‘< Ó&ˆDØ”T—X‘X˜d“^Ñ#ˆBØ”T—X‘X˜d“^Ñ#ˆBØ×#Ñ# A q¨2¡v¨q°2©v°tÔ<à
�‰�r$   c                 óö   — t         j                  dt        | «      «       t        | j                  | «      | _        | j
                  j                  «        | j
                  j                  «        | j
                  S )Nz%s - new_gc())re   rf   rg   ÚGraphicsContextWxrl   ro   r¥   r­   r7   s    r"   ru   zRendererWx.new_gcþ   sM   € ä�
‰
�?¤D¨£JÔ/Ü# D§K¡K°Ó6ˆŒØ�‰�‰ÔØ�‰×ÑÔØ�w‰wˆr$   c                 ó  — t         j                  dt        | «      «       t        |«      }| j                  j                  |«      }|�|S | j                  |j                  «       «      }t        j                  t        |«      | j                  j                  |j                  «       t        j                  «      | j                  |j                  «          | j                   |j#                  «          ¬«      x| j                  |<   }|S )z7Return a wx font.  Cache font instances for efficiency.z%s - get_wx_font())Ú	pointSizeÚfamilyÚstyleÚweight)re   rf   rg   Úhashrm   ÚgetÚpoints_to_pixelsÚget_size_in_pointsr   ÚFontÚroundÚ	fontnamesÚget_nameÚROMANÚ
fontanglesÚ	get_styleÚfontweightsÚ
get_weight)r/   r{   r|   Úkeyr~   Úsizes         r"   rw   z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                 ó:   — |t         dz  | j                  z  dz  z  S )Ng      R@)ÚPIXELS_PER_INCHrn   )r/   r    s     r"   rÙ   zRendererWx.points_to_pixels  s    € àœ¨4Ñ/°$·(±(Ñ:¸TÑAÑBÐBr$   r(   )FN)!r?   r@   rA   rB   r   ÚFONTWEIGHT_LIGHTÚFONTWEIGHT_NORMALÚFONTWEIGHT_BOLDrâ   ÚFONTSTYLE_ITALICÚFONTSTYLE_NORMALÚFONTSTYLE_SLANTrà   ÚFONTFAMILY_SWISSÚFONTFAMILY_ROMANÚFONTFAMILY_SCRIPTÚFONTFAMILY_DECORATIVEÚFONTFAMILY_MODERNrÝ   r.   rr   rƒ   r…   r�   Ústaticmethodr¢   r¯   r¿   rÏ   ru   rw   rÙ   rC   rD   s   @r"   rM   rM   I   s  ø„ ñ
ðØˆR× Ñ ðàˆR× Ñ ðð 	ˆR× Ñ ðð 	ˆR×!Ñ!ð	ð
 	ˆR×!Ñ!ðð 	ˆR×!Ñ!ðð 	ˆR×Ñðð 	ˆR×Ñðð 	ˆR×Ñðð 	�b×)Ñ)ðð 	�×$Ñ$ðð 	�"×&Ñ&ðð 	�"×&Ñ&ðð 	�B×(Ñ(ðð 	�×"Ñ"ðð  	�×#Ñ#ð!ð" 	�R×'Ñ'ð#ð$ 	�×#Ñ#ñ%€Kð* ×%Ñ%Ø×%Ñ%Ø×%Ñ%ñ€Jð ×#Ñ#Ø×$Ñ$Ø×&Ñ&Ø×.Ñ.Ø×&Ñ&Ø×'Ñ'Ø×'Ñ'ñ€Iô	òòò"'ò;ð ñó ðóòó ò8òö"Cr$   rM   c                   ó  ‡ — e Zd ZdZej
                  ej                  ej                  dœZej                  ej                  ej                  dœZ ej                  «       Zˆ fd„Zd„ Zd„ Zdˆ fd„	Zˆ fd„Zˆ fd	„Zˆ fd
„Zd„ Zˆ xZS )rÑ   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         ‰| �  «        t        j                  dt	        | «      |«       | j
                  j                  |d«      \  }}|€Lt        j                  |«      }t        j                  j                  |«      }d |_        ||f| j
                  |<   || _        || _        || _        t        j                  ddt        j                   «      | _        |j%                  | j"                  «       || _        y )Nz%s - __init__(): %s)NNry   r   )r-   r.   re   rf   rg   Ú_cacherØ   r   ÚMemoryDCÚGraphicsContextÚCreater‹   rl   Údcrv   ÚPenÚSOLIDÚ_penÚSetPenÚrenderer)r/   rl   r  rþ   rv   r2   s        €r"   r.   zGraphicsContextWx.__init__4  sÂ   ø€ Ü‰ÑÔä�
‰
Ð(¬$¨t«*°fÔ=à—k‘k—o‘o f¨lÓ;‰ˆˆGØˆ:Ü—‘˜VÓ$ˆBÜ×(Ñ(×/Ñ/°Ó3ˆGØ$(ˆGÔ!Ø"$ g +ˆD�K‰K˜ÑàˆŒØˆŒØˆŒÜ—F‘F˜7 A¤r§x¡xÓ0ˆŒ	Ø�‰�t—y‘yÔ!Ø ˆ�r$   c                 ó„   — t         j                  dk(  r-| j                  j                  | j                  «       d| _        yy)z2Select the current bitmap into this wxDC instance.Úwin32TN)ÚsysÚplatformrþ   ÚSelectObjectrl   Ú
IsSelectedr7   s    r"   r¥   zGraphicsContextWx.selectG  s0   € ä�<‰<˜7Ò"Ø�G‰G× Ñ  §¡Ô-Ø"ˆD�Oð #r$   c                 óŒ   — t         j                  dk(  r1| j                  j                  t        j
                  «       d| _        yy)z-Select a Null bitmap into this wxDC instance.r  FN)r  r  rþ   r  r   Ú
NullBitmapr	  r7   s    r"   r­   zGraphicsContextWx.unselectM  s0   € ä�<‰<˜7Ò"Ø�G‰G× Ñ ¤§¡Ô/Ø#ˆD�Oð #r$   c                 ó^  •— t         j                  dt        | «      «       | j                  «        t        ‰| �  ||«       | j                  j                  | j                  | j                  «       «      «       | j                  j                  | j                  «       | j                  «        y )Nz%s - set_foreground())re   rf   rg   r¥   r-   Úset_foregroundr  Ú	SetColourrª   rÁ   rv   r  r­   )r/   ÚfgÚisRGBAr2   s      €r"   r  z GraphicsContextWx.set_foregroundS  sr   ø€ ô 	�
‰
Ð*¬D°«JÔ7Ø�‰ŒÜ‰Ñ˜r 6Ô*à�	‰	×Ñ˜D×-Ñ-¨d¯l©l«nÓ=Ô>Ø�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óÂ  •— t        |«      }t        j                  dt        | «      «       | j	                  «        d|cxk  rdk  rn nd}t
        ‰| �  |«       t        | j                  j                  | j                  «      «      }|dk(  rd}| j                  j                  |«       | j                  j                  | j                  «       | j                  «        y )Nz%s - set_linewidth()r   r   )Úfloatre   rf   rg   r¥   r-   Úset_linewidthr¶   r  rÙ   Ú
_linewidthr  ÚSetWidthrv   r  r­   )r/   r   Úlwr2   s      €r"   r  zGraphicsContextWx.set_linewidthb  sŸ   ø€ ä�!‹HˆÜ�
‰
Ð)¬4°«:Ô6Ø�‰ŒØˆqŒ9�1�9ØˆAÜ‰Ñ˜aÔ Ü�—‘×/Ñ/°·±Ó@ÓAˆØ�Š7ØˆBØ�	‰	×Ñ˜2ÔØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óX  •— t         j                  dt        | «      «       | j                  «        t        ‰| �  |«       | j                  j                  t        j                  | j                     «       | j                  j                  | j                  «       | j                  «        y )Nz%s - set_capstyle())re   rf   rg   r¥   r-   Úset_capstyler  ÚSetCaprÑ   Ú_capdÚ	_capstylerv   r  r­   )r/   Úcsr2   s     €r"   r  zGraphicsContextWx.set_capstyleq  sm   ø€ ä�
‰
Ð(¬$¨t«*Ô5Ø�‰ŒÜ‰Ñ˜RÔ Ø�	‰	×ÑÔ*×0Ñ0°·±Ñ@ÔAØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c                 óX  •— t         j                  dt        | «      «       | j                  «        t        ‰| �  |«       | j                  j                  t        j                  | j                     «       | j                  j                  | j                  «       | j                  «        y )Nz%s - set_joinstyle())re   rf   rg   r¥   r-   Úset_joinstyler  ÚSetJoinrÑ   Ú_joindÚ
_joinstylerv   r  r­   )r/   Újsr2   s     €r"   r  zGraphicsContextWx.set_joinstylez  sm   ø€ ä�
‰
Ð)¬4°«:Ô6Ø�‰ŒÜ‰Ñ˜bÔ!Ø�	‰	×ÑÔ+×2Ñ2°4·?±?ÑCÔDØ�‰×Ñ˜DŸI™IÔ&Ø�‰�r$   c           	      ó¢   — t         j                  dt        | «      «       t        j                  |D �cg c]  }t        d|z  «      ‘Œ c}Ž S c c}w )z'Convert an RGB(A) color to a wx.Colour.z%s - get_wx_color()éÿ   )re   rf   rg   r   ÚColourr¶   )r/   rÊ   r·   s      r"   rª   zGraphicsContextWx.get_wxcolourƒ  s:   € ä�
‰
Ð(¬$¨t«*Ô5Ü�y‰y°Ö7¨Aœ3˜s Q™w�<Ò7Ð8Ð8ùÒ7s   ³Ar(   )r?   r@   rA   rB   r   ÚCAP_BUTTÚCAP_PROJECTINGÚ	CAP_ROUNDr  Ú
JOIN_BEVELÚ
JOIN_MITERÚ
JOIN_ROUNDr   ÚweakrefÚWeakKeyDictionaryrú   r.   r¥   r­   r  r  r  r  rª   rC   rD   s   @r"   rÑ   rÑ     s€   ø„ ñð —[‘[Ø×,Ñ,Ø—l‘lñ$€Eð —}‘}Ø—}‘}Ø—}‘}ñ&€Fð 'ˆW×&Ñ&Ó(€Fô!ò&#ò$õôôôö9r$   rÑ   c                   óþ  — e Zd ZdZdZeZ ej                  d„ «      Z	i e
j                  d“e
j                  d“e
j                  d“e
j                  d“e
j                  d“e
j                   d	“e
j"                  d
“e
j$                  d“e
j&                  d“e
j(                  d“e
j*                  d“e
j,                  d“e
j.                  d“e
j0                  d“e
j2                  d“e
j4                  d“e
j6                  d“i e
j8                  d“e
j:                  d“e
j<                  d“e
j>                  d“e
j@                  d“e
jB                  d“e
jD                  d“e
jF                  d“e
jH                  d“e
jJ                  d“e
jL                  d“e
jN                  d “e
jP                  d!“e
jR                  d"“e
jT                  d#“e
jV                  d$“e
jX                  d%“¥i e
jZ                  d&“e
j\                  d'“e
j^                  d(“e
j`                  d)“e
jb                  d*“e
jd                  d+“e
jf                  d,“e
jh                  d-“e
jj                  d.“e
jl                  d/“e
jn                  d0“e
jp                  d1“e
jr                  d“e
jt                  d	“e
jv                  d
“e
jx                  d“e
jz                  d“¥e
j|                  d!e
j~                  d"e
j€                  de
j‚                  d e
j„                  de
j†                  di¥ZDdTd3„ZEdTd4„ZFd5„ ZGd6„ ZHd7„ ZIdUd8„ZJdTd9„ZKd:„ ZLdTd;„ZMi eNjž                  ¥d<d=d=d>d?d@d@dAdBœ¥ZOdC„ ZPdD„ ZQeRdE„ «       ZSeRdTd2dFœdG„«       ZTdH„ ZUdTdI„ZVdJ„ ZWdK„ ZXdL„ ZYdVdM„ZZdN„ Z[dO„ Z\dP„ Z]dQ„ Z^dR„ Z_dS„ Z`y2)WÚ_FigureCanvasWxBaseaa  
    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                 ó   — t         S r(   )ÚFigureManagerWx)Úclss    r"   ú<lambda>z_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                 ó„  — t        j                  | |«       t        j                  t	        t
        j                  | j                  j                  j                  «      Ž }t        j                  dk7  r|j                  |«      }t        j                  j                  | |||¬«       d| _        d| _        d| _        t        j                   ddt        j"                  «      | _        t        j                   ddt        j&                  «      | _        | j+                  t        j,                  | j.                  «       | j+                  t        j0                  | j2                  «       | j+                  t        j4                  | j6                  «       | j+                  t        j8                  | j:                  «       | j+                  t        j<                  | j>                  «       | j+                  t        j@                  | j>                  «       | j+                  t        jB                  | j>                  «       | j+                  t        jD                  | j>                  «       | j+                  t        jF                  | j>                  «       | j+                  t        jH                  | j>                  «       | j+                  t        jJ                  | j>                  «       | j+                  t        jL                  | j>                  «       | j+                  t        jN                  | j>                  «       | j+                  t        jP                  | j>                  «       | j+                  t        jR                  | j>                  «       | j+                  t        jT                  | j>                  «       | j+                  t        jV                  | j>                  «       | j+                  t        jX                  | j>                  «       | j+                  t        jZ                  | j>                  «       | j+                  t        j\                  | j^                  «       | j+                  t        j`                  | jb                  «       | j+                  t        jd                  | jf                  «       | j+                  t        jh                  | jj                  «       | j+                  t        jl                  | jn                  «       | j+                  t        jp                  | jn                  «       | js                  t        jt                  «       | jw                  t        jx                  «       t        j                  dk(  rG| j{                  «       }| j}                  | j                  «       d|z  z  «       | j�                  |«       yy)	zÏ
        Initialize a FigureWx instance.

        - Initialize the FigureCanvasBase and wxPanel parents.
        - Set event handlers for resize, paint, and keyboard and mouse
          interaction.
        Ú	__WXMSW__©rå   NFry   r   ÚWHITEÚ	__WXMAC__)Ar   r.   r   ÚSizeÚmaprÃ   ÚceilÚfigurerº   rå   ÚPlatformÚFromDIPÚPanelrl   Ú_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ÚSetBackgroundColourre  ÚGetDPIScaleFactorÚSetInitialSizeÚGetSizeÚ_set_device_pixel_ratio)r/   ÚparentÚidrj  rå   ÚdpiScales         r"   r.   z_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                 ó˜  — t        j                  «       }|j                  | j                  «       t         j                  j                  «       s}t         j                  j                  «       }|r\t         j                  j                  |«       t         j                  j                  «        t         j                  j                  «        yyy)z*Copy bitmap of canvas to system clipboard.N)
r   ÚBitmapDataObjectÚ	SetBitmaprl   ÚTheClipboardÚIsOpenedÚOpenÚSetDataÚFlushÚClose)r/   ÚeventÚbmp_objÚopen_successs       r"   ÚCopy_to_Clipboardz%_FigureCanvasWxBase.Copy_to_Clipboard  sƒ   € ä×%Ñ%Ó'ˆØ×Ñ˜$Ÿ+™+Ô&ä�‰×'Ñ'Ô)ÜŸ?™?×/Ñ/Ó1ˆLÙÜ—‘×'Ñ'¨Ô0Ü—‘×%Ñ%Ô'Ü—‘×%Ñ%Õ'ð ð *r$   c                 ód   — | j                  | j                  «       «      r| j                  «        y y r(   )rž  r›  Údraw©r/   r0   r1   s      r"   Ú_update_device_pixel_ratioz._FigureCanvasWxBase._update_device_pixel_ratio  s*   € ð ×'Ñ'¨×(>Ñ(>Ó(@ÔAØ�I‰I�Kð Br$   c                 ót   — t         j                  dt        | «      «       d| _        | j	                  d¬«       y )Nz%s - draw_idle()F©ÚeraseBackground)re   rf   rg   rn  ÚRefreshr7   s    r"   Ú	draw_idlez_FigureCanvasWxBase.draw_idle  s,   € ä�
‰
Ð%¤t¨D£zÔ2ØˆŒð 	�‰ UˆÕ+r$   c                 ó,   — t        j                  «        y r(   )r   ÚYieldr7   s    r"   Úflush_eventsz _FigureCanvasWxBase.flush_events'  s   € ä
�‰�
r$   c                 ó¾  — t        | d«      rt        d«      ‚t        j                  | t        j                  ¬«      }|dkD  rY|j                  t        |dz  «      d¬«       | j                  t        j                  | j                  |j                  «       ¬«       t        j                  «       | _        | j                  j                  «        |j                  «        y )NÚ_event_loopzEvent loop already running©r   r   iè  T)ÚoneShot)ÚhasattrÚRuntimeErrorr   r)   ÚID_ANYr4   r¶   rt  Ú	EVT_TIMERÚstop_event_loopÚGetIdÚGUIEventLoopr¼  ÚRunr:   )r/   ÚtimeoutÚtimers      r"   Ústart_event_loopz$_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                 óŠ   — t        | d«      r7| j                  j                  «       r| j                  j                  «        | `y y )Nr¼  )r¿  r¼  r=   ÚExit©r/   r«  s     r"   rÃ  z#_FigureCanvasWxBase.stop_event_loop8  s;   € ä�4˜Ô'Ø×Ñ×)Ñ)Ô+Ø× Ñ ×%Ñ%Ô'ØÑ ð (r$   c                 ó�  — | j                  «       }| j                  «       }t        |j                  «       «      }g }g }d}t	        |«      D ]_  \  }\  }}	dj                  |	D �
cg c]  }
d|
z  ‘Œ	 c}
«      }|j                  |	d   «       |› d|› d|› �}||	v r|}|j                  |«       Œa dj                  |«      }|||fS c c}
w )z3Return the wildcard string for the filesave dialog.r   ú;z*.%sz (z)|ú|)Úget_default_filetypeÚget_supported_filetypes_groupedÚsortedÚitemsÚ	enumerateÚjoinÚappend)r/   Údefault_filetypeÚ	filetypesÚsorted_filetypesÚ	wildcardsÚ
extensionsÚfilter_indexÚirG   ÚextsÚextÚext_listÚwildcards                r"   Ú_get_imagesave_wildcardsz,_FigureCanvasWxBase._get_imagesave_wildcards?  sß   € à×4Ñ4Ó6ÐØ×8Ñ8Ó:ˆ	Ü! )§/¡/Ó"3Ó4ÐØˆ	Øˆ
ØˆÜ(Ð)9Ó:ò 	'‰OˆA‰|��dØ—x‘x¸Ö >°# ¨#£Ò >Ó?ˆHØ×Ñ˜d 1™gÔ&Ø˜˜r ( ¨2¨h¨ZÐ8ˆHØ 4Ñ'Ø �Ø×Ñ˜XÕ&ð	'ð —H‘H˜YÓ'ˆ	Ø˜* lÐ2Ð2ùò !?s   Á#C
c                 ó¢  — t         j                  dt        | «      «       | r| j                  «       sy|st	        j
                  | «      }t        j                  dk(  rZt        | j                  j                  j                  «       t        «      r(| j                  j                  «       j                  «       n| j                  }|j                  |dd«       | j                   �nt#        t$        | j                   «      \  }}}}||||f||||f||||f||||fg}|j'                  || j(                  «       |j'                  || j*                  «       yy)zu
        Update the displayed image on the GUI canvas, using the supplied
        wx.PaintDC device context.
        z%s - gui_repaint()Nrc  r   )re   rf   rg   ÚIsShownOnScreenr   ÚClientDCrk  Ú
isinstancerj  ÚcanvasÚget_rendererrM   rl   ÚConvertToImageÚConvertToBitmaprµ   ro  rh  rÜ   ÚDrawLineListrs  rq  )r/   ÚdrawDCÚbmpÚx0Úy0Úx1Úy1Úrects           r"   Úgui_repaintz_FigureCanvasWxBase.gui_repaintQ  s/  € ô
 	�
‰
Ð'¬¨d«Ô4ñ ˜×-Ñ-Ô/ØÙÜ—[‘[ Ó&ˆFô —+‘+ Ò,Ü  §¡×!3Ñ!3×!@Ñ!@Ó!BÄJÔOð �{‰{×)Ñ)Ó+×;Ñ;Ô=ð —K‘Kð 	ð 	×Ñ˜#˜q !Ô$Ø× Ñ Ð,ä ¤¨×(=Ñ(=Ó>‰NˆB��B˜Ø˜˜R Ð$ r¨2¨r°2Ð&6Ø˜˜R Ð$ r¨2¨r°2Ð&6ð8ˆDà×Ñ  d×&@Ñ&@ÔAØ×Ñ  d×&@Ñ&@ÕAð -r$   zWindows bitmapÚJPEGÚPCXzPortable Network GraphicszTagged Image Format FilezX pixmap)rí  ÚjpegÚjpgÚpcxÚpngÚtifÚtiffÚxpmc                 óî   — t         j                  dt        | «      «       t        j                  | «      }| j
                  s| j                  |¬«       n| j                  |¬«       |j                  «        y)z$Called when wxPaintEvt is generated.z%s - _on_paint()©rì  N)	re   rf   rg   r   ÚPaintDCrn  r°  ró  ÚDestroy)r/   r«  rì  s      r"   rx  z_FigureCanvasWxBase._on_paintx  sS   € ä�
‰
Ð%¤t¨D£zÔ2Ü—‘˜DÓ!ˆØ�}Š}Ø�I‰I˜VˆIÕ$à×Ñ FÐÔ+Ø�‰Õr$   c                 óÆ  — | j                  «        t        j                  dt        | «      «       | j	                  «       j                  «       }|r|j                  | «      }|r<r:|j                  s.|j                  t        j                  z  s| j                  «       }n/| j                  «       }|j                  | j                  «       «       t        | dd«      r|| j                  | j                   fk(  ry|\  | _        | _        d| _        | j                  dk  s| j                   dk  ry| j$                  j&                  }t        j(                  dk(  s| j+                  «       }||z  }| j                  |z  }| j                   |z  }| j$                  j-                  ||d¬«       | j/                  d¬«       t1        d	| «      j3                  «        | j5                  «        y)
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   rc  )Úforwardr´  Úresize_event)r²  re   rf   rg   Ú	GetParentÚGetSizerÚGetItemÚ
ProportionÚFlagr   ÚEXPANDÚ
GetMinSizeÚGetClientSizeÚIncToÚgetattrr  Ú_heightrn  rj  rn   rk  r›  Úset_size_inchesr¶  r   Ú_processr·  )	r/   r«  ÚszÚsirå   Údpivalr¦   ÚwinchÚhinchs	            r"   rv  z_FigureCanvasWxBase._on_size‚  sy  € ð 	×'Ñ'Ô)Ü�
‰
Ð$¤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Ø�e‰OˆFØ—‘˜fÑ$ˆØ—‘˜vÑ%ˆØ�‰×#Ñ# E¨5¸%Ð#Ô@ð
 	�‰ UˆÔ+Ü�N DÓ)×2Ñ2Ô4Ø�‰Õr$   c                  ó   — t        j                  «       } t        j                  | j	                  «       ft        j
                  | j                  «       ft        j                  | j                  «       ft        j                  | j                  «       ft        j                  | j                  «       fg}|D ��ch c]
  \  }}|sŒ	|’Œ c}}S c c}}w r(   )r   ÚGetMouseStater   ÚLEFTÚ
LeftIsDownÚRIGHTÚRightIsDownÚMIDDLEÚMiddleIsDownÚBACKÚ
Aux1IsDownÚFORWARDÚ
Aux2IsDown)ÚstateÚ	mod_tableÚbuttonÚflags       r"   Ú_mpl_buttonsz _FigureCanvasWxBase._mpl_buttons°  s¨   € ä× Ñ Ó"ˆô
 ×Ñ˜u×/Ñ/Ó1Ð2Ü×Ñ × 1Ñ 1Ó 3Ð4Ü×Ñ ×!3Ñ!3Ó!5Ð6Ü×Ñ˜u×/Ñ/Ó1Ð2Ü× Ñ  %×"2Ñ"2Ó"4Ð5ð
ˆ	ð ,5×=™<˜6 4º’Ó=Ð=ùÓ=s   Â7
C
ÃC
©Úexcludec                ó¤  — dt         j                  t         j                  fdt         j                  t         j                  fdt         j
                  t         j                  fg}| �2| j                  «       }|D ���cg c]  \  }}}||z  r||k7  r|‘Œ c}}}S |D ���cg c]  \  }}}t        j                  |«      r|‘Œ c}}}S c c}}}w c c}}}w )NÚctrlr6  r5  )	r   ÚMOD_CONTROLÚWXK_CONTROLÚMOD_ALTÚWXK_ALTÚ	MOD_SHIFTÚ	WXK_SHIFTÚGetModifiersÚGetKeyState)r«  r)  r$  Ú	modifiersrG   Úmodrä   s          r"   Ú_mpl_modifiersz"_FigureCanvasWxBase._mpl_modifiersÀ  sÆ   € ð ”R—^‘^¤R§^¡^Ð4Ø”B—J‘J¤§
¡
Ð+Ø”b—l‘l¤B§L¡LÐ1ð
ˆ	ð
 ÐØ×*Ñ*Ó,ˆIØ/8÷ ;ð ;™^˜T 3¨Ø  3’¨7°cª>ò ô ;ð ;ð 09÷ ,ð ,™^˜T 3¨Ü—~‘~ cÔ*ò ô ,ð ,ùô;ùô,s   Á;CÂ"Cc                 óT  — |j                   }|| j                  v r| j                  |   }n2|dk  r,t        |«      }|j                  «       s|j	                  «       }ny | j                  ||¬«      }d|v r!|j                  «       r|j                  d«       dj                  g |¢|‘«      S )Né   r(  r5  r]  )	ÚKeyCodeÚkeyvaldÚchrÚ	ShiftDownÚlowerr6  ÚisupperÚremoverÕ  )r/   r«  Úkeyvalrä   Úmodss        r"   Ú_get_keyz_FigureCanvasWxBase._get_keyÏ  s–   € Ø—‘ˆØ�T—\‘\Ñ!Ø—,‘,˜vÑ&‰CØ�cŠ\Ü�f“+ˆCð —?‘?Ô$Ø—i‘i“k‘àØ×"Ñ" 5°&Ð"Ó9ˆØ�d‰?˜sŸ{™{œ}Ø�K‰K˜Ô Ø�x‰x˜˜$˜ ˜Ó%Ð%r$   c                 ó˜  — |€>t        j                  «       }| j                  |j                  |j                  «      \  }}n|j                  |j                  }}t         j
                  dk(  s;| j                  «       }||z  | j                  j                  j                  ||z  z
  fS || j                  j                  j                  |z
  fS )zv
        Convert a wx position, defaulting to the current cursor position, to
        Matplotlib coordinates.
        rc  )
r   r  ÚScreenToClientÚXÚYrk  r›  rj  rº   rk   )r/   Úposr·   r¸   r¦   s        r"   Ú_mpl_coordsz_FigureCanvasWxBase._mpl_coordsà  s¨   € ð
 ˆ;Ü×"Ñ"Ó$ˆCØ×&Ñ& s§u¡u¨c¯e©eÓ4‰DˆA‰qà—5‘5˜#Ÿ%™%ˆqˆAä�{‰{˜kÒ)Ø×*Ñ*Ó,ˆEØ�U‘7˜DŸK™K×,Ñ,×3Ñ3°a¸±gÑ=Ð=Ð=à�d—k‘k×&Ñ&×-Ñ-°Ñ1Ð1Ð1r$   c                 ó¢   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        | r|j	                  «        yy)zCapture key press.Úkey_press_eventÚguiEventN©r   rB  rH  r  ÚSkiprÌ  s     r"   rz  z _FigureCanvasWxBase._on_key_downñ  sL   € äÐ" DØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤ÙØ�J‰J�Lð r$   c                 ó¢   — t        d| | j                  |«      g| j                  «       ¢­d|iŽj                  «        | r|j	                  «        yy)zRelease key.Úkey_release_eventrK  NrL  rÌ  s     r"   r|  z_FigureCanvasWxBase._on_key_upù  sL   € äÐ$ dØ—‘˜uÓ%ð	!Ø(,×(8Ñ(8Ó(:ò	!àñ	!ç!)¡¤ÙØ�J‰J�Lð r$   c                 ó>  — t        j                  t        j                  t        j
                  t         j                  t        j                  t         j                  t        j                  t         j                  t        j                  t         j                  t        j                  t         j                  t        j                  t         j                  t        j                   t         j"                  i|¬«      «      }| j%                  |«       | j'                  «        y )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¶  )r/   rQ  s     r"   Ú
set_cursorz_FigureCanvasWxBase.set_cursor  s£   € ä—‘œ4×-Ñ-Ü�L‰Lœ"Ÿ.™.Ü�L‰Lœ"Ÿ.™.Ü�O‰OœRŸ_™_Ü×!Ñ!¤2§?¡?Ü�L‰Lœ"Ÿ.™.Ü×%Ñ%¤r×'7Ñ'7Ü×#Ñ#¤R×%5Ñ%5ð/
ð ôó ˆð 	�‰�vÔØ�‰�r$   c                 ój   — | j                  «       r| j                  «        |r| j                  «        yy)zControl wx mouse capture.N)Ú
HasCaptureÚReleaseMouseÚCaptureMouse)r/   Úcaptures     r"   Ú_set_capturez _FigureCanvasWxBase._set_capture  s,   € à�?‰?ÔØ×ÑÔÙØ×ÑÕð r$   c                 ó&   — | j                  d«       y)zCapture changed or lostFN)rh  rÌ  s     r"   r–  z$_FigureCanvasWxBase._on_capture_lost  s   € à×Ñ˜%Õ r$   c           
      ól  — |j                  «        | j                  |j                  «       xs |j                  «       «       | j	                  |«      \  }}t
        j                  t        j                  t
        j                  t        j                  t
        j                  t        j                  t
        j                  t        j                  t
        j                  t        j                   i}|j#                  «       }|j%                  ||«      }| j'                  |«      }|j                  «       r!t)        d| |||||¬«      j+                  «        y|j                  «       r"t)        d| |||d||¬«      j+                  «        y|j-                  «       r!t)        d| |||||¬«      j+                  «        yy)úStart measuring on an axis.Úbutton_press_event©r4  rK  T)Údblclickr4  rK  Úbutton_release_eventN)rM  rh  Ú
ButtonDownÚButtonDClickrH  r   ÚMOUSE_BTN_LEFTr   r  ÚMOUSE_BTN_MIDDLEr  ÚMOUSE_BTN_RIGHTr  ÚMOUSE_BTN_AUX1r  ÚMOUSE_BTN_AUX2r!  Ú	GetButtonrØ   r6  r   r  ÚButtonUp)r/   r«  r·   r¸   Ú
button_mapr%  r4  s          r"   r~  z$_FigureCanvasWxBase._on_mouse_button  sT  € à�
‰
ŒØ×Ñ˜%×*Ñ*Ó,ÒD°×0BÑ0BÓ0DÔEØ×Ñ Ó&‰ˆˆ1ä×Ñœ{×/Ñ/Ü×Ñ¤×!3Ñ!3Ü×Ñ¤× 1Ñ 1Ü×Ñœ{×/Ñ/Ü×Ñœ{×2Ñ2ð
ˆ
ð —‘Ó"ˆØ—‘ ¨Ó/ˆØ×'Ñ'¨Ó.ˆ	Ø×ÑÔÜÐ+¨T°1°a¸Ø!*°Uô<ß<D¹H½JØ×ÑÔ!ÜÐ+¨T°1°a¸È$Ø!*°Uô<ß<D¹H½JØ�^‰^ÔÜÐ-¨t°Q¸¸6Ø!*°Uô<ß<D¹H½Jð r$   c           
      óz  — | j                  |«      \  }}|j                  |j                  z  |j                  z  }|j	                  «        t
        j                  dk(  r/t        | d«      sd| _        n| j                  rd| _        yd| _        t        d| |||| j                  |«      |¬«      j                  «        y)z3Translate mouse wheel events into matplotlib eventsrf  Ú_skipwheeleventTFNÚscroll_event)Ústepr4  rK  )rH  ÚLinesPerActionÚWheelRotationÚ
WheelDeltarM  r   rk  r¿  r{  r   r6  r  )r/   r«  r·   r¸   r}  s        r"   rŽ  z#_FigureCanvasWxBase._on_mouse_wheel3  s¥   € à×Ñ Ó&‰ˆˆ1à×#Ñ# e×&9Ñ&9Ñ9¸E×<LÑ<LÑLˆà�
‰
Œä�;‰;˜+Ò%Ü˜4Ð!2Ô3Ø'+�Õ$Ø×%Ò%Ø',�Ô$Øà'+�Ô$Ü�> 4¨¨A°DØ!×0Ñ0°Ó7Ø!ô	#ç#+¡8¥:r$   c                 ó¼   — |j                  «        t        d| g| j                  |«      ¢­| j                  «       | j	                  |«      |dœŽj                  «        y)rk  Úmotion_notify_event)Úbuttonsr4  rK  N)rM  r   rH  r'  r6  r  rÌ  s     r"   r�  z_FigureCanvasWxBase._on_motionG  sV   € à�
‰
ŒÜÐ(¨$ð 	#Ø×$Ñ$ UÓ+ñ	#à×,Ñ,Ó.Ø!×0Ñ0°Ó7Ø!ò		#÷ $,¡8¥:r$   c                 óœ   — |j                  «        t        d| g| j                  |«      ¢­| j                  «       |dœŽj	                  «        y)zMouse has entered the window.Úfigure_enter_eventrm  N©rM  r   rH  r6  r  rÌ  s     r"   r’  z_FigureCanvasWxBase._on_enterP  óH   € à�
‰
ŒÜÐ*¨Dð 	&Ø×'Ñ'¨Ó.ñ	&à $× 3Ñ 3Ó 5Ø$ò	&÷ '/¡h¥jr$   c                 óœ   — |j                  «        t        d| g| j                  |«      ¢­| j                  «       |dœŽj	                  «        y)zMouse has left the window.Úfigure_leave_eventrm  Nr†  rÌ  s     r"   r”  z_FigureCanvasWxBase._on_leaveX  r‡  r$   r(   )r   ©T)ar?   r@   rA   rB   Úrequired_interactive_frameworkr&   Ú
_timer_clsr   ÚclasspropertyÚmanager_classr   r-  r1  r/  Ú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_DELETEr:  r.   r®  r²  r·  rº  rÉ  rÃ  râ  ró  r   rØ  rx  rv  ró   r'  r6  rB  rH  rz  r|  rb  rh  r–  r~  rŽ  r�  r’  r”  rq   r$   r"   r/  r/  ‰  sº  „ ñð &*Ð"Ø€JØ&�D×&Ñ&Ñ'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$   r/  c                   ó~  — e Zd Zdd„Zd„ Z ej                  eej                  «      Z	 ej                  eej                  «      xZZ ej                  eej                  «      Z ej                  eej                  «      Z ej                  eej"                  «      xZZ ej                  eej(                  «      Zy)ÚFigureCanvasWxNc                 ó  — t         j                  dt        | «      «       t        | j                  | j
                  j                  «      | _        | j
                  j                  | j                  «       d| _	        | j                  |¬«       y)zŒ
        Render the figure using RendererWx instance renderer, or using a
        previously defined renderer if none is specified.
        z%s - draw()Trþ  N)re   rf   rg   rM   rl   rj  rn   r  r°  rn  ró  )r/   rì  s     r"   r°  zFigureCanvasWx.drawd  s^   € ô
 	�
‰
�=¤$ t£*Ô-Ü" 4§;¡;°·±·±Ó@ˆŒØ�‰×Ñ˜Ÿ™Ô'ØˆŒØ×Ñ ÐÕ'r$   c                 óR  — t        j                  t        j                  | j                  j
                  j                  «      t        j                  | j                  j
                  j                  «      «      }| j                  j                  t        || j                  j                  «      «       t        j                  |«      r|j                  «       n|}|j                  ||«      st        d|› �«      ‚| j                   r| j                  «        | r| j#                  «        y y )NzCould not save figure to )r   r²   rÃ   ri  rj  rº   ri   rk   r°  rM   rn   r   Úis_writable_file_likeré  ÚSaveFilerÀ  rn  r¶  )r/   ÚfiletypeÚfilenamerl   Ú	saved_objs        r"   Ú_print_imagezFigureCanvasWx._print_imageo  sÖ   € Ü—‘œ4Ÿ9™9 T§[¡[×%5Ñ%5×%;Ñ%;Ó<ÜŸ9™9 T§[¡[×%5Ñ%5×%<Ñ%<Ó=ó?ˆà�‰×Ñœ F¨D¯K©K¯O©OÓ<Ô=ä×3Ñ3°HÔ=ð ×*Ñ*Ô,à ð 	ð ×!Ñ! (¨HÔ5ÜÐ!:¸8¸*ÐEÓFÐFð
 �=Š=Ø�I‰IŒKñ Ø�L‰L�Nð r$   r(   )r?   r@   rA   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_xpmrq   r$   r"   rÆ  rÆ  a  sÊ   „ ó	(òð( (�	×'Ñ'Ø�b×(Ñ(ó*€Ià4˜Y×4Ñ4Ø�b×)Ñ)ó+ð +€J�à'�	×'Ñ'Ø�b×(Ñ(ó*€Ià'�	×'Ñ'Ø�b×(Ñ(ó*€Ià4˜Y×4Ñ4Ø�b×(Ñ(ó*ð *€J�à'�	×'Ñ'Ø�b×(Ñ(ó*�Ir$   rÆ  c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )ÚFigureFrameWxc                ó¦  •— t         j                  dk(  rt         j                  }nt        j                  dd«      }t        ‰	| �  d d|¬«       t        j                  dt        | «      «       t        | «        || d|«      | _
        t        | j                  || «      }| j                  j                  j                  }|�| j                  |«       t        t         j"                  |j$                  j&                  «      \  }}| j                  j)                  | j+                  t        j,                  ||«      «      «       | j                  j/                  | j+                  t        j,                  dd«      «      «       | j                  j1                  «        | j3                  «        | j5                  t         j6                  | j8                  «       y )Nrc  é   éÿÿÿÿ)rŸ  r   rG  rd   rˆ   )r   rk  ÚDefaultPositionÚPointr-   r.   re   rf   rg   Ú_set_frame_iconrç  r1  ÚmanagerÚtoolbarÚ
SetToolBarrh  rÃ   ri  rº   rå   rœ  rl  rg  Ú
SetMinSizeÚSetFocusÚFitrt  Ú	EVT_CLOSEÚ	_on_close)
r/   ÚnumÚfigÚcanvas_classrG  rç  rè  r   r€   r2   s
            €r"   r.   zFigureFrameWx.__init__’  s;  ø€ ô �;‰;˜+Ò%Ü×$Ñ$‰Cä—(‘(˜2˜rÓ"ˆCÜ‰Ñ ¨°ÐÔ5ä�
‰
Ð$¤d¨4£jÔ1Ü˜Ôá" 4¨¨SÓ1ˆŒä! $§+¡+¨s°DÓ9ˆà—+‘+×%Ñ%×-Ñ-ˆØÐØ�O‰O˜GÔ$ô ”4—9‘9˜cŸh™hŸm™mÓ,‰ˆˆ1Ø�‰×"Ñ" 4§<¡<´·±¸¸1³Ó#>Ô?Ø�‰×Ñ˜tŸ|™|¬B¯G©G°A°q«MÓ:Ô;Ø�‰×ÑÔà�‰Œ
à�	‰	”"—,‘, §¡Õ/r$   c                 óø  — t         j                  dt        | «      «       t        d| j                  «      j                  «        | j                  j                  «        d | j                  j                  _        t        j                  | j                  j                  «       	 | j                  j                  | j                  j                  j                  «       |j                  «        y # t        $ r Y Œw xY w)Nz%s - on_close()Úclose_event)re   rf   rg   r   rç  r  rÃ  rç  Úframer   ÚdestroyÚmpl_disconnectrè  Ú_id_dragÚAttributeErrorrM  rÌ  s     r"   rî  zFigureFrameWx._on_close±  s¬   € Ü�
‰
Ð$¤d¨4£jÔ1Ü�= $§+¡+Ó.×7Ñ7Ô9Ø�‰×#Ñ#Ô%ð %)ˆ�‰×ÑÔ!ä�‰�D—K‘K×'Ñ'Ô(ð	Ø�K‰K×&Ñ& t§{¡{×':Ñ':×'CÑ'CÔDð 	�
‰
�øô ò 	Ùð	ús   Â#9C- Ã-	C9Ã8C9)r?   r@   rA   r.   rî  rC   rD   s   @r"   rà  rà  ‘  s   ø„ ô0ö>r$   rà  c                   óf   ‡ — e 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ˆ xZS )r1  a’  
    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                 ó€   •— t         j                  dt        | «      «       |x| _        | _        t
        ‰| �  ||«       y )Nrd   )re   rf   rg   rô  Úwindowr-   r.   )r/   rç  rï  rô  r2   s       €r"   r.   zFigureManagerWx.__init__Ñ  s3   ø€ Ü�
‰
Ð$¤d¨4£jÔ1Ø#(Ð(ˆŒ
�T”[Ü‰Ñ˜ Õ%r$   c                 ó  — t        j                  «       xs
 t        «       }t        |||¬«      }|j                  j
                  }t        j                  «       r4|j                  j                  «        |j                  j                  «        |S )N)rñ  )r   ÚGetAppr#   rà  rç  rç  ÚmplÚis_interactiverô  ÚShowr·  )r2  rñ  rj  rï  r!   rô  rç  s          r"   Úcreate_with_canvasz"FigureManagerWx.create_with_canvasÖ  sd   € ô —	‘	“Ò.œ}›ˆÜ˜c 6¸ÔEˆØ—-‘-×'Ñ'ˆÜ×ÑÔØ�M‰M×ÑÔ Ø�M‰M×#Ñ#Ô%Øˆr$   c                 ó�   — t         j                  j                  «       s(t        j                  «       }|�|j	                  «        y y y r(   )r   r   ÚIsMainLoopRunningrý  ÚMainLoop)r2  r!   s     r"   Ústart_main_loopzFigureManagerWx.start_main_loopá  s7   € ä�v‰v×'Ñ'Ô)Ü—I‘I“KˆEØÐ Ø—‘Õ ð !ð *r$   c                 óÈ   — | j                   j                  «        | j                  j                  «        t        j
                  d   r| j                   j                  «        y y )Nzfigure.raise_window)rô  r   rç  r°  rþ  ÚrcParamsÚRaiser7   s    r"   ÚshowzFigureManagerWx.showè  sB   € à�
‰
�‰ÔØ�‰×ÑÔÜ�<‰<Ð-Ò.Ø�J‰J×ÑÕð /r$   c                 óž   — t         j                  dt        | «      «       | j                  }|r t	        j
                  |j                  «       y y )Nz%s - destroy())re   rf   rg   rô  r   Ú	CallAfterrª  )r/   r0   rô  s      r"   rõ  zFigureManagerWx.destroyï  s8   € ä�
‰
Ð#¤T¨$£ZÔ0Ø—
‘
ˆÙô �L‰L˜Ÿ™Õ%ð r$   c                 ól   — | j                   j                  | j                   j                  «        «       y r(   )rô  ÚShowFullScreenÚIsFullScreenr7   s    r"   Úfull_screen_togglez"FigureManagerWx.full_screen_toggleø  s$   € à�
‰
×!Ñ! d§j¡j×&=Ñ&=Ó&?Ð"?Õ@r$   c                 ó6   — | j                   j                  «       S r(   )rû  ÚGetTitler7   s    r"   Úget_window_titlez FigureManagerWx.get_window_titleü  s   € à�{‰{×#Ñ#Ó%Ð%r$   c                 ó:   — | j                   j                  |«       y r(   )rû  ÚSetTitle)r/   Útitles     r"   Úset_window_titlez FigureManagerWx.set_window_title   s   € à�‰×Ñ˜UÕ#r$   c           
      óà   — | j                   j                  | j                   j                  t        j                  t        j                  |«      t        j                  |«      «      «      «       y r(   )rû  ÚSetSizeÚClientToWindowSizer   rg  rÃ   ri  )r/   ri   rk   s      r"   ÚresizezFigureManagerWx.resize  sI   € ð 	�‰×Ñ˜DŸK™K×:Ñ:¼2¿7¹7Ü�I‰I�eÓœdŸi™i¨Ó/ó<1ó 2õ 	3r$   )r?   r@   rA   rB   r.   Úclassmethodr  r  r	  rõ  r  r  r  r  rC   rD   s   @r"   r1  r1  Â  sT   ø„ ñô&ð
 ñó ðð ñ!ó ð!òò&òAò&ò$ö3r$   r1  c                 óf   — t        j                  t        t        j                  d| «      «      «      S )z\
    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_bitmapr     s%   € ô
 �9‰9”Sœ×-Ñ-¨h¸ÓAÓBÓCÐCr$   c                 óÞ   — t        j                  «       }dD ]C  }t        j                  t        |«      «      }|j	                  «       s y |j                  |«       ŒE | j                  |«       y )N)zmatplotlib.pngzmatplotlib_large.png)r   Ú
IconBundleÚIconr   ÚIsOkÚAddIconÚSetIcons)rô  ÚbundleÚimageÚicons       r"   ræ  ræ    sU   € Ü�]‰]‹_€FØ;ò ˆÜ�w‰w”| EÓ*Ó+ˆØ�y‰yŒ{ÙØ�‰�tÕð	ð
 
‡N�N�6Õr$   c                   ó~   ‡ — e Zd Zdej                  dœd„Zed„ «       Zd„ Zˆ fd„Z	ˆ fd„Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zˆ xZS )ÚNavigationToolbar2Wx©rÕ   c          
      óº  — t         j                  j                  | |j                  «       d|¬«       t         j                  dk(  r0| j                  | j                  «       | j                  «       z  «       i | _        | j                  D ]Ã  \  }}}}|€| j                  «        Œ| j                  d| j                  |› d�«      t         j                  |||dv rt         j                  nt         j                  ¬«      j                   | j                  |<   | j#                  t         j$                  t'        | |«      | j                  |   ¬«       ŒÅ || _        | j(                  rU| j+                  «        t        j,                  | t         j.                  ¬«      | _        | j3                  | j0                  «       | j5                  «        t7        j                  | |«       y )Nrã  r,  rf  ú.svg)ÚPanÚZoom)rl   ÚbmpDisabledÚlabelÚ	shortHelpÚkindr½  )r   ÚToolBarr.   r  rk  ÚSetToolBitmapSizeÚGetToolBitmapSizer›  Úwx_idsÚ	toolitemsÚAddSeparatorÚAddToolÚ_iconr  Ú
ITEM_CHECKÚITEM_NORMALÚIdrt  ÚEVT_TOOLr  Ú_coordinatesÚAddStretchableSpaceÚ
StaticTextÚALIGN_RIGHTÚ_label_textÚ
AddControlÚRealizer   )r/   rç  ÚcoordinatesrÕ   ÚtextÚtooltip_textÚ
image_fileÚcallbacks           r"   r.   zNavigationToolbar2Wx.__init__  sz  € Ü
�
‰
×Ñ˜D &×"2Ñ"2Ó"4°bÀÐÔFÜ�;‰;˜+Ò%Ø×"Ñ" 4×#9Ñ#9Ó#;¸D×<RÑ<RÓ<TÑ#TÔUàˆŒØ8<¿¹ò 	,Ñ4ˆD�, 
¨HØˆ|Ø×!Ñ!Ô#Øà—‘ØØŸ:™:¨¨°DÐ&9Ó:Ü "§¡Ø¨,Ø+/°?Ñ+Bœ"Ÿ-š-Ü!Ÿ~™~ð ó 0÷ ‘ð �K‰K˜Ñð �I‰I”b—k‘k¤7¨4°Ó#:ØŸ™ TÑ*ð õ ,ð	,ð  (ˆÔØ×ÒØ×$Ñ$Ô&Ü!Ÿ}™}¨T¼¿¹ÔHˆDÔØ�O‰O˜D×,Ñ,Ô-à�‰Œä×#Ñ# D¨&Õ1r$   c                 óV  — 	 t         j                  j                  «       j                  «       }t        j                  d| «      }|j                  dk(  ru|j                  «       }|r|j                  dd	«      }t        j                   «       j#                  t         j$                  «      }t         j&                  j)                  ||«      S t*        j,                  j/                  |«      }	t1        j2                  |	j5                  d
«      «      }
|rt         j                  j                  t         j                  «      }|
ddd…f   dk(  j7                  d¬«      }|j9                  «       |j;                  «       |j=                  «       f|
|dd…f<   t         j>                  jA                  |
jB                  d   |
jB                  d   |
jE                  «       «      S # t        $ rÊ t         j                  j                  t         j                  «      }t         j                  j                  t         j                  «      }d|j                  z  d|j                  z  z   d|j                  z  z   dz  }d|j                  z  d|j                  z  z   d|j                  z  z   dz  }||z
  dkD  }Y �Œyw xY w)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  r.  s   fill:black;s   fill:white;ÚRGBA.Nr‡   r   rã  )Úaxisr   )#r   ÚSystemSettingsÚGetAppearanceÚIsDarkrø  Ú	GetColourÚSYS_COLOUR_WINDOWÚSYS_COLOUR_WINDOWTEXTÚredÚgreenÚbluer   r  ÚsuffixÚ
read_bytesÚreplaceÚArtProviderÚGetDIPSizeHintÚART_TOOLBARÚBitmapBundleÚFromSVGÚPILÚImageÚopenÚnpÚarrayÚconvertÚallÚRedÚGreenÚBluer²   r³   r±   r´   )rG   ÚdarkÚbgr  Úbg_lumÚfg_lumr�   ÚsvgÚtoolbarIconSizeÚpilimgr(  Ú
black_masks               r"   r<  z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��j " 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Ø˜F‘? RÑ'‹Dð	(ús   ‚,G ÇCJ(Ê'J(c                 ó  — d| j                   v r6| j                  | j                   d   | j                  j                  dk(  «       d| j                   v r7| j                  | j                   d   | j                  j                  dk(  «       y y )Nr/  ÚPANr0  ÚZOOM)r8  Ú
ToggleToolÚmoderG   r7   s    r"   Ú_update_buttons_checkedz,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        ‰| �  |Ž  | j                  «        y r(   )r-   Úzoomrx  ©r/   r0   r2   s     €r"   rz  zNavigationToolbar2Wx.zoomh  s   ø€ Ü‰‰�dÑØ×$Ñ$Õ&r$   c                 ó>   •— t        ‰| �  |Ž  | j                  «        y r(   )r-   Úpanrx  r{  s     €r"   r}  zNavigationToolbar2Wx.panl  s   ø€ Ü‰‰�TÑØ×$Ñ$Õ&r$   c           	      ó‚  — | j                   j                  «       \  }}}| j                   j                  «       }t        j                  | j                   j                  «       dt        j                  d   ||t        j                  t        j                  z  «      }|j                  |«       |j                  «       t        j                  k(  �rt        j                  |j                  «       «      }t         j#                  dt%        | «      |«       ||j'                  «          }|j(                  dd  }	|	| j                   j+                  «       v r||	k7  rt         j-                  d|	||	«       |	}t        j                  d   r&t/        |j0                  «      t        j                  d<   	 | j                   j2                  j5                  ||¬«       |S y # t6        $ rc}
t        j8                  | j                   j                  «       t/        |
«      d¬«      }|j                  «        |j;                  «        Y d }
~
y d }
~
ww xY w)	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  rþ  r  ÚFD_SAVEÚFD_OVERWRITE_PROMPTÚSetFilterIndexÚ	ShowModalÚID_OKÚpathlibr   ÚGetPathre   rf   rg   ÚGetFilterIndexrY  Úget_supported_filetypesÚwarningr  rŸ  rj  ÚsavefigÚ	ExceptionÚMessageDialogr   )r/   r0   rØ  rÞ  rÜ  Údefault_fileÚdialogr�   Úfmtrß  Úes              r"   Úsave_figurez NavigationToolbar2Wx.save_figurep  sÄ  € à(,¯©×(LÑ(LÓ(NÑ%ˆ	�4˜Ø—{‘{×7Ñ7Ó9ˆÜ—‘Ø�K‰K×!Ñ!Ó# ^Ü�L‰LÐ,Ñ-¨|¸YÜ�J‰Jœ×/Ñ/Ñ/ó1ˆð 	×Ñ˜lÔ+Ø×ÑÓ¤§¡Ó)Ü—<‘< §¡Ó 0Ó1ˆDÜ�J‰JÐ0´$°t³*¸dÔCØ�v×,Ñ,Ó.Ñ/ˆCØ—+‘+˜a˜b�/ˆCØ�d—k‘k×9Ñ9Ó;Ñ;ÀÀsÂ
ô —‘ð <à  # sô,ð �ä�|‰|Ð/Ò0Ü47¸¿¹Ó4D”—‘Ð0Ñ1ð!Ø—‘×"Ñ"×*Ñ*¨4¸Ð*Ô<Ø�ð# *øô$ ò !Ü×)Ñ)ØŸ;™;×0Ñ0Ó2¼CÀ»FØ.ô0�ð × Ñ Ô"Ø—‘× Ñ ûð!ús   Æ((G Ç	H>ÇAH9È9H>c                 ó8  — | j                   j                  j                  j                  }t        j
                  dk(  rdn| j                   j                  «       }||z  ||z
  |z  ||z  ||z
  |z  f| j                   _        | j                   j                  «        y )Nrc  r   )	rç  rj  rº   rk   r   rk  r›  ro  r¶  )r/   r«  rî  rï  rð  rñ  rk   Úsfs           r"   Údraw_rubberbandz$NavigationToolbar2Wx.draw_rubberband’  s   € Ø—‘×#Ñ#×(Ñ(×/Ñ/ˆÜ—+‘+ Ò,‰Q°$·+±+×2OÑ2OÓ2QˆØ(*¨2©°¸±¸RÑ/?Ø(*¨2©°¸±¸RÑ/?ð(Aˆ�‰Ô$à�‰×ÑÕr$   c                 óZ   — d | j                   _        | j                   j                  «        y r(   )rç  ro  r¶  r7   s    r"   Úremove_rubberbandz&NavigationToolbar2Wx.remove_rubberband™  s   € Ø'+ˆ�‰Ô$Ø�‰×ÑÕr$   c                 óT   — | j                   r| j                  j                  |«       y y r(   )rA  rE  ÚSetLabel©r/   r{   s     r"   Úset_messagez NavigationToolbar2Wx.set_message�  s$   € Ø×ÒØ×Ñ×%Ñ% aÕ(ð r$   c                 óJ  — | j                   j                  dkD  }| j                   j                  t        | j                   «      dz
  k  }d| j                  v r| j	                  | j                  d   |«       d| j                  v r | j	                  | j                  d   |«       y y )Nr   r   ÚBackÚForward)Ú
_nav_stackÚ_posÚlenr8  Ú
EnableTool)r/   Úcan_backwardÚcan_forwards      r"   Úset_history_buttonsz(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@   rA   r   Ú	TB_BOTTOMr.   ró   r<  rx  rz  r}  r•  r˜  rš  rž  r¨  rC   rD   s   @r"   r+  r+    sV   ø„ ð2¸"¿,¹,ô 2ð@ ñ!Aó ð!AòFKô'ô'ò !òDòò)öAr$   r+  c                   óN   — e Zd ZdZdej
                  fd„Zd„ Zd„ Zd„ Z	d„ Z
d„ Zy)	Ú	ToolbarWxr.  Nc                 ó~  — |€|j                   j                  «       }t        j                  | |«       t        j
                  j                  | |d|¬«       | j                  «       | _        t	        j                  | t        j                  ¬«      | _
        | j                  | j                  «       i | _        i | _        y )Nrã  r,  )rç  r  r   r.   r   r5  rB  Ú_spacerC  rD  rE  rF  Ú
_toolitemsÚ_groups)r/   ÚtoolmanagerrŸ  rÕ   s       r"   r.   zToolbarWx.__init__¯  s�   € Øˆ>Ø ×'Ñ'×1Ñ1Ó3ˆFÜ×"Ñ" 4¨Ô5Ü
�
‰
×Ñ˜D &¨"°EÐÔ:Ø×.Ñ.Ó0ˆŒÜŸ=™=¨´R·^±^ÔDˆÔØ�‰˜×(Ñ(Ô)ØˆŒØˆ�r$   c                 óL   ‡ ‡— ˆ ˆfd„t        ‰ j                  «      D «       \  }|S )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   óJ   •K  — | ]  }‰j                  |«      ‰k(  r|–— Œ y ­wr(   )ÚGetToolByPos)Ú.0rG  r/   Útools     €€r"   ú	<genexpr>z*ToolbarWx._get_tool_pos.<locals>.<genexpr>Á  s+   øè ø€ ò 3˜Ø×$Ñ$ SÓ)¨TÒ1ô ñ 3ùs   ƒ #)ÚrangeÚ
ToolsCount)r/   rµ  rG  s   `` r"   Ú_get_tool_poszToolbarWx._get_tool_posº  s!   ù€ ô3œu T§_¡_Ó5ô 3‰ˆàˆ
r$   c           
      óÀ  ‡ ‡— |‰ j                   vr7‰ j                  ‰ j                  ‰ j                  «      «      ‰ j                   |<   ‰ j                   |   }t	        ‰ j
                  t        ‰ j                  «      «      D �cg c]$  }|j                  «       r|j                  «       s|‘Œ& }	}|dk\  r4||	d   k(  rdn(‰ j                  |	|	j                  |«      dz
     «      dz   }
n‰ j                  |«      dz   }
|
|z   }|rat        j                  |«      }|st        j                  nt        j                  }‰ j!                  |d‰|t        j"                  ||xs d«      }nb‰ j%                  ‰«      d   dz   df}|rt        j&                  ‰ d‰|¬«      }nt        j(                  ‰ d‰|¬«      }‰ j+                  ||‰¬«      }‰ j-                  «        ˆˆ fd„}|r"‰ j/                  t        j0                  ||«       n j/                  t        j2                  |«       ‰ j4                  j7                  ‰g «       ‰ j4                  ‰   j9                  ||f«       y c c}w )	Nr   r   rã  Ú é
   rd  ©r2  c                 ó(   •— ‰j                  ‰«       y r(   )Útrigger_tool)r«  rG   r/   s    €€r"   Úhandlerz'ToolbarWx.add_toolitem.<locals>.handlerç  s   ø€ Ø×Ñ˜dÕ#r$   )r¯  ÚInsertSeparatorr¹  r­  rh  r³  r·  r¸  ÚIsSeparatorÚIsStretchableSpaceÚindexr+  r<  r   r>  r=  Ú
InsertToolr  ÚGetTextExtentÚToggleButtonÚButtonÚInsertControlrG  rt  r@  r}  r®  Ú
setdefaultrÖ  )r/   rG   ÚgroupÚpositionrK  ÚdescriptionÚtoggleÚsepÚtÚsepsÚstartÚidxrí  r4  rµ  rå   r4  rÀ  s   ``                r"   Úadd_toolitemzToolbarWx.add_toolitemÅ  s  ù€ ð ˜Ÿ™Ñ$Ø"&×"6Ñ"6Ø×"Ñ" 4§;¡;Ó/ó#1ˆD�L‰L˜Ñà�l‰l˜5Ñ!ˆä˜t×0Ñ0´%¸¿¹Ó2HÓIö C�aØ—=‘=”?¨1×+?Ñ+?Ô+Aò ð Cˆð Cð �qŠ=ð   a¡š.‘QØ×,Ñ,¨T°$·*±*¸S³/ÀAÑ2EÑ-FÓGÈ!ÑKñ ð ×&Ñ& sÓ+¨aÑ/ˆEØ�hÑˆÙÜ&×,Ñ,¨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   Â)Ic                 ó  — || j                   vry | j                   |   D ]Q  \  }}|j                  «       s| j                  |j                  |«       Œ3|j	                  «       j                  |«       ŒS | j                  «        y r(   )r®  Ú	IsControlrv  r?  Ú
GetControlÚSetValuer¶  )r/   rG   Útoggledrµ  rÀ  s        r"   Útoggle_toolitemzToolbarWx.toggle_toolitemò  si   € Ø�t—‘Ñ&ØØ!Ÿ_™_¨TÑ2ò 	4‰MˆD�'Ø—>‘>Ô#Ø—‘ §¡¨Õ1à—‘Ó!×*Ñ*¨7Õ3ð		4ð
 	�‰�r$   c                 ó‚   — | j                   j                  |g «      D ]   \  }}| j                  |j                  «       Œ" y r(   )r®  ÚpopÚ
DeleteToolr?  )r/   rG   rµ  rÀ  s       r"   Úremove_toolitemzToolbarWx.remove_toolitemü  s6   € Ø!Ÿ_™_×0Ñ0°°rÓ:ò 	%‰MˆD�'Ø�O‰O˜DŸG™GÕ$ñ	%r$   c                 ó:   — | j                   j                  |«       y r(   )rE  rœ  r�  s     r"   rž  zToolbarWx.set_message   s   € Ø×Ñ×!Ñ! !Õ$r$   )r?   r@   rA   Ú_icon_extensionr   r©  r.   r¹  rÔ  rÚ  rÞ  rž  rq   r$   r"   r«  r«  ¬  s/   „ Ø€Oà+/°r·|±|ó 	ò	ò+6òZò%ó%r$   r«  c                   ó   — e Zd Zd„ Zy)ÚConfigureSubplotsWxc                 ó.   — t         j                  | «       y r(   )r+  Úconfigure_subplots©r/   r0   s     r"   ÚtriggerzConfigureSubplotsWx.trigger  s   € Ü×/Ñ/°Õ5r$   N©r?   r@   rA   ræ  rq   r$   r"   râ  râ    s   „ ó6r$   râ  c                   ó   — e Zd Zd„ Zy)ÚSaveFigureWxc                 óJ   — t         j                  | j                  «       «       y r(   )r+  r•  Ú"_make_classic_style_pseudo_toolbarrå  s     r"   ræ  zSaveFigureWx.trigger  s   € Ü×(Ñ(Ø×3Ñ3Ó5õ	7r$   Nrç  rq   r$   r"   ré  ré  
  s   „ ó7r$   ré  c                   ó   — e Zd Zd„ Zd„ Zy)ÚRubberbandWxc                 óT   — t         j                  | j                  «       d ||||«       y r(   )r+  r˜  rë  )r/   rî  rï  rð  rñ  s        r"   r˜  zRubberbandWx.draw_rubberband  s'   € Ü×,Ñ,Ø×3Ñ3Ó5°t¸RÀÀRÈõ	Mr$   c                 óJ   — t         j                  | j                  «       «       y r(   )r+  rš  rë  r7   s    r"   rš  zRubberbandWx.remove_rubberband  s   € Ü×.Ñ.Ø×3Ñ3Ó5õ	7r$   N)r?   r@   rA   r˜  rš  rq   r$   r"   rí  rí    s   „ òMó7r$   rí  c                   óF   ‡ — e Zd ZdZdgZg d¢Zˆ fd„Zd„ Zed„ «       Z	ˆ xZ
S )Ú_HelpDialogN)ÚActionÚ	ShortcutsÚDescription)rN   éŒ   rP   c                 ó8  •— t         ‰| �  |dt        j                  t        j                  z  ¬«       t        j
                  t        j                  «      }t        j                  dddd«      }| j                  «       j                  «       }t        | j                  |z   «      D ]u  \  }}t        || j                  «      D ]W  \  }}	t        j                  | |¬«      }
|dk(  r|
j                  |«       |
j!                  |	«       |j#                  |
ddd«       ŒY Œw |j#                  |dt        j$                  d«       t        j&                  | t        j(                  «      }|j#                  |dt        j*                  t        j$                  z  d«       | j-                  |«       |j/                  | «       | j1                  «        | j3                  t        j4                  | j6                  «       |j3                  t        j8                  | j6                  «       y )NÚHelp)r  rÕ   r   r‡   é   é   r½  )r-   r.   r   ÚDEFAULT_DIALOG_STYLEÚRESIZE_BORDERÚBoxSizerÚVERTICALÚFlexGridSizerÚGetFontÚMakeBoldrÔ  ÚheadersÚzipÚwidthsrC  rx   ÚWrapÚAddÚALLrÈ  rˆ  ÚALIGN_CENTER_HORIZONTALÚSetSizerrì  ÚLayoutrt  rí  rî  Ú
EVT_BUTTON)r/   rŸ  Úhelp_entriesÚsizerÚ
grid_sizerrV   ÚrÚrowÚcolri   r2  Úokr2   s               €r"   r.   z_HelpDialog.__init__!  s…  ø€ Ü‰Ñ˜ vÜ!×6Ñ6¼×9IÑ9IÑIð 	ô 	Kô —‘œBŸK™KÓ(ˆÜ×%Ñ% a¨¨A¨qÓ1ˆ
à�|‰|‹~×&Ñ&Ó(ˆÜ §¡¨|Ñ ;Ó<ò 	/‰FˆAˆsÜ # C¨¯©Ó 5ò /‘��eÜŸ™ d°#Ô6�Ø˜’6Ø—M‘M $Ô'Ø—
‘
˜5Ô!Ø—‘˜u a¨¨AÕ.ñ/ð	/ð 	�	‰	�*˜a¤§¡¨Ô+Ü�Y‰Y�tœRŸX™XÓ&ˆØ�	‰	�"�aœ×3Ñ3´b·f±fÑ<¸aÔ@Ø�‰�eÔØ�	‰	�$ŒØ�‰ŒØ�	‰	”"—,‘, §¡Ô/Ø
�‰”—‘˜tŸ~™~Õ.r$   c                 óZ   — d t         _        | j                  «        |j                  «        y r(   )rñ  Ú	_instanceÚDestroyLaterrM  rÌ  s     r"   rî  z_HelpDialog._on_close:  s   € Ø $ŒÔØ×ÑÔØ�
‰
�r$   c                 ó¢   — | j                   r| j                   j                  «        y  | ||«      | _         | j                   j                  «        y r(   )r  r  r   )r2  rŸ  r  s      r"   r	  z_HelpDialog.show?  s<   € ð �=Š=Ø�M‰M×ÑÔ!ØÙ˜F LÓ1ˆŒØ�‰×ÑÕr$   )r?   r@   rA   r  r  r  r.   rî  r  r	  rC   rD   s   @r"   rñ  rñ    s3   ø„ Ø€IØ5Ð6€GÚ€Fô/ò2ð
 ñó ôr$   rñ  c                   ó   — e Zd Zd„ Zy)ÚHelpWxc                 ó�   — t         j                  | j                  j                  j	                  «       | j                  «       «       y r(   )rñ  r	  rj  rç  ÚGetTopLevelParentÚ_get_help_entriesrå  s     r"   ræ  zHelpWx.triggerK  s1   € Ü×Ñ˜Ÿ™×+Ñ+×=Ñ=Ó?Ø×/Ñ/Ó1õ	3r$   Nrç  rq   r$   r"   r  r  I  s   „ ó3r$   r  c                   ó   — e Zd Zd„ Zy)ÚToolCopyToClipboardWxc                 óú  — | j                   j                  s| j                   j                  «        | j                   j                  j	                  «       rt
        j                  j                  «       sy 	 t
        j                  j                  t        j                  | j                   j                  «      «       t
        j                  j                  «        y # t
        j                  j                  «        w xY wr(   )rç  rn  r°  rl   r$  r   r¥  r§  r¨  r£  rª  r±  s      r"   ræ  zToolCopyToClipboardWx.triggerR  s”   € Ø�{‰{×#Ò#Ø�K‰K×ÑÔØ�{‰{×!Ñ!×&Ñ&Ô(´·±×0DÑ0DÔ0FØð	$Ü�O‰O×#Ñ#¤B×$7Ñ$7¸¿¹×8JÑ8JÓ$KÔLä�O‰O×!Ñ!Õ#øŒB�O‰O×!Ñ!Õ#ús   Á5AC Ã C:Nrç  rq   r$   r"   r  r  P  s   „ ó$r$   r  c                   ó,   — e Zd ZeZeZej                  Zy)Ú
_BackendWxN)	r?   r@   rA   rÆ  ÚFigureCanvasr1  ÚFigureManagerr  Úmainlooprq   r$   r"   r  r  a  s   „ à!€LØ#€MØ×.Ñ.�Hr$   r  )OrB   rÏ  ÚloggingrÃ   r‰  r  r,  Únumpyrd  Ú	PIL.Imagera  Ú
matplotlibrþ  Ú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Ú	getLoggerr?   re   rç   Ú	lru_cacher#   r&   Ú
deprecatedrM   rÑ   rm  r/  rÆ  ÚFramerà  r1  r   ræ  r5  r+  r«  Ú_register_tool_classÚConfigureSubplotsBaserâ  ÚSaveFigureBaseré  ÚRubberbandBaserí  ÚDialogrñ  ÚToolHelpBaser  ÚToolCopyToClipboardBaser  Ú_toolbar2_classÚ_toolmanager_toolbar_classÚexportr  rq   r$   r"   ú<module>r:     sœ  ðñó Û Û Û Û 
Û ã Û ã ÷B÷ B÷ B÷ Bñ B÷ EÓ DÝ )Ý  Ý *ã 	Û à€w×Ñ˜Ó"€ð
 €ð €×Ñ�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$   