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
3 // found in the LICENSE file.
5 #include "ui/views/examples/single_split_view_example.h"
7 #include "ui/views/controls/single_split_view.h"
8 #include "ui/views/layout/grid_layout.h"
14 // SingleSplitView's content, which draws gradient color on background.
15 class SplittedView : public View {
18 virtual ~SplittedView();
20 void SetColor(SkColor from, SkColor to);
23 // Overridden from View:
24 virtual gfx::Size GetPreferredSize() OVERRIDE;
25 virtual gfx::Size GetMinimumSize() OVERRIDE;
26 virtual void Layout() OVERRIDE;
28 DISALLOW_COPY_AND_ASSIGN(SplittedView);
31 SplittedView::SplittedView() {
32 SetColor(SK_ColorRED, SK_ColorGREEN);
35 SplittedView::~SplittedView() {
38 void SplittedView::SetColor(SkColor from, SkColor to) {
39 set_background(Background::CreateVerticalGradientBackground(from, to));
42 gfx::Size SplittedView::GetPreferredSize() {
43 return gfx::Size(width(), height());
46 gfx::Size SplittedView::GetMinimumSize() {
47 return gfx::Size(10, 10);
50 void SplittedView::Layout() {
51 SizeToPreferredSize();
56 SingleSplitViewExample::SingleSplitViewExample()
57 : ExampleBase("Single Split View") {
60 SingleSplitViewExample::~SingleSplitViewExample() {
63 void SingleSplitViewExample::CreateExampleView(View* container) {
64 SplittedView* splitted_view_1 = new SplittedView;
65 SplittedView* splitted_view_2 = new SplittedView;
67 splitted_view_1->SetColor(SK_ColorYELLOW, SK_ColorCYAN);
69 single_split_view_ = new SingleSplitView(
70 splitted_view_1, splitted_view_2,
71 SingleSplitView::HORIZONTAL_SPLIT,
74 GridLayout* layout = new GridLayout(container);
75 container->SetLayoutManager(layout);
77 ColumnSet* column_set = layout->AddColumnSet(0);
78 column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
79 GridLayout::USE_PREF, 0, 0);
80 layout->StartRow(1, 0);
81 layout->AddView(single_split_view_);
84 bool SingleSplitViewExample::SplitHandleMoved(SingleSplitView* sender) {
85 PrintStatus("Splitter moved");
89 } // namespace examples