Documented with EmmyLua the C API using .lua interface files.
This commit is contained in:
@@ -0,0 +1,234 @@
|
||||
---@meta
|
||||
|
||||
---
|
||||
---Utilites for managing current window, files and more.
|
||||
---@class system
|
||||
system = {}
|
||||
|
||||
---@alias FileInfoType
|
||||
---|>'"file"' # It is a file.
|
||||
---| '"dir"' # It is a directory.
|
||||
|
||||
---
|
||||
---@class FileInfo
|
||||
---@field public modified number A timestamp in seconds.
|
||||
---@field public size number Size in bytes.
|
||||
---@field public type FileInfoType Type of file
|
||||
FileInfo = {}
|
||||
|
||||
---
|
||||
---Core function used to retrieve the current event been triggered by SDL.
|
||||
---
|
||||
---The following is a list of event types emitted by this function and
|
||||
---the arguments for each of them if applicable.
|
||||
---
|
||||
---Window events:
|
||||
--- * "quit"
|
||||
--- * "resized" -> width, height
|
||||
--- * "exposed"
|
||||
--- * "minimized"
|
||||
--- * "maximized"
|
||||
--- * "restored"
|
||||
--- * "focuslost"
|
||||
---
|
||||
---File events:
|
||||
--- * "filedropped" -> filename, x, y
|
||||
---
|
||||
---Keyboard events:
|
||||
--- * "keypressed" -> key_name
|
||||
--- * "keyreleased" -> key_name
|
||||
--- * "textinput" -> text
|
||||
---
|
||||
---Mouse events:
|
||||
--- * "mousepressed" -> button_name, x, y, amount_of_clicks
|
||||
--- * "mousereleased" -> button_name, x, y
|
||||
--- * "mousemoved" -> x, y, relative_x, relative_y
|
||||
--- * "mousewheel" -> y
|
||||
---
|
||||
---@return string type
|
||||
---@return any? arg1
|
||||
---@return any? arg2
|
||||
---@return any? arg3
|
||||
---@return any? arg4
|
||||
function system.poll_event() end
|
||||
|
||||
---
|
||||
---Wait until an event is triggered.
|
||||
---
|
||||
---@param timeout number Amount of seconds, also supports fractions
|
||||
---of a second, eg: 0.01
|
||||
---
|
||||
---@return boolean status True on success or false if there was an error.
|
||||
function system.wait_event(timeout) end
|
||||
|
||||
---
|
||||
---Change the cursor type displayed on screen.
|
||||
---
|
||||
---@param type string | "'arrow'" | "'ibeam'" | "'sizeh'" | "'sizev'" | "'hand'"
|
||||
function system.set_cursor(type) end
|
||||
|
||||
---
|
||||
---Change the window title.
|
||||
---
|
||||
---@param title string
|
||||
function system.set_window_title(title) end
|
||||
|
||||
---@alias SystemWindowMode
|
||||
---|>'"normal"'
|
||||
---| '"minimized"'
|
||||
---| '"maximized"'
|
||||
---| '"fullscreen"'
|
||||
|
||||
---
|
||||
---Change the window mode.
|
||||
---
|
||||
---@param mode SystemWindowMode
|
||||
function system.set_window_mode(mode) end
|
||||
|
||||
---
|
||||
---Retrieve the current window mode.
|
||||
---
|
||||
---@return SystemWindowMode mode
|
||||
function system.get_window_mode() end
|
||||
|
||||
---
|
||||
---Toggle between bordered and borderless.
|
||||
---
|
||||
---@param bordered boolean
|
||||
function system.set_window_bordered(bordered) end
|
||||
|
||||
---
|
||||
---When then window is run borderless (without system decorations), this
|
||||
---function allows to set the size of the different regions that allow
|
||||
---for custom window management.
|
||||
---
|
||||
---@param title_height number
|
||||
---@param controls_width number This is for minimize, maximize, close, etc...
|
||||
---@param resize_border number The amount of pixels reserved for resizing
|
||||
function system.set_window_hit_test(title_height, controls_width, resize_border) end
|
||||
|
||||
---
|
||||
---Get the size and coordinates of the window.
|
||||
---
|
||||
---@return number width
|
||||
---@return number height
|
||||
---@return number x
|
||||
---@return number y
|
||||
function system.get_window_size() end
|
||||
|
||||
---
|
||||
---Sets the size and coordinates of the window.
|
||||
---
|
||||
---@param width number
|
||||
---@param height number
|
||||
---@param x number
|
||||
---@param y number
|
||||
function system.set_window_size(width, height, x, y) end
|
||||
|
||||
---
|
||||
---Check if the window currently has focus.
|
||||
---
|
||||
---@return boolean
|
||||
function system.window_has_focus() end
|
||||
|
||||
---
|
||||
---Opens a message box to display an error message.
|
||||
---
|
||||
---@param title string
|
||||
---@param message string
|
||||
function system.show_fatal_error(title, message) end
|
||||
|
||||
---
|
||||
---Change the current directory path which affects relative file operations.
|
||||
---This function raises an error if the path doesn't exists.
|
||||
---
|
||||
---@param path string
|
||||
function system.chdir(path) end
|
||||
|
||||
---
|
||||
---Create a new directory, note that this function doesn't recursively
|
||||
---creates the directories on the given path.
|
||||
---
|
||||
---@param directory_path string
|
||||
---
|
||||
---@return boolean created True on success or false on failure.
|
||||
function system.mkdir(directory_path) end
|
||||
|
||||
---
|
||||
---Gets a list of files and directories for a given path.
|
||||
---
|
||||
---@param path string
|
||||
---
|
||||
---@return table|nil list List of directories or nil if empty or error.
|
||||
---@return string? message Error message in case of error.
|
||||
function system.list_dir(path) end
|
||||
|
||||
---
|
||||
---Converts a relative path from current directory to the absolute one.
|
||||
---
|
||||
---@param path string
|
||||
---
|
||||
---@return string
|
||||
function system.absolute_path(path) end
|
||||
|
||||
---
|
||||
---Get details about a given file or path.
|
||||
---
|
||||
---@param path string Can be a file or a directory path
|
||||
---
|
||||
---@return FileInfo|nil info Path details or nil if empty or error.
|
||||
---@return string? message Error message in case of error.
|
||||
function system.get_file_info(path) end
|
||||
|
||||
---
|
||||
---Retrieve the text currently stored on the clipboard.
|
||||
---
|
||||
---@return string
|
||||
function system.get_clipboard() end
|
||||
|
||||
---
|
||||
---Set the content of the clipboard.
|
||||
---
|
||||
---@param text string
|
||||
function system.set_clipboard(text) end
|
||||
|
||||
---
|
||||
---Get amount of iterations since the application was launched
|
||||
---also known as SDL_GetPerformanceCounter() / SDL_GetPerformanceFrequency()
|
||||
---
|
||||
---@return number
|
||||
function system.get_time() end
|
||||
|
||||
---
|
||||
---Sleep for the given amount of seconds.
|
||||
---
|
||||
---@param seconds number Also supports fractions of a second, eg: 0.01
|
||||
function system.sleep(seconds) end
|
||||
|
||||
---
|
||||
---Similar to os.execute() but does not return the exit status of the
|
||||
---executed command and executes the process in a non blocking way by
|
||||
---forking it to the background.
|
||||
---
|
||||
---@param command string The command to execute.
|
||||
function system.exec(command) end
|
||||
|
||||
---
|
||||
---Generates a matching score depending on how well the value of the
|
||||
---given needle compares to that of the value in the haystack.
|
||||
---
|
||||
---@param haystack string
|
||||
---@param needle string
|
||||
---@param file boolean Reverse the algorithm to prioritize the end
|
||||
---of the haystack, eg: with a haystack "/my/path/to/file" and a needle
|
||||
---"file", will get better score than with this option not set to true.
|
||||
---
|
||||
---@return integer score
|
||||
function system.fuzzy_match(haystack, needle, file) end
|
||||
|
||||
---
|
||||
---Change the opacity (also known as transparency) of the window.
|
||||
---
|
||||
---@param opacity number A value from 0.0 to 1.0, the lower the value
|
||||
---the less visible the window will be.
|
||||
function system.set_window_opacity(opacity) end
|
||||
Reference in New Issue
Block a user