michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #include "mozilla/layout/FrameChildList.h" michael@0: michael@0: #include "nsIFrame.h" michael@0: michael@0: namespace mozilla { michael@0: namespace layout { michael@0: michael@0: FrameChildListIterator::FrameChildListIterator(const nsIFrame* aFrame) michael@0: : FrameChildListArrayIterator(mLists) michael@0: { michael@0: aFrame->GetChildLists(&mLists); michael@0: #ifdef DEBUG michael@0: // Make sure that there are no duplicate list IDs. michael@0: FrameChildListIDs ids; michael@0: uint32_t count = mLists.Length(); michael@0: for (uint32_t i = 0; i < count; ++i) { michael@0: NS_ASSERTION(!ids.Contains(mLists[i].mID), michael@0: "Duplicate item found!"); michael@0: ids |= mLists[i].mID; michael@0: } michael@0: #endif michael@0: } michael@0: michael@0: #ifdef DEBUG_FRAME_DUMP michael@0: const char* michael@0: ChildListName(FrameChildListID aListID) michael@0: { michael@0: switch (aListID) { michael@0: case kPrincipalList: return ""; michael@0: case kPopupList: return "PopupList"; michael@0: case kCaptionList: return "CaptionList"; michael@0: case kColGroupList: return "ColGroupList"; michael@0: case kSelectPopupList: return "SelectPopupList"; michael@0: case kAbsoluteList: return "AbsoluteList"; michael@0: case kFixedList: return "FixedList"; michael@0: case kOverflowList: return "OverflowList"; michael@0: case kOverflowContainersList: return "OverflowContainersList"; michael@0: case kExcessOverflowContainersList: return "ExcessOverflowContainersList"; michael@0: case kOverflowOutOfFlowList: return "OverflowOutOfFlowList"; michael@0: case kFloatList: return "FloatList"; michael@0: case kBulletList: return "BulletList"; michael@0: case kPushedFloatsList: return "PushedFloatsList"; michael@0: case kNoReflowPrincipalList: return "NoReflowPrincipalList"; michael@0: } michael@0: michael@0: NS_NOTREACHED("unknown list"); michael@0: return "UNKNOWN_FRAME_CHILD_LIST"; michael@0: } michael@0: #endif michael@0: michael@0: } // namespace layout michael@0: } // namespace mozilla