U
K��^� � @ s0 d dl Z e je je jfZe je jfZdd� ZdS )� Nc C s: t | tj�r"t| dd�r"t| j�S t| d�r4| �� S t | t�rHt| j �S t | t
�r\t| j�S t | tj�r�| jtj
kr�| j| j t| j� S t | jt�r�| jS t | tj�r�t| j�S t | tj��r,t| j�dkr�dS d}| jD ]2\}}|d tjk�r||d 7 }q�|t|�7 }q�|t| j�d | j 7 }|S td| ��dS )z)Return the natural width of the widget w.Zhas_original_widthF�get_natural_widthr � z"don't know how to find width of %rN)�
isinstance�urwidZWidgetDecoration�getattr�widget_widthZoriginal_widget�hasattrr �size_neutral_widget_wrapsZ_wrapped_widget�size_neutral_decorationsZPadding�widthZRELATIVE_100�left�right�intZText�len�textZColumns�contentsZGIVENZdividechars� Exception)�w�rZw1�o� r �./usr/share/subiquity/subiquitycore/ui/width.pyr s8
�
r ) r ZAttrMapZ
PopUpLauncherZ
WidgetDisabler
ZButtonZCheckBoxr r r r r r �<module> s �� |