
    3Gb                     d   d dl Z d dlZd dlmZ ddlmZmZ ddlmZm	Z	 ddl
mZmZmZmZ ddlmZ d dlmZ  ed	          Zej        d
k    Zej        dk    Zej        dk    Zg ZeZe                    d           e	Z	e                    d           erdZ ej        ee            G d de          Ze                    d           eserd Ze                    d           d Z G d de           Z! G d dej"                  Z" ee"          Z"e                    d           eser5 G d dej#        e"          Z# ee#          Z#e                    d           ne Z# G d dej$                  Z$ ee$          Z$e                    d           eser G d dej%                  Z% ee%          Z%e                    d            G d d ej&                  Z& ee&          Z&e                    d             G d! d"ej'                  Z' ee'          Z'e                    d"            G d# d$ej(                  Z( ee(          Z(e                    d$            G d% d&ej)        e#          Z) ee)          Z)e                    d&           eser3 G d' d(ej*                  Z* ee*          Z*e                    d(           eser3 G d) d*ej+                  Z+ ee+          Z+e                    d*           eser3 G d+ d,ej,                  Z, ee,          Z,e                    d,           d- Z- G d. d/ej.                  Z. ee.          Z.e                    d/           erej/        j0        Z1n eej/        j0        d0ed12          Z1 G d3 d4ej/                  Z/ ee/          Z/e                    d4            G d5 d6ej2        e#          Z2 ee2          Z2e                    d6           eser4 G d7 d8ej3        e2          Z3 ee3          Z3e                    d8           eserf G d9 d:ej4                  Z4 ee4          Z4e                    d:            G d; d<ej5                  Z5 ee5          Z5e                    d<           eser3 G d= d>ej6                  Z6 ee6          Z6e                    d>           eser3 G d? d@ej7                  Z7 ee7          Z7e                    d@            G dA dBej8                  Z8 ee8          Z8e                    dB           eser3 G dC dDej9                  Z9 ee9          Z9e                    dD            G dE dFej:                  Z: ee:          Z:e                    dF            G dG dHej;                  Z; ee;          Z;e                    dH            G dI dJej<                  Z< ee<          Z<e                    dJ            G dK dLej=                  Z= ee=          Z=e                    dL            G dM dNej>                  Z> ee>          Z>e                    dN            G dO dPej?                  Z? ee?          Z?e                    dP           eser3 G dQ dRej@                  Z@ ee@          Z@e                    dR            G dS dTejA        e>e?          ZA eeA          ZAe                    dT            G dU dVe           ZBe                    dV            G dW dXe           ZCe                    dX            G dY dZejD                  ZD eeD          ZDe                    dZ            G d[ d\ejE        e>e?          ZE eeE          ZEe                    d\            G d] d^ejF        e#          ZF eeF          ZFe                    d^            G d_ d`ejG                  ZG eeG          ZGe                    d`            G da dbejH                  ZH eeH          ZHe                    db           eser G dc ddejI        e#          ZI eeI          ZIe                    dd            G de dfejJ                  ZJ eeJ          ZJe                    df            G dg dhejK                  ZK eeK          ZKe                    dh            G di djejL                  ZL eeL          ZLe                    dj           eserg G dk dlejM        e#          ZM eeM          ZMe                    dl            G dm dnejN                  ZN eeN          ZNe                    dn           eserf G do dpejO                  ZO eeO          ZOe                    dp            G dq drejP                  ZP eeP          ZPe                    dr           eser3 G ds dtejQ                  ZQ eeQ          ZQe                    dt           eser G du dvejR                  ZR eeR          ZRe                    dv            G dw dxejS                  ZS eeS          ZSe                    dx            G dy dzejT                  ZT eeT          ZTe                    dz            G d{ d|ejU                  ZU eeU          ZUe                    d|           er3 G d} d~ejV                  ZV eeV          ZVe                    d~           er3 G d dejW                  ZW eeW          ZWe                    d           eser@ejX        ZY eejX                  d             ZXejZ        Z[ eejZ                  d             ZZeser% eej\                  Z\e                    d           ere]                                Z^dS e]                    e j_                  \  Z^Z_ e`e_          e __        dS )    N)GObject   )wakeup_on_signalregister_sigint_fallback)Template_extract_handler_and_args)overridestrip_boolean_resultdeprecated_initwrap_list_store_sort_func)get_introspection_module)PyGIDeprecationWarningGtkz2.0z3.0z4.0r   r   aB  You have imported the Gtk 2.0 module.  Because Gtk 2.0 was not designed for use with introspection some of the interfaces and API will fail.  As such this is not supported by the pygobject development team and we encourage you to port your app to Gtk 3 or greater. PyGTK is the recomended python module to use with Gtk 2.0c                       e Zd ZdS )PyGTKDeprecationWarningN)__name__
__module____qualname__     2/usr/lib/python3/dist-packages/gi/overrides/Gtk.pyr   r   <   s        Dr   r   c                     g }| D ]D}t          |t          j                  st          j        j        | }|                    |           E|S )zCreate a list of TargetEntry items from a list of tuples in the form (target, flags, info)

        The list can also contain existing TargetEntry items in which case the existing entry
        is re-used in the return list.
        )
isinstancer   TargetEntrynewappend)targetstarget_entriesentrys      r   _construct_target_listr    D   sX      	) 	)EeS_55 4+U3!!%((((r   r    c                     t          ||          \  }}|t          j        j        z  }	|&|	r |j        |||g|R   d S  |j        |||g|R   d S |	r |j        ||g|R   d S  |j        ||g|R   d S N)r   r   ConnectFlagsAFTERconnect_object_afterconnect_objectconnect_afterconnect)
buildergobjsignal_namehandler_nameconnect_objflags
obj_or_maphandlerargsafters
             r   _builder_connect_callbackr3   T   s    -j,GGMGTG(..E 	J%D%k7KO$OOOOOODWkIDIIIIII 	6D{G;d;;;;;;DLg5555555r   c                        e Zd Zd Zd Zd ZdS )_FreezeNotifyManagerc                     || _         d S r"   )obj)selfr7   s     r   __init__z_FreezeNotifyManager.__init__e   s    r   c                     d S r"   r   r8   s    r   	__enter__z_FreezeNotifyManager.__enter__h   s    r   c                 8    | j                                          d S r"   )r7   thaw_child_notify)r8   exc_type	exc_value	tracebacks       r   __exit__z_FreezeNotifyManager.__exit__k   s    ""$$$$$r   N)r   r   r   r9   r<   rB   r   r   r   r5   r5   d   sA            % % % % %r   r5   c                        e Zd Z eej        j                  Zerd Zd Z	e
ser fdZe
ser fdZe
ser fdZe
serddZ xZS  xZS )	Widgetc                 $    |t          |           v S r"   )listr8   childs     r   __contains__zWidget.__contains__t   s    DJJ&&r   c              #   n   K   |                                  }|r|V  |                                }|d S d S r"   )get_first_childget_next_siblingrG   s     r   __iter__zWidget.__iter__w   sW      ((**E 1..00  1 1 1 1 1r   c                 p    t          t          |                                            t          |           S r"   )superrD   freeze_child_notifyr5   )r8   	__class__s    r   rP   zWidget.freeze_child_notify~   s-    &$33555'---r   c                     |Ft          |t          j                  s,t          j                            t	          |                    }t          t          |                               |           d S r"   )r   r   
TargetListr   r    rO   rD   drag_dest_set_target_listr8   target_listrQ   s     r   rT   z Widget.drag_dest_set_target_list   s\    '*[#.2Y2Y'!n001G1T1TUU&$99+FFFFFr   c                     |Ft          |t          j                  s,t          j                            t	          |                    }t          t          |                               |           d S r"   )r   r   rS   r   r    rO   rD   drag_source_set_target_listrU   s     r   rX   z"Widget.drag_source_set_target_list   s\    '*[#.2Y2Y'!n001G1T1TUU&$;;KHHHHHr   Nc                     |F|                      |          }|t          d| d|d          t          j        |j                  }t
          j                            | ||           |                                S )NClass "z#" does not contain style property "")	find_style_property
ValueErrorr   Value
value_typer   rD   style_get_property	get_value)r8   property_namevalueprops       r   r`   zWidget.style_get_property   s    }//>><$*&*ddMMM&; < < <do66J))$uEEE??$$$r   r"   )r   r   r   r
   r   rD   translate_coordinatesGTK4rI   rM   GTK2GTK3rP   rT   rX   r`   __classcell__rQ   s   @r   rD   rD   o   s        001QRR 1	' 	' 	'	1 	1 	1  .t .	. 	. 	. 	. 	.  Gt G	G 	G 	G 	G 	G
  It I	I 	I 	I 	I 	I
  
