Difference between revisions of "NexUI"
(6 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
= User Interface Project = | = User Interface Project = | ||
'''Project Subject to change at any time due to being currently under development.''' | |||
A project to try create an efficient, flexible and innovative User Interface in LSL. Without being complex to use or using a ridicolous amount of constants, providing direct results that can be returned and used by the scripter directly in a Master script for efficiency, or used via automation of a UI master to a link-message protocol sent to scripts written by the original scripter. | A project to try create an efficient, flexible and innovative User Interface in LSL. Without being complex to use or using a ridicolous amount of constants, providing direct results that can be returned and used by the scripter directly in a Master script for efficiency, or used via automation of a UI master to a link-message protocol sent to scripts written by the original scripter. | ||
Line 8: | Line 10: | ||
The User Interface Project is to create a UI that can be used in-world as well as on the HUD, providing pseudo-dynamic graphical feedback to the user(s). | The User Interface Project is to create a UI that can be used in-world as well as on the HUD, providing pseudo-dynamic graphical feedback to the user(s). | ||
Update: Due to issues with high size due to compiled code being quite extensive due to number of helper functions stacking up as well complexity of functions generally, as well as for general ease-of-use, I will be re-designing the project into an API. | |||
== Design, Components == | |||
{| uiFunction | |||
|- | |- | ||
| | | Mode | ||
| Stuff | |||
|- | |- | ||
| | | 0 | ||
| ''process'' touch_start() event, initialization | |||
|- | |- | ||
| | | 1 | ||
| ''process'' touch() event, feedback, and ''get'' values | |||
|- | |- | ||
| | | 2 | ||
| | | ''process'' touch_end() event and ''get'' values | ||
|- | |- | ||
| 3 | |||
| ''get'' values | |||
|- | |- | ||
| | | 4 | ||
| | | ''set'' values, refresh graphics | ||
|- | |- | ||
| | | 5 | ||
| | | ''initalize'', set default values, refresh | ||
|} | |} | ||
== Design, Menu == | |||
< | Example notecard script 'uiMenu:Test' for child prim named 'Test' | ||
<pre> | |||
Menu A{ | |||
Texture: 00000000-0000-0000-0000-000000000000 | |||
Button: Rect : 0.12, 0.20 | 0.20, 0.23 : Goto : Menu B : Transition : Alpha | |||
Button: Rect : 0.12, 0.15 | 0.20, 0.18 : Return : "Custom String" | |||
Button: Rect : 0.12, 0.10 | 0.20, 0.13 : Link Msg : LINK_SET : 1024 : "Toggle" : "" | |||
Button: Rect : 0.12, 0.05 | 0.20, 0.08 : Goto : Menu C : Transition : Alpha | |||
} | |||
{ | Menu B{ | ||
Texture: 00000000-0000-0000-0000-000000000000 | |||
Button: Rect : 0.50, 0.40 | 0.70, 0.44 : Goto : Menu B : Transition : Alpha | |||
} | |||
Menu C{ | |||
Texture: 00000000-0000-0000-0000-000000000000 | |||
Repeats: 0.5, 1.0 | |||
Offset: -0.25, 0.0 | |||
Button: Rect : 0.10, 0.90 | 0.20, 0.95 : Goto : Menu D : Transition : Anim : 1.0 | |||
} | |||
{ | Menu D{ | ||
Texture: 00000000-0000-0000-0000-000000000000 | |||
Repeats: 0.5, 1.0 | |||
Offset: 0.25, 0.0 | |||
Button: Rect : 0.80, 0.90 | 0.90, 0.95 : Goto : Menu C : Transition : Anim : 1.0 | |||
} | |||
</pre> | |||
== Setup == | |||
== uiFunctions == | |||
<!--############# TURN #############--> | |||
{|cellspacing="0" cellpadding="3" border="1" style="border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #ffffff; border-collapse: collapse" width="80%" | {|cellspacing="0" cellpadding="3" border="1" style="border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #ffffff; border-collapse: collapse" width="80%" | ||
!style="color: #000000; background-color: #aaaaff;" height="20px"| | !style="color: #000000; background-color: #aaaaff;" height="20px"| | ||
Turn | |||
|- | |- | ||
| | | | ||
Turn component, imagine a turntable, or the 'iPod' menu. | |||
<lsl> | <lsl> | ||
link_message( integer sender, integer num, string str, key k ){ | |||
// Example use here.. | |||
} | } | ||
</lsl> | </lsl> | ||
{|cellspacing="0" cellpadding="6" border="1" style="border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #e0e0ff; border-collapse: collapse" | {|cellspacing="0" cellpadding="6" border="1" style="border: 1px solid #aaaaaa; margin: 1em 1em 1em 0pt; background-color: #e0e0ff; border-collapse: collapse" | ||
!style="background-color: #d0d0ee" | | !style="background-color: #d0d0ee" | Output | ||
!style="background-color: #d0d0ee" | Description | !style="background-color: #d0d0ee" | Description | ||
|- | |- | ||
| | | return link message, num with (TBD) | ||
| | | Returns ''Str'' as ''¬'' delimited list with values: [Angle], angle is in radians, -PI to 0 to PI, or when multiplied by RAD_TO_DEG it is -180 to 0 to 180. Empty list on error. | ||
|- | |- | ||
!style="background-color: #d0d0ee" | | | return link message, num with (TBD) | ||
| Returns ''Str'' as ''¬'' delimited list with values: [Final Angle], Empty list on error. | |||
|- | |||
!style="background-color: #d0d0ee" | Input | |||
!style="background-color: #d0d0ee" | Description | !style="background-color: #d0d0ee" | Description | ||
|- | |- | ||
| | | link message, num, str, key | ||
| Num (TBD) ''OR'''d with ''Mode'' of uiFunction, As follows: 3 - Get or 4 - Set | |||
|} | |} | ||
<div style="float:right;font-size: 80%;"> | <div style="float:right;font-size: 80%;"> | ||
By Nexii Malthus</div> | By Nexii Malthus</div> | ||
|} | |} |
Latest revision as of 23:22, 18 December 2008
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
User Interface Project
Project Subject to change at any time due to being currently under development.
A project to try create an efficient, flexible and innovative User Interface in LSL. Without being complex to use or using a ridicolous amount of constants, providing direct results that can be returned and used by the scripter directly in a Master script for efficiency, or used via automation of a UI master to a link-message protocol sent to scripts written by the original scripter.
The User Interface Project is to create a UI that can be used in-world as well as on the HUD, providing pseudo-dynamic graphical feedback to the user(s).
Update: Due to issues with high size due to compiled code being quite extensive due to number of helper functions stacking up as well complexity of functions generally, as well as for general ease-of-use, I will be re-designing the project into an API.
Design, Components
Mode | Stuff |
0 | process touch_start() event, initialization |
1 | process touch() event, feedback, and get values |
2 | process touch_end() event and get values |
3 | get values |
4 | set values, refresh graphics |
5 | initalize, set default values, refresh |
Design, Menu
Example notecard script 'uiMenu:Test' for child prim named 'Test'
Menu A{ Texture: 00000000-0000-0000-0000-000000000000 Button: Rect : 0.12, 0.20 | 0.20, 0.23 : Goto : Menu B : Transition : Alpha Button: Rect : 0.12, 0.15 | 0.20, 0.18 : Return : "Custom String" Button: Rect : 0.12, 0.10 | 0.20, 0.13 : Link Msg : LINK_SET : 1024 : "Toggle" : "" Button: Rect : 0.12, 0.05 | 0.20, 0.08 : Goto : Menu C : Transition : Alpha } Menu B{ Texture: 00000000-0000-0000-0000-000000000000 Button: Rect : 0.50, 0.40 | 0.70, 0.44 : Goto : Menu B : Transition : Alpha } Menu C{ Texture: 00000000-0000-0000-0000-000000000000 Repeats: 0.5, 1.0 Offset: -0.25, 0.0 Button: Rect : 0.10, 0.90 | 0.20, 0.95 : Goto : Menu D : Transition : Anim : 1.0 } Menu D{ Texture: 00000000-0000-0000-0000-000000000000 Repeats: 0.5, 1.0 Offset: 0.25, 0.0 Button: Rect : 0.80, 0.90 | 0.90, 0.95 : Goto : Menu C : Transition : Anim : 1.0 }
Setup
uiFunctions
Turn | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Turn component, imagine a turntable, or the 'iPod' menu. <lsl> link_message( integer sender, integer num, string str, key k ){ // Example use here.. } </lsl>
By Nexii Malthus
|