blob: 09e05198cbcda7391ae52b1726b9804631b89bf0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and Others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Kentarou FUKUDA - initial API and implementation
*******************************************************************************/
package org.eclipse.actf.model.ui.util;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class ScrollBarSizeUtil {
private static int HORIZONTALBAR_HEIGHT = 15;
private static int VERTICALBAR_WIDTH = 15;
private static boolean isInit = false;
private static void init() {
//to avoid to use swt.internal
if (!isInit) {
try {
Display display = Display.getCurrent();
if (null != display) {
Shell shell = new Shell(display);
shell.setBounds(0,0,1,1);
Composite composite = new Composite(shell, SWT.V_SCROLL
| SWT.H_SCROLL);
// shell.open();
HORIZONTALBAR_HEIGHT = composite.getHorizontalBar()
.getSize().y;
VERTICALBAR_WIDTH = composite.getVerticalBar().getSize().x;
composite.dispose();
shell.dispose();
if(HORIZONTALBAR_HEIGHT < 0){
HORIZONTALBAR_HEIGHT =15;
}
if(VERTICALBAR_WIDTH < 0){
VERTICALBAR_WIDTH = 15;
}
isInit = true;
}
} catch (Exception e) {
}
}
}
public static int getHorizontalBarHeight() {
init();
return HORIZONTALBAR_HEIGHT;
}
public static int getVerticalBarWidth() {
init();
return VERTICALBAR_WIDTH;
}
}