• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 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 UI_VIEWS_TEST_TEST_VIEWS_H_
6 #define UI_VIEWS_TEST_TEST_VIEWS_H_
7 
8 #include "base/memory/scoped_ptr.h"
9 #include "ui/views/view.h"
10 
11 namespace views {
12 
13 // A view that requests a set amount of space.
14 class StaticSizedView : public View {
15  public:
16   explicit StaticSizedView(const gfx::Size& size);
17   virtual ~StaticSizedView();
18 
19   virtual gfx::Size GetPreferredSize() const OVERRIDE;
20 
21  private:
22   gfx::Size size_;
23 
24   DISALLOW_COPY_AND_ASSIGN(StaticSizedView);
25 };
26 
27 // A view that accomodates testing layouts that use GetHeightForWidth.
28 class ProportionallySizedView : public View {
29  public:
30   explicit ProportionallySizedView(int factor);
31   virtual ~ProportionallySizedView();
32 
set_preferred_width(int width)33   void set_preferred_width(int width) { preferred_width_ = width; }
34 
35   virtual int GetHeightForWidth(int w) const OVERRIDE;
36   virtual gfx::Size GetPreferredSize() const OVERRIDE;
37 
38  private:
39   // The multiplicative factor between width and height, i.e.
40   // height = width * factor_.
41   int factor_;
42 
43   // The width used as the preferred size. -1 if not used.
44   int preferred_width_;
45 
46   DISALLOW_COPY_AND_ASSIGN(ProportionallySizedView);
47 };
48 
49 }  // namespace views
50 
51 #endif  // UI_VIEWS_TEST_TEST_VIEWS_H_
52