Bug 1597893 : convert NS_STYLE_WINDOW_SHADOW_* to an enum class in nsStyleConsts.h r=emilio

Differential Revision: https://phabricator.services.mozilla.com/D53920

--HG--
extra : moz-landing-system : lando
This commit is contained in:
jeffin143 2019-11-25 16:00:23 +00:00
Родитель 9b7464720b
Коммит 7868d04683
12 изменённых файлов: 31 добавлений и 29 удалений

Просмотреть файл

@ -598,7 +598,7 @@ void nsContainerFrame::SyncWindowProperties(nsPresContext* aPresContext,
// even if the HTML doesn't have a background-color set.
nsTransparencyMode mode =
nsLayoutUtils::GetFrameTransparency(aFrame, rootFrame);
int32_t shadow = rootFrame->StyleUIReset()->mWindowShadow;
StyleWindowShadow shadow = rootFrame->StyleUIReset()->mWindowShadow;
nsCOMPtr<nsIWidget> viewWidget = aView->GetWidget();
viewWidget->SetTransparencyMode(mode);
windowWidget->SetWindowShadowStyle(shadow);

Просмотреть файл

@ -108,6 +108,7 @@ rusty-enums = [
"mozilla::StyleBorderCollapse",
"mozilla::StyleBorderImageRepeat",
"mozilla::StyleBoxPack",
"mozilla::StyleWindowShadow",
"mozilla::StyleBoxOrient",
"mozilla::StyleBoxAlign",
"mozilla::StyleUserFocus",

Просмотреть файл

@ -738,12 +738,13 @@ enum class StyleImeMode : uint8_t {
* -moz-window-shadow
* Also used in widget code
*/
#define NS_STYLE_WINDOW_SHADOW_NONE 0
#define NS_STYLE_WINDOW_SHADOW_DEFAULT 1
#define NS_STYLE_WINDOW_SHADOW_MENU 2
#define NS_STYLE_WINDOW_SHADOW_TOOLTIP 3
#define NS_STYLE_WINDOW_SHADOW_SHEET 4
enum class StyleWindowShadow : uint8_t {
None,
Default,
Menu,
Tooltip,
Sheet,
};
// dominant-baseline
#define NS_STYLE_DOMINANT_BASELINE_AUTO 0

Просмотреть файл

@ -3705,7 +3705,7 @@ nsStyleUIReset::nsStyleUIReset(const Document& aDocument)
mForceBrokenImageIcon(0),
mIMEMode(StyleImeMode::Auto),
mWindowDragging(StyleWindowDragging::Default),
mWindowShadow(NS_STYLE_WINDOW_SHADOW_DEFAULT),
mWindowShadow(StyleWindowShadow::Default),
mWindowOpacity(1.0),
mWindowTransformOrigin{LengthPercentage::FromPercentage(0.5),
LengthPercentage::FromPercentage(0.5),

Просмотреть файл

@ -2076,7 +2076,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
uint8_t mForceBrokenImageIcon; // (0 if not forcing, otherwise forcing)
mozilla::StyleImeMode mIMEMode;
mozilla::StyleWindowDragging mWindowDragging;
uint8_t mWindowShadow;
mozilla::StyleWindowShadow mWindowShadow;
float mWindowOpacity;
mozilla::StyleTransform mMozWindowTransform;
mozilla::StyleTransformOrigin mWindowTransformOrigin;

Просмотреть файл

@ -356,17 +356,17 @@ nsresult nsMenuPopupFrame::CreateWidgetForView(nsView* aView) {
return NS_OK;
}
uint8_t nsMenuPopupFrame::GetShadowStyle() {
uint8_t shadow = StyleUIReset()->mWindowShadow;
if (shadow != NS_STYLE_WINDOW_SHADOW_DEFAULT) return shadow;
StyleWindowShadow nsMenuPopupFrame::GetShadowStyle() {
StyleWindowShadow shadow = StyleUIReset()->mWindowShadow;
if (shadow != StyleWindowShadow::Default) return shadow;
switch (StyleDisplay()->mAppearance) {
case StyleAppearance::Tooltip:
return NS_STYLE_WINDOW_SHADOW_TOOLTIP;
return StyleWindowShadow::Tooltip;
case StyleAppearance::Menupopup:
return NS_STYLE_WINDOW_SHADOW_MENU;
return StyleWindowShadow::Menu;
default:
return NS_STYLE_WINDOW_SHADOW_DEFAULT;
return StyleWindowShadow::Default;
}
}

Просмотреть файл

@ -248,7 +248,7 @@ class nsMenuPopupFrame final : public nsBoxFrame,
void EnsureWidget(bool aRecreate = false);
nsresult CreateWidgetForView(nsView* aView);
uint8_t GetShadowStyle();
mozilla::StyleWindowShadow GetShadowStyle();
bool IsLeafDynamic() const override;

Просмотреть файл

@ -59,7 +59,7 @@ ${helpers.single_keyword(
"none default menu tooltip sheet",
engines="gecko",
gecko_ffi_name="mWindowShadow",
gecko_constant_prefix="NS_STYLE_WINDOW_SHADOW",
gecko_enum_prefix="StyleWindowShadow",
animation_value_type="discrete",
enabled_in="chrome",
spec="None (Nonstandard internal property)",

Просмотреть файл

@ -294,7 +294,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa {
virtual bool HasPendingInputEvent() override;
virtual nsTransparencyMode GetTransparencyMode() override;
virtual void SetTransparencyMode(nsTransparencyMode aMode) override;
virtual void SetWindowShadowStyle(int32_t aStyle) override;
virtual void SetWindowShadowStyle(mozilla::StyleWindowShadow aStyle) override;
virtual void SetWindowOpacity(float aOpacity) override;
virtual void SetWindowTransform(const mozilla::gfx::Matrix& aTransform) override;
virtual void SetWindowMouseTransparent(bool aIsTransparent) override;
@ -367,7 +367,7 @@ class nsCocoaWindow final : public nsBaseWidget, public nsPIWidgetCocoa {
// if this is a toplevel window, and there is any ongoing fullscreen
// transition, it is the animation object.
NSAnimation* mFullscreenTransitionAnimation;
int32_t mShadowStyle;
mozilla::StyleWindowShadow mShadowStyle;
CGFloat mBackingScaleFactor;
CGFloat mAspectRatio;

Просмотреть файл

@ -139,7 +139,7 @@ nsCocoaWindow::nsCocoaWindow()
mSheetWindowParent(nil),
mPopupContentView(nil),
mFullscreenTransitionAnimation(nil),
mShadowStyle(NS_STYLE_WINDOW_SHADOW_DEFAULT),
mShadowStyle(StyleWindowShadow::Default),
mBackingScaleFactor(0.0),
mAnimationType(nsIWidget::eGenericWindowAnimation),
mWindowMadeHere(false),
@ -981,8 +981,8 @@ void nsCocoaWindow::AdjustWindowShadow() {
return;
const ShadowParams& params = nsCocoaFeatures::OnYosemiteOrLater()
? kWindowShadowParametersPostYosemite[mShadowStyle]
: kWindowShadowParametersPreYosemite[mShadowStyle];
? kWindowShadowParametersPostYosemite[uint8_t(mShadowStyle)]
: kWindowShadowParametersPreYosemite[uint8_t(mShadowStyle)];
CGSConnection cid = _CGSDefaultConnection();
CGSSetWindowShadowAndRimParameters(cid, [mWindow windowNumber], params.standardDeviation,
params.density, params.offsetX, params.offsetY, params.flags);
@ -998,8 +998,7 @@ void nsCocoaWindow::SetWindowBackgroundBlur() {
if (!mWindow || ![mWindow isVisible] || [mWindow windowNumber] == -1) return;
// Only blur the background of menus and fake sheets.
if (mShadowStyle != NS_STYLE_WINDOW_SHADOW_MENU && mShadowStyle != NS_STYLE_WINDOW_SHADOW_SHEET)
return;
if (mShadowStyle != StyleWindowShadow::Menu && mShadowStyle != StyleWindowShadow::Sheet) return;
CGSConnection cid = _CGSDefaultConnection();
CGSSetWindowBackgroundBlurRadius(cid, [mWindow windowNumber], kWindowBackgroundBlurRadius);
@ -1991,7 +1990,7 @@ nsresult nsCocoaWindow::GetAttention(int32_t aCycleCount) {
bool nsCocoaWindow::HasPendingInputEvent() { return nsChildView::DoHasPendingInputEvent(); }
void nsCocoaWindow::SetWindowShadowStyle(int32_t aStyle) {
void nsCocoaWindow::SetWindowShadowStyle(StyleWindowShadow aStyle) {
NS_OBJC_BEGIN_TRY_ABORT_BLOCK;
if (!mWindow) return;
@ -2000,10 +1999,10 @@ void nsCocoaWindow::SetWindowShadowStyle(int32_t aStyle) {
// Shadowless windows are only supported on popups.
if (mWindowType == eWindowType_popup) {
[mWindow setHasShadow:aStyle != NS_STYLE_WINDOW_SHADOW_NONE];
[mWindow setHasShadow:aStyle != StyleWindowShadow::None];
}
[mWindow setUseMenuStyle:(aStyle == NS_STYLE_WINDOW_SHADOW_MENU)];
[mWindow setUseMenuStyle:(aStyle == StyleWindowShadow::Menu)];
AdjustWindowShadow();
SetWindowBackgroundBlur();

Просмотреть файл

@ -179,7 +179,8 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference {
virtual nsTransparencyMode GetTransparencyMode() override;
virtual void GetWindowClipRegion(
nsTArray<LayoutDeviceIntRect>* aRects) override;
virtual void SetWindowShadowStyle(int32_t aStyle) override {}
virtual void SetWindowShadowStyle(
mozilla::StyleWindowShadow aStyle) override {}
virtual void SetShowsToolbarButton(bool aShow) override {}
virtual void SetShowsFullScreenButton(bool aShow) override {}
virtual void SetWindowAnimationType(WindowAnimationType aType) override {}

Просмотреть файл

@ -1117,7 +1117,7 @@ class nsIWidget : public nsISupports {
*
* Ignored on child widgets and on non-Mac platforms.
*/
virtual void SetWindowShadowStyle(int32_t aStyle) = 0;
virtual void SetWindowShadowStyle(mozilla::StyleWindowShadow aStyle) = 0;
/**
* Set the opacity of the window.