%t 
%		% 		% 		% 		% 		% 		% 		% 		%
% 
% 
% 
%r   rD   c                   h    e Zd Zd Zd Zd Zd ZeZd	dZd Z	d Z
 eej        j                  ZdS )
	Containerc                 D    t          |                                           S r"   )lenget_childrenr;   s    r   __len__zContainer.__len__   s    t((**+++r   c                 .    ||                                  v S r"   )ro   rG   s     r   rI   zContainer.__contains__   s    D--////r   c                 D    t          |                                           S r"   )iterro   r;   s    r   rM   zContainer.__iter__   s    ))++,,,r   c                     dS NTr   r;   s    r   __bool__zContainer.__bool__   s    4r   Nc                     |F|                      |          }|t          d| d|d          t          j        |j                  }t
          j                            | |||           |                                S )NrZ   z#" does not contain child property "r[   )	find_child_propertyr]   r   r^   r_   r   rl   child_get_propertyra   )r8   rH   rb   rc   rd   s        r   ry   zContainer.child_get_property   s    }//>><$*&*ddMMM&; < < <do66M,,T5-OOO??$$$r   c                 $      fd|D             S )z<Returns a list of child property values for the given names.c                 <    g | ]}                     |          S r   )ry   ).0namerH   r8   s     r   
<listcomp>z'Container.child_get.<locals>.<listcomp>   s)    PPPTD++E488PPPr   r   )r8   rH   
prop_namess   `` r   	child_getzContainer.child_get   s!    PPPPPZPPPPr   c                     |                                 D ]2\  }}|                    dd          }|                     |||           3dS )z=Set a child properties on the given child to key/value pairs._-N)itemsreplacechild_set_property)r8   rH   kwargsr}   rc   s        r   	child_setzContainer.child_set   sU    %||~~ < <e||C--''tU;;;;< <r   r"   )r   r   r   rp   rI   rM   rv   __nonzero__ry   r   r   r
   r   rl   get_focus_chainr   r   r   rl   rl      s        	, 	, 	,	0 	0 	0	- 	- 	-	 	 	 		% 		% 		% 		%	Q 	Q 	Q	< 	< 	< /.s}/LMMr   rl   c                   L     e Zd Z fdZ eej        j        d          Z xZS )Editablec                 X    t          t          |                               |d|          S N)rO   r   insert_text)r8   textpositionrQ   s      r   r   zEditable.insert_text   s%    Xt$$00r8DDDr   r   fail_ret)	r   r   r   r   r
   r   r   get_selection_boundsri   rj   s   @r   r   r      sS        E E E E E 0/0Q\^___r   r   c                   >    e Zd Z eej        j        de          ZdS )Actionr}   labeltooltipstock_id	arg_namescategoryN)r   r   r   r   r   r   r9   r   r   r   r   r   r      s4        "?3:#6-U,CE E Er   r   c                   >    e Zd Z eej        j        de          ZdS )RadioActionr}   r   r   r   rc   r   N)r   r   r   r   r   r   r9   r   r   r   r   r   r      s4        "?3?#;-^,CE E Er   r   c                   V    e Zd Z eej        j        de          ZddZddZ	ddZ
dS )	ActionGroup)r}   r   Nc                      	 t          |           n# t          $ r t          d          w xY wd fd	}|D ]} ||  dS )a  
            The add_actions() method is a convenience method that creates a number
            of gtk.Action  objects based on the information in the list of action
            entry tuples contained in entries and adds them to the action group.
            The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            entries must be iterableNc                     t          | |||          }|0|                    d|           n|                    d|                               ||           d S Nr   activate)r   r(   add_action_with_accel)	r}   r   r   acceleratorr   callbackactionr8   	user_datas	          r   _process_actionz0ActionGroup.add_actions.<locals>._process_action  so    TRZ[[[' (z8<<<<z8YGGG**6;?????r   )NNNNNrs   	TypeErrorr8   entriesr   r   es   ` `  r   add_actionszActionGroup.add_actions   s    4<W < < < :;;;<@ @ @ @ @ @ @  $ $###$ $    .c                      	 t          |           n# t          $ r t          d          w xY wd fd	}|D ]} ||  dS )a  
            The add_toggle_actions() method is a convenience method that creates a
            number of gtk.ToggleAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The toggle action entry tuples can vary in size from one to seven
            items with the following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The callback function invoked when the action is activated.
                  Optional with a default value of None.
                * A flag indicating whether the toggle action is active. Optional
                  with a default value of False.

            The "activate" signals of the actions are connected to the callbacks and
            their accel paths are set to <Actions>/group-name/action-name.
            r   NFc                     t                               | |||          }|                    |           |0	|                    d|           n|                    d|	                               ||           d S r   )r   ToggleAction
set_activer(   r   )
r}   r   r   r   r   r   	is_activer   r8   r   s
           r   r   z7ActionGroup.add_toggle_actions.<locals>._process_action?  s    ))t5'\d)ee!!),,,' (z8<<<<z8YGGG**6;?????r   )NNNNNFr   r   s   ` `  r   add_toggle_actionszActionGroup.add_toggle_actions  s    :<W < < < :;;;<	@ 	@ 	@ 	@ 	@ 	@ 	@  $ $###$ $r   c                     	 t          |           n# t          $ r t          d          w xY wd}d fd	}|D ]} ||g|R  }||}|5|5||                    d|           dS |                    d||           dS dS dS )a  
            The add_radio_actions() method is a convenience method that creates a
            number of gtk.RadioAction objects based on the information in the list
            of action entry tuples contained in entries and adds them to the action
            group. The entry tuples can vary in size from one to six items with the
            following information:

                * The name of the action. Must be specified.
                * The stock id for the action. Optional with a default value of None
                  if a label is specified.
                * The label for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None if a stock id is specified.
                * The accelerator for the action, in the format understood by the
                  gtk.accelerator_parse() function. Optional with a default value of
                  None.
                * The tooltip for the action. This field should typically be marked
                  for translation, see the set_translation_domain() method. Optional
                  with a default value of None.
                * The value to set on the radio action. Optional with a default
                  value of 0. Should be specified in applications.

            The value parameter specifies the radio action that should be set
            active. The "changed" signal of the first radio action is connected to
            the on_change callback (if specified and not None) and the accel paths
            of the actions are set to <Actions>/group-name/action-name.
            r   Nr   c                     t          |||||          }t          r|                    |            	|k    r|                    d                               ||           |S )Nr   T)r   rh   
