diff --git a/docs/source/reference/lua-scripting/widgets/container.rst b/docs/source/reference/lua-scripting/widgets/container.rst index a990b55c6a..366dedaca3 100644 --- a/docs/source/reference/lua-scripting/widgets/container.rst +++ b/docs/source/reference/lua-scripting/widgets/container.rst @@ -49,3 +49,50 @@ Properties - boolean (true) - | Modulate `alpha` with parents `alpha`. | If the parent has `inheritAlpha` set to `true`, the value after modulating is passed to the child. + +Events +------ + +Base widget events are special, they can propagate up to the parent widget. +This can be prevented by changing the `propagateEvents` property, or by assigning an event handler. +The event is still allowed to propagate if the event handler returns `true`. + +.. list-table:: + :header-rows: 1 + :widths: 20 20 60 + + * - name + - first argument type + - description + * - keyPress + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was pressed with this widget in focus + * - keyRelease + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was released with this widget in focus + * - mouseMove + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - | Mouse cursor moved on this widget + | `MouseEvent.button` is the mouse button being held + | (nil when simply moving, and not dragging) + * - mouseClick + - nil + - Widget was clicked with left mouse button + * - mouseDoubleClick + - nil + - Widget was double clicked with left mouse button + * - mousePress + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was pressed on this widget + * - mouseRelease + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was released on this widget + * - focusGain + - nil + - Widget gained focus (either through mouse or keyboard) + * - focusLoss + - nil + - Widget lost focus + * - textInput + - string + - Text input with this widget in focus diff --git a/docs/source/reference/lua-scripting/widgets/flex.rst b/docs/source/reference/lua-scripting/widgets/flex.rst index 468cb93958..e9927738f0 100644 --- a/docs/source/reference/lua-scripting/widgets/flex.rst +++ b/docs/source/reference/lua-scripting/widgets/flex.rst @@ -13,6 +13,38 @@ Properties * - name - type (default value) - description + * - position + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner in pixels. + * - size + - util.vector2 (0, 0) + - Increases the widget's size in pixels. + * - relativePosition + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner as a fraction of the parent's size. + * - relativeSize + - util.vector2 (0, 0) + - Increases the widget's size by a fraction of its parent's size. + * - anchor + - util.vector2 (0, 0) + - | Offsets the widget's position by a fraction of its size. + | Useful for centering or aligning to a corner. + * - visible + - boolean (true) + - Defines if the widget is visible + * - propagateEvents + - boolean (true) + - Allows base widget events to propagate to the widget's parent. + * - alpha + - number (1.0) + - | Set the opacity of the widget and its contents. + | If `inheritAlpha` is set to `true`, this becomes the maximum alpha value the widget can take. + * - inheritAlpha + - boolean (true) + - | Modulate `alpha` with parents `alpha`. + | If the parent has `inheritAlpha` set to `true`, the value after modulating is passed to the child. * - horizontal - bool (false) - | Flex aligns its children in a row (main axis is horizontal) if true, @@ -28,6 +60,53 @@ Properties - ui.ALIGNMENT (Start) - How to arrange the children in the cross axis. +Events +------ + +Base widget events are special, they can propagate up to the parent widget. +This can be prevented by changing the `propagateEvents` property, or by assigning an event handler. +The event is still allowed to propagate if the event handler returns `true`. + +.. list-table:: + :header-rows: 1 + :widths: 20 20 60 + + * - name + - first argument type + - description + * - keyPress + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was pressed with this widget in focus + * - keyRelease + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was released with this widget in focus + * - mouseMove + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - | Mouse cursor moved on this widget + | `MouseEvent.button` is the mouse button being held + | (nil when simply moving, and not dragging) + * - mouseClick + - nil + - Widget was clicked with left mouse button + * - mouseDoubleClick + - nil + - Widget was double clicked with left mouse button + * - mousePress + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was pressed on this widget + * - mouseRelease + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was released on this widget + * - focusGain + - nil + - Widget gained focus (either through mouse or keyboard) + * - focusLoss + - nil + - Widget lost focus + * - textInput + - string + - Text input with this widget in focus + External -------- .. list-table:: diff --git a/docs/source/reference/lua-scripting/widgets/image.rst b/docs/source/reference/lua-scripting/widgets/image.rst index df62251622..9c7d7f6c7e 100644 --- a/docs/source/reference/lua-scripting/widgets/image.rst +++ b/docs/source/reference/lua-scripting/widgets/image.rst @@ -13,6 +13,38 @@ Properties * - name - type (default value) - description + * - position + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner in pixels. + * - size + - util.vector2 (0, 0) + - Increases the widget's size in pixels. + * - relativePosition + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner as a fraction of the parent's size. + * - relativeSize + - util.vector2 (0, 0) + - Increases the widget's size by a fraction of its parent's size. + * - anchor + - util.vector2 (0, 0) + - | Offsets the widget's position by a fraction of its size. + | Useful for centering or aligning to a corner. + * - visible + - boolean (true) + - Defines if the widget is visible + * - propagateEvents + - boolean (true) + - Allows base widget events to propagate to the widget's parent. + * - alpha + - number (1.0) + - | Set the opacity of the widget and its contents. + | If `inheritAlpha` is set to `true`, this becomes the maximum alpha value the widget can take. + * - inheritAlpha + - boolean (true) + - | Modulate `alpha` with parents `alpha`. + | If the parent has `inheritAlpha` set to `true`, the value after modulating is passed to the child. * - resource - ui.texture - The texture resource to display @@ -25,3 +57,50 @@ Properties * - color - util.color (``rgb(1, 1, 1)``) - Modulate constant color with the color of the image texture. + +Events +------ + +Base widget events are special, they can propagate up to the parent widget. +This can be prevented by changing the `propagateEvents` property, or by assigning an event handler. +The event is still allowed to propagate if the event handler returns `true`. + +.. list-table:: + :header-rows: 1 + :widths: 20 20 60 + + * - name + - first argument type + - description + * - keyPress + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was pressed with this widget in focus + * - keyRelease + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was released with this widget in focus + * - mouseMove + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - | Mouse cursor moved on this widget + | `MouseEvent.button` is the mouse button being held + | (nil when simply moving, and not dragging) + * - mouseClick + - nil + - Widget was clicked with left mouse button + * - mouseDoubleClick + - nil + - Widget was double clicked with left mouse button + * - mousePress + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was pressed on this widget + * - mouseRelease + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was released on this widget + * - focusGain + - nil + - Widget gained focus (either through mouse or keyboard) + * - focusLoss + - nil + - Widget lost focus + * - textInput + - string + - Text input with this widget in focus diff --git a/docs/source/reference/lua-scripting/widgets/text.rst b/docs/source/reference/lua-scripting/widgets/text.rst index b1e7d89e59..e98eb3f30e 100644 --- a/docs/source/reference/lua-scripting/widgets/text.rst +++ b/docs/source/reference/lua-scripting/widgets/text.rst @@ -13,6 +13,38 @@ Properties * - name - type (default value) - description + * - position + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner in pixels. + * - size + - util.vector2 (0, 0) + - Increases the widget's size in pixels. + * - relativePosition + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner as a fraction of the parent's size. + * - relativeSize + - util.vector2 (0, 0) + - Increases the widget's size by a fraction of its parent's size. + * - anchor + - util.vector2 (0, 0) + - | Offsets the widget's position by a fraction of its size. + | Useful for centering or aligning to a corner. + * - visible + - boolean (true) + - Defines if the widget is visible + * - propagateEvents + - boolean (true) + - Allows base widget events to propagate to the widget's parent. + * - alpha + - number (1.0) + - | Set the opacity of the widget and its contents. + | If `inheritAlpha` is set to `true`, this becomes the maximum alpha value the widget can take. + * - inheritAlpha + - boolean (true) + - | Modulate `alpha` with parents `alpha`. + | If the parent has `inheritAlpha` set to `true`, the value after modulating is passed to the child. * - autoSize - boolean (true) - | Adjusts this widget's size to fit the text exactly. @@ -44,3 +76,50 @@ Properties * - textShadowColor - util.color (``rgb(0, 0, 0)``) - The color of the text shadow. + +Events +------ + +Base widget events are special, they can propagate up to the parent widget. +This can be prevented by changing the `propagateEvents` property, or by assigning an event handler. +The event is still allowed to propagate if the event handler returns `true`. + +.. list-table:: + :header-rows: 1 + :widths: 20 20 60 + + * - name + - first argument type + - description + * - keyPress + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was pressed with this widget in focus + * - keyRelease + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was released with this widget in focus + * - mouseMove + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - | Mouse cursor moved on this widget + | `MouseEvent.button` is the mouse button being held + | (nil when simply moving, and not dragging) + * - mouseClick + - nil + - Widget was clicked with left mouse button + * - mouseDoubleClick + - nil + - Widget was double clicked with left mouse button + * - mousePress + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was pressed on this widget + * - mouseRelease + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was released on this widget + * - focusGain + - nil + - Widget gained focus (either through mouse or keyboard) + * - focusLoss + - nil + - Widget lost focus + * - textInput + - string + - Text input with this widget in focus diff --git a/docs/source/reference/lua-scripting/widgets/textedit.rst b/docs/source/reference/lua-scripting/widgets/textedit.rst index a06599ffd6..d96b054f4e 100644 --- a/docs/source/reference/lua-scripting/widgets/textedit.rst +++ b/docs/source/reference/lua-scripting/widgets/textedit.rst @@ -13,6 +13,38 @@ Properties * - name - type (default value) - description + * - position + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner in pixels. + * - size + - util.vector2 (0, 0) + - Increases the widget's size in pixels. + * - relativePosition + - util.vector2 (0, 0) + - | Offsets the position of the widget from its parent's + | top-left corner as a fraction of the parent's size. + * - relativeSize + - util.vector2 (0, 0) + - Increases the widget's size by a fraction of its parent's size. + * - anchor + - util.vector2 (0, 0) + - | Offsets the widget's position by a fraction of its size. + | Useful for centering or aligning to a corner. + * - visible + - boolean (true) + - Defines if the widget is visible + * - propagateEvents + - boolean (true) + - Allows base widget events to propagate to the widget's parent. + * - alpha + - number (1.0) + - | Set the opacity of the widget and its contents. + | If `inheritAlpha` is set to `true`, this becomes the maximum alpha value the widget can take. + * - inheritAlpha + - boolean (true) + - | Modulate `alpha` with parents `alpha`. + | If the parent has `inheritAlpha` set to `true`, the value after modulating is passed to the child. * - text - string ('') - The text to display. @@ -52,6 +84,38 @@ Events * - name - first argument type - description + * - keyPress + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was pressed with this widget in focus + * - keyRelease + - `KeyboardEvent <../openmw_input.html##(KeyboardEvent)>`_ + - A key was released with this widget in focus + * - mouseMove + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - | Mouse cursor moved on this widget + | `MouseEvent.button` is the mouse button being held + | (nil when simply moving, and not dragging) + * - mouseClick + - nil + - Widget was clicked with left mouse button + * - mouseDoubleClick + - nil + - Widget was double clicked with left mouse button + * - mousePress + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was pressed on this widget + * - mouseRelease + - `MouseEvent <../openmw_ui.html##(MouseEvent)>`_ + - A mouse button was released on this widget + * - focusGain + - nil + - Widget gained focus (either through mouse or keyboard) + * - focusLoss + - nil + - Widget lost focus + * - textInput + - string + - Text input with this widget in focus * - textChanged - string - Displayed text changed (e. g. by user input)