| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VIEWS_LAYOUT_BOX_LAYOUT_H_ | 5 #ifndef VIEWS_LAYOUT_BOX_LAYOUT_H_ |
| 6 #define VIEWS_LAYOUT_BOX_LAYOUT_H_ | 6 #define VIEWS_LAYOUT_BOX_LAYOUT_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "ui/views/layout/box_layout.h" |
| 10 #include "base/compiler_specific.h" | 10 // TODO(tfarina): remove this file once all includes have been updated. |
| 11 #include "views/layout/layout_manager.h" | |
| 12 | 11 |
| 13 namespace gfx { | 12 #endif // VIEWS_LAYOUT_BOX_LAYOUT_H_ |
| 14 class Size; | |
| 15 } | |
| 16 | |
| 17 namespace views { | |
| 18 | |
| 19 class View; | |
| 20 | |
| 21 // A Layout manager that arranges child views vertically or horizontally in a | |
| 22 // side-by-side fashion with spacing around and between the child views. The | |
| 23 // child views are always sized according to their preferred size. If the | |
| 24 // host's bounds provide insufficient space, child views will be clamped. | |
| 25 // Excess space will not be distributed. | |
| 26 class VIEWS_EXPORT BoxLayout : public LayoutManager { | |
| 27 public: | |
| 28 enum Orientation { | |
| 29 kHorizontal, | |
| 30 kVertical, | |
| 31 }; | |
| 32 | |
| 33 // Use |inside_border_horizontal_spacing| and | |
| 34 // |inside_border_vertical_spacing| to add additional space between the child | |
| 35 // view area and the host view border. |between_child_spacing| controls the | |
| 36 // space in between child views. | |
| 37 BoxLayout(Orientation orientation, | |
| 38 int inside_border_horizontal_spacing, | |
| 39 int inside_border_vertical_spacing, | |
| 40 int between_child_spacing); | |
| 41 virtual ~BoxLayout(); | |
| 42 | |
| 43 // Overridden from views::LayoutManager: | |
| 44 virtual void Layout(View* host) OVERRIDE; | |
| 45 virtual gfx::Size GetPreferredSize(View* host) OVERRIDE; | |
| 46 | |
| 47 private: | |
| 48 const Orientation orientation_; | |
| 49 | |
| 50 // Spacing between child views and host view border. | |
| 51 const int inside_border_horizontal_spacing_; | |
| 52 const int inside_border_vertical_spacing_; | |
| 53 | |
| 54 // Spacing to put in between child views. | |
| 55 const int between_child_spacing_; | |
| 56 | |
| 57 DISALLOW_IMPLICIT_CONSTRUCTORS(BoxLayout); | |
| 58 }; | |
| 59 | |
| 60 } // namespace views | |
| 61 | |
| 62 #endif // VIEWS_LAYOUT_BOX_LAYOUT_H_ | |
| OLD | NEW |