o
    bê²^ÀP  ã                   @   sº   d Z ddlZddlZddlmZ ddlZddlmZ g Zg Z	e
ƒ Zi Zdd„ Zdd„ Zd"d
d„Zd#dd„Zdd„ Zdd„ Zd$dd„Zdd„ Zdd„ Zd%dd„Zdd„ Zdd„ Zd d!„ ZdS )&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©ÚUserList©ÚGObjectc                 C   s,   t | |tƒ}t| ||ƒ t | ||f¡ d S ©N)ÚgetattrÚ_unsetÚsetattrÚ_patchesÚappend)ÚobjÚnameÚ	new_valueÚ	old_value© r   ú9/usr/lib/python3/dist-packages/pygtkcompat/pygtkcompat.pyÚ_patch1   s   r   c                 C   s*   t j | t¡}|t j| < t | |f¡ d S r   )ÚsysÚmodulesÚgetr   Ú_module_patchesr   )r   r   r   r   r   r   Ú_patch_module7   s   
r   Ú c           
   
   C   s8  |d u r| }|j  dd¡d  ¡ }t| ƒD ]„}zt| |d ƒ}W n   Y qz2t|tjƒrV|j 	¡ D ]$\}}|j
}| |d d¡}|rO| |¡rO|t|ƒd … }t|||ƒ q1W n	 ty`   Y qw z/t|tjƒr�|j 	¡ D ]!\}}	z|	jd  |d d¡}W n	 ty‡   Y qmw t|||	ƒ qmW q ty™   Y qw d S )NÚ.é   Ú_r   éÿÿÿÿ)Ú__name__ÚrsplitÚupperÚdirr   Ú
issubclassr   ÚGEnumÚ__enum_values__ÚitemsÚ
value_nameÚreplaceÚ
startswithÚlenr   Ú	TypeErrorÚGFlagsÚ__flags_values__Úvalue_namesÚ
IndexError)
ÚmoduleÚdestÚstripÚmodnameÚattrr   ÚvalueÚenumr   Úflagr   r   r   Ú_install_enums=   sD   €ÿý€ÿçr6   c                 C   s8   | t v rt |  }||krtd| |f ƒ‚dS |t | < dS )z*Returns True in case it is already enabledz.%r already enabled with different version (%r)TF)Ú_enabled_registryÚ
ValueError)r   ÚversionÚenabled_versionr   r   r   Ú_check_enabled^   s   ÿÿr;   c                  C   sh   t dƒrd S ddlm}  td| ƒ ddlm} td|ƒ ddlm} td|ƒ dd	lm} td
|ƒ d S )Nr   r   )ÚGLibÚglibr   Úgobject)Ú_propertyhelperzgobject.propertyhelper)ÚGioÚgio)r;   Úgi.repositoryr<   r   r   Úgir?   r@   )r<   r   r?   r@   r   r   r   Úenablem   s   


rD   c                  C   sœ   t  ¡  ttƒD ]"\} }}|tu rt| |ƒ qt| |ƒ t| |tƒ|ur*t| ||ƒ qtdd…= ttƒD ]\}}|tu rAt	j
|= q4|t	j
|< q4tdd…= dS )zfReverse all effects of the enable_xxx() calls except for
    require_version() calls and imports.
    N)r7   ÚclearÚreversedr
   r   Údelattrr   r	   r   r   r   )r   r   r   r   r   r   Ú_disable_all€   s   
€

rH   ú3.0c           #         s˜  t d| ƒrd S | dkrtdƒ‚t dd¡ ddlm} td|ƒ t|ƒ t d	d¡ dd
lm} td|ƒ t|ƒ t dd¡ ddlm	} td|ƒ t d| ¡ t dd¡ ddlm
‰ ddlm} tdˆƒ tˆƒ t|ˆd� tˆddƒ tˆddƒ tˆdˆjjƒ tˆd|jƒ tˆd|jjƒ tˆd|jjƒ tˆd|jjƒ tˆd|jjƒ tˆd |jjƒ tˆd!|jjƒ tˆd"|jjƒ tˆd#|jjƒ tˆd$|jjƒ tˆd%|jjƒ |jj‰‡fd&d'„}tˆd(|ƒ ˆjj‰‡fd)d*„}tˆjd+|ƒ tˆd,ˆjjƒ tˆd-ˆjjƒ ˆjj ‰
‡
fd.d/„}tˆjd0|ƒ t d1| ¡ dd2lm!‰ tdˆƒ tˆd3ˆƒ tˆd4d5ƒ tˆd6ˆj"ˆj#ˆj$fƒ tˆƒ d7d8„ }tˆj%d9t&|ƒƒ ˆj'‰G ‡fd:d;„d;ˆƒ}	tˆd;|	ƒ ˆj(j)‰d�‡fd=d>„	}
tˆj(d?|
ƒ ˆj(j*‰d�‡fd@dA„	}tˆj(dB|ƒ ˆj+j)‰dž‡fdCdD„	}tˆj+d?|ƒ ˆj+j*‰dž‡fdEdF„	}tˆj+dB|ƒ ˆj,j)‰dž‡fdGdH„	}tˆj,d?|ƒ ˆj,j*‰dž‡fdIdJ„	}tˆj,dB|ƒ ˆj,j-‰t.f‡fdKdL„	}tˆj,dM|ƒ G dNdO„ dOˆj/ƒ}tˆdO|ƒ ˆj0j1‰	t.f‡	fdPdQ„	}tˆj0dR|ƒ G ‡fdSdT„dTˆj0ƒ}tˆdT|ƒ ‡fdUdV„}tˆdW|ƒ ‡fdXdY„}tˆdZ|ƒ d[d\„ }tˆj2d]t&|ƒƒ ‡fd^d_„}tˆd`|ƒ dadb„ }tˆj0dc|ƒ tˆddˆj3j4ƒ tˆdeˆj5jƒ tˆdfˆj6j7ƒ tˆdgˆj6j8ƒ tˆdhˆj6j9ƒ tˆdiˆj6j:ƒ tˆdjˆj6jƒ tˆdkˆj;jƒ tˆdlˆjj<ƒ tˆdmˆj=j>ƒ tˆj?dnˆj?j@ƒ tˆdoˆjAjBƒ tˆjAdpˆjAjCƒ ˆjD‰ˆjE‰G ‡fdqdr„drˆƒ}tˆdr|ƒ G ‡fdsdt„dtˆƒ}tˆdt|ƒ tˆdudvdw„ ƒ tˆjFdxtGˆjFjHdy�ƒ tˆdzˆjFjIƒ ˆjFjJ‰‡fd{d|„}tˆjFd}|ƒ tˆjFd~ˆjFjKƒ G ‡fdd€„d€tLƒ‰ G ‡ ‡fd�d‚„d‚tLƒ‰G ‡fdƒd„„d„tLƒ}tˆjFd…|ƒ ƒ ˆjMjN‰	‡dŸ‡fdˆd‰„	}tˆjMdŠ|ƒ ˆjjO‰	 	‹	‹	Œd ‡‡fd�dŽ„	}tˆjd�|ƒ tˆd�ˆjjPƒ tˆd‘ˆjjQƒ G d’d“„ d“tLƒ}|ƒ } td”| ƒ tR S¡ � tRjTd•tUd–� dd—lVmW}! W d   ƒ n	1 �s­w   Y  td˜|!ƒ tˆd™|!ƒ dšd›lXmY}" tˆdœ|"jZƒ d S )¡NÚgtkz4.0zversion 4.0 not supportedÚAtkú1.0r   )rK   ÚatkÚPango)rN   ÚpangoÚ
PangoCairo)rP   Ú
pangocairoÚGdkÚ	GdkPixbufú2.0©rR   )rS   zgtk.gdk©r/   Ú_2BUTTON_PRESSé   ÚBUTTON_PRESSé   Úscreen_get_defaultÚPixbufÚPixbufLoaderÚpixbuf_new_from_dataÚpixbuf_new_from_fileÚpixbuf_new_from_file_at_scaleÚpixbuf_new_from_file_at_sizeÚpixbuf_new_from_inlineÚpixbuf_new_from_streamÚpixbuf_new_from_stream_at_scaleÚpixbuf_new_from_xpm_dataÚpixbuf_get_file_infoc                     s.   ˆ ƒ } g }dd„ }| D ]	}|  ||ƒ¡ q|S )Nc                 S   s8   i }|   ¡ |d< |  ¡ |d< |  ¡ |d< |  ¡ |d< |S )NÚdescriptionr   Ú
mime_typesÚ
extensions)Úget_descriptionÚget_nameÚget_mime_typesÚget_extensions)Úformat_Úresultr   r   r   Ú	make_dictÏ   s   z2enable_gtk.<locals>.get_formats.<locals>.make_dict)r   )Úformatsro   rp   rn   )Úorig_get_formatsr   r   Úget_formatsË   s   zenable_gtk.<locals>.get_formatsÚpixbuf_get_formatsc                    s   ˆ | ƒdd … S )Nr   r   ©Úself)Úorig_get_originr   r   Ú
get_originß   ó   zenable_gtk.<locals>.get_originrx   Úscreen_widthÚscreen_heightc                    s   ˆ | ƒ|   ¡  ¡ f S r   )Ú
get_visualÚget_best_depth)Úwindow)Úorig_gdk_window_get_geometryr   r   Úgdk_window_get_geometryè   s   z+enable_gtk.<locals>.gdk_window_get_geometryÚget_geometryÚGtk©r‚   ÚgdkÚpygtk_version)é   éc   r   Úgtk_versionc                 S   ó   t jdtjdd� d S )Nz%set_tool_item_type() is not supportedr†   ©Ú
stacklevel©ÚwarningsÚwarnrC   ÚPyGIDeprecationWarning)Ú
menuactionÚgtyper   r   r   Úset_tool_item_typeû   ó   
ÿz&enable_gtk.<locals>.set_tool_item_typer’   c                       s   e Zd Zd‡ fdd„	ZdS )zenable_gtk.<locals>.Alignmentç        c                    s.   ˆ   | ¡ || j_|| j_|| j_|| j_d S r   )Ú__init__ÚpropsÚxalignÚyalignÚxscaleÚyscale)rv   r—   r˜   r™   rš   ©Úorig_Alignmentr   r   r•     s
   
