WindowServer: Make corner-radius a variable in config file!

This commit is contained in:
2024-09-12 20:07:30 +03:00
parent 6cd246a38e
commit c706829a91
4 changed files with 46 additions and 35 deletions

View File

@@ -19,6 +19,7 @@
struct Config
{
BAN::UniqPtr<LibImage::Image> background_image;
int32_t corner_radius = 0;
};
BAN::Optional<BAN::String> file_read_line(FILE* file)
@@ -88,6 +89,15 @@ Config parse_config()
else
config.background_image = image.release_value();
}
else if (variable == "corner-radius"_sv)
{
char* endptr = nullptr;
long corner_radius = strtol(value.data(), &endptr, 0);
if (corner_radius < 0 || corner_radius == LONG_MAX || corner_radius >= INT32_MAX)
dwarnln("invalid corner-radius: '{}'", value);
else
config.corner_radius = corner_radius;
}
else
{
dwarnln("Unknown config variable: {}", variable);
@@ -176,7 +186,7 @@ int main()
auto config = parse_config();
WindowServer window_server(framebuffer);
WindowServer window_server(framebuffer, config.corner_radius);
if (config.background_image)
if (auto ret = window_server.set_background_image(BAN::move(config.background_image)); ret.is_error())
dwarnln("Could not set background image: {}", ret.error());