Implemented contexts, optimizations
This commit is contained in:
		
							
								
								
									
										56
									
								
								lib/Style.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								lib/Style.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace NoccyLabs\Shell;
 | 
			
		||||
 | 
			
		||||
class Style
 | 
			
		||||
{
 | 
			
		||||
    const NONE          = null;
 | 
			
		||||
 | 
			
		||||
    const BLACK         = 0;
 | 
			
		||||
    const RED           = 1;
 | 
			
		||||
    const GREEN         = 2;
 | 
			
		||||
    const YELLOW        = 3;
 | 
			
		||||
    const BLUE          = 4;
 | 
			
		||||
    const CYAN          = 5;
 | 
			
		||||
    const MAGENTA       = 6;
 | 
			
		||||
    const WHITE         = 7;
 | 
			
		||||
    const GRAY          = 8;
 | 
			
		||||
    const BR_RED        = 9;
 | 
			
		||||
    const BR_GREEN      = 10;
 | 
			
		||||
    const BR_YELLOW     = 11;
 | 
			
		||||
    const BR_BLUE       = 12;
 | 
			
		||||
    const BR_CYAN       = 13;
 | 
			
		||||
    const BR_MAGENTA    = 14;
 | 
			
		||||
    const BR_WHITE      = 15;
 | 
			
		||||
 | 
			
		||||
    const A_INTENSE     = 1;
 | 
			
		||||
    const A_UNDERLINE   = 4;
 | 
			
		||||
    const A_INVERSE     = 7;
 | 
			
		||||
 | 
			
		||||
    protected $fg = self::NONE;
 | 
			
		||||
 | 
			
		||||
    protected $bg = self::NONE;
 | 
			
		||||
 | 
			
		||||
    public function __construct($fg=self::NONE, $bg=self::NONE)
 | 
			
		||||
    {
 | 
			
		||||
        $this->fg = $fg;
 | 
			
		||||
        $this->bg = $bg;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function __invoke($string)
 | 
			
		||||
    {
 | 
			
		||||
        $pre = null; $post = null;
 | 
			
		||||
        if ($this->fg !== self::NONE) {
 | 
			
		||||
            $pre.= "\e[".(($this->fg > 7)?(90+($this->fg-8)):(30+$this->fg))."m"; 
 | 
			
		||||
            $post.= "\e[39m";
 | 
			
		||||
        }
 | 
			
		||||
        if ($this->bg !== self::NONE) {
 | 
			
		||||
            $pre.= "\e[".(($this->bg > 7)?(100+($this->bg-8)):(40+$this->bg))."m"; 
 | 
			
		||||
            $post.= "\e[49m";
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return $pre . $string . $post;
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user