z&enable_gtk.<locals>.Alignment.__init__N)r”   r”   r”   r”   ©r   Ú
__module__Ú__qualname__r•   r   r›   r   r   Ú	Alignment  ó    r    Tc                    ó   ˆ | ||||ƒ d S r   r   ©rv   ÚchildÚexpandÚfillÚpadding)Úorig_pack_endr   r   Úpack_end  ó   zenable_gtk.<locals>.pack_endr©   c                    r¢   r   r   r£   )Úorig_pack_startr   r   Ú
pack_start  rª   zenable_gtk.<locals>.pack_startr¬   c                    ó   ˆ | ||ƒ d S r   r   ©rv   Úcellr¥   )Úorig_tree_view_column_pack_endr   r   Útree_view_column_pack_end   ry   z-enable_gtk.<locals>.tree_view_column_pack_endc                    r­   r   r   r®   )Ú orig_tree_view_column_pack_startr   r   Útree_view_column_pack_start&  ry   z/enable_gtk.<locals>.tree_view_column_pack_startc                    r­   r   r   r®   )Úorig_cell_pack_endr   r   Úcell_pack_end.  ry   z!enable_gtk.<locals>.cell_pack_endc                    r­   r   r   r®   )Úorig_cell_pack_startr   r   Úcell_pack_start4  ry   z#enable_gtk.<locals>.cell_pack_startc                    s   ‡ fdd„}ˆ| |||ƒ d S )Nc                     ó    | d t kr| d d… } ˆ | Ž S ©Nr   ©r   ©Úargs©Úfuncr   r   Úcallback;  ó   z8enable_gtk.<locals>.set_cell_data_func.<locals>.callbackr   )rv   r¯   r¾   Ú	user_datar¿   )Úorig_set_cell_data_funcr½   r   Úset_cell_data_func:  s   z&enable_gtk.<locals>.set_cell_data_funcrÃ   c                   @   ó   e Zd ZdS )z'enable_gtk.<locals>.GenericCellRendererN©r   rž   rŸ   r   r   r   r   ÚGenericCellRendererD  ó    rÆ   c                    s   ‡ fdd„}ˆ| ||ƒ d S )Nc                     r¸   r¹   rº   r»   r½   r   r   r¿   M  rÀ   z>enable_gtk.<locals>.combo_row_separator_func.<locals>.callbackr   )rv   r¾   rÁ   r¿   )Úorig_combo_row_separator_funcr½   r   Úcombo_row_separator_funcL  s   z,enable_gtk.<locals>.combo_row_separator_funcÚset_row_separator_funcc                       s(   e Zd Z‡ fdd„Zdd„ Zdd„ ZdS )z!enable_gtk.<locals>.ComboBoxEntryc                    s   ˆ j j| fddi|¤Ž d S )NÚ	has_entryT)ÚComboBoxr•   )rv   Úkwdsrƒ   r   r   r•   W  s   z*enable_gtk.<locals>.ComboBoxEntry.__init__c                 S   s   |   |¡ d S r   )Úset_entry_text_column)rv   Útext_columnr   r   r   Úset_text_columnZ  s   z1enable_gtk.<locals>.ComboBoxEntry.set_text_columnc                 S   s   |   ¡ S r   )Úget_entry_text_columnru   r   r   r   Úget_text_column]  ó   z1enable_gtk.<locals>.ComboBoxEntry.get_text_columnN)r   rž   rŸ   r•   rÐ   rÒ   r   rƒ   r   r   ÚComboBoxEntryV  s    rÔ   c                      s   ˆ   ¡ S r   ©rÔ   r   rƒ   r   r   Úcombo_box_entry_newa  rÓ   z'enable_gtk.<locals>.combo_box_entry_newrÖ   c                    s   ˆ j | d�S )N©ÚmodelrÕ   r×   rƒ   r   r   Úcombo_box_entry_new_with_modele  s   z2enable_gtk.<locals>.combo_box_entry_new_with_modelrÙ   c                 S   r‰   )Nz)install_child_property() is not supportedr†   rŠ   rŒ   )Ú	containerr5   Úpspecr   r   r   Úinstall_child_propertyk  r“   z*enable_gtk.<locals>.install_child_propertyrÜ   c                     s*   ˆ   ¡ } ˆ  t¡}|  |¡ |  d¡ | S )Nr   )rÌ   Ú	ListStoreÚstrÚ	set_modelrÎ   )ÚcomborØ   rƒ   r   r   Únew_textp  s
   


