Index: mash/shelf/shelf_application.cc |
diff --git a/mash/shelf/shelf_application.cc b/mash/shelf/shelf_application.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..46569780467e2bb475a57cee8a7fc0f035f9e4b4 |
--- /dev/null |
+++ b/mash/shelf/shelf_application.cc |
@@ -0,0 +1,53 @@ |
+// Copyright 2015 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 "mash/shelf/shelf_application.h" |
+ |
+#include <stdint.h> |
+ |
+#include "components/mus/public/cpp/property_type_converters.h" |
+#include "mash/shelf/shelf_view.h" |
+#include "mash/wm/public/interfaces/container.mojom.h" |
+#include "mojo/shell/public/cpp/application_impl.h" |
+#include "ui/views/mus/aura_init.h" |
+#include "ui/views/mus/native_widget_mus.h" |
+#include "ui/views/mus/window_manager_connection.h" |
+ |
+namespace mash { |
+namespace shelf { |
+ |
+ShelfApplication::ShelfApplication() {} |
+ |
+ShelfApplication::~ShelfApplication() {} |
+ |
+void ShelfApplication::Initialize(mojo::ApplicationImpl* app) { |
+ tracing_.Initialize(app); |
+ |
+ aura_init_.reset(new views::AuraInit(app, "views_mus_resources.pak")); |
+ views::WindowManagerConnection::Create(app); |
+ |
+ views::Widget* widget = new views::Widget; |
+ views::Widget::InitParams params( |
+ views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
+ params.delegate = new ShelfView(app); |
+ |
+ std::map<std::string, std::vector<uint8_t>> properties; |
+ properties[mash::wm::mojom::kWindowContainer_Property] = |
+ mojo::TypeConverter<const std::vector<uint8_t>, int32_t>::Convert( |
+ mash::wm::mojom::CONTAINER_USER_SHELF); |
+ mus::Window* window = |
+ views::WindowManagerConnection::Get()->NewWindow(properties); |
+ params.native_widget = new views::NativeWidgetMus( |
+ widget, app->shell(), window, mus::mojom::SURFACE_TYPE_DEFAULT); |
+ widget->Init(params); |
+ widget->Show(); |
+} |
+ |
+bool ShelfApplication::ConfigureIncomingConnection( |
+ mojo::ApplicationConnection* connection) { |
+ return true; |
+} |
+ |
+} // namespace shelf |
+} // namespace mash |