Skip to main content

core.emptyview

local emptyview = require "core.emptyview"

NEWLINE​

(field) NEWLINE: integer

Indicates on a widget.styledtext that a new line follows.


__index​

(field) __index: core.object

Base class providing OOP functionality for Lua. All classes in Pragtical inherit from Object.


animations​

(field) animations: widget.animation[]

background_color​

(field) background_color: unknown

border​

(field) border: widget.border

Represents the border of a widget.


capture_text_input​

(field) capture_text_input: boolean?

Receive text input while floating without taking focus


captured_button​

(field) captured_button: ('left'|'right')?

captured_widget​

(field) captured_widget: widget

Widget that captured mouse events


center_container​

(field) center_container: widget.container

child_active​

(field) child_active: widget|nil

A base widget


childs​

(field) childs: table<integer, widget>

clickable​

(field) clickable: boolean

context​

(field) context: 'application'|'session'

current_scale​

(field) current_scale: number

cursor​

(field) cursor: 'arrow'|'hand'|'ibeam'|'sizeh'|'sizenesw'...(+2)

defer_draw​

(field) defer_draw: boolean

docs​

(field) docs: widget.button

draggable​

(field) draggable: boolean

dragged​

(field) dragged: boolean

explicit_update​

(field) explicit_update: boolean

floating​

(field) floating: boolean

Whether the view uses floating placement


floating_closing​

(field) floating_closing: boolean?

Whether input is disabled while a closing slide runs


floating_destination​

(field) floating_destination: (core.view.position)?

Settled position retained during a slide


floating_gesture​

(field) floating_gesture: (core.view.floating_gesture)?

Active pointer drag or resize


floating_options​

(field) floating_options: (core.view.floating_options)?

Placement ownership and input policy


floating_position​

(field) floating_position: (core.view.position)?

Persistent interpolation state for a slide


floating_previous_focus​

(field) floating_previous_focus: (core.view)?

Focus target to restore when hiding


floating_transition​

(field) floating_transition: (core.view.floating_transition)?

Active slide and callback


floating_visible​

(field) floating_visible: boolean?

Whether the view is registered, including closing slides


font​

(field) font: string|renderer.font|widget.fontreference

Represents a reference to a font stored elsewhere.


foreground_color​

(field) foreground_color: renderer.color

Array of bytes that represents a color used by the rendering functions.


h_scrollbar​

(field) h_scrollbar: widget.scrollbar

has_focus​

(field) has_focus: boolean

hovered_child​

(field) hovered_child: widget?

Child that last received hover motion


hovered_scrollbar​

(field) hovered_scrollbar: boolean

input_text​

(field) input_text: boolean

is_scrolling​

(field) is_scrolling: boolean

label​

(field) label: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>

logo_width​

(field) logo_width: number|unknown

mouse​

(field) mouse: widget.position

Represents the position of a widget.


mouse_is_hovering​

(field) mouse_is_hovering: boolean

mouse_is_pressed​

(field) mouse_is_pressed: boolean

mouse_press​

(field) mouse_press: { button: 'left'|'right', child: widget? }?

mouse_selecting​

(field) mouse_selecting: unknown

name​

(field) name: string

next_zindex​

(field) next_zindex: integer

parent​

(field) parent: widget|nil

A base widget


perform_update_size_position​

(field) perform_update_size_position: boolean

plugins​

(field) plugins: widget.button

position​

(field) position: widget.position

Represents the position of a widget.


prev_height​

(field) prev_height: number?

prev_size​

(field) prev_size: table

prev_view​

(field) prev_view: unknown

prev_width​

(field) prev_width: number?

recent_projects​

(field) recent_projects: widget.listbox

recent_projects_context_target​

(field) recent_projects_context_target: unknown

recent_projects_menu​

(field) recent_projects_menu: core.contextmenu

Floating command menu with predicate filtering, scrolling, and nested submenus.


render_background​

(field) render_background: boolean

scroll​

(field) scroll: core.view.scroll

scrollable​

(field) scrollable: boolean

set_focus​

(field) set_focus: any

size​

(field) size: widget.position

Modifying this property directly is not advised, use set_size() instead.


skip_scroll_ctrl​

(field) skip_scroll_ctrl: boolean

By default is set to true to allow ctrl+wheel or cmd+wheel on mac to scale the interface, you can set it to false on your parent widget to allow manually intercepting ctrl+wheel.


super​

(field) super: widget

A base widget


text_x​

(field) text_x: number

text_y​

