style: Move user-select outside of mako.

This is the first step to unprefix user-select.

This has no behavior change, it's just a nicer way to do the same thing which
allows us to unship individual values more easily using parse(condition).

Differential Revision: https://phabricator.services.mozilla.com/D11580
This commit is contained in:
Emilio Cobos Álvarez 2018-11-11 17:57:41 +01:00
parent fcada8a71e
commit 1aa6725f9a
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
8 changed files with 47 additions and 9 deletions

View file

@ -53,5 +53,6 @@ include = [
"TimingFunction",
"PathCommand",
"UnicodeRange",
"UserSelect",
]
item_types = ["enums", "structs", "typedefs"]

View file

@ -336,6 +336,7 @@ class Longhand(object):
"TextEmphasisPosition",
"TouchAction",
"TransformStyle",
"UserSelect",
"XSpan",
"XTextZoom",
"ZIndex",

View file

@ -1429,6 +1429,7 @@ impl Clone for ${style_struct.gecko_struct_name} {
"SVGWidth": impl_svg_length,
"Transform": impl_transform,
"TransformOrigin": impl_transform_origin,
"UserSelect": impl_simple,
"url::UrlOrNone": impl_css_url,
}

View file

@ -31,16 +31,15 @@ ${helpers.single_keyword(
spec="https://drafts.csswg.org/css-scrollbars-1/#scrollbar-width"
)}
${helpers.single_keyword(
${helpers.predefined_type(
"-moz-user-select",
"auto text none all element elements toggle tri-state -moz-all -moz-text",
"UserSelect",
"computed::UserSelect::Auto",
products="gecko",
alias="-webkit-user-select",
gecko_ffi_name="mUserSelect",
gecko_enum_prefix="StyleUserSelect",
gecko_strip_moz_prefix=False,
aliases="-moz-none=none",
alias="-webkit-user-select",
animation_value_type="discrete",
needs_context=False,
spec="https://drafts.csswg.org/css-ui-4/#propdef-user-select",
)}

View file

@ -84,7 +84,7 @@ pub use self::transform::{Rotate, Scale, Transform, TransformOperation};
pub use self::transform::{TransformOrigin, TransformStyle, Translate};
#[cfg(feature = "gecko")]
pub use self::ui::CursorImage;
pub use self::ui::{ColorOrAuto, Cursor, MozForceBrokenImageIcon};
pub use self::ui::{ColorOrAuto, Cursor, MozForceBrokenImageIcon, UserSelect};
pub use super::specified::{BorderStyle, TextDecorationLine};
pub use super::{Auto, Either, None_};
pub use app_units::Au;

View file

@ -10,7 +10,7 @@ use crate::values::computed::Number;
use crate::values::generics::ui as generics;
use crate::values::{Auto, Either};
pub use crate::values::specified::ui::MozForceBrokenImageIcon;
pub use crate::values::specified::ui::{MozForceBrokenImageIcon, UserSelect};
/// auto | <color>
pub type ColorOrAuto = Either<Color, Auto>;

View file

@ -82,7 +82,7 @@ pub use self::transform::{Rotate, Scale, Transform};
pub use self::transform::{TransformOrigin, TransformStyle, Translate};
#[cfg(feature = "gecko")]
pub use self::ui::CursorImage;
pub use self::ui::{ColorOrAuto, Cursor, MozForceBrokenImageIcon};
pub use self::ui::{ColorOrAuto, Cursor, MozForceBrokenImageIcon, UserSelect};
pub use super::generics::grid::GridTemplateComponent as GenericGridTemplateComponent;
#[cfg(feature = "gecko")]

View file

@ -140,3 +140,39 @@ impl Parse for ScrollbarColor {
})
}
}
/// The specified value for the `user-select` property.
///
/// https://drafts.csswg.org/css-ui-4/#propdef-user-select
#[allow(missing_docs)]
#[derive(
Clone,
Copy,
Debug,
Eq,
MallocSizeOf,
Parse,
PartialEq,
SpecifiedValueInfo,
ToComputedValue,
ToCss,
)]
#[repr(u8)]
pub enum UserSelect {
Auto,
Text,
#[parse(aliases = "-moz-none")]
None,
Element,
Elements,
All,
Toggle,
TriState,
/// Force selection of all children, unless an ancestor has `none` set.
///
/// See bug 48096.
MozAll,
/// Like `text`, except that it won't get overridden by ancestors having
/// `all`.
MozText,
}