rL i ,dZddlZddlZddlZddlmZmZmZddlm Z ddl m Z m Z m Z mZmZddlmZddlZddlmZmZmZmZ ej0dej6eZdad Zd Z d Z!Gd deZ"Gdde Z#Gdde Z$GddeZ%GddejLZ'GddejPZ)Gdde Z*y#e$rZed edZ[wwxYw)z) Common code for GTK3 and GTK4 backends. N)_api backend_toolscbook)Gcf)_BackendFigureCanvasBaseFigureManagerBaseNavigationToolbar2 TimerBase)Cursors)GdkGioGLibGtkcairoz Gtk-based backends require cairoc`|jD]}|jd|_dayNT) get_windowsclose_created_by_matplotlib _application)appwins f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/matplotlib/backends/_backend_gtk.py_shutdown_applicationrs2   "&CLcttjj}| t |ddrt j js tdtjjdtjjatjddtjdttjt!j"tS|atS)NrFzInvalid DISPLAY variablezorg.matplotlib.Matplotlib3activatecyN)argskwargss rz%_create_application..;srshutdown)rr Application get_defaultgetattrmpl_c_internal_utilsdisplay_is_valid RuntimeErrorrnewApplicationFlags NON_UNIQUEconnectrregisterr_setup_new_guiapp)rs r_create_applicationr3-soo))+ ;'#'?G((99;"#=>>??../K/2/C/C/N/NPL  -I J  -B C  ! ! #  # # % L rctjtjdtjdtj dtj dtjdtjdtjdi|S) Nmovepointerdefault crosshairwaitz ew-resizez ns-resize)cursor) r check_getitemr MOVEHANDPOINTER SELECT_REGIONWAITRESIZE_HORIZONTALRESIZE_VERTICAL) mpl_cursors rmpl_to_gtk_cursor_namerDEsd    f i{ f!!; rc>eZdZdZfdZdZdZdZfdZxZ S)TimerGTKz0Subclass of `.TimerBase` using GTK timer events.c2d|_t||i|yr )_timersuper__init__)selfr"r# __class__s rrJzTimerGTK.__init__Ts  $)&)rc|jtj|j|j|_yr ) _timer_stopr timeout_add _interval _on_timerrHrKs r _timer_startzTimerGTK._timer_startXs, &&t~~t~~F rcj|j'tj|jd|_yyr )rHr source_removerRs rrNzTimerGTK._timer_stop^s* ;; "   t{{ +DK #rc^|j!|j|jyyr )rHrNrSrRs r_timer_set_intervalzTimerGTK._timer_set_intervalcs) ;; "         #rcbt||jr |jsyd|_y)NTF)rIrQ callbacks_singlerH)rKrLs rrQzTimerGTK._on_timeris*  >>$,,DKr) __name__ __module__ __qualname____doc__rJrSrNrWrQ __classcell__rLs@rrFrFQs%:*G    rrFceZdZeZy)_FigureCanvasGTKN)r[r\r]rF _timer_clsr!rrrbrbusJrrbcVeZdZdZfdZdZedZdZdZ dZ dZ d Z xZ S) _FigureManagerGTKaC Attributes ---------- canvas : `FigureCanvas` The FigureCanvas instance num : int or str The Figure number toolbar : Gtk.Toolbar or Gtk.Box The toolbar vbox : Gtk.VBox The Gtk.VBox containing the canvas and toolbar window : Gtk.Window The Gtk.Window cjtjx_}t}tj_|j j t !|||dk(rQtjdk(rdnd}j jttjd|tj_j j#dtj$j&|dk(rj j)j j j+j,j+j j/j,dddnO|d k(rJj j1j j j3j,j,j5\}}j6|dk(rCj6j+j j9j6d d dni|d k(rdtj:tj<j> }|j1j6j jA|j6jC\} } || jDz }j jG||d _$j jKd fd j jKddd|fdtMjNr4j j+j,jQj,jSy)Nwin32pngsvgzimages/matplotlib. orientationTrF)vscrollbar_policydestroyc.tjSr rrnr"rKs rr$z,_FigureManagerGTK.__init__..sS[[5Fr delete_eventz close-requestrgrlc.tjSr rprqs rr$z,_FigureManagerGTK.__init__..s#++d*;r)*rget_major_version_gtk_verr3Windowwindow add_windowrIrJsysplatformset_icon_from_filestrr_get_data_pathBoxvbox set_property OrientationVERTICALaddshowcanvas pack_start set_childprependget_width_heighttoolbarpack_endScrolledWindow PolicyTypeNEVERappendget_preferred_sizeheightset_default_size _destroyingr0r)is_interactive draw_idle grab_focus) rKrnumgtk_verricon_extwhswmin_sizenat_sizerLs ` rrJz_FigureManagerGTK.__init__s"%"7"7"99 !#jjl  t{{# % a< #  7uUH KK * *E((+=hZ)HIJ LGGI  }coo.F.FG a< KKOODII & IINN  KK    II dD! < \ KK ! !$)) , II  dkk *{{++-1 << #!| !!# ""4<<qAA''#..:N:NO T\\*   $!%!@!@!B Hh  A $$Q*  I'FG ?CGL; =     KK    KK ! ! #  rc|jryd|_|jj|jjyr)rrxrnrrKr"s rrnz_FigureManagerGTK.destroys8      rc ty tjday#t$rRtjj }|j r"|jd|j r"wxYw#dawxYwr)rrunKeyboardInterruptr MainContextr7pending iteration)clscontexts rstart_main_loopz!_FigureManagerGTK.start_main_loops{        L! &&..0G//#!!$'//#    Ls AA;9A;;A>>BcN|jj|jjtj dr^ddd|j }t|j|r|jjytjdyy)Nzfigure.raise_window get_window get_surfacersz#Cannot raise window yet to be setup) rxrrdrawr)rcParamsrvr(presentr warn_external)rK meth_names rrz_FigureManagerGTK.shows{   <<- .(];DMMJI.wt{{I.0 ##% ""#HI /rcddd|j}||jr|jjy|jjy)Nct|jjtjjzSr )r get_stater WindowState FULLSCREENrs rr$z6_FigureManagerGTK.full_screen_toggle..s'!,,.224OO667rc"|jSr ) is_fullscreenrs rr$z6_FigureManagerGTK.full_screen_toggle..s *rrs)rvrx unfullscreen fullscreen)rKrs rfull_screen_togglez$_FigureManagerGTK.full_screen_togglesM8*  --   % KK $ $ & KK " " $rc6|jjSr )rx get_titlerRs rget_window_titlez"_FigureManagerGTK.get_window_titles{{$$&&rc:|jj|yr )rx set_title)rKtitles rset_window_titlez"_FigureManagerGTK.set_window_titles e$rct||jjz }t||jjz }|jr,|jj \}}||j z }|jj }|jdk\s"|j|j cxk(rdk(r nn|jj||y|jj||y)Nrl) intrdevice_pixel_ratiorrrget_allocationrvwidthrxrresize)rKrrrr canvas_sizes rrz_FigureManagerGTK.resizesEDKK:::;Vdkk<<<= <z)rmarkup_escape_textmessage set_markup)rKsescapeds r set_messagez"_NavigationToolbar2GTK.set_messages-))!, ''( ;?SC?? $$T*@sA3c:|jjdyr )rrrRs rremove_rubberbandz(_NavigationToolbar2GTK.remove_rubberbands $$T*rcdD]o\}}|jj|}|s$|j|j5|j |j j |k(dddqy#1swY|xYw)N))PanPAN)ZoomZOOM)_gtk_idsget handler_block_signal_handler set_activemodename)rKractivebuttons r_update_buttons_checkedz._NavigationToolbar2GTK._update_buttons_checkeds|> @LD&]]&&t,F))&*@*@A@%%diinn&>?@@ @@@s )A66A? c>t|||jyr )rIpanrrKr"rLs rrz_NavigationToolbar2GTK.pan%s  T $$&rc>t|||jyr )rIzoomrrs rrz_NavigationToolbar2GTK.zoom)s  d $$&rcF|jjdkD}|jjt|jdz k}d|jvr|jdj |d|jvr|jdj |yy)NrrBackForward) _nav_stack_poslenr set_sensitive)rK can_backward can_forwards rset_history_buttonsz*_NavigationToolbar2GTK.set_history_buttons-s++a/ oo**S-AA-EE T]] " MM& ! / / =  % MM) $ 2 2; ? &r) r[r\r]rrrrrrrr_r`s@rrr s( =++@''@rrceZdZdZdZy) RubberbandGTKcTtj|jd||||yr )rr"_make_classic_style_pseudo_toolbar)rKrrrrs rrzRubberbandGTK.draw_rubberband7s'..  3 3 5tRR MrcJtj|jyr )rrrrRs rrzRubberbandGTK.remove_rubberband;s00  3 3 5 7rN)r[r\r]rrr!rrrr6s M7rrceZdZdZy)ConfigureSubplotsGTKc0tj|dyr )rconfigure_subplotsrs rtriggerzConfigureSubplotsGTK.triggerAs11$=rN)r[r\r]r r!rrr r @s>rr ceZdZdjej ej ejZe jZ y) _BackendGTKz{}.{}.{}N) r[r\r]formatrruget_minor_versionget_micro_versionbackend_versionrermainloopr!rrrrEsI ''O !00Hrr)+r^loggingrz matplotlibr)rrrmatplotlib._pylab_helpersrmatplotlib.backend_basesrrr r r matplotlib.backend_toolsr gi gi.repositoryr rrrrequire_foreign ImportErrore getLoggerr[_logrrr3rDrFrbrerRubberbandBaserConfigureSubplotsBaser rr!rrr"s 11)- .-ABww"  0 !y!H'O.)O.d(@/(@V7M007>=>>> 1(1[ A 8 9q@AsCC( C##C(