15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2011 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/examples/single_split_view_example.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)#include "ui/views/background.h" 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/controls/single_split_view.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/layout/grid_layout.h" 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace examples { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace { 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// SingleSplitView's content, which draws gradient color on background. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SplittedView : public View { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public: 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SplittedView(); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual ~SplittedView(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void SetColor(SkColor from, SkColor to); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private: 245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) // View: 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Size GetPreferredSize() const OVERRIDE; 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) virtual gfx::Size GetMinimumSize() const OVERRIDE; 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) virtual void Layout() OVERRIDE; 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SplittedView); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SplittedView::SplittedView() { 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SetColor(SK_ColorRED, SK_ColorGREEN); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SplittedView::~SplittedView() { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SplittedView::SetColor(SkColor from, SkColor to) { 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set_background(Background::CreateVerticalGradientBackground(from, to)); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)gfx::Size SplittedView::GetPreferredSize() const { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return gfx::Size(width(), height()); 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)gfx::Size SplittedView::GetMinimumSize() const { 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return gfx::Size(10, 10); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SplittedView::Layout() { 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SizeToPreferredSize(); 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SingleSplitViewExample::SingleSplitViewExample() 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : ExampleBase("Single Split View") { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SingleSplitViewExample::~SingleSplitViewExample() { 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SingleSplitViewExample::CreateExampleView(View* container) { 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SplittedView* splitted_view_1 = new SplittedView; 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SplittedView* splitted_view_2 = new SplittedView; 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) splitted_view_1->SetColor(SK_ColorYELLOW, SK_ColorCYAN); 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) single_split_view_ = new SingleSplitView( 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) splitted_view_1, splitted_view_2, 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SingleSplitView::HORIZONTAL_SPLIT, 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this); 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GridLayout* layout = new GridLayout(container); 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) container->SetLayoutManager(layout); 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ColumnSet* column_set = layout->AddColumnSet(0); 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) column_set->AddColumn(GridLayout::FILL, GridLayout::FILL, 1, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) GridLayout::USE_PREF, 0, 0); 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) layout->StartRow(1, 0); 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) layout->AddView(single_split_view_); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool SingleSplitViewExample::SplitHandleMoved(SingleSplitView* sender) { 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PrintStatus("Splitter moved"); 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return true; 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace examples 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace views 92