---@meta --- --- lvgl comments --- lvgl = {} --- constans table. Note that value listed here is only for linter. --- @enum ObjEventCode lvgl.EVENT = { ALL = 0, PRESSED = 0, PRESSING = 0, PRESS_LOST = 0, SHORT_CLICKED = 0, LONG_PRESSED = 0, LONG_PRESSED_REPEAT = 0, CLICKED = 0, RELEASED = 0, SCROLL_BEGIN = 0, SCROLL_END = 0, SCROLL = 0, GESTURE = 0, KEY = 0, FOCUSED = 0, DEFOCUSED = 0, LEAVE = 0, HIT_TEST = 0, COVER_CHECK = 0, REFR_EXT_DRAW_SIZE = 0, DRAW_MAIN_BEGIN = 0, DRAW_MAIN = 0, DRAW_MAIN_END = 0, DRAW_POST_BEGIN = 0, DRAW_POST = 0, DRAW_POST_END = 0, DRAW_PART_BEGIN = 0, DRAW_PART_END = 0, VALUE_CHANGED = 0, INSERT = 0, REFRESH = 0, READY = 0, CANCEL = 0, DELETE = 0, CHILD_CHANGED = 0, CHILD_CREATED = 0, CHILD_DELETED = 0, SCREEN_UNLOAD_START = 0, SCREEN_LOAD_START = 0, SCREEN_LOADED = 0, SCREEN_UNLOADED = 0, SIZE_CHANGED = 0, STYLE_CHANGED = 0, LAYOUT_CHANGED = 0, GET_SELF_SIZE = 0, } --- object flag for obj:add_flag obj:clear_flag --- @enum ObjFlag lvgl.FLAG = { PRESSED = 0, HIDDEN = 0, CLICKABLE = 0, CLICK_FOCUSABLE = 0, CHECKABLE = 0, SCROLLABLE = 0, SCROLL_ELASTIC = 0, SCROLL_MOMENTUM = 0, SCROLL_ONE = 0, SCROLL_CHAIN_HOR = 0, SCROLL_CHAIN_VER = 0, SCROLL_CHAIN = 0, SCROLL_ON_FOCUS = 0, SCROLL_WITH_ARROW = 0, SNAPPABLE = 0, PRESS_LOCK = 0, EVENT_BUBBLE = 0, GESTURE_BUBBLE = 0, ADV_HITTEST = 0, IGNORE_LAYOUT = 0, FLOATING = 0, OVERFLOW_VISIBLE = 0, LAYOUT_1 = 0, LAYOUT_2 = 0, WIDGET_1 = 0, WIDGET_2 = 0, USER_1 = 0, USER_2 = 0, USER_3 = 0, USER_4 = 0, } --- @enum ObjState lvgl.STATE = { DEFAULT = 0, CHECKED = 0, FOCUSED = 0, FOCUS_KEY = 0, EDITED = 0, HOVERED = 0, PRESSED = 0, SCROLLED = 0, DISABLED = 0, USER_1 = 0, USER_2 = 0, USER_3 = 0, USER_4 = 0, ANY = 0, } --- @enum ObjAlignType lvgl.ALIGN = { DEFAULT = 0, TOP_LEFT = 0, TOP_MID = 0, TOP_RIGHT = 0, BOTTOM_LEFT = 0, BOTTOM_MID = 0, BOTTOM_RIGHT = 0, LEFT_MID = 0, RIGHT_MID = 0, CENTER = 0, OUT_TOP_LEFT = 0, OUT_TOP_MID = 0, OUT_TOP_RIGHT = 0, OUT_BOTTOM_LEFT = 0, OUT_BOTTOM_MID = 0, OUT_BOTTOM_RIGHT = 0, OUT_LEFT_TOP = 0, OUT_LEFT_MID = 0, OUT_LEFT_BOTTOM = 0, OUT_RIGHT_TOP = 0, OUT_RIGHT_MID = 0, OUT_RIGHT_BOTTOM = 0, } --- @enum BuiltinFont lvgl.BUILTIN_FONT = { MONTSERRAT_8 = 0, MONTSERRAT_10 = 0, MONTSERRAT_12 = 0, MONTSERRAT_14 = 0, MONTSERRAT_16 = 0, MONTSERRAT_18 = 0, MONTSERRAT_20 = 0, MONTSERRAT_22 = 0, MONTSERRAT_24 = 0, MONTSERRAT_26 = 0, MONTSERRAT_28 = 0, MONTSERRAT_30 = 0, MONTSERRAT_32 = 0, MONTSERRAT_34 = 0, MONTSERRAT_36 = 0, MONTSERRAT_38 = 0, MONTSERRAT_40 = 0, MONTSERRAT_42 = 0, MONTSERRAT_44 = 0, MONTSERRAT_46 = 0, MONTSERRAT_48 = 0, MONTSERRAT_12_SUBPX = 0, MONTSERRAT_28_COMPRESSED = 0, DEJAVU_16_PERSIAN_HEBREW = 0, SIMSUN_16_CJK = 0, UNSCII_8 = 0, UNSCII_16 = 0, } --- @enum LABEL lvgl.LABEL = { LONG_WRAP = 0, LONG_DOT = 0, LONG_SCROLL = 0, LONG_SCROLL_CIRCULAR = 0, LONG_CLIP = 0, } --- @enum SCR_LOAD_ANIM lvgl.SCR_LOAD_ANIM = { NONE = 0, OVER_LEFT = 0, OVER_RIGHT = 0, OVER_TOP = 0, OVER_BOTTOM = 0, MOVE_LEFT = 0, MOVE_RIGHT = 0, MOVE_TOP = 0, MOVE_BOTTOM = 0, FADE_IN = 0, FADE_ON = 0, FADE_OUT = 0, OUT_LEFT = 0, OUT_RIGHT = 0, OUT_TOP = 0, OUT_BOTTOM = 0, } --- @enum ScrollbarMode lvgl.SCROLLBAR_MODE = { OFF = 0, ON = 0, ACTIVE = 0, AUTO = 0, } --- @enum Dir lvgl.DIR = { NONE = 0, LEFT = 0, RIGHT = 0, TOP = 0, BOTTOM = 0, HOR = 0, VER = 0, ALL = 0, } --- @enum KeyboardMode lvgl.KEYBOARD_MODE = { TEXT_LOWER = 0, TEXT_UPPER = 0, SPECIAL = 0, NUMBER = 0, USER_1 = 0, USER_2 = 0, USER_3 = 0, USER_4 = 0, TEXT_ARABIC = 0, } --- @enum FlexFlow lvgl.FLEX_FLOW = { ROW = 0, COLUMN = 0, ROW_WRAP = 0, ROW_REVERSE = 0, ROW_WRAP_REVERSE = 0, COLUMN_WRAP = 0, COLUMN_REVERSE = 0, COLUMN_WRAP_REVERSE = 0, } --- @enum FlexAlign lvgl.FLEX_ALIGN = { START = 0, END = 0, CENTER = 0, SPACE_EVENLY = 0, SPACE_AROUND = 0, SPACE_BETWEEN = 0, } --- @enum GridAlign lvgl.GRID_ALIGN = { START = 0, CENTER = 0, END = 0, STRETCH = 0, SPACE_EVENLY = 0, SPACE_AROUND = 0, SPACE_BETWEEN = 0, } --- @enum RollerMode lvgl.ROLLER_MODE = { NORMAL = 0, INFINITE = 0, } --- @enum KEY lvgl.KEY = { UP = 0, DOWN = 0, RIGHT = 0, LEFT = 0, ESC = 0, DEL = 0, BACKSPACE = 0, ENTER = 0, NEXT = 0, PREV = 0, HOME = 0, END = 0, } lvgl.ANIM_REPEAT_INFINITE = 0 lvgl.ANIM_PLAYTIME_INFINITE = 0 lvgl.SIZE_CONTENT = 0 lvgl.RADIUS_CIRCLE = 0 lvgl.COORD_MAX = 0 lvgl.COORD_MIN = 0 lvgl.IMG_ZOOM_NONE = 0 lvgl.BTNMATRIX_BTN_NONE = 0 lvgl.CHART_POINT_NONE = 0 lvgl.DROPDOWN_POS_LAST = 0 lvgl.LABEL_DOT_NUM = 0 lvgl.LABEL_POS_LAST = 0 lvgl.LABEL_TEXT_SELECTION_OFF = 0 lvgl.TABLE_CELL_NONE = 0 lvgl.TEXTAREA_CURSOR_LAST = 0 lvgl.LAYOUT_FLEX = 0 lvgl.LAYOUT_GRID = 0 --- return a opacity value in lvgl unit(0..255) ---@param p integer opacity value in range of 0..100 ---@return integer function lvgl.OPA(p) end --- return a layout in percent ---@param p integer ---@return integer function lvgl.PCT(p) end --- return lvgl horizontal resolution ---@return integer function lvgl.HOR_RES() end --- return lvgl vertical resolution ---@return integer function lvgl.VER_RES() end --- --[[ ### Create basic object - when parent is nil, object is created on lvgl root. - property can be used to set any object style, like using `lv_obj_set_style` ]] --- @param parent? Object | nil --- @param property? StyleProp --- @return Object function lvgl.Object(parent, property) end --- Create Bar widget on parent --- @param parent? Object | nil --- @param property? BarStyle --- @return Bar function lvgl.Bar(parent, property) end --- Create Button widget on parent --- @param parent? Object | nil --- @param property? StyleProp --- @return Button function lvgl.Button(parent, property) end --- Create Calendar widget on parent --- @param parent? Object | nil --- @param property? StyleProp --- @return Calendar function lvgl.Calendar(parent, property) end --- --- Create Label on parent --- @param parent? Object | nil --- @param property? CheckboxStyle --- @return Checkbox function lvgl.Checkbox(parent, property) end --- --- Create Dropdown on parent --- @param parent? Object | nil --- @param property? DropdownStyle --- @return Dropdown function lvgl.Dropdown(parent, property) end --- --- Create Image on parent --- @param parent? Object | nil --- @param property? ImageStyle --- @return Image function lvgl.Image(parent, property) end --- --- Create Label on parent --- @param parent? Object | nil --- @param property? LabelStyle --- @return Label function lvgl.Label(parent, property) end --- --- Create Textarea Widget on parent --- @param parent? Object | nil --- @param property? TextareaStyle --- @return Textarea function lvgl.Textarea(parent, property) end --- --- Create Keyboard Widget on parent --- @param parent? Object | nil --- @param property? KeyboardStyle --- @return Keyboard function lvgl.Keyboard(parent, property) end --- --- Create Led Widget on parent --- @param parent? Object | nil --- @param property? LedStyle --- @return Led function lvgl.Led(parent, property) end --- --- Create List Widget on parent --- @param parent? Object | nil --- @param property? LabelStyle --- @return List function lvgl.List(parent, property) end --- --- Create Roller Widget on parent --- @param parent? Object | nil --- @param property? RollerStyle --- @return Roller function lvgl.Roller(parent, property) end --- Create Slider widget on parent --- @param parent? Object | nil --- @param property? BarStyle --- @return Slider function lvgl.Slider(parent, property) end --- Create Switch widget on parent --- @param parent? Object | nil --- @param property? StyleProp --- @return Switch function lvgl.Switch(parent, property) end --- --- Create Timer --- @param p TimerPara --- @return Timer function lvgl.Timer(p) end --[[ Return a font which is lightuserdata, to be used for label etc. ]] --- @param family string | "montserrat" | "unscii" | "Your Extension Font Name" --- @param size integer the font size in px --- @param weight @see built-in font only support "normal" weight --- | integer # default to normal, weight 400 --- | nil # default to normal, weight 400 --- | "thin" # weight 100 --- | "extra light" # weight 200 --- | "light" # weight 300 --- | "normal" # weight 400 --- | "medium" # weight 500 --- | "semi bold" # weight 600 --- | "bold" # weight 700 --- | "extra bold" # weight 800 --- | "ultra bold" # weight 900 --- @return Font --- --- [View Wiki](https://github.com/sumneko/lua-language-server/wiki/Annotations#class) function lvgl.Font(family, size, weight) end --- --- Create style --- @param p? StyleProp --- @return Style function lvgl.Style(p) end --- --- Basic lvgl object --- @class Object obj = {} --- --- Create object on object --- @param property? StyleProp --- @return Object function obj:Object(property) end --- --- Create bar on object --- @param property? BarStyle --- @return Bar function obj:Bar(property) end --- --- Create button on object --- @param property? ButtonStyle --- @return Button function obj:Button(property) end --- --- Create calendar on object --- @param property? CalendarStyle --- @return Calendar function obj:Calendar(property) end --- --- Create checkbox on object --- @param property? CheckboxStyle --- @return Checkbox function obj:Checkbox(property) end --- --- Create Dropdown on parent --- @param property? DropdownStyle --- @return Dropdown function obj:Dropdown(parent, property) end --- --- Create image on object --- @param property? ImageStyle --- @return Image function obj:Image(property) end --- --- Create image on object --- @param property? LabelStyle --- @return Label function obj:Label(property) end --- --- Create Textarea Widget on parent --- @param property? TextareaStyle --- @return Textarea function obj:Textarea(property) end --- --- Create Keyboard Widget on parent --- @param property? KeyboardStyle --- @return Keyboard function obj:Keyboard(property) end --- --- Create Led Widget on parent --- @param property? LedStyle --- @return Led function obj:Led(property) end --- --- Create List on object --- @param property? ListStyle --- @return List function obj:List(property) end --- --- Create Roller Widget on parent --- @param property? RollerStyle --- @return Roller function obj:Roller(parent, property) end --- --- Create Slider on object --- @param property? BarStyle --- @return Slider function obj:Slider(property) end --- --- Create switch on object --- @param property? StyleProp --- @return Switch function obj:Switch(property) end --- --- Set object property --- @param p StyleProp --- function obj:set(p) end --- --- Set object property --- @param p StyleProp --- @param state ObjState --- function obj:set_style(p, state) end --- --- Set object property --- @param p AlignToPara --- function obj:align_to(p) end --- --- Delete obj --- @return nil function obj:delete() end --- --- Delete all children of this object --- @return nil function obj:clean() end --- --- Set parent, note parent should also created by lua, native object may not work. --- @param p Object --- @return nil function obj:set_parent(p) end --- --- get screen object where this one created on(non-native object) --- @return Object function obj:get_screen(p) end --- --- get parent object --- @return Object function obj:get_parent() end --- --- set and/or get object's parent --- @param p Object --- @return Object function obj:parent(p) end --- --- get child object --- @param id integer 0 the first child, -1 the lastly created child --- @return Object function obj:get_child(id) end --- --- get object children count --- @return integer function obj:get_child_cnt() end --- --- get the state of this object --- @return ObjState function obj:get_state(p) end --- --- Scroll to a given coordinate on an object. --- @class ScrollToPara --- @field x integer position x --- @field y integer --- @field anim boolean --- --- @param p ScrollToPara --- @return ObjState function obj:scroll_to(p) end --- --- Tell whether an object is being scrolled or not at this moment --- @return boolean function obj:is_scrolling() end --- --- Tell whether an object is visible (even partially) now or not --- @return boolean function obj:is_visible() end --- --- add flag to object --- @param p ObjFlag --- @return nil function obj:add_flag(p) end --- --- clear object flag --- @param p ObjFlag --- @return nil function obj:clear_flag(p) end --- --- add state to object --- @param p ObjState --- @return nil function obj:add_state(p) end --- --- clear object state --- @param p ObjState --- @return nil function obj:clear_state(p) end --- --- add style to object --- @param s Style --- @param selector? integer --- @return nil function obj:add_style(s, selector) end --- --- remove style from object --- @param s Style --- @param selector? integer --- @return nil function obj:remove_style(s, selector) end --- --- remove all style from object --- @return nil function obj:remove_style_all() end ---scroll obj by x,y ---@param x integer ---@param y integer ---@param anim_en? boolean function obj:scroll_by(x, y, anim_en) end ---scroll obj by x,y ---@param x integer ---@param y integer ---@param anim_en boolean function obj:scroll_by_bounded(x, y, anim_en) end --- Scroll to an object until it becomes visible on its parent ---@param anim_en? boolean function obj:scroll_to_view(anim_en) end --- Scroll to an object until it becomes visible on its parent --- Do the same on the parent's parent, and so on. --- Therefore the object will be scrolled into view even it has nested scrollable parents ---@param anim_en? boolean function obj:scroll_to_view_recursive(anim_en) end ---scroll obj by x,y, low level APIs ---@param x integer ---@param y integer ---@param anim_en boolean function obj:scroll_by_raw(x, y, anim_en) end ---Invalidate the area of the scrollbars function obj:scrollbar_invalidate() end ---Checked if the content is scrolled "in" and adjusts it to a normal position. ---@param anim_en boolean function obj:readjust_scroll(anim_en) end ---If object is editable ---@return boolean function obj:is_editable() end --- class group def ---@return boolean function obj:is_group_def() end --- Test whether the and object is positioned by a layout or not ---@return boolean function obj:is_layout_positioned() end --- Mark the object for layout update. ---@return nil function obj:mark_layout_as_dirty() end --- Align an object to the center on its parent. same as obj:set{align={type = lvgl.ALIGN.CENTER}} ---@return nil function obj:center() end --- Align an object to the center on its parent. same as obj:set{align={type = lvgl.ALIGN.CENTER}} ---@return nil function obj:invalidate() end --- Sets this object as the current selection of the object's group. ---@return nil function obj:focus() end --- --- Object event callback. `para` is not used for now. --- @alias EventCallback fun(obj:Object, code: ObjEventCode): nil --- --- set object event callback --- @param code ObjEventCode --- @param cb EventCallback --- @return nil function obj:onevent(code, cb) end --- --- set object pressed event callback, same as obj:onevent(lvgl.EVENT.PRESSED, cb) --- @param cb EventCallback --- @return nil function obj:onPressed(cb) end --- --- set object clicked event callback, same as obj:onevent(lvgl.EVENT.CLICKED, cb) --- @param cb EventCallback --- @return nil function obj:onClicked(cb) end --- --- set object short clicked event callback, same as obj:onevent(lvgl.EVENT.SHORT_CLICKED, cb) --- @param cb EventCallback --- @return nil function obj:onShortClicked(cb) end --- --- Create anim for object --- @param p AnimPara --- @return Anim function obj:Anim(p) end --- --- Get coords of object --- @return Coords coords function obj:get_coords() end --- --- Get real postion of object relative to its parent --- @return Coords coords function obj:get_pos() end --- --- Calendar widget ---@class Calendar:Object --- local calendar = {} --- set method for calendar widget --- @param p CalendarStyle --- @return nil function calendar:set(p) end --- get today para setting from calendar widget --- @return CalendarDatePara function calendar:get_today(p) end --- get the currently showed date --- @return CalendarDatePara function calendar:get_showed(p) end --- get the currently pressed day --- @return CalendarDatePara function calendar:get_pressed(p) end --- get the button matrix object of the calendar. --- @return Object function calendar:get_btnm(p) end --- create a calendar header with drop-drowns to select the year and month. --- @return Object function calendar:Arrow(p) end --- create a calendar header with drop-drowns to select the year and month --- @return Object function calendar:Dropdown(p) end --- --- Bar widget ---@class Bar:Object --- local bar = {} --- set method for bar widget --- @param p BarStyle --- @return nil function bar:set(p) end --- --- Button widget ---@class Button:Object --- local button = {} --- set method for button widget --- @param p ButtonStyle --- @return nil function button:set(p) end --- --- Checkbox widget ---@class Checkbox:Object --- local checkbox = {} --- set method --- @param p CheckboxStyle --- @return nil function checkbox:set(p) end --- --- Get the text of a label --- @return string function checkbox:get_text() end --- --- Dropdown widget ---@class Dropdown:Object --- local dropdown = {} --- set method --- @param p DropdownStyle --- @return nil function dropdown:set(p) end --- get method --- @param which "list" | "options" | "selected" | "option_cnt" | "selected_str" | "option_index" | "symbol" | "dir" --- @param arg ? string --- @return string | Dir | Object function dropdown:get(which, arg) end --- Open the drop down list function dropdown:open() end --- Close (Collapse) the drop-down list function dropdown:close() end --- Tells whether the list is opened or not function dropdown:is_open() end --- Add an options to a drop-down list from a string --- @param option string --- @param pos integer function dropdown:add_option(option, pos) end --- Tells whether the list is opened or not function dropdown:clear_option() end --- --- Image widget ---@class Image:Object --- local img = {} --- Image set method --- @param p ImageStyle --- @return nil function img:set(p) end --- set image source --- @param src string image source path --- @return nil function img:set_src(src) end --- set image offset --- img:set_offset{x = 0, y = 100} --- @param p table --- @return nil function img:set_offset(p) end --- set image pivot --- img:set_pivot{x = 0, y = 100} --- @param p table --- @return nil function img:set_pivot(p) end --- get image size, return w,h --- w, h = img:get_img_size() --- w, h = img:get_img_size("/path/to/this/image.png") --- @param src ? string --- @return integer, integer function img:get_img_size(src) end --- --- Label widget ---@class Label: Object --- local label = {} --- Image set method --- @param p LabelStyle --- @return nil function label:set(p) end --- --- Get the text of a label --- @return string function label:get_text() end --- --- Get the long mode of a label --- @return string function label:get_long_mode() end --- --- Get the recoloring attribute --- @return string function label:get_recolor() end --- --- Insert a text to a label. --- @param pos integer --- @param txt string --- @return nil function label:ins_text(pos, txt) end --- --- Delete characters from a label. --- @param pos integer --- @param cnt integer --- @return nil function label:cut_text(pos, cnt) end --- --- Slider widget ---@class Slider:Object --- local slider = {} --- set method for slider widget. Uses Bar widget's properties. --- @param p BarStyle --- @return nil function slider:set(p) end --- get value of slider --- @return integer function slider:value() end --- get whether slider is dragged or not --- @return boolean function slider:is_dragged() end --- --- Switch widget ---@class Switch:Object --- local switch = {} --- set method for switch widget --- @param p StyleProp --- @return nil function switch:set(p) end --- get checked state of switch --- @return boolean function switch:enabled() end --- --- Textarea widget ---@class Textarea: Object --- local textarea = {} --- Textarea set method --- @param p TextareaStyle --- @return nil function textarea:set(p) end --- get textarea text --- @return string function textarea:get_text(p) end --- --- Keyboard widget ---@class Keyboard: Object based on btnmatrix object --- local keyboard = {} --- Keyboard set method --- @param p KeyboardStyle --- @return nil function keyboard:set(p) end --- --- LED widget ---@class Led: Object --- local led = {} --- LED set method --- @param p LedStyle --- @return nil function led:set(p) end --- LED set to ON --- @return nil function led:on() end --- LED set to OFF --- @return nil function led:off() end --- toggle LED status --- @return nil function led:toggle() end --- get LED brightness --- @return integer function led:get_brightness() end --- --- List widget ---@class List: Object --- local list = {} --- List set method --- @param p ListStyle --- @return nil function list:set(p) end --- add text to list --- @param text string --- @return Label function list:add_text(text) end --- add button to list --- @param icon ImgSrc | nil --- @param text? string --- @return Object a button object function list:add_btn(icon, text) end --- get list button text --- @param btn Object --- @return string function list:get_btn_text(btn) end --- --- Roller widget ---@class Roller: Object --- local roller = {} --- Roller set method --- @param p RollerStyle --- @return nil function roller:set(p) end --- Get the options of a roller --- @return string function roller:get_options() end --- Get the index of the selected option --- @return integer function roller:get_selected() end --- Get the current selected option as a string. --- @return string function roller:get_selected_str() end --- Get the total number of options --- @return integer function roller:get_options_cnt() end --- --- Anim ---@class Anim --- local Anim = {} --- start animation --- @return nil function Anim:start() end --- set animation new parameters --- @param para AnimPara new animation parameters --- @return nil function Anim:set(para) end --- stop animation --- @return nil function Anim:stop() end --- delete animation --- @return nil function Anim:delete() end --- --- Timer ---@class Timer --- local timer = {} --- set timer property --- @param p TimerPara --- @return nil function timer:set(p) end --- resume timer --- @return nil function timer:resume() end --- pause timer --- @return nil function timer:pause() end --- delete timer --- @return nil function timer:delete() end --- make timer ready now, cb will be made soon on next loop --- @return nil function timer:ready() end --[[ Font is a light userdata that can be uset to set style text_font. ]] --- @class Font --- local font = {} --- --- @class Style : lightuserdata --- local style = {} --- update style properties --- @param p StyleProp --- @return nil function style:set(p) end --- delete style, only delted style could be gc'ed --- @return nil function style:delete() end --- remove specified property from style --- @param p string property name from field of StyleProp --- @return nil function style:remove_prop(p) end --- --- Align parameter --- @class Align --- @field type ObjAlignType --- @field x_ofs integer --- @field y_ofs integer --- AlignTo parameter --- @class AlignToPara --- @field type ObjAlignType --- @field base Object --- @field x_ofs integer --- Style properties --- @class StyleProp --- @field w? integer --- @field width? integer --- @field min_width? integer --- @field max_width? integer --- @field height? integer --- @field min_height? integer --- @field max_height? integer --- @field x? integer --- @field y? integer --- @field size? integer set size is equivalent to set w/h to same value --- @field align? Align | ObjAlignType --- @field transform_width? integer --- @field transform_height? integer --- @field translate_x? integer --- @field translate_y? integer --- @field transform_zoom? integer --- @field transform_angle? integer --- @field transform_pivot_x? integer --- @field transform_pivot_y? integer --- @field pad_all? integer --- @field pad_top? integer --- @field pad_bottom? integer --- @field pad_ver? integer --- @field pad_left? integer --- @field pad_right? integer --- @field pad_hor? integer --- @field pad_row? integer --- @field pad_column? integer --- @field pad_gap? integer --- @field bg_color? integer | string text color in hex integer or #RGB or #RRGGBB format --- @field bg_opa? integer --- @field bg_grad_color? integer | string text color in hex integer or #RGB or #RRGGBB format --- @field bg_grad_dir? integer --- @field bg_main_stop? integer --- @field bg_grad_stop? integer --- @field bg_dither_mode? integer --- @field bg_img_src? integer --- @field bg_img_opa? integer --- @field bg_img_recolor? integer --- @field bg_img_recolor_opa? integer --- @field bg_img_tiled? integer --- @field border_color? integer | string --- @field border_opa? integer --- @field border_width? integer --- @field border_side? integer --- @field border_post? integer --- @field outline_width? integer --- @field outline_color? integer | string --- @field outline_opa? integer --- @field outline_pad? integer --- @field shadow_width? integer --- @field shadow_ofs_x? integer --- @field shadow_ofs_y? integer --- @field shadow_spread? integer --- @field shadow_color? integer | string --- @field shadow_opa? integer --- @field img_opa? integer --- @field img_recolor? integer --- @field img_recolor_opa? integer --- @field line_width? integer --- @field line_dash_width? integer --- @field line_dash_gap? integer --- @field line_rounded? integer --- @field line_color? integer | string --- @field line_opa? integer --- @field arc_width? integer --- @field arc_rounded? integer --- @field arc_color? integer | string --- @field arc_opa? integer --- @field arc_img_src? integer --- @field text_color? integer | string --- @field text_opa? integer --- @field text_font? Font | BuiltinFont --- @field text_letter_space? integer --- @field text_line_space/ integer --- @field text_decor? integer --- @field text_align? integer --- @field radius? integer --- @field clip_corner? integer --- @field opa? integer --- @field color_filter_opa? integer --- @field anim_time? integer --- @field anim_speed? integer --- @field blend_mode? integer --- @field layout? integer --- @field base_dir? integer --- @field flex_flow? FlexFlow --- @field flex_main_place? FlexAlign --- @field flex_cross_place? FlexAlign --- @field flex_track_place/ FlexAlign --- @field flex_grow? integer 0..255 --- @field flex? FlexLayoutPara --- --- Object style --- @class ObjectStyle :StyleProp --- @field x integer --- @field y integer --- @field w integer --- @field h integer --- @field align Align | integer --- @field align_to AlignToPara --- @field scrollbar_mode ScrollbarMode --- @field scroll_dir Dir --- @field scroll_snap_x integer --- @field scroll_snap_y integer --- --- Image style --- @class ImageStyle :StyleProp --- @field src string --- @field offset_x integer offset of image --- @field offset_y integer --- @field angle integer --- @field zoom integer --- @field antialias boolean --- @field pivot table --- --- Label style --- @class LabelStyle :StyleProp --- @field text string --- Bar style --- @class BarStyle :StyleProp --- @field range BarRangePara --- @field value integer --- Button style --- @class ButtonStyle :StyleProp --- Checkbox style --- @class CalendarStyle :StyleProp --- @field today CalendarDatePara --- @field showed CalendarDatePara --- Checkbox style --- @class CheckboxStyle :StyleProp --- @field text string --- Dropdown style --- @class DropdownStyle :StyleProp --- @field text string | nil --- @field options string --- @field selected integer --- @field dir Dir --- @field symbol lightuserdata | string --- @field highlight boolean --- Textarea style --- @class TextareaStyle :StyleProp --- @field text string --- @field placeholder string --- @field cursor integer cursor position --- @field password_mode boolean enable password --- @field one_line boolean enable one line mode --- @field password_bullet string Set the replacement characters to show in password mode --- @field accepted_chars string DO NOT USE. Set a list of characters. Only these characters will be accepted by the text area E.g. "+-.,0123456789" --- @field max_length integer Set max length of a Text Area. --- @field password_show_time integer Set how long show the password before changing it to '*' --- Keyboard style --- @class KeyboardStyle :StyleProp --- @field textarea Textarea textarea object --- @field mode KeyboardMode --- @field popovers boolean Show the button title in a popover when pressed. --- Led style --- @class LedStyle :StyleProp --- @field color integer|string color of led --- @field brightness integer brightness in range of 0..255 --- List style --- @class ListStyle :StyleProp --- Roller style --- @class RollerStyle :StyleProp --- @field options table | string --- @field selected table | integer --- @field visible_cnt integer --- --- Anim(for object) parameter --- @alias AnimExecCb fun(obj:any, value:integer): nil --- @alias AnimDoneCb fun(anim:Anim, var:any): nil --- @class AnimPara --- @field run boolean run this anim right now, or later using anim:start(). default: false --- @field start_value integer start value --- @field end_value integer --- @field duration integer Anim duration in milisecond --- @field delay integer Set a delay before starting the animation --- @field repeat_count integer Anim repeat count, default: 1, set to 0 to disable repeat, set to lvgl.ANIM_REPEAT_INFINITE for infinite repeat, set to any other integer for specified repeate count --- @field playback_delay integer --- @field playback_time integer --- @field early_apply boolean set start_value right now or not. default: true --- @field path string | "linear" | "ease_in" | "ease_out" | "ease_in_out" | "overshoot" | "bounce" | "step" --- @field exec_cb AnimExecCb --- @field done_cb AnimDoneCb --- --- Timer para --- @alias TimerCallback fun(t:Timer): nil --- @class TimerPara --- @field paused boolean Do not start timer immediaely --- @field period integer timer period in ms unit --- @field repeat_count integer | -1 | --- @field cb TimerCallback --- --- --- @alias ImgSrc string | lightuserdata --- @alias flexAlignOptions "flex-start" | "flex-end" | "center" | "space-between" | "space-around" | "space-evenly" --- --- @class FlexLayoutPara --- @field flex_direction? "row" | "column" | "row-reverse" | "column-reverse" --- @field flex_wrap? "nowrap" | "wrap" | "wrap-reverse" --- @field justify_content? flexAlignOptions --- @field align_items? flexAlignOptions --- @field align_content? flexAlignOptions --- --- BarRange para --- @class BarRangePara --- @field min integer --- @field max integer --- --- --- CalendarToday para --- @class CalendarDatePara --- @field year integer --- @field month integer --- @field day integer --- --- --- Coordinates --- @class Coords --- @field x1 integer --- @field y1 integer --- @field x2 integer --- @field y2 integer --- return lvgl