2021-06-25 08:25:05 +02:00
|
|
|
---@meta
|
|
|
|
|
|
|
|
---
|
|
|
|
---Utilites for managing current window, files and more.
|
|
|
|
---@class system
|
|
|
|
system = {}
|
|
|
|
|
2021-06-30 09:02:01 +02:00
|
|
|
---@alias system.fileinfotype
|
2021-06-25 08:25:05 +02:00
|
|
|
---|>'"file"' # It is a file.
|
|
|
|
---| '"dir"' # It is a directory.
|
|
|
|
|
|
|
|
---
|
2021-06-30 09:02:01 +02:00
|
|
|
---@class system.fileinfo
|
2021-06-25 08:25:05 +02:00
|
|
|
---@field public modified number A timestamp in seconds.
|
|
|
|
---@field public size number Size in bytes.
|
2021-06-30 09:02:01 +02:00
|
|
|
---@field public type system.fileinfotype Type of file
|
|
|
|
system.fileinfo = {}
|
2021-06-25 08:25:05 +02:00
|
|
|
|
|
|
|
---
|
|
|
|
---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
|
|
|
|
|
2021-06-30 09:02:01 +02:00
|
|
|
---@alias system.windowmode
|
2021-06-25 08:25:05 +02:00
|
|
|
---|>'"normal"'
|
|
|
|
---| '"minimized"'
|
|
|
|
---| '"maximized"'
|
|
|
|
---| '"fullscreen"'
|
|
|
|
|
|
|
|
---
|
|
|
|
---Change the window mode.
|
|
|
|
---
|
2021-06-30 09:02:01 +02:00
|
|
|
---@param mode system.windowmode
|
2021-06-25 08:25:05 +02:00
|
|
|
function system.set_window_mode(mode) end
|
|
|
|
|
|
|
|
---
|
|
|
|
---Retrieve the current window mode.
|
|
|
|
---
|
2021-06-30 09:02:01 +02:00
|
|
|
---@return system.windowmode mode
|
2021-06-25 08:25:05 +02:00
|
|
|
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
|
|
|
|
---
|
2021-06-30 09:02:01 +02:00
|
|
|
---@return system.fileinfo|nil info Path details or nil if empty or error.
|
2021-06-25 08:25:05 +02:00
|
|
|
---@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
|