zenable_gtk.<locals>.new_textÚcombo_box_new_textc                 S   s   |   ¡ }| |g¡ d S r   )Ú	get_modelr   )rv   ÚtextrØ   r   r   r   Úappend_textx  s   zenable_gtk.<locals>.append_textrå   Úexpander_new_with_mnemonicÚicon_theme_get_defaultÚimage_new_from_pixbufÚimage_new_from_stockÚimage_new_from_animationÚimage_new_from_icon_setÚimage_new_from_fileÚsettings_get_defaultÚwindow_set_default_iconÚclipboard_getÚconnect_groupÚstatus_icon_position_menuÚset_tooltipc                       ó   e Zd Zd‡ fdd„	ZdS )zenable_gtk.<locals>.HScaleNc                    ó   ˆ j | |d� d S ©N)Ú
adjustment©r•   ©rv   rö   ©Úorig_HScaler   r   r•   ”  ó   z#enable_gtk.<locals>.HScale.__init__r   r�   r   rù   r   r   ÚHScale“  r¡   rü   c                       ró   )zenable_gtk.<locals>.VScaleNc                    rô   rõ   r÷   rø   ©Úorig_VScaler   r   r•   ™  rû   z#enable_gtk.<locals>.VScale.__init__r   r�   r   rý   r   r   ÚVScale˜  r¡   rÿ   Ú	stock_addc                 S   s   d S r   r   )r$   r   r   r   Ú<lambda>�  ó    zenable_gtk.<locals>.<lambda>r~   )ÚfgetÚwidget_get_default_directionc                    s   G dd„ dt ƒ}|ˆ | ƒƒS )Nc                   @   s   e Zd Zdd„ ZdS )z5enable_gtk.<locals>.size_request.<locals>.SizeRequestc                 S   s(   |j | _ |j| _t | | j| j g¡ d S r   )ÚheightÚwidthr   r•   )rv   Úreqr   r   r   r•   ¨  s   z>enable_gtk.<locals>.size_request.<locals>.SizeRequest.__init__Nr�   r   r   r   r   ÚSizeRequest§  s    r  r   )Úwidgetr  )Úorig_size_requestr   r   Úsize_request¦  s   z enable_gtk.<locals>.size_requestr  Úhide_allc                       s    e Zd Zdd„ Z‡ fdd„ZdS )zenable_gtk.<locals>.BaseGetterc                 S   s
   || _ d S r   )Úcontext)rv   r  r   r   r   r•   ±  s   