(field) text_y: number

textview​

(field) textview: widget

A base widget


title​

(field) title: string

title_width​

(field) title_width: number

tooltip​

(field) tooltip: (string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>)?

tooltip_command​

(field) tooltip_command: string?

top_container​

(field) top_container: widget.container

type_name​

(field) type_name: string

updated​

(field) updated: boolean

v_scrollbar​

(field) v_scrollbar: widget.scrollbar

version​

(field) version: string

version_width​

(field) version_width: number

visible​

(field) visible: boolean

website​

(field) website: widget.button

zindex​

(field) zindex: integer

from_state​

function core.view.from_state(state: table)
-> view: (core.view)?

Create and initialize a new view instance from a previously saved state.

This function is called when restoring workspace/session state. Implementations are responsible for:

  • creating the view instance
  • applying any persisted state

If loading the instance failed nil will be returned.

@return view: (core.view)?


__call​

(method) core.object:__call(...any)
-> obj: core.object

Metamethod allowing class to be called like a constructor. Enables syntax: local obj = MyClass(args) instead of MyClass:new(args) Automatically creates instance and calls new() with provided arguments.

@return obj: core.object — The new instance of the class


__tostring​

(method) core.emptyview:__tostring()
-> string

activate​

(method) widget:activate()

Emitted to input_text widgets when clicked.


add_child​

(method) widget:add_child(child: widget)

Add a child widget, automatically assign a zindex if non set and sorts them in reverse order for better events matching.

@param child: widget — A base widget


add_recent_project_current_instance​

(method) core.emptyview:add_recent_project_current_instance(path: string)

Add a recent project to the current editor instance.


animate​

(method) widget:animate(target?: table, properties: table<string, number>, options?: widget.animation.options)

Registers a new animation to be ran on the update cycle.

@param target?: table — If nil assumes properties belong to widget it self.

@param options?: widget.animation.options


bring_to_front​

(method) core.view:bring_to_front()
-> view: core.view

Raise a shown floating view and its owned popups above the other floating views.

@return view: core.view — This view, for chaining


capture_mouse​

(method) widget:capture_mouse(scrolling?: boolean, button?: 'left'|'right')

All mouse events will be directly sent to the widget even if mouse moves outside the widget region.

button:
| 'left'
| 'right'

@param scrolling?: boolean — Capture for scrolling

@param button?: 'left'|'right' — Defaults to left


centered​

(method) widget:centered()

Center the widget horizontally and vertically to the screen or parent widget.


clamp_scroll_position​

(method) core.view:clamp_scroll_position()

Clamp scroll position to valid range (0 to max scrollable size). Called automatically by update(). Override get_scrollable_size() to customize.


deactivate​

(method) widget:deactivate()

Emitted to input_text widgets on lost focus.


destroy​

(method) widget:destroy()

Hide the widget, release its floating placement, and recursively destroy its children.


destroy_childs​

(method) widget:destroy_childs()

Recursively destroy all childs from the widget.


drag​

(method) widget:drag(x: number, y: number)

Used internally when dragging is activated.


draw​

(method) core.emptyview:draw()

draw_background​

(method) core.view:draw_background(color: renderer.color)

Draw a solid background color for the entire view. Commonly called at the start of draw() methods.

@param color: renderer.color — Array of bytes that represents a color used by the rendering functions.


draw_border​

(method) widget:draw_border(x?: number, y?: number, w?: number, h?: number)

Draw the widget configured border or custom one.


draw_scrollbar​

(method) widget:draw_scrollbar()

draw_styled_text​

(method) widget:draw_styled_text(text: table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>, x: integer, y: integer, only_calc?: boolean, start_idx?: integer, end_idx?: integer)
-> width: integer
2. height: integer

Render or calculate the size of the specified range of elements in a styled text elemet.

@param text: table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>

@return width: integer

@return height: integer


draw_text_multiline​

(method) widget:draw_text_multiline(font: string|renderer.font|widget.fontreference, text: string, x: integer, y: integer, color: renderer.color, only_calc: boolean)
-> resx: integer
2. resy: integer
3. width: integer
4. height: integer

Taken from the logview and modified it a tiny bit. TODO: something similar should be on pragtical core.

@param font: string|renderer.font|widget.fontreference — Represents a reference to a font stored elsewhere.

@param color: renderer.color — Array of bytes that represents a color used by the rendering functions.

@return resx: integer

@return resy: integer

@return width: integer

@return height: integer


extend​

