I dont know, if is realy bug…
Posted by: pierrot | on March 22, 2014
I dont know, if is realy bug…
I know, how work LL action “Go to specified desktop and position”. But I try this:
I puted to destkop panel (pinned). To this panel i puted some icons (3 screen in panel). To end of screen in panel i puted 2 stop point and set him reached event to “Go to specified desktop and position”. But in panel this LL action not working. Where is my mistake? I’m trying to do the following infinite dockbar…
last beta 9.9.14
]]>Posted in | 23 Comments »
Tags:
« I have onemore idea… enable set in LL haptic feedback (vibration). (Previous Post)
(Next Post) Bug with item hierarchy 9.9.14. »
< ![CDATA[
the go to specified desktop shortcut does not works inside panel when generated from another object (shortcuts, zooper widget …). it only work for panle when creating an actual shortcut object
this comes from the selection methods. when you create the shortcut from within an object (stop point, tasker etc…), the system ask you to choose a desktop and remember the desktop position, and not the panels. while if you create a shortcut object it will remember the posoton of the container you are in.
to get the results of go to position for panel, you need to use the script setPosition on the panel instead
]]>
< ![CDATA[
Ok, but how can normal user (no Programator ) create panel with infinity panel (as dockbar)?
]]>
< ![CDATA[
Danbar Danbar check my ‘multi container bookmark’ script in the scripts section
]]>
< ![CDATA[
TrianguloY
Yes, thanks, this working. Do you have some script where is not pixel to size screen, but grid size?
]]>
< ![CDATA[
Do you mean something like goToCell(3,6)?
This is not possible, but not necessary too.
Edit: it will be easy to make (as another script). Will you want it?
]]>
< ![CDATA[
yes please…
But is it posible something as?
I have grid 6×6.
A like goToCell(-1,6) = screen left from home screen in position one right or 6 from left.
or goToCell(7,6) = screen right from home screen in positin one from left or 6 from right.
]]>
< ![CDATA[
Danbar Danbar the truth is…that it’s very easy. Just multiply the number of cell by [container].getCellWidth() and [container].getCellHeight()
Where [container] is the container you want.
For example:
var c = LL.getEvent().getContainer();
c.setPosition( 8 * c.getCellWidth() , 7 * c.getCellHeight() );
Will move the desktop to the seventh horizontal sixth vertical cell (remember that the upper left cell is 0,0 and the bottom right is 6,6 in your grid)
]]>
< ![CDATA[
🙂 thanks, again works werry well. I have one idea… it is possible find the last occupied cell (on this cell is icon or widget) on the left/right/top/bottom side? And this cell put to your script?
Because I have different grid for portrait and different landscape layouts. If not possible, i must add 4 different stop point….
]]>
< ![CDATA[
Danbar Danbar If you want to go to an exact page, just change getCellWidth() with getWidth() (the same with Height)
This way just use the number of the page: for example the second horizontal page will be 1,0 (remember that the first is 0,0)
]]>
< ![CDATA[
propably mistake…
i have grid for portrait layout 6×6 (panel 6×1), and grid for landscape layout 9×4 (panel 9×1) and set dualposition to yes.
in portrait: 18/6 (position) = 3(screens)
in landscape: 18/9 = 2(screens).
I have in panel on portrait layout in left screen puted stop point (with Reached event set to your script – way to right screen). On right screen puted stop point (with Reached evet set to your script – way to right screen).
Because in landcape layout i have only 2 screen (not 3), i have problem…
Either script must automatically change the position of the last cell, or somehow add the condition divergence script: some as when portrait layout do it bla bla, else (landscape) do it different bla bla.
]]>
< ![CDATA[
Oh! Ok. Understood.
Just use: (c is the container )
if(c.getHeigth()>c.getWidth()){
/*in portrait mode */
}else{
/*in landscape mode */
}
]]>
< ![CDATA[
var c = LL.getEvent().getContainer();
if(c.getHeigth()>c.getWidth()){
c.setPosition( -6* c.getCellWidth() , 0 * c.getCellHeight() );
}else{
c.setPosition( -9* c.getCellWidth() , 0 * c.getCellHeight() );}
But after run script, i have this error: at line 3: type Error: Cannot find function getHeight in object Container 102.
]]>
< ![CDATA[
I got it… error is here:
c.getHeigth() change to: c.getHeight()
wrong is th() correct ht()
]]>
< ![CDATA[
Uoops. Sorry. (THAT error. I’m upset of that. For some reason I think is th….why? I don’t know)
]]>
< ![CDATA[
heh, script working (not have error), but have different problem. Condition is functionless 🙁
everytime doing only else (-9 never used)
var c = LL.getEvent().getContainer();
if(c.getHeight()>c.getWidth()){
c.setPosition( -9* c.getCellWidth() , 0 * c.getCellHeight() );
}else{
c.setPosition( -6* c.getCellWidth() , 0 * c.getCellHeight() );}
]]>
< ![CDATA[
It works for me. Just to be sure, are you rotating the screen? Do the status bar rotate also?
]]>
< ![CDATA[
yes, of course.
dicky
]]>
< ![CDATA[
Oh wait. Now I understand. True, because the panel is always with more Width than Height. Use this:
var c = LL.getEvent().getContainer();
var d = LL.getCurrentDesktop();
if(d.getHeight()>d.getWidth()){
c.setPosition( -9* c.getCellWidth() , 0 * c.getCellHeight() );
}else{
c.setPosition( -6* c.getCellWidth() , 0 * c.getCellHeight() );
}
]]>
< ![CDATA[
Is it possible to automate those values? I already know how to use the script. I think the other users …
Because i have grid 9×4 in landcape and in script for left is set -9, in right will be 9. If more screens in one destkop, -18 or 18 etc. In Portrait 6×6… left -6, right 6, more screens -12/12.
If user add some icons and have more screens, user must change script values..
]]>
< ![CDATA[
If the scrolling is set to snap to pages, the bounding box divided by the size of the screen will tell you the number of pages.
For example:
(c.getBoundingBox().getRight()-c.getBoundingBox().getLeft() )/c.getWidth()
is the number of horizontal pages.
But if you just want to go to the last place use this: (it will go to the bottom-Right position)
var t = c.getBoundingBox();
c.setPosition(t.getRight()-c.getWidth() , t.getBottom()-c.getHeight() );
Did you saw the Api wiki page? In the pinned post. It will tell you what you can do.
]]>
< ![CDATA[
yes, i know api wiki page. But i am not programmator, only experienced users LL. I know html, a bit of javascript and php.
]]>
< ![CDATA[
I upgrade your script to:
var c = LL.getEvent().getContainer();
var t = c.getBoundingBox();
c.setPosition((t.getRight() – c.getWidth()) – (4*c.getCellWidth()) , t.getBottom() – c.getHeight() );
Because I have behind last icon – stop point (they doing your script to other side – to left).
Now think about how doing this:
When i add next icon (more right), now is my stop point little bit closer. I must removed my stop point also more right.
How automatically by script doing transfer for stop point? (i add icon, now is closer stop point. I use script, and script doing transfer stop point and stop point will be in this place always / but if i add onesmore icon, again automatically doing transfer stop point).
]]>
< ![CDATA[
The best is to not use stop points. Use instead a script in the changeposition event.
Check the script section in this community, I’m sure someone else posted exactly what you want. If not ask about it in a new post.
]]>