- add sources.
[platform/framework/web/crosswalk.git] / src / ui / views / examples / double_split_view_example.cc
1 // Copyright (c) 2012 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 #include "ui/views/examples/double_split_view_example.h"
6
7 #include "ui/views/controls/single_split_view.h"
8 #include "ui/views/layout/grid_layout.h"
9
10 namespace views {
11 namespace examples {
12
13 namespace {
14
15 // DoubleSplitViews's content, which draws gradient color on background.
16 class SplittedView : public View {
17  public:
18   SplittedView();
19   virtual ~SplittedView();
20
21   void SetColor(SkColor from, SkColor to);
22
23   // Overridden from View.
24   virtual gfx::Size GetMinimumSize() OVERRIDE;
25
26  private:
27   DISALLOW_COPY_AND_ASSIGN(SplittedView);
28 };
29
30 SplittedView::SplittedView() {
31   SetColor(SK_ColorRED, SK_ColorGREEN);
32 }
33
34 SplittedView::~SplittedView() {
35 }
36
37 void SplittedView::SetColor(SkColor from, SkColor to) {
38   set_background(Background::CreateVerticalGradientBackground(from, to));
39 }
40
41 gfx::Size SplittedView::GetMinimumSize() {
42   return gfx::Size(10, 10);
43 }
44
45 }  // namespace
46
47 DoubleSplitViewExample::DoubleSplitViewExample()
48     : ExampleBase("Double Split View") {
49 }
50
51 DoubleSplitViewExample::~DoubleSplitViewExample() {
52 }
53
54 void DoubleSplitViewExample::CreateExampleView(View* container) {
55   SplittedView* splitted_view_1 = new SplittedView();
56   SplittedView* splitted_view_2 = new SplittedView();
57   SplittedView* splitted_view_3 = new SplittedView();
58
59   inner_single_split_view_ = new SingleSplitView(
60       splitted_view_1, splitted_view_2,
61       SingleSplitView::HORIZONTAL_SPLIT,
62       NULL);
63
64   outer_single_split_view_ = new SingleSplitView(
65       inner_single_split_view_, splitted_view_3,
66       SingleSplitView::HORIZONTAL_SPLIT,
67       NULL);
68
69   GridLayout* layout = new GridLayout(container);
70   container->SetLayoutManager(layout);
71
72   // Add scroll view.
73   ColumnSet* column_set = layout->AddColumnSet(0);
74   column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1,
75                         GridLayout::USE_PREF, 0, 0);
76   layout->StartRow(1, 0);
77   layout->AddView(outer_single_split_view_);
78 }
79
80 }  // namespace examples
81 }  // namespace views