diff options
Diffstat (limited to 'views/examples/box_layout.h')
-rw-r--r-- | views/examples/box_layout.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/views/examples/box_layout.h b/views/examples/box_layout.h new file mode 100644 index 0000000..2e802aa --- /dev/null +++ b/views/examples/box_layout.h @@ -0,0 +1,40 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef VIEWS_EXAMPLES_BOX_LAYOUT_H_ +#define VIEWS_EXAMPLES_BOX_LAYOUT_H_ + +#include "views/layout_manager.h" + +namespace examples { + +// A layout manager that layouts child views vertically or horizontally. +class BoxLayout : public views::LayoutManager { + public: + enum Orientation { + kHorizontal, + kVertical, + }; + + BoxLayout(Orientation orientation, int margin); + + virtual ~BoxLayout() {} + + // Overridden from views::LayoutManager: + virtual void Layout(views::View* host); + + virtual gfx::Size GetPreferredSize(views::View* host); + + private: + const Orientation orientation_; + + // The pixel distance between children. + const int margin_; + + DISALLOW_COPY_AND_ASSIGN(BoxLayout); +}; + +} // namespace examples + +#endif // VIEWS_EXAMPLES_BOX_LAYOUT_H_ |