o b^P@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_valuer9/usr/lib/python3/dist-packages/pygtkcompat/pygtkcompat.py_patch1s  rcCs*tj|t}|tj|<t||fdSr)sysmodulesgetr_module_patchesr )r rrrrr _patch_module7s rc Cs8|dur|}|jddd}t|D]}zt||d}WnYqz2t|tjrV|j D]$\}}|j }| |dd}|rO| |rO|t |d}t|||q1Wn ty`Yqwz/t|tjr|j D]!\}} z | jd |dd}Wn tyYqmwt||| qmWqtyYqwdS)N._r)__name__rsplitupperdirr issubclassrGEnum__enum_values__items value_namereplace startswithlenr TypeErrorGFlags__flags_values__ value_names IndexError) moduledeststripmodnameattrr valueenumr flagrrr_install_enums=sD      r6cCs8|tvrt|}||krtd||fdS|t|<dS)z*Returns True in case it is already enabledz.%r already enabled with different version (%r)TF)_enabled_registry ValueError)r versionenabled_versionrrr_check_enabled^sr;cCshtdrdSddlm}td|ddlm}td|ddlm}td|dd lm}td |dS) Nrr)GLibglibrgobject)_propertyhelperzgobject.propertyhelper)Giogio)r; gi.repositoryr<rrgir?r@)r<rr?r@rrrenablems       rDcCstttD]"\}}}|turt||qt||t||t|ur*t|||qtdd=ttD]\}}|turAt j |=q4|t j |<q4tdd=dS)zfReverse all effects of the enable_xxx() calls except for require_version() calls and imports. N) r7clearreversedr rdelattrrr rrr)r r rrrr _disable_alls      rH3.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|jMjN dfdd }t jMd|jjO dfdd }t jd|t djjPt djjQGdddtL}|} td| tRStRjTdtUdddlVmW}!Wdn 1swYtd|!t d|!ddlXmY}"t d|"jZdS)Ngtkz4.0zversion 4.0 not supportedAtk1.0r)rKatkPango)rNpango PangoCairo)rP pangocairoGdk GdkPixbuf2.0rR)rSzgtk.gdkr/_2BUTTON_PRESS BUTTON_PRESSscreen_get_defaultPixbuf PixbufLoaderpixbuf_new_from_datapixbuf_new_from_filepixbuf_new_from_file_at_scalepixbuf_new_from_file_at_sizepixbuf_new_from_inlinepixbuf_new_from_streampixbuf_new_from_stream_at_scalepixbuf_new_from_xpm_datapixbuf_get_file_infocs.}g}dd}|D] }|||q |S)NcSs8i}||d<||d<||d<||d<|S)N descriptionr mime_types extensions)get_descriptionget_nameget_mime_typesget_extensions)format_resultrrr make_dicts     z2enable_gtk..get_formats..make_dict)r )formatsrorprn)orig_get_formatsrr get_formatss zenable_gtk..get_formatspixbuf_get_formatscs|ddS)Nrrself)orig_get_originrr get_originzenable_gtk..get_originrx screen_width screen_heightcs||fSr) get_visualget_best_depth)window)orig_gdk_window_get_geometryrrgdk_window_get_geometrysz+enable_gtk..gdk_window_get_geometry get_geometryGtkrgdk pygtk_version)cr gtk_versioncStjdtjdddS)Nz%set_tool_item_type() is not supportedr stacklevelwarningswarnrCPyGIDeprecationWarning) menuactiongtyperrrset_tool_item_type z&enable_gtk..set_tool_item_typercseZdZdfdd ZdS)zenable_gtk..Alignmentcs.|||j_||j_||j_||j_dSr)__init__propsxalignyalignxscaleyscale)rvrrrrorig_Alignmentrrrs  z&enable_gtk..Alignment.__init__N)rrrrr __module__ __qualname__rrrrr AlignmentrTc|||||dSrrrvchildexpandfillpadding) orig_pack_endrrpack_endzenable_gtk..pack_endrcrrrr)orig_pack_startrr pack_startrzenable_gtk..pack_startrc|||dSrrrvcellr)orig_tree_view_column_pack_endrrtree_view_column_pack_end ryz-enable_gtk..tree_view_column_pack_endcrrrr) orig_tree_view_column_pack_startrrtree_view_column_pack_start&ryz/enable_gtk..tree_view_column_pack_startcrrrr)orig_cell_pack_endrr cell_pack_end.ryz!enable_gtk..cell_pack_endcrrrr)orig_cell_pack_startrrcell_pack_start4ryz#enable_gtk..cell_pack_startcsfdd}||||dS)Nc |dtkr |dd}|SNrrargsfuncrrcallback;  z8enable_gtk..set_cell_data_func..callbackr)rvrr user_datar)orig_set_cell_data_funcrrset_cell_data_func:s z&enable_gtk..set_cell_data_funcrc@ eZdZdS)z'enable_gtk..GenericCellRendererNrrrrrrrGenericCellRendererDrcsfdd}|||dS)NcrrrrrrrrMrz>enable_gtk..combo_row_separator_func..callbackr)rvrrr)orig_combo_row_separator_funcrrcombo_row_separator_funcLs z,enable_gtk..combo_row_separator_funcset_row_separator_funccs(eZdZfddZddZddZdS)z!enable_gtk..ComboBoxEntrycsjj|fddi|dS)N has_entryT)ComboBoxr)rvkwdsrrrrWsz*enable_gtk..ComboBoxEntry.__init__cSs||dSr)set_entry_text_column)rv text_columnrrrset_text_columnZsz1enable_gtk..ComboBoxEntry.set_text_columncSs|Sr)get_entry_text_columnrurrrget_text_column]z1enable_gtk..ComboBoxEntry.get_text_columnN)rrrrrrrrrr ComboBoxEntryVs  rcsSrrrrrrcombo_box_entry_newarz'enable_gtk..combo_box_entry_newrcs j|dS)Nmodelrrrrrcombo_box_entry_new_with_modeles z2enable_gtk..combo_box_entry_new_with_modelrcSr)Nz)install_child_property() is not supportedrrr) containerr5pspecrrrinstall_child_propertykrz*enable_gtk..install_child_propertyrcs*}t}|||d|S)Nr)r ListStorestr set_modelr)comborrrrnew_textps    zenable_gtk..new_textcombo_box_new_textcSs|}||gdSr) get_modelr )rvtextrrrr append_textxszenable_gtk..append_textrexpander_new_with_mnemonicicon_theme_get_defaultimage_new_from_pixbufimage_new_from_stockimage_new_from_animationimage_new_from_icon_setimage_new_from_filesettings_get_defaultwindow_set_default_icon clipboard_get connect_groupstatus_icon_position_menu set_tooltipceZdZdfdd ZdS)zenable_gtk..HScaleNcj||ddSN) adjustmentrrvr orig_HScalerrrz#enable_gtk..HScale.__init__rrrrrrHScalerrcr)zenable_gtk..VScaleNcrrrr orig_VScalerrrrz#enable_gtk..VScale.__init__rrrrrrVScalerr stock_addcSsdSrr)r$rrrzenable_gtk..r~)fgetwidget_get_default_directioncsGdddt}||S)Nc@seZdZddZdS)z5enable_gtk..size_request..SizeRequestcSs(|j|_|j|_t||j|jgdSr)heightwidthrr)rvreqrrrrsz>enable_gtk..size_request..SizeRequest.__init__Nrrrrr SizeRequests rr)widgetr)orig_size_requestrr size_requests z enable_gtk..size_requestr hide_allcs eZdZddZfddZdS)zenable_gtk..BaseGettercSs ||_dSr)context)rvr rrrrs z'enable_gtk..BaseGetter.__init__cs:|j|}jt|jdt|jdt|jddS)Niredgreenblue)r get_background_colorColorintrrr)rvstatecolorrUrr __getitem__s   z*enable_gtk..BaseGetter.__getitem__N)rrrrrrrUrr BaseGettersrcseZdZfddZdS)zenable_gtk..Stylescs(|}||_jdddd|_dS)Nrr)get_style_contextbaserblack)rvr r rrRrrrs z#enable_gtk..Styles.__init__NrrrrrStylesrrcseZdZfddZdS)z#enable_gtk..StyleDescriptorcs|Srr)rvinstanceclass_rrr__get__rz+enable_gtk..StyleDescriptor.__get__N)rrrr!rr rrStyleDescriptorsr"styleF?cs||||||Srr)rvmark within_margin use_alignrr)orig_text_view_scroll_to_markrrtext_view_scroll_to_marksz,enable_gtk..text_view_scroll_to_markscroll_to_markrc s0} d} |dks|dkr#t|d| _t|d| _| jjO} |dks+|dkr=t|d| _t|d| _| jjO} |dksE|dkrWt|d| _ t|d| _ | jj O} |dks_| dkrqt|d| _ t| d| _ | jjO} | dksy| dkr| dks| dkrtd| | _| | _| jjO} ||| | S)Nrrzaspect ratios must be positive)Geometry WindowHintsmax min_width min_heightMIN_SIZE max_width max_heightMAX_SIZE base_width base_height BASE_SIZE width_inc height_inc RESIZE_INCr) min_aspect max_aspectASPECT)rvgeometry_widgetr/r0r2r3r5r6r8r9r;r<geometry geom_mask)rRorig_set_geometry_hintsrrset_geometry_hintss2              z&enable_gtk..set_geometry_hintsrBwindow_list_toplevelswindow_set_default_icon_namec@r)zenable_gtk..UnixPrintNrrrrr UnixPrintrrE gtkunixprintignore)category)keysymsz gtk.keysymsrIr)generictreemodelGenericTreeModel)TTr)T)Fr$r$) Nrrrrrrrrr+r+)[r;r8rCrequire_versionrBrKrr6rNrPrRrSrScreen get_defaultr\r] new_with_type new_from_data new_from_filenew_from_file_at_scalenew_from_file_at_sizenew_from_inlinenew_from_streamnew_from_stream_at_scalenew_from_xpm_data get_file_inforsWindowrxrrrr MAJOR_VERSION MINOR_VERSION MICRO_VERSIONAction classmethodrBoxrrTreeViewColumn CellLayoutrr CellRendererrr ContainerExpandernew_with_mnemonic IconThemeImagenew_from_pixbufnew_from_stocknew_from_animationnew_from_icon_setSettingsset_default_icon Clipboardr AccelGroupconnect StatusIcon position_menuset_tooltip_textrrWidgetproperty get_windowget_default_directionr hideobjectTextViewr*rBlist_toplevelsset_default_icon_namercatch_warnings simplefilterRuntimeWarning gi.overridesrIrrJrK)#r9rKrNrPrSrsrxrrrrrrrrrrrrrrrrrrrrr r"r)rBrE unixprintrIrJr)rrRrrrrrrrrrrrrwrrrrAr r(rrr enable_gtks4                                        &     rcC2tdrdStddddlm}td|dS)NvteVtez0.0rr)r;rCrLrBrrrrrr enable_vte   rcCs>tdrdStddddlm}td|t|dddS)NpopplerPopplerz0.18rrpypoppler_version)rrr)r;rCrLrBrrrrrrrenable_popplers    rrLcCsFtd|rdStd|ddlm}td|t|jd|jjdS)NwebkitWebKitr)rget_web_inspector) r;rCrLrBrrrWebView get_inspector)r9rrrr enable_webkit%s    rcCr)NgudevGUdevrLrr)r;rCrLrBrrrrrr enable_gudev0rrcCsntdrdStddddlm}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)NgstGstz0.10r)rregistry_get_defaultelement_registerelement_factory_make caps_new_anyget_pygst_versioncSdS)N)r rrrrrrFrzenable_gst..get_gst_versioncSr)N)rr(rrrrrrGr) GstInterfaceszgst.interfaces)GstAudioz gst.audio)GstVideoz gst.video)GstBasezgst.base BaseTransformBaseSink) GstControllerzgst.controllerrV) GstPbutilsz gst.pbutils)r;rCrLrBrrr6rRegistryrNElementregisterElementFactorymakeCapsnew_anyrrrrrrrr)rrrrrrrrrr enable_gst9s@                 rcCstdrdStddddlm}td|t|ddt|d|jt|d |j t|d |j t|d |j t|d |j dS) N goocanvas GooCanvasrTrr GOO_CANVAS_)r0 ItemSimpleItemrgGroupRect) r;rCrLrBrrr6rCanvasItemSimple CanvasItem CanvasImage CanvasGroup CanvasRectrrrrenable_goocanvases    r)Nrr)rI)rL)__doc__rr collectionsrrCrBrr rryrr7rrr6r;rDrHrrrrrrrrrrrs2    ! z   ,