U ^Q@sdZddlZddlZddlZddlmZddlmZgZgZe Z iZ ddZ ddZ d"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. NGObject)_compatcCs,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 r rrrr _patch_module7s rc CsZ|dkr |}|jddd}t|D](}zt||d}WnYq*YnXzdt|tjr|j D]H\}}|j }| |dd}|r| |r|t |d}t|||qjWntk rYq*YnXzht|tjr6|j D]J\}} z| jd |dd}Wntk r&YqYnXt||| qWq*tk rRYq*Yq*Xq*dS)N._r)__name__rsplitupperdirr issubclassrZGEnumZ__enum_values__itemsZ value_namereplace startswithlenr TypeErrorZGFlagsZ__flags_values__Z value_names IndexError) moduledeststripmodnameattrr valueenumr flagrrr_install_enums=s8    r/cCs<|tkr,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^sr3cCshtdr dSddlm}td|ddlm}td|ddlm}td|dd lm}td |dS) Nrr)GLibZglibrZgobject)_propertyhelperzgobject.propertyhelper)GioZgio)r3 gi.repositoryr4rrgir5r6)r4rr5r6rrrenablems       r9cCstttD]D\}}}|tkr.t||qt||t||t|k rt|||qtdd=ttD]$\}}|tkrt j |=qh|t j |<qhtdd=t t t j rt ddS)zfReverse all effects of the enable_xxx() calls except for require_version() calls and imports. Nascii)r0clearreversedr rdelattrrrrrrrreloadPY2setdefaultencoding)r r rrrr _disable_alls        rA3.0c# std|rdS|dkrtdtttjr8tdtddddl m }t d |t |td ddd l m }t d |t |td dddl m}t d|td|tddddl mddl m}t dt t |dtddtddtdjjtd|jtd|jjtd|jjtd|jjtd |jjtd!|jjtd"|jjtd#|jjtd$|jjtd%|jjtd&|jj|jj fd'd(}td)|j!j" fd*d+}tj!d,|td-jj#td.jj$j!j% fd/d0}tj!d1|td2|dd3l m&t dtd4td5d6td7j'j(j)ft d8d9}tj*d:t+|j,Gfd;d<d<} td<| j-j. d fd>d? } tj-d@| j-j/dfdAdB } tj-dC| j0j.dfdDdE } tj0d@| j0j/dfdFdG } tj0dC| j1j.dfdHdI }tj1d@|j1j/dfdJdK }tj1dC|j1j2t3ffdLdM }tj1dN|GdOdPdPj4}tdP|j5j6 t3f fdQdR }tj5dS|GfdTdUdUj5}tdU|fdVdW}tdX|fdYdZ}td[|d\d]}tj7d^t+|fd_d`}tda|dbdc}tj5dd|tdej8j9tdfj:jtdgj;j<tdhj;j=tdij;j>tdjj;j?tdkj;jtdlj@jtdmj!jAtdnjBjCtjDdojDjEtdpjFjGtjFdqjFjHjIjJGfdrdsds}tds|Gfdtdudu}tdu|tdvdwdxtjKdytLjKjMdztd{jKjNjKjOfd|d}}tjKd~|tjKdjKjPGfdddtQGfdddtQGfdddtQ}tjKd|jRjSdfdd }tjRd|j!jTdfdd }tj!d|tdj!jUtdj!jVGdddtQ}|} t d| tWX tWjYdtZdddl[m\}!W5QRXt d|!td|!ddl]m^}"td|"j_dS)NZgtkz4.0zversion 4.0 not supportedzutf-8Atk1.0r)rCZatkPango)rEZpango PangoCairo)rFZ pangocairoGdk GdkPixbuf2.0rG)rHzgtk.gdkr(Z_2BUTTON_PRESSZ BUTTON_PRESSZscreen_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_types extensions)Zget_descriptionZget_nameZget_mime_typesZget_extensions)format_resultrrr make_dicts     z2enable_gtk..get_formats..make_dict)r )ZformatsrRrSrQ)orig_get_formatsrr get_formatss zenable_gtk..get_formatsZpixbuf_get_formatscs|ddS)Nrrself)orig_get_originrr get_originszenable_gtk..get_originrYZ 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_geometryGtkr^ZgdkZ pygtk_version)crZ gtk_versioncSstjdtjdddS)Nz%set_tool_item_type() is not supportedr` stacklevelwarningswarnr8ZPyGIDeprecationWarning)Z menuactionZgtyperrrset_tool_item_typesz&enable_gtk..set_tool_item_typergcseZdZdfdd ZdS)zenable_gtk..Alignmentcs.|||j_||j_||j_||j_dSr)__init__Zpropsxalignyalignxscaleyscale)rWrjrkrlrmorig_Alignmentrrris  z&enable_gtk..Alignment.__init__N)rhrhrhrhr __module__ __qualname__rirrnrr Alignment srsTcs|||||dSrrrWZchildexpandZfillZpadding) orig_pack_endrrpack_endszenable_gtk..pack_endrwcs|||||dSrrrt)orig_pack_startrr pack_start!szenable_gtk..pack_startrycs|||dSrrrWcellru)orig_tree_view_column_pack_endrrtree_view_column_pack_end)sz-enable_gtk..tree_view_column_pack_endcs|||dSrrrz) orig_tree_view_column_pack_startrrtree_view_column_pack_start/sz/enable_gtk..tree_view_column_pack_startcs|||dSrrrz)orig_cell_pack_endrr cell_pack_end7sz!enable_gtk..cell_pack_endcs|||dSrrrz)orig_cell_pack_startrrcell_pack_start=sz#enable_gtk..cell_pack_startcsfdd}||||dS)Ncs |dtkr|dd}|SNrrargsfuncrrcallbackDs  z8enable_gtk..set_cell_data_func..callbackr)rWr{r user_datar)orig_set_cell_data_funcrrset_cell_data_funcCs z&enable_gtk..set_cell_data_funcrc@s eZdZdS)z'enable_gtk..GenericCellRendererNrrqrrrrrrGenericCellRendererMsrcsfdd}|||dS)Ncs |dtkr|dd}|SrrrrrrrVs  z>enable_gtk..combo_row_separator_func..callbackr)rWrrr)orig_combo_row_separator_funcrrcombo_row_separator_funcUs z,enable_gtk..combo_row_separator_funcset_row_separator_funccs(eZdZfddZddZddZdS)z!enable_gtk..ComboBoxEntrycsjj|fddi|dS)NZ has_entryT)ComboBoxri)rWkwdsr_rrri`sz*enable_gtk..ComboBoxEntry.__init__cSs||dSr)set_entry_text_column)rWZ text_columnrrrset_text_columncsz1enable_gtk..ComboBoxEntry.set_text_columncSs|Sr)Zget_entry_text_columnrVrrrget_text_columnfsz1enable_gtk..ComboBoxEntry.get_text_columnN)rrqrrrirrrr_rr ComboBoxEntry_s rcsSrrrr_rrcombo_box_entry_newjsz'enable_gtk..combo_box_entry_newrcs j|dS)Nmodelrrr_rrcombo_box_entry_new_with_modelnsz2enable_gtk..combo_box_entry_new_with_modelrcSstjdtjdddS)Nz)install_child_property() is not supportedr`rbrd)Z containerr.Zpspecrrrinstall_child_propertytsz*enable_gtk..install_child_propertyrcs*}t}|||d|S)Nr)rZ ListStorestrZ set_modelr)Zcomborr_rrnew_textys    zenable_gtk..new_textZcombo_box_new_textcSs|}||gdSr)Z get_modelr )rWtextrrrr append_textszenable_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) adjustmentrirWr orig_HScalerrrisz#enable_gtk..HScale.__init__)NrprrrrHScalesrcseZdZdfdd ZdS)zenable_gtk..VScaleNcsj||ddSrrr orig_VScalerrrisz#enable_gtk..VScale.__init__)NrprrrrVScalesrZ stock_addcSsdSrr)r!rrrzenable_gtk..rZ)fgetZwidget_get_default_directioncsGdddtj}||S)Nc@seZdZddZdS)z5enable_gtk..size_request..SizeRequestcSs*|j|_|j|_tj||j|jgdSr)heightwidthrUserListri)rWZreqrrrrisz>enable_gtk..size_request..SizeRequest.__init__Nrprrrr SizeRequestsr)rr)widgetr)orig_size_requestrr size_requestsz enable_gtk..size_requestrZhide_allcs eZdZddZfddZdS)zenable_gtk..BaseGettercSs ||_dSr)context)rWrrrrrisz'enable_gtk..BaseGetter.__init__cs:|j|}jt|jdt|jdt|jddS)Niredgreenblue)rZget_background_colorColorintrrr)rWstateZcolorrJrr __getitem__s    z*enable_gtk..BaseGetter.__getitem__N)rrqrrrirrrJrr BaseGettersrcseZdZfddZdS)zenable_gtk..Stylescs(|}||_jdddd|_dS)Nrr)Zget_style_contextbaserZblack)rWrrrrGrrris z#enable_gtk..Styles.__init__NrprrrrStylessrcseZdZfddZdS)z#enable_gtk..StyleDescriptorcs|Srr)rWinstanceZclass_rrr__get__sz+enable_gtk..StyleDescriptor.__get__N)rrqrrrrrrrStyleDescriptorsrZstyleF?cs||||||Srr)rWZmarkZ within_marginZ use_alignrjrk)orig_text_view_scroll_to_markrrtext_view_scroll_to_marks z,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)Nrrhzaspect ratios must be positive)ZGeometryZ WindowHintsmax 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)rWZgeometry_widgetrrrrrrrrrrZgeometryZ geom_mask)rGorig_set_geometry_hintsrrset_geometry_hintss2              z&enable_gtk..set_geometry_hintsrZwindow_list_toplevelsZwindow_set_default_icon_namec@s eZdZdS)zenable_gtk..UnixPrintNrrrrr UnixPrintsrZ gtkunixprintignore)category)keysymsz gtk.keysymsrr)generictreemodelGenericTreeModel)TTr)TTr)T)T)T)T)Frr) Nrrrrrrrrrr)`r3r1rr>rr?r@r8require_versionr7rCrr/rErFrGrHrZScreen get_defaultrNrOZ 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_inforUZWindowrYrrr]r^Z MAJOR_VERSIONZ MINOR_VERSIONZ MICRO_VERSIONZAction classmethodrsZBoxrwryZTreeViewColumnZ CellLayoutrrZ CellRendererrr ContainerZExpanderZnew_with_mnemonicZ IconThemeImageZnew_from_pixbufZnew_from_stockZnew_from_animationZnew_from_icon_setZSettingsZset_default_iconZ ClipboardrZ AccelGroupZconnectZ StatusIconZ position_menuZset_tooltip_textrrZWidgetpropertyZ get_windowZget_default_directionrZhideobjectZTextViewrrZlist_toplevelsZset_default_icon_namerecatch_warnings simplefilterRuntimeWarningZ gi.overridesrrrr)#r2rCrErFrHrUrYr\rgrsrwryr}rrrrrrrrrrrrrrrrrrrZ unixprintrrr)rrGr^rrorrrrrr[rTrXrvrxrrrrr|r~r enable_gtksJ                                           &     rcCs2tdr dStddddlm}td|dS)NZvteVtez0.0rr)r3r8rr7rrrrrr enable_vtes   rcCs>tdr dStddddlm}td|t|dddS)NZpopplerPopplerz0.18rrZpypoppler_version)rrr)r3r8rr7rrrrrrrenable_poppler#s    rrDcCsFtd|rdStd|ddlm}td|t|jd|jjdS)NZwebkitWebKitr)rZget_web_inspector) r3r8rr7rrrZWebViewZ get_inspector)r2rrrr enable_webkit.s     rcCs2tdr dStddddlm}td|dS)NZgudevGUdevrDrr)r3r8rr7rrrrrr enable_gudev9s   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 rrrrrrOrzenable_gst..Zget_gst_versioncSsdS)N)rr(rrrrrrPr) GstInterfaceszgst.interfaces)GstAudioz gst.audio)GstVideoz gst.video)GstBasezgst.base BaseTransformBaseSink) GstControllerzgst.controllerrK) GstPbutilsz gst.pbutils)r3r8rr7rrr/rZRegistryrZElementregisterZElementFactoryZmakeZCapsZnew_anyrrrrrrrr)rrrrrrrrrr enable_gstBs@                rcCstdr dStddddlm}td|t|ddt|d|jt|d |j t|d |j t|d |j t|d |j dS) NZ goocanvas GooCanvasrIrrZ GOO_CANVAS_)r)Z ItemSimpleZItemrZGroupZRect) r3r8rr7rrr/rZCanvasItemSimpleZ CanvasItemZ CanvasImageZ CanvasGroupZ CanvasRectrrrrenable_goocanvasns    r)Nr)N)rB)rD)__doc__rrer8r7rrr rrrr0rrr/r3r9rArrrrrrrrrrrs2   !     ,