SWT,styledText,获取某一行的x坐标

时间:2015-08-06 07:26:01

标签: eclipse swt eclipse-cdt styledtext

我正在开发用于eclipse CDT编辑器的插件,这是一个可以突出显示代码某些部分的叠加层。我可以访问已打开的 CEditor (及其IDocument),也可以访问 StyledText 。我还想要突出显示部件的字符偏移。  目前我有PaintListener over编辑器,我可以绘制(我制作透明图像,我绘制突出显示,然后将其设置为文本背景,即styledText.setBackgroundImage(newImage);)。从styledText我也能够获得有关文本高度和文本垂直位置(包括滚动)的信息,即我能够突出显示代码行,但我想只突出显示该行的一部分。

gc.fillRectangle(OFFSETX1, styledText.getLinePixel(LINE), OFFSETX2, tyledText.getLineHeight());

如何从字符偏移中获得X像素(OFFSETX1,OFFSETX2)?(是否可以从StyledText获取它?)。我一直在搜索StyledText API几个小时,但找不到它。谢谢。

1 个答案:

答案 0 :(得分:1)

使用StyledText.getLocationAtOffset

  

返回角色左上角的x,y位置   文本中指定偏移量处的边界框。重点是   相对于小部件客户区的左上角。

Point loc = styledText.getLocationAtOffset(character offset);