summaryrefslogtreecommitdiffstats
path: root/layout/generic/FrameChildList.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'layout/generic/FrameChildList.cpp')
-rw-r--r--layout/generic/FrameChildList.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/layout/generic/FrameChildList.cpp b/layout/generic/FrameChildList.cpp
new file mode 100644
index 000000000..1d2fe25c0
--- /dev/null
+++ b/layout/generic/FrameChildList.cpp
@@ -0,0 +1,59 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim: set shiftwidth=2 tabstop=8 autoindent cindent expandtab: */
+/* 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/. */
+
+#include "mozilla/layout/FrameChildList.h"
+
+#include "nsIFrame.h"
+
+namespace mozilla {
+namespace layout {
+
+FrameChildListIterator::FrameChildListIterator(const nsIFrame* aFrame)
+ : FrameChildListArrayIterator(mLists)
+{
+ aFrame->GetChildLists(&mLists);
+#ifdef DEBUG
+ // Make sure that there are no duplicate list IDs.
+ FrameChildListIDs ids;
+ uint32_t count = mLists.Length();
+ for (uint32_t i = 0; i < count; ++i) {
+ NS_ASSERTION(!ids.Contains(mLists[i].mID),
+ "Duplicate item found!");
+ ids |= mLists[i].mID;
+ }
+#endif
+}
+
+#ifdef DEBUG_FRAME_DUMP
+const char*
+ChildListName(FrameChildListID aListID)
+{
+ switch (aListID) {
+ case kPrincipalList: return "";
+ case kPopupList: return "PopupList";
+ case kCaptionList: return "CaptionList";
+ case kColGroupList: return "ColGroupList";
+ case kSelectPopupList: return "SelectPopupList";
+ case kAbsoluteList: return "AbsoluteList";
+ case kFixedList: return "FixedList";
+ case kOverflowList: return "OverflowList";
+ case kOverflowContainersList: return "OverflowContainersList";
+ case kExcessOverflowContainersList: return "ExcessOverflowContainersList";
+ case kOverflowOutOfFlowList: return "OverflowOutOfFlowList";
+ case kFloatList: return "FloatList";
+ case kBulletList: return "BulletList";
+ case kPushedFloatsList: return "PushedFloatsList";
+ case kBackdropList: return "BackdropList";
+ case kNoReflowPrincipalList: return "NoReflowPrincipalList";
+ }
+
+ NS_NOTREACHED("unknown list");
+ return "UNKNOWN_FRAME_CHILD_LIST";
+}
+#endif
+
+} // namespace layout
+} // namespace mozilla