slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
GridTrack.h
浏览该文件的文档.
1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#pragma once
9
11#include <vector>
12
13namespace facebook::yoga {
14// https://www.w3.org/TR/css-grid-1/#typedef-track-size
18
19 // These are used in the grid layout algorithm when distributing spaces among
20 // tracks
21 // TODO: maybe move them to TrackSizing since these are track states
22 float baseSize = 0.0f;
23 float growthLimit = 0.0f;
24 bool infinitelyGrowable = false;
25
26 // Static factory methods for common cases
27 constexpr static GridTrackSize auto_() {
28 return GridTrackSize{
30 .maxSizingFunction = StyleSizeLength::ofAuto()};
31 }
32
33 constexpr static GridTrackSize length(float points) {
34 auto len = StyleSizeLength::points(points);
35 return GridTrackSize{.minSizingFunction = len, .maxSizingFunction = len};
36 }
37
38 constexpr static GridTrackSize fr(float fraction) {
39 // Flex sizing function is always a max sizing function
40 return GridTrackSize{
42 .maxSizingFunction = StyleSizeLength::stretch(fraction)};
43 }
44
45 constexpr static GridTrackSize percent(float percentage) {
46 return GridTrackSize{
48 .maxSizingFunction = StyleSizeLength::percent(percentage)};
49 }
50
51 constexpr static GridTrackSize minmax(
53 StyleSizeLength max) {
54 return GridTrackSize{.minSizingFunction = min, .maxSizingFunction = max};
55 }
56
57 bool operator==(const GridTrackSize& other) const = default;
58};
59
60// Grid track list for grid-template-rows/columns properties
61using GridTrackList = std::vector<GridTrackSize>;
62
63} // namespace facebook::yoga
Definition StyleSizeLength.h:29
static constexpr StyleSizeLength points(float value)
Definition StyleSizeLength.h:33
static constexpr StyleSizeLength percent(float value)
Definition StyleSizeLength.h:39
static constexpr StyleSizeLength stretch(float fraction)
Definition StyleSizeLength.h:45
static constexpr StyleSizeLength ofAuto()
Definition StyleSizeLength.h:51
Definition Benchmark.cpp:19
std::vector< GridTrackSize > GridTrackList
Definition GridTrack.h:61
Definition GridTrack.h:15
static constexpr GridTrackSize fr(float fraction)
Definition GridTrack.h:38
bool operator==(const GridTrackSize &other) const =default
bool infinitelyGrowable
Definition GridTrack.h:24
StyleSizeLength minSizingFunction
Definition GridTrack.h:16
StyleSizeLength maxSizingFunction
Definition GridTrack.h:17
float growthLimit
Definition GridTrack.h:23
static constexpr GridTrackSize auto_()
Definition GridTrack.h:27
static constexpr GridTrackSize minmax(StyleSizeLength min, StyleSizeLength max)
Definition GridTrack.h:51
static constexpr GridTrackSize length(float points)
Definition GridTrack.h:33
static constexpr GridTrackSize percent(float percentage)
Definition GridTrack.h:45
float baseSize
Definition GridTrack.h:22