U
    9¡_Û  ã                   @   sp   d dl mZ d dl mZ d dl mZ d dl mZ d dlZd dlZd dlZejej	ej
d G dd„ dejƒZdS )	é    )ÚGObject)ÚGLib)ÚGdk)ÚGtkN)ZdomainÚ	localedirc                   @   sÀ   e Zd ZdejdddddejjfiZejj	de
ffejj	ddfd	œZd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ ZdS )(ÚToolbarSearchEntryÚsearch_timeoutzsearch timeoutz"search signal rate limiter (in ms)r   iˆ  é,  N© )ÚsearchÚactivatec                 C   sh  d | _ d| _d| _d| _d | _tj | ¡ |  t	j
¡ |  t	j
¡ tj |  ¡ ¡}| d¡}|dkpj|dk| _t ¡ }| tdƒ¡ | tjj¡ |  |ddd¡ t ¡ | _ d	tjjkr| j  tjjtj¡ | j  tjjtj¡ | j  tjjd¡ | j   tjjd¡ | j  !d
| j"¡ | #| j ¡ |  | j ddd¡ | j  !d| j$¡ | j  !d| j%¡ | j  !d| j&¡ d S )Nr   Fr	   zgtk-theme-nameZHighContrastZLowContrastz_Filter:TÚPRIMARYz
icon-pressZchangedZfocus_out_eventr   )'ÚentryÚtimeoutÚis_a11y_themer   Úmenur   ÚHBoxÚ__init__Zset_spacingÚHIGZ
PAD_NORMALZset_border_widthZSettingsZget_for_screenZ
get_screenZget_propertyZLabelZset_text_with_mnemonicÚ_Zset_justifyZJustificationZRIGHTZ
pack_startZEntryÚEntryIconPositionÚ__dict__Zset_icon_from_stockr   Z
STOCK_FINDÚ	SECONDARYZSTOCK_CLEARÚset_icon_sensitiveÚset_icon_activatableZconnectÚon_icon_pressZset_mnemonic_widgetÚ
on_changedÚon_focus_out_eventÚon_activate)ÚselfZsettingsZthemeZlabelr
   r
   ú6/usr/share/system-config-printer/ToolbarSearchEntry.pyr   :   s>    

ÿÿzToolbarSearchEntry.__init__c                 C   s"   |j dkr| jS td|j  ƒ‚d S ©Nr   zunknown property %s©Únamer   ÚAttributeError)r   Úpropertyr
   r
   r    Údo_get_propertyb   s    
z"ToolbarSearchEntry.do_get_propertyc                 C   s$   |j dkr|| _ntd|j  ƒ‚d S r!   r"   )r   r%   Úvaluer
   r
   r    Údo_set_propertyh   s    
z"ToolbarSearchEntry.do_set_propertyc                 C   s,   | j dkrt | j ¡ d| _ | j d¡ d S )Nr   Ú )r   r   Úsource_remover   Úset_text©r   r
   r
   r    Úclearn   s    
zToolbarSearchEntry.clearc                 C   s
   | j  ¡ S ©N©r   Úget_textr,   r
   r
   r    r0   u   s    zToolbarSearchEntry.get_textc                 C   s   | j  |¡ d S r.   )r   r+   )r   Útextr
   r
   r    r+   x   s    zToolbarSearchEntry.set_textc                 C   sŠ   | j r
d S t d¡}t d¡}| j ¡ }t|ƒdkrZ| j tjj	|¡ | j 
tjj	|¡ n$| j tjj	d ¡ | j 
tjj	d ¡ |  ¡  d S )Nz#f7f7bez#000000r   )r   r   Zcolor_parser   r0   ÚlenZmodify_textr   Z	StateTypeZNORMALZmodify_baseZ
queue_draw)r   Z	bg_colourZ	fg_colourr1   r
   r
   r    Úcheck_style{   s    


zToolbarSearchEntry.check_stylec                 C   s†   |   ¡  | jdkr$t | j¡ d| _| j ¡ dk}|rJt | j| j¡| _n|  ¡  dt	j
jkr‚| j t	j
j|¡ | j t	j
j|¡ d S )Nr   r   )r3   r   r   r*   r   Zget_text_lengthZtimeout_addr   Úon_search_timeoutr   r   r   r   r   r   )r   ÚUNUSEDZhas_textr
   r
   r    r   Œ   s    
ÿzToolbarSearchEntry.on_changedc                 C   s   |   d| j ¡ ¡ d| _dS )Nr   r   F)Úemitr   r0   r   r,   r
   r
   r    r4   Ÿ   s    z$ToolbarSearchEntry.on_search_timeoutc                 C   s6   | j dkrdS t | j ¡ d| _ |  d| j ¡ ¡ dS )Nr   Fr   )r   r   r*   r6   r   r0   )r   ZUNUSED_widgetZUNUSED_eventr
   r
   r    r   ¥   s    
z%ToolbarSearchEntry.on_focus_out_eventc                 C   s   | j  ¡ dkS ©Nr)   r/   r,   r
   r
   r    Ú	searching°   s    zToolbarSearchEntry.searchingc                 C   s   |   d| j ¡ ¡ d S )Nr   )r6   r   r0   )r   ZUNUSED_entryr
   r
   r    r   ³   s    zToolbarSearchEntry.on_activatec                 C   s   | j  ¡  d S r.   )r   Ú
grab_focusr,   r
   r
   r    r9   ¶   s    zToolbarSearchEntry.grab_focusc                 C   sn   dt jjkrd S |r@| j t jjd¡ | j t jjd¡ || _n*| j t jjd¡ | j t jjd¡ d | _d S )Nr   TF)r   r   r   r   r   r   r   r   )r   r   r
   r
   r    Úset_drop_down_menu¹   s    z%ToolbarSearchEntry.set_drop_down_menuc                 C   sN   |t jjkr|  d¡ d S |t jjkrJ| js0d S | j d d d d |j|j¡ d S r7   )	r   r   r   r+   r   r   ZpopupZbuttonÚtime)r   r5   Zicon_positionZeventr
   r
   r    r   Æ   s    
z ToolbarSearchEntry.on_icon_press)Ú__name__Ú
__module__Ú__qualname__r   Z	TYPE_UINTZ
ParamFlagsZ	READWRITEZ__gproperties__ZSignalFlagsZRUN_LASTÚstrZ__gsignals__r   r&   r(   r-   r0   r+   r3   r   r4   r   r8   r   r9   r:   r   r
   r
   r
   r    r   &   sD    úÿþþü	(r   )Zgi.repositoryr   r   r   r   r   ZconfigÚgettextÚinstallZPACKAGEr   r   r   r
   r
   r
   r    Ú<module>   s   