boolean isBidiCaret() { return BidiUtil.isBidiPlatform(); } boolean isFixedLineHeight() {
public static void addLanguageListener (Control control, Runnable runnable) { addLanguageListener(control.handle, runnable); } /**
/** * Switch the keyboard language to the specified language type. We do * not distinguish between multiple bidi or multiple non-bidi languages, so * set the keyboard to the first language of the given type. * <p> * * @param language integer representing language. One of * KEYBOARD_BIDI, KEYBOARD_NON_BIDI. */ public static void setKeyboardLanguage(int language) { if (language == getKeyboardLanguage()) return; boolean bidi = language == KEYBOARD_BIDI; int /*long*/[] list = getKeyboardLanguageList(); for (int i=0; i<list.length; i++) { if (bidi == isBidiLang(list[i])) { OS.ActivateKeyboardLayout(list[i], 0); return; } } } /**
public static void removeLanguageListener (Control control) { removeLanguageListener(control.handle); } /**
BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_NON_BIDI); } else if (caretDirection == SWT.RIGHT) { BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_BIDI);
@Override public void run() { int direction = BidiUtil.getKeyboardLanguage() == BidiUtil.KEYBOARD_BIDI ? SWT.RIGHT : SWT.LEFT; if (direction == caretDirection) return; if (getCaret() != defaultCaret) return; Point newCaretPos = getPointAtOffset(caretOffset); setCaretLocation(newCaretPos, direction); } };
@Override int resolveTextDirection() { return (style & SWT.SEPARATOR) != 0 ? SWT.NONE : BidiUtil.resolveTextDirection (text); }
BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_NON_BIDI); } else if (caretDirection == SWT.RIGHT) { BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_BIDI);
@Override public void run() { int direction = BidiUtil.getKeyboardLanguage() == BidiUtil.KEYBOARD_BIDI ? SWT.RIGHT : SWT.LEFT; if (direction == caretDirection) return; if (getCaret() != defaultCaret) return; Point newCaretPos = getPointAtOffset(caretOffset); setCaretLocation(newCaretPos, direction); } };
@Override int resolveTextDirection() { return BidiUtil.resolveTextDirection(text); }
boolean isBidiCaret() { return BidiUtil.isBidiPlatform(); } boolean isFixedLineHeight() {
BidiUtil.addLanguageListener(this, runnable);
BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_NON_BIDI); } else if (caretDirection == SWT.RIGHT) { BidiUtil.setKeyboardLanguage(BidiUtil.KEYBOARD_BIDI);
@Override public void run() { int direction = BidiUtil.getKeyboardLanguage() == BidiUtil.KEYBOARD_BIDI ? SWT.RIGHT : SWT.LEFT; if (direction == caretDirection) return; if (getCaret() != defaultCaret) return; Point newCaretPos = getPointAtOffset(caretOffset); setCaretLocation(newCaretPos, direction); } };
@Override int resolveTextDirection() { return (style & SWT.ARROW) != 0 ? SWT.NONE : BidiUtil.resolveTextDirection(text); }
boolean isBidiCaret() { return BidiUtil.isBidiPlatform(); } boolean isFixedLineHeight() {
BidiUtil.addLanguageListener(this, runnable);