[2023-04-17] GUI Team Demo Day #6309
Replies: 8 comments
-
Last week, I was doing more work on the IDE controller side, namely implementing #6179: adding integration logic for what happens after pressing the Play button. |
Beta Was this translation helpful? Give feedback.
-
Last week, I implemented most of the visual aspects of the play button. Clicking it shows a spinner icon and it's only visible on execution environments that have one or more execution contexts disabled. play-button.mp4 |
Beta Was this translation helpful? Give feedback.
-
Integrated the List Editor with vector editor widget. So far, adding is supported. The PR will be created once the Wojciech's PR will be merged. vector-editor-adding-presentation-2023-04-17_15.10.05.mp4 |
Beta Was this translation helpful? Give feedback.
-
Engine+LS Performance
|
Beta Was this translation helpful? Give feedback.
-
The current state of the read-only mode is on the video: 2023-04-17.18-06-31.mp4When read-only mode is active, user can't:
|
Beta Was this translation helpful? Give feedback.
-
I'/e been working on layer issues and making use of
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
I've been continuing work on widgets in nodes.
|
Beta Was this translation helpful? Give feedback.
-
List Editor Implementation
I finished the first visual implementation of List Editor, a list component allowing adding, removing and reordering its items.
Primary and secondary axis
The implementation currently only supports horizontal layout, but it's designed to also support
vertical layout. It uses "primary" and "secondary" to describe the list's axis. The primary axis
is where the items are laid out, while the secondary axis is perpendicular to it.
Reordering items
To initialize item dragging, it must first be dragged along the secondary axis to detach it from
its current position. Then, it can be freely dragged and placed back in the list by dropping it
next to other items.
This behavior is designed so because list items may be interactive widgets, such as sliders,
that need to receive mouse events like horizontal dragging. However, as mouse dragging is not
precise, the following algorithm is implemented:
than [
ListEditor::primary_axis_no_drag_threshold
]. If it is, the dragging is disabled untilthe mouse is released and all following mouse events are passed to the item.
secondary axis offset is greater than [ListEditor::secondary_axis_drag_threshold]. If it is, the
dragging is initialized and the item starts to follow the mouse.
The [
ListEditor::primary_axis_no_drag_threshold
] decays with time after the mouse is pressedto provide the user with precise control over the widgets. The decay time is controlled by
[
ListEditor::primary_axis_no_drag_threshold_decay
].To better illustrate this behavior, the following illustration uses the "x" symbol to denote
mouse press position:
Removing items
In order to remove an item, it should be dragged out of the list along the secondary axis by at
least the size of the list along the secondary axis multiplied by
[
ListEditor::thrashing_offset_ratio
].Demo
Screen.Recording.2023-04-17.at.14.18.38.mov
What's left to be done?
A few points remain to be finished:
All the above points should not take more than ~2 days.
Beta Was this translation helpful? Give feedback.
All reactions