mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 16:55:40 +00:00
f6b347dc05
<!-- Please describe your changes on the following line: --> --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors <!-- Either: --> - [x] These changes do not require tests because moves stuff around without adding functionality. <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> This commit itself only moves things around and adds an extra parameter to the `apply_declarations` function to eventually handle #14079 correctly. Probably needs a more granular API to query fonts, á la nsFontMetrics, but that's trivial to do once this is landed. Then we should make the font provider mandatory, and implement the missing stylo bits. Source-Repo: https://github.com/servo/servo Source-Revision: 57c4db7c670f34fffbee0c179077e8afdadf09f8
36 lines
1.1 KiB
Rust
36 lines
1.1 KiB
Rust
/* 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/. */
|
|
|
|
use Atom;
|
|
use app_units::Au;
|
|
use euclid::Size2D;
|
|
use std::fmt;
|
|
|
|
/// Represents the font metrics that style needs from a font to compute the
|
|
/// value of certain CSS units like `ex`.
|
|
#[derive(Debug, PartialEq, Clone)]
|
|
pub struct FontMetrics {
|
|
pub x_height: Au,
|
|
pub zero_advance_measure: Size2D<Au>,
|
|
}
|
|
|
|
#[derive(Debug, PartialEq, Clone)]
|
|
pub enum FontMetricsQueryResult {
|
|
Available(Option<FontMetrics>),
|
|
NotAvailable,
|
|
}
|
|
|
|
/// A trait used to represent something capable of providing us font metrics.
|
|
pub trait FontMetricsProvider: Send + Sync + fmt::Debug {
|
|
/// Obtain the metrics for given font family.
|
|
///
|
|
/// TODO: We could make this take the full list, I guess, and save a few
|
|
/// virtual calls.
|
|
///
|
|
/// This is not too common in practice though.
|
|
fn query(&self, _font_name: &Atom) -> FontMetricsQueryResult {
|
|
FontMetricsQueryResult::NotAvailable
|
|
}
|
|
}
|