mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
style: Cleanup a bit the calc code.
I happened to be looking at it. MozReview-Commit-ID: Ketot34XtOX
This commit is contained in:
parent
4f09987611
commit
49535d6987
2 changed files with 27 additions and 18 deletions
|
@ -92,15 +92,12 @@ impl CalcLengthOrPercentage {
|
|||
|
||||
/// Returns a new `CalcLengthOrPercentage` with a specific clamping mode.
|
||||
#[inline]
|
||||
pub fn with_clamping_mode(length: Length,
|
||||
percentage: Option<Percentage>,
|
||||
clamping_mode: AllowedNumericType)
|
||||
-> Self {
|
||||
Self {
|
||||
clamping_mode: clamping_mode,
|
||||
length: length,
|
||||
percentage: percentage,
|
||||
}
|
||||
pub fn with_clamping_mode(
|
||||
length: Length,
|
||||
percentage: Option<Percentage>,
|
||||
clamping_mode: AllowedNumericType,
|
||||
) -> Self {
|
||||
Self { clamping_mode, length, percentage, }
|
||||
}
|
||||
|
||||
/// Returns this `calc()` as a `<length>`.
|
||||
|
@ -136,8 +133,9 @@ impl CalcLengthOrPercentage {
|
|||
self.to_pixel_length(container_len).map(Au::from)
|
||||
}
|
||||
|
||||
/// If there are special rules for computing percentages in a value (e.g. the height property),
|
||||
/// they apply whenever a calc() expression contains percentages.
|
||||
/// If there are special rules for computing percentages in a value (e.g.
|
||||
/// the height property), they apply whenever a calc() expression contains
|
||||
/// percentages.
|
||||
pub fn to_pixel_length(&self, container_len: Option<Au>) -> Option<Length> {
|
||||
match (container_len, self.percentage) {
|
||||
(Some(len), Some(percent)) => {
|
||||
|
@ -226,9 +224,15 @@ impl ToCss for CalcLengthOrPercentage {
|
|||
|
||||
impl specified::CalcLengthOrPercentage {
|
||||
/// Compute the value, zooming any absolute units by the zoom function.
|
||||
fn to_computed_value_with_zoom<F>(&self, context: &Context, zoom_fn: F,
|
||||
base_size: FontBaseSize) -> CalcLengthOrPercentage
|
||||
where F: Fn(Length) -> Length {
|
||||
fn to_computed_value_with_zoom<F>(
|
||||
&self,
|
||||
context: &Context,
|
||||
zoom_fn: F,
|
||||
base_size: FontBaseSize,
|
||||
) -> CalcLengthOrPercentage
|
||||
where
|
||||
F: Fn(Length) -> Length,
|
||||
{
|
||||
use std::f32;
|
||||
let mut length = 0.;
|
||||
|
||||
|
@ -263,7 +267,11 @@ impl specified::CalcLengthOrPercentage {
|
|||
}
|
||||
|
||||
/// Compute font-size or line-height taking into account text-zoom if necessary.
|
||||
pub fn to_computed_value_zoomed(&self, context: &Context, base_size: FontBaseSize) -> CalcLengthOrPercentage {
|
||||
pub fn to_computed_value_zoomed(
|
||||
&self,
|
||||
context: &Context,
|
||||
base_size: FontBaseSize,
|
||||
) -> CalcLengthOrPercentage {
|
||||
self.to_computed_value_with_zoom(context, |abs| context.maybe_zoom_text(abs.into()).0, base_size)
|
||||
}
|
||||
|
||||
|
|
|
@ -64,9 +64,10 @@ pub enum CalcUnit {
|
|||
|
||||
/// A struct to hold a simplified `<length>` or `<percentage>` expression.
|
||||
///
|
||||
/// In some cases, e.g. DOMMatrix, we support calc(), but reject all the relative lengths, and
|
||||
/// to_computed_pixel_length_without_context() handles this case. Therefore, if you want to add a
|
||||
/// new field, please make sure this function work properly.
|
||||
/// In some cases, e.g. DOMMatrix, we support calc(), but reject all the
|
||||
/// relative lengths, and to_computed_pixel_length_without_context() handles
|
||||
/// this case. Therefore, if you want to add a new field, please make sure this
|
||||
/// function work properly.
|
||||
#[derive(Clone, Copy, Debug, Default, MallocSizeOf, PartialEq)]
|
||||
#[allow(missing_docs)]
|
||||
pub struct CalcLengthOrPercentage {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue