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

Unified Diff: chrome/browser/ui/views/location_bar/location_bar_view.cc

Issue 7206055: Add an option to run Chrome in the views desktop. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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
Index: chrome/browser/ui/views/location_bar/location_bar_view.cc
===================================================================
--- chrome/browser/ui/views/location_bar/location_bar_view.cc (revision 89890)
+++ chrome/browser/ui/views/location_bar/location_bar_view.cc (working copy)
@@ -35,6 +35,7 @@
#include "chrome/browser/ui/views/location_bar/page_action_with_badge_view.h"
#include "chrome/browser/ui/views/location_bar/selected_keyword_view.h"
#include "chrome/browser/ui/views/location_bar/star_view.h"
+#include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "content/browser/renderer_host/render_widget_host_view.h"
@@ -51,6 +52,7 @@
#include "ui/gfx/color_utils.h"
#include "ui/gfx/skia_util.h"
#include "views/controls/label.h"
+#include "views/controls/textfield/native_textfield_views.h"
#include "views/drag_utils.h"
#if defined(OS_WIN)
@@ -171,9 +173,17 @@
// URL edit field.
// View container for URL edit field.
#if defined(OS_WIN)
- location_entry_.reset(new OmniboxViewWin(font_, this, model_, this,
- GetWidget()->GetNativeView(), profile_, browser_->command_updater(),
- mode_ == POPUP, this));
+ if (UseViewsOmnibox()) {
+ OmniboxViewViews* omnibox_view =
+ new OmniboxViewViews(this, model_, profile_,
+ browser_->command_updater(), mode_ == POPUP, this);
+ omnibox_view->Init();
+ location_entry_.reset(omnibox_view);
+ } else {
+ location_entry_.reset(new OmniboxViewWin(font_, this, model_, this,
+ GetWidget()->GetNativeView(), profile_, browser_->command_updater(),
+ mode_ == POPUP, this));
+ }
#else
location_entry_.reset(OmniboxViewGtk::Create(this, model_, profile_,
browser_->command_updater(), mode_ == POPUP, this));
@@ -421,7 +431,10 @@
GetColor(ToolbarModel::NONE,
LocationBarView::DEEMPHASIZED_TEXT));
suggested_text_view_->SetText(UTF16ToWide(text));
- suggested_text_view_->SetFont(location_entry_->GetFont());
+ if (UseViewsOmnibox())
+ NOTIMPLEMENTED();
+ else
+ suggested_text_view_->SetFont(GetOmniboxViewWin()->GetFont());
AddChildView(suggested_text_view_);
} else if (suggested_text_view_->GetText() != UTF16ToWide(text)) {
suggested_text_view_->SetText(UTF16ToWide(text));
@@ -533,12 +546,17 @@
}
#if defined(OS_WIN)
- RECT formatting_rect;
- location_entry_->GetRect(&formatting_rect);
- RECT edit_bounds;
- location_entry_->GetClientRect(&edit_bounds);
- int max_edit_width = entry_width - formatting_rect.left -
- (edit_bounds.right - formatting_rect.right);
+ int max_edit_width = entry_width;
+ if (UseViewsOmnibox()) {
+ NOTIMPLEMENTED();
+ } else {
+ RECT formatting_rect;
+ GetOmniboxViewWin()->GetRect(&formatting_rect);
+ RECT edit_bounds;
+ GetOmniboxViewWin()->GetClientRect(&edit_bounds);
+ max_edit_width = entry_width - formatting_rect.left -
+ (edit_bounds.right - formatting_rect.right);
+ }
#else
int max_edit_width = entry_width;
#endif
@@ -657,22 +675,27 @@
// keyword hints and suggested text is minimal and we're not confident this
// is the right approach for suggested text.
if (suggested_text_view_) {
- // TODO(sky): need to layout when the user changes caret position.
- int suggested_text_width = suggested_text_view_->GetPreferredSize().width();
- int vis_text_width = location_entry_->WidthOfTextAfterCursor();
- if (vis_text_width + suggested_text_width > entry_width) {
- // Hide the suggested text if the user has scrolled or we can't fit all
- // the suggested text.
- suggested_text_view_->SetBounds(0, 0, 0, 0);
+ if (UseViewsOmnibox()) {
+ NOTIMPLEMENTED();
} else {
- int location_needed_width = location_entry_->TextWidth();
- location_bounds.set_width(std::min(location_needed_width,
- entry_width - suggested_text_width));
- // TODO(sky): figure out why this needs the -1.
- suggested_text_view_->SetBounds(location_bounds.right() - 1,
- location_bounds.y(),
- suggested_text_width,
- location_bounds.height());
+ // TODO(sky): need to layout when the user changes caret position.
+ int suggested_text_width =
+ suggested_text_view_->GetPreferredSize().width();
+ int vis_text_width = GetOmniboxViewWin()->WidthOfTextAfterCursor();
+ if (vis_text_width + suggested_text_width > entry_width) {
+ // Hide the suggested text if the user has scrolled or we can't fit all
+ // the suggested text.
+ suggested_text_view_->SetBounds(0, 0, 0, 0);
+ } else {
+ int location_needed_width = location_entry_->TextWidth();
+ location_bounds.set_width(std::min(location_needed_width,
+ entry_width - suggested_text_width));
+ // TODO(sky): figure out why this needs the -1.
+ suggested_text_view_->SetBounds(location_bounds.right() - 1,
+ location_bounds.y(),
+ suggested_text_width,
+ location_bounds.height());
+ }
}
}
#endif
@@ -778,7 +801,10 @@
}
void LocationBarView::OnMouseCaptureLost() {
- location_entry_->HandleExternalMsg(WM_CAPTURECHANGED, 0, CPoint());
+ if (UseViewsOmnibox())
+ NOTIMPLEMENTED();
+ else
+ GetOmniboxViewWin()->HandleExternalMsg(WM_CAPTURECHANGED, 0, CPoint());
}
#endif
@@ -971,7 +997,10 @@
UINT flags = event.GetWindowsFlags();
gfx::Point screen_point(event.location());
ConvertPointToScreen(this, &screen_point);
- location_entry_->HandleExternalMsg(msg, flags, screen_point.ToPOINT());
+ if (UseViewsOmnibox())
+ NOTIMPLEMENTED();
+ else
+ GetOmniboxViewWin()->HandleExternalMsg(msg, flags, screen_point.ToPOINT());
}
#endif
@@ -1003,6 +1032,7 @@
bool LocationBarView::SkipDefaultKeyEventProcessing(
const views::KeyEvent& event) {
#if defined(OS_WIN)
+ bool views_omnibox = UseViewsOmnibox();
if (views::FocusManager::IsTabTraversalKeyEvent(event)) {
if (HasValidSuggestText()) {
// Return true so that the edit sees the tab and commits the suggestion.
@@ -1014,7 +1044,7 @@
}
// If the caret is not at the end, then tab moves the caret to the end.
- if (!location_entry_->IsCaretAtEnd())
+ if (!views_omnibox && !GetOmniboxViewWin()->IsCaretAtEnd())
return true;
// Tab while showing instant commits instant immediately.
@@ -1024,7 +1054,10 @@
return true;
}
- return location_entry_->SkipDefaultKeyEventProcessing(event);
+ if (!views_omnibox)
+ return GetOmniboxViewWin()->SkipDefaultKeyEventProcessing(event);
+ NOTIMPLEMENTED();
+ return false;
#else
// This method is not used for Linux ports. See FocusManager::OnKeyEvent() in
// src/views/focus/focus_manager.cc for details.
@@ -1221,4 +1254,14 @@
return suggested_text_view_ && !suggested_text_view_->size().IsEmpty() &&
!suggested_text_view_->GetText().empty();
}
+
+OmniboxViewWin* LocationBarView::GetOmniboxViewWin() {
+ CHECK(UseViewsOmnibox());
+ return static_cast<OmniboxViewWin*>(location_entry_.get());
+}
+
+bool LocationBarView::UseViewsOmnibox() {
+ return views::Widget::IsPureViews() ||
+ views::NativeTextfieldViews::IsTextfieldViewsEnabled();
+}
#endif

Powered by Google App Engine
This is Rietveld 408576698