mirror of https://github.com/fairyglade/ly.git
Custom info text
This commit is contained in:
parent
4415545f7b
commit
1d3148201c
|
|
@ -10,6 +10,7 @@ bg: u8 = 0,
|
||||||
bigclock: bool = false,
|
bigclock: bool = false,
|
||||||
blank_box: bool = true,
|
blank_box: bool = true,
|
||||||
border_fg: u8 = 8,
|
border_fg: u8 = 8,
|
||||||
|
box_title: ?[]const u8 = null,
|
||||||
clear_password: bool = false,
|
clear_password: bool = false,
|
||||||
clock: ?[:0]const u8 = null,
|
clock: ?[:0]const u8 = null,
|
||||||
console_dev: [:0]const u8 = "/dev/console",
|
console_dev: [:0]const u8 = "/dev/console",
|
||||||
|
|
@ -17,6 +18,7 @@ default_input: Input = .login,
|
||||||
fg: u8 = 8,
|
fg: u8 = 8,
|
||||||
hide_borders: bool = false,
|
hide_borders: bool = false,
|
||||||
hide_key_hints: bool = false,
|
hide_key_hints: bool = false,
|
||||||
|
initial_info_text: ?[]const u8 = null,
|
||||||
input_len: u8 = 34,
|
input_len: u8 = 34,
|
||||||
lang: []const u8 = "en",
|
lang: []const u8 = "en",
|
||||||
load: bool = true,
|
load: bool = true,
|
||||||
|
|
|
||||||
10
src/main.zig
10
src/main.zig
|
|
@ -129,8 +129,10 @@ pub fn main() !void {
|
||||||
|
|
||||||
interop.setNumlock(config.numlock) catch {};
|
interop.setNumlock(config.numlock) catch {};
|
||||||
|
|
||||||
|
if (config.initial_info_text) |text| {
|
||||||
|
try info_line.setText(text);
|
||||||
|
} else get_host_name: {
|
||||||
// Initialize information line with host name
|
// Initialize information line with host name
|
||||||
get_host_name: {
|
|
||||||
var name_buf: [std.posix.HOST_NAME_MAX]u8 = undefined;
|
var name_buf: [std.posix.HOST_NAME_MAX]u8 = undefined;
|
||||||
const hostname = std.posix.gethostname(&name_buf) catch {
|
const hostname = std.posix.gethostname(&name_buf) catch {
|
||||||
try info_line.setText(lang.err_hostname);
|
try info_line.setText(lang.err_hostname);
|
||||||
|
|
@ -395,9 +397,13 @@ pub fn main() !void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.box_title) |title| {
|
||||||
|
buffer.drawConfinedLabel(title, buffer.box_x, buffer.box_y - 1, buffer.box_width);
|
||||||
|
}
|
||||||
|
|
||||||
if (config.vi_mode) {
|
if (config.vi_mode) {
|
||||||
const label_txt = if (insert_mode) lang.insert else lang.normal;
|
const label_txt = if (insert_mode) lang.insert else lang.normal;
|
||||||
buffer.drawLabel(label_txt, buffer.box_x, buffer.box_y - 1);
|
buffer.drawLabel(label_txt, buffer.box_x, buffer.box_y + buffer.box_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
draw_lock_state: {
|
draw_lock_state: {
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,20 @@ pub fn drawLabel(self: TerminalBuffer, text: []const u8, x: u64, y: u64) void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn drawConfinedLabel(self: TerminalBuffer, text: []const u8, x: u64, y: u64, max_length: u64) void {
|
||||||
|
var confined_text = text;
|
||||||
|
if (text.len > max_length) confined_text = text[0..max_length];
|
||||||
|
|
||||||
|
const yc: c_int = @intCast(y);
|
||||||
|
const utf8view = std.unicode.Utf8View.init(confined_text) catch return;
|
||||||
|
var utf8 = utf8view.iterator();
|
||||||
|
|
||||||
|
var i = x;
|
||||||
|
while (utf8.nextCodepoint()) |codepoint| : (i += 1) {
|
||||||
|
termbox.tb_change_cell(@intCast(i), yc, codepoint, self.fg, self.bg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn drawCharMultiple(self: TerminalBuffer, char: u8, x: u64, y: u64, length: u64) void {
|
pub fn drawCharMultiple(self: TerminalBuffer, char: u8, x: u64, y: u64, length: u64) void {
|
||||||
const yc: c_int = @intCast(y);
|
const yc: c_int = @intCast(y);
|
||||||
const cell = utils.initCell(char, self.fg, self.bg);
|
const cell = utils.initCell(char, self.fg, self.bg);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue