diff options
Diffstat (limited to 'examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java')
-rw-r--r-- | examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java | 251 |
1 files changed, 0 insertions, 251 deletions
diff --git a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java b/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java deleted file mode 100644 index 0742f0056d..0000000000 --- a/examples/org.eclipse.swt.opengl.examples/src/org/eclipse/swt/opengl/examples/OutlineTextTab.java +++ /dev/null @@ -1,251 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2000, 2003 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.opengl.examples; - - -import org.eclipse.swt.*; -import org.eclipse.swt.graphics.*; -import org.eclipse.swt.layout.*; -import org.eclipse.swt.opengl.*; -import org.eclipse.swt.widgets.*; - -class OutlineTextTab extends OpenGLTab { - private Text messageText; - private FontData fontData; - private float[] textColor = { 1.0f, 0.0f, 0.0f }; - private boolean fill = true; - private float extrude = 0.0f; - private float xPos = 0.0f, yPos = 0.0f, zPos = -10.0f; - private float xRot = 0.0f; - private int listIndexBase; - private final static int LIST_INDEX_SIZE = 256; - private final static int DEFAULT_FONT_SIZE = 24; - private final static String DEFAULT_FONT_NAME = "Arial"; - private final static int SLEEP_LENGTH = 50; - - /** - * @see OpenGLTab#createControls(Composite) - */ - void createControls(final Composite composite) { - if (!SWT.getPlatform().startsWith("win32")) { - new Label(composite, SWT.NONE).setText("This tab requires win32."); - return; - } - - Group movementGroup = new Group(composite, SWT.NONE); - movementGroup.setText("Translation"); - movementGroup.setLayout(new GridLayout(2, false)); - - new Label(movementGroup, SWT.NONE).setText("X:"); - final Slider xMove = new Slider(movementGroup, SWT.NONE); - xMove.setIncrement(1); - xMove.setMaximum(22); - xMove.setMinimum(0); - xMove.setThumb(2); - xMove.setPageIncrement(2); - xMove.setSelection(10); - xMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - xPos = xMove.getSelection() - 10; - } - }); - - new Label(movementGroup, SWT.NONE).setText("Y:"); - final Slider yMove = new Slider(movementGroup, SWT.NONE); - yMove.setIncrement(1); - yMove.setMaximum(22); - yMove.setMinimum(0); - yMove.setThumb(2); - yMove.setPageIncrement(2); - yMove.setSelection(10); - yMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - yPos = yMove.getSelection() - 10; - } - }); - - new Label(movementGroup, SWT.NONE).setText("Z:"); - final Slider zMove = new Slider(movementGroup, SWT.NONE); - zMove.setIncrement(1); - zMove.setMaximum(22); - zMove.setMinimum(0); - zMove.setThumb(2); - zMove.setPageIncrement(2); - zMove.setSelection(10); - zMove.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - zPos = zMove.getSelection() - 20; - } - }); - - Composite textGroup = new Composite(composite,SWT.NONE); - GridLayout layout = new GridLayout(2,false); - layout.marginHeight = 0; - layout.marginWidth = 0; - textGroup.setLayout(layout); - textGroup.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); - - new Label(textGroup, SWT.NONE).setText("Text:"); - messageText = new Text(textGroup, SWT.BORDER); - GridData data = new GridData(GridData.HORIZONTAL_ALIGN_FILL); - data.grabExcessHorizontalSpace = true; - messageText.setLayoutData(data); - messageText.setText("OpenGL - SWT"); - - new Label(composite, SWT.NONE).setText("Extrude:"); - final Slider extrudeSlider = new Slider(composite, SWT.NONE); - extrudeSlider.setIncrement(1); - extrudeSlider.setMaximum(22); - extrudeSlider.setMinimum(0); - extrudeSlider.setThumb(2); - extrudeSlider.setPageIncrement(2); - extrudeSlider.setSelection(0); - extrudeSlider.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - extrude = (float) extrudeSlider.getSelection() / 10; - getContext().loadOutlineFont( - fontData, extrudeSlider.getDisplay(), - listIndexBase, 0, 255, 0.0f, extrude, - fill ? GL.GL_POLYGON : GL.GL_LINE, - null); - } - }); - - final Button fontSelectButton = new Button(composite, SWT.NONE); - fontSelectButton.setText("Set Font"); - final ColorSelectionGroup colorGroup = - new ColorSelectionGroup(composite, SWT.NONE); - colorGroup.setText("Text color"); - colorGroup.addColorSelectionListener(new IColorSelectionListener() { - public void handleColorSelection(RGB rgb) { - GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue); - } - }); - - fontSelectButton.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - FontDialog fontDialog = new FontDialog(fontSelectButton.getShell()); - fontDialog.setText("Choose Font Options"); - double[] currentColor = new double[4]; - GL.glGetDoublev(GL.GL_CURRENT_COLOR, currentColor); - fontDialog.setRGB( - new RGB( - (int) currentColor[0] * 255, - (int) currentColor[1] * 255, - (int) currentColor[2] * 255)); - fontDialog.setFontData(fontData); - FontData result = fontDialog.open(); - if (result != null) { - fontData = result; - RGB rgb = fontDialog.getRGB(); - GL.glColor3ub((byte) rgb.red, (byte) rgb.green, (byte) rgb.blue); - colorGroup.setRGB(rgb); - getContext().loadOutlineFont( - fontData, fontSelectButton.getDisplay(), - listIndexBase, 0, 255, 0.0f, extrude, - fill ? GL.GL_POLYGON : GL.GL_LINE, - null); - } - } - }); - - final Button fillButton = new Button(composite, SWT.CHECK); - fillButton.setText("Fill"); - fillButton.setSelection(true); - fillButton.addListener(SWT.Selection, new Listener() { - public void handleEvent(Event e) { - fill = fillButton.getSelection(); - getContext().loadOutlineFont( - fontData, fillButton.getDisplay(), - listIndexBase, 0, 255, 0.0f, extrude, - fill ? GL.GL_POLYGON : GL.GL_LINE, - null); - } - }); - } - - /** - * @see OpenGLTab#dispose() - */ - void dispose() { - super.dispose(); - GL.glDeleteLists(listIndexBase, LIST_INDEX_SIZE); - } - - /** - * Draws the text to the screen - * - * @param string the text to draw - */ - void drawText(String string) { - char[] stringChars = string.toCharArray(); - int[] text = new int[stringChars.length]; - for (int i = 0; i < text.length; i++) { - text[i] = (int) stringChars[i]; - } - GL.glPushAttrib(GL.GL_LIST_BIT); - GL.glListBase(listIndexBase); - GL.glCallLists(text.length, GL.GL_UNSIGNED_INT, text); - GL.glPopAttrib(); - } - - /** - * @see OpenGLTab#getSleepLength() - */ - int getSleepLength() { - return SLEEP_LENGTH; - } - - /** - * @see OpenGLTab#getTabText() - */ - String getTabText() { - return "Outline Text"; - } - - /** - * @see OpenGLTab#init() - */ - void init() { - GL.glClearColor(1.0f, 1.0f, 1.0f, 1.0f); - GL.glColor3fv(textColor); - GL.glBlendFunc(GL.GL_SRC_ALPHA, GL.GL_ONE_MINUS_SRC_ALPHA); - GL.glEnable(GL.GL_DEPTH_TEST); - GL.glEnable(GL.GL_BLEND); - // build the initial font - listIndexBase = GL.glGenLists(LIST_INDEX_SIZE); - fontData = new FontData(); - fontData.setHeight(DEFAULT_FONT_SIZE); - fontData.setName(DEFAULT_FONT_NAME); - getContext().loadOutlineFont( - fontData, getGlCanvas().getDisplay(), - listIndexBase, 0, 255, 0f, extrude, - fill ? GL.GL_POLYGON : GL.GL_LINE, - null); - } - - /** - * @see OpenGLTab#renderScene() - */ - void renderScene() { - GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); - GL.glLoadIdentity(); - GL.glTranslatef(xPos, yPos, zPos); - GL.glRotatef(xRot, 1.0f, 0.0f, 0.0f); // rotate on X axis - // use GL.glScalef to change size since outline fonts - // don't support size - float size = (float) fontData.getHeight() / 24; - GL.glScalef(size, size, 1.0f); - // draw the text, assuming that we're running on win32 - if (messageText != null) drawText(messageText.getText()); - xRot += 1.2f; - } -} |