mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
padding and margin
This commit is contained in:
@@ -37,9 +37,13 @@ class BasicApp(App):
|
||||
|
||||
#footer {
|
||||
dock-group: header;
|
||||
height: 3;
|
||||
border-top: hkey #0f2b41;
|
||||
|
||||
/* border-top: hkey #0f2b41; */
|
||||
text: #3a3009 on #f6d55c;
|
||||
/*padding: 2;*/
|
||||
border: heavy red;
|
||||
margin: 2;
|
||||
|
||||
}
|
||||
|
||||
#content {
|
||||
|
||||
@@ -112,8 +112,8 @@ class StylesBuilder:
|
||||
space: list[int] = []
|
||||
append = space.append
|
||||
for token in tokens:
|
||||
_, _, location, token_name, value = token
|
||||
if token_name == "number":
|
||||
(token_name, value, _, _, location) = token
|
||||
if token_name == "scalar":
|
||||
append(int(value))
|
||||
else:
|
||||
self.error(name, token, f"unexpected token {value!r} in declaration")
|
||||
@@ -123,7 +123,7 @@ class StylesBuilder:
|
||||
)
|
||||
setattr(
|
||||
self.styles,
|
||||
f"_{name}",
|
||||
f"_rule_{name}",
|
||||
Spacing.unpack(cast(SpacingDimensions, tuple(space))),
|
||||
)
|
||||
|
||||
|
||||
@@ -131,6 +131,14 @@ class Styles:
|
||||
"""Check in a border is present."""
|
||||
return any(edge for edge, _style in self.border)
|
||||
|
||||
@property
|
||||
def has_padding(self) -> bool:
|
||||
return self._rule_padding is not None
|
||||
|
||||
@property
|
||||
def has_margin(self) -> bool:
|
||||
return self._rule_margin is not None
|
||||
|
||||
@property
|
||||
def has_outline(self) -> bool:
|
||||
"""Check if an outline is present."""
|
||||
|
||||
@@ -138,15 +138,22 @@ class Widget(DOMNode):
|
||||
|
||||
renderable = self.render()
|
||||
styles = self.styles
|
||||
if self.padding is not None:
|
||||
renderable = Padding(renderable, self.padding)
|
||||
|
||||
if styles.has_padding:
|
||||
renderable = Padding(renderable, styles.padding)
|
||||
|
||||
if styles.has_border:
|
||||
renderable = Border(renderable, styles.border)
|
||||
|
||||
if self.margin is not None:
|
||||
renderable = Padding(renderable, self.margin)
|
||||
if styles.has_outline:
|
||||
renderable = Border(renderable, styles.outline, outline=True)
|
||||
|
||||
if styles.has_margin:
|
||||
renderable = Padding(renderable, styles.margin)
|
||||
|
||||
if styles.text:
|
||||
renderable = Styled(renderable, styles.text)
|
||||
|
||||
return renderable
|
||||
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user