a b^Pc@sdZddlZddlZddlmZddlZddlmZgZgZ e Z iZ ddZ ddZd"d d Zd#d d ZddZddZd$ddZddZddZd%ddZddZddZd d!ZdS)&a PyGTK compatibility layer. This modules goes a little bit longer to maintain PyGTK compatibility than the normal overrides system. It is recommended to not depend on this layer, but only use it as an intermediate step when porting your application to PyGI. Compatibility might never be 100%, but the aim is to make it possible to run a well behaved PyGTK application mostly unmodified on top of PyGI. NUserListGObjectcCs,t||t}t|||t|||fdSN)getattr_unsetsetattr_patchesappend)objname new_value old_valuer;/usr/lib/python3.9/site-packages/pygtkcompat/pygtkcompat.py_patch1s  rcCs*tj|t}|tj|<t||fdSr)sysmodulesgetr_module_patchesr )r r rrrr _patch_module7s rc CsT|dur |}|jddd}t|D]"}zt||d}WnYq*Yn0zdt|tjr|j D]H\}}|j }| |dd}|r| |r|t |d}t|||qjWntyYq*Yn0zft|tjr2|j D]H\}} z| jd |dd}Wnty"YqYn0t||| qWq*tyLYq*Yq*0q*dS)NZ.Z_r)__name__ZrsplitZupperZdirrZ issubclassrZGEnumZ__enum_values__itemsZ value_nameZreplaceZ startswithZlenr TypeErrorZGFlagsZ__flags_values__Z value_namesZ IndexError) ZmoduledeststripZmodnameZattrr ZvalueZenumr flagrrr_install_enums=s8     r cCs<|tvr,t|}||kr(td||fdS|t|<dSdS)z*Returns True in case it is already enabledz.%r already enabled with different version (%r)TFN)_enabled_registry ValueError)r versionZenabled_versionrrr_check_enabled^sr$cCshtdr dSddlm}td|ddlm}td|ddlm}td|dd lm}td |dS) Nrr)GLibZglibrZgobject)_propertyhelperzgobject.propertyhelper)GioZgio)r$ gi.repositoryr%rrgir&r')r%rr&r'rrrenablems       r*cCstttD]D\}}}|tur.t||qt||t||t|urt|||qtdd=ttD]$\}}|turt j |=qh|t j |<qhtdd=dS)zfReverse all effects of the enable_xxx() calls except for require_version() calls and imports. N) r!ZclearZreversedr rZdelattrrrrrr)r r rrrr _disable_alls     r+3.0c# std|rdS|dkrtdtddddlm}td|t|td ddd lm}td |t|td ddd lm }td|td|tddddlm ddlm }tdtt|dt ddt ddt dj jt d|jt d|jjt d|jjt d|jjt d|jjt d |jjt d!|jjt d"|jjt d#|jjt d$|jjt d%|jj|jj fd&d'}t d(|jj fd)d*}t jd+|t d,j jt d-j jjj fd.d/}t jd0|td1|dd2lm!tdt d3t d4d5t d6j"j#j$ftd7d8}t j%d9t&|j'Gfd:d;d;} t d;| j(j) d fd=d> } t j(d?| j(j*dfd@dA } t j(dB| j+j)dfdCdD } t j+d?| j+j*dfdEdF } t j+dB| j,j)dfdGdH }t j,d?|j,j*dfdIdJ }t j,dB|j,j-t.ffdKdL }t j,dM|GdNdOdOj/}t dO|j0j1 t.f fdPdQ }t j0dR|GfdSdTdTj0}t dT|fdUdV}t dW|fdXdY}t dZ|d[d\}t j2d]t&|fd^d_}t d`|dadb}t j0dc|t ddj3j4t dej5jt dfj6j7t dgj6j8t dhj6j9t dij6j:t djj6jt dkj;jt dljj<t dmj=j>t j?dnj?j@t dojAjBt jAdpjAjCjDjEGfdqdrdr}t dr|Gfdsdtdt}t dt|t dudvdwt jFdxtGjFjHdyt dzjFjIjFjJfd{d|}t jFd}|t jFd~jFjKGfdddtLGfdddtLGfdddtL}t jFd|jMjNdfdd }t jMd|jjOdfdd }t jd|t djjPt djjQGdddtL}|} td| tRS*tRjTdtUdddlVmW}!Wdn1sP0Ytd|!t d|!ddlXmY}"t d|"jZdS)NZgtkz4.0zversion 4.0 not supportedAtk1.0r)r-ZatkPango)r/Zpango PangoCairo)r0Z pangocairoGdk GdkPixbuf2.0r1)r2zgtk.gdkrZ_2BUTTON_PRESSiZ BUTTON_PRESSiZscreen_get_defaultPixbuf PixbufLoaderZpixbuf_new_from_dataZpixbuf_new_from_fileZpixbuf_new_from_file_at_scaleZpixbuf_new_from_file_at_sizeZpixbuf_new_from_inlineZpixbuf_new_from_streamZpixbuf_new_from_stream_at_scaleZpixbuf_new_from_xpm_dataZpixbuf_get_file_infocs.}g}dd}|D]}|||q|S)NcSs8i}||d<||d<||d<||d<|S)NZ descriptionr Z mime_typesZ extensions)Zget_descriptionZget_nameZget_mime_typesZget_extensions)format_resultrrr make_dicts     z2enable_gtk..get_formats..make_dict)r )Zformatsr9r:r8)orig_get_formatsrr get_formatss zenable_gtk..get_formatsZpixbuf_get_formatscs|ddS)Nrrself)orig_get_originrr get_originszenable_gtk..get_originr@Z screen_widthZ screen_heightcs||fSr)Z get_visualZget_best_depth)window)orig_gdk_window_get_geometryrrgdk_window_get_geometrysz+enable_gtk..gdk_window_get_geometry get_geometryGtkrEZgdkZ pygtk_version)icrZ gtk_versioncSstjdtjdddS)Nz%set_tool_item_type() is not supportedrGZ stacklevelwarningsZwarnr)ZPyGIDeprecationWarning)Z menuactionZgtyperrrset_tool_item_typesz&enable_gtk..set_tool_item_typerKcseZdZdfdd ZdS)zenable_gtk..Alignmentcs.|||j_||j_||j_||j_dSr)__init__Zpropsxalignyalignxscaleyscale)r>rNrOrPrQorig_AlignmentrrrMs  z&enable_gtk..Alignment.__init__N)rLrLrLrLr __module__ __qualname__rMrrRrr AlignmentsrWTcs|||||dSrrr>ZchildexpandZfillZpadding) orig_pack_endrrpack_endszenable_gtk..pack_endr[cs|||||dSrrrX)orig_pack_startrr pack_startszenable_gtk..pack_startr]cs|||dSrrr>cellrY)orig_tree_view_column_pack_endrrtree_view_column_pack_end sz-enable_gtk..tree_view_column_pack_endcs|||dSrrr^) orig_tree_view_column_pack_startrrtree_view_column_pack_start&sz/enable_gtk..tree_view_column_pack_startcs|||dSrrr^)orig_cell_pack_endrr cell_pack_end.sz!enable_gtk..cell_pack_endcs|||dSrrr^)orig_cell_pack_startrrcell_pack_start4sz#enable_gtk..cell_pack_startcsfdd}||||dS)Ncs |dtkr|dd}|SNrrZargsfuncrrcallback;s  z8enable_gtk..set_cell_data_func..callbackr)r>r_rl user_datarm)orig_set_cell_data_funcrkrset_cell_data_func:s z&enable_gtk..set_cell_data_funcrpc@s eZdZdS)z'enable_gtk..GenericCellRendererNrrUrVrrrrGenericCellRendererDsrrcsfdd}|||dS)Ncs |dtkr|dd}|SrhrirjrkrrrmMs  z>enable_gtk..combo_row_separator_func..callbackr)r>rlrnrm)orig_combo_row_separator_funcrkrcombo_row_separator_funcLs z,enable_gtk..combo_row_separator_funcset_row_separator_funccs(eZdZfddZddZddZdS)z!enable_gtk..ComboBoxEntrycsjj|fddi|dS)NZ has_entryT)ComboBoxrM)r>ZkwdsrFrrrMWsz*enable_gtk..ComboBoxEntry.__init__cSs||dSr)set_entry_text_column)r>Z text_columnrrrset_text_columnZsz1enable_gtk..ComboBoxEntry.set_text_columncSs|Sr)Zget_entry_text_columnr=rrrget_text_column]sz1enable_gtk..ComboBoxEntry.get_text_columnN)rrUrVrMrxryrrFrr ComboBoxEntryVs rzcsSrrzrrFrrcombo_box_entry_newasz'enable_gtk..combo_box_entry_newr|cs j|dS)Nmodelr{r}rFrrcombo_box_entry_new_with_modelesz2enable_gtk..combo_box_entry_new_with_modelrcSstjdtjdddS)Nz)install_child_property() is not supportedrGrHrI)Z containerrZpspecrrrinstall_child_propertyksz*enable_gtk..install_child_propertyrcs*}t}|||d|S)Nr)rvZ ListStoreZstrZ set_modelrw)Zcombor~rFrrnew_textps    zenable_gtk..new_textZcombo_box_new_textcSs|}||gdSr)Z get_modelr )r>Ztextr~rrr append_textxszenable_gtk..append_textrZexpander_new_with_mnemonicZicon_theme_get_defaultZimage_new_from_pixbufZimage_new_from_stockZimage_new_from_animationZimage_new_from_icon_setZimage_new_from_fileZsettings_get_defaultZwindow_set_default_iconZ clipboard_getZ connect_groupZstatus_icon_position_menuZ set_tooltipcseZdZdfdd ZdS)zenable_gtk..HScaleNcsj||ddSN) adjustmentrMr>r orig_HScalerrrMsz#enable_gtk..HScale.__init__)NrTrrrrHScalesrcseZdZdfdd ZdS)zenable_gtk..VScaleNcsj||ddSrrr orig_VScalerrrMsz#enable_gtk..VScale.__init__)NrTrrrrVScalesrZ stock_addcSsdSrr)rrrrzenable_gtk..rA)ZfgetZwidget_get_default_directioncsGdddt}||S)Nc@seZdZddZdS)z5enable_gtk..size_request..SizeRequestcSs(|j|_|j|_t||j|jgdSr)heightwidthrrM)r>ZreqrrrrMsz>enable_gtk..size_request..SizeRequest.__init__NrTrrrr SizeRequestsrr)widgetr)orig_size_requestrr size_requestsz enable_gtk..size_requestrZhide_allcs eZdZddZfddZdS)zenable_gtk..BaseGettercSs ||_dSr)context)r>rrrrrMsz'enable_gtk..BaseGetter.__init__cs:|j|}jt|jdt|jdt|jddS)Niredgreenblue)rZget_background_colorColorZintrrr)r>ZstateZcolorr4rr __getitem__s    z*enable_gtk..BaseGetter.__getitem__N)rrUrVrMrrr4rr BaseGettersrcseZdZfddZdS)zenable_gtk..Stylescs(|}||_jdddd|_dS)Nrr)Zget_style_contextZbaserZblack)r>rrrr1rrrMs z#enable_gtk..Styles.__init__NrTrrrrStylessrcseZdZfddZdS)z#enable_gtk..StyleDescriptorcs|Srr)r>ZinstanceZclass_rrr__get__sz+enable_gtk..StyleDescriptor.__get__N)rrUrVrrrrrStyleDescriptorsrZstyleF?cs||||||Srr)r>ZmarkZ within_marginZ use_alignrNrO)orig_text_view_scroll_to_markrrtext_view_scroll_to_marksz,enable_gtk..text_view_scroll_to_markscroll_to_markrc s6} d} |dks"|dkrFt|d| _t|d| _| jjO} |dksV|dkrzt|d| _t|d| _| jjO} |dks|dkrt|d| _ t|d| _ | jj O} |dks| dkrt|d| _ t| d| _ | jjO} | dks| dkr(| dks| dkrtd| | _| | _| jjO} ||| | S)NrrLzaspect ratios must be positive)ZGeometryZ WindowHintsZmax min_width min_heightZMIN_SIZE max_width max_heightZMAX_SIZE base_width base_heightZ BASE_SIZE width_inc height_incZ RESIZE_INCr min_aspect max_aspectZASPECT)r>Zgeometry_widgetrrrrrrrrrrZgeometryZ geom_mask)r1orig_set_geometry_hintsrrset_geometry_hintss2              z&enable_gtk..set_geometry_hintsrZwindow_list_toplevelsZwindow_set_default_icon_namec@s eZdZdS)zenable_gtk..UnixPrintNrqrrrr UnixPrintsrZ gtkunixprintZignore)Zcategory)keysymsz gtk.keysymsrr)generictreemodelGenericTreeModel)TTr)TTr)T)T)T)T)Frr) Nrrrrrrrrrr)[r$r"r)require_versionr(r-rr r/r0r1r2rZScreen get_defaultr6r7Z new_with_typeZ new_from_dataZ new_from_fileZnew_from_file_at_scaleZnew_from_file_at_sizeZnew_from_inlineZnew_from_streamZnew_from_stream_at_scaleZnew_from_xpm_dataZ get_file_infor<ZWindowr@rrrDrEZ MAJOR_VERSIONZ MINOR_VERSIONZ MICRO_VERSIONZActionZ classmethodrWZBoxr[r]ZTreeViewColumnZ CellLayoutrprZ CellRendererrvruZ ContainerZExpanderZnew_with_mnemonicZ IconThemeImageZnew_from_pixbufZnew_from_stockZnew_from_animationZnew_from_icon_setZSettingsZset_default_iconZ ClipboardrZ AccelGroupZconnectZ StatusIconZ position_menuZset_tooltip_textrrZWidgetZpropertyZ get_windowZget_default_directionrZhideobjectZTextViewrrZlist_toplevelsZset_default_icon_namerJZcatch_warningsZ simplefilterZRuntimeWarningZ gi.overridesrrrr)#r#r-r/r0r2r<r@rCrKrWr[r]rarcrergrprrrtrzr|rrrrrrrrrrrZ unixprintrrr)rr1rErrSrrrdrfrsrBr;r?rZr\rorrrr`rbr enable_gtks2                                         &  ,   rcCs2tdr dStddddlm}td|dS)NZvteVtez0.0rr)r$r)rr(rrrrrr enable_vtes   rcCs>tdr dStddddlm}td|t|dddS)NZpopplerPopplerz0.18rrZpypoppler_version)rrr)r$r)rr(rrrrrrrenable_popplers    rr.cCsFtd|rdStd|ddlm}td|t|jd|jjdS)NZwebkitWebKitr)rZget_web_inspector) r$r)rr(rrrZWebViewZ get_inspector)r#rrrr enable_webkit%s     rcCs2tdr dStddddlm}td|dS)NZgudevGUdevr.rr)r$r)rr(rrrrrr enable_gudev0s   rcCsntdr dStddddlm}td|t|t|d|jj t|d|j j t|d|j j t|d |jjt|d d d t|d dd ddlm}td|t|ddlm}td|t|ddlm}td|t|ddlm}td|t|t|d|jt|d|jddlm}td|t||dddlm}td|t|dS)NZgstGstz0.10r)rZregistry_get_defaultZelement_registerZelement_factory_makeZ caps_new_anyZget_pygst_versioncSsdS)N)r irrrrrrFrzenable_gst..Zget_gst_versioncSsdS)N)rri(rrrrrrGr) GstInterfaceszgst.interfaces)GstAudioz gst.audio)GstVideoz gst.video)GstBasezgst.base BaseTransformBaseSink) GstControllerzgst.controllerr5) GstPbutilsz gst.pbutils)r$r)rr(rrr rZRegistryrZElementZregisterZElementFactoryZmakeZCapsZnew_anyrrrrrrrr)rrrrrrrrrr enable_gst9s@                rcCstdr dStddddlm}td|t|ddt|d|jt|d |j t|d |j t|d |j t|d |j dS) NZ goocanvas GooCanvasr3rrZ GOO_CANVAS_)rZ ItemSimpleZItemrZGroupZRect) r$r)rr(rrr rZCanvasItemSimpleZ CanvasItemZ CanvasImageZ CanvasGroupZ CanvasRectrrrrenable_goocanvases    r)Nr)N)r,)r.)Z__doc__rrJZ collectionsrr)r(rr rrrr!rrr r$r*r+rrrrrrrrrrrZs0   !  z   ,