SWT: позиционировать диалог в зависимости от положения каретки в элементе управления StyledText - PullRequest
1 голос
/ 13 октября 2010

У меня есть приложение SWT, которое представляет собой набор групп, которые содержат различные элементы управления, включая виджет StlyedText.Все они размещены с использованием макета формы.

Я хочу показать диалоговое окно непосредственно под кареткой внутри StyledText.Однако я должен расположить диалог относительно родительской оболочки.

Моя первая идея - получить положение оболочки плюс позицию StyledText плюс смещение каретки.Когда я пытаюсь получить позицию StyledText, он говорит 0,0 (я полагаю, из-за моего выбора макета, макет формы).Я не вижу хорошего способа получить позицию из FormData (кажется, что она вычисляется).

Я могу получить позицию курсора мыши, но мне бы хотелось, чтобы онапрямо под тем, что печатает пользователь.

У кого-нибудь есть идеи?

1 Ответ

2 голосов
/ 14 октября 2010

Чтобы получить фактическое положение, следует использовать функцию toDisplay().Например:

Point displayPoint = myText.toDisplay(sqlText.getLocation());

Это возвращает меня к позиции текста.Затем я добавил позицию каретки, чтобы переместить мое диалоговое окно к строке текста, который пишется:

Point caretLocation = myText.getCaret().getLocation();
Point calcPoint = new Point(displayPoint.x+caretLocation.x, displayPoint.y+caretLocation.y);

Затем я использовал это место для позиционирования моего диалогового окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...