mirror of https://github.com/helix-editor/helix
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.pull/2530/head
parent
bfc4ff4dcf
commit
1837b5e4a6
|
@ -6,6 +6,7 @@ use crate::{
|
||||||
};
|
};
|
||||||
use helix_view::graphics::{Rect, Style};
|
use helix_view::graphics::{Rect, Style};
|
||||||
|
|
||||||
|
/// Border render type. Defaults to [`BorderType::Plain`].
|
||||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||||
pub enum BorderType {
|
pub enum BorderType {
|
||||||
Plain,
|
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
|
/// 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.
|
/// the widget and/or add a title.
|
||||||
///
|
///
|
||||||
|
@ -40,7 +47,7 @@ impl BorderType {
|
||||||
/// .border_type(BorderType::Rounded)
|
/// .border_type(BorderType::Rounded)
|
||||||
/// .style(Style::default().bg(Color::Black));
|
/// .style(Style::default().bg(Color::Black));
|
||||||
/// ```
|
/// ```
|
||||||
#[derive(Debug, Clone, PartialEq)]
|
#[derive(Debug, Default, Clone, PartialEq)]
|
||||||
pub struct Block<'a> {
|
pub struct Block<'a> {
|
||||||
/// Optional title place on the upper left of the block
|
/// Optional title place on the upper left of the block
|
||||||
title: Option<Spans<'a>>,
|
title: Option<Spans<'a>>,
|
||||||
|
@ -55,18 +62,6 @@ pub struct Block<'a> {
|
||||||
style: Style,
|
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> {
|
impl<'a> Block<'a> {
|
||||||
pub fn title<T>(mut self, title: T) -> Block<'a>
|
pub fn title<T>(mut self, title: T) -> Block<'a>
|
||||||
where
|
where
|
||||||
|
|
|
@ -27,17 +27,16 @@ use helix_view::graphics::Rect;
|
||||||
|
|
||||||
bitflags! {
|
bitflags! {
|
||||||
/// Bitflags that can be composed to set the visible borders essentially on the block widget.
|
/// Bitflags that can be composed to set the visible borders essentially on the block widget.
|
||||||
|
#[derive(Default)]
|
||||||
pub struct Borders: u32 {
|
pub struct Borders: u32 {
|
||||||
/// Show no border (default)
|
|
||||||
const NONE = 0b0000_0001;
|
|
||||||
/// Show the top border
|
/// Show the top border
|
||||||
const TOP = 0b0000_0010;
|
const TOP = 0b0000_0001;
|
||||||
/// Show the right border
|
/// Show the right border
|
||||||
const RIGHT = 0b0000_0100;
|
const RIGHT = 0b0000_0010;
|
||||||
/// Show the bottom border
|
/// Show the bottom border
|
||||||
const BOTTOM = 0b000_1000;
|
const BOTTOM = 0b000_0100;
|
||||||
/// Show the left border
|
/// Show the left border
|
||||||
const LEFT = 0b0001_0000;
|
const LEFT = 0b0000_1000;
|
||||||
/// Show all borders
|
/// Show all borders
|
||||||
const ALL = Self::TOP.bits | Self::RIGHT.bits | Self::BOTTOM.bits | Self::LEFT.bits;
|
const ALL = Self::TOP.bits | Self::RIGHT.bits | Self::BOTTOM.bits | Self::LEFT.bits;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue