mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-08 00:38:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
127
layout/xul/grid/nsGridCell.cpp
Normal file
127
layout/xul/grid/nsGridCell.cpp
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
/* -*- Mode: C++; 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/. */
|
||||
|
||||
//
|
||||
// Eric Vaughan
|
||||
// Netscape Communications
|
||||
//
|
||||
// See documentation in associated header file
|
||||
//
|
||||
|
||||
#include "nsGridCell.h"
|
||||
#include "nsFrame.h"
|
||||
#include "nsBox.h"
|
||||
#include "nsGridLayout2.h"
|
||||
|
||||
|
||||
nsGridCell::nsGridCell():mBoxInColumn(nullptr),mBoxInRow(nullptr)
|
||||
{
|
||||
MOZ_COUNT_CTOR(nsGridCell);
|
||||
}
|
||||
|
||||
nsGridCell::~nsGridCell()
|
||||
{
|
||||
MOZ_COUNT_DTOR(nsGridCell);
|
||||
}
|
||||
|
||||
nsSize
|
||||
nsGridCell::GetXULPrefSize(nsBoxLayoutState& aState)
|
||||
{
|
||||
nsSize sum(0,0);
|
||||
|
||||
// take our 2 children and add them up.
|
||||
// we are as wide as the widest child plus its left offset
|
||||
// we are tall as the tallest child plus its top offset
|
||||
|
||||
if (mBoxInColumn) {
|
||||
nsSize pref = mBoxInColumn->GetXULPrefSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInColumn, pref);
|
||||
nsGridLayout2::AddOffset(mBoxInColumn, pref);
|
||||
|
||||
nsBoxLayout::AddLargestSize(sum, pref);
|
||||
}
|
||||
|
||||
if (mBoxInRow) {
|
||||
nsSize pref = mBoxInRow->GetXULPrefSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInRow, pref);
|
||||
nsGridLayout2::AddOffset(mBoxInRow, pref);
|
||||
|
||||
nsBoxLayout::AddLargestSize(sum, pref);
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
nsSize
|
||||
nsGridCell::GetXULMinSize(nsBoxLayoutState& aState)
|
||||
{
|
||||
nsSize sum(0, 0);
|
||||
|
||||
// take our 2 children and add them up.
|
||||
// we are as wide as the widest child plus its left offset
|
||||
// we are tall as the tallest child plus its top offset
|
||||
|
||||
if (mBoxInColumn) {
|
||||
nsSize min = mBoxInColumn->GetXULMinSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInColumn, min);
|
||||
nsGridLayout2::AddOffset(mBoxInColumn, min);
|
||||
|
||||
nsBoxLayout::AddLargestSize(sum, min);
|
||||
}
|
||||
|
||||
if (mBoxInRow) {
|
||||
nsSize min = mBoxInRow->GetXULMinSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInRow, min);
|
||||
nsGridLayout2::AddOffset(mBoxInRow, min);
|
||||
|
||||
nsBoxLayout::AddLargestSize(sum, min);
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
nsSize
|
||||
nsGridCell::GetXULMaxSize(nsBoxLayoutState& aState)
|
||||
{
|
||||
nsSize sum(NS_INTRINSICSIZE, NS_INTRINSICSIZE);
|
||||
|
||||
// take our 2 children and add them up.
|
||||
// we are as wide as the smallest child plus its left offset
|
||||
// we are tall as the shortest child plus its top offset
|
||||
|
||||
if (mBoxInColumn) {
|
||||
nsSize max = mBoxInColumn->GetXULMaxSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInColumn, max);
|
||||
nsGridLayout2::AddOffset(mBoxInColumn, max);
|
||||
|
||||
nsBoxLayout::AddSmallestSize(sum, max);
|
||||
}
|
||||
|
||||
if (mBoxInRow) {
|
||||
nsSize max = mBoxInRow->GetXULMaxSize(aState);
|
||||
|
||||
nsBox::AddMargin(mBoxInRow, max);
|
||||
nsGridLayout2::AddOffset(mBoxInRow, max);
|
||||
|
||||
nsBoxLayout::AddSmallestSize(sum, max);
|
||||
}
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
nsGridCell::IsXULCollapsed()
|
||||
{
|
||||
return ((mBoxInColumn && mBoxInColumn->IsXULCollapsed()) ||
|
||||
(mBoxInRow && mBoxInRow->IsXULCollapsed()));
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue