summaryrefslogtreecommitdiffstats
path: root/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java
diff options
context:
space:
mode:
Diffstat (limited to 'examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java')
-rw-r--r--examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java125
1 files changed, 0 insertions, 125 deletions
diff --git a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java b/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java
deleted file mode 100644
index 3f511e425b..0000000000
--- a/examples/org.eclipse.swt.snippets/src/org/eclipse/swt/snippets/Snippet217.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 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:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.swt.snippets;
-
-import org.eclipse.swt.*;
-import org.eclipse.swt.custom.*;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.graphics.*;
-import org.eclipse.swt.layout.*;
-import org.eclipse.swt.widgets.*;
-
-/**
- * StyledText snippet: embed controls
- *
- * For a list of all SWT example snippets see
- * http://www.eclipse.org/swt/snippets/
- *
- * @since 3.2
- */
-public class Snippet217 {
-
- static StyledText styledText;
- static String text =
- "This snippet shows how to embed widgets in a StyledText.\n"+
- "Here is one: \uFFFC, and here is another: \uFFFC.";
- static int[] offsets;
- static Control[] controls;
- static int MARGIN = 5;
-
- static void addControl(Control control, int offset) {
- StyleRange style = new StyleRange ();
- style.start = offset;
- style.length = 1;
- control.pack();
- Rectangle rect = control.getBounds();
- int ascent = 2*rect.height/3;
- int descent = rect.height - ascent;
- style.metrics = new GlyphMetrics(ascent + MARGIN, descent + MARGIN, rect.width + 2*MARGIN);
- styledText.setStyleRange(style);
- }
-
- public static void main(String [] args) {
- final Display display = new Display();
- Font font = new Font(display, "Tahoma", 32, SWT.NORMAL);
- final Shell shell = new Shell(display);
- shell.setLayout(new GridLayout());
- styledText = new StyledText(shell, SWT.WRAP | SWT.BORDER);
- styledText.setFont(font);
- styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
- styledText.setText(text);
- controls = new Control[2];
- Button button = new Button(styledText, SWT.PUSH);
- button.setText("Button 1");
- controls[0] = button;
- Combo combo = new Combo(styledText, SWT.NONE);
- combo.add("item 1");
- combo.add("another item");
- controls[1] = combo;
- offsets = new int[controls.length];
- int lastOffset = 0;
- for (int i = 0; i < controls.length; i++) {
- int offset = text.indexOf("\uFFFC", lastOffset);
- offsets[i] = offset;
- addControl(controls[i], offsets[i]);
- lastOffset = offset + 1;
- }
-
- // use a verify listener to keep the offsets up to date
- styledText.addVerifyListener(new VerifyListener() {
- public void verifyText(VerifyEvent e) {
- int start = e.start;
- int replaceCharCount = e.end - e.start;
- int newCharCount = e.text.length();
- for (int i = 0; i < offsets.length; i++) {
- int offset = offsets[i];
- if (start <= offset && offset < start + replaceCharCount) {
- // this widget is being deleted from the text
- if (controls[i] != null && !controls[i].isDisposed()) {
- controls[i].dispose();
- controls[i] = null;
- }
- offset = -1;
- }
- if (offset != -1 && offset >= start) offset += newCharCount - replaceCharCount;
- offsets[i] = offset;
- }
- }
- });
-
- // reposition widgets on paint event
- styledText.addPaintObjectListener(new PaintObjectListener() {
- public void paintObject(PaintObjectEvent event) {
- StyleRange style = event.style;
- int start = style.start;
- for (int i = 0; i < offsets.length; i++) {
- int offset = offsets[i];
- if (start == offset) {
- Point pt = controls[i].getSize();
- int x = event.x + MARGIN;
- int y = event.y + event.ascent - 2*pt.y/3;
- controls[i].setLocation(x, y);
- break;
- }
- }
- }
- });
-
- shell.setSize(400, 400);
- shell.open();
- while (!shell.isDisposed()) {
- if (!display.readAndDispatch())
- display.sleep();
- }
- font.dispose();
- display.dispose();
- }
-}