U
    Pec,                     @   sH   d Z dZddlmZ ddlmZmZmZmZ dd Z	G dd deZ
d	S )
a  
Stack Layout
============

.. only:: html

    .. image:: images/stacklayout.gif
        :align: right

.. only:: latex

    .. image:: images/stacklayout.png
        :align: right

.. versionadded:: 1.0.5

The :class:`StackLayout` arranges children vertically or horizontally, as many
as the layout can fit. The size of the individual children widgets do not
have to be uniform.

For example, to display widgets that get progressively larger in width::

    root = StackLayout()
    for i in range(25):
        btn = Button(text=str(i), width=40 + i * 5, size_hint=(None, 0.15))
        root.add_widget(btn)

.. image:: images/stacklayout_sizing.png
    :align: left
)StackLayout    )Layout)NumericPropertyOptionPropertyReferenceListPropertyVariableListPropertyc                 C   sb   | j | }| j| }| j| | }|d k	rL|d k	rBtt|||S t||S |d k	r^t||S |S )N)Zsize_hint_minZsize_hint_max	size_hintmaxmin)cZavailable_sizeidxZsh_minZsh_maxval r   8/tmp/pip-unpacked-wheel-xzebddm3/kivy/uix/stacklayout.py_compute_size'   s    



r   c                       sn   e Zd ZdZeddgddZeddddgZedddZe	dZ
e	dZee
eZ fdd	Zd
d Z  ZS )r   zGStack layout class. See module documentation for more information.
    r      )lengthlr-tb)r   ztb-lrzrl-tbztb-rlzlr-btzbt-lrzrl-btzbt-rl)optionsc                    s^   t t| jf | | j}| j}|d| |d| |d| |d| |d| |d| d S )Npaddingspacingchildrenorientationsizepos)superr   __init__Z_trigger_layoutfbind)selfkwargsZtriggerr   	__class__r   r   r      s    




zStackLayout.__init__c           /      G   sj  | j sd| _d S | j}| j}| jd}| jd }| jd }| jd }| jd }|| }	|| }
| j\}}dgd }dgd }dgd }dD ]}d|| dk ||< || }|| d	krd||< || | ||< q|| d
krd||< || | ||< q|| dkr(d||< || ||  | ||< qd||< || ||  | ||< q|\}}|\}}|\}}~~~|}|}|d dkr|
}|	}|}|}|	}|
}n|	}|
}|}|}|
}|	}d} |dk }!|dk }"| j d }#g }$g }%t| j D ]}&|&j	| d k	rt
dt|&|| | ||&j|< t|%}'t
d|| | ||'   }(})|%s|&j	| d k	rft
dt|&|(|}*nt
d|&j| }*|| | |* })|*g}+ndg|'d  }+t|%D ]j\}},|)dkrd}) q|,j	| d k	rt
dt|,|(| |+|< }*nt
d|,j| }*|*|+|< |)|*8 })q|&j	| d k	r8t
dt|&|(||+d< nt
d|&j| |+d< |)|+d 8 })|)d dksl|%s|%|& |+}$t
| |&j| } qt|%D ](\}},|,j	| d k	r|$| |,j|< q|| | 7 }|%D ]h}-|!r||-j| 8 }||-j|< |}.|"r
|.|-j| 8 }.|.|-j|< |!r$||8 }n||-j| | 7 }q|||  7 }||| 7 }|&g}%|&j| } |&j	| d k	rt
dt|&|| | |g}$nt
d|&j| g}$|}q|%r\t|%D ](\}},|,j	| d k	r|$| |,j|< q|| | 7 }|%D ]h}-|!r
||-j| 8 }||-j|< |}.|"r,|.|-j| 8 }.|.|-j|< |!rF||8 }n||-j| | 7 }q|| j|< d S )N)        r"   -r      r      )r   r$   )tbbtlrr'   rl)r(   r)   g|=)r   minimum_sizer   r   r   splitr   r   reversedr   r	   r   len	enumerateappend)/r   largsZselfposZselfsizer   Zpadding_leftZpadding_topZpadding_rightZpadding_bottomZ	padding_xZ	padding_yZ	spacing_xZ	spacing_yZposattrZposdeltaZposstartikZ	innerattrZ	outerattrZustartZvstartZdeltauZdeltavuvsvZsuZ	spacing_uZ	spacing_vZ	padding_uZ	padding_vlvZurevZvrevZ
firstchildZsizeslcr   ZccountZ	totalsizeZ	availsizeZ	childsizeZ	testsizeschildc2Z	pos_outerr   r   r   	do_layout   s   








 
 
 
 









zStackLayout.do_layout)__name__
__module____qualname____doc__r   r   r   r   r   r   Zminimum_widthZminimum_heightr   r+   r   r;   __classcell__r   r   r    r   r   5   s   



r   N)r?   __all__Zkivy.uix.layoutr   Zkivy.propertiesr   r   r   r   r   r   r   r   r   r   <module>   s
   