(method) core.object:extend()
-> cls: core.object

Create a new class that inherits from this one. Returns a new class with this class as its parent. Example: local MyClass = Object:extend()

@return cls: core.object — The new class table


extends​

(method) core.object:extends(T: any)
-> extends: boolean

Check if object inherits from the given type (inheritance-aware). Use this to check class hierarchy. Example: view:extends(View) returns true for View and all subclasses

@param T: any — Class to check inheritance from

@return extends: boolean — True if object is T or inherits from T


get_bottom​

(method) widget:get_bottom()
-> number

Get the bottom y coordinate relative to parent


get_content_bounds​

(method) core.view:get_content_bounds()
-> x1: number
2. y1: number
3. x2: number
4. y2: number

Get the content bounds in content coordinates (accounting for scroll).

@return x1: number — Left edge

@return y1: number — Top edge

@return x2: number — Right edge

@return y2: number — Bottom edge


get_content_offset​

(method) widget:get_content_offset()
-> x: number
2. y: number

Get the content origin while preserving fractional layout coordinates. Snap only the scroll displacement so descendants move by whole pixels together without shifting their borders relative to the parent's viewport.

@return x: number — Screen x coordinate after horizontal scrolling

@return y: number — Screen y coordinate after vertical scrolling


get_floating_bounds​

(method) widget:get_floating_bounds()
-> x: number
2. y: number
3. w: number
4. h: number

Get the widget's outer screen rectangle, including its border.

@return x: number — Outer screen x coordinate

@return y: number — Outer screen y coordinate

@return w: number — Width including the border

@return h: number — Height including the border


get_floating_drag_region​

(method) core.view:get_floating_drag_region()
-> x: number?
2. y: number?
3. w: number?
4. h: number?

Get the screen rectangle where a floating view can be dragged. Override to restrict dragging to a header; defaults to the full popup bounds.

@return x: number? — Screen x coordinate, or nil to disable dragging

@return y: number? — Screen y coordinate

@return w: number? — Region width

@return h: number? — Region height


get_focus_target​

(method) widget:get_focus_target()
-> target: core.view

Focus the active child or its TextView, falling back to this widget's input or itself.

@return target: core.view — View that should receive keyboard focus


get_font​

(method) widget:get_font(font?: string|renderer.font|widget.fontreference)
-> renderer.font

Get the real renderer.font associated with a widget.font.

@param font?: string|renderer.font|widget.fontreference — Represents a reference to a font stored elsewhere.

@return: renderer.font


get_h_scrollable_size​

(method) core.emptyview:get_h_scrollable_size()
-> integer

get_height​

(method) widget:get_height()
-> number

Get height including borders.


get_module​

(method) core.view:get_module()
-> path: string?

Returns the module path of this view.

This method resolves the Lua module name that loaded the concrete view class (for example "core.view").

If the view class cannot be associated with any loaded module, nil is returned.

@return path: string?


get_name​

(method) widget:get_name()
-> string

The name that is displayed on pragtical tabs.


get_position​

(method) widget:get_position()
-> widget.position

Get the relative position in relation to parent

@return: widget.position


get_real_height​

(method) widget:get_real_height()
-> number

Overall height of the widget accounting all visible child widgets.


get_real_width​

(method) widget:get_real_width()
-> number

Overall width of the widget accounting all visible child widgets.


get_recent_project_row_at​

(method) core.emptyview:get_recent_project_row_at(x: number, y: number)
-> row: integer?

Find the recent-project row under a screen position.

@return row: integer?


get_right​

(method) widget:get_right()
-> number

Get the right x coordinate relative to parent


get_scrollable_size​

(method) core.emptyview:get_scrollable_size()
-> height: number

Keep the final widget and its bottom border clear of the viewport edge.

@return height: number — Scrollable content height including trailing padding


get_selected_recent_project​

(method) core.emptyview:get_selected_recent_project()
-> path: string?

Get the recent project targeted by the context menu.

@return path: string?


get_size​

(method) widget:get_size()
-> widget.position

@return: widget.position


get_state​

(method) core.view:get_state()
-> state: table?

Serialize this view into a persistable state table.

This method is called when the editor is saving workspace/session state. The returned table must contain only plain Lua data (no functions, userdata, metatables, or cyclic references).

Returning nil indicates that this view should NOT be restored when reloading the workspace.

@return state: table?


get_width​

(method) widget:get_width()
-> number

Get width including borders.


hide​

(method) widget:hide()

Hide the widget.


hide_animated​