z'enable_gtk.<locals>.BaseGetter.__init__c                    s:   | j  |¡}ˆ jt|jd ƒt|jd ƒt|jd ƒd�S )Niÿÿ  ©ÚredÚgreenÚblue)r  Úget_background_colorÚColorÚintr  r  r  )rv   ÚstateÚcolorrU   r   r   Ú__getitem__´  s
   þz*enable_gtk.<locals>.BaseGetter.__getitem__N)r   rž   rŸ   r•   r  r   rU   r   r   Ú
BaseGetter°  s    r  c                       s   e Zd Z‡ ‡fdd„ZdS )zenable_gtk.<locals>.Stylesc                    s(   |  ¡ }ˆ |ƒ| _ˆjdddd�| _d S )Nr   r  )Úget_style_contextÚbaser  Úblack)rv   r	  r  ©r  rR   r   r   r•   »  s   
z#enable_gtk.<locals>.Styles.__init__Nr�   r   r  r   r   ÚStylesº  r¡   r  c                       s   e Zd Z‡ fdd„ZdS )z#enable_gtk.<locals>.StyleDescriptorc                    s   ˆ |ƒS r   r   )rv   ÚinstanceÚclass_©r  r   r   Ú__get__Á  rÓ   z+enable_gtk.<locals>.StyleDescriptor.__get__N)r   rž   rŸ   r!  r   r   r   r   ÚStyleDescriptorÀ  s    r"  ÚstyleFç      à?c                    s   ˆ | |||||ƒS r   r   )rv   ÚmarkÚwithin_marginÚ	use_alignr—   r˜   )Úorig_text_view_scroll_to_markr   r   Útext_view_scroll_to_markÉ  s   ÿz,enable_gtk.<locals>.text_view_scroll_to_markÚscroll_to_markr   ç      ð¿c                    s0  ˆ   ¡ }ˆ  d¡}|dks|dkr#t|dƒ|_t|dƒ|_|ˆ jjO }|dks+|dkr=t|dƒ|_t|dƒ|_|ˆ jjO }|dksE|dkrWt|dƒ|_	t|dƒ|_
|ˆ jjO }|dks_|	dkrqt|dƒ|_t|	dƒ|_|ˆ jjO }|
dksy|dkr‘|
dks�|dkr…tdƒ‚|
|_||_|ˆ jjO }ˆ| |||ƒS )Nr   r”   zaspect ratios must be positive)ÚGeometryÚWindowHintsÚmaxÚ	min_widthÚ
min_heightÚMIN_SIZEÚ	max_widthÚ
max_heightÚMAX_SIZEÚ
base_widthÚbase_heightÚ	BASE_SIZEÚ	width_incÚ
height_incÚ
RESIZE_INCr)   Ú
min_aspectÚ
max_aspectÚASPECT)rv   Úgeometry_widgetr/  r0  r2  r3  r5  r6  r8  r9  r;  r<  ÚgeometryÚ	geom_mask)rR   Úorig_set_geometry_hintsr   r   Úset_geometry_hintsÓ  s2   
z&enable_gtk.<locals>.set_geometry_hintsrB  Úwindow_list_toplevelsÚwindow_set_default_icon_namec                   @   rÄ   )zenable_gtk.<locals>.UnixPrintNrÅ   r   r   r   r   Ú	UnixPrintÿ  rÇ   rE  ÚgtkunixprintÚignore)Úcategory)Úkeysymszgtk.keysymsrI  r   )ÚgenerictreemodelÚGenericTreeModel)TTr   )T)Fr$  r$  )Nr   r   r   r   r   r   r   r   r+  r+  )[r;   r8   rC   Úrequire_versionrB   rK   r   r6   rN   rP   rR   rS   r   ÚScreenÚget_defaultr\   r]   Únew_with_typeÚnew_from_dataÚnew_from_fileÚnew_from_file_at_scaleÚnew_from_file_at_sizeÚnew_from_inlineÚnew_from_streamÚnew_from_stream_at_scaleÚnew_from_xpm_dataÚget_file_infors   ÚWindowrx   r  r  r�   r‚   ÚMAJOR_VERSIONÚMINOR_VERSIONÚMICRO_VERSIONÚActionÚclassmethodr    ÚBoxr©   r¬   ÚTreeViewColumnÚ
CellLayoutrÃ   r   ÚCellRendererrÌ   rÊ   Ú	ContainerÚExpanderÚnew_with_mnemonicÚ	IconThemeÚImageÚnew_from_pixbufÚnew_from_stockÚnew_from_animationÚnew_from_icon_setÚSettingsÚset_default_iconÚ	Clipboardr   Ú
AccelGroupÚconnectÚ
StatusIconÚposition_menuÚset_tooltip_textrü   rÿ   ÚWidgetÚpropertyÚ
get_windowÚget_default_directionr  ÚhideÚobjectÚTextViewr*  rB  Úlist_toplevelsÚset_default_icon_namer�   Úcatch_warningsÚsimplefilterÚRuntimeWarningÚgi.overridesrI  r   rJ  rK  )#r9   rK   rN   rP   rS   rs   rx   r€   r’   r    r©   r¬   r±   r³   rµ   r·   rÃ   rÆ   rÉ   rÔ   rÖ   rÙ   rÜ   rá   rå   rü   rÿ   r  r"  r)  rB  rE  Ú	unixprintrI  rJ  r   )r  rR   r‚   r  rœ   rú   rþ   r´   r¶   rÈ   r   rr   rw   r¨   r«   rÂ   rA  r
  r(  r°   r²   r   Ú
enable_gtk™   s4  






þ	
ÿý&

þ
r‚  c                  C   ó2   t dƒrd S t dd¡ ddlm}  td| ƒ d S )NÚvteÚVtez0.0r   ©r…  )r;   rC   rL  rB   r…  r   r†  r   r   r   Ú
enable_vte  ó
   r‡  c                  C   s>   t dƒrd S t dd¡ ddlm}  td| ƒ t| ddƒ d S )NÚpopplerÚPopplerz0.18r   ©rŠ  Úpypoppler_version)r   r   r   )r;   rC   rL  rB   rŠ  r   r   r‹  r   r   r   Úenable_poppler  s   