join_groupr   r   )
group_sourcer}   r   r   r   r   entry_valuer   r8   rc   s
           r   r   z6ActionGroup.add_radio_actions.<locals>._process_actionq  ss    $$eWW_grsss 4%%l333K''%%d+++**6;???r   changed)NNNNr   )rs   r   r(   )	r8   r   rc   	on_changer   first_actionr   r   r   s	   ` `      r   add_radio_actionszActionGroup.add_radio_actionsN  s    8<W < < < :;;;<  L
 
 
 
 
 
 
  * *(::::'#)L'I,A$ ((I>>>>> ((IyIIIII	 (',A,Ar   r"   )NNN)r   r   r   r   r   r   r9   r   r   r   r   r   r   r   r   r      s~        "?3?#;-6,CE E E+	$ +	$ +	$ +	$Z/	$ /	$ /	$ /	$b9	J 9	J 9	J 9	J 9	J 9	Jr   r   c                       e Zd Zd ZddZdS )	UIManagerc                     t          |t                    st          d          t          |          }t          j                            | ||          S Nzbuffer must be a string)r   strr   _get_utf8_lengthr   r   add_ui_from_stringr8   bufferlengths      r   r   zUIManager.add_ui_from_string  sJ    fc** ; 9:::%f--F=33D&&IIIr   r   c                 D    t           j                            | ||          S r"   )r   r   insert_action_groupr   s      r   r   zUIManager.insert_action_group  s    =44T66JJJr   Nr   )r   r   r   r   r   r   r   r   r   r     s@        	J 	J 	J	K 	K 	K 	K 	K 	Kr   r   c                   8    e Zd Z eej        j                  ZdS )ComboBoxN)r   r   r   r
   r   r   get_active_iterr   r   r   r   r     s#        **3<+GHHOOOr   r   c                   >    e Zd Z eej        j        de          ZdS )Box)homogeneousspacingr   N)r   r   r   r   r   r   r9   r   r   r   r   r   r     s4        "?37#3-G,CE E Er   r   c                   X    e Zd Z eej        j        ddej        j        ie	          ZdS )	SizeGroup)moder   )r   deprecated_defaultsr   N)
r   r   r   r   r   r   r9   SizeGroupModeVERTICALr   r   r   r   r   r     sB        "?3=#9-68>@Q@Z7[,CE E Er   r   c                   >    e Zd Z eej        j        de          ZdS )MenuItemr   r   N)r   r   r   r   r   r   r9   r   r   r   r   r   r     s4        "?3<#8-7,CE E Er   r   c                     t          | t                    sJ t          | t                    s|                     d          } t	          |           S )Nzutf-8)r   r   bytesencodern   )strings    r   r   r     sG    fc"""""fe$$ (w''v;;r   c                   X     e Zd ZerddlmZ  e            Zd fd	Znd Zd Z	d Z
 xZS )	Builderr   )define_builder_scopeNc                     t          t          |                                            |r/|                     t                              |                     d S d S r"   )rO   r   r9   	set_scopeBuilderScope)r8   scope_object_or_maprQ   s     r   r9   zBuilder.__init__  s[    '4  ))+++" Jw334GHHIIIIIJ Jr   c                 <    |                      t          |           dS )a  Connect signals specified by this builder to a name, handler mapping.

            Connect signal, name, and handler sets specified in the builder with
            the given mapping "obj_or_map". The handler/value aspect of the mapping
            can also contain a tuple in the form of (handler [,arg1 [,argN]])
            allowing for extra arguments to be passed to the handler. For example:

            .. code-block:: python

                builder.connect_signals({'on_clicked': (on_clicked, arg1, arg2)})
            N)connect_signals_fullr3   )r8   r/   s     r   connect_signalszBuilder.connect_signals  s!     %%&?LLLLLr   c                     t          |t                    st          d          t          |          }t          j                            | ||          S r   )r   r   r   r   r   r   add_from_stringr   s      r   r   zBuilder.add_from_string  sJ    &#&& 	75666!&)){**4@@@r   c                     t          |t                    st          d          t          |          }t          j                            | |||          S r   )r   r   r   r   r   r   add_objects_from_string)r8   r   
object_idsr   s       r   r   zBuilder.add_objects_from_string  sL    &#&& 	75666!&)){224TTTr   r"   )r   r   r   rf   _gtktemplater   r   r9   r   r   r   ri   rj   s   @r   r   r     s         M777777++--	J 	J 	J 	J 	J 	J 	J	M 	M 	MA A AU U U U U U Ur   r   )type   )r   r   
stacklevelc                       e Zd Zd ZdS )Windowc                 R    t           st          d          t          | g|R i | d S )NzRGtk couldn't be initialized. Use Gtk.init_check() if you want to handle this case.)initializedRuntimeError_window_initr8   r1   r   s      r   r9   zWindow.__init__  sL     	IHI I I 	T+D+++F+++++r   N)r   r   r   r9   r   r   r   r   r     s#        , , , , ,r   r   c                       e Zd Zeser=dZ eej        j	        ddddde
          Zd Z	d	 Z ed
           Z ed           Zd ZdS )Dialog)titleparentr.   buttons_buttons_property)r  transient_forr.   add_buttonsr  )r.   r  r  r  )r  r  )r   ignoredeprecated_aliasesr   c                    |                                 }t          t          | j        |                    }|                    |           d}| j        t          k    r| j        j        t          j        k    r|dz  }|                    dd           }|Mt          |t          j                  s3t          j        dt          |           |                    dd            nd }|                    dd          }|rNt          j        dt          |           |t          j        j        z  rd	|d
<   |t          j        j        z  rd	|d<    | j        |i | |r | j        |  d S d S )Nr      r  zThe "buttons" argument must be a Gtk.ButtonsType enum value. Please use the "add_buttons" method for adding buttons. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsr   r.   r   zThe "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True. See: https://wiki.gnome.org/PyGObject/InitializerDeprecationsTmodaldestroy_with_parent)copydictzip_old_arg_namesupdaterQ   r  r9   getr   r   ButtonsTypewarningswarnr   popDialogFlagsMODALDESTROY_WITH_PARENT_initr  )r8   r1   r   
new_kwargs
old_kwargsr   r  r.   s           r   r9   zDialog.__init__  s   Jc$"5t<<==Jf%%% J~''DN,Cv,V,Va

 %..D99K&z+s/W/W& ^ 6*N N N N y$////"NN7A..E 
