Line data Source code
1 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 : * vim:cindent:ts=2:et:sw=2:
3 : *
4 : * This Source Code Form is subject to the terms of the Mozilla Public
5 : * License, v. 2.0. If a copy of the MPL was not distributed with this
6 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 : *
8 : * This Original Code has been modified by IBM Corporation. Modifications made
9 : * by IBM described herein are Copyright (c) International Business Machines
10 : * Corporation, 2000. Modifications to Mozilla code or documentation identified
11 : * per MPL Section 3.3
12 : *
13 : * Date Modified by Description of modification
14 : * 04/20/2000 IBM Corp. OS/2 VisualAge build.
15 : */
16 :
17 : /* part of nsFrameManager, to work around header inclusionordering */
18 :
19 : #ifndef _nsFrameManagerBase_h_
20 : #define _nsFrameManagerBase_h_
21 :
22 : #include "nsDebug.h"
23 : #include "PLDHashTable.h"
24 : #include "mozilla/Attributes.h"
25 :
26 : class nsIFrame;
27 : class nsIPresShell;
28 :
29 : class nsFrameManagerBase
30 : {
31 : public:
32 : nsFrameManagerBase();
33 :
34 : bool IsDestroyingFrames() { return mIsDestroyingFrames; }
35 :
36 : /*
37 : * Gets and sets the root frame (typically the viewport). The lifetime of the
38 : * root frame is controlled by the frame manager. When the frame manager is
39 : * destroyed, it destroys the entire frame hierarchy.
40 : */
41 3821 : nsIFrame* GetRootFrame() const { return mRootFrame; }
42 24 : void SetRootFrame(nsIFrame* aRootFrame)
43 : {
44 24 : NS_ASSERTION(!mRootFrame, "already have a root frame");
45 24 : mRootFrame = aRootFrame;
46 24 : }
47 :
48 : protected:
49 : class UndisplayedMap;
50 :
51 : // weak link, because the pres shell owns us
52 : nsIPresShell* MOZ_NON_OWNING_REF mPresShell;
53 : nsIFrame* mRootFrame;
54 : UndisplayedMap* mUndisplayedMap;
55 : UndisplayedMap* mDisplayContentsMap;
56 : bool mIsDestroyingFrames; // The frame manager is destroying some frame(s).
57 : };
58 :
59 : #endif
|