Skip to content
Snippets Groups Projects
Commit 24d9db2d authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Load lib to return descriptive strings for terminal parameters

Much of the logic ported from sbbs_t methods in con_out.cpp

For Nelgin's default_settings.js project
parent 409d304e
Branches
Tags
No related merge requests found
// Terminal type/parameters (set or detected) descriptive strings
// Common function arguments:
// verbose: true if you want verbose output (default to false)
// usr: Pass a User object (defaults to current 'user')
// e.g. load("termdesc.js".type()
// load("termdesc.js".charset()
// load("termdesc.js".rows()
// load("termdesc.js".columns()
// load("termdesc.js".type(true)
// load("termdesc.js".type(true, User(4))
require("text.js", "TerminalAutoDetect");
require("userdefs.js", "USER_PETSCII");
"use strict";
function charset(term)
{
if(term === undefined)
term = console.term_supports();
if(term & USER_PETSCII)
return "CBM-ASCII";
if(term & USER_UTF8)
return "UTF-8";
if(term & USER_NO_EXASCII)
return "US-ASCII";
return "CP437";
}
function rows(verbose, usr)
{
if(usr === undefined) // Use current user by default
usr = user;
var rows = usr.screen_rows || console.screen_rows;
if(verbose !== true)
return String(rows);
return format("%s%d %s", usr.screen_rows ? "":bbs.text(TerminalAutoDetect), rows, bbs.text(TerminalRows));
}
function columns(verbose, usr)
{
if(usr === undefined) // Use current user by default
usr = user;
var cols = usr.screen_columns || console.screen_columns;
if(verbose !== true)
return String(cols);
return format("%s%d %s", usr.screen_columns ? "":bbs.text(TerminalAutoDetect), cols, bbs.text(TerminalColumns));
}
function type(verbose, usr)
{
var term;
if(usr === undefined) { // Use current user by default
usr = user;
term = console.term_supports(); // user current-detected terminal params
} else
term = usr.settings;
var type = "DUMB";
if(term & USER_PETSCII)
type = "PETSCII";
if(term & USER_RIP)
type = "RIP";
if(term & USER_ANSI)
type = "ANSI";
if(verbose !== true)
return type;
// Verbose
if(term & USER_PETSCII)
return ((usr.settings & USER_AUTOTERM) ? bbs.text(TerminalAutoDetect) : "") + "CBM/PETSCII";
return format("%s%s / %s %s%s%s"
,(usr.settings & USER_AUTOTERM) ? bbs.text(TerminalAutoDetect) : ""
,this.charset(term)
,type
,(term & USER_COLOR) ? (term & USER_ICE_COLOR ? bbs.text(TerminalIceColor) : bbs.text(TerminalColor)) : bbs.text(TerminalMonochrome)
,(term & USER_MOUSE) ? bbs.text(TerminalMouse) : ""
,(term & USER_SWAP_DELETE) ? "DEL=BS" : "").trimRight();
}
this;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment