#437, #417: tune up LookAndFeel; some more 10.7+ removals

This commit is contained in:
Cameron Kaiser 2017-09-02 13:44:20 -07:00
parent 94d5cb15d2
commit 981c2e8fef
3 changed files with 211 additions and 175 deletions

View File

@ -62,77 +62,77 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor &aColor)
switch (aID) {
case eColorID_WindowBackground:
aColor = NS_RGB(0xff,0xff,0xff);
break;
return res;
case eColorID_WindowForeground:
aColor = NS_RGB(0x00,0x00,0x00);
break;
return res;
case eColorID_WidgetBackground:
aColor = NS_RGB(0xdd,0xdd,0xdd);
break;
return res;
case eColorID_WidgetForeground:
aColor = NS_RGB(0x00,0x00,0x00);
break;
return res;
case eColorID_WidgetSelectBackground:
aColor = NS_RGB(0x80,0x80,0x80);
break;
return res;
case eColorID_WidgetSelectForeground:
aColor = NS_RGB(0x00,0x00,0x80);
break;
return res;
case eColorID_Widget3DHighlight:
aColor = NS_RGB(0xa0,0xa0,0xa0);
break;
return res;
case eColorID_Widget3DShadow:
aColor = NS_RGB(0x40,0x40,0x40);
break;
return res;
case eColorID_TextBackground:
aColor = NS_RGB(0xff,0xff,0xff);
break;
return res;
case eColorID_TextForeground:
aColor = NS_RGB(0x00,0x00,0x00);
break;
return res;
case eColorID_TextSelectBackground:
aColor = GetColorFromNSColor([NSColor selectedTextBackgroundColor]);
break;
return res;
case eColorID_highlight: // CSS2 color
aColor = GetColorFromNSColor([NSColor alternateSelectedControlColor]);
break;
return res;
case eColorID__moz_menuhover:
aColor = GetColorFromNSColor([NSColor alternateSelectedControlColor]);
break;
return res;
case eColorID_TextSelectForeground:
GetColor(eColorID_TextSelectBackground, aColor);
if (aColor == 0x000000)
aColor = NS_RGB(0xff,0xff,0xff);
else
aColor = NS_DONT_CHANGE_COLOR;
break;
return res;
case eColorID_highlighttext: // CSS2 color
case eColorID__moz_menuhovertext:
aColor = GetColorFromNSColor([NSColor alternateSelectedControlTextColor]);
break;
return res;
case eColorID_IMESelectedRawTextBackground:
case eColorID_IMESelectedConvertedTextBackground:
case eColorID_IMERawInputBackground:
case eColorID_IMEConvertedTextBackground:
aColor = NS_TRANSPARENT;
break;
return res;
case eColorID_IMESelectedRawTextForeground:
case eColorID_IMESelectedConvertedTextForeground:
case eColorID_IMERawInputForeground:
case eColorID_IMEConvertedTextForeground:
aColor = NS_SAME_AS_FOREGROUND_COLOR;
break;
return res;
case eColorID_IMERawInputUnderline:
case eColorID_IMEConvertedTextUnderline:
aColor = NS_40PERCENT_FOREGROUND_COLOR;
break;
return res;
case eColorID_IMESelectedRawTextUnderline:
case eColorID_IMESelectedConvertedTextUnderline:
aColor = NS_SAME_AS_FOREGROUND_COLOR;
break;
return res;
case eColorID_SpellCheckerUnderline:
aColor = NS_RGB(0xff, 0, 0);
break;
return res;
//
// css2 system colors http://www.w3.org/TR/REC-CSS2/ui.html#system-colors
@ -147,158 +147,161 @@ nsLookAndFeel::NativeGetColor(ColorID aID, nscolor &aColor)
//
case eColorID__moz_mac_buttonactivetext:
case eColorID__moz_mac_defaultbuttontext:
#ifdef __LP64__
if (nsCocoaFeatures::OnYosemiteOrLater()) {
aColor = NS_RGB(0xFF,0xFF,0xFF);
break;
return res;
}
// Otherwise fall through and return the regular button text:
#endif
case eColorID_buttontext:
case eColorID__moz_buttonhovertext:
aColor = GetColorFromNSColor([NSColor controlTextColor]);
break;
return res;
case eColorID_captiontext:
case eColorID_menutext:
case eColorID_infotext:
case eColorID__moz_menubartext:
aColor = GetColorFromNSColor([NSColor textColor]);
break;
return res;
case eColorID_windowtext:
aColor = GetColorFromNSColor([NSColor windowFrameTextColor]);
break;
return res;
case eColorID_activecaption:
aColor = GetColorFromNSColor([NSColor gridColor]);
break;
return res;
case eColorID_activeborder:
aColor = NS_RGB(0x00,0x00,0x00);
break;
return res;
case eColorID_appworkspace:
aColor = NS_RGB(0xFF,0xFF,0xFF);
break;
return res;
case eColorID_background:
aColor = NS_RGB(0x63,0x63,0xCE);
break;
return res;
case eColorID_buttonface:
case eColorID__moz_buttonhoverface:
aColor = NS_RGB(0xF0,0xF0,0xF0);
break;
return res;
case eColorID_buttonhighlight:
aColor = NS_RGB(0xFF,0xFF,0xFF);
break;
return res;
case eColorID_buttonshadow:
aColor = NS_RGB(0xDC,0xDC,0xDC);
break;
return res;
case eColorID_graytext:
aColor = GetColorFromNSColor([NSColor disabledControlTextColor]);
break;
return res;
case eColorID_inactiveborder:
aColor = GetColorFromNSColor([NSColor controlBackgroundColor]);
break;
return res;
case eColorID_inactivecaption:
aColor = GetColorFromNSColor([NSColor controlBackgroundColor]);
break;
return res;
case eColorID_inactivecaptiontext:
aColor = NS_RGB(0x45,0x45,0x45);
break;
return res;
case eColorID_scrollbar:
aColor = GetColorFromNSColor([NSColor scrollBarColor]);
break;
return res;
case eColorID_threeddarkshadow:
aColor = NS_RGB(0xDC,0xDC,0xDC);
break;
return res;
case eColorID_threedshadow:
aColor = NS_RGB(0xE0,0xE0,0xE0);
break;
return res;
case eColorID_threedface:
aColor = NS_RGB(0xF0,0xF0,0xF0);
break;
return res;
case eColorID_threedhighlight:
aColor = GetColorFromNSColor([NSColor highlightColor]);
break;
return res;
case eColorID_threedlightshadow:
aColor = NS_RGB(0xDA,0xDA,0xDA);
break;
return res;
case eColorID_menu:
aColor = GetColorFromNSColor([NSColor alternateSelectedControlTextColor]);
break;
return res;
case eColorID_infobackground:
aColor = NS_RGB(0xFF,0xFF,0xC7);
break;
return res;
case eColorID_windowframe:
aColor = GetColorFromNSColor([NSColor gridColor]);
break;
return res;
case eColorID_window:
case eColorID__moz_field:
case eColorID__moz_combobox:
aColor = NS_RGB(0xff,0xff,0xff);
break;
return res;
case eColorID__moz_fieldtext:
case eColorID__moz_comboboxtext:
aColor = GetColorFromNSColor([NSColor controlTextColor]);
break;
return res;
case eColorID__moz_dialog:
aColor = GetColorFromNSColor([NSColor controlHighlightColor]);
break;
return res;
case eColorID__moz_dialogtext:
case eColorID__moz_cellhighlighttext:
case eColorID__moz_html_cellhighlighttext:
aColor = GetColorFromNSColor([NSColor controlTextColor]);
break;
return res;
case eColorID__moz_dragtargetzone:
aColor = GetColorFromNSColor([NSColor selectedControlColor]);
break;
return res;
case eColorID__moz_mac_chrome_active:
case eColorID__moz_mac_chrome_inactive: {
int grey = NativeGreyColorAsInt(headerEndGrey, (aID == eColorID__moz_mac_chrome_active));
aColor = NS_RGB(grey, grey, grey);
}
break;
return res;
case eColorID__moz_mac_focusring:
aColor = GetColorFromNSColor([NSColor keyboardFocusIndicatorColor]);
break;
return res;
case eColorID__moz_mac_menushadow:
aColor = NS_RGB(0xA3,0xA3,0xA3);
break;
return res;
case eColorID__moz_mac_menutextdisable:
aColor = NS_RGB(0x98,0x98,0x98);
break;
return res;
case eColorID__moz_mac_menutextselect:
aColor = GetColorFromNSColor([NSColor selectedMenuItemTextColor]);
break;
return res;
case eColorID__moz_mac_disabledtoolbartext:
aColor = GetColorFromNSColor([NSColor disabledControlTextColor]);
break;
return res;
case eColorID__moz_mac_menuselect:
aColor = GetColorFromNSColor([NSColor alternateSelectedControlColor]);
break;
return res;
case eColorID__moz_buttondefault:
aColor = NS_RGB(0xDC,0xDC,0xDC);
break;
return res;
case eColorID__moz_cellhighlight:
case eColorID__moz_html_cellhighlight:
case eColorID__moz_mac_secondaryhighlight:
// For inactive list selection
aColor = GetColorFromNSColor([NSColor secondarySelectedControlColor]);
break;
return res;
case eColorID__moz_eventreerow:
// Background color of even list rows.
aColor = GetColorFromNSColor([[NSColor controlAlternatingRowBackgroundColors] objectAtIndex:0]);
break;
return res;
case eColorID__moz_oddtreerow:
// Background color of odd list rows.
aColor = GetColorFromNSColor([[NSColor controlAlternatingRowBackgroundColors] objectAtIndex:1]);
break;
return res;
case eColorID__moz_nativehyperlinktext:
// There appears to be no available system defined color. HARDCODING to the appropriate color.
aColor = NS_RGB(0x14,0x4F,0xAE);
break;
return res;
default:
NS_WARNING("Someone asked nsILookAndFeel for a color I don't know about");
aColor = NS_RGB(0xff,0xff,0xff);
res = NS_ERROR_FAILURE;
break;
return res;
}
// unreachable?
res = NS_ERROR_FAILURE;
return res;
NS_OBJC_END_TRY_ABORT_BLOCK_NSRESULT;
@ -317,35 +320,35 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
switch (aID) {
case eIntID_CaretBlinkTime:
aResult = 567;
break;
return res;
case eIntID_CaretWidth:
aResult = 1;
break;
return res;
case eIntID_ShowCaretDuringSelection:
aResult = 0;
break;
return res;
case eIntID_SelectTextfieldsOnKeyFocus:
// Select textfield content when focused by kbd
// used by EventStateManager::sTextfieldSelectModel
aResult = 1;
break;
return res;
case eIntID_SubmenuDelay:
aResult = 200;
break;
return res;
case eIntID_TooltipDelay:
aResult = 500;
break;
return res;
case eIntID_MenusCanOverlapOSBar:
// xul popups are not allowed to overlap the menubar.
aResult = 0;
break;
return res;
case eIntID_SkipNavigatingDisabledMenuItem:
aResult = 1;
break;
return res;
case eIntID_DragThresholdX:
case eIntID_DragThresholdY:
aResult = 4;
break;
return res;
case eIntID_ScrollArrowStyle:
#ifdef __LP64__
if (nsCocoaFeatures::OnLionOrLater()) {
@ -369,10 +372,10 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
}
[pool drain];
}
break;
return res;
case eIntID_ScrollSliderStyle:
aResult = eScrollThumbStyle_Proportional;
break;
return res;
case eIntID_UseOverlayScrollbars:
aResult = 0;
#ifdef __LP64__
@ -382,7 +385,7 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
}
aResult = mUseOverlayScrollbars;
#endif
break;
return res;
case eIntID_AllowOverlayScrollbarsOverlap:
aResult = 0;
#ifdef __LP64__
@ -392,31 +395,31 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
}
aResult = mAllowOverlayScrollbarsOverlap;
#endif
break;
return res;
case eIntID_ScrollbarDisplayOnMouseMove:
aResult = 0;
break;
return res;
case eIntID_ScrollbarFadeBeginDelay:
aResult = 450;
break;
return res;
case eIntID_ScrollbarFadeDuration:
aResult = 200;
break;
return res;
case eIntID_TreeOpenDelay:
aResult = 1000;
break;
return res;
case eIntID_TreeCloseDelay:
aResult = 1000;
break;
return res;
case eIntID_TreeLazyScrollDelay:
aResult = 150;
break;
return res;
case eIntID_TreeScrollDelay:
aResult = 100;
break;
return res;
case eIntID_TreeScrollLinesMax:
aResult = 3;
break;
return res;
case eIntID_DWMCompositor:
case eIntID_WindowsClassic:
case eIntID_WindowsDefaultTheme:
@ -425,21 +428,22 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
case eIntID_OperatingSystemVersionIdentifier:
aResult = 0;
res = NS_ERROR_NOT_IMPLEMENTED;
break;
return res;
case eIntID_MacGraphiteTheme:
aResult = [NSColor currentControlTint] == NSGraphiteControlTint;
break;
return res;
case eIntID_MacLionTheme:
aResult = nsCocoaFeatures::OnLionOrLater();
break;
return res;
case eIntID_MacYosemiteTheme:
aResult = nsCocoaFeatures::OnYosemiteOrLater();
break;
return res;
case eIntID_AlertNotificationOrigin:
aResult = NS_ALERT_TOP;
break;
return res;
case eIntID_TabFocusModel:
{
fprintf(stderr, "TabFocusModel\n");
// we should probably cache this
CFPropertyListRef fullKeyboardAccessProperty;
fullKeyboardAccessProperty = ::CFPreferencesCopyValue(CFSTR("AppleKeyboardUIMode"),
@ -457,27 +461,27 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
::CFRelease(fullKeyboardAccessProperty);
}
}
break;
return res;
case eIntID_ScrollToClick:
{
aResult = [[NSUserDefaults standardUserDefaults] boolForKey:@"AppleScrollerPagingBehavior"];
}
break;
return res;
case eIntID_ChosenMenuItemsShouldBlink:
aResult = 1;
break;
return res;
case eIntID_IMERawInputUnderlineStyle:
case eIntID_IMEConvertedTextUnderlineStyle:
case eIntID_IMESelectedRawTextUnderlineStyle:
case eIntID_IMESelectedConvertedTextUnderline:
aResult = NS_STYLE_TEXT_DECORATION_STYLE_SOLID;
break;
return res;
case eIntID_SpellCheckerUnderlineStyle:
aResult = NS_STYLE_TEXT_DECORATION_STYLE_DOTTED;
break;
return res;
case eIntID_ScrollbarButtonAutoRepeatBehavior:
aResult = 0;
break;
return res;
case eIntID_SwipeAnimationEnabled:
aResult = 0;
#ifdef __LP64__
@ -486,16 +490,16 @@ nsLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
aResult = [NSEvent isSwipeTrackingFromScrollEventsEnabled] ? 1 : 0;
}
#endif
break;
return res;
case eIntID_ColorPickerAvailable:
aResult = 1;
break;
return res;
case eIntID_ContextMenuOffsetVertical:
aResult = -6;
break;
return res;
case eIntID_ContextMenuOffsetHorizontal:
aResult = 1;
break;
return res;
default:
aResult = 0;
res = NS_ERROR_FAILURE;
@ -516,10 +520,10 @@ nsLookAndFeel::GetFloatImpl(FloatID aID, float &aResult)
switch (aID) {
case eFloatID_IMEUnderlineRelativeSize:
aResult = 2.0f;
break;
return res;
case eFloatID_SpellCheckerUnderlineRelativeSize:
aResult = 2.0f;
break;
return res;
default:
aResult = -1.0;
res = NS_ERROR_FAILURE;
@ -589,6 +593,8 @@ nsLookAndFeel::GetIntCacheImpl()
nsTArray<LookAndFeelInt> lookAndFeelIntCache =
nsXPLookAndFeel::GetIntCacheImpl();
// Useless before 10.7.
#ifdef __LP64__
LookAndFeelInt useOverlayScrollbars;
useOverlayScrollbars.id = eIntID_UseOverlayScrollbars;
useOverlayScrollbars.value = GetInt(eIntID_UseOverlayScrollbars);
@ -598,6 +604,7 @@ nsLookAndFeel::GetIntCacheImpl()
allowOverlayScrollbarsOverlap.id = eIntID_AllowOverlayScrollbarsOverlap;
allowOverlayScrollbarsOverlap.value = GetInt(eIntID_AllowOverlayScrollbarsOverlap);
lookAndFeelIntCache.AppendElement(allowOverlayScrollbarsOverlap);
#endif
return lookAndFeelIntCache;
}
@ -605,23 +612,28 @@ nsLookAndFeel::GetIntCacheImpl()
void
nsLookAndFeel::SetIntCacheImpl(const nsTArray<LookAndFeelInt>& aLookAndFeelIntCache)
{
// Useless before 10.7.
#ifdef __LP64__
for (auto entry : aLookAndFeelIntCache) {
switch(entry.id) {
case eIntID_UseOverlayScrollbars:
mUseOverlayScrollbars = entry.value;
mUseOverlayScrollbarsCached = true;
break;
return res;
case eIntID_AllowOverlayScrollbarsOverlap:
mAllowOverlayScrollbarsOverlap = entry.value;
mAllowOverlayScrollbarsOverlapCached = true;
break;
return res;
}
}
#endif
}
void
nsLookAndFeel::RefreshImpl()
{
// Useless before 10.7.
#ifdef __LP64__
// We should only clear the cache if we're in the main browser process.
// Otherwise, we should wait for the parent to inform us of new values
// to cache via LookAndFeel::SetIntCache.
@ -629,4 +641,5 @@ nsLookAndFeel::RefreshImpl()
mUseOverlayScrollbarsCached = false;
mAllowOverlayScrollbarsOverlapCached = false;
}
#endif
}

