| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "mandoline/ui/omnibox/omnibox_impl.h" | 5 #include "mandoline/ui/omnibox/omnibox_impl.h" |
| 6 | 6 |
| 7 #include "base/strings/string16.h" | 7 #include "base/strings/string16.h" |
| 8 #include "components/view_manager/public/cpp/view_manager_client_factory.h" | 8 #include "components/view_manager/public/cpp/view_manager_client_factory.h" |
| 9 #include "components/window_manager/public/interfaces/window_manager.mojom.h" | 9 #include "components/window_manager/public/interfaces/window_manager.mojom.h" |
| 10 #include "mandoline/ui/aura/aura_init.h" | 10 #include "mandoline/ui/aura/aura_init.h" |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 53 | 53 |
| 54 void OmniboxImpl::OnEmbed(mojo::View* root, | 54 void OmniboxImpl::OnEmbed(mojo::View* root, |
| 55 mojo::InterfaceRequest<mojo::ServiceProvider> services, | 55 mojo::InterfaceRequest<mojo::ServiceProvider> services, |
| 56 mojo::ServiceProviderPtr exposed_services) { | 56 mojo::ServiceProviderPtr exposed_services) { |
| 57 if (!aura_init_.get()) { | 57 if (!aura_init_.get()) { |
| 58 aura_init_.reset(new AuraInit); | 58 aura_init_.reset(new AuraInit); |
| 59 edit_ = new views::Textfield; | 59 edit_ = new views::Textfield; |
| 60 edit_->set_controller(this); | 60 edit_->set_controller(this); |
| 61 } | 61 } |
| 62 | 62 |
| 63 const int kOpacity = 0xC0; |
| 63 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; | 64 views::WidgetDelegateView* widget_delegate = new views::WidgetDelegateView; |
| 64 widget_delegate->GetContentsView()->set_background( | 65 widget_delegate->GetContentsView()->set_background( |
| 65 views::Background::CreateSolidBackground(0xFFDDDDDD)); | 66 views::Background::CreateSolidBackground( |
| 67 SkColorSetA(0xDDDDDD, kOpacity))); |
| 66 widget_delegate->GetContentsView()->AddChildView(edit_); | 68 widget_delegate->GetContentsView()->AddChildView(edit_); |
| 67 widget_delegate->GetContentsView()->SetLayoutManager(this); | 69 widget_delegate->GetContentsView()->SetLayoutManager(this); |
| 68 | 70 |
| 69 // TODO(beng): we may be leaking these on subsequent calls to OnEmbed()... | 71 // TODO(beng): we may be leaking these on subsequent calls to OnEmbed()... |
| 70 // probably should only allow once instance per view. | 72 // probably should only allow once instance per view. |
| 71 views::Widget* widget = new views::Widget; | 73 views::Widget* widget = new views::Widget; |
| 72 views::Widget::InitParams params( | 74 views::Widget::InitParams params( |
| 73 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); | 75 views::Widget::InitParams::TYPE_WINDOW_FRAMELESS); |
| 74 params.native_widget = | 76 params.native_widget = |
| 75 new NativeWidgetViewManager(widget, app_impl_->shell(), root); | 77 new NativeWidgetViewManager(widget, app_impl_->shell(), root); |
| 76 params.delegate = widget_delegate; | 78 params.delegate = widget_delegate; |
| 77 params.bounds = root->bounds().To<gfx::Rect>(); | 79 params.bounds = root->bounds().To<gfx::Rect>(); |
| 80 params.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; |
| 78 widget->Init(params); | 81 widget->Init(params); |
| 79 widget->Show(); | 82 widget->Show(); |
| 83 widget->GetCompositor()->SetBackgroundColor( |
| 84 SkColorSetA(SK_ColorBLACK, kOpacity)); |
| 80 root->SetFocus(); | 85 root->SetFocus(); |
| 81 edit_->SetText(url_.To<base::string16>()); | 86 edit_->SetText(url_.To<base::string16>()); |
| 82 edit_->SelectAll(false); | 87 edit_->SelectAll(false); |
| 83 edit_->RequestFocus(); | 88 edit_->RequestFocus(); |
| 84 } | 89 } |
| 85 | 90 |
| 86 void OmniboxImpl::OnViewManagerDisconnected(mojo::ViewManager* view_manager) {} | 91 void OmniboxImpl::OnViewManagerDisconnected(mojo::ViewManager* view_manager) {} |
| 87 | 92 |
| 88 //////////////////////////////////////////////////////////////////////////////// | 93 //////////////////////////////////////////////////////////////////////////////// |
| 89 // OmniboxImpl, views::LayoutManager implementation: | 94 // OmniboxImpl, views::LayoutManager implementation: |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 } | 134 } |
| 130 | 135 |
| 131 void OmniboxImpl::ShowForURL(const mojo::String& url) { | 136 void OmniboxImpl::ShowForURL(const mojo::String& url) { |
| 132 url_ = url; | 137 url_ = url; |
| 133 mojo::WindowManagerPtr window_manager; | 138 mojo::WindowManagerPtr window_manager; |
| 134 app_impl_->ConnectToService("mojo:window_manager", &window_manager); | 139 app_impl_->ConnectToService("mojo:window_manager", &window_manager); |
| 135 window_manager->Embed("mojo:omnibox", nullptr, nullptr); | 140 window_manager->Embed("mojo:omnibox", nullptr, nullptr); |
| 136 } | 141 } |
| 137 | 142 |
| 138 } // namespace mandoline | 143 } // namespace mandoline |
| OLD | NEW |