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

Unified Diff: chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc

Issue 160378: Make TOOLKIT_VIEWS port use views-based Autocomplete popup.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 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/views/autocomplete/autocomplete_popup_contents_view.cc
===================================================================
--- chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc (revision 21913)
+++ chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc (working copy)
@@ -4,10 +4,6 @@
#include "chrome/browser/views/autocomplete/autocomplete_popup_contents_view.h"
-#include <objidl.h>
-#include <commctrl.h>
-#include <dwmapi.h>
-
#include "app/gfx/canvas.h"
#include "app/gfx/color_utils.h"
#include "app/gfx/insets.h"
@@ -15,18 +11,28 @@
#include "app/l10n_util.h"
#include "app/resource_bundle.h"
#include "app/theme_provider.h"
-#include "app/win_util.h"
#include "base/compiler_specific.h"
-#include "chrome/browser/autocomplete/autocomplete_edit_view_win.h"
+#include "chrome/browser/autocomplete/autocomplete_edit_view.h"
#include "chrome/browser/autocomplete/autocomplete_popup_model.h"
-#include "chrome/browser/views/autocomplete/autocomplete_popup_win.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "third_party/skia/include/core/SkShader.h"
#include "third_party/icu38/public/common/unicode/ubidi.h"
#include "views/widget/widget.h"
+#if defined(OS_WIN)
+#include <objidl.h>
+#include <commctrl.h>
+#include <dwmapi.h>
+
+#include "app/win_util.h"
+#include "chrome/browser/views/autocomplete/autocomplete_popup_win.h"
+#else
+#include "chrome/browser/views/autocomplete/autocomplete_popup_gtk.h"
+#endif
+
// Colors for various components of the view.
+#if defined(OS_WIN)
static const SkColor kBackgroundColor =
color_utils::GetSysSkColor(COLOR_WINDOW);
static const SkColor kSelectedBackgroundColor =
@@ -41,6 +47,16 @@
color_utils::GetSysSkColor(COLOR_GRAYTEXT);
static const SkColor kSelectedDimTextColor =
color_utils::GetSysSkColor(COLOR_HIGHLIGHTTEXT);
+#else
+// TODO(beng): source from theme provider.
+static const SkColor kBackgroundColor = SK_ColorWHITE;
+static const SkColor kSelectedBackgroundColor = SK_ColorBLUE;
+static const SkColor kHoverBackgroundColor = SK_ColorCYAN;
+static const SkColor kTextColor = SK_ColorBLACK;
+static const SkColor kSelectedTextColor = SK_ColorWHITE;
+static const SkColor kDimTextColor = SK_ColorGRAY;
+static const SkColor kSelectedDimTextColor = SK_ColorWHITE;
+#endif
static const SkColor kStandardURLColor = SkColorSetRGB(0, 0x80, 0);
static const SkColor kHighlightURLColor = SkColorSetRGB(0xD0, 0xFF, 0xD0);
static const int kGlassPopupTransparency = 240;
@@ -657,11 +673,15 @@
AutocompletePopupContentsView::AutocompletePopupContentsView(
const gfx::Font& font,
- AutocompleteEditViewWin* edit_view,
+ AutocompleteEditView* edit_view,
AutocompleteEditModel* edit_model,
Profile* profile,
AutocompletePopupPositioner* popup_positioner)
+#if defined(OS_WIN)
: popup_(new AutocompletePopupWin(this)),
+#else
+ : popup_(new AutocompletePopupGtk(this)),
+#endif
model_(new AutocompletePopupModel(this, edit_model, profile)),
edit_view_(edit_view),
popup_positioner_(popup_positioner),
@@ -690,7 +710,7 @@
// AutocompletePopupContentsView, AutocompletePopupView overrides:
bool AutocompletePopupContentsView::IsOpen() const {
- return popup_->IsWindow() && popup_->IsVisible();
+ return popup_->IsOpen();
}
void AutocompletePopupContentsView::InvalidateLine(size_t line) {
@@ -700,7 +720,7 @@
void AutocompletePopupContentsView::UpdatePopupAppearance() {
if (model_->result().empty()) {
// No matches, close any existing popup.
- if (popup_->IsWindow()) {
+ if (popup_->IsCreated()) {
size_animation_.Stop();
popup_->Hide();
}
@@ -739,7 +759,7 @@
size_animation_.Reset();
target_bounds_ = new_target_bounds;
- if (!popup_->IsWindow()) {
+ if (!popup_->IsCreated()) {
// If we've never been shown, we need to create the window.
popup_->Init(edit_view_, this);
} else {
@@ -897,6 +917,7 @@
}
void AutocompletePopupContentsView::UpdateBlurRegion() {
+#if defined(OS_WIN)
// We only support background blurring on Vista with Aero-Glass enabled.
if (!win_util::ShouldUseVistaFrame() || !GetWidget())
return;
@@ -920,6 +941,7 @@
popup_region.Set(contents_path.CreateHRGN());
bb.hRgnBlur = popup_region.Get();
DwmEnableBlurBehindWindow(GetWidget()->GetNativeView(), &bb);
+#endif
}
void AutocompletePopupContentsView::MakeCanvasTransparent(
@@ -934,3 +956,14 @@
canvas->FillRectInt(0, 0, canvas->getDevice()->width(),
canvas->getDevice()->height(), paint);
}
+
+// static
+AutocompletePopupView* AutocompletePopupView::CreatePopupView(
+ const gfx::Font& font,
+ AutocompleteEditView* edit_view,
+ AutocompleteEditModel* edit_model,
+ Profile* profile,
+ AutocompletePopupPositioner* popup_positioner) {
+ return new AutocompletePopupContentsView(font, edit_view, edit_model,
+ profile, popup_positioner);
+}

Powered by Google App Engine
This is Rietveld 408576698