Remove the media viewer component. The media viewer appears to not have been orphaned a while back; the png viewer looks like it used to use this to provide a generalized zoom in/out/restore controls, but then it stopped using it and it remained in the tree. BUG=443439 R=sky@chromium.org Review URL: https://codereview.chromium.org/832933006
diff --git a/examples/BUILD.gn b/examples/BUILD.gn index ca68e27..c737d98 100644 --- a/examples/BUILD.gn +++ b/examples/BUILD.gn
@@ -28,7 +28,6 @@ deps += [ "//examples/aura_demo:aura_demo", "//examples/browser", - "//examples/media_viewer", "//examples/nesting_app", "//examples/window_manager", "//examples/wm_flow",
diff --git a/examples/media_viewer/BUILD.gn b/examples/media_viewer/BUILD.gn deleted file mode 100644 index 16e4a42..0000000 --- a/examples/media_viewer/BUILD.gn +++ /dev/null
@@ -1,36 +0,0 @@ -# Copyright 2014 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. - -import("//build/config/ui.gni") -import("//mojo/public/mojo_application.gni") -import("//mojo/public/tools/bindings/mojom.gni") - -if (use_aura) { - mojo_native_application("media_viewer") { - sources = [ - "media_viewer.cc", - ] - - deps = [ - ":bindings", - "//base", - "//mojo/application", - "//mojo/converters/input_events", - "//mojo/services/navigation/public/interfaces", - "//mojo/services/view_manager/public/cpp", - "//mojo/services/view_manager/public/interfaces", - "//mojo/views:views", - "//skia", - "//ui/gfx", - "//ui/gfx/geometry", - "//ui/views", - ] - } -} # use_aura - -mojom("bindings") { - sources = [ - "media_viewer.mojom", - ] -}
diff --git a/examples/media_viewer/media_viewer.cc b/examples/media_viewer/media_viewer.cc deleted file mode 100644 index 8e18985..0000000 --- a/examples/media_viewer/media_viewer.cc +++ /dev/null
@@ -1,328 +0,0 @@ -// Copyright 2014 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 <map> -#include <string> - -#include "base/macros.h" -#include "base/memory/scoped_ptr.h" -#include "base/strings/utf_string_conversions.h" -#include "examples/media_viewer/media_viewer.mojom.h" -#include "mojo/application/application_runner_chromium.h" -#include "mojo/public/c/system/main.h" -#include "mojo/public/cpp/application/application_connection.h" -#include "mojo/public/cpp/application/application_delegate.h" -#include "mojo/public/cpp/application/application_impl.h" -#include "mojo/public/cpp/application/interface_factory_impl.h" -#include "mojo/public/cpp/bindings/interface_impl.h" -#include "mojo/services/navigation/public/interfaces/navigation.mojom.h" -#include "mojo/services/view_manager/public/cpp/view.h" -#include "mojo/services/view_manager/public/cpp/view_manager.h" -#include "mojo/services/view_manager/public/cpp/view_manager_client_factory.h" -#include "mojo/services/view_manager/public/cpp/view_manager_delegate.h" -#include "mojo/services/view_manager/public/cpp/view_observer.h" -#include "mojo/views/native_widget_view_manager.h" -#include "mojo/views/views_init.h" -#include "skia/ext/platform_canvas.h" -#include "skia/ext/refptr.h" -#include "third_party/skia/include/core/SkBitmap.h" -#include "third_party/skia/include/core/SkCanvas.h" -#include "third_party/skia/include/core/SkColor.h" -#include "third_party/skia/include/core/SkPaint.h" -#include "third_party/skia/include/core/SkRect.h" -#include "ui/gfx/canvas.h" -#include "ui/gfx/geometry/insets.h" -#include "ui/gfx/geometry/rect.h" -#include "ui/gfx/image/image_skia.h" -#include "ui/views/background.h" -#include "ui/views/border.h" -#include "ui/views/controls/button/button.h" -#include "ui/views/controls/button/label_button.h" -#include "ui/views/layout/box_layout.h" -#include "ui/views/painter.h" -#include "ui/views/widget/widget.h" -#include "ui/views/widget/widget_delegate.h" - -namespace mojo { -namespace examples { - -class MediaViewer; - -class CustomButtonBorder: public views::Border { - public: - CustomButtonBorder() - : normal_painter_(CreatePainter(SkColorSetRGB(0x80, 0x80, 0x80), - SkColorSetRGB(0xC0, 0xC0, 0xC0))), - hot_painter_(CreatePainter(SkColorSetRGB(0xA0, 0xA0, 0xA0), - SkColorSetRGB(0xD0, 0xD0, 0xD0))), - pushed_painter_(CreatePainter(SkColorSetRGB(0x80, 0x80, 0x80), - SkColorSetRGB(0x90, 0x90, 0x90))), - insets_(2, 6, 2, 6) { - } - virtual ~CustomButtonBorder() {} - - private: - // Overridden from views::Border: - virtual void Paint(const views::View& view, gfx::Canvas* canvas) override { - const views::LabelButton* button = - static_cast<const views::LabelButton*>(&view); - views::Button::ButtonState state = button->state(); - - views::Painter* painter = normal_painter_.get(); - if (state == views::Button::STATE_HOVERED) { - painter = hot_painter_.get(); - } else if (state == views::Button::STATE_PRESSED) { - painter = pushed_painter_.get(); - } - painter->Paint(canvas, view.size()); - } - - virtual gfx::Insets GetInsets() const override { - return insets_; - } - - virtual gfx::Size GetMinimumSize() const override { - gfx::Size size; - if (normal_painter_) - size.SetToMax(normal_painter_->GetMinimumSize()); - if (hot_painter_) - size.SetToMax(hot_painter_->GetMinimumSize()); - if (pushed_painter_) - size.SetToMax(pushed_painter_->GetMinimumSize()); - return size; - } - - scoped_ptr<views::Painter> CreatePainter(SkColor border, SkColor background) { - skia::RefPtr<SkCanvas> canvas(skia::AdoptRef(skia::CreatePlatformCanvas( - 64, 64, false))); - SkPaint paint; - paint.setColor(background); - canvas->drawRoundRect(SkRect::MakeWH(63, 63), 2, 2, paint); - paint.setStyle(SkPaint::kStroke_Style); - paint.setColor(border); - canvas->drawRoundRect(SkRect::MakeWH(63, 63), 2, 2, paint); - - return scoped_ptr<views::Painter>( - views::Painter::CreateImagePainter( - gfx::ImageSkia::CreateFrom1xBitmap( - skia::GetTopDevice(*canvas)->accessBitmap(true)), - gfx::Insets(5, 5, 5, 5))); - } - - scoped_ptr<views::Painter> normal_painter_; - scoped_ptr<views::Painter> hot_painter_; - scoped_ptr<views::Painter> pushed_painter_; - - gfx::Insets insets_; - - DISALLOW_COPY_AND_ASSIGN(CustomButtonBorder); -}; - -class ControlPanel : public views::ButtonListener { - public: - enum ControlType { - CONTROL_ZOOM_IN, - CONTROL_ACTUAL_SIZE, - CONTROL_ZOOM_OUT, - CONTROL_COUNT, - }; - - class Delegate { - public: - virtual ~Delegate() {} - - virtual void ButtonPressed(ControlType type) = 0; - }; - - explicit ControlPanel(Delegate* delegate) - : delegate_(delegate), shell_(nullptr), buttons_() {} - - virtual ~ControlPanel() {} - - void Initialize(View* view, Shell* shell) { - const char* kNames[] = { "Zoom In", "Actual Size", "Zoom Out" }; - - views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; - - widget_delegate->GetContentsView()->SetLayoutManager( - new views::BoxLayout(views::BoxLayout::kHorizontal, 5, 2, 5)); - - widget_delegate->GetContentsView()->set_background( - views::Background::CreateSolidBackground(SK_ColorLTGRAY)); - - for (int type = 0; type < CONTROL_COUNT; ++type) { - views::Button* button = new views::LabelButton( - this, base::ASCIIToUTF16(kNames[type])); - button->SetBorder(scoped_ptr<views::Border>(new CustomButtonBorder)); - buttons_[type] = button; - widget_delegate->GetContentsView()->AddChildView(button); - } - - views::Widget* widget = new views::Widget; - views::Widget::InitParams params( - views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); - params.native_widget = new NativeWidgetViewManager(widget, shell, view); - params.delegate = widget_delegate; - params.bounds = gfx::Rect(view->bounds().width, view->bounds().height); - params.opacity = views::Widget::InitParams::OPAQUE_WINDOW; - widget->Init(params); - widget->Show(); - } - - private: - // Overridden from views::ButtonListener: - virtual void ButtonPressed(views::Button* sender, - const ui::Event& event) override { - for (int i = 0; i < CONTROL_COUNT; ++i) { - if (sender == buttons_[i]) { - delegate_->ButtonPressed(static_cast<ControlType>(i)); - return; - } - } - } - - Delegate* delegate_; - Shell* shell_; - views::Button* buttons_[CONTROL_COUNT]; - - DISALLOW_COPY_AND_ASSIGN(ControlPanel); -}; - -class MediaViewer - : public ApplicationDelegate, - public ViewManagerDelegate, - public ControlPanel::Delegate, - public ViewObserver { - public: - MediaViewer() - : shell_(nullptr), - app_(NULL), - root_view_(NULL), - control_view_(NULL), - content_view_(NULL), - control_panel_(this) { - handler_map_["image/png"] = "mojo:png_viewer"; - } - - virtual ~MediaViewer() { - if (root_view_) - root_view_->RemoveObserver(this); - } - - private: - typedef std::map<std::string, std::string> HandlerMap; - - - // Overridden from ApplicationDelegate: - virtual void Initialize(ApplicationImpl* app) override { - shell_ = app->shell(); - view_manager_client_factory_.reset( - new ViewManagerClientFactory(app->shell(), this)); - app_ = app; - views_init_.reset(new ViewsInit); - } - - virtual bool ConfigureIncomingConnection(ApplicationConnection* connection) - override { - connection->AddService(view_manager_client_factory_.get()); - return true; - } - - void LayoutViews() { - View* root = content_view_->parent(); - Rect control_bounds; - control_bounds.width = root->bounds().width; - control_bounds.height = 28; - control_view_->SetBounds(control_bounds); - Rect content_bounds; - content_bounds.y = control_bounds.height; - content_bounds.width = root->bounds().width; - content_bounds.height = root->bounds().height - control_bounds.height; - content_view_->SetBounds(content_bounds); - } - - // Overridden from ViewManagerDelegate: - virtual void OnEmbed(View* root, - ServiceProviderImpl* exported_services, - scoped_ptr<ServiceProvider> imported_services) override { - root_view_ = root; - - control_view_ = root->view_manager()->CreateView(); - control_view_->SetVisible(true); - root_view_->AddChild(control_view_); - - content_view_ = root->view_manager()->CreateView(); - content_view_->SetVisible(true); - root_view_->AddChild(content_view_); - - control_panel_.Initialize(control_view_, shell_); - - LayoutViews(); - root_view_->AddObserver(this); - - content_view_->Embed("TODO"); - } - - virtual void OnViewManagerDisconnected( - ViewManager* view_manager) override { - base::MessageLoop::current()->Quit(); - } - - // Overridden from ControlPanel::Delegate: - virtual void ButtonPressed(ControlPanel::ControlType type) override { - switch (type) { - case ControlPanel::CONTROL_ZOOM_IN: - zoomable_media_->ZoomIn(); - break; - case ControlPanel::CONTROL_ACTUAL_SIZE: - zoomable_media_->ZoomToActualSize(); - break; - case ControlPanel::CONTROL_ZOOM_OUT: - zoomable_media_->ZoomOut(); - break; - default: - NOTIMPLEMENTED(); - } - } - - // ViewObserver: - virtual void OnViewBoundsChanged(View* view, - const Rect& old_bounds, - const Rect& new_bounds) override { - LayoutViews(); - } - virtual void OnViewDestroyed(View* view) override { - DCHECK_EQ(view, root_view_); - view->RemoveObserver(this); - root_view_ = NULL; - } - - std::string GetHandlerForContentType(const std::string& content_type) { - HandlerMap::const_iterator it = handler_map_.find(content_type); - return it != handler_map_.end() ? it->second : std::string(); - } - - Shell* shell_; - - scoped_ptr<ViewManagerClientFactory> view_manager_client_factory_; - - ApplicationImpl* app_; - scoped_ptr<ViewsInit> views_init_; - View* root_view_; - View* control_view_; - View* content_view_; - ControlPanel control_panel_; - ZoomableMediaPtr zoomable_media_; - HandlerMap handler_map_; - - DISALLOW_COPY_AND_ASSIGN(MediaViewer); -}; - -} // namespace examples -} // namespace mojo - -MojoResult MojoMain(MojoHandle shell_handle) { - mojo::ApplicationRunnerChromium runner(new mojo::examples::MediaViewer); - return runner.Run(shell_handle); -}
diff --git a/examples/media_viewer/media_viewer.mojom b/examples/media_viewer/media_viewer.mojom deleted file mode 100644 index c8dc74f..0000000 --- a/examples/media_viewer/media_viewer.mojom +++ /dev/null
@@ -1,11 +0,0 @@ -// Copyright 2014 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. - -module mojo; - -interface ZoomableMedia { - ZoomIn(); - ZoomOut(); - ZoomToActualSize(); -};
diff --git a/examples/png_viewer/BUILD.gn b/examples/png_viewer/BUILD.gn index 86c9c25..364150a 100644 --- a/examples/png_viewer/BUILD.gn +++ b/examples/png_viewer/BUILD.gn
@@ -11,7 +11,6 @@ deps = [ "//examples/bitmap_uploader", - "//examples/media_viewer:bindings", "//mojo/application", "//mojo/application:content_handler", "//mojo/public/cpp/bindings",
diff --git a/examples/png_viewer/png_viewer.cc b/examples/png_viewer/png_viewer.cc index 875f919..6cde41c 100644 --- a/examples/png_viewer/png_viewer.cc +++ b/examples/png_viewer/png_viewer.cc
@@ -9,7 +9,6 @@ #include "base/message_loop/message_loop.h" #include "base/strings/string_tokenizer.h" #include "examples/bitmap_uploader/bitmap_uploader.h" -#include "examples/media_viewer/media_viewer.mojom.h" #include "mojo/application/application_runner_chromium.h" #include "mojo/application/content_handler_factory.h" #include "mojo/public/c/system/main.h"