diff options
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.java | 125 |
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(); - } -} |