1 package org.simantics.document.swt.core.base;
\r
3 import org.eclipse.swt.SWT;
\r
4 import org.eclipse.swt.custom.ScrolledComposite;
\r
5 import org.eclipse.swt.graphics.Point;
\r
6 import org.eclipse.swt.widgets.Composite;
\r
7 import org.eclipse.swt.widgets.ScrollBar;
\r
8 import org.simantics.utils.ui.SWTUtils;
\r
10 public class ScrolledCompositeContent extends Composite implements Runnable {
\r
12 public ScrolledCompositeContent(Composite parent, int style) {
\r
13 super(parent, style);
\r
16 public void refreshSize() {
\r
17 SWTUtils.asyncExec(this, this);
\r
22 if(isDisposed()) return;
\r
24 ScrolledComposite sc = (ScrolledComposite)getParent();
\r
25 int scWidth = sc.getSize().x;
\r
27 ScrollBar bar = sc.getVerticalBar();
\r
28 if(bar != null && bar.isVisible())
\r
29 scWidth -= bar.getSize().x;
\r
31 Point current = getSize();
\r
32 Point target = computeSize(scWidth, SWT.DEFAULT, true);
\r
34 if(!current.equals(target)) {
\r
36 sc.getParent().layout(true, true);
\r