2018-09-13 23:04:55 +03:00
|
|
|
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
2017-11-16 00:20:35 +03:00
|
|
|
/* 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/.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
|
|
* These objects support visualization of flex containers by the
|
|
|
|
* dev tools.
|
|
|
|
*/
|
|
|
|
|
2018-10-17 23:22:46 +03:00
|
|
|
/**
|
|
|
|
* A flex container's main and cross axes are either horizontal or
|
|
|
|
* vertical, each with two possible directions.
|
|
|
|
*/
|
|
|
|
enum FlexPhysicalDirection {
|
|
|
|
"horizontal-lr",
|
|
|
|
"horizontal-rl",
|
|
|
|
"vertical-tb",
|
|
|
|
"vertical-bt",
|
|
|
|
};
|
|
|
|
|
2017-11-16 00:20:35 +03:00
|
|
|
[ChromeOnly]
|
|
|
|
interface Flex
|
|
|
|
{
|
2018-10-17 23:22:26 +03:00
|
|
|
sequence<FlexLineValues> getLines();
|
2018-10-17 23:22:46 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* The physical direction in which successive flex items are placed,
|
|
|
|
* within a flex line in this flex container.
|
|
|
|
*/
|
|
|
|
readonly attribute FlexPhysicalDirection mainAxisDirection;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The physical direction in which successive flex lines are placed
|
|
|
|
* in this flex container (if it is or were multi-line).
|
|
|
|
*/
|
|
|
|
readonly attribute FlexPhysicalDirection crossAxisDirection;
|
2017-11-16 00:20:35 +03:00
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
2018-10-23 19:23:37 +03:00
|
|
|
* This indicates which flex factor (flex-grow vs. flex-shrink) the
|
|
|
|
* flex layout algorithm uses internally when resolving flexible sizes
|
|
|
|
* in a given flex line, per flexbox spec section 9.7 step 1. Note that
|
|
|
|
* this value doesn't necessarily mean that any items on this line
|
|
|
|
* are *actually* growing (or shrinking). This simply indicates what
|
|
|
|
* the layout algorithm "wants" to do, based on the free space --
|
|
|
|
* and items will stretch from their flex base size in the corresponding
|
|
|
|
* direction, if permitted by their min/max constraints and their
|
|
|
|
* corresponding flex factor.
|
2017-11-16 00:20:35 +03:00
|
|
|
*/
|
2018-10-23 19:23:37 +03:00
|
|
|
enum FlexLineGrowthState { "shrinking", "growing" };
|
2017-11-16 00:20:35 +03:00
|
|
|
|
|
|
|
[ChromeOnly]
|
2018-10-17 23:22:26 +03:00
|
|
|
interface FlexLineValues
|
2017-11-16 00:20:35 +03:00
|
|
|
{
|
|
|
|
readonly attribute FlexLineGrowthState growthState;
|
2017-12-02 00:07:45 +03:00
|
|
|
readonly attribute double crossStart;
|
2017-11-16 00:20:35 +03:00
|
|
|
readonly attribute double crossSize;
|
|
|
|
|
|
|
|
// firstBaselineOffset measures from flex-start edge.
|
|
|
|
readonly attribute double firstBaselineOffset;
|
|
|
|
|
|
|
|
// lastBaselineOffset measures from flex-end edge.
|
|
|
|
readonly attribute double lastBaselineOffset;
|
|
|
|
|
|
|
|
/**
|
2018-10-17 23:22:26 +03:00
|
|
|
* getItems() returns FlexItemValues only for the Elements in
|
|
|
|
* this Flex container -- ignoring struts and abs-pos Elements.
|
2017-11-16 00:20:35 +03:00
|
|
|
*/
|
2018-10-17 23:22:26 +03:00
|
|
|
sequence<FlexItemValues> getItems();
|
2017-11-16 00:20:35 +03:00
|
|
|
};
|
|
|
|
|
2018-10-25 02:46:16 +03:00
|
|
|
/**
|
|
|
|
* Item main sizes have either been unclamped, clamped to the minimum,
|
|
|
|
* or clamped to the maximum.
|
|
|
|
*/
|
|
|
|
enum FlexItemClampState {
|
|
|
|
"unclamped", "clamped_to_min", "clamped_to_max"
|
|
|
|
};
|
|
|
|
|
2017-11-16 00:20:35 +03:00
|
|
|
[ChromeOnly]
|
2018-10-17 23:22:26 +03:00
|
|
|
interface FlexItemValues
|
2017-11-16 00:20:35 +03:00
|
|
|
{
|
|
|
|
readonly attribute Node? node;
|
2018-11-17 03:56:51 +03:00
|
|
|
readonly attribute DOMRectReadOnly frameRect;
|
2017-11-16 00:20:35 +03:00
|
|
|
readonly attribute double mainBaseSize;
|
|
|
|
readonly attribute double mainDeltaSize;
|
|
|
|
readonly attribute double mainMinSize;
|
|
|
|
readonly attribute double mainMaxSize;
|
|
|
|
readonly attribute double crossMinSize;
|
|
|
|
readonly attribute double crossMaxSize;
|
2018-10-25 02:46:16 +03:00
|
|
|
readonly attribute FlexItemClampState clampState;
|
2017-11-16 00:20:35 +03:00
|
|
|
};
|