org.eclipse.swt.custom.BidiSegmentEvent Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.eclipse.swt.gtk.linux.ppc64le Show documentation
Show all versions of org.eclipse.swt.gtk.linux.ppc64le Show documentation
Standard Widget Toolkit for GTK on ppc64le
The newest version!
/*******************************************************************************
* Copyright (c) 2000, 2012 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.swt.custom;
import org.eclipse.swt.events.*;
/**
* This event is sent to BidiSegmentListeners when a line is to
* be measured or rendered in a bidi locale.
* The segments field can be used in conjunction with the segmentsChars
* field or by itself. Setting only the segmentsChars field has no effect.
* When used by itself, the segments field specify text ranges in the line
* that should be treated as separate segments for bidi reordering. Each
* segment will be reordered and rendered separately.
*
* The elements in the segments field specify the start offset of
* a segment relative to the start of the line. They must follow
* the following rules:
*
* - elements must be in ascending order and must not have duplicates
*
- elements must not exceed the line length
*
* In addition, the first element may be set to zero and the last element may
* be set to the end of the line but this is not required.
*
* The segments field may be left null if the entire line should
* be reordered as is.
*
* A BidiSegmentListener may be used when adjacent segments of
* right-to-left text should not be reordered relative to each other.
* For example, within a Java editor, you may wish multiple
* right-to-left string literals to be reordered differently than the
* bidi algorithm specifies.
*
* Example:
*
* stored line = "R1R2R3" + "R4R5R6"
* R1 to R6 are right-to-left characters. The quotation marks
* are part of the line text. The line is 13 characters long.
*
* segments = null:
* entire line will be reordered and thus the two R2L segments
* swapped (as per the bidi algorithm).
* visual line (rendered on screen) = "R6R5R4" + "R3R2R1"
*
* segments = [0, 5, 8]
* "R1R2R3" will be reordered, followed by [blank]+[blank] and
* "R4R5R6".
* visual line = "R3R2R1" + "R6R5R4"
*
*
*
* The segments and segmentsChars fields can be used together to obtain different
* types of bidi reordering and text display. The application can use these two fields
* to insert Unicode Control Characters in specific offsets in the line, the character
* at segmentsChars[i] is inserted at the offset specified by segments[i]. When both fields
* are set, the rules for the segments field are less restrictive:
*
*
* - elements must be in ascending order, duplicates are allowed
*
- elements must not exceed the line length
*
*
* @see Sample code and further information
*/
public class BidiSegmentEvent extends SegmentEvent {
static final long serialVersionUID = -3712986188155944253L;
BidiSegmentEvent(StyledTextEvent e) {
super(e);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy