Ok, I started removing the global HC setting and then cleaning up the fall out; however, I was getting a little too much fall out to do a single patch. The good news is that I can break it down into smaller patches safely and send the global fix later. The 1st patch was to 5 files in binfilter; the patch is minimal and not very exciting so I already pushed it. I've already removed all references to the global flag from Impress. For the most part I just stripped out all the references to GetSettings().GetStyleSettings().GetHighContrastMode(). However, in come cases it was using the setting to determine the color of lines/borders/text... In these cases, I changed the flag to GetSettings().GetStyleSettings().GetFaceColor().IsDark(). As a side note, why is the background color called "Face" (I'm thinking it's a German thing). In some cases I couldn't determine what they where trying to do, so I just killed them. Impress also has a funny feature, it defaults to setting the classes to ObeyHighContrast(true), and then when every it created an instance, it passed on Obey(false). Which explains why I couldn't get anything except the icons to change in Impress. I also found a SID_OUTPUT_QUALITY_BLACKWHITE & SID_PREVIEW_QUALITY_CONTRAST which appear to be selectable options for the GUI but on the Mac they don't appear on any of the screens. They also appear to auto-select when the application is placed into HC mode; however, this didn't seem to do anything also. The patch builds and I don't see any change in behavior between pre and post patch. I'd like some other people to test and make sure it's ok before pushing it. Thanks, Joe P.
Attachment:
0001-Removing-GetHighContrast-from-Impress.patch
Description: Binary data