Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / ui / views / examples / throbber_example.cc
blob7bd18a246cbddadac6ed64bd54aa9a7c1bcce960
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/throbber_example.h"
7 #include "ui/views/controls/throbber.h"
8 #include "ui/views/layout/fill_layout.h"
9 #include "ui/views/view.h"
11 namespace views {
12 namespace examples {
14 namespace {
16 // Time in ms per throbber frame.
17 const int kThrobberFrameMs = 60;
19 class ThrobberView : public View {
20 public:
21 ThrobberView() {
22 throbber_ = new Throbber(kThrobberFrameMs, false);
23 AddChildView(throbber_);
24 throbber_->SetVisible(true);
25 throbber_->Start();
28 virtual gfx::Size GetPreferredSize() const OVERRIDE {
29 return gfx::Size(width(), height());
32 virtual void Layout() OVERRIDE {
33 View* child = child_at(0);
34 gfx::Size ps = child->GetPreferredSize();
35 child->SetBounds((width() - ps.width()) / 2,
36 (height() - ps.height()) / 2,
37 ps.width(), ps.height());
38 SizeToPreferredSize();
41 private:
42 Throbber* throbber_;
44 DISALLOW_COPY_AND_ASSIGN(ThrobberView);
47 } // namespace
49 ThrobberExample::ThrobberExample() : ExampleBase("Throbber") {
52 ThrobberExample::~ThrobberExample() {
55 void ThrobberExample::CreateExampleView(View* container) {
56 container->SetLayoutManager(new FillLayout());
57 container->AddChildView(new ThrobberView());
60 } // namespace examples
61 } // namespace views