fix: don't have new on ColoredElements anymore, removed default for palette in zellij-tile

This commit is contained in:
denis 2021-05-02 12:25:49 +03:00
parent 452940fb65
commit d48cc81536
4 changed files with 62 additions and 138 deletions

View file

@ -34,7 +34,7 @@ impl Display for LinePart {
#[derive(Clone, Copy)]
pub struct ColoredElements {
// slected mode
// selected mode
pub selected_prefix_separator: Style,
pub selected_char_left_separator: Style,
pub selected_char_shortcut: Style,
@ -65,117 +65,62 @@ pub struct ColoredElements {
pub superkey_suffix_separator: Style,
}
impl ColoredElements {
#[allow(clippy::too_many_arguments)]
pub fn new(
selected_prefix_separator: Style,
selected_char_left_separator: Style,
selected_char_shortcut: Style,
selected_char_right_separator: Style,
selected_styled_text: Style,
selected_suffix_separator: Style,
unselected_prefix_separator: Style,
unselected_char_left_separator: Style,
unselected_char_shortcut: Style,
unselected_char_right_separator: Style,
unselected_styled_text: Style,
unselected_suffix_separator: Style,
disabled_prefix_separator: Style,
disabled_styled_text: Style,
disabled_suffix_separator: Style,
selected_single_letter_prefix_separator: Style,
selected_single_letter_char_shortcut: Style,
selected_single_letter_suffix_separator: Style,
unselected_single_letter_prefix_separator: Style,
unselected_single_letter_char_shortcut: Style,
unselected_single_letter_suffix_separator: Style,
superkey_prefix: Style,
superkey_suffix_separator: Style,
) -> Self {
Self {
selected_prefix_separator,
selected_char_left_separator,
selected_char_shortcut,
selected_char_right_separator,
selected_styled_text,
selected_suffix_separator,
unselected_prefix_separator,
unselected_char_left_separator,
unselected_char_shortcut,
unselected_char_right_separator,
unselected_styled_text,
unselected_suffix_separator,
disabled_prefix_separator,
disabled_styled_text,
disabled_suffix_separator,
selected_single_letter_prefix_separator,
selected_single_letter_char_shortcut,
selected_single_letter_suffix_separator,
unselected_single_letter_prefix_separator,
unselected_single_letter_char_shortcut,
unselected_single_letter_suffix_separator,
superkey_prefix,
superkey_suffix_separator,
}
}
}
// I really hate this, but I can't come up with a good solution for this,
// we need different colors from palette for the default theme
// plus here we can add new sources in the future, like Theme
// that can be defined in the config perhaps
fn color_elements(palette: Palette) -> ColoredElements {
match palette.source {
PaletteSource::Default => ColoredElements::new(
style!(palette.bg, palette.green),
style!(palette.black, palette.green).bold(),
style!(palette.red, palette.green).bold(),
style!(palette.black, palette.green).bold(),
style!(palette.black, palette.green).bold(),
style!(palette.green, palette.bg).bold(),
style!(palette.bg, palette.fg),
style!(palette.bg, palette.fg).bold(),
style!(palette.red, palette.fg).bold(),
style!(palette.bg, palette.fg).bold(),
style!(palette.black, palette.fg).bold(),
style!(palette.fg, palette.bg),
style!(palette.bg, palette.fg),
style!(palette.bg, palette.fg).dimmed(),
style!(palette.fg, palette.bg),
style!(palette.fg, palette.green),
style!(palette.red, palette.green).bold(),
style!(palette.green, palette.fg),
style!(palette.fg, palette.bg),
style!(palette.red, palette.fg).bold(),
style!(palette.fg, palette.bg),
style!(palette.white, palette.bg).bold(),
style!(palette.bg, palette.bg),
),
PaletteSource::Xresources => ColoredElements::new(
style!(palette.bg, palette.green),
style!(palette.fg, palette.green).bold(),
style!(palette.red, palette.green).bold(),
style!(palette.fg, palette.green).bold(),
style!(palette.bg, palette.green).bold(),
style!(palette.green, palette.bg).bold(),
style!(palette.bg, palette.fg),
style!(palette.bg, palette.fg).bold(),
style!(palette.red, palette.fg).bold(),
style!(palette.bg, palette.fg).bold(),
style!(palette.bg, palette.fg).bold(),
style!(palette.fg, palette.bg),
style!(palette.bg, palette.fg),
style!(palette.bg, palette.fg).dimmed(),
style!(palette.fg, palette.bg),
style!(palette.fg, palette.green),
style!(palette.red, palette.green).bold(),
style!(palette.green, palette.fg),
style!(palette.fg, palette.bg),
style!(palette.red, palette.fg).bold(),
style!(palette.fg, palette.bg),
style!(palette.bg, palette.fg).bold(),
style!(palette.fg, palette.bg),
),
PaletteSource::Default => ColoredElements {
selected_prefix_separator: style!(palette.bg, palette.green),
selected_char_left_separator: style!(palette.black, palette.green).bold(),
selected_char_shortcut: style!(palette.red, palette.green).bold(),
selected_char_right_separator: style!(palette.black, palette.green).bold(),
selected_styled_text: style!(palette.black, palette.green).bold(),
selected_suffix_separator: style!(palette.green, palette.bg).bold(),
unselected_prefix_separator: style!(palette.bg, palette.fg),
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
unselected_styled_text: style!(palette.black, palette.fg).bold(),
unselected_suffix_separator: style!(palette.fg, palette.bg),
disabled_prefix_separator: style!(palette.bg, palette.fg),
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
disabled_suffix_separator: style!(palette.fg, palette.bg),
selected_single_letter_prefix_separator: style!(palette.fg, palette.green),
selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(),
selected_single_letter_suffix_separator: style!(palette.green, palette.fg),
unselected_single_letter_prefix_separator: style!(palette.fg, palette.bg),
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
superkey_prefix: style!(palette.white, palette.bg).bold(),
superkey_suffix_separator: style!(palette.bg, palette.bg),
},
PaletteSource::Xresources => ColoredElements {
selected_prefix_separator: style!(palette.bg, palette.green),
selected_char_left_separator: style!(palette.fg, palette.green).bold(),
selected_char_shortcut: style!(palette.red, palette.green).bold(),
selected_char_right_separator: style!(palette.fg, palette.green).bold(),
selected_styled_text: style!(palette.bg, palette.green).bold(),
selected_suffix_separator: style!(palette.green, palette.bg).bold(),
unselected_prefix_separator: style!(palette.bg, palette.fg),
unselected_char_left_separator: style!(palette.bg, palette.fg).bold(),
unselected_char_shortcut: style!(palette.red, palette.fg).bold(),
unselected_char_right_separator: style!(palette.bg, palette.fg).bold(),
unselected_styled_text: style!(palette.bg, palette.fg).bold(),
unselected_suffix_separator: style!(palette.fg, palette.bg),
disabled_prefix_separator: style!(palette.bg, palette.fg),
disabled_styled_text: style!(palette.bg, palette.fg).dimmed(),
disabled_suffix_separator: style!(palette.fg, palette.bg),
selected_single_letter_prefix_separator: style!(palette.fg, palette.green),
selected_single_letter_char_shortcut: style!(palette.red, palette.green).bold(),
selected_single_letter_suffix_separator: style!(palette.green, palette.fg),
unselected_single_letter_prefix_separator: style!(palette.fg, palette.bg),
unselected_single_letter_char_shortcut: style!(palette.red, palette.fg).bold(),
unselected_single_letter_suffix_separator: style!(palette.fg, palette.bg),
superkey_prefix: style!(palette.bg, palette.fg).bold(),
superkey_suffix_separator: style!(palette.fg, palette.bg),
},
}
}

View file

@ -1,5 +1,5 @@
use crate::{LinePart, ARROW_SEPARATOR};
use ansi_term::{ANSIStrings, Color::RGB, Style};
use ansi_term::ANSIStrings;
use zellij_tile::prelude::*;
pub fn active_tab(text: String, palette: Palette) -> LinePart {

View file

@ -259,7 +259,6 @@ pub fn start(mut os_input: Box<dyn OsApi>, opts: CliArgs, config: Config) {
let send_app_instructions = send_app_instructions.clone();
let max_panes = opts.max_panes;
let colors = os_input.load_palette();
// debug_log_to_file(format!("{:?}", colors));
move || {
let mut screen = Screen::new(
receive_screen_instructions,

View file

@ -72,23 +72,23 @@ pub enum Theme {
Light,
Dark,
}
impl Default for Theme {
fn default() -> Theme {
Theme::Dark
}
}
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub enum PaletteSource {
Default,
Xresources,
}
pub mod colors {
pub const WHITE: (u8, u8, u8) = (238, 238, 238);
pub const GREEN: (u8, u8, u8) = (175, 255, 0);
pub const GRAY: (u8, u8, u8) = (68, 68, 68);
pub const BRIGHT_GRAY: (u8, u8, u8) = (138, 138, 138);
pub const RED: (u8, u8, u8) = (135, 0, 0);
pub const ORANGE: (u8, u8, u8) = (215, 95, 0);
pub const BLACK: (u8, u8, u8) = (0, 0, 0);
impl Default for PaletteSource {
fn default() -> PaletteSource {
PaletteSource::Default
}
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
}
#[derive(Clone, Copy, Debug, Serialize, Deserialize, PartialEq, Eq, Hash, Default)]
pub struct Palette {
pub source: PaletteSource,
pub theme: Theme,
@ -105,26 +105,6 @@ pub struct Palette {
pub orange: (u8, u8, u8),
}
impl Default for Palette {
fn default() -> Palette {
Palette {
source: PaletteSource::Default,
theme: Theme::Dark,
fg: colors::BRIGHT_GRAY,
bg: colors::BLACK,
black: colors::BLACK,
red: colors::RED,
green: colors::GREEN,
yellow: colors::GRAY,
blue: colors::GRAY,
magenta: colors::GRAY,
cyan: colors::GRAY,
white: colors::WHITE,
orange: colors::ORANGE,
}
}
}
/// Represents the contents of the help message that is printed in the status bar,
/// which indicates the current [`InputMode`] and what the keybinds for that mode
/// are. Related to the default `status-bar` plugin.