<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Ok, I went ahead and did some high-contrast cleanup work on libs-core. I was able to delete massive amounts of code and configuration items. The main issue I'm having is the masking:<div><br></div><div><div>#define DEFAULT_IDLIST \</div><div>&nbsp;&nbsp; &nbsp;IdList = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;/* Eingabezeile */ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SID_INPUT_FUNCTION; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /* 20047 */ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SID_INPUT_SUM; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 20048 */ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SID_INPUT_EQUAL; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/* 20049 */ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SID_INPUT_CANCEL; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SID_INPUT_OK; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp;}; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div><div>&nbsp;&nbsp; &nbsp;IdCount = { &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;5; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\</div><div>&nbsp;&nbsp; &nbsp;};</div><div><br></div><div>ImageList RID_DEFAULTIMAGELIST_SC</div><div>{</div><div>&nbsp;&nbsp; &nbsp;Prefix = "sc";</div><div>&nbsp;&nbsp; &nbsp;MaskColor = STD_MASKCOLOR ;</div><div>&nbsp;&nbsp; &nbsp;DEFAULT_IDLIST</div><div>};</div></div><div><br></div><div><div>Image RID_IMAGE_STATUSBAR_LOGO</div><div>{</div><div>&nbsp;&nbsp; &nbsp;ImageBitmap = Bitmap { File = "logo.png" ; };</div><div>&nbsp;&nbsp; &nbsp;MaskColor = Color { Red = 0xFFFF; Green = 0x0000; Blue = 0xFFFF; };</div><div>};</div></div><div><br></div><div>Please note that the MaskColor for high-contrast icons can be different then the one for standard icons. These may need adjusting.</div><div><br></div><div>The above gets compiled into a .res file; if anyone knows how &amp; where it gets loaded back at runtime, could you share the secret please. I'd like to modify it in the future to split the Image, ImageList, &amp; Bitmaps into their own files so they can be swapped out with the icon themes.</div><div><br></div><div>My patch currently just rips out some fairly simple code that goes basically like:</div><div><br></div><div>sal_Bool bIsHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();</div><div>m_aImages = ImageList( SvtResId( bIsHighContrast ? RID_FILEPICKER_IMAGES_HC : RID_FILEPICKER_IMAGES ) );</div><div><br></div><div>And some times they get fancy and load/cache both images:</div><div><br></div><div>Image aImage( SfxResId( SFX_IMG_CLOSE_DOC ) );</div><div>Image aImageHC( SfxResId( SFX_IMG_CLOSE_DOC_HC ) );</div><div>m_aToolbox.InsertItem( 1,&nbsp;GetSettings().GetStyleSettings().GetHighContrastMode()&nbsp;? aImageHC : aImage );</div><div><br></div><div>Then to make things more fun, they decided that having a list of images would be nice:</div><div><br></div><div>ImageList&nbsp;maImageList( SVX_RES( CD_IMAPDLG ) );</div><div>ImageList&nbsp;maImageListH( SVX_RES( CDH_IMAPDLG ) );</div><div>bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode();</div><div>ImageList&amp; rImgLst = bHighContrast ? maImageListH : maImageList;</div><div><br></div><div>The above stuff is easy, just kill the HC Id in the .hrc, remove the Image... definitions from the .src, and remove the related code from the program.</div><div><br></div><div>The hard stuff comes later...</div><div><br></div><div>1. We have soft-coded ImageLists</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>a. Need to modify the control classes that house these and make sweeping changes to cleanup the fallout cause by the API changes.</div><div><br></div><div>2. Determine how to handle the odd cases:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>a. We have code that detects changing from HC to Normal and back... Do we need this? Changing icon themes just work and HC is just at theme; thus, I don't see the need for this code.</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>b. We change colors on some controls based on HC mode. Wouldn't it be better to create a 2nd color scheme for HC. (calling all artist... please switch the icons to HC, and then change the colors until it looks good(actually bad-it needs to be HC which isn't pretty). We'll then need to figure out how to package the colors for shipping.</div><div><br></div><div>I haven't played with the icons/images yet. That'll take work trying to figure out the build system (any volunteers?) So far, I've removed references for the following items:</div><div><br></div><div><p style="margin-bottom: 0in">backing_hc.png</p><p style="margin-bottom: 0in">backing_space_hc.png</p><p style="margin-bottom: 0in">backing_right_hc.png</p><p style="margin-bottom: 0in">backing_rtl_left_hc.png</p><p style="margin-bottom: 0in">backing_rtl_right_hc.png</p><p style="margin-bottom: 0in">extension_hc.png</p><p style="margin-bottom: 0in">register_hc.png</p><p style="margin-bottom: 0in">info_hc.png</p><p style="margin-bottom: 0in">template_hc.png</p><p style="margin-bottom: 0in">odt_32_hc.png</p><p style="margin-bottom: 0in">ods_32_hc.png</p><p style="margin-bottom: 0in">odp_32_hc.png</p><p style="margin-bottom: 0in">odg_32_hc.png</p><p style="margin-bottom: 0in">odb_32_hc.png</p><p style="margin-bottom: 0in">odf_32_hc.png</p><p style="margin-bottom: 0in">folder_32_hc.png</p><p style="margin-bottom: 0in">templates_32_hc.png</p><p style="margin-bottom: 0in">sch06300.png</p><p style="margin-bottom: 0in">shared_16_h.png</p><p style="margin-bottom: 0in">lock_16_h.png</p><p style="margin-bottom: 0in">caution_16_h.png</p><p style="margin-bottom: 0in">extension_32_h.png</p><p style="margin-bottom: 0in">sc10350_h.bmp</p><p style="margin-bottom: 0in">hlpbookopen_h.bmp</p><p style="margin-bottom: 0in">hlpbookclosed_h.bmp</p><p style="margin-bottom: 0in">hlpdoc_h.bmp</p><p style="margin-bottom: 0in">indexon_big_h.bmp</p><p style="margin-bottom: 0in">indexon_small_h.bmp</p><p style="margin-bottom: 0in">indexoff_small_h.bmp</p><p style="margin-bottom: 0in">indexoff_big_h.bmp</p><p style="margin-bottom: 0in">lch06301.bmp</p><p style="margin-bottom: 0in">sch06301.bmp</p><p style="margin-bottom: 0in">sch06303.bmp</p><p style="margin-bottom: 0in">sch06300.bmp</p><p style="margin-bottom: 0in">sch05504.bmp</p><p style="margin-bottom: 0in">favourite_h.bmp</p><p style="margin-bottom: 0in">sch05961.bmp</p><p style="margin-bottom: 0in">sch05711.bmp</p><p style="margin-bottom: 0in">lch06303.bmp</p><p style="margin-bottom: 0in">lch06300.bmp</p><p style="margin-bottom: 0in">lch05504.bmp</p><p style="margin-bottom: 0in">favourite_big_h.bmp</p><p style="margin-bottom: 0in">lch05961.bmp</p><p style="margin-bottom: 0in">lch05711.bmp</p><p style="margin-bottom: 0in">closedochc.png</p><p style="margin-bottom: 0in">fwthcirc_h.bmp</p><p style="margin-bottom: 0in">fwtoparc_h.bmp</p><p style="margin-bottom: 0in">fwbotarc_h.bmp</p><p style="margin-bottom: 0in">fwlftarc_h.bmp</p><p style="margin-bottom: 0in">fwrgtarc_h.bmp</p><p style="margin-bottom: 0in">fwbuttn1_h.bmp</p><p style="margin-bottom: 0in">fwbuttn2_h.bmp</p><p style="margin-bottom: 0in">fwbuttn3_h.bmp</p><p style="margin-bottom: 0in">fwbuttn4_h.bmp</p><p style="margin-bottom: 0in">nuh01.png</p><p style="margin-bottom: 0in">nuh04.png</p><p style="margin-bottom: 0in">nuh02.png</p><p style="margin-bottom: 0in">lngcheck_h.bmp</p><p style="margin-bottom: 0in">galicon_h.bmp</p><p style="margin-bottom: 0in">gallist_h.bmp</p><p style="margin-bottom: 0in">signet_11x16_h.png</p><p style="margin-bottom: 0in">caution_11x16_h.png</p><p style="margin-bottom: 0in">notcertificate_16_h.png</p><p style="margin-bottom: 0in">navigationball_10_h.png</p><p style="margin-bottom: 0in">slidezoomin_11_h.png</p><p style="margin-bottom: 0in">slidezoomout_11_h.png</p><p style="margin-bottom: 0in">perspective_16_h.bmp</p><p style="margin-bottom: 0in">parallel_16_h.bmp</p><p style="margin-bottom: 0in">directionnorthwest_22_h.bmp</p><p style="margin-bottom: 0in">directionnorth_22_h.bmp</p><p style="margin-bottom: 0in">directionnortheast_22_h.bmp</p><p style="margin-bottom: 0in">directionwest_22_h.bmp</p><p style="margin-bottom: 0in">directionstraight_22_h.bmp</p><p style="margin-bottom: 0in">directioneast_22_h.bmp</p><p style="margin-bottom: 0in">directionsouthwest_22_h.bmp</p><p style="margin-bottom: 0in">directionsouth_22_h.bmp</p><p style="margin-bottom: 0in">directionsoutheast_22_h.bmp</p><p style="margin-bottom: 0in">extrusion0inch_16_h.bmp</p><p style="margin-bottom: 0in">extrusion05inch_16_h.bmp</p><p style="margin-bottom: 0in">extrusion1inch_16_h.bmp</p><p style="margin-bottom: 0in">extrusion2inch_16_h.bmp</p><p style="margin-bottom: 0in">extrusion4inch_16_h.bmp</p><p style="margin-bottom: 0in">extrusioninfinity_16_h.bmp</p><p style="margin-bottom: 0in">lightofffromtopleft_22_h.bmp</p><p style="margin-bottom: 0in">lightofffromtop_22_h.bmp</p><p style="margin-bottom: 0in">lightofffromtopright_22_h.bmp</p><p style="margin-bottom: 0in">lightofffromleft_22_h.bmp</p><p style="margin-bottom: 0in">lightofffromright_22_h.bmp</p><p style="margin-bottom: 0in">lightofffrombottomleft_22_h.bmp</p><p style="margin-bottom: 0in">lightofffrombottom_22_h.bmp</p><p style="margin-bottom: 0in">lightofffrombottomright_22_h.bmp</p><p style="margin-bottom: 0in">lightonfromtopleft_22_h.bmp</p><p style="margin-bottom: 0in">lightonfromtop_22_h.bmp</p><p style="margin-bottom: 0in">lightonfromtopright_22_h.bmp</p><p style="margin-bottom: 0in">lightonfromleft_22_h.bmp</p><p style="margin-bottom: 0in">lightonfromright_22_h.bmp</p><p style="margin-bottom: 0in">lightonfrombottomright_22_h.bmp</p><p style="margin-bottom: 0in">brightlit_16_h.bmp</p><p style="margin-bottom: 0in">normallit_16_h.bmp</p><p style="margin-bottom: 0in">dimlit_16_h.bmp</p><p style="margin-bottom: 0in">lightfromtopleft_22_h.bmp</p><p style="margin-bottom: 0in">lightfromtop_22_h.bmp</p><p style="margin-bottom: 0in">lightfromtopright_22_h.bmp</p><p style="margin-bottom: 0in">lightfromleft_22_h.bmp</p><p style="margin-bottom: 0in">lightfromright_22_h.bmp</p><p style="margin-bottom: 0in">lightfromfront_22_h.bmp</p><p style="margin-bottom: 0in">lightfrombottomleft_22_h.bmp</p><p style="margin-bottom: 0in">lightfrombottom_22_h.bmp</p><p style="margin-bottom: 0in">lightfrombottomright_22_h.bmp</p><p style="margin-bottom: 0in">wireframe_16_h.bmp</p><p style="margin-bottom: 0in">matte_16_h.bmp</p><p style="margin-bottom: 0in">plastic_16_h.bmp</p><p style="margin-bottom: 0in">metal_16_h.bmp</p><p style="margin-bottom: 0in">fontworkalignleft_16_h.png</p><p style="margin-bottom: 0in">fontworkalignleft_26_h.png</p><p style="margin-bottom: 0in">fontworkaligncentered_16_h.png</p><p style="margin-bottom: 0in">fontworkaligncentered_26_h.png</p><p style="margin-bottom: 0in">fontworkalignright_16_h.png</p><p style="margin-bottom: 0in">fontworkalignright_26_h.png</p><p style="margin-bottom: 0in">fontworkalignjustified_16_h.png</p><p style="margin-bottom: 0in">fontworkalignjustified_26_h.png</p><p style="margin-bottom: 0in">fontworkalignstretch_16_h.png</p><p style="margin-bottom: 0in">fontworkalignstretch_26_h.png</p><div><br></div><div>Plus a few lists:</div><div><p style="margin-bottom: 0in">fph</p><p style="margin-bottom: 0in">sch</p><p style="margin-bottom: 0in">lch</p><p style="margin-bottom: 0in">idh</p><p style="margin-bottom: 0in">fwh</p><p style="margin-bottom: 0in">cdh</p><p style="margin-bottom: 0in">tbh</p><p style="margin-bottom: 0in">dah</p><p style="margin-bottom: 0in">sxh</p><p style="margin-bottom: 0in">frh</p><div><br></div><div>So far I haven't notices any additional break-age from these changes. The HC them has a few icons that disappear under Mac OS and changing the OS to HC just makes things worse; however, these are broken on the default build also... so no damage done.</div><div><br></div><div></div></div></div></body></html>