mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
And all related CSS properties. And page transitions, whatever those are. And will-change. And page visibility. R=eseidel@chromium.org Review URL: https://codereview.chromium.org/1229273004 .
131 lines
5.0 KiB
C++
131 lines
5.0 KiB
C++
/*
|
|
* Copyright (C) 2000 Lars Knoll (knoll@kde.org)
|
|
* (C) 2000 Antti Koivisto (koivisto@kde.org)
|
|
* (C) 2000 Dirk Mueller (mueller@kde.org)
|
|
* Copyright (C) 2003, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved.
|
|
* Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com)
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#ifndef SKY_ENGINE_CORE_RENDERING_STYLE_STYLERARENONINHERITEDDATA_H_
|
|
#define SKY_ENGINE_CORE_RENDERING_STYLE_STYLERARENONINHERITEDDATA_H_
|
|
|
|
#include "sky/engine/core/css/StyleColor.h"
|
|
#include "sky/engine/core/rendering/ClipPathOperation.h"
|
|
#include "sky/engine/core/rendering/style/BasicShapes.h"
|
|
#include "sky/engine/core/rendering/style/CounterDirectives.h"
|
|
#include "sky/engine/core/rendering/style/DataRef.h"
|
|
#include "sky/engine/core/rendering/style/FillLayer.h"
|
|
#include "sky/engine/core/rendering/style/NinePieceImage.h"
|
|
#include "sky/engine/core/rendering/style/RenderStyleConstants.h"
|
|
#include "sky/engine/core/rendering/style/ShapeValue.h"
|
|
#include "sky/engine/platform/LengthPoint.h"
|
|
#include "sky/engine/wtf/OwnPtr.h"
|
|
#include "sky/engine/wtf/PassRefPtr.h"
|
|
#include "sky/engine/wtf/Vector.h"
|
|
|
|
namespace blink {
|
|
|
|
class LengthSize;
|
|
class ShadowList;
|
|
class StyleFilterData;
|
|
class StyleFlexibleBoxData;
|
|
class StyleTransformData;
|
|
|
|
// This struct is for rarely used non-inherited CSS3, CSS2, and WebKit-specific properties.
|
|
// By grouping them together, we save space, and only allocate this object when someone
|
|
// actually uses one of these properties.
|
|
class StyleRareNonInheritedData : public RefCounted<StyleRareNonInheritedData> {
|
|
public:
|
|
static PassRefPtr<StyleRareNonInheritedData> create() { return adoptRef(new StyleRareNonInheritedData); }
|
|
PassRefPtr<StyleRareNonInheritedData> copy() const { return adoptRef(new StyleRareNonInheritedData(*this)); }
|
|
~StyleRareNonInheritedData();
|
|
|
|
bool operator==(const StyleRareNonInheritedData&) const;
|
|
bool operator!=(const StyleRareNonInheritedData& o) const { return !(*this == o); }
|
|
|
|
bool counterDataEquivalent(const StyleRareNonInheritedData&) const;
|
|
bool shadowDataEquivalent(const StyleRareNonInheritedData&) const;
|
|
bool hasFilters() const;
|
|
bool hasOpacity() const { return opacity < 1; }
|
|
|
|
float opacity; // Whether or not we're transparent.
|
|
|
|
float m_aspectRatioDenominator;
|
|
float m_aspectRatioNumerator;
|
|
|
|
float m_perspective;
|
|
Length m_perspectiveOriginX;
|
|
Length m_perspectiveOriginY;
|
|
|
|
DataRef<StyleFlexibleBoxData> m_flexibleBox;
|
|
DataRef<StyleTransformData> m_transform; // Transform properties (rotate, scale, skew, etc.)
|
|
|
|
DataRef<StyleFilterData> m_filter; // Filter operations (url, sepia, blur, etc.)
|
|
|
|
OwnPtr<CounterDirectiveMap> m_counterDirectives;
|
|
|
|
RefPtr<ShadowList> m_boxShadow;
|
|
|
|
RefPtr<ClipPathOperation> m_clipPath;
|
|
|
|
StyleColor m_textDecorationColor;
|
|
|
|
int m_order;
|
|
|
|
LengthPoint m_objectPosition;
|
|
|
|
unsigned m_transformStyle3D : 1; // ETransformStyle3D
|
|
|
|
unsigned m_alignContent : 3; // EAlignContent
|
|
unsigned m_alignItems : 4; // ItemPosition
|
|
unsigned m_alignItemsOverflowAlignment : 2; // OverflowAlignment
|
|
unsigned m_alignSelf : 4; // ItemPosition
|
|
unsigned m_alignSelfOverflowAlignment : 2; // OverflowAlignment
|
|
unsigned m_justifyContent : 3; // EJustifyContent
|
|
|
|
unsigned textOverflow : 1; // Whether or not lines that spill out should be truncated with "..."
|
|
|
|
unsigned m_textDecorationStyle : 3; // TextDecorationStyle
|
|
unsigned m_wrapFlow: 3; // WrapFlow
|
|
unsigned m_wrapThrough: 1; // WrapThrough
|
|
|
|
unsigned m_hasAspectRatio : 1; // Whether or not an aspect ratio has been specified.
|
|
|
|
unsigned m_touchAction : TouchActionBits; // TouchAction
|
|
|
|
unsigned m_objectFit : 3; // ObjectFit
|
|
|
|
unsigned m_isolation : 1; // Isolation
|
|
|
|
unsigned m_justifyItems : 4; // ItemPosition
|
|
unsigned m_justifyItemsOverflowAlignment : 2; // OverflowAlignment
|
|
unsigned m_justifyItemsPositionType: 1; // Whether or not alignment uses the 'legacy' keyword.
|
|
|
|
unsigned m_justifySelf : 4; // ItemPosition
|
|
unsigned m_justifySelfOverflowAlignment : 2; // OverflowAlignment
|
|
|
|
private:
|
|
StyleRareNonInheritedData();
|
|
StyleRareNonInheritedData(const StyleRareNonInheritedData&);
|
|
};
|
|
|
|
} // namespace blink
|
|
|
|
#endif // SKY_ENGINE_CORE_RENDERING_STYLE_STYLERARENONINHERITEDDATA_H_
|