• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FrameViewAutoSizeInfo_h
6 #define FrameViewAutoSizeInfo_h
7 
8 #include "platform/geometry/IntSize.h"
9 #include "wtf/FastAllocBase.h"
10 #include "wtf/Noncopyable.h"
11 #include "wtf/RefPtr.h"
12 
13 namespace blink {
14 
15 class FrameView;
16 
17 class FrameViewAutoSizeInfo {
18     WTF_MAKE_NONCOPYABLE(FrameViewAutoSizeInfo);
19     WTF_MAKE_FAST_ALLOCATED;
20 
21 public:
22     FrameViewAutoSizeInfo(FrameView*);
23     ~FrameViewAutoSizeInfo();
24     void configureAutoSizeMode(const IntSize& minSize, const IntSize& maxSize);
25     void autoSizeIfNeeded();
26 
27 private:
28     void removeAutoSizeMode();
29 
30     RefPtr<FrameView> m_frameView;
31 
32     bool m_inAutoSize;
33     // True if autosize has been run since m_shouldAutoSize was set.
34     bool m_didRunAutosize;
35     // The lower bound on the size when autosizing.
36     IntSize m_minAutoSize;
37     // The upper bound on the size when autosizing.
38     IntSize m_maxAutoSize;
39 };
40 
41 } // namespace blink
42 
43 #endif // FrameViewAutoSizeInfo_h
44