
    fGQ                         S r SSKrSSKrSSKJr  SSKrSSKJr  / r/ r	\
" 5       r0 rS rS rSS jrSS jrS	 rS
 rSS jrS rS rSS jrS rS rS rg)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                 j    [        X[        5      n[        XU5        [        R	                  XU45        g N)getattr_unsetsetattr_patchesappend)objname	new_value	old_values       9/usr/lib/python3/dist-packages/pygtkcompat/pygtkcompat.py_patchr   1   s)    6*ICy!OOS	*+    c                     [         R                  R                  U [        5      nU[         R                  U '   [        R                  X45        g r   )sysmodulesgetr
   _module_patchesr   )r   r   r   s      r   _patch_moduler   7   s5    f-I!CKKD,-r   c                 F   Uc  U nUR                   R                  SS5      S   R                  5       n[        U 5       GH!  n [	        XS 5      n [        U[        R                  5      (       a{  UR                  R                  5        H]  u  pgUR                  nUR                  US-   S5      nU(       a$  UR                  U5      (       a  U[        U5      S  n[        XU5        M_      [        U[        R                   5      (       aU  UR"                  R                  5        H4  u  pi U	R$                  S   R                  US-   S5      n[        XU	5        M6     GM!  GM$     g !    GM-  = f! [         a     GM>  f = f! [&         a     Mi  f = f! [         a     GMa  f = f)N.   _ )__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   flags
             r   _install_enumsr:   =   sv   |mm""3*1-335GF	&-C		#w}}--#&#6#6#<#<#>KE??D<<#r:D!7!7#CJK04t, $?	#w~~..#&#7#7#=#=#?KE!#//3;;GcM2N
 4t, $@ /! 	  		 & ! !!
  		sU   E%BE.+>F*"F F%E+.
E=<E= 
F
FFF
F F c                 n    U [         ;   a"  [         U    nX!:w  a  [        U < SU< S35      egU[         U '   g)z*Returns True in case it is already enabledz) already enabled with different version ()TF)_enabled_registry
ValueError)r   versionenabled_versions      r   _check_enabledrA   ^   sG       +D1%/+, , ")$r   c                      [         R                  " S[        R                  5        [	        S5      (       a  g SSKJn   [        SU 5        SSKJn  [        SU5        SSKJ	n  [        S	U5        SS
KJ
n  [        SU5        g )NzUpygtkcompat is deprecated, see https://pygobject.gnome.org for migration instructionsr   r   )GLibglibr   gobject)_propertyhelperzgobject.propertyhelper)Giogio)warningswarngiPyGIDeprecationWarningrA   gi.repositoryrC   r   r   rF   rG   )rC   r   rF   rG   s       r   enablerN   m   sl    MMikm  lE  lE  Fb #&$ &)W%"*O< "%r   c                     [         R                  5         [        [        5       HH  u  pnU[        L a  [        X5        M  [        X5        [        X[        5      ULd  M<  [        XU5        MJ     [        SS2	 [        [        5       H4  u  pU[        L a  [        R                  U	 M!  U[        R                  U'   M6     [        SS2	 g)z^Reverse all effects of the enable_xxx() calls except for
require_version() calls and imports.
N)r=   clearreversedr   r
   delattrr	   r   r   r   r   )r   r   r   s      r   _disable_allrS      s    
  ( 29C Cs&):9- !3 	#O4D! )CKK	 5
 	r   c                   ^#^$^%^&^'^(^)^*^+^,^-^.^/^0^1^2^3^4^5^6^7 [        SU 5      (       a  g U S:X  a  [        S5      e[        R                  " SS5        SSKJn  [        SU5        [        U5        [        R                  " S	S5        SS
KJn  [        SU5        [        U5        [        R                  " SS5        SSKJ	n  [        SU5        [        R                  " SU 5        [        R                  " SS5        SSKJ
m$  SSKJn  [        ST$5        [        T$5        [        UT$S9  [        T$SS5        [        T$SS5        [        T$ST$R                  R                  5        [        T$SUR                  5        [        T$SUR                   R"                  5        [        T$SUR                  R$                  5        [        T$SUR                  R&                  5        [        T$SUR                  R(                  5        [        T$S UR                  R*                  5        [        T$S!UR                  R,                  5        [        T$S"UR                  R.                  5        [        T$S#UR                  R0                  5        [        T$S$UR                  R2                  5        [        T$S%UR                  R4                  5        UR                  R6                  m.U.4S& jn[        T$S'U5        T$R8                  R:                  m/U/4S( jn[        T$R8                  S)U5        [        T$S*T$R                  R<                  5        [        T$S+T$R                  R>                  5        T$R8                  R@                  m-U-4S, jn[        T$R8                  S-U5        [        R                  " S.U 5        SS/KJ!m%  [        ST%5        [        T%S0T$5        [        T%S1S25        [        T%S3T%RD                  T%RF                  T%RH                  45        [        T%5        S4 n[        T%RJ                  S5[M        U5      5        T%RN                  m' " U'4S6 jS7T'5      n	[        T%S7U	5        T%RP                  RR                  m0SU04S8 jjn
[        T%RP                  S9U
5        T%RP                  RT                  m1SU14S: jjn[        T%RP                  S;U5        T%RV                  RR                  m6SU64S< jjn[        T%RV                  S9U5        T%RV                  RT                  m7SU74S= jjn[        T%RV                  S;U5        T%RX                  RR                  m*SU*4S> jjn[        T%RX                  S9U5        T%RX                  RT                  m+SU+4S? jjn[        T%RX                  S;U5        T%RX                  RZ                  m2[\        4U24S@ jjn[        T%RX                  SAU5         " SB SCT%R^                  5      n[        T%SCU5        T%R`                  Rb                  m,[\        4U,4SD jjn[        T%R`                  SEU5         " U%4SF jSGT%R`                  5      n[        T%SGU5        U%4SH jn[        T%SIU5        U%4SJ jn[        T%SKU5        SL n[        T%Rd                  SM[M        U5      5        U%4SN jn[        T%SOU5        SP n[        T%R`                  SQU5        [        T%SRT%Rf                  Rh                  5        [        T%SST%Rj                  R                  5        [        T%STT%Rl                  Rn                  5        [        T%SUT%Rl                  Rp                  5        [        T%SVT%Rl                  Rr                  5        [        T%SWT%Rl                  Rt                  5        [        T%SXT%Rl                  R&                  5        [        T%SYT%Rv                  R                  5        [        T%SZT%R8                  Rx                  5        [        T%S[T%Rz                  R|                  5        [        T%R~                  S\T%R~                  R                  5        [        T%S]T%R                  R                  5        [        T%R                  S^T%R                  R                  5        T%R                  m(T%R                  m) " U(4S_ jS`T(5      n[        T%S`U5         " U)4Sa jSbT)5      n[        T%SbU5        [        T%ScSd 5        [        T%R                  Se[        T%R                  R                  Sf95        [        T%SgT%R                  R                  5        T%R                  R                  m4U44Sh jn[        T%R                  SiU5        [        T%R                  SjT%R                  R                  5         " U$4Sk jSl[        5      m# " U#U$4Sm jSn[        5      m& " U&4So jSp[        5      n[        T%R                  SqU" 5       5        T%R                  R                  m5 SU54Sr jjn[        T%R                  SsU5        T%R8                  R                  m3    SU$U34St jjn[        T%R8                  SuU5        [        T%SvT%R8                  R                  5        [        T%SwT%R8                  R                  5         " Sx Sy[        5      nU" 5       n [        SzU 5        [        R                  " 5          [        R                  " S{[        S|9  SS}KVJWn!  S S S 5        [        S~W!5        [        T%SU!5        SSKXJYn"  [        T%SU"R                  5        g ! , (       d  f       NE= f)Ngtkz4.0zversion 4.0 not supportedAtk1.0r   )rV   atkPango)rY   pango
PangoCairo)r[   
pangocairoGdk	GdkPixbuf2.0r]   )r^   zgtk.gdkr3   _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                  `   > T" 5       n / nS nU  H  nUR                  U" U5      5        M     U$ )Nc                     0 nU R                  5       US'   U R                  5       US'   U R                  5       US'   U R                  5       US'   U$ )Ndescriptionr   
mime_types
extensions)get_descriptionget_nameget_mime_typesget_extensions)format_results     r   	make_dict2enable_gtk.<locals>.get_formats.<locals>.make_dict   sW    F$+$;$;$=F=!$--/F6N#*#9#9#;F< #*#9#9#;F< Mr   )r   )formatsr|   r}   r{   orig_get_formatss       r   get_formatsenable_gtk.<locals>.get_formats   s7    "$	 GMM)G,- r   pixbuf_get_formatsc                    > T" U 5      SS  $ )Nr    )selforig_get_origins    r   
get_originenable_gtk.<locals>.get_origin   s    t$QR((r   r   screen_widthscreen_heightc                 T   > T" U 5      U R                  5       R                  5       4-   $ r   )
get_visualget_best_depth)windoworig_gdk_window_get_geometrys    r   gdk_window_get_geometry+enable_gtk.<locals>.gdk_window_get_geometry   s(    +F3v7H7H7J7Y7Y7[6]]]r   get_geometryGtkr   gdkpygtk_version)   c   r   gtk_versionc                 L    [         R                  " S[        R                  SS9  g )Nz%set_tool_item_type() is not supportedr   
stacklevelrI   rJ   rK   rL   )
menuactiongtypes     r   set_tool_item_type&enable_gtk.<locals>.set_tool_item_type   s    =//A	?r   r   c                   &   > \ rS rSrSU 4S jjrSrg)enable_gtk.<locals>.Alignmenti  c                    > TR                  U 5        XR                  l        X R                  l        X0R                  l        X@R                  l        g r   )__init__propsxalignyalignxscaleyscale)r   r   r   r   r   orig_Alignments        r   r   &enable_gtk.<locals>.Alignment.__init__  s9    ##D) &JJ &JJ &JJ &JJr   r   N)        r   r   r   r!   
__module____qualname____firstlineno__r   __static_attributes__)r   s   r   	Alignmentr     s    	' 	'r   r   c                    > T" XX#U5        g r   r   )r   childexpandfillpaddingorig_pack_ends        r   pack_endenable_gtk.<locals>.pack_end  s    d69r   r   c                    > T" XX#U5        g r   r   )r   r   r   r   r   orig_pack_starts        r   
pack_startenable_gtk.<locals>.pack_start  s    V7;r   r   c                    > T" XU5        g r   r   )r   cellr   orig_tree_view_column_pack_ends      r   tree_view_column_pack_end-enable_gtk.<locals>.tree_view_column_pack_end"  s    &t6:r   c                    > T" XU5        g r   r   )r   r   r    orig_tree_view_column_pack_starts      r   tree_view_column_pack_start/enable_gtk.<locals>.tree_view_column_pack_start(  s    (V<r   c                    > T" XU5        g r   r   )r   r   r   orig_cell_pack_ends      r   cell_pack_end!enable_gtk.<locals>.cell_pack_end0  s    4v.r   c                    > T" XU5        g r   r   )r   r   r   orig_cell_pack_starts      r   cell_pack_start#enable_gtk.<locals>.cell_pack_start6  s    T0r   c                 &   >^ U4S jnT" XXC5        g )Nc                  2   > U S   [         :X  a  U S S n T" U 6 $ Nr    r
   argsfuncs    r   callback8enable_gtk.<locals>.set_cell_data_func.<locals>.callback=  $    Bx6!CRy;r   r   )r   r   r   	user_datar   orig_set_cell_data_funcs     `  r   set_cell_data_func&enable_gtk.<locals>.set_cell_data_func<  s    	 	 H@r   r   c                       \ rS rSrSrg)'enable_gtk.<locals>.GenericCellRendereriF  r   Nr!   r   r   r   r   r   r   r   GenericCellRendererr   F      r   r   c                 &   >^ U4S jnT" XU5        g )Nc                  2   > U S   [         :X  a  U S S n T" U 6 $ r   r   r   s    r   r   >enable_gtk.<locals>.combo_row_separator_func.<locals>.callbackO  r   r   r   )r   r   r   r   orig_combo_row_separator_funcs    `  r   combo_row_separator_func,enable_gtk.<locals>.combo_row_separator_funcN  s    	 	&di@r   set_row_separator_funcc                   .   > \ rS rSrU 4S jrS rS rSrg)!enable_gtk.<locals>.ComboBoxEntryiX  c                 D   > TR                   R                  " U 4SS0UD6  g )N	has_entryT)ComboBoxr   )r   kwdsr   s     r   r   *enable_gtk.<locals>.ComboBoxEntry.__init__Y  s    LL!!$?$?$?r   c                 &    U R                  U5        g r   )set_entry_text_column)r   text_columns     r   set_text_column1enable_gtk.<locals>.ComboBoxEntry.set_text_column\  s    &&{3r   c                 "    U R                  5       $ r   )get_entry_text_column)r   s    r   get_text_column1enable_gtk.<locals>.ComboBoxEntry.get_text_column_  s    --//r   r   N)r!   r   r   r   r   r   r   r   r   s   r   ComboBoxEntryr   X  s    	@	4	0r   r   c                  $   > T R                  5       $ r   r   r   s   r   combo_box_entry_new'enable_gtk.<locals>.combo_box_entry_newc  s      ""r   r   c                 "   > TR                  U S9$ )N)modelr   )r  r   s    r   combo_box_entry_new_with_model2enable_gtk.<locals>.combo_box_entry_new_with_modelg  s      u --r   r  c                 L    [         R                  " S[        R                  SS9  g )Nz)install_child_property() is not supportedr   r   r   )	containerr9   pspecs      r   install_child_property*enable_gtk.<locals>.install_child_propertym  s    A//A	?r   r  c                     > TR                  5       n TR                  [        5      nU R                  U5        U R	                  S5        U $ )Nr   )r   	ListStorestr	set_modelr   )combor  r   s     r   new_textenable_gtk.<locals>.new_textr  s;    c"##A&r   combo_box_new_textc                 H    U R                  5       nUR                  U/5        g r   )	get_modelr   )r   textr  s      r   append_textenable_gtk.<locals>.append_textz  s     dVr   r  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                   &   > \ rS rSrSU 4S jjrSrg)enable_gtk.<locals>.HScalei  Nc                 $   > TR                  XS9  g N)
adjustmentr   )r   r(  orig_HScales     r   r   #enable_gtk.<locals>.HScale.__init__         =r   r   r   r   )r*  s   r   HScaler%        	> 	>r   r-  c                   &   > \ rS rSrSU 4S jjrSrg)enable_gtk.<locals>.VScalei  Nc                 $   > TR                  XS9  g r'  r)  )r   r(  orig_VScales     r   r   #enable_gtk.<locals>.VScale.__init__  r,  r   r   r   r   )r2  s   r   VScaler0    r.  r   r4  	stock_addc                     g r   r   )r(   s    r   <lambda>enable_gtk.<locals>.<lambda>  s    4r   r   )fgetwidget_get_default_directionc                 >   >  " S S[         5      nU" T" U 5      5      $ )Nc                       \ rS rSrS rSrg)5enable_gtk.<locals>.size_request.<locals>.SizeRequesti  c                     UR                   U l         UR                  U l        [        R                  " X R                  U R                   /5        g r   )heightwidthr   r   )r   reqs     r   r   >enable_gtk.<locals>.size_request.<locals>.SizeRequest.__init__  s3    !jj YY
!!$T[[(ABr   )r?  r@  Nr   r   r   r   SizeRequestr=    s    Cr   rC  r   )widgetrC  orig_size_requests     r   size_request enable_gtk.<locals>.size_request  s$    	C( 	C
 ,V455r   rF  hide_allc                   (   > \ rS rSrS rU 4S jrSrg)enable_gtk.<locals>.BaseGetteri  c                     Xl         g r   context)r   rM  s     r   r   'enable_gtk.<locals>.BaseGetter.__init__  s    "Lr   c                    > U R                   R                  U5      nTR                  [        UR                  S-  5      [        UR
                  S-  5      [        UR                  S-  5      S9$ )Ni  redgreenblue)rM  get_background_colorColorintrQ  rR  rS  )r   statecolorr]   s      r   __getitem__*enable_gtk.<locals>.BaseGetter.__getitem__  s_    LL55e<E99UYY%6!7#&u{{U':#;"%ejj5&8"9  ; ;r   rL  N)r!   r   r   r   r   rY  r   r`   s   r   
BaseGetterrJ    s    	#	; 	;r   r[  c                   $   > \ rS rSrU U4S jrSrg)enable_gtk.<locals>.Stylesi  c                 l   > UR                  5       nT" U5      U l        TR                  SSSS9U l        g )Nr   rP  )get_style_contextbaserU  black)r   rD  rM  r[  r]   s      r   r   #enable_gtk.<locals>.Styles.__init__  s3    ..0G"7+DIq:DJr   )r`  ra  Nr   )r[  r]   s   r   Stylesr]    s    	; 	;r   rc  c                   "   > \ rS rSrU 4S jrSrg)#enable_gtk.<locals>.StyleDescriptori  c                    > T" U5      $ r   r   )r   instanceclass_rc  s      r   __get__+enable_gtk.<locals>.StyleDescriptor.__get__  s    (##r   r   N)r!   r   r   r   ri  r   )rc  s   r   StyleDescriptorre    s    	$ 	$r   rk  stylec                    > T" XUX4U5      $ r   r   )r   markwithin_margin	use_alignr   r   orig_text_view_scroll_to_marks         r   text_view_scroll_to_mark,enable_gtk.<locals>.text_view_scroll_to_mark  s    ,T-6H 	Hr   scroll_to_markc                    > TR                  5       nTR                  S5      nUS:  d  US:  a;  [        US5      Ul        [        US5      Ul        UTR                  R
                  -  nUS:  d  US:  a;  [        US5      Ul        [        US5      Ul        UTR                  R                  -  nUS:  d  US:  a;  [        US5      Ul	        [        US5      Ul
        UTR                  R                  -  nUS:  d  U	S:  a;  [        US5      Ul        [        U	S5      Ul        UTR                  R                  -  nU
S:  d  US:  a<  U
S::  d  US::  a  [        S5      eXl        Xl        UTR                  R$                  -  nT" XX5      $ )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)r   geometry_widgetry  rz  r|  r}  r  r  r  r  r  r  geometry	geom_maskr]   orig_set_geometry_hintss                 r   set_geometry_hints&enable_gtk.<locals>.set_geometry_hints  sr   
 <<>OOA&	>Z1_!$Y!2H"%j!"4H111I>Z1_!$Y!2H"%j!"4H111I?kQ."%j!"4H#&{A#6H 222I>Z1_!$Y!2H"%j!"4H333I
c 1S J#$5 @AA",",///I&thRRr   r  window_list_toplevelswindow_set_default_icon_namec                       \ rS rSrSrg)enable_gtk.<locals>.UnixPrinti  r   Nr   r   r   r   	UnixPrintr    r   r   r  gtkunixprintignore)category)keysymszgtk.keysymsr  r   )generictreemodelGenericTreeModel)TTr   )T)F      ?r  )Nr    r    r    r    r    r    r    r          r  )[rA   r>   rK   require_versionrM   rV   r   r:   rY   r[   r]   r^   r   Screenget_defaultrg   rh   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_infor   Windowr   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-  r4  Widgetproperty
get_windowget_default_directionrF  hideobjectTextViewrt  r  list_toplevelsset_default_icon_namerI   catch_warningssimplefilterRuntimeWarninggi.overridesr  r   r  r  )8r?   rV   rY   r[   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r-  r4  rF  rk  rr  r  r  	unixprintr  r  r[  r]   r   rc  r   r*  r2  r   r   r   r   r   r   r   r   r   r  rE  rq  r   r   s8                                      @@@@@@@@@@@@@@@@@@@@@r   
enable_gtkr     s   eW%%%455 ue$!%3 w&#'5!5 |U+(,
+ ug&{E*!')S!393'
3 !$
3"
3$cjj&<&<=
3)**+
3	 6 6 D DE
3&	(8(8(F(FG
3&	(8(8(F(FG
3/1A1A1X1XY
3.	0@0@0V0VW
3()*:*:*J*JK
3()*:*:*J*JK
3193C3C3\3\]
3*I,<,<,N,NO
3&	(8(8(F(FG ''33  3$k2jj++O)
3::|Z0
3

 0 01
3!2!23#&::#:#: ^
3::~'>? ug&!%
3s
3,
3 1 1 # 1 1 # 1 1 3 4 3? 3::+[9K-LM ]]N'N ' 3Y' GG$$M:
377J)gg((O<
377L*- &)%7%7%@%@";
3z+DE'*'9'9'D'D$=
3|-HI 00/
3>>:}5>>441
3>><9!nn??7= A 3>>/1CDc.. 
3%':; %(LL$G$G!7= A 3<<13KL0 0 3/#
3%':;.
302PQ? 3==2K@V4WX 3$h/ 3<<4
3,cll.L.LM
3(#--*C*CD
3')B)BC
3&		(@(@A
3*CII,H,HI
3)399+F+FG
3%syy'>'>?
3&(@(@A
3)3::+F+FG
3!2!23 3>>?CNN,B,BC 3+S^^-I-IJ
3>>=#..*I*IJ **K**K> > 3&!> > 3&!
3/0 3::xszz/D/D!EF
3.

0P0PQ

//6 3::~|4
3::z3::??3;V ;; ; ;$& $ 3::w 12 %(LL$?$?! FIH 3<<)+CD "jj;;15QSSU7;$S $SL 3::+-?@
3')B)BC
3.

0P0PQF I.), 
	 	 	"h@( 
# -)
3	7#"
3"$4$E$EF 
#	"s    l00
l>c                  x    [        S5      (       a  g [        R                  " SS5        SSKJn   [        SU 5        g )NvteVtez0.0r   r  )rA   rK   r  rM   r  r   r  s    r   
enable_vter    s-    eue$!%r   c                      [        S5      (       a  g [        R                  " SS5        SSKJn   [        SU 5        [        U SS5        g )NpopplerPopplerz0.18r   r  pypoppler_version)r   r   r   )rA   rK   r  rM   r  r   r   r  s    r   enable_popplerr    s:    i  y&)%)W%
7'3r   c                     [        SU 5      (       a  g [        R                  " SU 5        SSKJn  [        SU5        [        UR                  SUR                  R                  5        g )NwebkitWebKitr   )r  get_web_inspector)	rA   rK   r  rM   r  r   r   WebViewget_inspector)r?   r  s     r   enable_webkitr  '  sJ    h((x)$(F#
6>>.0L0LMr   c                  x    [        S5      (       a  g [        R                  " SS5        SSKJn   [        SU 5        g )NgudevGUdevrW   r   r  )rA   rK   r  rM   r  r   r  s    r   enable_gudevr  2  s-    gw&#'5!r   c                     [        S5      (       a  g [        R                  " SS5        SSKJn   [        SU 5        [        U 5        [        U SU R                  R                  5        [        U SU R                  R                  5        [        U SU R                  R                  5        [        U S	U R                  R                  5        [        U S
S 5        [        U SS 5        SSKJn  [        SU5        [        U5        SSKJn  [        SU5        [        U5        SSKJn  [        SU5        [        U5        SSKJn  [        SU5        [        U5        [        U SUR(                  5        [        U SUR*                  5        SSKJn  [        SU5        [        XPS9  SSKJn  [        SU5        [        U5        g )NgstGstz0.10r   )r  registry_get_defaultelement_registerelement_factory_makecaps_new_anyget_pygst_versionc                      g)N)r   
      r   r   r   r   r7  enable_gst.<locals>.<lambda>H  s    [r   get_gst_versionc                      g)N)r   r  (   r   r   r   r   r7  r  I  s    ;r   )GstInterfaceszgst.interfaces)GstAudioz	gst.audio)GstVideoz	gst.video)GstBasezgst.baseBaseTransformBaseSink)GstControllerzgst.controllerra   )
GstPbutilszgst.pbutils)rA   rK   r  rM   r  r   r:   r   Registryr  ElementregisterElementFactorymakeCapsnew_anyr  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  s          r   
enable_gstr  ;  sR   euf%!%3
3&(@(@A
3"CKK$8$89
3&(:(:(?(?@
3 0 01
3#%89
3!#67+"M2=!&+x(8&+x(8%*g&7
3!6!67
3
G,,-+"M2=+(-,:r   c                  r   [        S5      (       a  g [        R                  " SS5        SSKJn   [        SU 5        [        U SS9  [        U SU R                  5        [        U S	U R                  5        [        U S
U R                  5        [        U SU R                  5        [        U SU R                  5        g )N	goocanvas	GooCanvasr_   r   r
  GOO_CANVAS_)r4   
ItemSimpleItemr  GroupRect)rA   rK   r  rM   r
  r   r:   r   CanvasItemSimple
CanvasItemCanvasImageCanvasGroup
CanvasRectr  s    r   enable_goocanvasr  g  s    k""{E*'+y)9M2
9lI$>$>?
9fi223
9gy445
9gy445
9fi223r   )Nr   r   )z3.0)rW   )__doc__r   rI   collectionsr   rK   rM   r   r   r   r  r
   r=   r   r   r:   rA   rN   rS   r  r  r  r  r  r  r  r   r   r   <module>r     s{   *     	 ! 	 ,.B*2uGp4N")X4r   