summaryrefslogtreecommitdiffstats
path: root/ui/views/examples/throbber_example.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ui/views/examples/throbber_example.cc')
-rw-r--r--ui/views/examples/throbber_example.cc60
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