====== Differences ====== This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
script_wheel_of_items [2014/03/31 18:39] trianguloy created |
script_wheel_of_items [2018/08/14 16:56] (current) f43nd1r fix link |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| * Purpose : This is a customizable wheel of items. | * Purpose : This is a customizable wheel of items. | ||
| * Author : [[https://plus.google.com/u/1/105066926163073195690|TrianguloY]] | * Author : [[https://plus.google.com/u/1/105066926163073195690|TrianguloY]] | ||
| - | * Link: https://plus.google.com/u/1/105066926163073195690/posts/dMG96rAsFt6 | + | * Link: https://plus.google.com/+TrianguloY/posts/dMG96rAsFt6 (With video) |
| + | * [[http://www.pierrox.net/android/applications/lightning_launcher/wiki/doku.php?id=script_wheel_of_items#modifications|Modification]] | ||
| ====== How to use the script ====== | ====== How to use the script ====== | ||
| Line 20: | Line 20: | ||
| This script will use all the items in the container, that's why I recommend to use a panel. | This script will use all the items in the container, that's why I recommend to use a panel. | ||
| + | |||
| ====== Script code ====== | ====== Script code ====== | ||
| - | <code> | + | <sxh javascript> |
| /*Config: */ | /*Config: */ | ||
| var h = 0; //horizontal alignment (-1 , 0 , 1 ) | var h = 0; //horizontal alignment (-1 , 0 , 1 ) | ||
| Line 67: | Line 68: | ||
| } | } | ||
| - | </code> | + | </sxh> |
| + | |||
| + | ====== Modifications ====== | ||
| + | * Ready-to-use and possibility of having different settings in different containers. No need to set up settings! Follow all other instructions with the code below | ||
| + | by [[http://www.google.com/+LukasMorawietz|F43nd1r]] | ||
| + | |||
| + | === modified script === | ||
| + | <sxh javascript;> | ||
| + | var event = LL.getEvent(); | ||
| + | var desktop = event.getContainer(); | ||
| + | var data=JSON.parse(desktop.getTag()||"null"); | ||
| + | if(data==null) | ||
| + | { | ||
| + | data=new Object(); | ||
| + | data.h=parseInt(prompt("No Settings found.\nInput your horizontal Alignment (-1 , 0 , 1 )",0))||0; | ||
| + | data.v=parseInt(prompt("Input your vertical Alignment (-1 , 0 , 1 )",0))||0; | ||
| + | data.r=parseInt(prompt("Input your rotation offset ( 0 = default) in angles, not very implemented (0 or 180 recommended) ",0))||0; | ||
| + | data.f=parseInt(prompt("Input your sensitivity",2))||2; | ||
| + | } | ||
| + | desktop.setTag(JSON.stringify(data)); | ||
| + | var h=data.h; | ||
| + | var v=data.v; | ||
| + | var r=data.r; | ||
| + | var f=data.f; | ||
| + | var a = desktop.getItems(); | ||
| + | var na = a.getLength(); | ||
| + | var radius = Math.min( desktop.getHeight()/ (v==0?4:2) , desktop.getWidth()/ (h==0?4:2) ); | ||
| + | var alt = 0.5; | ||
| + | var size = [ radius*(2-alt)*Math.PI/na , radius*2 ]; | ||
| + | var desf = (desktop.getPositionX()* (v>0?-1:1)+desktop.getPositionY()*(h>0?-1:1) )*Math.PI/desktop.getWidth(); | ||
| + | desf*=f; | ||
| + | |||
| + | for ( var i=0; i<na; i+=1 ) | ||
| + | { | ||
| + | var t = a.getAt(i); size=[t.getWidth(),t.getHeight()]; | ||
| + | var angle = Math.PI*2*i/na-desf; | ||
| + | var x = Math.cos( angle -Math.PI/2 ) * radius; | ||
| + | var y = Math.sin( angle -Math.PI/2 ) * radius; | ||
| + | var rot = angle*180/Math.PI+r; | ||
| + | x+= (h<0? 0 : desktop.getWidth()/ (h==0? 2 : 1) ) ; | ||
| + | y+= (v>0? 0: desktop.getHeight()/ (v==0? 2 : 1) ); | ||
| + | x-= size[0]/2; | ||
| + | y-= size[1]/2; | ||
| + | |||
| + | t.setRotation(0); | ||
| + | t.setSize(size[0] ,size[1]); | ||
| + | t.setPosition(x, y); | ||
| + | t.setRotation(rot); | ||
| + | } | ||
| + | </sxh> | ||