diff options
author | Silenio Quarti <silenio> | 2004-08-17 15:28:45 +0000 |
---|---|---|
committer | Silenio Quarti <silenio> | 2004-08-17 15:28:45 +0000 |
commit | f131078b265d59ff026a88fc18755e5cfff9696f (patch) | |
tree | ce5d4b71ccf4be6da465eddd8b32a8228ca3a4a0 /examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java | |
parent | c119dc519b42fe7320eceecb25f228ec605a17ce (diff) | |
download | eclipse.platform.swt-f131078b265d59ff026a88fc18755e5cfff9696f.tar.gz eclipse.platform.swt-f131078b265d59ff026a88fc18755e5cfff9696f.tar.xz eclipse.platform.swt-f131078b265d59ff026a88fc18755e5cfff9696f.zip |
swt snippets
Diffstat (limited to 'examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java')
-rw-r--r-- | examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java new file mode 100644 index 0000000000..4dae67c730 --- /dev/null +++ b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * 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; + +/* + * Composite example snippet: scroll a child control automatically + * + * 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.*; + +public class Snippet9 { + +public static void main (String [] args) { + Display display = new Display (); + final Shell shell = new Shell (display, SWT.SHELL_TRIM | SWT.H_SCROLL | SWT.V_SCROLL); + final Composite composite = new Composite (shell, SWT.BORDER); + composite.setSize (200, 400); + final ScrollBar hBar = shell.getHorizontalBar (); + hBar.addListener (SWT.Selection, new Listener () { + public void handleEvent (Event e) { + Point location = composite.getLocation (); + location.x = -hBar.getSelection (); + composite.setLocation (location); + } + }); + final ScrollBar vBar = shell.getVerticalBar (); + vBar.addListener (SWT.Selection, new Listener () { + public void handleEvent (Event e) { + Point location = composite.getLocation (); + location.y = -vBar.getSelection (); + composite.setLocation (location); + } + }); + shell.addListener (SWT.Resize, new Listener () { + public void handleEvent (Event e) { + Point size = composite.getSize (); + Rectangle rect = shell.getClientArea (); + hBar.setMaximum (size.x); + vBar.setMaximum (size.y); + hBar.setThumb (Math.min (size.x, rect.width)); + vBar.setThumb (Math.min (size.y, rect.height)); + int hPage = size.x - rect.width; + int vPage = size.y - rect.height; + int hSelection = hBar.getSelection (); + int vSelection = vBar.getSelection (); + Point location = composite.getLocation (); + if (hSelection >= hPage) { + if (hPage <= 0) hSelection = 0; + location.x = -hSelection; + } + if (vSelection >= vPage) { + if (vPage <= 0) vSelection = 0; + location.y = -vSelection; + } + composite.setLocation (location); + } + }); + shell.open (); + while (!shell.isDisposed()) { + if (!display.readAndDispatch ()) display.sleep (); + } + display.dispose (); +} + +} |