mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
style: Autogenerate StyleAppearance.
This builds on bug 1428676 and introduces StyleAppearance, which replaces the NS_THEME_* constants. Really sorry for the size of the patch. There's a non-trivial change in the gtk theme, which I submitted separately as bug 1478385. Differential Revision: https://phabricator.services.mozilla.com/D2361
This commit is contained in:
parent
798d45f38d
commit
0cab212052
7 changed files with 291 additions and 40 deletions
|
@ -22,5 +22,5 @@ derive_helper_methods = true
|
||||||
|
|
||||||
[export]
|
[export]
|
||||||
prefix = "Style"
|
prefix = "Style"
|
||||||
include = ["StyleDisplay"]
|
include = ["StyleDisplay", "StyleAppearance"]
|
||||||
item_types = ["enums"]
|
item_types = ["enums"]
|
||||||
|
|
|
@ -368,6 +368,34 @@ def set_gecko_property(ffi_name, expr):
|
||||||
return "self.gecko.%s = %s;" % (ffi_name, expr)
|
return "self.gecko.%s = %s;" % (ffi_name, expr)
|
||||||
%>
|
%>
|
||||||
|
|
||||||
|
<%def name="impl_cbindgen_keyword(ident, gecko_ffi_name)">
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[inline]
|
||||||
|
pub fn set_${ident}(&mut self, v: longhands::${ident}::computed_value::T) {
|
||||||
|
// unsafe: cbindgen ensures the representations match.
|
||||||
|
${set_gecko_property(gecko_ffi_name, "unsafe { transmute(v) }")}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[inline]
|
||||||
|
pub fn clone_${ident}(&self) -> longhands::${ident}::computed_value::T {
|
||||||
|
// unsafe: cbindgen ensures the representations match.
|
||||||
|
unsafe { transmute(${get_gecko_property(gecko_ffi_name)}) }
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[inline]
|
||||||
|
pub fn copy_${ident}_from(&mut self, other: &Self) {
|
||||||
|
self.gecko.${gecko_ffi_name} = other.gecko.${gecko_ffi_name};
|
||||||
|
}
|
||||||
|
|
||||||
|
#[allow(non_snake_case)]
|
||||||
|
#[inline]
|
||||||
|
pub fn reset_${ident}(&mut self, other: &Self) {
|
||||||
|
self.copy_${ident}_from(other)
|
||||||
|
}
|
||||||
|
</%def>
|
||||||
|
|
||||||
<%def name="impl_keyword_setter(ident, gecko_ffi_name, keyword, cast_type='u8', on_set=None)">
|
<%def name="impl_keyword_setter(ident, gecko_ffi_name, keyword, cast_type='u8', on_set=None)">
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub fn set_${ident}(&mut self, v: longhands::${ident}::computed_value::T) {
|
pub fn set_${ident}(&mut self, v: longhands::${ident}::computed_value::T) {
|
||||||
|
@ -3015,7 +3043,7 @@ fn static_assert() {
|
||||||
}
|
}
|
||||||
</%def>
|
</%def>
|
||||||
|
|
||||||
<% skip_box_longhands= """display overflow-y vertical-align
|
<% skip_box_longhands= """display -moz-appearance overflow-y vertical-align
|
||||||
animation-name animation-delay animation-duration
|
animation-name animation-delay animation-duration
|
||||||
animation-direction animation-fill-mode animation-play-state
|
animation-direction animation-fill-mode animation-play-state
|
||||||
animation-iteration-count animation-timing-function
|
animation-iteration-count animation-timing-function
|
||||||
|
@ -3065,6 +3093,8 @@ fn static_assert() {
|
||||||
unsafe { transmute(self.gecko.mDisplay) }
|
unsafe { transmute(self.gecko.mDisplay) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
${impl_cbindgen_keyword('_moz_appearance', 'mAppearance')}
|
||||||
|
|
||||||
<% float_keyword = Keyword("float", "Left Right None", gecko_enum_prefix="StyleFloat") %>
|
<% float_keyword = Keyword("float", "Left Right None", gecko_enum_prefix="StyleFloat") %>
|
||||||
${impl_keyword('float', 'mFloat', float_keyword)}
|
${impl_keyword('float', 'mFloat', float_keyword)}
|
||||||
|
|
||||||
|
|
|
@ -508,41 +508,16 @@ ${helpers.predefined_type("contain",
|
||||||
spec="https://drafts.csswg.org/css-contain/#contain-property")}
|
spec="https://drafts.csswg.org/css-contain/#contain-property")}
|
||||||
|
|
||||||
// Non-standard
|
// Non-standard
|
||||||
${helpers.single_keyword("-moz-appearance",
|
${helpers.predefined_type(
|
||||||
"""none button button-arrow-down button-arrow-next button-arrow-previous button-arrow-up
|
"-moz-appearance",
|
||||||
button-bevel button-focus caret checkbox checkbox-container checkbox-label checkmenuitem
|
"Appearance",
|
||||||
dialog dualbutton groupbox inner-spin-button listbox listitem menuarrow menubar menucheckbox
|
"computed::Appearance::None",
|
||||||
menuimage menuitem menuitemtext menulist menulist-button menulist-text menulist-textfield
|
products="gecko",
|
||||||
menupopup menuradio menuseparator meterbar meterchunk number-input progressbar
|
alias="-webkit-appearance:layout.css.webkit-appearance.enabled",
|
||||||
progressbar-vertical progresschunk progresschunk-vertical radio radio-container radio-label
|
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance)",
|
||||||
radiomenuitem range range-thumb resizer resizerpanel scale-horizontal scalethumbend
|
needs_context=False,
|
||||||
scalethumb-horizontal scalethumbstart scalethumbtick scalethumb-vertical scale-vertical
|
animation_value_type="discrete",
|
||||||
scrollbar scrollbar-horizontal scrollbar-small scrollbar-vertical scrollbarbutton-down
|
)}
|
||||||
scrollbarbutton-left scrollbarbutton-right scrollbarbutton-up scrollbarthumb-horizontal
|
|
||||||
scrollbarthumb-vertical scrollbartrack-horizontal scrollbartrack-vertical scrollcorner
|
|
||||||
searchfield separator
|
|
||||||
spinner spinner-downbutton spinner-textfield spinner-upbutton splitter statusbar
|
|
||||||
statusbarpanel tab tabpanel tabpanels tab-scroll-arrow-back tab-scroll-arrow-forward
|
|
||||||
textfield textfield-multiline toolbar toolbarbutton toolbarbutton-dropdown toolbargripper
|
|
||||||
toolbox tooltip treeheader treeheadercell treeheadersortarrow treeitem treeline treetwisty
|
|
||||||
treetwistyopen treeview window
|
|
||||||
-moz-gtk-info-bar -moz-mac-active-source-list-selection -moz-mac-disclosure-button-closed
|
|
||||||
-moz-mac-disclosure-button-open -moz-mac-fullscreen-button -moz-mac-help-button
|
|
||||||
-moz-mac-source-list -moz-mac-source-list-selection -moz-mac-vibrancy-dark
|
|
||||||
-moz-mac-vibrancy-light -moz-mac-vibrant-titlebar-light -moz-mac-vibrant-titlebar-dark
|
|
||||||
-moz-win-borderless-glass -moz-win-browsertabbar-toolbox
|
|
||||||
-moz-win-communications-toolbox -moz-win-exclude-glass -moz-win-glass -moz-win-media-toolbox
|
|
||||||
-moz-window-button-box -moz-window-button-box-maximized -moz-window-button-close
|
|
||||||
-moz-window-button-maximize -moz-window-button-minimize -moz-window-button-restore
|
|
||||||
-moz-window-frame-bottom -moz-window-frame-left -moz-window-frame-right -moz-window-titlebar
|
|
||||||
-moz-window-titlebar-maximized
|
|
||||||
""",
|
|
||||||
gecko_ffi_name="mAppearance",
|
|
||||||
gecko_constant_prefix="ThemeWidgetType_NS_THEME",
|
|
||||||
products="gecko",
|
|
||||||
alias="-webkit-appearance:layout.css.webkit-appearance.enabled",
|
|
||||||
spec="Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance)",
|
|
||||||
animation_value_type="discrete")}
|
|
||||||
|
|
||||||
${helpers.predefined_type("-moz-binding", "url::UrlOrNone", "computed::url::UrlOrNone::none()",
|
${helpers.predefined_type("-moz-binding", "url::UrlOrNone", "computed::url::UrlOrNone::none()",
|
||||||
products="gecko",
|
products="gecko",
|
||||||
|
|
|
@ -10,7 +10,7 @@ use values::generics::box_::AnimationIterationCount as GenericAnimationIteration
|
||||||
use values::generics::box_::Perspective as GenericPerspective;
|
use values::generics::box_::Perspective as GenericPerspective;
|
||||||
use values::generics::box_::VerticalAlign as GenericVerticalAlign;
|
use values::generics::box_::VerticalAlign as GenericVerticalAlign;
|
||||||
|
|
||||||
pub use values::specified::box_::{AnimationName, Contain, Display, OverflowClipBox};
|
pub use values::specified::box_::{AnimationName, Appearance, Contain, Display, OverflowClipBox};
|
||||||
pub use values::specified::box_::{Clear as SpecifiedClear, Float as SpecifiedFloat};
|
pub use values::specified::box_::{Clear as SpecifiedClear, Float as SpecifiedFloat};
|
||||||
pub use values::specified::box_::{OverscrollBehavior, ScrollSnapType, TouchAction, TransitionProperty, WillChange};
|
pub use values::specified::box_::{OverscrollBehavior, ScrollSnapType, TouchAction, TransitionProperty, WillChange};
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ pub use self::font::{FontFamily, FontLanguageOverride, FontStyle, FontVariantEas
|
||||||
pub use self::font::{FontFeatureSettings, FontVariantLigatures, FontVariantNumeric};
|
pub use self::font::{FontFeatureSettings, FontVariantLigatures, FontVariantNumeric};
|
||||||
pub use self::font::{MozScriptLevel, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
|
pub use self::font::{MozScriptLevel, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
|
||||||
pub use self::box_::{AnimationIterationCount, AnimationName, Contain, Display, TransitionProperty};
|
pub use self::box_::{AnimationIterationCount, AnimationName, Contain, Display, TransitionProperty};
|
||||||
pub use self::box_::{Clear, Float};
|
pub use self::box_::{Appearance, Clear, Float};
|
||||||
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective};
|
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective};
|
||||||
pub use self::box_::{ScrollSnapType, TouchAction, VerticalAlign, WillChange};
|
pub use self::box_::{ScrollSnapType, TouchAction, VerticalAlign, WillChange};
|
||||||
pub use self::color::{Color, ColorPropertyValue, RGBAColor};
|
pub use self::color::{Color, ColorPropertyValue, RGBAColor};
|
||||||
|
|
|
@ -881,3 +881,249 @@ pub enum Clear {
|
||||||
InlineStart,
|
InlineStart,
|
||||||
InlineEnd
|
InlineEnd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The value for the `appearance` property.
|
||||||
|
///
|
||||||
|
/// https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-appearance
|
||||||
|
///
|
||||||
|
/// NOTE(emilio): When changing this you may want to regenerate the C++ bindings
|
||||||
|
/// (see components/style/cbindgen.toml)
|
||||||
|
#[allow(missing_docs)]
|
||||||
|
#[derive(Clone, Copy, Debug, Eq, Hash, MallocSizeOf, Parse, PartialEq,
|
||||||
|
SpecifiedValueInfo, ToCss, ToComputedValue)]
|
||||||
|
#[repr(u8)]
|
||||||
|
pub enum Appearance {
|
||||||
|
/// No appearance at all.
|
||||||
|
None,
|
||||||
|
/// A typical dialog button.
|
||||||
|
Button,
|
||||||
|
/// Various arrows that go in buttons
|
||||||
|
ButtonArrowDown,
|
||||||
|
ButtonArrowNext,
|
||||||
|
ButtonArrowPrevious,
|
||||||
|
ButtonArrowUp,
|
||||||
|
/// A rectangular button that contains complex content
|
||||||
|
/// like images (e.g. HTML <button> elements)
|
||||||
|
ButtonBevel,
|
||||||
|
/// The focus outline box inside of a button.
|
||||||
|
ButtonFocus,
|
||||||
|
/// The caret of a text area
|
||||||
|
Caret,
|
||||||
|
/// A dual toolbar button (e.g., a Back button with a dropdown)
|
||||||
|
Dualbutton,
|
||||||
|
/// A groupbox.
|
||||||
|
Groupbox,
|
||||||
|
/// A inner-spin button.
|
||||||
|
InnerSpinButton,
|
||||||
|
/// List boxes.
|
||||||
|
Listbox,
|
||||||
|
/// A listbox item.
|
||||||
|
Listitem,
|
||||||
|
/// Menu Bar background
|
||||||
|
Menubar,
|
||||||
|
/// <menu> and <menuitem> appearances
|
||||||
|
Menuitem,
|
||||||
|
Checkmenuitem,
|
||||||
|
Radiomenuitem,
|
||||||
|
/// For text on non-iconic menuitems only
|
||||||
|
Menuitemtext,
|
||||||
|
/// A dropdown list.
|
||||||
|
Menulist,
|
||||||
|
/// The dropdown button(s) that open up a dropdown list.
|
||||||
|
MenulistButton,
|
||||||
|
/// The text part of a dropdown list, to left of button.
|
||||||
|
MenulistText,
|
||||||
|
/// An editable textfield with a dropdown list (a combobox).
|
||||||
|
MenulistTextfield,
|
||||||
|
/// Menu Popup background.
|
||||||
|
Menupopup,
|
||||||
|
/// menu checkbox/radio appearances
|
||||||
|
Menucheckbox,
|
||||||
|
Menuradio,
|
||||||
|
Menuseparator,
|
||||||
|
Menuarrow,
|
||||||
|
/// An image in the menu gutter, like in bookmarks or history.
|
||||||
|
Menuimage,
|
||||||
|
/// A horizontal meter bar.
|
||||||
|
Meterbar,
|
||||||
|
/// The meter bar's meter indicator.
|
||||||
|
Meterchunk,
|
||||||
|
/// For HTML's <input type=number>
|
||||||
|
NumberInput,
|
||||||
|
/// A horizontal progress bar.
|
||||||
|
Progressbar,
|
||||||
|
/// The progress bar's progress indicator
|
||||||
|
Progresschunk,
|
||||||
|
/// A vertical progress bar.
|
||||||
|
ProgressbarVertical,
|
||||||
|
/// A vertical progress chunk.
|
||||||
|
ProgresschunkVertical,
|
||||||
|
/// A checkbox element.
|
||||||
|
Checkbox,
|
||||||
|
/// A radio element within a radio group.
|
||||||
|
Radio,
|
||||||
|
/// A generic container that always repaints on state changes. This is a
|
||||||
|
/// hack to make XUL checkboxes and radio buttons work.
|
||||||
|
CheckboxContainer,
|
||||||
|
RadioContainer,
|
||||||
|
/// The label part of a checkbox or radio button, used for painting a focus
|
||||||
|
/// outline.
|
||||||
|
CheckboxLabel,
|
||||||
|
RadioLabel,
|
||||||
|
/// nsRangeFrame and its subparts
|
||||||
|
Range,
|
||||||
|
RangeThumb,
|
||||||
|
/// The resizer background area in a status bar for the resizer widget in
|
||||||
|
/// the corner of a window.
|
||||||
|
Resizerpanel,
|
||||||
|
/// The resizer itself.
|
||||||
|
Resizer,
|
||||||
|
/// A slider.
|
||||||
|
ScaleHorizontal,
|
||||||
|
ScaleVertical,
|
||||||
|
/// A slider's thumb.
|
||||||
|
ScalethumbHorizontal,
|
||||||
|
ScalethumbVertical,
|
||||||
|
/// If the platform supports it, the left/right chunks of the slider thumb.
|
||||||
|
Scalethumbstart,
|
||||||
|
Scalethumbend,
|
||||||
|
/// The ticks for a slider.
|
||||||
|
Scalethumbtick,
|
||||||
|
/// A scrollbar.
|
||||||
|
Scrollbar,
|
||||||
|
/// A small scrollbar.
|
||||||
|
ScrollbarSmall,
|
||||||
|
/// The scrollbar slider
|
||||||
|
ScrollbarHorizontal,
|
||||||
|
ScrollbarVertical,
|
||||||
|
/// A scrollbar button (up/down/left/right).
|
||||||
|
/// Keep these in order (some code casts these values to `int` in order to
|
||||||
|
/// compare them against each other).
|
||||||
|
ScrollbarbuttonDown,
|
||||||
|
ScrollbarbuttonLeft,
|
||||||
|
ScrollbarbuttonRight,
|
||||||
|
ScrollbarbuttonUp,
|
||||||
|
/// The scrollbar thumb.
|
||||||
|
ScrollbarthumbHorizontal,
|
||||||
|
ScrollbarthumbVertical,
|
||||||
|
/// The scrollbar track.
|
||||||
|
ScrollbartrackHorizontal,
|
||||||
|
ScrollbartrackVertical,
|
||||||
|
/// The scroll corner
|
||||||
|
Scrollcorner,
|
||||||
|
/// A searchfield.
|
||||||
|
Searchfield,
|
||||||
|
/// A separator. Can be horizontal or vertical.
|
||||||
|
Separator,
|
||||||
|
/// A spin control (up/down control for time/date pickers).
|
||||||
|
Spinner,
|
||||||
|
/// The up button of a spin control.
|
||||||
|
SpinnerUpbutton,
|
||||||
|
/// The down button of a spin control.
|
||||||
|
SpinnerDownbutton,
|
||||||
|
/// The textfield of a spin control
|
||||||
|
SpinnerTextfield,
|
||||||
|
/// A splitter. Can be horizontal or vertical.
|
||||||
|
Splitter,
|
||||||
|
/// A status bar in a main application window.
|
||||||
|
Statusbar,
|
||||||
|
/// A single pane of a status bar.
|
||||||
|
Statusbarpanel,
|
||||||
|
/// A single tab in a tab widget.
|
||||||
|
Tab,
|
||||||
|
/// A single pane (inside the tabpanels container).
|
||||||
|
Tabpanel,
|
||||||
|
/// The tab panels container.
|
||||||
|
Tabpanels,
|
||||||
|
/// The tabs scroll arrows (left/right).
|
||||||
|
TabScrollArrowBack,
|
||||||
|
TabScrollArrowForward,
|
||||||
|
/// A textfield or text area.
|
||||||
|
Textfield,
|
||||||
|
/// A multiline text field.
|
||||||
|
TextfieldMultiline,
|
||||||
|
/// A toolbar in an application window.
|
||||||
|
Toolbar,
|
||||||
|
/// A single toolbar button (with no associated dropdown).
|
||||||
|
Toolbarbutton,
|
||||||
|
/// The dropdown portion of a toolbar button
|
||||||
|
ToolbarbuttonDropdown,
|
||||||
|
/// The gripper for a toolbar.
|
||||||
|
Toolbargripper,
|
||||||
|
/// The toolbox that contains the toolbars.
|
||||||
|
Toolbox,
|
||||||
|
/// A tooltip.
|
||||||
|
Tooltip,
|
||||||
|
/// A listbox or tree widget header
|
||||||
|
Treeheader,
|
||||||
|
/// An individual header cell
|
||||||
|
Treeheadercell,
|
||||||
|
/// The sort arrow for a header.
|
||||||
|
Treeheadersortarrow,
|
||||||
|
/// A tree item.
|
||||||
|
Treeitem,
|
||||||
|
/// A tree widget branch line
|
||||||
|
Treeline,
|
||||||
|
/// A tree widget twisty.
|
||||||
|
Treetwisty,
|
||||||
|
/// Open tree widget twisty.
|
||||||
|
Treetwistyopen,
|
||||||
|
/// A tree widget.
|
||||||
|
Treeview,
|
||||||
|
/// Window and dialog backgrounds.
|
||||||
|
Window,
|
||||||
|
Dialog,
|
||||||
|
|
||||||
|
/// Vista Rebars.
|
||||||
|
MozWinCommunicationsToolbox,
|
||||||
|
MozWinMediaToolbox,
|
||||||
|
MozWinBrowsertabbarToolbox,
|
||||||
|
/// Vista glass.
|
||||||
|
MozWinGlass,
|
||||||
|
MozWinBorderlessGlass,
|
||||||
|
/// -moz-apperance style used in setting proper glass margins.
|
||||||
|
MozWinExcludeGlass,
|
||||||
|
|
||||||
|
/// Titlebar elements on the Mac.
|
||||||
|
MozMacFullscreenButton,
|
||||||
|
/// Mac help button.
|
||||||
|
MozMacHelpButton,
|
||||||
|
|
||||||
|
/// Windows themed window frame elements.
|
||||||
|
MozWindowButtonBox,
|
||||||
|
MozWindowButtonBoxMaximized,
|
||||||
|
MozWindowButtonClose,
|
||||||
|
MozWindowButtonMaximize,
|
||||||
|
MozWindowButtonMinimize,
|
||||||
|
MozWindowButtonRestore,
|
||||||
|
MozWindowFrameBottom,
|
||||||
|
MozWindowFrameLeft,
|
||||||
|
MozWindowFrameRight,
|
||||||
|
MozWindowTitlebar,
|
||||||
|
MozWindowTitlebarMaximized,
|
||||||
|
|
||||||
|
MozGtkInfoBar,
|
||||||
|
MozMacActiveSourceListSelection,
|
||||||
|
MozMacDisclosureButtonClosed,
|
||||||
|
MozMacDisclosureButtonOpen,
|
||||||
|
MozMacSourceList,
|
||||||
|
MozMacSourceListSelection,
|
||||||
|
MozMacVibrancyDark,
|
||||||
|
MozMacVibrancyLight,
|
||||||
|
MozMacVibrantTitlebarDark,
|
||||||
|
MozMacVibrantTitlebarLight,
|
||||||
|
|
||||||
|
/// A non-disappearing scrollbar.
|
||||||
|
#[css(skip)]
|
||||||
|
ScrollbarNonDisappearing,
|
||||||
|
|
||||||
|
/// A themed focus outline (for outline:auto).
|
||||||
|
///
|
||||||
|
/// This isn't exposed to CSS at all, just here for convenience.
|
||||||
|
#[css(skip)]
|
||||||
|
FocusOutline,
|
||||||
|
|
||||||
|
/// A dummy variant that should be last to let the GTK widget do hackery.
|
||||||
|
#[css(skip)]
|
||||||
|
Count,
|
||||||
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ pub use self::font::{FontFamily, FontLanguageOverride, FontStyle, FontVariantEas
|
||||||
pub use self::font::{FontFeatureSettings, FontVariantLigatures, FontVariantNumeric};
|
pub use self::font::{FontFeatureSettings, FontVariantLigatures, FontVariantNumeric};
|
||||||
pub use self::font::{MozScriptLevel, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
|
pub use self::font::{MozScriptLevel, MozScriptMinSize, MozScriptSizeMultiplier, XLang, XTextZoom};
|
||||||
pub use self::box_::{AnimationIterationCount, AnimationName, Contain, Display};
|
pub use self::box_::{AnimationIterationCount, AnimationName, Contain, Display};
|
||||||
pub use self::box_::{Clear, Float};
|
pub use self::box_::{Appearance, Clear, Float};
|
||||||
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective};
|
pub use self::box_::{OverflowClipBox, OverscrollBehavior, Perspective};
|
||||||
pub use self::box_::{ScrollSnapType, TouchAction, TransitionProperty, VerticalAlign, WillChange};
|
pub use self::box_::{ScrollSnapType, TouchAction, TransitionProperty, VerticalAlign, WillChange};
|
||||||
pub use self::color::{Color, ColorPropertyValue, RGBAColor};
|
pub use self::color::{Color, ColorPropertyValue, RGBAColor};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue