diff options
Diffstat (limited to 'ui/views/examples/throbber_example.cc')
-rw-r--r-- | ui/views/examples/throbber_example.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/ui/views/examples/throbber_example.cc b/ui/views/examples/throbber_example.cc new file mode 100644 index 0000000..dbba597 --- /dev/null +++ b/ui/views/examples/throbber_example.cc @@ -0,0 +1,60 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/views/examples/throbber_example.h" + +#include "views/controls/throbber.h" +#include "views/layout/fill_layout.h" +#include "views/view.h" + +namespace { + +// Time in ms per throbber frame. +const int kThrobberFrameMs = 60; + +class ThrobberView : public views::View { + public: + ThrobberView() { + throbber_ = new views::Throbber(kThrobberFrameMs, false); + AddChildView(throbber_); + throbber_->SetVisible(true); + throbber_->Start(); + } + + virtual gfx::Size GetPreferredSize() { + return gfx::Size(width(), height()); + } + + virtual void Layout() { + views::View* child = child_at(0); + gfx::Size ps = child->GetPreferredSize(); + child->SetBounds((width() - ps.width()) / 2, + (height() - ps.height()) / 2, + ps.width(), ps.height()); + SizeToPreferredSize(); + } + + private: + views::Throbber* throbber_; + + DISALLOW_COPY_AND_ASSIGN(ThrobberView); +}; + +} // namespace + +namespace examples { + +ThrobberExample::ThrobberExample(ExamplesMain* main) + : ExampleBase(main, "Throbber") { +} + +ThrobberExample::~ThrobberExample() { +} + +void ThrobberExample::CreateExampleView(views::View* container) { + container->SetLayoutManager(new views::FillLayout()); + container->AddChildView(new ThrobberView()); +} + +} // namespace examples |