diff options
author | Ivan Tham | 2022-05-14 14:28:37 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2022-05-22 01:26:32 +0000 |
commit | 1837b5e4a61f0230b3cd382ed487fa09be7b2b68 (patch) | |
tree | 1025a430cffa521be6f24cab7472769d94584e48 /helix-tui/src/widgets | |
parent | bfc4ff4dcfd9135924d90bb822f2e23ae9cb2420 (diff) |
Refactor Block with Default and bitflags
Specifying empty for bitflags is not recommended, it is now removed and added
Default. For BorderType, it now defaults to plain.
Diffstat (limited to 'helix-tui/src/widgets')
-rw-r--r-- | helix-tui/src/widgets/block.rs | 21 | ||||
-rw-r--r-- | helix-tui/src/widgets/mod.rs | 11 |
2 files changed, 13 insertions, 19 deletions
diff --git a/helix-tui/src/widgets/block.rs b/helix-tui/src/widgets/block.rs index 26223c3e..3c05a2a3 100644 --- a/helix-tui/src/widgets/block.rs +++ b/helix-tui/src/widgets/block.rs @@ -6,6 +6,7 @@ use crate::{ }; use helix_view::graphics::{Rect, Style}; +/// Border render type. Defaults to [`BorderType::Plain`]. #[derive(Debug, Clone, Copy, PartialEq)] pub enum BorderType { Plain, @@ -25,6 +26,12 @@ impl BorderType { } } +impl Default for BorderType { + fn default() -> BorderType { + BorderType::Plain + } +} + /// Base widget to be used with all upper level ones. It may be used to display a box border around /// the widget and/or add a title. /// @@ -40,7 +47,7 @@ impl BorderType { /// .border_type(BorderType::Rounded) /// .style(Style::default().bg(Color::Black)); /// ``` -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Default, Clone, PartialEq)] pub struct Block<'a> { /// Optional title place on the upper left of the block title: Option<Spans<'a>>, @@ -55,18 +62,6 @@ pub struct Block<'a> { style: Style, } -impl<'a> Default for Block<'a> { - fn default() -> Block<'a> { - Block { - title: None, - borders: Borders::NONE, - border_style: Default::default(), - border_type: BorderType::Plain, - style: Default::default(), - } - } -} - impl<'a> Block<'a> { pub fn title<T>(mut self, title: T) -> Block<'a> where diff --git a/helix-tui/src/widgets/mod.rs b/helix-tui/src/widgets/mod.rs index e5608a79..c0c3a994 100644 --- a/helix-tui/src/widgets/mod.rs +++ b/helix-tui/src/widgets/mod.rs @@ -27,17 +27,16 @@ use helix_view::graphics::Rect; bitflags! { /// Bitflags that can be composed to set the visible borders essentially on the block widget. + #[derive(Default)] pub struct Borders: u32 { - /// Show no border (default) - const NONE = 0b0000_0001; /// Show the top border - const TOP = 0b0000_0010; + const TOP = 0b0000_0001; /// Show the right border - const RIGHT = 0b0000_0100; + const RIGHT = 0b0000_0010; /// Show the bottom border - const BOTTOM = 0b000_1000; + const BOTTOM = 0b000_0100; /// Show the left border - const LEFT = 0b0001_0000; + const LEFT = 0b0000_1000; /// Show all borders const ALL = Self::TOP.bits | Self::RIGHT.bits | Self::BOTTOM.bits | Self::LEFT.bits; } |