Skip to main content

widget.label

local label = require "widget.label"

NEWLINE

(field) NEWLINE: integer

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


__index

(field) __index: core.object

animations

(field) animations: widget.animation[]

background_color

(field) background_color: renderer.color

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


border

(field) border: widget.border

Represents the border of a widget.


captured_widget

(field) captured_widget: widget

Widget that captured mouse events


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'|'sizev'

custom_size

(field) custom_size: table

default_height

(field) default_height: boolean

defer_draw

(field) defer_draw: boolean

draggable

(field) draggable: boolean

dragged

(field) dragged: boolean

explicit_update

(field) explicit_update: boolean

font

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

Represents a reference to a font stored elsewhere.


force_events

(field) force_events: table

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_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.fontreference>

last_wrap_size

(field) last_wrap_size: integer

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_pressed_outside

(field) mouse_pressed_outside: boolean

name

(field) name: string

next_zindex

(field) next_zindex: integer

original_label

(field) original_label: string

parent

(field) parent: widget|nil

A base widget


perform_update_size_position

(field) perform_update_size_position: boolean

position

(field) position: widget.position

Represents the position of a widget.


prev_height

(field) prev_height: number?

prev_size

(field) prev_size: widget.position

Represents the position of a widget.


prev_view

(field) prev_view: unknown

prev_width

(field) prev_width: number?

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


textview

(field) textview: widget

A base widget


tooltip

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

tooltip_command

(field) tooltip_command: string?

type_name

(field) type_name: string

v_scrollbar

(field) v_scrollbar: widget.scrollbar

visible

(field) visible: boolean

word_wrap

(field) word_wrap: boolean

wrapping

(field) wrapping: boolean

zindex

(field) zindex: integer

override_rootview

function widget.override_rootview()

Called when initializing a floating widget to generate RootView overrides, this function will only override the events once.


__call

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

Metamethod to allow using the object call as a constructor.


__tostring

(method) widget:__tostring()
-> string

Useful for debugging.


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.


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 — If nil assumes properties belong to widget it self.


capture_mouse

(method) widget:capture_mouse(scrolling?: boolean)

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

@param scrolling — Capture for scrolling


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()

deactivate

(method) widget:deactivate()

Emitted to input_text widgets on lost focus.


destroy

(method) widget:destroy()

If floating, remove the widget from the floating widgets list to allow proper garbage collection.


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) widget.label:draw()
-> boolean

draw_background

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

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.fontreference>, 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.


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.


extend

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

extends

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

Check if the object inherits from the given type.


force_event

(method) widget:force_event(name: "mouse_released", force: boolean)

Toggle the forced interception of given event even if all the conditions for emitting it are not met.

Note: only "mouse_released" is implemented for the moment on floating views for use in the SelectBox, maybe a better system can be implemented on the future.

@param force — If omitted is set to true by default

name:
| "mouse_released"

get_bottom

(method) widget:get_bottom()
-> number

Get the bottom y coordinate relative to parent


get_content_bounds

(method) core.view:get_content_bounds()
-> number
2. number
3. number
4. number

get_content_offset

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

get_font

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

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


get_h_scrollable_size

(method) widget:get_h_scrollable_size()
-> number

Calculates the x scrollable size taking into account the right most widget or the size of the widget it self if greater.


get_height

(method) widget:get_height()
-> number

Get height including borders.


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


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_right

(method) widget:get_right()
-> number

Get the right x coordinate relative to parent


get_scrollable_size

(method) widget:get_scrollable_size()
-> number

Calculates the y scrollable size taking into account the bottom most widget or the size of the widget it self if greater.


get_size

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

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 — Do not resize width while animating

@param lock_y — Do not resize height while animating


is

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

Check if the object is strictly of the given type.


is_class_of

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

Check if the parameter is strictly of the object type.


is_extended_by

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

Check if the parameter inherits from the object.


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: any, k: any, dest: any, rate: any, name: any)

new

(method) widget.label:new(parent: widget, label: string, word_wrap?: boolean)

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.


on_ime_text_editing

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

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) widget:on_mouse_pressed(button: "left"|"right", x: number, y: number, clicks: integer)
-> processed: boolean

Send mouse pressed events to hovered child or starts dragging if enabled.

button:
| "left"
| "right"

on_mouse_released

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

Send mouse released events to hovered child, ends dragging if enabled and emits on click events if applicable.

button:
| "left"
| "right"

on_mouse_wheel

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

on_scale_change

(method) widget:on_scale_change(new_scale: number, prev_scale: number)

Can be overriden by widgets to listen for scale change events to apply any neccesary changes in sizes, padding, etc...


on_text_input

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

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


on_touch_moved

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

release_mouse

(method) widget:release_mouse()

Undo capture_mouse()


remove_child

(method) widget:remove_child(child: widget)

Remove a child widget.


run_animations

(method) widget:run_animations()

Runs all registered animations removing duplicated and finished ones.


schedule_update

(method) widget:schedule_update()

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()
-> boolean

scrollbar_hovering

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

scrollbar_overlaps_point

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

set_border_width

(method) widget:set_border_width(width: integer)

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


set_label

(method) widget.label:set_label(text: string|table<integer, string|integer|renderer.color|renderer.font|widget.fontreference>)

Set the label text and recalculates the widget size.


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.label: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.fontreference>, 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.


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 — Do not resize width while animating

@param lock_y — Do not resize height while animating


supports_text_input

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

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 — 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.


toggle_word_wrap

(method) widget.label:toggle_word_wrap(value?: boolean)

Disable or enable word wrap on the label when the width exceeds the parent width. Only works for string labels, no support for styled text is implemented at the moment.


try_close

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

update

(method) widget.label:update()

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()

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


update_scrollbar

(method) core.view:update_scrollbar()

update_size_position

(method) widget.label:update_size_position()