41 lines
948 B
PHP
41 lines
948 B
PHP
<?php
|
|
|
|
namespace App\Classes\Frame;
|
|
|
|
use App\Classes\Parser;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
use App\Classes\Frame;
|
|
use App\Classes\Parser\Ansi as AnsiParser;
|
|
use App\Models\Frame as FrameModel;
|
|
|
|
class Ansi extends Frame
|
|
{
|
|
public static $frame_length = 22;
|
|
public static $frame_width = 80;
|
|
|
|
public static $header_length = 58;
|
|
public static $pagenum_length = 11;
|
|
public static $cost_length = 7;
|
|
public static $cost_unit = 'u';
|
|
|
|
public static $if_filler = '.';
|
|
|
|
public function __construct(FrameModel $o,string $msg='')
|
|
{
|
|
parent::__construct($o);
|
|
|
|
// If we have a message to display on the bottom line.
|
|
if ($msg)
|
|
$this->output .= ESC.'[24;0f'.$msg.HOME;
|
|
}
|
|
|
|
protected function parser(int $startline): Parser
|
|
{
|
|
return new AnsiParser($this->fo->content,self::$frame_width,$startline);
|
|
}
|
|
|
|
public static function strlenv($text):int {
|
|
return strlen($text ? preg_replace('/'.ESC.'\[[0-9;?]+[a-zA-Z]/','',$text) : $text);
|
|
}
|
|
} |