====== Differences ====== This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
script_scrollbar_interactive [2014/05/03 20:16] tbog [About script] |
script_scrollbar_interactive [2014/05/07 13:07] (current) tbog [Script code] |
||
|---|---|---|---|
| Line 14: | Line 14: | ||
| ====== Photo examples ====== | ====== Photo examples ====== | ||
| - | [[https://lh3.googleusercontent.com/-dS-pTuih_Ok/U2UdJb4YoZI/AAAAAAAARf8/a2-wIofUoWQ/w516-h108-no/2014-05-03+16.46.53.png|Horizontal scrollbar]] panel has white borders, inside panel red grid that represents pages, green indicator. | + | * [[https://lh3.googleusercontent.com/-dS-pTuih_Ok/U2UdJb4YoZI/AAAAAAAARf8/a2-wIofUoWQ/w516-h108-no/2014-05-03+16.46.53.png|Horizontal scrollbar]] where the panel has white borders, inside panel red grid that represents pages and a green indicator. |
| - | + | * [[https://lh4.googleusercontent.com/-RtsolwWaWBM/U2UdTo3V2NI/AAAAAAAARgE/k650ZxJ1srU/w1329-h4362-no/2014-05-03+16.45.44.png|Vertical scrollbar]] inside a folder on the right side. | |
| - | [[https://lh4.googleusercontent.com/-RtsolwWaWBM/U2UdTo3V2NI/AAAAAAAARgE/k650ZxJ1srU/w1329-h4362-no/2014-05-03+16.45.44.png|Vertical scrollbar]] inside a folder. | + | |
| ====== Script code ====== | ====== Script code ====== | ||
| **__updateScrollBar__** | **__updateScrollBar__** | ||
| Line 98: | Line 96: | ||
| <code> | <code> | ||
| var thickness = 50; | var thickness = 50; | ||
| + | |||
| + | function getContainerCellCountX(c) | ||
| + | { | ||
| + | var items = c.getItems(); | ||
| + | var I = items.getLength() - 1; | ||
| + | var max = Number.MIN_VALUE; | ||
| + | var min = Number.MAX_VALUE; | ||
| + | while ( I >= 0 ) | ||
| + | { | ||
| + | var item = items.getAt(I--); | ||
| + | if ( !item.getProperties().getBoolean("i.onGrid") ) | ||
| + | continue; | ||
| + | var r = item.getCell(); | ||
| + | max = Math.max(max, r.getRight()); | ||
| + | min = Math.min(min, r.getLeft()); | ||
| + | } | ||
| + | return max - min; | ||
| + | } | ||
| var c = LL.getEvent().getContainer(); | var c = LL.getEvent().getContainer(); | ||
| Line 104: | Line 120: | ||
| sb.setSize(thickness, c.getHeight()); | sb.setSize(thickness, c.getHeight()); | ||
| var width = c.getOpener().getProperties().getInteger("f.wW"); | var width = c.getOpener().getProperties().getInteger("f.wW"); | ||
| - | var space = width - c.getWidth(); | + | var space = width - getContainerCellCountX(c) * c.getCellWidth(); |
| + | var padding = space - thickness; | ||
| - | alert("found "+space+" space"); | + | alert("found width "+width+"; space "+space+"; will use "+padding+" padding"); |
| sb.setPosition(width - thickness, 0); | sb.setPosition(width - thickness, 0); | ||
| + | |||
| + | c.setPosition(0, 0); | ||
| </code> | </code> | ||