
    AHjI                        d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZ d dlmZmZmZ erd dlmZ d dlmZ  G d	 d
e      Zy)    )annotations)Fraction)TYPE_CHECKING)resolve_box_models)NULL_OFFSETRegionSize)ArrangeResultLayoutWidgetPlacement)Spacing)Widgetc                  2    e Zd ZdZdZ	 d	 	 	 	 	 	 	 	 	 ddZy)VerticalLayoutz@Used to layout Widgets vertically on screen, from top to bottom.verticalc                   |j                  |        g }|j                  }|j                  j                  }|D cg c]  }|j                   }	}|	D 
cg c]  }
|
j
                  dk7  s|
j                    }}
|rt        t        |D cg c]  \  }}}}||z    c}}}      t        t        ||dd        D cg c]  \  \  }}}}\  }}}}||kD  r|n| c}}}      |d   j                  |d   j                  z   z         }nt        dd      }t        |	D 
cg c]  }
|
j                   c}
|||j                  j                  |d|      }t        ||dd        D cg c].  \  \  }}}\  }}}|j                  x}|j                  x}kD  r|n|0 }}}}|r(|j                  |d   j                  j                         t!        d t        ||      D        t#        d            }t$        }t&        }t        }t        |||      D ]  \  }\  }}}} |j                  }
|
j
                  dk(  }!||z   }"|
j)                  d      r?|
j*                  j-                   ||j/                         |j/                               |      nt0        }# ||j2                  |j/                         |j/                         |"j/                         |j/                         z
        }$|
j)                  d	      xr |
j4                  d
k(  }% | ||$|#||dd|!|%             |!r|%r|"| z   } |S c c}w c c}
w c c}}}w c c}}}w c c}
w c c}}}w )Nscreen   r   height)resolve_dimensiongreedyc              3     K   | ]?  \  }}|j                   j                  d k7  r!t        |j                  j                         A yw)r   N)stylesoverlayr   margintop).0	box_modelchilds      P/root/tools/cai/cai_env/lib/python3.12/site-packages/textual/layouts/vertical.py	<genexpr>z)VerticalLayout.arrange.<locals>.<genexpr>L   s?      $Iu<<''83 ))--.s   AAoffsetpositionabsoluteF)
pre_layoutappendappviewport_sizer   r   r   r	   maxsumzipr   bottomr   r   sizenextr   r   r   has_ruler#   resolve	__floor__r   leftr$   )&selfparentchildrenr.   r   
placementsadd_placementviewportr    child_stylesr   box_margins_margin_rightmargin_leftr-   r   resolve_margin
box_modelsmargin1margin2margin_bottom
margin_topmarginsy_Region_WidgetPlacement_Sizewidgetcontent_widthcontent_height
box_marginr   r   next_yr#   regionr%   s&                                         r!   arrangezVerticalLayout.arrange   s    	$,.
"))::++2:;;;(4&
$(8RFMM&
 &
 ! @K ;A|Q %{2  BE'QRB =-Q61~Q1 #)3,C7 q>%%B(>(>>@N$ "!QZN')56vV]]6JJOO&

  58
JqrN4S
 
 1Aw!Q &-^^3Mgkk8Q
R  
 
 NN:b>00778(+J(A
 QK
 *KNj'L
 #	$GF?]NJ ]]Fnn0G'F ??8,	 %%-113^5M5M5OP
 !  '')  "Q[[]2	F z2Tv*7TH 	 8VOG#	$J A <&
 7
s)   L$L)(L)
L.;L5L<#3MN)T)
r5   r   r6   zlist[Widget]r.   r	   r   boolreturnr
   )__name__
__module____qualname____doc__namerP        r!   r   r      sD    JD RVhh(4h<@hJNh	hrY   r   N)
__future__r   	fractionsr   typingr   textual._resolver   textual.geometryr   r   r	   textual.layoutr
   r   r   r   textual.widgetr   r   rX   rY   r!   <module>ra      s4    "    / 6 6 A A(%mV mrY   