| ///******************************************************************************* |
| // * Copyright (c) 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.draw2d.examples.text; |
| // |
| //import org.eclipse.swt.SWT; |
| //import org.eclipse.swt.events.KeyAdapter; |
| //import org.eclipse.swt.graphics.Color; |
| //import org.eclipse.swt.graphics.Font; |
| //import org.eclipse.swt.layout.GridData; |
| //import org.eclipse.swt.layout.GridLayout; |
| //import org.eclipse.swt.widgets.Caret; |
| //import org.eclipse.swt.widgets.Group; |
| //import org.eclipse.swt.widgets.Label; |
| // |
| //import org.eclipse.draw2d.ColorConstants; |
| //import org.eclipse.draw2d.IFigure; |
| //import org.eclipse.draw2d.LineBorder; |
| //import org.eclipse.draw2d.MouseEvent; |
| //import org.eclipse.draw2d.MouseMotionListener; |
| //import org.eclipse.draw2d.PositionConstants; |
| //import org.eclipse.draw2d.examples.AbstractExample; |
| //import org.eclipse.draw2d.geometry.Point; |
| //import org.eclipse.draw2d.text.CaretInfo; |
| //import org.eclipse.draw2d.text.FlowPage; |
| //import org.eclipse.draw2d.text.TextFlow; |
| // |
| //public class CaretExample extends AbstractExample { |
| // |
| //TextFlow caretOwner; |
| //TextFlow content[]; |
| //Caret caret; |
| //private Label offsetLabel; |
| //private Label trailLabel; |
| //private Label charLabel; |
| // |
| //protected IFigure getContents() { |
| // caret = new Caret(getFigureCanvas(), 0); |
| // final FlowPage page = new FlowPage() { |
| // protected void paintFigure(org.eclipse.draw2d.Graphics graphics) { |
| // graphics.setBackgroundColor(new Color(null, 190, 220, 250)); |
| // graphics.fillRectangle(getBounds()); |
| // }; |
| // }; |
| // |
| // page.setBorder(new LineBorder(ColorConstants.darkGray, 10)); |
| // page.setHorizontalAligment(PositionConstants.CENTER); |
| // |
| // final TextFlow text = new TextFlow(); |
| // text.setText("A TextFlow can be queried for an offset for a given Point relative " + |
| // "to it. The returned offset will be between 0 and N, where N is the length " + |
| // "of the figure's text.\n" + |
| // "<Chinese>\u6700\u65B0\u6D88\u606F</Chinese>.\n" + |
| // "<Japanese>\u65e5\u672c\u8a9e\u306e\u30da\u30fc\u30b8\u3092\u691c\u7d22" + |
| // "</Japanese>.\n" + |
| // "<Hebrew>דפיםֱ מֱ- ישרֱֹאןץֱֹ" + |
| // "</Hebrew>\n" + |
| // "<Arabic>نصً ثُ سٍَبُس</Arabic>"); |
| // |
| // text.setBorder(new TestBorder()); |
| // text.setFont(new Font(null, "Tahoma", 20, 0)); |
| // page.add(text); |
| // |
| // page.addMouseMotionListener(new MouseMotionListener.Stub() { |
| // public void mouseMoved(MouseEvent me) { |
| // int trail[] = new int[1]; |
| // Point where = me.getLocation(); |
| // page.translateFromParent(where); |
| // int offset = text.getOffset(where, trail, null); |
| // showCaret(text, offset, trail); |
| // } |
| // public void mouseExited(MouseEvent me) { |
| // |
| // }; |
| // }); |
| // return page; |
| //} |
| // |
| ////protected int getShellStyle() { |
| //// return super.getShellStyle() | SWT.RIGHT_TO_LEFT; |
| ////} |
| // |
| //protected void hookShell() { |
| // getFigureCanvas().addKeyListener(new KeyAdapter() {}); |
| // Group panel = new Group(shell, 0); |
| // panel.setLayout(new GridLayout()); |
| // panel.setText("Hit info"); |
| // panel.setLayoutData(new GridData(GridData.FILL_VERTICAL)); |
| // offsetLabel = new Label(panel, 0); |
| // offsetLabel.setText("Offset: 999"); |
| // trailLabel = new Label(panel, 0); |
| // trailLabel.setText("Trail: 0"); |
| // charLabel = new Label(panel, 0); |
| // charLabel.setText("Char: WW"); |
| //} |
| // |
| //void showCaret(TextFlow text, int offset, int[] trailing) { |
| // if (caretOwner != null) |
| // caretOwner.setSelection(-1, -1); |
| // |
| // offsetLabel.setText("Offset: " + offset); |
| // trailLabel.setText("Trail: " + trailing[0]); |
| // |
| // caretOwner = text; |
| // caret.setVisible(text != null); |
| // CaretInfo info = text.getCaretPlacement(offset, trailing[0] != 0); |
| // caret.setSize(1, info.getHeight()); |
| // caret.setLocation(info.getX(), info.getY()); |
| // text.setSelection(offset, offset + 1); |
| // if (text.getText().length() == offset) |
| // charLabel.setText("Char: ?"); |
| // else |
| // charLabel.setText("Char: " + text.getText().charAt(offset)); |
| //} |
| // |
| //public static void main(String[] args) { |
| // new CaretExample().run(); |
| //} |
| // |
| //protected void sizeShell() { |
| // shell.setSize(shell.computeSize(400, -1)); |
| //} |
| // |
| // } |