blob: 58c713630bee89c786afda4e3807132cf14dc68a [file] [log] [blame]
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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.
*/
[ChromeOnly]
interface Flex
{
sequence<FlexLine> getLines();
};
/**
* 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]
interface FlexLine
{
readonly attribute FlexLineGrowthState growthState;
readonly attribute double crossStart;
readonly attribute double crossSize;
// firstBaselineOffset measures from flex-start edge.
readonly attribute double firstBaselineOffset;
// lastBaselineOffset measures from flex-end edge.
readonly attribute double lastBaselineOffset;
/**
* getItems() returns FlexItems only for the Elements in this Flex
* container -- ignoring struts and abs-pos Elements.
*/
sequence<FlexItem> getItems();
};
[ChromeOnly]
interface FlexItem
{
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;
};