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
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Lines with items that have been shrunk are shrinking; with items
|
|
|
|
* that have grown are growing, and all others are unchanged.
|
|
|
|
*/
|
|
|
|
enum FlexLineGrowthState { "unchanged", "shrinking", "growing" };
|
|
|
|
|
|
|
|
[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
|
|
|
};
|
|
|
|
|
|
|
|
[ChromeOnly]
|
2018-10-17 23:22:26 +03:00
|
|
|
interface FlexItemValues
|
2017-11-16 00:20:35 +03:00
|
|
|
{
|
|
|
|
readonly attribute Node? node;
|
|
|
|
readonly attribute double mainBaseSize;
|
|
|
|
readonly attribute double mainDeltaSize;
|
|
|
|
readonly attribute double mainMinSize;
|
|
|
|
readonly attribute double mainMaxSize;
|
|
|
|
readonly attribute double crossMinSize;
|
|
|
|
readonly attribute double crossMaxSize;
|
|
|
|
};
|