From 3fff29b73c0402f6cd82c47990a372fcf68b44c3 Mon Sep 17 00:00:00 2001 From: Akshay Date: Thu, 25 Mar 2021 13:09:05 +0530 Subject: impl message colors; reading file path on load --- src/message.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'src/message.rs') diff --git a/src/message.rs b/src/message.rs index d1032cf..958dd68 100644 --- a/src/message.rs +++ b/src/message.rs @@ -1,3 +1,7 @@ +use crate::consts::colors::*; + +use sdl2::pixels::Color; + #[derive(Debug)] pub struct Message { pub text: String, @@ -11,14 +15,36 @@ impl Message { kind: MessageKind::Info, } } + pub fn kind(mut self, kind: MessageKind) -> Self { self.kind = kind; self } + pub fn text>(mut self, text: S) -> Self { self.text = text.as_ref().into(); self } + + pub fn set_info>(&mut self, text: S) { + self.text = text.as_ref().into(); + self.kind = MessageKind::Info; + } + + pub fn set_error>(&mut self, text: S) { + self.text = text.as_ref().into(); + self.kind = MessageKind::Error; + } + + pub fn set_hint>(&mut self, text: S) { + self.text = text.as_ref().into(); + self.kind = MessageKind::Hint; + } + + pub fn clear(&mut self) { + self.text.clear(); + self.kind = MessageKind::Info; + } } #[derive(Debug, Copy, Clone)] @@ -40,3 +66,14 @@ where }; } } + +impl Into for MessageKind { + fn into(self) -> Color { + match self { + Self::Error => PINK, + Self::Info => WHITE, + Self::Hint => CYAN, + Self::LispResult => GREY, + } + } +} -- cgit v1.2.3