View File

@ -250,6 +250,8 @@ bool nsXPLookAndFeel::sUseStandinsForNativeColors = false;
nsLookAndFeel* nsXPLookAndFeel::sInstance = nullptr;
bool nsXPLookAndFeel::sShutdown = false;
bool nsXPLookAndFeel::sAnyIntPrefsSet = false;
bool nsXPLookAndFeel::sAnyFloatPrefsSet = false;
// static
nsLookAndFeel*
@ -296,6 +298,7 @@ nsXPLookAndFeel::IntPrefChanged(nsLookAndFeelIntPref *data)
}
data->intVar = intpref;
data->isSet = true;
sAnyIntPrefsSet = true;
#ifdef DEBUG_akkana
printf("====== Changed int pref %s to %d\n", data->name, data->intVar);
#endif
@ -316,6 +319,7 @@ nsXPLookAndFeel::FloatPrefChanged(nsLookAndFeelFloatPref *data)
}
data->floatVar = (float)intpref / 100.0f;
data->isSet = true;
sAnyFloatPrefsSet = true;
#ifdef DEBUG_akkana
printf("====== Changed float pref %s to %f\n", data->name, data->floatVar);
#endif
@ -359,6 +363,7 @@ nsXPLookAndFeel::InitFromPref(nsLookAndFeelIntPref* aPref)
int32_t intpref;
nsresult rv = Preferences::GetInt(aPref->name, &intpref);
if (NS_SUCCEEDED(rv)) {
sAnyIntPrefsSet = true;
aPref->isSet = true;
aPref->intVar = intpref;
}
@ -370,6 +375,7 @@ nsXPLookAndFeel::InitFromPref(nsLookAndFeelFloatPref* aPref)
int32_t intpref;
nsresult rv = Preferences::GetInt(aPref->name, &intpref);
if (NS_SUCCEEDED(rv)) {
sAnyFloatPrefsSet = true;
aPref->isSet = true;
aPref->floatVar = (float)intpref / 100.0f;
}
@ -404,6 +410,11 @@ nsXPLookAndFeel::OnPrefChanged(const char* aPref, void* aClosure)
nsDependentCString prefName(aPref);
unsigned int i;
// reset the set caches just in case we can optimize checks away
sAnyFloatPrefsSet = false;
sAnyIntPrefsSet = false;
for (i = 0; i < ArrayLength(sIntPrefs); ++i) {
if (prefName.Equals(sIntPrefs[i].name)) {
IntPrefChanged(&sIntPrefs[i]);
@ -446,6 +457,11 @@ nsXPLookAndFeel::Init()
Preferences::RegisterCallback(OnPrefChanged, "accessibility.tabfocus");
unsigned int i;
// reset the set caches just in case we can optimize checks away
sAnyFloatPrefsSet = false;
sAnyIntPrefsSet = false;
for (i = 0; i < ArrayLength(sIntPrefs); ++i) {
InitFromPref(&sIntPrefs[i]);
}
@ -465,6 +481,8 @@ nsXPLookAndFeel::Init()
"ui.use_standins_for_native_colors",
sUseStandinsForNativeColors);
// Unpossible in TenFourFox and irrelevant before 10.7.
#ifdef __LP64__
if (XRE_IsContentProcess()) {
mozilla::dom::ContentChild* cc =
mozilla::dom::ContentChild::GetSingleton();
@ -473,6 +491,7 @@ nsXPLookAndFeel::Init()
cc->SendGetLookAndFeelCache(&lookAndFeelIntCache);
LookAndFeel::SetIntCache(lookAndFeelIntCache);
}
#endif
}
nsXPLookAndFeel::~nsXPLookAndFeel()
@ -548,9 +567,9 @@ nsXPLookAndFeel::ColorIsNotCSSAccessible(ColorID aID)
case eColorID_IMESelectedConvertedTextUnderline:
case eColorID_SpellCheckerUnderline:
result = true;
break;
return result;
default:
break;
return result;
}
return result;
@ -565,95 +584,95 @@ nsXPLookAndFeel::GetStandinForNativeColor(ColorID aID)
// except Mac-specific colors which are taken from Mac OS 10.7.
switch (aID) {
// CSS 2 colors:
case eColorID_activeborder: result = NS_RGB(0xB4, 0xB4, 0xB4); break;
case eColorID_activecaption: result = NS_RGB(0x99, 0xB4, 0xD1); break;
case eColorID_appworkspace: result = NS_RGB(0xAB, 0xAB, 0xAB); break;
case eColorID_background: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID_buttonface: result = NS_RGB(0xF0, 0xF0, 0xF0); break;
case eColorID_buttonhighlight: result = NS_RGB(0xFF, 0xFF, 0xFF); break;
case eColorID_buttonshadow: result = NS_RGB(0xA0, 0xA0, 0xA0); break;
case eColorID_buttontext: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID_captiontext: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID_graytext: result = NS_RGB(0x6D, 0x6D, 0x6D); break;
case eColorID_highlight: result = NS_RGB(0x33, 0x99, 0xFF); break;
case eColorID_highlighttext: result = NS_RGB(0xFF, 0xFF, 0xFF); break;
case eColorID_inactiveborder: result = NS_RGB(0xF4, 0xF7, 0xFC); break;
case eColorID_inactivecaption: result = NS_RGB(0xBF, 0xCD, 0xDB); break;
case eColorID_activeborder: result = NS_RGB(0xB4, 0xB4, 0xB4); return result;
case eColorID_activecaption: result = NS_RGB(0x99, 0xB4, 0xD1); return result;
case eColorID_appworkspace: result = NS_RGB(0xAB, 0xAB, 0xAB); return result;
case eColorID_background: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID_buttonface: result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID_buttonhighlight: result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID_buttonshadow: result = NS_RGB(0xA0, 0xA0, 0xA0); return result;
case eColorID_buttontext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID_captiontext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID_graytext: result = NS_RGB(0x6D, 0x6D, 0x6D); return result;
case eColorID_highlight: result = NS_RGB(0x33, 0x99, 0xFF); return result;
case eColorID_highlighttext: result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID_inactiveborder: result = NS_RGB(0xF4, 0xF7, 0xFC); return result;
case eColorID_inactivecaption: result = NS_RGB(0xBF, 0xCD, 0xDB); return result;
case eColorID_inactivecaptiontext:
result = NS_RGB(0x43, 0x4E, 0x54); break;
case eColorID_infobackground: result = NS_RGB(0xFF, 0xFF, 0xE1); break;
case eColorID_infotext: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID_menu: result = NS_RGB(0xF0, 0xF0, 0xF0); break;
case eColorID_menutext: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID_scrollbar: result = NS_RGB(0xC8, 0xC8, 0xC8); break;
case eColorID_threeddarkshadow: result = NS_RGB(0x69, 0x69, 0x69); break;
case eColorID_threedface: result = NS_RGB(0xF0, 0xF0, 0xF0); break;
case eColorID_threedhighlight: result = NS_RGB(0xFF, 0xFF, 0xFF); break;
case eColorID_threedlightshadow: result = NS_RGB(0xE3, 0xE3, 0xE3); break;
case eColorID_threedshadow: result = NS_RGB(0xA0, 0xA0, 0xA0); break;
case eColorID_window: result = NS_RGB(0xFF, 0xFF, 0xFF); break;
case eColorID_windowframe: result = NS_RGB(0x64, 0x64, 0x64); break;
case eColorID_windowtext: result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x43, 0x4E, 0x54); return result;
case eColorID_infobackground: result = NS_RGB(0xFF, 0xFF, 0xE1); return result;
case eColorID_infotext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID_menu: result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID_menutext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID_scrollbar: result = NS_RGB(0xC8, 0xC8, 0xC8); return result;
case eColorID_threeddarkshadow: result = NS_RGB(0x69, 0x69, 0x69); return result;
case eColorID_threedface: result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID_threedhighlight: result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID_threedlightshadow: result = NS_RGB(0xE3, 0xE3, 0xE3); return result;
case eColorID_threedshadow: result = NS_RGB(0xA0, 0xA0, 0xA0); return result;
case eColorID_window: result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID_windowframe: result = NS_RGB(0x64, 0x64, 0x64); return result;
case eColorID_windowtext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_buttondefault:
result = NS_RGB(0x69, 0x69, 0x69); break;
case eColorID__moz_field: result = NS_RGB(0xFF, 0xFF, 0xFF); break;
case eColorID__moz_fieldtext: result = NS_RGB(0x00, 0x00, 0x00); break;
case eColorID__moz_dialog: result = NS_RGB(0xF0, 0xF0, 0xF0); break;
case eColorID__moz_dialogtext: result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x69, 0x69, 0x69); return result;
case eColorID__moz_field: result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_fieldtext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_dialog: result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID__moz_dialogtext: result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_dragtargetzone:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_cellhighlight:
result = NS_RGB(0xF0, 0xF0, 0xF0); break;
result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID__moz_cellhighlighttext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_html_cellhighlight:
result = NS_RGB(0x33, 0x99, 0xFF); break;
result = NS_RGB(0x33, 0x99, 0xFF); return result;
case eColorID__moz_html_cellhighlighttext:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_buttonhoverface:
result = NS_RGB(0xF0, 0xF0, 0xF0); break;
result = NS_RGB(0xF0, 0xF0, 0xF0); return result;
case eColorID__moz_buttonhovertext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_menuhover:
result = NS_RGB(0x33, 0x99, 0xFF); break;
result = NS_RGB(0x33, 0x99, 0xFF); return result;
case eColorID__moz_menuhovertext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_menubartext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_menubarhovertext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_oddtreerow:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_mac_chrome_active:
result = NS_RGB(0xB2, 0xB2, 0xB2); break;
result = NS_RGB(0xB2, 0xB2, 0xB2); return result;
case eColorID__moz_mac_chrome_inactive:
result = NS_RGB(0xE1, 0xE1, 0xE1); break;
result = NS_RGB(0xE1, 0xE1, 0xE1); return result;
case eColorID__moz_mac_focusring:
result = NS_RGB(0x60, 0x9D, 0xD7); break;
result = NS_RGB(0x60, 0x9D, 0xD7); return result;
case eColorID__moz_mac_menuselect:
result = NS_RGB(0x38, 0x75, 0xD7); break;
result = NS_RGB(0x38, 0x75, 0xD7); return result;
case eColorID__moz_mac_menushadow:
result = NS_RGB(0xA3, 0xA3, 0xA3); break;
result = NS_RGB(0xA3, 0xA3, 0xA3); return result;
case eColorID__moz_mac_menutextdisable:
result = NS_RGB(0x88, 0x88, 0x88); break;
result = NS_RGB(0x88, 0x88, 0x88); return result;
case eColorID__moz_mac_menutextselect:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_mac_disabledtoolbartext:
result = NS_RGB(0x3F, 0x3F, 0x3F); break;
result = NS_RGB(0x3F, 0x3F, 0x3F); return result;
case eColorID__moz_mac_secondaryhighlight:
result = NS_RGB(0xD4, 0xD4, 0xD4); break;
result = NS_RGB(0xD4, 0xD4, 0xD4); return result;
case eColorID__moz_win_mediatext:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_win_communicationstext:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
case eColorID__moz_nativehyperlinktext:
result = NS_RGB(0x00, 0x66, 0xCC); break;
result = NS_RGB(0x00, 0x66, 0xCC); return result;
case eColorID__moz_comboboxtext:
result = NS_RGB(0x00, 0x00, 0x00); break;
result = NS_RGB(0x00, 0x00, 0x00); return result;
case eColorID__moz_combobox:
result = NS_RGB(0xFF, 0xFF, 0xFF); break;
result = NS_RGB(0xFF, 0xFF, 0xFF); return result;
default:
break;
return result;
}
return result;
@ -689,35 +708,35 @@ nsXPLookAndFeel::GetColorImpl(ColorID aID, bool aUseStandinsForNativeColors,
case eColorID_captiontext:
// text in active window caption
aResult = NS_RGB(0xff, 0x00, 0x00);
break;
return result;
case eColorID_highlight:
// background of selected item
case eColorID_highlighttext:
// text of selected item
aResult = NS_RGB(0xff, 0xff, 0x00);
break;
return result;
case eColorID_inactivecaption:
// inactive window caption
case eColorID_inactivecaptiontext:
// text in inactive window caption
aResult = NS_RGB(0x66, 0x66, 0x00);
break;
return result;
case eColorID_infobackground:
// tooltip background color
case eColorID_infotext:
// tooltip text color
aResult = NS_RGB(0x00, 0xff, 0x00);
break;
return result;
case eColorID_menu:
// menu background
case eColorID_menutext:
// menu text
aResult = NS_RGB(0x00, 0xff, 0xff);
break;
return result;
case eColorID_threedface:
case eColorID_buttonface:
@ -725,12 +744,12 @@ nsXPLookAndFeel::GetColorImpl(ColorID aID, bool aUseStandinsForNativeColors,
case eColorID_buttontext:
// text on push buttons
aResult = NS_RGB(0x00, 0x66, 0x66);
break;
return result;
case eColorID_window:
case eColorID_windowtext:
aResult = NS_RGB(0x00, 0x00, 0xff);
break;
return result;
// from the CSS3 working draft (not yet finalized)
// http://www.w3.org/tr/2000/wd-css3-userint-20000216.html#color
@ -738,12 +757,12 @@ nsXPLookAndFeel::GetColorImpl(ColorID aID, bool aUseStandinsForNativeColors,
case eColorID__moz_field:
case eColorID__moz_fieldtext:
aResult = NS_RGB(0xff, 0x00, 0xff);
break;
return result;
case eColorID__moz_dialog:
case eColorID__moz_dialogtext:
aResult = NS_RGB(0x66, 0x00, 0x66);
break;
return result;
default:
rv = NS_ERROR_NOT_AVAILABLE;
@ -841,7 +860,7 @@ nsXPLookAndFeel::GetIntImpl(IntID aID, int32_t &aResult)
* The metrics above are hardcoded platform defaults. All the other
* metrics are stored in sIntPrefs and can be changed at runtime.
*/
break;
if (MOZ_LIKELY(!sAnyIntPrefsSet)) return NS_ERROR_NOT_AVAILABLE; // else fall through
}
for (unsigned int i = 0; i < ArrayLength(sIntPrefs); ++i) {
@ -859,6 +878,8 @@ nsXPLookAndFeel::GetFloatImpl(FloatID aID, float &aResult)
{
if (MOZ_UNLIKELY(!sInitialized))
Init();
if (MOZ_LIKELY(!sAnyFloatPrefsSet)) return NS_ERROR_NOT_AVAILABLE; // else fall through
for (unsigned int i = 0; i < ArrayLength(sFloatPrefs); ++i) {
if (MOZ_UNLIKELY(sFloatPrefs[i].isSet && sFloatPrefs[i].id == aID)) {

View File

@ -114,6 +114,8 @@ protected:
static nsLookAndFeel* sInstance;
static bool sShutdown;
static bool sAnyIntPrefsSet;
static bool sAnyFloatPrefsSet;
};
#endif