secondlife / jira-archive

2 stars 0 forks source link

[BUG-228337] Click action improvements / Making objects responsive #6447

Open sl-service-account opened 4 years ago

sl-service-account commented 4 years ago

How would you like the feature to work?


New ll[Get|Set]LinkPrimitiveParam[Fast] param:
PRIM_CLICK_ACTION

New CLICK_ACTION_* types:
CLICK_ACTION_DISABLED - Disable clicking on this prim/link. Effectively the same as being a prim without a script, disregards root link's clickable status.
Bonus click actions:
CLICK_ACTION_WAIT - Not clickable at this time, currently processing something, will instead show a waiting cursor.
CLICK_ACTION_RESTRICTED - Not clickable at this time, can be clicked but the script is currently forbidding it.
CLICK_ACTION_DROP - Clickable, opens a "inventory picker". Does exactly the same thing as ctrl+dragging a inventory item onto the object, will still trigger CHANGED_INVENTORY. Must explicitly specify inventory drop status via script for this to work properly.

Why is this feature important to you? How would it benefit the community?

Responsive designs are highly important for a enjoyable and straight forward user interface. Currently, if a link set's root contains a script AND the script contains a touch event, the entire link set is touchable. This can lead to confusion as to what parts are actually interact-able. Case scenario:

  1. A vendor with multiple buttons using one script. The entire vendor can be clicked, but only the buttons are interact-able. This can cause the user to click on portions that are not intended to be clicked on.
  2. A game board with elements designed to be clicked and the playing field. The playing field is clickable but doesn't do anything because it isn't designed to do this.
  3. A HUD with configuration buttons. The background and design of the hud is clickable despite it not doing anything.

By allowing scripts to isolate what portions of the object is clickable, this can greatly improve user experience.

The optional addition of the later mentioned click actions can also improve responsiveness of the object, by subtly hinting to the user that the object can be interacted with, but cannot be interacted with at this time. Can also indicate to a user that a click was successful and is processing the click.

Links

Related

Original Jira Fields | Field | Value | | ------------- | ------------- | | Issue | BUG-228337 | | Summary | Click action improvements / Making objects responsive | | Type | New Feature Request | | Priority | Unset | | Status | Accepted | | Resolution | Accepted | | Reporter | Chaser Zaks (chaser.zaks) | | Created at | 2020-03-19T18:20:01Z | | Updated at | 2020-04-23T21:46:11Z | ``` { 'Build Id': 'unset', 'Business Unit': ['Platform'], 'Date of First Response': '2020-03-19T21:12:19.287-0500', 'How would you like the feature to work?': '{code}\r\nNew ll[Get|Set]LinkPrimitiveParam[Fast] param:\r\nPRIM_CLICK_ACTION\r\n\r\nNew CLICK_ACTION_* types:\r\nCLICK_ACTION_DISABLED - Disable clicking on this linkset\r\nBonus click actions:\r\nCLICK_ACTION_WAIT - Not clickable at this time, currently processing something, will instead show a waiting cursor.\r\nCLICK_ACTION_RESTRICTED - Not clickable at this time, can be clicked but the script is currently forbidding it.\r\nCLICK_ACTION_DROP - Clickable, opens a "inventory picker". Does exactly the same thing as ctrl+dragging a inventory item onto the object, will still trigger CHANGED_INVENTORY.\r\n{code}', 'Original Reporter': 'Chaser Zaks (chaser.zaks)', 'ReOpened Count': 0.0, 'Severity': 'Unset', 'Target Viewer Version': 'viewer-development', 'Why is this feature important to you? How would it benefit the community?': "Responsive designs are highly important for a enjoyable and straight forward user interface.\r\nCurrently, if a link set's root contains a script AND the script contains a touch event, the entire link set is touchable. This can lead to confusion as to what parts are actually interact-able.\r\nCase scenario:\r\n1. A vendor with multiple buttons using one script. The entire vendor can be clicked, but only the buttons are interact-able. This can cause the user to click on portions that are not intended to be clicked on.\r\n2. A game board with elements designed to be clicked and the playing field. The playing field is clickable but doesn't do anything because it isn't designed to do this.\r\n3. A HUD with configuration buttons. The background and design of the hud is clickable despite it not doing anything.\r\n\r\nBy allowing scripts to isolate what portions of the object is clickable, this can greatly improve user experience.\r\n\r\nThe optional addition of the later mentioned click actions can also improve responsiveness of the object, by subtly hinting to the user that the object *can* be interacted with, but cannot be interacted with at this time. Can also indicate to a user that a click was successful and is processing the click.", } ```
sl-service-account commented 4 years ago

Lucia Nightfire commented at 2020-03-20T02:12:19Z

Basically a remote/SLPP* version of http://wiki.secondlife.com/wiki/LlSetClickAction although the wait and restricted settings are more mouse hover-over icon changes than functionality the server can predict/determine. It would probably be nice to have a dedicated function to change a prim property that affectss the mouse icon on hover-over itself.