const std = @import("std");
pub const c = @import("c.zig").c;

pub const HintPriority = enum(c_int) {
    hintDefault,
    hintNormal,
    hintOverride,
};

pub inline fn setHintWithPriority(name: [*c]const u8, value: [*c]const u8, priority: HintPriority) bool {
    return c.SDL_SetHintWithPriority(name, value, priority);
}

pub inline fn setHint(name: [*c]const u8, value: [*c]const u8) bool {
    return c.SDL_SetHint(name, value);
}

pub inline fn resetHint(name: [*c]const u8) bool {
    return c.SDL_ResetHint(name);
}

pub inline fn resetHints() void {
    return c.SDL_ResetHints();
}

pub inline fn getHint(name: [*c]const u8) [*c]const u8 {
    return c.SDL_GetHint(name);
}

pub inline fn getHintBoolean(name: [*c]const u8, default_value: bool) bool {
    return c.SDL_GetHintBoolean(name, default_value);
}

pub const HintCallback = c.SDL_HintCallback;

pub inline fn addHintCallback(name: [*c]const u8, callback: HintCallback, userdata: ?*anyopaque) bool {
    return c.SDL_AddHintCallback(name, callback, userdata);
}

pub inline fn removeHintCallback(name: [*c]const u8, callback: HintCallback, userdata: ?*anyopaque) void {
    return c.SDL_RemoveHintCallback(name, callback, userdata);
}