r�  rL   c                 C   sF   t d| ƒrd S t d| ¡ ddlm} td|ƒ t|jd|jjƒ d S )NÚwebkitÚWebKitr   )r�  Úget_web_inspector)	r;   rC   rL  rB   r�  r   r   ÚWebViewÚget_inspector)r9   r�  r   r   r   Úenable_webkit%  s   

r“  c                  C   rƒ  )NÚgudevÚGUdevrL   r   ©r•  )r;   rC   rL  rB   r•  r   r–  r   r   r   Úenable_gudev0  rˆ  r—  c                  C   sn  t dƒrd S t dd¡ ddlm}  td| ƒ t| ƒ t| d| jj	ƒ t| d| j
jƒ t| d| jjƒ t| d	| jjƒ t| d
dd„ ƒ t| ddd„ ƒ ddlm} td|ƒ t|ƒ ddlm} td|ƒ t|ƒ ddlm} td|ƒ t|ƒ ddlm} td|ƒ t|ƒ t| d|jƒ t| d|jƒ ddlm} td|ƒ t|| d� ddlm} td|ƒ t|ƒ d S )NÚgstÚGstz0.10r   )r™  Úregistry_get_defaultÚelement_registerÚelement_factory_makeÚcaps_new_anyÚget_pygst_versionc                   S   ó   dS )N)r   é
   é   r   r   r   r   r   r  F  r  zenable_gst.<locals>.<lambda>Úget_gst_versionc                   S   rŸ  )N)r   r   é(   r   r   r   r   r   r  G  r  )ÚGstInterfaceszgst.interfaces)ÚGstAudioz	gst.audio)ÚGstVideoz	gst.video)ÚGstBasezgst.baseÚBaseTransformÚBaseSink)ÚGstControllerzgst.controllerrV   )Ú
