flow/src/renderer/notcurses/channels.zig

40 lines
1.1 KiB
Zig

const Style = @import("theme").Style;
const nc = @import("notcurses");
pub const set_fg_rgb = nc.channels_set_fg_rgb;
pub const set_bg_rgb = nc.channels_set_bg_rgb;
pub fn set_fg_opaque(channels_: *u64) void {
nc.channels_set_fg_alpha(channels_, nc.ALPHA_OPAQUE) catch {};
}
pub fn set_bg_opaque(channels_: *u64) void {
nc.channels_set_bg_alpha(channels_, nc.ALPHA_OPAQUE) catch {};
}
pub fn set_fg_transparent(channels_: *u64) void {
nc.channels_set_fg_alpha(channels_, nc.ALPHA_TRANSPARENT) catch {};
}
pub fn set_bg_transparent(channels_: *u64) void {
nc.channels_set_bg_alpha(channels_, nc.ALPHA_TRANSPARENT) catch {};
}
pub inline fn fg_from_style(channels_: *u64, style_: Style) void {
if (style_.fg) |fg| {
set_fg_rgb(channels_, fg) catch {};
set_fg_opaque(channels_);
}
}
pub inline fn bg_from_style(channels_: *u64, style_: Style) void {
if (style_.bg) |bg| {
set_bg_rgb(channels_, bg) catch {};
set_bg_opaque(channels_);
}
}
pub inline fn from_style(channels_: *u64, style_: Style) void {
fg_from_style(channels_, style_);
bg_from_style(channels_, style_);
}