Example usage for org.eclipse.swt.custom StyledText getLocationAtOffset

List of usage examples for org.eclipse.swt.custom StyledText getLocationAtOffset

Introduction

In this page you can find the example usage for org.eclipse.swt.custom StyledText getLocationAtOffset.

Prototype

public Point getLocationAtOffset(int offset) 

Source Link

Document

Returns the x, y location of the upper left corner of the character bounding box at the specified offset in the text.

Usage

From source file:TextAroundBox.java

public static void main(String[] args) {
    final Display display = new Display();
    final Color RED = display.getSystemColor(SWT.COLOR_RED);
    Shell shell = new Shell(display);
    shell.setBounds(10, 10, 250, 250);// w  w w.  j  a v a 2 s  .  c  o  m
    final StyledText text = new StyledText(shell, SWT.NONE);
    text.setBounds(10, 10, 200, 200);
    text.addListener(SWT.Paint, new Listener() {
        public void handleEvent(Event event) {
            String contents = text.getText();
            int stringWidth = event.gc.stringExtent(SEARCH_STRING).x;
            int lineHeight = text.getLineHeight();
            event.gc.setForeground(RED);
            int index = contents.indexOf(SEARCH_STRING);
            while (index != -1) {
                Point topLeft = text.getLocationAtOffset(index);
                event.gc.drawRectangle(topLeft.x - 1, topLeft.y, stringWidth + 1, lineHeight - 1);
                index = contents.indexOf(SEARCH_STRING, index + 1);
            }
        }
    });
    text.setText("This demonstrates drawing a box\naround every occurrence of the word\nbox in the StyledText");
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}