diff options
Diffstat (limited to 'examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java')
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java new file mode 100644 index 0000000000..e40d1c59e6 --- /dev/null +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet104.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2000, 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ +package org.eclipse.swt.snippets; + +/* + * Shell example snippet: create a splash screen + * + * For a list of all SWT example snippets see + * http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/dev.html#snippets + */ +import org.eclipse.swt.*; +import org.eclipse.swt.graphics.*; +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; + +public class Snippet104 { + +public static void main(String[] args) { + final Display display = new Display(); + final int [] count = new int [] {4}; + final Image image = new Image(display, 300, 300); + final Shell splash = new Shell(SWT.ON_TOP); + final ProgressBar bar = new ProgressBar(splash, SWT.NONE); + bar.setMaximum(count[0]); + Label label = new Label(splash, SWT.NONE); + label.setImage(image); + FormLayout layout = new FormLayout(); + splash.setLayout(layout); + FormData labelData = new FormData (); + labelData.right = new FormAttachment (100, 0); + labelData.bottom = new FormAttachment (100, 0); + label.setLayoutData(labelData); + FormData progressData = new FormData (); + progressData.left = new FormAttachment (0, 5); + progressData.right = new FormAttachment (100, -5); + progressData.bottom = new FormAttachment (100, -5); + bar.setLayoutData(progressData); + splash.pack(); + Rectangle splashRect = splash.getBounds(); + Rectangle displayRect = display.getBounds(); + int x = (displayRect.width - splashRect.width) / 2; + int y = (displayRect.height - splashRect.height) / 2; + splash.setLocation(x, y); + splash.open(); + display.asyncExec(new Runnable() { + public void run() { + Shell [] shells = new Shell[count[0]]; + for (int i=0; i<count[0]; i++) { + shells [i] = new Shell(display); + shells [i].setSize (300, 300); + shells [i].addListener(SWT.Close, new Listener() { + public void handleEvent (Event e) { + --count[0]; + } + }); + bar.setSelection(i+1); + try {Thread.sleep(1000);} catch (Throwable e) {} + } + splash.close(); + image.dispose(); + for (int i=0; i<count[0]; i++) { + shells [i].open(); + } + } + }); + while (count [0] != 0) { + if (!display.readAndDispatch ()) display.sleep (); + } + display.dispose(); +} + +} |