summaryrefslogtreecommitdiffstats
path: root/layout/style/nsCSSPropLogicalGroupList.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/nsCSSPropLogicalGroupList.h')
-rw-r--r--layout/style/nsCSSPropLogicalGroupList.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/layout/style/nsCSSPropLogicalGroupList.h b/layout/style/nsCSSPropLogicalGroupList.h
new file mode 100644
index 000000000..3d8a52bc9
--- /dev/null
+++ b/layout/style/nsCSSPropLogicalGroupList.h
@@ -0,0 +1,56 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*
+ * a list of groups of logical properties, for preprocessing
+ */
+
+// A logical property group is one that defines the corresponding physical
+// longhand properties that could be set by a given set of logical longhand
+// properties. For example, the logical property group for margin-block-start
+// (and the other three logical margin properties) is one that contains
+// margin-top, margin-right, margin-bottom and margin-left.
+//
+// Logical property groups are defined below using one of the following
+// macros, where the name_ argument must be capitalized LikeThis and
+// must not collide with the name of a property's DOM method (its
+// method_ in nsCSSPropList.h):
+//
+// CSS_PROP_LOGICAL_GROUP_SHORTHAND(name_)
+// Defines a logical property group whose corresponding physical
+// properties are those in a given shorthand. For example, the
+// logical property group for margin-{block,inline}-{start,end}
+// is defined by the margin shorthand. The name_ argument must
+// be the method_ name of the shorthand (so Margin rather than
+// margin).
+//
+// CSS_PROP_LOGICAL_GROUP_BOX(name_)
+// Defines a logical property group whose corresponding physical
+// properties are a set of four box properties which are not
+// already represented by an existing shorthand property. For
+// example, the logical property group for
+// offset-{block,inline}-{start,end} contains the top, right,
+// bottom and left physical properties, but there is no shorthand
+// that sets those four properties. A table must be defined in
+// nsCSSProps.cpp named g<name_>LogicalGroupTable containing the
+// four physical properties in top/right/bottom/left order.
+//
+// CSS_PROP_LOGICAL_GROUP_AXIS(name_)
+// Defines a logical property group whose corresponding physical
+// properties are a set of two axis-related properties. For
+// example, the logical property group for {block,inline}-size
+// contains the width and height properties. A table must be
+// defined in nCSSProps.cpp named g<name_>LogicalGroupTable
+// containing the two physical properties in vertical/horizontal
+// order, followed by an nsCSSProperty_UNKNOWN entry.
+
+CSS_PROP_LOGICAL_GROUP_SHORTHAND(BorderColor)
+CSS_PROP_LOGICAL_GROUP_SHORTHAND(BorderStyle)
+CSS_PROP_LOGICAL_GROUP_SHORTHAND(BorderWidth)
+CSS_PROP_LOGICAL_GROUP_SHORTHAND(Margin)
+CSS_PROP_LOGICAL_GROUP_AXIS(MaxSize)
+CSS_PROP_LOGICAL_GROUP_BOX(Offset)
+CSS_PROP_LOGICAL_GROUP_SHORTHAND(Padding)
+CSS_PROP_LOGICAL_GROUP_AXIS(MinSize)
+CSS_PROP_LOGICAL_GROUP_AXIS(Size)