(method) widget:hide_animated(lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Perform an animated hide.

@param lock_x?: boolean — Do not resize width while animating

@param lock_y?: boolean — Do not resize height while animating

@param options?: widget.animation.options


hide_floating​

(method) core.view:hide_floating(options?: core.view.floating_transition)
-> view: core.view

Hide the floating view, close owned popups, cancel input, and restore focus. A closing slide delays removal while the view immediately stops receiving input. Disabled transitions remove the view and run the completion callback immediately.

@param options?: core.view.floating_transition — Optional closing slide (to) and callback

@return view: core.view — This view, for chaining


hit_test​

(method) widget:hit_test(x: number, y: number)
-> inside: boolean

Reuse widget hit testing for RootView's floating pointer routing.

@param x: number — Screen x coordinate

@param y: number — Screen y coordinate

@return inside: boolean — Whether the point lies over the widget


is​

(method) core.object:is(T: any)
-> is_exact: boolean

Check if object is exactly of the given type (no inheritance check). Use this for strict type matching. Example: view:is(DocView) returns true only if view is a DocView, not a subclass

@param T: any — Class to check against

@return is_exact: boolean — True if object is exactly type T


is_class_of​

(method) core.object:is_class_of(T: any)
-> is_instance: boolean

Check if the given object is exactly an instance of this class. Inverse of is() - checks if T is an instance of self. Example: DocView:is_class_of(obj) checks if obj is exactly a DocView

@param T: any — Object to check

@return is_instance: boolean — True if T is exactly an instance of this class


is_extended_by​

(method) core.object:is_extended_by(T: any)
-> is_extended: boolean

Check if the given object/class inherits from this class. Inverse of extends() - checks if T is a subclass of self. Example: View:is_extended_by(DocView) checks if DocView inherits from View

@param T: any — Object or class to check

@return is_extended: boolean — True if T inherits from this class


is_floating_owner_visible​

(method) core.view:is_floating_owner_visible()
-> visible: boolean?

Check whether floating popups owned by this view should remain visible. Docked owners must be active in their node; container children follow their parent. Override for composites with their own visibility rules.

@return visible: boolean? — Falsy when the owner is hidden or its tab is inactive


is_visible​

(method) widget:is_visible()
-> boolean

Check if the widget is visible also recursing to the parent visibility.


mouse_on_top​

(method) widget:mouse_on_top(x: number, y: number)
-> boolean

Check if the given mouse coordinate is hovering the widget


move_towards​

(method) core.view:move_towards(t: table, k: string|number, dest: number, rate?: number, name?: string)

Smoothly animate a value towards a destination. Use this for animations instead of direct assignment.

@param t: table — Table containing the value

@param k: string|number — Key in table

@param dest: number — Target value

@param rate?: number — Animation speed (0-1, default 0.5, higher = faster)

@param name?: string — Transition name (for config.disabled_transitions)


new​

(method) core.emptyview:new()

Constructor


on_change​

(method) widget:on_change(value: any)

Event emitted when the value of the widget changes. If applicable, child widgets should call this method when its value changes.


on_click​

(method) widget:on_click(button: "left"|"right", x: number, y: number)

Click event emitted on a succesful on_mouse_pressed and on_mouse_released events combo.

button:
| "left"
| "right"

on_file_dropped​

(method) widget:on_file_dropped(filename: string, x: number, y: number)
-> processed: boolean

Send file drop event to hovered child.

@return processed: boolean


on_floating_dismiss​

(method) widget:on_floating_dismiss(reason: "escape"|"focuslost"|"outside")

Dismiss through the widget's normal hide lifecycle and subclass hooks.

reason:
| "escape"
| "outside"
| "focuslost"

@param reason: "escape"|"focuslost"|"outside" — Event requesting dismissal


on_floating_visibility_changed​

(method) widget:on_floating_visibility_changed(visible: boolean)

Synchronize widget visibility with RootView, including owner-driven popup removal.

@param visible: boolean — Whether the floating widget remains shown


on_ime_text_editing​

(method) core.view:on_ime_text_editing(text: string, start: number, length: number)

Handle IME (Input Method Editor) text composition events. Override for IME support in text editors. Called during composition.

@param text: string — Composition text being edited

@param start: number — Start position of selection within composition

@param length: number — Length of selection within composition


on_key_pressed​

(method) core.view:on_key_pressed(stroke: string, ...any)
-> consumed: boolean?

Handle a floating view's keyboard input before command dispatch. Override and return true to consume the normalized key binding.

@param stroke: string — Normalized key binding, such as "ctrl+return"

@param: any — Additional arguments forwarded by the keyboard handler

@return consumed: boolean? — Whether the event was handled


on_mouse_capture_lost​

(method) widget:on_mouse_capture_lost()

End a pointer gesture without emitting a click. Override to clear drag state.


on_mouse_enter​

(method) widget:on_mouse_enter(x: any, y: any, dx: any, dy: any)

Emitted once when the mouse hovers the widget.


on_mouse_leave​

(method) widget:on_mouse_leave(x: any, y: any, dx: any, dy: any)

Emitted once when the mouse leaves the widget.


on_mouse_left​

(method) widget:on_mouse_left()

on_mouse_moved​

(method) widget:on_mouse_moved(x: number, y: number, dx: number, dy: number)
-> boolean

Besides the on_mouse_moved this event emits on_mouse_enter and on_mouse_leave for easy hover effects. Also, if the widget is scrollable and pressed this will drag it unless there is an active input_text child active.


on_mouse_pressed​

(method) core.emptyview:on_mouse_pressed(button: "left"|"right", x: number, y: number, clicks: integer)
-> boolean

on_mouse_released​

(method) widget:on_mouse_released(button: "left"|"right", x: number, y: number)
-> processed: boolean

Send release to the pressed target, even outside its bounds.

button:
| "left"
| "right"

@return processed: boolean


on_mouse_wheel​

(method) widget:on_mouse_wheel(y: number, x: number)
-> boolean

on_scale_change​

(method) core.emptyview:on_scale_change(new_scale: number, prev_scale: number)

Refresh cached layout and the logo when the UI scale changes.

@param new_scale: number — Current UI scale

@param prev_scale: number — Previous UI scale


on_text_input​

(method) widget:on_text_input(text: string)
-> processed: boolean

Redirects any text input to active child with the input_text flag.

@return processed: boolean


on_touch_moved​

(method) core.view:on_touch_moved(x: number, y: number, dx: number, dy: number, i: number)

Handle touch move events (touchscreen/trackpad gestures). Override for touch-specific behavior. Base implementation handles scrolling.

@param x: number — Current touch x coordinate

@param y: number — Current touch y coordinate

@param dx: number — Delta x since last position

@param dy: number — Delta y since last position

@param i: number — Touch finger/pointer index


open_recent_project_new_instance​

(method) core.emptyview:open_recent_project_new_instance(path: string)

Open a recent project in a separate editor instance.


owns_view​

(method) core.view:owns_view(view?: core.view)
-> owned: boolean

Check whether a view is this view or belongs to it through a container or owner. Follows parent, subparent, and floating owner links while guarding against cycles.

@param view?: core.view — Candidate view

@return owned: boolean — Whether the candidate belongs to this view


refresh_recent_projects​

(method) core.emptyview:refresh_recent_projects()

Refresh the displayed recent projects from the core session state.


release_mouse​

(method) widget:release_mouse(skip_cancel?: boolean)

Release this widget's capture and clear capture state on its ancestors.

@param skip_cancel?: boolean — Skip the cancellation callback when already handling capture loss


remove_all_recent_projects​

(method) core.emptyview:remove_all_recent_projects()

Remove all projects from the recent projects list.


remove_child​

(method) widget:remove_child(child: widget)

Remove a child widget.

@param child: widget — A base widget


remove_recent_project​

(method) core.emptyview:remove_recent_project(path: string)

Remove a project from the recent projects list.


run_animations​

(method) widget:run_animations()

Runs all registered animations removing duplicated and finished ones.


schedule_update​

(method) widget:schedule_update(delayed: any)

Schedule a core update and redraw. Since widgets try to not fire updates and draws to child widgets to reduce cpu consumption this function can be used when a re-update and re-draw is strictly needed.


scrollbar_dragging​

(method) core.view:scrollbar_dragging()
-> dragging: boolean

Check if user is currently dragging either scrollbar.

@return dragging: boolean — True if scrollbar drag is in progress


scrollbar_hovering​

(method) core.view:scrollbar_hovering()
-> hovering: boolean

Check if mouse is hovering over either scrollbar track.

@return hovering: boolean — True if mouse is over scrollbar


scrollbar_overlaps_point​

(method) core.view:scrollbar_overlaps_point(x: number, y: number)
-> overlaps: boolean

Check if a screen point overlaps either scrollbar. Useful for determining cursor style or handling clicks.

@param x: number — Screen x coordinate

@param y: number — Screen y coordinate

@return overlaps: boolean — True if point is over vertical or horizontal scrollbar


set_border_width​

(method) widget:set_border_width(width: integer)

Set the widget border size and appropriately re-set the widget size.


set_floating​

(method) core.view:set_floating(enabled: boolean, options?: core.view.floating_options)
-> view: core.view

Enable or disable floating placement and configure popup input and ownership. Call show_floating() to show the view after enabling this mode. Detach it from its node or parent container before showing. Disabling hides it.

@param enabled: boolean — Whether the view should use floating placement

@param options?: core.view.floating_options — Options merged with existing ones when enabling

@return view: core.view — This view, for chaining


set_floating_bounds​

(method) widget:set_floating_bounds(x: number, y: number, w: number, h: number)

Apply outer popup bounds using the widget's border-aware size and position setters. Pass dimensions unchanged: set_size() already accounts for the border.

@param x: number — Outer screen x coordinate

@param y: number — Outer screen y coordinate

@param w: number — Width including the border

@param h: number — Height including the border


set_label​

(method) widget:set_label(text: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>)

A text label for the widget, not all widgets support this.

@param text: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>


set_position​

(method) widget:set_position(x?: integer, y?: integer)

Set the position of the widget and updates the child absolute coordinates


set_size​

(method) widget:set_size(width?: integer, height?: integer)

set_target_size​

(method) widget:set_target_size(axis: string|'x'|'y', value: number)
-> boolean

Called by pragtical node system to properly resize the widget.

axis:
| 'x'
| 'y'

set_tooltip​

(method) widget:set_tooltip(tooltip?: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>, command?: string)

Text displayed when the widget is hovered. If a command name is also given its associated binding will be displayed as part of the tooltip.

@param tooltip?: string|table<integer, string|integer|renderer.color|renderer.font|widget.colorreference...(+1)>


show​

(method) widget:show()

Show the widget.


show_animated​

(method) widget:show_animated(lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Perform an animated show.

@param lock_x?: boolean — Do not resize width while animating

@param lock_y?: boolean — Do not resize height while animating

@param options?: widget.animation.options


show_floating​

(method) core.view:show_floating(options?: core.view.floating_transition)
-> view: core.view

Show or raise the view in RootView's floating layer and apply its focus policy. Requires a view detached from its node and parent container. Reopening cancels a pending close and its completion callback. Disabled transitions apply placement and run the completion callback immediately.

@param options?: core.view.floating_transition — Optional opening slide (from) and callback

@return view: core.view — This view, for chaining


supports_text_input​

(method) core.view:supports_text_input()
-> boolean

Whether this view accepts text input (enables IME). Override and return true for text editors and input fields.


swap_active_child​

(method) widget:swap_active_child(child?: widget)

Replaces current active child with a new one and calls the activate/deactivate events of the child. This is especially used to send text input events to widgets with input_text support.

@param child?: widget — If nil deactivates current child


toggle_background​

(method) widget:toggle_background(enable?: boolean)

When set to false the background rendering is disabled.


toggle_visible​

(method) widget:toggle_visible(animated?: boolean, lock_x?: boolean, lock_y?: boolean, options?: widget.animation.options)

Toggle visibility of widget.

@param options?: widget.animation.options


try_close​

(method) core.view:try_close(do_close: function)

Called when view is requested to close (e.g., tab close button). Override to show confirmation dialogs for unsaved changes. Example: core.command_view:enter("Save?", \{submit = do_close\})

@param do_close: function — Call this function to actually close the view


update​

(method) core.emptyview:update()

update_floating​

(method) core.view:update_floating()

Update anchor placement or advance an opening or closing slide. RootView calls this before update() for each shown floating view. Completes removal and invokes the transition callback when a slide finishes.


update_if_scaled​

(method) widget:update_if_scaled()

Explicitly call the widget update procedure when the scale change even if the widget is not visible.


update_position​

(method) widget:update_position(recursive?: boolean)

Called on the update function to be able to scroll the child widgets.

@param recursive?: boolean — Update descendants; defaults to true.


update_scrollbar​

(method) core.view:update_scrollbar()

Update scrollbar positions and sizes. Called automatically by update(). Rarely needs to be called manually.


update_size_position​

(method) widget:update_size_position()

Similar to update, but here you should perform expensive calculations that will get executed for a predefined period of time when a widget is initialized, scale has changed or a widget switched from hidden to visible.