Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Unified Diff: mandoline/ui/desktop_ui/browser_window.cc

Issue 1371773003: mandoline: Add find in page. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Final documentation changes. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mandoline/ui/desktop_ui/browser_window.h ('k') | mandoline/ui/desktop_ui/find_bar_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mandoline/ui/desktop_ui/browser_window.cc
diff --git a/mandoline/ui/desktop_ui/browser_window.cc b/mandoline/ui/desktop_ui/browser_window.cc
index 111761a376295a598ba9c7cc8948daed6f9b1ba0..0a8079de28b9c955fd430c9dc07cd53ec992641c 100644
--- a/mandoline/ui/desktop_ui/browser_window.cc
+++ b/mandoline/ui/desktop_ui/browser_window.cc
@@ -13,6 +13,7 @@
#include "mandoline/ui/aura/native_widget_view_manager.h"
#include "mandoline/ui/desktop_ui/browser_commands.h"
#include "mandoline/ui/desktop_ui/browser_manager.h"
+#include "mandoline/ui/desktop_ui/find_bar_view.h"
#include "mandoline/ui/desktop_ui/public/interfaces/omnibox.mojom.h"
#include "mandoline/ui/desktop_ui/toolbar_view.h"
#include "mojo/common/common_type_converters.h"
@@ -74,9 +75,12 @@ BrowserWindow::BrowserWindow(mojo::ApplicationImpl* app,
manager_(manager),
toolbar_view_(nullptr),
progress_bar_(nullptr),
+ find_bar_view_(nullptr),
root_(nullptr),
content_(nullptr),
omnibox_view_(nullptr),
+ find_active_(0),
+ find_count_(0),
web_view_(this) {
mojo::ViewTreeHostClientPtr host_client;
host_client_binding_.Bind(GetProxy(&host_client));
@@ -125,6 +129,11 @@ void BrowserWindow::ShowOmnibox() {
omnibox_->ShowForURL(mojo::String::From(current_url_.spec()));
}
+void BrowserWindow::ShowFind() {
+ toolbar_view_->SetVisible(false);
+ find_bar_view_->Show();
+}
+
void BrowserWindow::GoBack() {
web_view_.web_view()->GoBack();
}
@@ -172,6 +181,8 @@ void BrowserWindow::OnEmbed(mus::View* root) {
mojo::KEYBOARD_CODE_L, mojo::EVENT_FLAGS_CONTROL_DOWN);
host_->AddAccelerator(static_cast<uint32_t>(BrowserCommand::NEW_WINDOW),
mojo::KEYBOARD_CODE_N, mojo::EVENT_FLAGS_CONTROL_DOWN);
+ host_->AddAccelerator(static_cast<uint32_t>(BrowserCommand::SHOW_FIND),
+ mojo::KEYBOARD_CODE_F, mojo::EVENT_FLAGS_CONTROL_DOWN);
host_->AddAccelerator(static_cast<uint32_t>(BrowserCommand::GO_BACK),
mojo::KEYBOARD_CODE_LEFT, mojo::EVENT_FLAGS_ALT_DOWN);
host_->AddAccelerator(static_cast<uint32_t>(BrowserCommand::GO_FORWARD),
@@ -219,6 +230,9 @@ void BrowserWindow::OnAccelerator(uint32_t id, mojo::EventPtr event) {
case BrowserCommand::FOCUS_OMNIBOX:
ShowOmnibox();
break;
+ case BrowserCommand::SHOW_FIND:
+ ShowFind();
+ break;
case BrowserCommand::GO_BACK:
GoBack();
break;
@@ -235,6 +249,7 @@ void BrowserWindow::OnAccelerator(uint32_t id, mojo::EventPtr event) {
// BrowserWindow, web_view::mojom::WebViewClient implementation:
void BrowserWindow::TopLevelNavigateRequest(mojo::URLRequestPtr request) {
+ OnHideFindBar();
Embed(request.Pass());
}
@@ -267,6 +282,19 @@ void BrowserWindow::TitleChanged(const mojo::String& title) {
host_->SetTitle(mojo::String::From(formatted));
}
+void BrowserWindow::FindInPageMatchCountUpdated(int32_t request_id,
+ int32_t count,
+ bool final_update) {
+ find_count_ = count;
+ find_bar_view_->SetMatchLabel(find_active_, find_count_);
+}
+
+void BrowserWindow::FindInPageSelectionUpdated(int32_t request_id,
+ int32_t active_match_ordinal) {
+ find_active_ = active_match_ordinal;
+ find_bar_view_->SetMatchLabel(find_active_, find_count_);
+}
+
////////////////////////////////////////////////////////////////////////////////
// BrowserWindow, ViewEmbedder implementation:
@@ -305,6 +333,8 @@ void BrowserWindow::Layout(views::View* host) {
toolbar_bounds.Inset(10, 10, 10, toolbar_bounds.height() - 40);
toolbar_view_->SetBoundsRect(toolbar_bounds);
+ find_bar_view_->SetBoundsRect(toolbar_bounds);
+
gfx::Rect progress_bar_bounds(toolbar_bounds.x(), toolbar_bounds.bottom() + 2,
toolbar_bounds.width(), 5);
@@ -324,6 +354,20 @@ void BrowserWindow::Layout(views::View* host) {
}
////////////////////////////////////////////////////////////////////////////////
+// BrowserWindow, FindBarDelegate implementation:
+
+void BrowserWindow::OnDoFind(const std::string& find) {
+ static int find_id = 0;
+ web_view_.web_view()->Find(++find_id, mojo::String::From(find));
+}
+
+void BrowserWindow::OnHideFindBar() {
+ toolbar_view_->SetVisible(true);
+ find_bar_view_->Hide();
+ web_view_.web_view()->StopFinding();
+}
+
+////////////////////////////////////////////////////////////////////////////////
// BrowserWindow, private:
void BrowserWindow::Init(mus::View* root) {
@@ -344,6 +388,9 @@ void BrowserWindow::Init(mus::View* root) {
widget_delegate->GetContentsView()->AddChildView(progress_bar_);
widget_delegate->GetContentsView()->SetLayoutManager(this);
+ find_bar_view_ = new FindBarView(this);
+ widget_delegate->GetContentsView()->AddChildView(find_bar_view_);
+
views::Widget* widget = new views::Widget;
views::Widget::InitParams params(
views::Widget::InitParams::TYPE_WINDOW_FRAMELESS);
« no previous file with comments | « mandoline/ui/desktop_ui/browser_window.h ('k') | mandoline/ui/desktop_ui/find_bar_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698