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