GstPbutilszgst.pbutils)r;   rC   rL  rB   r™  r   r6   r   ÚRegistryrN  ÚElementÚregisterÚElementFactoryÚmakeÚCapsÚnew_anyr¤  r¥  r¦  r§  r¨  r©  rª  r«  )r™  r¤  r¥  r¦  r§  rª  r«  r   r   r   Ú
enable_gst9  s@   






r³  c                  C   s„   t dƒrd S t dd¡ ddlm}  td| ƒ t| dd� t| d| jƒ t| d	| j	ƒ t| d
| j
ƒ t| d| jƒ t| d| jƒ d S )NÚ	goocanvasÚ	GooCanvasrT   r   ©rµ  ÚGOO_CANVAS_)r0   Ú
ItemSimpleÚItemrg  ÚGroupÚRect)r;   rC   rL  rB   rµ  r   r6   r   ÚCanvasItemSimpleÚ
CanvasItemÚCanvasImageÚCanvasGroupÚ
CanvasRectr¶  r   r   r   Úenable_goocanvase  s   
rÁ  )Nr   r   )rI   )rL   )Ú__doc__r   r�   Úcollectionsr   rC   rB   r   r
   r   ry  r   r7   r   r   r6   r;   rD   rH   r‚  r‡  r�  r“  r—  r³  rÁ  r   r   r   r   Ú<module>   s2   

!
  z	
	,