1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #ifndef nsIPercentBSizeObserver_h___
7 #define nsIPercentBSizeObserver_h___
8 
9 #include "nsQueryFrame.h"
10 
11 namespace mozilla {
12 struct ReflowInput;
13 } // namespace mozilla
14 
15 /**
16  * This interface is supported by frames that need to provide computed bsize
17  * values to children during reflow which would otherwise not happen. Currently
18  * only table cells support this.
19  */
20 class nsIPercentBSizeObserver
21 {
22 public:
23   NS_DECL_QUERYFRAME_TARGET(nsIPercentBSizeObserver)
24 
25   // Notify the observer that aReflowInput has no computed bsize,
26   // but it has a percent bsize
27   virtual void NotifyPercentBSize(const mozilla::ReflowInput& aReflowInput) = 0;
28 
29   // Ask the observer if it should observe aReflowInput.frame
30   virtual bool NeedsToObserve(const mozilla::ReflowInput& aReflowInput) = 0;
31 };
32 
33 #endif // nsIPercentBSizeObserver_h___
34