summaryrefslogtreecommitdiffstats
path: root/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java
diff options
context:
space:
mode:
authorSilenio Quarti <silenio>2004-08-17 15:28:45 +0000
committerSilenio Quarti <silenio>2004-08-17 15:28:45 +0000
commitf131078b265d59ff026a88fc18755e5cfff9696f (patch)
treece5d4b71ccf4be6da465eddd8b32a8228ca3a4a0 /examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet9.java
parentc119dc519b42fe7320eceecb25f228ec605a17ce (diff)
downloadeclipse.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.java77
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 ();
+}
+
+}