3 <_T@sdZddlZddlZy>ddlmZeejejdddlmZWdQRXWn$e k rvddlmZeYnXddl Z ddl m Z gZ gZeZiZddZd d Zd$d d Zd%ddZddZddZd&ddZddZddZd'ddZddZd d!Zd"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. N)UserListignore)reload)GObjectcCs,t||t}t|||tj|||fdS)N)getattr_unsetsetattr_patchesappend)objname new_value old_valuer#/usr/lib64/python3.6/pygtkcompat.py_patch<s  rcCs*tjj|t}|tj|<tj||fdS)N)sysmodulesgetr_module_patchesr )r r rrrr _patch_moduleBs rc "Cs`|dkr |}|jjdddj}x6t|D](}yt||d}Wnw.YnXyht|tjrxV|jj D]H\}}|j }|j |dd}|r|j |r|t |d}t|||qnWWntk rw.YnXyjt|tjr} tj+d?t,| j-Gfd@dAdA} tdA| j.j/dfdCdD } tj.dE| j.j0dfdFdG } tj.dH| j1j/dfdIdJ } tj1dE| j1j0dfdKdL }tj1dH|j2j/dfdMdN }tj2dE|j2j0dfdOdP }tj2dH|j2j3t4ffdQdR }tj2dS|GdTdUdUj5}tdU|j6j7 t4f fdVdW }tj6dX|GfdYdZdZj6}tdZ|fd[d\}td]|fd^d_}td`|dadb}tj8dct,|fddde}tdf|dgdh}tj6di|tdjj9j:tdkj;jtdljtdnj.get_formats..make_dict)r )ZformatsrOrPrN)orig_get_formatsrr get_formatss  zenable_gtk..get_formatsZpixbuf_get_formatscsby@yjdddd}Wntk r2j}YnX||Wntk r\|}YnX|S)Nr)Z Rectangler%)windowZrect)rForig_get_frame_extentsrrget_frame_extentssz%enable_gtk..get_frame_extentsrUcs|ddS)Nrr)self)orig_get_originrr get_originszenable_gtk..get_originrXZ screen_widthZ screen_heightcs||jjfS)N)Z get_visualZget_best_depth)rS)orig_gdk_window_get_geometryrrgdk_window_get_geometry sz+enable_gtk..gdk_window_get_geometry get_geometryGtk)r\ZgdkZ pygtk_versioncZ gtk_versioncSstjdtjdddS)Nz%set_tool_item_type() is not supportedr]) stacklevel)warningswarnr8PyGIDeprecationWarning)Z menuactionZgtyperrrset_tool_item_type sz&enable_gtk..set_tool_item_typerccseZdZdfdd ZdS)zenable_gtk..Alignmentcs.j|||j_||j_||j_||j_dS)N)__init__Zpropsxalignyalignxscaleyscale)rVrfrgrhri)orig_Alignmentrrre*s  z&enable_gtk..Alignment.__init__N)rdrdrdrd)r __module__ __qualname__rer)rjrr Alignment)srmTcs|||||dS)Nr)rVchildexpandfillpadding) orig_pack_endrrpack_end7szenable_gtk..pack_endrscs|||||dS)Nr)rVrnrorprq)orig_pack_startrr pack_start=szenable_gtk..pack_startrucs|||dS)Nr)rVcellro)orig_tree_view_column_pack_endrrtree_view_column_pack_endEsz-enable_gtk..tree_view_column_pack_endcs|||dS)Nr)rVrvro) orig_tree_view_column_pack_startrrtree_view_column_pack_startKsz/enable_gtk..tree_view_column_pack_startcs|||dS)Nr)rVrvro)orig_cell_pack_endrr cell_pack_endSsz!enable_gtk..cell_pack_endcs|||dS)Nr)rVrvro)orig_cell_pack_startrrcell_pack_startYsz#enable_gtk..cell_pack_startcsfdd}||||dS)Ncs |dtkr|dd}|S)Nrrr)r)args)funcrrcallback`s  z8enable_gtk..set_cell_data_func..callbackr)rVrvr user_datar)orig_set_cell_data_func)rrset_cell_data_func_s z&enable_gtk..set_cell_data_funcrc@s eZdZdS)z'enable_gtk..GenericCellRendererN)rrkrlrrrrGenericCellRendererisrcsfdd}|||dS)Ncs |dtkr|dd}|S)Nrrr)r)r)rrrrrs  z>enable_gtk..combo_row_separator_func..callbackr)rVrrr)orig_combo_row_separator_func)rrcombo_row_separator_funcqs z,enable_gtk..combo_row_separator_funcset_row_separator_funccs(eZdZfddZddZddZdS)z!enable_gtk..ComboBoxEntrycsjj|fddi|dS)NZ has_entryT)ComboBoxre)rVkwds)r\rrre|sz*enable_gtk..ComboBoxEntry.__init__cSs|j|dS)N)set_entry_text_column)rVZ text_columnrrrset_text_columnsz1enable_gtk..ComboBoxEntry.set_text_columncSs|jS)N)Zget_entry_text_column)rVrrrget_text_columnsz1enable_gtk..ComboBoxEntry.get_text_columnN)rrkrlrerrr)r\rr ComboBoxEntry{s rcsjS)N)rr)r\rrcombo_box_entry_newsz'enable_gtk..combo_box_entry_newrcs j|dS)N)model)r)r)r\rrcombo_box_entry_new_with_modelsz2enable_gtk..combo_box_entry_new_with_modelrcSstjdtjdddS)Nz)install_child_property() is not supportedr])r_)r`rar8rb)Z containerr.Zpspecrrrinstall_child_propertysz*enable_gtk..install_child_propertyrcs*j}jt}|j||jd|S)Nr)rZ ListStorestrZ set_modelr)Zcombor)r\rrnew_texts    zenable_gtk..new_textZcombo_box_new_textcSs|j}|j|gdS)N)Z get_modelr )rVtextrrrr 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||ddS)N) adjustment)re)rVr) orig_HScalerrresz#enable_gtk..HScale.__init__)N)rrkrlrer)rrrHScalesrcseZdZdfdd ZdS)zenable_gtk..VScaleNcsj||ddS)N)r)re)rVr) orig_VScalerrresz#enable_gtk..VScale.__init__)N)rrkrlrer)rrrVScalesrZ stock_addcSsdS)Nr)r!rrrszenable_gtk..rS)fgetZwidget_get_default_directioncsGdddt}||S)Nc@seZdZddZdS)z5enable_gtk..size_request..SizeRequestcSs(|j|_|j|_tj||j|jgdS)N)heightwidthrre)rVZreqrrrresz>enable_gtk..size_request..SizeRequest.__init__N)rrkrlrerrrr SizeRequestsr)r)widgetr)orig_size_requestrr size_requestsz enable_gtk..size_requestrZhide_allcs eZdZddZfddZdS)zenable_gtk..BaseGettercSs ||_dS)N)context)rVrrrrresz'enable_gtk..BaseGetter.__init__cs:|jj|}jt|jdt|jdt|jddS)Ni)redgreenblue)rZget_background_colorColorintrrr)rVstateZcolor)rFrr __getitem__s  z*enable_gtk..BaseGetter.__getitem__N)rrkrlrerr)rFrr BaseGettersrcseZdZfddZdS)zenable_gtk..Stylescs(|j}||_jdddd|_dS)Nr)rrr)Zget_style_contextbaserZblack)rVrr)rrFrrres z#enable_gtk..Styles.__init__N)rrkrlrer)rrFrrStylessrcseZdZfddZdS)z#enable_gtk..StyleDescriptorcs|S)Nr)rVinstanceZclass_)rrr__get__sz+enable_gtk..StyleDescriptor.__get__N)rrkrlrr)rrrStyleDescriptorsrZstyleF?cs||||||S)Nr)rVZmarkZ within_marginZ use_alignrfrg)orig_text_view_scroll_to_markrrtext_view_scroll_to_marksz,enable_gtk..text_view_scroll_to_markscroll_to_markrg?c s6j} jd} |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)Nrgzaspect 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)rVZgeometry_widgetrrrrrrrrrrZgeometryZ geom_mask)rForig_set_geometry_hintsrrset_geometry_hintss2              z&enable_gtk..set_geometry_hintsrZwindow_list_toplevelsZwindow_set_default_icon_namec@s eZdZdS)zenable_gtk..UnixPrintN)rrkrlrrrr UnixPrint'srZ gtkunixprintr)category)keysymsz gtk.keysymsr)generictreemodelGenericTreeModel)r:r)r]r^r)TTr)TTr)T)T)T)T)Frrrrrrrrrr) Nrrrrrrrrrr)ar3r1rrr?r@r8require_versionr7rCrr/rDrErFrGrZScreen get_defaultrJrKZ new_with_typeZ new_from_dataZ new_from_fileZnew_from_file_at_scaleAttributeErrorZnew_from_file_at_sizeZnew_from_inlineZnew_from_streamZnew_from_stream_at_scaleZnew_from_xpm_dataZ get_file_inforRZWindowrUrXrrr[r\Z MAJOR_VERSIONZ MINOR_VERSIONZ MICRO_VERSIONZAction classmethodrmZBoxrsruZTreeViewColumnZ 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_namer`catch_warnings simplefilterRuntimeWarningZ gi.overridesrrrr)$r2rCrDrErGrRrUrXrZrcrmrsrurxrzr|r~rrrrrrrrrrrrrrrrZ unixprintrrr)rrFr\rrjrrr{r}rrYrQrTrWrrrtrrrrrwryr enable_gtksD                                             #     rcCs2tdr dStjddddlm}td|dS)NZvteVtez0.0r)r)r3r8rr7rr)rrrr enable_vte9s   rcCs>tdr dStjddddlm}td|t|dddS) NZpopplerPopplerz0.18r)rZpypoppler_versionr)rrr)r3r8rr7rrr)rrrrenable_popplerBs    r1.0cCsFtd|rdStjd|ddlm}td|t|jd|jjdS)NZwebkitWebKitr)rZget_web_inspector) r3r8rr7rrrZWebViewZ get_inspector)r2rrrr enable_webkitMs     rcCs2tdr dStjddddlm}td|dS)NZgudevGUdevz1.0r)r)r3r8rr7rr)rrrr enable_gudevXs   rcCsntdr dStjddddlm}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)Nr )rrrrrrrrrnszenable_gst..Zget_gst_versioncSsdS)Nrr()rrrrrrrrros) GstInterfaceszgst.interfaces)GstAudioz gst.audio)GstVideoz gst.video)GstBasezgst.base BaseTransformBaseSink) GstControllerzgst.controller)r() GstPbutilsz gst.pbutils)r3r8rr7rrr/rZRegistryrZElementregisterZElementFactoryZmakeZCapsZnew_anyrrrrrrrr)rrrrrrrrrr enable_gstas@                rcCstdr dStjddddlm}td|t|ddt|d|jt|d |j t|d |j t|d |j t|d |j dS) NZ goocanvas GooCanvasz2.0r)rZ GOO_CANVAS_)r)Z ItemSimpleZItemrZGroupZRect) r3r8rr7rrr/rZCanvasItemSimpleZ CanvasItemZ CanvasImageZ CanvasGroupZ CanvasRect)rrrrenable_goocanvass    r)Nr)N)rB)r)__doc__rr` collectionsrrrZimpr ImportErrorr8r7rr rrrr0rrr/r3r9rArrrrrrrrrrr!sB       !     ,