| Index: chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
|
| diff --git a/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc b/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
|
| index bfd7321561c371c95169602c8fd20be5da94319e..02e0a7ab56d59e57b89a03e3b5c4c6a51d9dfe1e 100644
|
| --- a/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
|
| +++ b/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
|
| @@ -15,7 +15,9 @@
|
| #include "chrome/browser/autocomplete/autocomplete_edit_view.h"
|
| #include "chrome/browser/autocomplete/autocomplete_match.h"
|
| #include "chrome/browser/autocomplete/autocomplete_popup_model.h"
|
| -#include "chrome/browser/instant/instant_opt_in.h"
|
| +#include "chrome/browser/instant/instant_confirm_dialog.h"
|
| +#include "chrome/browser/instant/promo_counter.h"
|
| +#include "chrome/browser/profile.h"
|
| #include "chrome/browser/views/bubble_border.h"
|
| #include "chrome/browser/views/location_bar/location_bar_view.h"
|
| #include "gfx/canvas_skia.h"
|
| @@ -131,12 +133,13 @@ const int kOptInButtonPadding = 2;
|
|
|
| // Padding around the opt in view.
|
| const int kOptInLeftPadding = 12;
|
| -const int kOptInRightPadding = 6;
|
| +const int kOptInRightPadding = 10;
|
| const int kOptInTopPadding = 6;
|
| -const int kOptInBottomPadding = 3;
|
| +const int kOptInBottomPadding = 5;
|
|
|
| -// Padding between the top of the opt-in view and the separator.
|
| -const int kOptInSeparatorSpacing = 2;
|
| +// Horizontal/Vertical inset of the promo background.
|
| +const int kOptInBackgroundHInset = 6;
|
| +const int kOptInBackgroundVInset = 2;
|
|
|
| // Border for instant opt-in buttons. Consists of two 9 patch painters: one for
|
| // the normal state, the other for the pressed state.
|
| @@ -192,7 +195,10 @@ class AutocompletePopupContentsView::InstantOptInView
|
| InstantOptInView(AutocompletePopupContentsView* contents_view,
|
| const gfx::Font& label_font,
|
| const gfx::Font& button_font)
|
| - : contents_view_(contents_view) {
|
| + : contents_view_(contents_view),
|
| + bg_painter_(views::Painter::CreateVerticalGradient(
|
| + SkColorSetRGB(255, 242, 183),
|
| + SkColorSetRGB(250, 230, 145))) {
|
| views::Label* label =
|
| new views::Label(l10n_util::GetString(IDS_INSTANT_OPT_IN_LABEL));
|
| label->SetFont(label_font);
|
| @@ -227,11 +233,14 @@ class AutocompletePopupContentsView::InstantOptInView
|
| }
|
|
|
| virtual void Paint(gfx::Canvas* canvas) {
|
| - SkColor line_color = color_utils::AlphaBlend(GetColor(NORMAL, DIMMED_TEXT),
|
| - GetColor(NORMAL, BACKGROUND),
|
| - 48);
|
| - canvas->DrawLineInt(
|
| - line_color, 0, kOptInSeparatorSpacing, width(), kOptInSeparatorSpacing);
|
| + canvas->Save();
|
| + canvas->TranslateInt(kOptInBackgroundHInset, kOptInBackgroundVInset);
|
| + bg_painter_->Paint(width() - kOptInBackgroundHInset * 2,
|
| + height() - kOptInBackgroundVInset * 2, canvas);
|
| + canvas->DrawRectInt(ResourceBundle::toolbar_separator_color, 0, 0,
|
| + width() - kOptInBackgroundHInset * 2,
|
| + height() - kOptInBackgroundVInset * 2);
|
| + canvas->Restore();
|
| }
|
|
|
| private:
|
| @@ -252,6 +261,7 @@ class AutocompletePopupContentsView::InstantOptInView
|
| }
|
|
|
| AutocompletePopupContentsView* contents_view_;
|
| + scoped_ptr<views::Painter> bg_painter_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(InstantOptInView);
|
| };
|
| @@ -849,9 +859,14 @@ void AutocompletePopupContentsView::UpdatePopupAppearance() {
|
| for (size_t i = model_->result().size(); i < child_rv_count; ++i)
|
| GetChildViewAt(i)->SetVisible(false);
|
|
|
| - if (!opt_in_view_ && browser::ShouldShowInstantOptIn(model_->profile())) {
|
| + PromoCounter* counter = model_->profile()->GetInstantPromoCounter();
|
| + if (!opt_in_view_ && counter && counter->ShouldShow(base::Time::Now())) {
|
| opt_in_view_ = new InstantOptInView(this, result_bold_font_, result_font_);
|
| AddChildView(opt_in_view_);
|
| + } else if (opt_in_view_ && (!counter ||
|
| + !counter->ShouldShow(base::Time::Now()))) {
|
| + delete opt_in_view_;
|
| + opt_in_view_ = NULL;
|
| }
|
|
|
| if (opt_in_view_)
|
| @@ -1185,7 +1200,12 @@ gfx::Rect AutocompletePopupContentsView::CalculateTargetBounds(int h) {
|
| void AutocompletePopupContentsView::UserPressedOptIn(bool opt_in) {
|
| delete opt_in_view_;
|
| opt_in_view_ = NULL;
|
| - browser::UserPickedInstantOptIn(location_bar_->GetWindow()->GetNativeWindow(),
|
| - model_->profile(), opt_in);
|
| + PromoCounter* counter = model_->profile()->GetInstantPromoCounter();
|
| + DCHECK(counter);
|
| + counter->Hide();
|
| + if (opt_in) {
|
| + browser::ShowInstantConfirmDialogIfNecessary(
|
| + location_bar_->GetWindow()->GetNativeWindow(), model_->profile());
|
| + }
|
| UpdatePopupAppearance();
|
| }
|
|
|