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 {
|
#footer {
|
||||||
dock-group: header;
|
dock-group: header;
|
||||||
height: 3;
|
|
||||||
border-top: hkey #0f2b41;
|
/* border-top: hkey #0f2b41; */
|
||||||
text: #3a3009 on #f6d55c;
|
text: #3a3009 on #f6d55c;
|
||||||
|
/*padding: 2;*/
|
||||||
|
border: heavy red;
|
||||||
|
margin: 2;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#content {
|
#content {
|
||||||
|
|||||||
@@ -112,8 +112,8 @@ class StylesBuilder:
|
|||||||
space: list[int] = []
|
space: list[int] = []
|
||||||
append = space.append
|
append = space.append
|
||||||
for token in tokens:
|
for token in tokens:
|
||||||
_, _, location, token_name, value = token
|
(token_name, value, _, _, location) = token
|
||||||
if token_name == "number":
|
if token_name == "scalar":
|
||||||
append(int(value))
|
append(int(value))
|
||||||
else:
|
else:
|
||||||
self.error(name, token, f"unexpected token {value!r} in declaration")
|
self.error(name, token, f"unexpected token {value!r} in declaration")
|
||||||
@@ -123,7 +123,7 @@ class StylesBuilder:
|
|||||||
)
|
)
|
||||||
setattr(
|
setattr(
|
||||||
self.styles,
|
self.styles,
|
||||||
f"_{name}",
|
f"_rule_{name}",
|
||||||
Spacing.unpack(cast(SpacingDimensions, tuple(space))),
|
Spacing.unpack(cast(SpacingDimensions, tuple(space))),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -131,6 +131,14 @@ class Styles:
|
|||||||
"""Check in a border is present."""
|
"""Check in a border is present."""
|
||||||
return any(edge for edge, _style in self.border)
|
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
|
@property
|
||||||
def has_outline(self) -> bool:
|
def has_outline(self) -> bool:
|
||||||
"""Check if an outline is present."""
|
"""Check if an outline is present."""
|
||||||
|
|||||||
@@ -138,15 +138,22 @@ class Widget(DOMNode):
|
|||||||
|
|
||||||
renderable = self.render()
|
renderable = self.render()
|
||||||
styles = self.styles
|
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:
|
if styles.has_border:
|
||||||
renderable = Border(renderable, styles.border)
|
renderable = Border(renderable, styles.border)
|
||||||
|
|
||||||
if self.margin is not None:
|
if styles.has_outline:
|
||||||
renderable = Padding(renderable, self.margin)
|
renderable = Border(renderable, styles.outline, outline=True)
|
||||||
renderable = Styled(renderable, styles.text)
|
|
||||||
|
if styles.has_margin:
|
||||||
|
renderable = Padding(renderable, styles.margin)
|
||||||
|
|
||||||
|
if styles.text:
|
||||||
|
renderable = Styled(renderable, styles.text)
|
||||||
|
|
||||||
return renderable
|
return renderable
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
Reference in New Issue
Block a user