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

Side by Side Diff: views/examples/examples_main.cc

Issue 8555013: views: Move examples/ directory to ui/views/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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
« no previous file with comments | « views/examples/examples_main.h ('k') | views/examples/link_example.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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.
4
5 #include "views/examples/examples_main.h"
6
7 #include "base/at_exit.h"
8 #include "base/command_line.h"
9 #include "base/i18n/icu_util.h"
10 #include "base/process_util.h"
11 #include "base/stl_util.h"
12 #include "base/utf_string_conversions.h"
13 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/base/ui_base_paths.h"
15 #include "views/controls/button/text_button.h"
16 #include "views/controls/label.h"
17 #include "views/controls/tabbed_pane/tabbed_pane.h"
18 #include "views/examples/bubble_example.h"
19 #include "views/examples/button_example.h"
20 #include "views/examples/combobox_example.h"
21 #include "views/examples/double_split_view_example.h"
22 #include "views/examples/link_example.h"
23 #include "views/examples/menu_example.h"
24 #include "views/examples/message_box_example.h"
25 #include "views/examples/native_theme_button_example.h"
26 #include "views/examples/native_theme_checkbox_example.h"
27 #include "views/examples/native_widget_views_example.h"
28 #include "views/examples/progress_bar_example.h"
29 #include "views/examples/radio_button_example.h"
30 #include "views/examples/scroll_view_example.h"
31 #include "views/examples/single_split_view_example.h"
32 #include "views/examples/tabbed_pane_example.h"
33 #include "views/examples/table2_example.h"
34 #include "views/examples/text_example.h"
35 #include "views/examples/textfield_example.h"
36 #include "views/examples/throbber_example.h"
37 #include "views/examples/widget_example.h"
38 #include "views/focus/accelerator_handler.h"
39 #include "views/layout/grid_layout.h"
40 #include "views/test/test_views_delegate.h"
41 #include "views/widget/widget.h"
42
43 #if defined(OS_WIN)
44 // TableView is not yet ported to Linux.
45 #include "views/examples/table_example.h"
46 #endif
47
48 namespace examples {
49
50 ExamplesMain::ExamplesMain()
51 : tabbed_pane_(NULL),
52 contents_(NULL),
53 status_label_(NULL) {
54 }
55
56 ExamplesMain::~ExamplesMain() {
57 STLDeleteElements(&examples_);
58 }
59
60 void ExamplesMain::Init() {
61 // Creates a window with the tabbed pane for each example,
62 // and a label to print messages from each example.
63 DCHECK(contents_ == NULL) << "Run called more than once.";
64 contents_ = new views::View();
65 contents_->set_background(views::Background::CreateStandardPanelBackground());
66 views::GridLayout* layout = new views::GridLayout(contents_);
67 contents_->SetLayoutManager(layout);
68
69 views::ColumnSet* column_set = layout->AddColumnSet(0);
70 column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, 1,
71 views::GridLayout::USE_PREF, 0, 0);
72
73 tabbed_pane_ = new views::TabbedPane();
74 status_label_ = new views::Label();
75
76 layout->StartRow(1, 0);
77 layout->AddView(tabbed_pane_);
78 layout->StartRow(0 /* no expand */, 0);
79 layout->AddView(status_label_);
80
81 // TODO(satorux): The window is getting wide. Eventually, we would have
82 // the second tabbed pane.
83 views::Widget* window =
84 views::Widget::CreateWindowWithBounds(this, gfx::Rect(0, 0, 850, 300));
85
86 // Keep these in alphabetical order!
87 examples_.push_back(new BubbleExample(this));
88 examples_.push_back(new ButtonExample(this));
89 examples_.push_back(new ComboboxExample(this));
90 examples_.push_back(new DoubleSplitViewExample(this));
91 examples_.push_back(new LinkExample(this));
92 examples_.push_back(new MenuExample(this));
93 examples_.push_back(new MessageBoxExample(this));
94 examples_.push_back(new NativeThemeButtonExample(this));
95 examples_.push_back(new NativeThemeCheckboxExample(this));
96 examples_.push_back(new NativeWidgetViewsExample(this));
97 examples_.push_back(new ProgressBarExample(this));
98 examples_.push_back(new RadioButtonExample(this));
99 examples_.push_back(new ScrollViewExample(this));
100 examples_.push_back(new SingleSplitViewExample(this));
101 examples_.push_back(new TabbedPaneExample(this));
102 #if defined(OS_WIN)
103 examples_.push_back(new TableExample(this));
104 #endif
105 examples_.push_back(new Table2Example(this));
106 examples_.push_back(new TextExample(this));
107 examples_.push_back(new TextfieldExample(this));
108 examples_.push_back(new ThrobberExample(this));
109 examples_.push_back(new WidgetExample(this));
110
111 for (std::vector<ExampleBase*>::const_iterator i(examples_.begin());
112 i != examples_.end(); ++i)
113 AddExample(*i);
114
115 window->Show();
116 }
117
118 void ExamplesMain::SetStatus(const std::string& status) {
119 status_label_->SetText(UTF8ToUTF16(status));
120 }
121
122 void ExamplesMain::AddExample(ExampleBase* example) {
123 tabbed_pane_->AddTab(UTF8ToUTF16(example->example_title()),
124 example->example_view());
125 }
126
127 bool ExamplesMain::CanResize() const {
128 return true;
129 }
130
131 bool ExamplesMain::CanMaximize() const {
132 return true;
133 }
134
135 string16 ExamplesMain::GetWindowTitle() const {
136 return ASCIIToUTF16("Views Examples");
137 }
138
139 views::View* ExamplesMain::GetContentsView() {
140 return contents_;
141 }
142
143 void ExamplesMain::WindowClosing() {
144 MessageLoopForUI::current()->Quit();
145 }
146
147 views::Widget* ExamplesMain::GetWidget() {
148 return contents_->GetWidget();
149 }
150
151 const views::Widget* ExamplesMain::GetWidget() const {
152 return contents_->GetWidget();
153 }
154
155 } // namespace examples
156
157 int main(int argc, char** argv) {
158 #if defined(OS_WIN)
159 OleInitialize(NULL);
160 #elif defined(OS_LINUX)
161 // Initializes gtk stuff.
162 g_type_init();
163 gtk_init(&argc, &argv);
164 #endif
165 CommandLine::Init(argc, argv);
166
167 base::EnableTerminationOnHeapCorruption();
168
169 // The exit manager is in charge of calling the dtors of singleton objects.
170 base::AtExitManager exit_manager;
171
172 ui::RegisterPathProvider();
173 bool icu_result = icu_util::Initialize();
174 CHECK(icu_result);
175 ui::ResourceBundle::InitSharedInstance("en-US");
176
177 MessageLoop main_message_loop(MessageLoop::TYPE_UI);
178
179 views::TestViewsDelegate delegate;
180
181 // We do not use this header: chrome/common/chrome_switches.h
182 // because that would create a bad dependency back on Chrome.
183 views::Widget::SetPureViews(
184 CommandLine::ForCurrentProcess()->HasSwitch("use-pure-views"));
185
186 examples::ExamplesMain main;
187 main.Init();
188
189 views::AcceleratorHandler accelerator_handler;
190 MessageLoopForUI::current()->RunWithDispatcher(&accelerator_handler);
191
192 #if defined(OS_WIN)
193 OleUninitialize();
194 #endif
195 return 0;
196 }
OLDNEW
« no previous file with comments | « views/examples/examples_main.h ('k') | views/examples/link_example.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698