2003-06-08 02:14:42 +04:00
|
|
|
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2012-05-21 15:12:37 +04:00
|
|
|
/* 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/. */
|
2006-03-30 10:20:34 +04:00
|
|
|
|
|
|
|
/* enum types for CSS properties and their values */
|
|
|
|
|
2016-08-17 04:37:48 +03:00
|
|
|
#ifndef nsCSSPropertyID_h___
|
|
|
|
#define nsCSSPropertyID_h___
|
2003-06-08 02:14:42 +04:00
|
|
|
|
2015-08-27 04:19:34 +03:00
|
|
|
#include <nsHashKeys.h>
|
|
|
|
|
2003-06-08 02:14:42 +04:00
|
|
|
/*
|
|
|
|
Declare the enum list using the magic of preprocessing
|
|
|
|
enum values are "eCSSProperty_foo" (where foo is the property)
|
|
|
|
|
|
|
|
To change the list of properties, see nsCSSPropList.h
|
|
|
|
|
|
|
|
*/
|
2016-08-17 04:37:48 +03:00
|
|
|
enum nsCSSPropertyID {
|
2003-06-08 02:14:42 +04:00
|
|
|
eCSSProperty_UNKNOWN = -1,
|
|
|
|
|
2012-05-10 05:29:37 +04:00
|
|
|
#define CSS_PROP(name_, id_, method_, flags_, pref_, parsevariant_, \
|
|
|
|
kwtable_, stylestruct_, stylestructoffset_, animtype_) \
|
2009-09-11 14:46:36 +04:00
|
|
|
eCSSProperty_##id_,
|
2015-01-17 07:16:01 +03:00
|
|
|
#define CSS_PROP_LIST_INCLUDE_LOGICAL
|
2003-06-08 02:14:42 +04:00
|
|
|
#include "nsCSSPropList.h"
|
2015-01-17 07:16:01 +03:00
|
|
|
#undef CSS_PROP_LIST_INCLUDE_LOGICAL
|
2003-06-08 02:14:42 +04:00
|
|
|
#undef CSS_PROP
|
|
|
|
|
|
|
|
eCSSProperty_COUNT_no_shorthands,
|
|
|
|
// Make the count continue where it left off:
|
|
|
|
eCSSProperty_COUNT_DUMMY = eCSSProperty_COUNT_no_shorthands - 1,
|
|
|
|
|
2012-05-10 05:29:37 +04:00
|
|
|
#define CSS_PROP_SHORTHAND(name_, id_, method_, flags_, pref_) \
|
|
|
|
eCSSProperty_##id_,
|
2003-06-08 02:14:42 +04:00
|
|
|
#include "nsCSSPropList.h"
|
|
|
|
#undef CSS_PROP_SHORTHAND
|
|
|
|
|
2009-01-23 04:28:13 +03:00
|
|
|
eCSSProperty_COUNT,
|
2013-03-13 20:58:39 +04:00
|
|
|
// Make the count continue where it left off:
|
|
|
|
eCSSProperty_COUNT_DUMMY2 = eCSSProperty_COUNT - 1,
|
|
|
|
|
|
|
|
#define CSS_PROP_ALIAS(aliasname_, id_, method_, pref_) \
|
|
|
|
eCSSPropertyAlias_##method_,
|
|
|
|
#include "nsCSSPropAliasList.h"
|
|
|
|
#undef CSS_PROP_ALIAS
|
|
|
|
|
|
|
|
eCSSProperty_COUNT_with_aliases,
|
|
|
|
// Make the count continue where it left off:
|
|
|
|
eCSSProperty_COUNT_DUMMY3 = eCSSProperty_COUNT_with_aliases - 1,
|
2009-01-23 04:28:13 +03:00
|
|
|
|
2013-03-13 20:58:39 +04:00
|
|
|
// Some of the values below could probably overlap with each other
|
|
|
|
// if we had a need for them to do so.
|
2009-08-21 01:52:47 +04:00
|
|
|
|
|
|
|
// Extra values for use in the values of the 'transition-property'
|
|
|
|
// property.
|
|
|
|
eCSSPropertyExtra_no_properties,
|
|
|
|
eCSSPropertyExtra_all_properties,
|
|
|
|
|
2009-01-23 04:28:13 +03:00
|
|
|
// Extra dummy values for nsCSSParser internal use.
|
2011-08-23 08:18:22 +04:00
|
|
|
eCSSPropertyExtra_x_none_value,
|
Bug 773296 - Part 2: Parse CSS variable declarations and store them on Declaration objects. p=ebassi,heycam r=dbaron
Patch co-authored by Emmanuele Bassi <ebassi@gmail.com>
This defines a CSSVariableDeclarations class that holds a set of
variable declarations. This is at the specified value stage, so values
can either be 'initial', 'inherit' or a token stream (which is what you
normally have). The variables are stored in a hash table. Although
it's a bit of a hack, we store 'initial' and 'inherit' using special
string values that can't be valid token streams (we use "!" and ";").
Declaration objects now can have two CSSVariableDeclarations objects
on them, to store normal and !important variable declarations. So that
we keep preserving the order of declarations on the object, we inflate
mOrder to store uint32_ts, where values from eCSSProperty_COUNT onwards
represent custom properties. mVariableOrder stores the names of the
variables corresponding to those entries in mOrder.
We also add a new nsCSSProperty value, eCSSPropertyExtra_variable, which
is used to represent any custom property name.
nsCSSProps::LookupProperty can return this value.
The changes to nsCSSParser are straightforward. Custom properties
are parsed and checked for syntactic validity (e.g. "var(a,)" being
invalid) and stored on the Declaration. We use nsCSSScanner's
recording ability to grab the unparsed CSS string corresponding to
the variable's value.
2013-12-12 06:09:40 +04:00
|
|
|
eCSSPropertyExtra_x_auto_value,
|
|
|
|
|
2014-04-02 07:32:16 +04:00
|
|
|
// Extra value to represent custom properties (--*).
|
2016-10-28 17:24:00 +03:00
|
|
|
eCSSPropertyExtra_variable,
|
|
|
|
|
|
|
|
// Extra value for use in the DOM API's
|
|
|
|
eCSSProperty_DOM
|
2003-06-08 02:14:42 +04:00
|
|
|
};
|
|
|
|
|
2015-08-27 04:19:34 +03:00
|
|
|
namespace mozilla {
|
|
|
|
|
|
|
|
template<>
|
|
|
|
inline PLDHashNumber
|
2016-08-17 04:37:48 +03:00
|
|
|
Hash<nsCSSPropertyID>(const nsCSSPropertyID& aValue)
|
2015-08-27 04:19:34 +03:00
|
|
|
{
|
|
|
|
return uint32_t(aValue);
|
|
|
|
}
|
|
|
|
|
|
|
|
} // namespace mozilla
|
|
|
|
|
2008-08-08 03:15:40 +04:00
|
|
|
// The "descriptors" that can appear in a @font-face rule.
|
|
|
|
// They have the syntax of properties but different value rules.
|
|
|
|
enum nsCSSFontDesc {
|
|
|
|
eCSSFontDesc_UNKNOWN = -1,
|
2011-12-20 20:49:16 +04:00
|
|
|
#define CSS_FONT_DESC(name_, method_) eCSSFontDesc_##method_,
|
|
|
|
#include "nsCSSFontDescList.h"
|
|
|
|
#undef CSS_FONT_DESC
|
2008-08-08 03:15:40 +04:00
|
|
|
eCSSFontDesc_COUNT
|
|
|
|
};
|
|
|
|
|
2014-06-12 05:10:00 +04:00
|
|
|
// The "descriptors" that can appear in a @counter-style rule.
|
|
|
|
// They have the syntax of properties but different value rules.
|
|
|
|
enum nsCSSCounterDesc {
|
|
|
|
eCSSCounterDesc_UNKNOWN = -1,
|
|
|
|
#define CSS_COUNTER_DESC(name_, method_) eCSSCounterDesc_##method_,
|
|
|
|
#include "nsCSSCounterDescList.h"
|
|
|
|
#undef CSS_COUNTER_DESC
|
|
|
|
eCSSCounterDesc_COUNT
|
|
|
|
};
|
|
|
|
|
2015-01-17 07:43:20 +03:00
|
|
|
enum nsCSSPropertyLogicalGroup {
|
|
|
|
eCSSPropertyLogicalGroup_UNKNOWN = -1,
|
2015-01-17 07:43:20 +03:00
|
|
|
#define CSS_PROP_LOGICAL_GROUP_AXIS(name_) \
|
|
|
|
eCSSPropertyLogicalGroup_##name_,
|
2015-01-17 07:43:20 +03:00
|
|
|
#define CSS_PROP_LOGICAL_GROUP_BOX(name_) \
|
|
|
|
eCSSPropertyLogicalGroup_##name_,
|
2015-01-17 07:43:20 +03:00
|
|
|
#define CSS_PROP_LOGICAL_GROUP_SHORTHAND(name_) \
|
|
|
|
eCSSPropertyLogicalGroup_##name_,
|
|
|
|
#include "nsCSSPropLogicalGroupList.h"
|
|
|
|
#undef CSS_PROP_LOGICAL_GROUP_SHORTHAND
|
2015-01-17 07:43:20 +03:00
|
|
|
#undef CSS_PROP_LOGICAL_GROUP_BOX
|
2015-01-17 07:43:20 +03:00
|
|
|
#undef CSS_PROP_LOGICAL_GROUP_AXIS
|
2015-01-17 07:43:20 +03:00
|
|
|
eCSSPropertyLogicalGroup_COUNT
|
|
|
|
};
|
|
|
|
|
2016-08-17 04:37:48 +03:00
|
|
|
#endif /* nsCSSPropertyID_h___ */
|