我正在开发用于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几个小时,但找不到它。谢谢。
答案 0 :(得分:1)
使用StyledText.getLocationAtOffset
返回角色左上角的x,y位置 文本中指定偏移量处的边界框。重点是 相对于小部件客户区的左上角。
Point loc = styledText.getLocationAtOffset(character offset);