mirror of
https://github.com/helix-editor/helix
synced 2024-11-10 10:34:45 +01:00
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.
This commit is contained in:
parent
bfc4ff4dcf
commit
1837b5e4a6
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user