U
    ÍZj›  ã                   @   s~   d dl mZmZmZ dd„ Zdd„ Zdd„ ZG dd	„ d	eƒZG d
d„ deƒZ	G dd„ deƒZ
dd„ ZG dd„ deƒZdgZdS )é    )ÚGLibÚGObjectÚGioc                 C   s¶   ||j krd S |j | }|  |j¡}|j |¡ t||ƒ}	t|tjj	@ ƒ}
t|tjj
@ ƒ}|rntdtjj
 ƒ‚|d k	r–|
r‚|j}n|j}|||	|ƒ n|
r¢|j}n|j}|||	ƒ d S )Nz%r not supported)Ú__gtktemplate_methods__Z
get_objectÚ__gtype_name__Ú__gtktemplate_handlers__ÚaddÚgetattrÚintr   ZConnectFlagsZAFTERZSWAPPEDÚRuntimeErrorZconnect_object_afterÚconnect_objectZconnect_afterÚconnect)ZbuilderÚobjZsignal_nameÚhandler_namer   ÚflagsÚclsÚmethod_nameZtemplate_instÚhandlerÚafterZswappedÚfunc© r   úR/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/gi/_gtktemplate.pyÚconnect_func   s*    



ÿr   c                    s
  i }i }t ˆj ¡ ƒD ]¸\}}t|tƒrvtˆ||jƒ |j}|d krH|}||krl|| }td|||f ƒ‚qÎ|||< qt|t	ƒr|j}|d kr’|}||kr¶|| }td|||f ƒ‚q|||< ˆ 
||jd¡ q|ˆ_|ˆ_ˆ tˆ¡ ˆj‰ ‡ ‡fdd„ˆ_ˆjˆ_d S )Nz>Error while exposing handler %r as %r, already available as %rz<Error while exposing child %r as %r, already available as %rr   c                    s   t | ˆˆ ƒS ©N)Úinit_template©Ús©Úbase_init_templater   r   r   Ú<lambda>_   ó    z#register_template.<locals>.<lambda>)ÚlistÚ__dict__ÚitemsÚ
isinstanceÚ	CallThingÚsetattrÚ_funcÚ_namer   ÚChildZbind_template_child_fullÚ	_internalr   Ú__gtktemplate_widgets__Zset_connect_funcr   r   Z__dontuse_ginstance_init__)r   Zbound_methodsZbound_widgetsÚ	attr_namer   r   Zold_attr_nameÚwidget_namer   r   r   Úregister_template6   sT    
  ÿÿÿ

  ÿÿÿÿr.   c                 C   s€   dd„ | _ | j|k	rtdƒ‚tƒ | _|| ƒ | j ¡ D ]\}}|  ||¡| j|< q6| j	 ¡ D ]\}}|| jkr\t
d| ƒ‚q\d S )Nc                 S   s   d S r   r   r   r   r   r   r   f   r    zinit_template.<locals>.<lambda>zRInheritance from classes with @Gtk.Template decorators is not allowed at this timezUHandler '%s' was declared with @Gtk.Template.Callback but was not present in template)r   Ú	__class__Ú	TypeErrorÚsetr   r+   r#   Zget_template_childr"   r   r   )Úselfr   r   r-   r,   r   r   r   r   r   e   s     

ÿ
ÿÿr   c                   @   s   e Zd Zddd„ZdS )r)   Nc                 K   s(   || _ | dd¡| _|r$td| ƒ‚d S )NZinternalFzUnhandled arguments: %r)r(   Úpopr*   r0   )r2   ÚnameÚkwargsr   r   r   Ú__init__}   s    zChild.__init__)N©Ú__name__Ú
__module__Ú__qualname__r6   r   r   r   r   r)   {   s   r)   c                   @   s   e Zd Zdd„ ZdS )r%   c                 C   s   || _ || _d S r   )r(   r'   )r2   r4   r   r   r   r   r6   †   s    zCallThing.__init__Nr7   r   r   r   r   r%   „   s   r%   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚCallbackNc                 C   s
   || _ d S r   )r(   )r2   r4   r   r   r   r6   �   s    zCallback.__init__c                 C   s   t | j|ƒS r   )r%   r(   )r2   r   r   r   r   Ú__call__�   s    zCallback.__call__)N)r8   r9   r:   r6   r<   r   r   r   r   r;   ‹   s   
r;   c                 C   s@   zt  | t jj¡ W n& tjk
r:   t  | t jj¡ Y nX dS )z4Raises GLib.Error in case the resource doesn't existN)r   Zresources_get_infoZResourceLookupFlagsÚNONEr   ÚErrorZresources_lookup_data)Úpathr   r   r   Úvalidate_resource_path”   s    r@   c                   @   sH   e Zd Zdd„ Zedd„ ƒZedd„ ƒZedd„ ƒZeZe	Z	d	d
„ Z
dS )ÚTemplatec                 K   sp   d | _ d | _d | _d|kr(| d¡| _ n4d|kr>| d¡| _nd|krT| d¡| _ntdƒ‚|rltd| ƒ‚d S )NÚstringÚfilenameÚresource_pathzHRequires one of the following arguments: string, filename, resource_pathzUnhandled keyword arguments %r)rB   rC   rD   r3   r0   )r2   r5   r   r   r   r6   ¢   s    ÿzTemplate.__init__c                 C   s
   | |d�S )N)rC   r   )r   rC   r   r   r   Ú	from_file´   s    zTemplate.from_filec                 C   s
   | |d�S )N)rB   r   )r   rB   r   r   r   Úfrom_string¸   s    zTemplate.from_stringc                 C   s
   | |d�S )N)rD   r   )r   rD   r   r   r   Úfrom_resource¼   s    zTemplate.from_resourcec                 C   s  ddl m} t|tƒr"t||jƒs*tdƒ‚d|jkrBtd|j ƒ‚t	|dƒrTtdƒ‚| j
d k	rš| j
}t|tƒsx| d¡}tj |¡}| |¡ t|ƒ |S | jd k	rÆt| jƒ | | j¡ t|ƒ |S | jd k	sÔt‚tj | j¡}tj | ¡ d	 ¡}| |¡ t|ƒ |S d S )
Nr   )ÚGtkz%Can only use @Gtk.Template on Widgetsr   zS%r does not have a __gtype_name__. Set it to the name of the class in your templater   zCannot nest template classeszutf-8é   )Úgi.repositoryrH   r$   ÚtypeÚ
issubclassZWidgetr0   r"   r8   ÚhasattrrB   ÚbytesÚencoder   ÚBytesÚnewZset_templater.   rD   r@   Zset_template_from_resourcerC   ÚAssertionErrorr   ÚFileZnew_for_pathZload_contents)r2   r   rH   ÚdataÚbytes_Úfile_r   r   r   r<   Ä   s<    
ÿÿ







zTemplate.__call__N)r8   r9   r:   r6   ÚclassmethodrE   rF   rG   r;   r)   r<   r   r   r   r   rA       s   


rA   N)rJ   r   r   r   r   r.   r   Úobjectr)   r%   r;   r@   rA   Ú__all__r   r   r   r   Ú<module>   s   /		H