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/background.h"
8 #include "ui/views/controls/single_split_view.h"
9 #include "ui/views/layout/grid_layout.h"
15 // SingleSplitView's content, which draws gradient color on background.
16 class SplittedView
: public View
{
19 ~SplittedView() override
;
21 void SetColor(SkColor from
, SkColor to
);
25 gfx::Size
GetPreferredSize() const override
;
26 gfx::Size
GetMinimumSize() const override
;
27 void Layout() override
;
29 DISALLOW_COPY_AND_ASSIGN(SplittedView
);
32 SplittedView::SplittedView() {
33 SetColor(SK_ColorRED
, SK_ColorGREEN
);
36 SplittedView::~SplittedView() {
39 void SplittedView::SetColor(SkColor from
, SkColor to
) {
40 set_background(Background::CreateVerticalGradientBackground(from
, to
));
43 gfx::Size
SplittedView::GetPreferredSize() const {
44 return gfx::Size(width(), height());
47 gfx::Size
SplittedView::GetMinimumSize() const {
48 return gfx::Size(10, 10);
51 void SplittedView::Layout() {
52 SizeToPreferredSize();
57 SingleSplitViewExample::SingleSplitViewExample()
58 : ExampleBase("Single Split View") {
61 SingleSplitViewExample::~SingleSplitViewExample() {
64 void SingleSplitViewExample::CreateExampleView(View
* container
) {
65 SplittedView
* splitted_view_1
= new SplittedView
;
66 SplittedView
* splitted_view_2
= new SplittedView
;
68 splitted_view_1
->SetColor(SK_ColorYELLOW
, SK_ColorCYAN
);
70 single_split_view_
= new SingleSplitView(
71 splitted_view_1
, splitted_view_2
,
72 SingleSplitView::HORIZONTAL_SPLIT
,
75 GridLayout
* layout
= new GridLayout(container
);
76 container
->SetLayoutManager(layout
);
78 ColumnSet
* column_set
= layout
->AddColumnSet(0);
79 column_set
->AddColumn(GridLayout::FILL
, GridLayout::FILL
, 1,
80 GridLayout::USE_PREF
, 0, 0);
81 layout
->StartRow(1, 0);
82 layout
->AddView(single_split_view_
);
85 bool SingleSplitViewExample::SplitHandleMoved(SingleSplitView
* sender
) {
86 PrintStatus("Splitter moved");
90 } // namespace examples