201 lines
4.0 KiB
Markdown
201 lines
4.0 KiB
Markdown
# module ui.console
|
|
|
|
has mechanisms to print better to console, see the methods below
|
|
|
|
import as
|
|
|
|
```vlang
|
|
import freeflowuniverse.herolib.ui.console
|
|
|
|
```
|
|
|
|
## Methods
|
|
|
|
````v
|
|
|
|
fn clear()
|
|
//reset the console screen
|
|
|
|
fn color_bg(c BackgroundColor) string
|
|
// will give ansi codes to change background color . dont forget to call reset to change back to normal
|
|
|
|
fn color_fg(c ForegroundColor) string
|
|
// will give ansi codes to change foreground color . don't forget to call reset to change back to normal
|
|
|
|
struct PrintArgs {
|
|
pub mut:
|
|
foreground ForegroundColor
|
|
background BackgroundColor
|
|
text string
|
|
style Style
|
|
reset_before bool = true
|
|
reset_after bool = true
|
|
}
|
|
|
|
fn cprint(args PrintArgs)
|
|
// print with colors, reset...
|
|
// ```
|
|
// foreground ForegroundColor
|
|
// background BackgroundColor
|
|
// text string
|
|
// style Style
|
|
// reset_before bool = true
|
|
// reset_after bool = true
|
|
// ```
|
|
|
|
fn cprintln(args_ PrintArgs)
|
|
|
|
fn expand(txt_ string, l int, with string) string
|
|
// expand text till length l, with string which is normally ' '
|
|
|
|
fn lf()
|
|
line feed
|
|
|
|
fn new() UIConsole
|
|
|
|
fn print_array(arr [][]string, delimiter string, sort bool)
|
|
// print 2 dimensional array, delimeter is between columns
|
|
|
|
fn print_debug(i IPrintable)
|
|
|
|
fn print_debug_title(title string, txt string)
|
|
|
|
fn print_green(txt string)
|
|
|
|
fn print_header(txt string)
|
|
|
|
fn print_item(txt string)
|
|
|
|
fn print_lf(nr int)
|
|
|
|
fn print_stderr(txt string)
|
|
|
|
fn print_stdout(txt string)
|
|
|
|
fn reset() string
|
|
|
|
fn silent_get() bool
|
|
|
|
fn silent_set()
|
|
|
|
fn silent_unset()
|
|
|
|
fn style(c Style) string
|
|
// will give ansi codes to change style . don't forget to call reset to change back to normal
|
|
|
|
fn trim(c_ string) string
|
|
|
|
````
|
|
|
|
## Console Object
|
|
|
|
Is used to ask feedback to users
|
|
|
|
```v
|
|
|
|
struct UIConsole {
|
|
pub mut:
|
|
x_max int = 80
|
|
y_max int = 60
|
|
prev_lf bool
|
|
prev_title bool
|
|
prev_item bool
|
|
}
|
|
|
|
//DropDownArgs:
|
|
// - description string
|
|
// - items []string
|
|
// - warning string
|
|
// - clear bool = true
|
|
|
|
|
|
fn (mut c UIConsole) ask_dropdown_int(args_ DropDownArgs) !int
|
|
// return the dropdown as an int
|
|
|
|
fn (mut c UIConsole) ask_dropdown_multiple(args_ DropDownArgs) ![]string
|
|
// result can be multiple, aloso can select all description string items []string warning string clear bool = true
|
|
|
|
fn (mut c UIConsole) ask_dropdown(args DropDownArgs) !string
|
|
// will return the string as given as response description
|
|
|
|
// QuestionArgs:
|
|
// - description string
|
|
// - question string
|
|
// - warning: string (if it goes wrong, which message to use)
|
|
// - reset bool = true
|
|
// - regex: to check what result need to be part of
|
|
// - minlen: min nr of chars
|
|
|
|
fn (mut c UIConsole) ask_question(args QuestionArgs) !string
|
|
|
|
fn (mut c UIConsole) ask_time(args QuestionArgs) !string
|
|
|
|
fn (mut c UIConsole) ask_date(args QuestionArgs) !string
|
|
|
|
fn (mut c UIConsole) ask_yesno(args YesNoArgs) !bool
|
|
// yes is true, no is false
|
|
// args:
|
|
// - description string
|
|
// - question string
|
|
// - warning string
|
|
// - clear bool = true
|
|
|
|
fn (mut c UIConsole) reset()
|
|
|
|
fn (mut c UIConsole) status() string
|
|
|
|
```
|
|
|
|
## enums
|
|
|
|
```v
|
|
enum BackgroundColor {
|
|
default_color = 49 // 'default' is a reserved keyword in V
|
|
black = 40
|
|
red = 41
|
|
green = 42
|
|
yellow = 43
|
|
blue = 44
|
|
magenta = 45
|
|
cyan = 46
|
|
light_gray = 47
|
|
dark_gray = 100
|
|
light_red = 101
|
|
light_green = 102
|
|
light_yellow = 103
|
|
light_blue = 104
|
|
light_magenta = 105
|
|
light_cyan = 106
|
|
white = 107
|
|
}
|
|
enum ForegroundColor {
|
|
default_color = 39 // 'default' is a reserved keyword in V
|
|
white = 97
|
|
black = 30
|
|
red = 31
|
|
green = 32
|
|
yellow = 33
|
|
blue = 34
|
|
magenta = 35
|
|
cyan = 36
|
|
light_gray = 37
|
|
dark_gray = 90
|
|
light_red = 91
|
|
light_green = 92
|
|
light_yellow = 93
|
|
light_blue = 94
|
|
light_magenta = 95
|
|
light_cyan = 96
|
|
}
|
|
enum Style {
|
|
normal = 99
|
|
bold = 1
|
|
dim = 2
|
|
underline = 4
|
|
blink = 5
|
|
reverse = 7
|
|
hidden = 8
|
|
}
|
|
|
|
```
|