= ^ 6*N N N N
 3?00 /*.Jw'3?>> =8<J45DJ+
+++ /  +..../ /r   c                     t          | j                  5  t                      5  t          j        j        | g|R i |cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S r"   )r   destroyr   r   r  runr   s      r   r!  z
Dialog.runF  sQ   )$,77 A A%'' A A:>$@@@@@@A A A A A A AA A A A A A A AA A A A A A A A AA A A A A A A A A A A A A A A A A As3   A0AA0A	A0A	A00A47A4c                 *    |                                  S r"   )get_action_areadialogs    r   <lambda>zDialog.<lambda>K  s    f.D.D.F.F r   c                 *    |                                  S r"   )get_content_arear$  s    r   r&  zDialog.<lambda>L  s    v'>'>'@'@ r   c                 Z    d } ||          D ]\  }}|                      ||           dS )a  
        The add_buttons() method adds several buttons to the Gtk.Dialog using
        the button data passed as arguments to the method. This method is the
        same as calling the Gtk.Dialog.add_button() repeatedly. The button data
        pairs - button text (or stock ID) and a response ID integer are passed
        individually. For example:

        .. code-block:: python

            dialog.add_buttons(Gtk.STOCK_OPEN, 42, "Close", Gtk.ResponseType.CLOSE)

        will add "Open" and "Close" buttons to dialog.
        c              3      K   | r@	 | dd         \  }}n# t           $ r t          d          w xY w| dd          } ||fV  | >d S d S )Nr   r   z%Must pass an even number of arguments)r]   )btrs      r   _buttonz#Dialog.add_buttons.<locals>._button\  s       NQqS6DAqq! N N N$%LMMMNabbEd


      s    .N)
add_button)r8   r1   r.  r   responses        r   r  zDialog.add_buttonsN  sO    	 	 	 &gdmm 	, 	,ND(OOD(++++	, 	,r   N)r   r   r   rg   rh   r  r   r   r  r9   r   r  r!  propertyaction_areavboxr  r   r   r   r  r    s         :Bt :BU
 3+E'?EM?R4T 4T)@B B B(	/ (	/ (	/T	A 	A 	A
 hFFGGx@@AA, , , , ,r   r  c                   R    e Zd Z eej        j        dddde          Zd Zd Z	dS )	MessageDialog)r  r.   message_typer  message_formatr7  r   )r   r6  r   r	  r   c                 ^    |                      dd           |                      d|           d S )Nsecondary-use-markupFsecondary-textset_propertyr8   r7  s     r   format_secondary_textz#MessageDialog.format_secondary_textv  s6    4e<<<.?????r   c                 ^    |                      dd           |                      d|           d S )Nr:  Tr;  r<  r>  s     r   format_secondary_markupz%MessageDialog.format_secondary_markupz  s6    4d;;;.?????r   N)
r   r   r   r   r   r5  r9   r   r?  rA  r   r   r   r5  r5  n  sv        "?3#4#=.K?OGM7O 7O,CE E E	@ 	@ 	@	@ 	@ 	@ 	@ 	@r   r5  c                   >    e Zd Z eej        j        de          ZdS )ColorSelectionDialogr  r   N)r   r   r   r   r   rC  r9   r   r   r   r   rC  rC    s5        "?3#;#D-7,CE E Er   rC  c                   >    e Zd Z eej        j        de          ZdS )FileChooserDialog)r  r  r   r  r   N)r   r   r   r   r   rF  r9   r   r   r   r   rF  rF    s5        "?3#8#A-U,CE E Er   rF  c                   >    e Zd Z eej        j        de          ZdS )FontSelectionDialogrD  r   N)r   r   r   r   r   rH  r9   r   r   r   r   rH  rH    s5        "?3#:#C-7,CE E Er   rH  c                   D    e Zd Z eej        j        dddie          ZdS )RecentChooserDialog)r  r  recent_managerr  rK  managerr8  N)r   r   r   r   r   rJ  r9   r   r   r   r   rJ  rJ    s?         #?3#:#C-]7G6S,CE E Er   rJ  c                       e Zd Zeser eej        j        de	          Z e
ej        j                  Z e
ej        j                  Z e
ej        j                  ZdS )IconViewmodelr   N)r   r   r   rg   rh   r   r   rN  r9   r   r
   get_item_at_posget_visible_rangeget_dest_item_at_posr   r   r   rN  rN    s         Et E"?3<#8-7,CE E E +*3<+GHHO,,S\-KLL//0QRRr   rN  c                   >    e Zd Z eej        j        de          ZdS )
ToolButton)r   r   N)r   r   r   r   r   rU  r9   r   r   r   r   rU  rU    s4        "?3>#:-:,CE E Er   rU  c                   8    e Zd Z eej        j                  ZdS )	IMContextN)r   r   r   r
   r   rW  get_surroundingr   r   r   rW  rW    s#        **3=+HIIOOOr   rW  c                   8    e Zd Z eej        j                  ZdS )
RecentInfoN)r   r   r   r
   r   rZ  get_application_infor   r   r   rZ  rZ    s&        //0STTr   rZ  c                   p    e Zd ZddZddZddZddZd Zd	 Zdd
Z	 e
ej        j        d          ZdS )
TextBufferNc                 z    t          j        dd|i|}|                                                     |           |S )a  Creates a tag and adds it to the tag table of the TextBuffer.

        :param str tag_name:
            Name of the new tag, or None
        :param **properties:
            Keyword list of properties and their values

        This is equivalent to creating a Gtk.TextTag and then adding the
        tag to the buffer's tag table. The returned tag is owned by
        the buffer's tag table.

        If ``tag_name`` is None, the tag is anonymous.

        If ``tag_name`` is not None, a tag called ``tag_name`` must not already
        exist in the tag table for this buffer.

        Properties are passed as a keyword list of names and values (e.g.
        foreground='DodgerBlue', weight=Pango.Weight.BOLD)

        :returns:
            A new tag.
        r}   r   )r   TextTagget_tag_tableadd)r8   tag_name
propertiestags       r   
create_tagzTextBuffer.create_tag  sC    0 k66x6:66  %%%
r   Fc                 F    t           j                            | |||          S r"   )r   r]  create_mark)r8   	mark_namewhereleft_gravitys       r   rg  zTextBuffer.create_mark  s    ~))$	5,OOOr   r   c                 H    t           j                            | ||           d S r"   )r   r]  set_textr8   r   r   s      r   rl  zTextBuffer.set_text  s"    dF33333r   c                     t          |t                    st          dt          |          z            t          j                            | |||           d S Nztext must be a string, not %s)r   r   r   r   r   r]  insert)r8   rs   r   r   s       r   rp  zTextBuffer.insert  sQ    $$$ 	J;d4jjHIIIdD$77777r   c                     |                                 }|                     ||           |sd S |                     |          }|D ]}|                     |||           d S r"   )
get_offsetrp  get_iter_at_offset	apply_tag)r8   rs   r   tagsstart_offsetstartrd  s          r   insert_with_tagszTextBuffer.insert_with_tags  sw    ((D$ 	F''55 	- 	-CNN3t,,,,	- 	-r   c                     g }|D ]R}|                                                      |          }|st          d|z            |                    |           S | j        ||g|R   d S )Nzunknown text tag: %s)r`  lookupr]   r   rx  )r8   rs   r   ru  tag_objsrd  tag_objs          r   insert_with_tags_by_namez#TextBuffer.insert_with_tags_by_name
  s     	% 	%C((**11#66G ? !7#!=>>>OOG$$$$dD48444444r   c                     t          |t                    st          dt          |          z            t          j                            | ||           d S ro  )r   r   r   r   r   r]  insert_at_cursorrm  s      r   r  zTextBuffer.insert_at_cursor  sO    $$$ 	J;d4jjHIII''dF;;;;;r   r   r   r"   )Fr   )r   r   r   re  rg  rl  rp  rx  r}  r  r
   r   r]  r   r   r   r   r]  r]    s           8P P P P4 4 4 48 8 8 8
- 
- 
-	5 	5 	5< < < < 0/0S^`aaar   r]  c                   b    e Zd Z eej        j                  Z eej        j                  ZdS )TextIterN)r   r   r   r
   r   r  forward_searchbackward_searchr   r   r   r  r  "  s8        ))#,*EFFN**3<+GHHOOOr   r  c                       e Zd Zd Zd ZesereZd Z fdZ	d Z
d Zd Zd Zd	 Z eej        j                  Z eej        j                  Z eej        j                  Z eej        j                  Z eej        j        ed
          Z fdZ fdZ fdZd Zd Zd Zd Z fdZ fdZ  fdZ! fdZ" fdZ# xZ$S )	TreeModelc                 ,    |                      d           S r"   )iter_n_childrenr;   s    r   rp   zTreeModel.__len__,  s    ##D)))r   c                     dS ru   r   r;   s    r   rv   zTreeModel.__bool__/  s    tr   c                 `   t          |t          j                  r|S t          |t                    rE|dk     r?t	          |           |z   }|dk     rt          d|z            |                     |          S 	 |                     |          }n # t          $ r t          d|z            w xY w|S )Nr   zrow index is out of bounds: %dzcould not find tree path '%s')r   r   TreeIterintrn   
IndexErrorget_iterr]   )r8   keyindexaiters       r   _getiterzTreeModel._getiter6  s    c3<(( 	JS!! 
	cAggIIOEqyy !AC!GHHH=='''Hc** H H H !@3!FGGGHLs   8B B+c                     t          t          |           }t          |d          r|                                S t                              |           S )Nsort_new_with_model)rO   r  hasattrr  TreeModelSortnew_with_model)r8   super_objectrQ   s     r   r  zTreeModel.sort_new_with_modelE  sK    Y--<!677 	633555 //555r   c                 X    t          |t          j                  r|S t          |          S r"   )r   r   TreePath)r8   paths     r   _coerce_pathzTreeModel._coerce_pathL  s'    dCL)) 	"KD>>!r   c                 L    |                      |          }t          | |          S r"   )r  TreeModelRowr8   r  r  s      r   __getitem__zTreeModel.__getitem__R  s#    c""D%(((r   c                 L    | |         }|                      |j        |           d S r"   )set_rowrs   )r8   r  rc   rows       r   __setitem__zTreeModel.__setitem__V  s'    3iSXu%%%%%r   c                 Z    |                      |          }|                     |           d S r"   )r  remover  s      r   __delitem__zTreeModel.__delitem__Z  s+    c""Er   c                 F    t          | |                                           S r"   )TreeModelRowIterget_iter_firstr;   s    r   rM   zTreeModel.__iter__^  s    d&9&9&;&;<<<r   zinvalid tree pathc                     |                      |          }t          t          |                               |          \  }}|st	          d|z            |S )Nzinvalid tree path '%s')r  rO   r  r  r]   )r8   r  successr  rQ   s       r   r  zTreeModel.get_iterh  sX      &&y$//88>> 	>5<===r   c                     |                                 }t          t          |                               |          }|r|S d S r"   )r  rO   r  	iter_next)r8   r  	next_iterr  rQ   s       r   r  zTreeModel.iter_nexto  sE    JJLL		4((229== 		 	r   c                     |                                 }t          t          |                               |          }|r|S d S r"   )r  rO   r  iter_previous)r8   r  	prev_iterr  rQ   s       r   r  zTreeModel.iter_previousu  sE    JJLL		4((66yAA 		 	r   c                 r   t          |t                    rt          d          |                                 }t	          |          |k    rt          d          g }g }t          |          D ]F\  }}||                    |                     ||                     |                    |           G||fS )Nz%Expected a list or tuple, but got strz1row sequence has the incorrect number of elements)	r   r   r   get_n_columnsrn   r]   	enumerater   _convert_value)r8   r  	n_columnsresultcolumnscur_colrc   s          r   _convert_rowzTreeModel._convert_row{  s     c3 	ECDDD&&((	s88y  PQQQ'nn 	$ 	$NGU}MM$--gu==>>>NN7####  r   c                 z    |                      |          \  }}|D ]}|                     ||||                     d S r"   )r  	set_value)r8   treeiterr  converted_rowr  columns         r   r  zTreeModel.set_row  sP    !%!2!23!7!7w 	: 	:FNN8VS[9999	: 	:r   c                     t          |t          j                  r|S t          j        |                     |          |          S )z5Convert value to a GObject.Value of the expected type)r   r   r^   get_column_type)r8   r  rc   s      r   r  zTreeModel._convert_value  s=     eW]++ 	L}T11&995AAAr   c                 &   |                                  }g }|D ]j}t          |t                    st          d          |dk     s||k    rt	          d          |                    |                     ||                     kt          |          S )Nzcolumn numbers must be intsr   zcolumn number is out of range)r  r   r  r   r]   r   ra   tuple)r8   r  r  r  valuescols         r   r  zTreeModel.get  s    &&((	 	9 	9Cc3'' ? =>>>Qww#** !@AAAMM$..3778888V}}r   c                 |    t          t          |                               |                     |          |          S r"   )rO   r  row_changedr  r8   r  rs   rQ   s      r   r  zTreeModel.row_changed  s1    Y%%11$2C2CD2I2I4PPPr   c                 |    t          t          |                               |                     |          |          S r"   )rO   r  row_insertedr  r  s      r   r  zTreeModel.row_inserted  s1    Y%%2243D3DT3J3JDQQQr   c                 |    t          t          |                               |                     |          |          S r"   )rO   r  row_has_child_toggledr  r  s      r   r  zTreeModel.row_has_child_toggled  s;    Y%%;;D<M<Md<S<S<@B B 	Br   c                 z    t          t          |                               |                     |                    S r"   )rO   r  row_deletedr  r8   r  rQ   s     r   r  zTreeModel.row_deleted  s/    Y%%11$2C2CD2I2IJJJr   c                 ~    t          t          |                               |                     |          ||          S r"   )rO   r  rows_reorderedr  )r8   r  rs   	new_orderrQ   s       r   r  zTreeModel.rows_reordered  s=    Y%%44T5F5Ft5L5L599F F 	Fr   )%r   r   r   rp   rv   rg   rh   r   r  r  r  r  r  r  rM   r
   r   r  r  iter_childreniter_nth_childiter_parentget_iter_from_stringr]   r  r  r  r  r  r  r  r  r  r  r  r  ri   rj   s   @r   r  r  +  sb       * * *    t   6 6 6 6 6" " ") ) )& & &  = = = *)#-*FGGN(()DEEM))#-*FGGN&&s}'@AAK//0R0:<OQ Q            ! ! !(: : :
B B B  $Q Q Q Q QR R R R RB B B B BK K K K KF F F F F F F F Fr   r  c                   Z     e Zd Z eej        j        d          Zd fd	Zd fd	Z xZ	S )TreeSortable)NNr   Nc                 \    t          t          |                               |||           d S r"   )rO   r  set_sort_func)r8   sort_column_id	sort_funcr   rQ   s       r   r  zTreeSortable.set_sort_func  s+    lD!!//	9UUUUUr   c                 Z    t          t          |                               ||           d S r"   )rO   r  set_default_sort_func)r8   r  r   rQ   s      r   r  z"TreeSortable.set_default_sort_func  s)    lD!!77	9MMMMMr   r"   )
r   r   r   r
   r   r  get_sort_column_idr  r  ri   rj   s   @r   r  r    s        --c.>.Q\hiiiV V V V V VN N N N N N N N N Nr   r  c                   z    e Zd Z eej        j        de          Z eej        d          se	d             Z
dS dS )r  rO  r   r  c                 6    t                               |          S r"   )r  r  )r8   child_models     r   r  zTreeModelSort.new_with_model  s     44[AAAr   N)r   r   r   r   r   r  r9   r   r  classmethodr  r   r   r   r  r    s        "?3#4#=-7,CE E E ws(*:;; 	BB B [B B B	B 	Br   r  c                       e Zd Zd Z eej        d          sej        j        Zn eej        d          sej        j        Zd Z	ddZ
ddZddZdd	Zdd
Zd Zd ZdS )	ListStorec                 n    t           j                            |            |                     |           d S r"   )r   r  r9   set_column_typesr8   column_typess     r   r9   zListStore.__init__  2    t$$$l+++++r   insert_with_valuesvinsert_with_valuesc                     |0|                      |          \  }}|                     |||          }n t          j                            | |          }|S r"   )r  r  r   r  rp  )r8   r   r  r  r  s        r   
_do_insertzListStore._do_insert  sS    ?,,S11LC..x#FFHH}++D(;;Hr   Nc                 p    |r|                      d|          S t          j                            |           S r   )r  r   r  r   r8   r  s     r   r   zListStore.append  s6     	.??2s+++ =''---r   c                 .    |                      d|          S Nr   r  r  s     r   prependzListStore.prepend  s    q#&&&r   c                 .    |                      ||          S r"   r  )r8   r   r  s      r   rp  zListStore.insert  s    x---r   c                     |H|d}n-|                      |                                          d         }|                     ||          S t          j                            | |          S r   )get_pathget_indicesr  r   r  insert_beforer8   siblingr  r   s       r   r  zListStore.insert_before  sa    ?==11==??C??8S111}**4999r   c                     |K|d}n0|                      |                                          d         dz   }|                     ||          S t          j                            | |          S Nr   r   r  )r  r  r  r   r  insert_afterr  s       r   r  zListStore.insert_after  sf    ?==11==??CaG??8S111}))$888r   c                 v    |                      ||          }t          j                            | |||           d S r"   )r  r   r  r  r8   r  r  rc   s       r   r  zListStore.set_value  9    ##FE22h>>>>>r   c                      fd}|rt          |d         t                    r  ||d d d         |dd d                    d S t          |d         t          t          f          r<t	          |          dk    rt          d           ||d         |d                    d S t          |d         t                    r9 |t          |d                   |d                                                    d S t          d          d S )Nc                    t          |           t          |          k    rt          d          g }g }t          | |          D ]g\  }}t          |t                    st          d          |                    |           |                                        ||                     ht          j        	                    ||           d S Nz7The number of columns do not match the number of valuesz0TypeError: Expected integer argument for column.)
rn   r   r  r   r  r   r  r   r  setcolsvalsr  r  col_numrc   r8   r  s         r   
_set_listsz!ListStore.set.<locals>._set_lists      4yyCII%% YZZZGF"%dD// C C!'3// X#$VWWWw'''d11'5AABBBBMdHgv>>>>>r   r   r   r  Too many argumentsArgument list must be in the form of (column, value, ...), ((columns,...), (values, ...)) or {column: value}.  No -1 termination is needed.)r   r  r  rF   rn   r   r  r  r8   r  r1   r
  s   ``  r   r  zListStore.set  s7   	? 	? 	? 	? 	? 	?  
	o$q'3'' 	o
4!9d14a4j11111DGeT]33 ot99>>#$8999
47DG,,,,,DGT** o
4Q==$q'..*:*:;;;;;  !n  o  o  o
	o 
	or   r"   )r   r   r   r9   r  r   r  r  r  r  r   r  rp  r  r  r  r  r   r   r   r  r    s       , , , 73="788 ?!m>WS]$899 ? ]>  . . . .' ' ' '. . . .: : : :9 9 9 9? ? ?o o o o or   r  c                       e Zd Zd Zed             Zed             Zed             Zed             Zd Z	d Z
d Zd	 Zd
 Zd Zd ZdS )r  c                    t          |t          j                  s$t          dt	          |          j        z            || _        t          |t          j                  r|                    |          | _	        d S t          |t          j
                  r	|| _	        d S t          dt	          |          j        z            )Nz expected Gtk.TreeModel, %s foundz/expected Gtk.TreeIter or Gtk.TreePath, %s found)r   r   r  r   r   r   rP  r  r  rs   r  )r8   rP  iter_or_paths      r   r9   zTreeModelRow.__init__?  s    %// 	W>eAUUVVV
lCL11 	F|44DIIIcl33 	F$DIII ')-l););)DE F F Fr   c                 @    | j                             | j                  S r"   )rP  r  rs   r;   s    r   r  zTreeModelRow.pathK  s    z""49---r   c                 *    |                                  S r"   )get_nextr;   s    r   nextzTreeModelRow.nextO  s    }}r   c                 *    |                                  S r"   )get_previousr;   s    r   previouszTreeModelRow.previousS  s      """r   c                 *    |                                  S r"   )
get_parentr;   s    r   r  zTreeModelRow.parentW  s       r   c                 r    | j                             | j                  }|rt          | j         |          S d S r"   )rP  r  rs   r  )r8   r  s     r   r  zTreeModelRow.get_next[  s=    J((33	 	7
I666	7 	7r   c                 r    | j                             | j                  }|rt          | j         |          S d S r"   )rP  r  rs   r  )r8   r  s     r   r  zTreeModelRow.get_previous`  s=    J,,TY77	 	7
I666	7 	7r   c                 r    | j                             | j                  }|rt          | j         |          S d S r"   )rP  r  rs   r  )r8   parent_iters     r   r  zTreeModelRow.get_parente  s=    j,,TY77 	9
K888	9 	9r   c                     t          |t                    rj| j                                        k    rt	          d|z            |dk     r                     |          } j                             j        |          S t          |t                    r{|	                     j                                                  \  }}}g }t          |||          D ]5}|                     j                             j        |                     6|S t          |t                    r fd|D             S t          dt          |          j        z            )N!column index is out of bounds: %dr   c                      g | ]
}|         S r   r   )r|   kr8   s     r   r~   z,TreeModelRow.__getitem__.<locals>.<listcomp>x  s    )))DG)))r   z0indices must be integers, slice or tuple, not %s)r   r  rP  r  r  _convert_negative_indexra   rs   sliceindicesranger   r  r   r   r   )r8   r  rw  stopstepalistis   `      r   r  zTreeModelRow.__getitem__j  sR   c3 	2dj..0000 !Ds!JKKKq22377:''	3777U## 
	2 #DJ,D,D,F,F G GE4E5$-- A ATZ11$)Q??@@@@LU## 	2))))S))))N"3ii01 2 2 2r   c                    t          |t                    rm|| j                                        k    rt	          d|z            |dk     r|                     |          }| j                            | j        ||           d S t          |t                    r|	                    | j                                                  \  }}}t          |||          }t          |          t          |          k    r.t          dt          |          t          |          fz            t          |          D ],\  }}| j                            | j        |||                    -d S t          |t                    rkt          |          t          |          k    r.t          dt          |          t          |          fz            t          ||          D ]
\  }	}|| |	<   d S t!          dt#          |          j        z            )Nr   r   z9attempt to assign sequence of size %d to slice of size %dz<attempt to assign sequence of size %d to sequence of size %dz2indices must be an integer, slice or tuple, not %s)r   r  rP  r  r  r#  r  rs   r$  r%  r&  rn   r]   r  r  r  r   r   r   )
r8   r  rc   rw  r'  r(  	indexListr*  vr"  s
             r   r  zTreeModelRow.__setitem__}  s   c3 	2dj..0000 !Ds!JKKKq22377J  C77777U## 	2 #DJ,D,D,F,F G GE4eT400I9~~U++ O5zz3y>>234 4 4 "),, = =1
$$TY58<<<<= =U## 		23xx3u::%% R5zz3s88,-. . . C  1Q  P"3ii01 2 2 2r   c                 n    | j                                         |z   }|dk     rt          d|z            |S )Nr   r   )rP  r  r  )r8   r  	new_indexs      r   r#  z$TreeModelRow._convert_negative_index  s=    J,,..6	q==@5HIIIr   c                 j    | j                             | j                  }t          | j         |          S r"   )rP  r  rs   r  )r8   
child_iters     r   iterchildrenzTreeModelRow.iterchildren  s+    Z--di88

J777r   N)r   r   r   r9   r1  r  r  r  r  r  r  r  r  r  r#  r2  r   r   r   r  r  =  s        
F 
F 
F . . X.   X # # X# ! ! X!7 7 7
7 7 7
9 9 9
2 2 2&2 2 28  8 8 8 8 8r   r  c                   ,    e Zd Zd Zd ZesereZd ZdS )r  c                 "    || _         || _        d S r"   )rP  rs   )r8   rP  r  s      r   r9   zTreeModelRowIter.__init__  s    
			r   c                     | j         st          t          | j        | j                   }| j                            | j                   | _         |S r"   )rs   StopIterationr  rP  r  r  s     r   __next__zTreeModelRowIter.__next__  sC    y 	 4:ty11J((33	
r   c                     | S r"   r   r;   s    r   rM   zTreeModelRowIter.__iter__  s    r   N)	r   r   r   r9   r7  rg   rh   r  rM   r   r   r   r  r    sW              t     r   r  c                   b     e Zd ZddZ fdZd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Z xZS )r  r   c                 t   t          |t                    rt          |          }n4t          |t                    sd                    d |D                       }t	          |          dk    rt          d|z            	 t                              |          S # t
          $ r t          d|z            w xY w)N:c              3   4   K   | ]}t          |          V  d S r"   )r   )r|   vals     r   	<genexpr>z#TreePath.__new__.<locals>.<genexpr>  s(      55CHH555555r   r   z-could not parse subscript '%s' as a tree path)r   r  r   joinrn   r   r  new_from_string)clsr  s     r   __new__zTreePath.__new__  s    dC   	6t99DDD#&& 	6885555555Dt99>>KdRSSS	T++D111 	T 	T 	TKdRSSS	Ts    B B7c                 V    t          t          |                                            d S r"   )rO   r  r9   r8   r1   r   rQ   s      r   r9   zTreePath.__init__  s%    h&&(((((r   c                 .    |                                  pdS )N )	to_stringr;   s    r   __str__zTreePath.__str__  s    ~~%2%r   c                 <    |d uo|                      |          dk     S r  comparer8   others     r   __lt__zTreePath.__lt__  s#    D <T\\%%8%81%<<r   c                 <    |d uo|                      |          dk    S r  rJ  rL  s     r   __le__zTreePath.__le__  #    D =T\\%%8%8A%==r   c                 <    |d uo|                      |          dk    S r  rJ  rL  s     r   __eq__zTreePath.__eq__  rQ  r   c                 <    |d u p|                      |          dk    S r  rJ  rL  s     r   __ne__zTreePath.__ne__  "    }8U 3 3q 88r   c                 <    |d u p|                      |          dk    S r  rJ  rL  s     r   __gt__zTreePath.__gt__  s"    }7U 3 3a 77r   c                 <    |d u p|                      |          dk    S r  rJ  rL  s     r   __ge__zTreePath.__ge__  rV  r   c                 D    t          |                                           S r"   )rs   r  r;   s    r   rM   zTreePath.__iter__  s    D$$&&'''r   c                 *    |                                  S r"   )	get_depthr;   s    r   rp   zTreePath.__len__  s    ~~r   c                 6    |                                  |         S r"   )r  )r8   r  s     r   r  zTreePath.__getitem__  s    !!%((r   )r   )r   r   r   rB  r9   rH  rN  rP  rS  rU  rX  rZ  rM   rp   r  ri   rj   s   @r   r  r    s        T T T T) ) ) ) )& & &= = => > >> > >9 9 98 8 89 9 9( ( (     ) ) ) ) ) ) )r   r  c                   N    e Zd Zd Zd ZddZddZddZddZddZ	d	 Z
d
 ZdS )	TreeStorec                 n    t           j                            |            |                     |           d S r"   )r   r`  r9   r  r  s     r   r9   zTreeStore.__init__  r  r   c                     |1|                      |          \  }}|                     ||||          }n!t          j                            | ||          }|S r"   )r  r  r   r`  rp  )r8   r  r   r  r  r  s         r   r  zTreeStore._do_insert  sW    ?,,S11LC..vx#NNHH}++D&(CCHr   Nc                 0    |                      |d|          S r   r  r8   r  r  s      r   r   zTreeStore.append  s    vr3///r   c                 0    |                      |d|          S r  r  rd  s      r   r  zTreeStore.prepend  s    vq#...r   c                 0    |                      |||          S r"   r  )r8   r  r   r  s       r   rp  zTreeStore.insert  s    vx555r   c                    |`|d}nD||                      |          }|                     |                                          d         }|                     |||          S t          j                            | ||          S r   )r  r  r  r  r   r`  r  r8   r  r  r  r   s        r   r  zTreeStore.insert_before  s}    ?>!--g66F==11==??C??68S999}**4AAAr   c                    |c|d}nG||                      |          }|                     |                                          d         dz   }|                     |||          S t          j                            | ||          S r  )r  r  r  r  r   r`  r  rh  s        r   r  zTreeStore.insert_after  s    ?>!--g66F==11==??CaG??68S999}))$@@@r   c                 v    |                      ||          }t          j                            | |||           d S r"   )r  r   r`  r  r   s       r   r  zTreeStore.set_value#  r  r   c                      fd}|rt          |d         t                    r  ||d d d         |dd d                    d S t          |d         t          t          f          r<t	          |          dk    rt          d           ||d         |d                    d S t          |d         t                    r> ||d                                         |d                                                    d S t          d          d S )Nc                    t          |           t          |          k    rt          d          g }g }t          | |          D ]g\  }}t          |t                    st          d          |                    |           |                                        ||                     ht          j        	                    ||           d S r  )
rn   r   r  r   r  r   r  r   r`  r  r  s         r   r
  z!TreeStore.set.<locals>._set_lists(  r  r   r   r   r  r  r  )	r   r  r  rF   rn   r   r  keysr  r  s   ``  r   r  zTreeStore.set'  s9   	? 	? 	? 	? 	? 	?  
	o$q'3'' 	o
4!9d14a4j11111DGeT]33 ot99>>#$8999
47DG,,,,,DGT** o
47<<>>47>>+;+;<<<<<  !n  o  o  o
	o 
	or   r"   )r   r   r   r9   r  r   r  rp  r  r  r  r  r   r   r   r`  r`    s        , , ,  0 0 0 0/ / / /6 6 6 6
B 
B 
B 
B
A 
A 
A 
A? ? ?o o o o or   r`  c                       e Zd Zeser eej        j        de	          Z e
ej        j                  Z e
ej        j                  Z e
ej        j                  Zeser fdZeser fdZd fd	Zd fd		Zd fd
	Zd Z xZS )TreeViewrO  r   c                 z    t          |          }t          t          |                               |||           d S r"   )r    rO   ro  enable_model_drag_source)r8   start_button_maskr   actionsr   rQ   s        r   rq  z!TreeView.enable_model_drag_sourceS  sJ    3G<<N(D!!::;L;I;BD D D D Dr   c                 x    t          |          }t          t          |                               ||           d S r"   )r    rO   ro  enable_model_drag_dest)r8   r   rs  r   rQ   s       r   ru  zTreeView.enable_model_drag_destZ  sF    3G<<N(D!!889@B B B B Br   NF        c                     t          |t          j                  st          |          }t          t          |                               |||||           d S r"   )r   r   r  rO   ro  scroll_to_cell)r8   r  r  	use_align	row_align	col_alignrQ   s         r   rx  zTreeView.scroll_to_cell_  sO    $-- 	"D>>Dh,,T69iQZ[[[[[r   c                     t          |t          j                  st          |          }t          t          |                               |||           d S r"   )r   r   r  rO   ro  
set_cursor)r8   r  r  start_editingrQ   s       r   r}  zTreeView.set_cursord  sJ    $-- 	"D>>Dh((v}EEEEEr   c                     t          |t          j                  st          |          }t          t          |                               ||          S r"   )r   r   r  rO   ro  get_cell_area)r8   r  r  rQ   s      r   r  zTreeView.get_cell_areai  sB    $-- 	"D>>DXt$$224@@@r   c                     t                      }|                    |           |                    |d           |                     ||            |j        |fi | d S NF)TreeViewColumn	set_title
pack_startinsert_columnset_attributes)r8   r   r  cellr   r  s         r   insert_column_with_attributesz&TreeView.insert_column_with_attributesn  sn    !!$&&&68,,,d--f-----r   )NFrv  rv  r  r"   )r   r   r   rg   rh   r   r   ro  r9   r   r
   get_path_at_posrR  get_dest_row_at_posrq  ru  rx  r}  r  r  ri   rj   s   @r   ro  ro  H  st        Et E"?3<#8-7,CE E E +*3<+GHHO,,S\-KLL..s|/OPP Dt D	D 	D 	D 	D 	D  Bt B	B 	B 	B 	B 	B
\ \ \ \ \ \
F F F F F F
A A A A A A
. . . . . . .r   ro  c                   \     e Zd Z	 	 ddZ eej        j                  Zd fd	Zd Z	 xZ
S )r  rF  Nc                     t           j                            | |           |r|                     |d           |                                D ]\  }}|                     |||           d S )NrD  T)r   r  r9   r  r   add_attribute)r8   r  cell_renderer
attributesr}   rc   s         r   r9   zTreeViewColumn.__init__{  s     	##D#666 	1OOM4000'--// 	; 	;MT5}dE::::	; 	;r   c                 \    t          t          |                               |||           d S r"   )rO   r  set_cell_data_func)r8   r  func	func_datarQ   s       r   r  z!TreeViewColumn.set_cell_data_func  s+    nd##66}dIVVVVVr   c                     t           j                            | |           |                                D ]'\  }}t           j                            | |||           (d S r"   )r   
CellLayoutclear_attributesr   r  )r8   r  r  r}   rc   s        r   r  zTreeViewColumn.set_attributes  sf    ''m<<<'--// 	K 	KMT5N((}dEJJJJ	K 	Kr   )rF  Nr"   )r   r   r   r9   r
   r   r  cell_get_positionr  r  ri   rj   s   @r   r  r  z  s        #; ; ; ; -,S-?-QRRW W W W W WK K K K K K Kr   r  c                   2     e Zd Z fdZ fdZ fdZ xZS )TreeSelectionc                     t          |t          j                  st          |          }t          t          |                               |           d S r"   )r   r   r  rO   r  select_pathr  s     r   r  zTreeSelection.select_path  sF    $-- 	"D>>DmT""..t44444r   c                 n    t          t          |                                           \  }}}|r||fS |d fS r"   )rO   r  get_selected)r8   r  rP  r  rQ   s       r   r  zTreeSelection.get_selected  sA     %mT : : G G I I 	!5>!4= r   c                 `    t          t          |                                           \  }}||fS r"   )rO   r  get_selected_rows)r8   rowsrP  rQ   s      r   r  zTreeSelection.get_selected_rows  s,    M400BBDDet}r   )r   r   r   r  r  r  ri   rj   s   @r   r  r    sj        5 5 5 5 5
! ! ! ! !        r   r  c                       e Zd Z eej        j        dded          Zd Z e	ej
        d          rd Z e	ej
        d          rd	 Zd
S d
S )Button)r   stock	use_stockuse_underline)r  r   )r   r  r   r   c                     d|v ri|d         rat          j        dt          d           |                                }|d         |d<   d|d<   d|d<   |d= t	          j        j        | fi | d S  | j        |i | d S )	Nr  zKStock items are deprecated. Please use: Gtk.Button.new_with_mnemonic(label)r   r  r   Tr  r  )r  r  r   r  r   r  r9   r  )r8   r1   r   r  s       r   r9   zButton.__init__  s    
 &  VG_  P5!E E E E $[[]]
&0&9
7#*.
;'.2
?+w'
#D77J77777
D+F+++++r   set_focus_on_clickc                 6    t          j        j        | g|R i |S r"   )r   rD   r  r   s      r   r  zButton.set_focus_on_click  '     z4TKDKKKFKKKr   get_focus_on_clickc                 6    t          j        j        | g|R i |S r"   )r   rD   r  r   s      r   r  zButton.get_focus_on_click  r  r   N)r   r   r   r   r   r  r9   r   r  r  rD   r  r  r   r   r   r  r    s        
 3*Z'1)@+,	. . .	, 	, 	,$ 73:344 	LL L L
 73:344 	LL L L L L	L 	Lr   r  c                   >    e Zd Z eej        j        de          ZdS )
LinkButton)urir   r   N)r   r   r   r   r   r  r9   r   r   r   r   r  r    s4        "?3>#:-=,CE E Er   r  c                   >    e Zd Z eej        j        de          ZdS )Labelr   r   N)r   r   r   r   r   r  r9   r   r   r   r   r  r    s4        "?39#5-7,CE E Er   r  c                   V    e Zd Zeser eej        j        dddde	d          Z
d ZdS )	
Adjustment)rc   lowerupperstep_incrementpage_increment	page_size	page_incr	step_incr)r  r  r   )r   r	  r   r   c                 X   t           st          r` | j        |i | d|v r|                     |d                    d S t	          |          dk    r|                     |d                    d S d S t          j        j        | g|R i | d|v r|                     |d                    d S d S )Nrc   r  r   )rg   rh   r  r  rn   r   r  r9   r   s      r   r9   zAdjustment.__init__  s     	04 	0DJ'''' &  vg/////TatAw'''''   N#D:4:::6:::
 &  vg///// ! r   N)r   r   r   rg   rh   r   r   r  r9   r   r  r   r   r   r  r    sm         .t . 7+\FQFQ4S 4S)@+,. . .0 0 0 0 0r   r  c                       e Zd Z eej        j        dddde          Zej        j	        ej        j
        z  ej        j	        ej        j
        z  ddfdZdS )	Table)n_rowsr  r   r  r  )r  r  r8  r   c
                 V    t           j                            | |||||||||	
  
         d S r"   )r   r  attach)
r8   rH   left_attachright_attach
top_attachbottom_attachxoptionsyoptionsxpaddingypaddings
             r   r  zTable.attach  sH    IT5+|ZQ^`hjrt|  G  H  H  H  H  Hr   N)r   r   r   r   r   r  r9   r   AttachOptionsEXPANDFILLr  r   r   r   r  r    s        "?39#5-SAGV_6`6`,CE E E
 `c_p_wz}  {L  {Q  `Q  \_  \m  \t  wz  wH  wM  \M  XY  de 	H 	H 	H 	H 	H 	Hr   r  c                   >    e Zd Z eej        j        de          ZdS )ScrolledWindowhadjustmentvadjustmentr   N)r   r   r   r   r   r  r9   r   r   r   r   r  r    s5        "?3#5#>-K,CE E Er   r  c                   >    e Zd Z eej        j        de          ZdS )
HScrollbar
adjustmentr   N)r   r   r   r   r   r  r9   r   r   r   r   r  r  !  4        "?3>#:-<,CE E Er   r  c                   >    e Zd Z eej        j        de          ZdS )
VScrollbarr  r   N)r   r   r   r   r   r  r9   r   r   r   r   r  r  )  r  r   r  c                   ,     e Zd Zd fd	Zd fd	Z xZS )PanedFTc                 \    t          t          |                               |||           d S r"   )rO   r  pack1r8   rH   resizeshrinkrQ   s       r   r  zPaned.pack14  +    %$$UFF;;;;;r   c                 \    t          t          |                               |||           d S r"   )rO   r  pack2r  s       r   r  zPaned.pack27  r  r   )FT)TT)r   r   r   r  r  ri   rj   s   @r   r  r  3  s[        	< 	< 	< 	< 	< 	<	< 	< 	< 	< 	< 	< 	< 	< 	< 	<r   r  c                   >    e Zd Z eej        j        de          ZdS )Arrow)
arrow_typeshadow_typer   N)r   r   r   r   r   r  r9   r   r   r   r   r  r  ?  s4        "?39#5-J,CE E Er   r  c                   &     e Zd ZddZ fdZ xZS )IconSetNc                     |<t          j        dt          d           t          j                            |          }nt          j                            |           }|S )NzXGtk.IconSet(pixbuf) has been deprecated. Please use: Gtk.IconSet.new_from_pixbuf(pixbuf)r   r  )r  r  r   r   r  new_from_pixbufrB  )rA  pixbuficonsets      r   rB  zIconSet.__new__H  sc    ! D5!E E E E +55f==+--c22Nr   c                 R    t          t          |                                           S r"   )rO   r  r9   rD  s      r   r9   zIconSet.__init__R  s    $''00222r   r"   )r   r   r   rB  r9   ri   rj   s   @r   r  r  G  sL        	 	 	 		3 	3 	3 	3 	3 	3 	3 	3 	3r   r  c                   >    e Zd Z eej        j        de          ZdS )Viewportr  r   N)r   r   r   r   r   r  r9   r   r   r   r   r  r  X  s4        "?3<#8-K,CE E Er   r  c                   &     e Zd Zd fd	Zd Z xZS )TreeModelFilterNc                 Z    t          t          |                               ||           d S r"   )rO   r  set_visible_func)r8   r  datarQ   s      r   r  z TreeModelFilter.set_visible_funcb  s)    ot$$55dDAAAAAr   c                     |                      |          }|                                                     |||           d S r"   )convert_iter_to_child_iter	get_modelr  )r8   rs   r  rc   s       r   r  zTreeModelFilter.set_valuee  s=    ..t44""477777r   r"   )r   r   r   r  r  ri   rj   s   @r   r  r  a  sR        B B B B B B8 8 8 8 8 8 8r   r  c                   8     e Zd Zedd            Zd fd	Z xZS )CustomSorterNc                 j    |t          |          }nd }t          j                            ||          S r"   )r   r   r  r   )rA  r  r   compare_funcs       r   r   zCustomSorter.newq  s5    $8CC##''i@@@r   c                 ~    |t          |          }nd }t          t          |                               ||          S r"   )r   rO   r  r  )r8   r  r   r  rQ   s       r   r  zCustomSorter.set_sort_funcz  s=    $8CC#t,,::<SSSr   r"   )r   r   r   r  r   r  ri   rj   s   @r   r  r  o  si        		A 	A 	A 
	A	T 	T 	T 	T 	T 	T 	T 	T 	T 	Tr   r  c                       e Zd Zd ZdS )Menuc           	      <    |                      d ||||||           d S r"   )popup_for_device)r8   parent_menu_shellparent_menu_itemr  r  buttonactivate_times          r   popupz
Menu.popup  s-    !!$(9;KTSWY_anooooor   N)r   r   r   r  r   r   r   r  r    s(        	p 	p 	p 	p 	pr   r  c                  "    t                       d S r"   )_Gtk_main_quit)r1   s    r   	main_quitr    s    r   c                      t          t          j                  5  t                      5  t	          | i |cd d d            cd d d            S # 1 swxY w Y   	 d d d            d S # 1 swxY w Y   d S r"   )r   r   r  r   	_Gtk_main)r1   r   s     r   mainr
    s   %cm44 	2 	2!## 2 2 $1&112 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	22 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s3   A'AA'A	A'A	A''A+.A+stock_lookup)asysr  gi.repositoryr   _ossighelperr   r   r   r   r   	overridesr	   r
   r   r   moduler   gir   r   _versionrg   rh   rf   __all__r   warn_msgr  RuntimeWarningr   r    r3   objectr5   rD   rl   r   r   r   r   r   r   r   r   r   r   r   r   r9   r   r  r5  rC  rF  rH  rJ  rN  rU  rW  rZ  r]  r  r  r  r  r  r  r  r  r`  ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r	  r  
init_checkr   argvrF   r   r   r   <module>r     s  , 


  ! ! ! ! ! ! E E E E E E E E > > > > > > > >4 4 4 4 4 4 4 4 4 4 4 4 - - - - - - % % % % % % u%%
|u
|u
|u
  z    6  * + + + ,#H HM(N+++	 	 	 	 	4 	 	 	 ( ) ) )  -4 -   NN+,,,6 6 6 % % % % %6 % % %)% )% )% )% )%SZ )% )% )%X 
&		 x     ,4 ,&N &N &N &N &NCM6 &N &N &NP ##INN;I` ` ` ` `s| ` ` ` 8H z      4  E E E E E E E E
 XfFNN8E E E E Eco E E E
 (;''KNN=!!!\J \J \J \J \Jco \J \J \J| (;''KNN=!!!
K 
K 
K 
K 
KCM 
K 
K 
K ##INN;I I I I Is|Y I I I 8H z     4 E E E E Ecg E E E
 (3--CNN5   4  E E E E ECM E E E ##INN;  4 E E E E E3< E E E
 x!!HNN:  'U 'U 'U 'U 'Uck 'U 'U 'UT (7

 y     1:&LL"?3:#6-6,C./1 1 1L, , , , ,SZ , , , 
&		 x   U, U, U, U, U,SZ U, U, U,p 
&		 x     $4 $@ @ @ @ @)6 @ @ @  H]++MNN?###  (4 (E E E E Es7 E E E
 $8$899NN)***E E E E EC1 E E E
 !!233NN&'''  *4 *E E E E Ec5 E E E
 #(#677NN()))  
*4 
*E E E E Ec5 E E E #(#677NN()))S S S S Ss| S S S 8H z     !4 !E E E E ES^ E E E
 *%%JNN<   J J J J J J J J HY	 {   U U U U U U U U Xj!!
 |   Gb Gb Gb Gb Gb Gb Gb GbT Xj!!
 |   I I I I Is| I I I
 8H z   QF QF QF QF QF QF QF QFh HY	 {   N N N N N3# N N N x%% ~     $4 $B B B B B) B B B H]++MNN?###Uo Uo Uo Uo Uoy, Uo Uo Uop HY	 {   d8 d8 d8 d8 d86 d8 d8 d8N ~       v   * ! " " ".) .) .) .) .)s| .) .) .)b 8H z   Mo Mo Mo Mo Moy, Mo Mo Mo` HY	 {   +. +. +. +. +.s|Y +. +. +.\ 8H z   K K K K KS' K K K. .))           C%   * ''      74 7#L #L #L #L #LY #L #L #LJ XfFNN8E E E E ES^ E E E
 *%%JNN<   E E E E E	 E E E
 HUOOENN70 0 0 0 0 0 0 0< Xj!!
 |     %4 %H H H H H	9 H H H HUOOENN7E E E E E+ E E E
 Xn--NNN#$$$  !4 !E E E E ES^ E E E
 *%%JNN<   E E E E ES^ E E E
 *%%JNN<     	4 	< < < < <	 < < < HUOOENN7   4  E E E E E	 E E E
 HUOOENN73 3 3 3 3#+ 3 3 3 hwGNN9E E E E E3< E E E
 x!!HNN:8 8 8 8 8c) 8 8 8 (?++   ! ! ! #T T T T Ts' T T T& 8L))LNN>""" p p p p psx p p p 8D>>DNN6 24 2]NXcm   IXch2 2 2  #4 #''(899LNN>""" ..""KKKsx00KtDzzCHHHr   