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 82