OSDN Git Service

Add color support to Windows richEdit.
authorMichael Curran <mick@kulgan.net>
Thu, 16 Sep 2010 05:58:40 +0000 (15:58 +1000)
committerMichael Curran <mick@kulgan.net>
Thu, 16 Sep 2010 05:58:40 +0000 (15:58 +1000)
source/NVDAObjects/window/edit.py

index 3b1300d..ca42ca2 100644 (file)
@@ -10,6 +10,7 @@ import ctypes
 import pythoncom\r
 import win32clipboard\r
 import oleTypes\r
+import colors\r
 import globalVars\r
 import eventHandler\r
 import comInterfaces.tom\r
@@ -86,6 +87,8 @@ class TextRangeAStruct(ctypes.Structure):
        ]\r
 \r
 CFM_LINK=0x20\r
+CFE_AUTOBACKCOLOR=0x4000000\r
+CFE_AUTOCOLOR=0x40000000\r
 CFE_BOLD=1\r
 CFE_ITALIC=2\r
 CFE_UNDERLINE=4\r
@@ -244,6 +247,10 @@ class EditTextInfo(textInfos.offsets.OffsetsTextInfo):
                                formatField["text-position"]="sub"\r
                        elif charFormat.dwEffects&CFE_SUPERSCRIPT:\r
                                formatField["text-position"]="super"\r
+               if formatConfig["reportColor"]:\r
+                       if charFormat is None: charFormat=self._getCharFormat(offset)\r
+                       formatField["color"]=colors.RGB.fromCOLORREF(charFormat.crTextColor) if not charFormat.dwEffects&CFE_AUTOCOLOR else _("default color")\r
+                       formatField["background-color"]=colors.RGB.fromCOLORREF(charFormat.crBackColor) if not charFormat.dwEffects&CFE_AUTOBACKCOLOR else _("default color")\r
                if formatConfig["reportLineNumber"]:\r
                        formatField["line-number"]=self._getLineNumFromOffset(offset)+1\r
                if formatConfig["reportLinks"]:\r