本文整理汇总了Python中IAccessibleHandler.splitIA2Attribs方法的典型用法代码示例。如果您正苦于以下问题:Python IAccessibleHandler.splitIA2Attribs方法的具体用法?Python IAccessibleHandler.splitIA2Attribs怎么用?Python IAccessibleHandler.splitIA2Attribs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IAccessibleHandler
的用法示例。
在下文中一共展示了IAccessibleHandler.splitIA2Attribs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _getFormatFieldAndOffsets
# 需要导入模块: import IAccessibleHandler [as 别名]
# 或者: from IAccessibleHandler import splitIA2Attribs [as 别名]
def _getFormatFieldAndOffsets(self,offset,formatConfig,calculateOffsets=True):
obj = self.obj
try:
startOffset,endOffset,attribsString=obj.IAccessibleTextObject.attributes(offset)
except COMError:
log.debugWarning("could not get attributes",exc_info=True)
return textInfos.FormatField(),(self._startOffset,self._endOffset)
formatField=textInfos.FormatField()
if not attribsString and offset>0:
try:
attribsString=obj.IAccessibleTextObject.attributes(offset-1)[2]
except COMError:
pass
if attribsString:
formatField.update(IAccessibleHandler.splitIA2Attribs(attribsString))
try:
escapement = int(formatField["CharEscapement"])
if escapement < 0:
textPos = "sub"
elif escapement > 0:
textPos = "super"
else:
textPos = "baseline"
formatField["text-position"] = textPos
except KeyError:
pass
try:
formatField["font-name"] = formatField["CharFontName"]
except KeyError:
pass
try:
formatField["font-size"] = "%spt" % formatField["CharHeight"]
except KeyError:
pass
try:
formatField["italic"] = formatField["CharPosture"] == "2"
except KeyError:
pass
try:
formatField["strikethrough"] = formatField["CharStrikeout"] == "1"
except KeyError:
pass
try:
underline = formatField["CharUnderline"]
if underline == "10":
# Symphony doesn't provide for semantic communication of spelling errors, so we have to rely on the WAVE underline type.
formatField["invalid-spelling"] = True
else:
formatField["underline"] = underline != "0"
except KeyError:
pass
try:
formatField["bold"] = float(formatField["CharWeight"]) > 100
except KeyError:
pass
try:
color=formatField.pop('CharColor')
except KeyError:
color=None
if color:
formatField['color']=colors.RGB.fromString(color)
try:
backgroundColor=formatField.pop('CharBackColor')
except KeyError:
backgroundColor=None
if backgroundColor:
formatField['background-color']=colors.RGB.fromString(backgroundColor)
# optimisation: Assume a hyperlink occupies a full attribute run.
try:
if obj.IAccessibleTextObject.QueryInterface(IAccessibleHandler.IAccessibleHypertext).hyperlinkIndex(offset) != -1:
formatField["link"] = True
except COMError:
pass
if offset == 0:
# Only include the list item prefix on the first line of the paragraph.
numbering = formatField.get("Numbering")
if numbering:
formatField["line-prefix"] = numbering.get("NumberingPrefix") or numbering.get("BulletChar")
if obj.hasFocus:
# Symphony exposes some information for the caret position as attributes on the document object.
# optimisation: Use the tree interceptor to get the document.
try:
docAttribs = obj.treeInterceptor.rootNVDAObject.IA2Attributes
except AttributeError:
# No tree interceptor, so we can't efficiently fetch this info.
pass
else:
try:
formatField["page-number"] = docAttribs["page-number"]
except KeyError:
pass
try:
formatField["line-number"] = docAttribs["line-number"]
except KeyError:
pass
#.........这里部分代码省略.........