Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: views/examples/single_split_view_example.h

Issue 5606012: Streamline the layout of the BrowserView's children TabContents views.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_ 5 #ifndef VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_
6 #define VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_ 6 #define VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_
7 #pragma once 7 #pragma once
8 8
9 #include "views/controls/single_split_view.h" 9 #include "views/controls/single_split_view.h"
10 #include "views/examples/example_base.h" 10 #include "views/examples/example_base.h"
11 11
12 namespace examples { 12 namespace examples {
13 13
14 class SingleSplitViewExample : public ExampleBase { 14 class SingleSplitViewExample : public ExampleBase,
15 public views::SingleSplitView::Delegate {
15 public: 16 public:
17 class SplitViewResizingGridLayout : public views::GridLayout {
18 public:
19 SplitViewResizingGridLayout(views::View* host,
20 views::SingleSplitView* single_split_view)
21 : views::GridLayout(host),
22 single_split_view_(single_split_view) {
23 }
24 // views::GridLayout overrides.
25 virtual void Layout(views::View* host) {
26 views::GridLayout::Layout(host);
27 single_split_view_->ResizeViews();
28 }
29 private:
30 views::SingleSplitView* single_split_view_;
31 };
32
16 explicit SingleSplitViewExample(ExamplesMain* main) 33 explicit SingleSplitViewExample(ExamplesMain* main)
17 : ExampleBase(main) { 34 : ExampleBase(main) {
18 } 35 }
19 36
20 virtual ~SingleSplitViewExample() {} 37 virtual ~SingleSplitViewExample() {}
21 38
22 virtual std::wstring GetExampleTitle() { 39 virtual std::wstring GetExampleTitle() {
23 return L"Single Split View"; 40 return L"Single Split View";
24 } 41 }
25 42
26 virtual void CreateExampleView(views::View* container) { 43 virtual void CreateExampleView(views::View* container) {
27 SplittedView* splitted_view_1 = new SplittedView(); 44 SplittedView* splitted_view_1 = new SplittedView();
28 SplittedView* splitted_view_2 = new SplittedView(); 45 SplittedView* splitted_view_2 = new SplittedView();
29 46
30 single_split_view_ = new views::SingleSplitView( 47 single_split_view_ = new views::SingleSplitView(
31 splitted_view_1, splitted_view_2, 48 splitted_view_1, splitted_view_2,
32 views::SingleSplitView::HORIZONTAL_SPLIT); 49 views::SingleSplitView::HORIZONTAL_SPLIT,
50 this);
33 51
34 splitted_view_1->SetColor(SK_ColorYELLOW, SK_ColorCYAN); 52 splitted_view_1->SetColor(SK_ColorYELLOW, SK_ColorCYAN);
35 53
36 views::GridLayout* layout = new views::GridLayout(container); 54 views::GridLayout* layout =
55 new SplitViewResizingGridLayout(container, single_split_view_);
37 container->SetLayoutManager(layout); 56 container->SetLayoutManager(layout);
38 57
39 // Add scroll view. 58 // Add scroll view.
40 views::ColumnSet* column_set = layout->AddColumnSet(0); 59 views::ColumnSet* column_set = layout->AddColumnSet(0);
41 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1, 60 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
42 views::GridLayout::USE_PREF, 0, 0); 61 views::GridLayout::USE_PREF, 0, 0);
43 layout->StartRow(1, 0); 62 layout->StartRow(1, 0);
44 layout->AddView(single_split_view_); 63 layout->AddView(single_split_view_);
45 } 64 }
46 65
66 // views::SingleSplitView::Delegate overrides.
67 virtual void SplitHandleMoved(views::SingleSplitView* source) {
68 GetExampleView()->Layout();
69 }
70
47 private: 71 private:
48 // SingleSplitView's content, which draws gradient color on background. 72 // SingleSplitView's content, which draws gradient color on background.
49 class SplittedView : public views::View { 73 class SplittedView : public views::View {
50 public: 74 public:
51 SplittedView() { 75 SplittedView() {
52 SetColor(SK_ColorRED, SK_ColorGREEN); 76 SetColor(SK_ColorRED, SK_ColorGREEN);
53 } 77 }
54 78
55 virtual gfx::Size GetPreferredSize() { 79 virtual gfx::Size GetPreferredSize() {
56 return gfx::Size(width(), height()); 80 return gfx::Size(width(), height());
(...skipping 18 matching lines...) Expand all
75 99
76 // The SinleSplitView to test. 100 // The SinleSplitView to test.
77 views::SingleSplitView* single_split_view_; 101 views::SingleSplitView* single_split_view_;
78 102
79 DISALLOW_COPY_AND_ASSIGN(SingleSplitViewExample); 103 DISALLOW_COPY_AND_ASSIGN(SingleSplitViewExample);
80 }; 104 };
81 105
82 } // namespace examples 106 } // namespace examples
83 107
84 #endif // VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_ 108 #endif // VIEWS_EXAMPLES_SINGLE_SPLIT_VIEW_EXAMPLE_H_
OLDNEW
« views/controls/single_split_view.cc ('K') | « views/controls/single_split_view.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698