summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/first_run_bubble.cc
diff options
context:
space:
mode:
authorglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-16 21:06:31 +0000
committerglen@chromium.org <glen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-16 21:06:31 +0000
commit37d780293564b0c6178a4bfa25de302e3e5834d4 (patch)
tree7dd0e6e09da4c02417905b2ddbba7ee0b08bd67b /chrome/browser/views/first_run_bubble.cc
parentc9d01f92e082319a59215e2e812ca94168704695 (diff)
downloadchromium_src-37d780293564b0c6178a4bfa25de302e3e5834d4.zip
chromium_src-37d780293564b0c6178a4bfa25de302e3e5834d4.tar.gz
chromium_src-37d780293564b0c6178a4bfa25de302e3e5834d4.tar.bz2
rollback of r 162411
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16242 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/first_run_bubble.cc')
-rw-r--r--chrome/browser/views/first_run_bubble.cc150
1 files changed, 12 insertions, 138 deletions
diff --git a/chrome/browser/views/first_run_bubble.cc b/chrome/browser/views/first_run_bubble.cc
index 32d38da..0ca491c 100644
--- a/chrome/browser/views/first_run_bubble.cc
+++ b/chrome/browser/views/first_run_bubble.cc
@@ -16,10 +16,8 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
-#include "grit/theme_resources.h"
#include "views/event.h"
#include "views/controls/button/native_button.h"
-#include "views/controls/button/image_button.h"
#include "views/controls/label.h"
#include "views/focus/focus_manager.h"
#include "views/standard_layout.h"
@@ -31,17 +29,6 @@ namespace {
// provides.
static const int kBubblePadding = 4;
-// How much extra padding to put around our content over what the InfoBubble
-// provides in alternative OEM bubble.
-static const int kOEMBubblePadding = 4;
-
-// Padding between parts of strings on the same line (for instance,
-// "New!" and "Search from the address bar!"
-static const int kStringSeparationPadding = 2;
-
-// Margin around close button.
-static const int kMarginRightOfCloseButton = 7;
-
std::wstring GetDefaultSearchEngineName(Profile* profile) {
if (!profile) {
NOTREACHED();
@@ -60,18 +47,11 @@ std::wstring GetDefaultSearchEngineName(Profile* profile) {
} // namespace
-// Base class for implementations of the client view which appears inside the
-// first run bubble. It is a dialog-ish view, but is not a true dialog.
-class FirstRunBubbleViewBase : public views::View,
- public views::ButtonListener,
- public views::FocusChangeListener {
- public:
- // Called by FirstRunBubble::Show to request focus for the proper button
- // in the FirstRunBubbleView when it is shown.
- virtual void BubbleShown() = 0;
-};
-
-class FirstRunBubbleView : public FirstRunBubbleViewBase {
+// Implements the client view inside the first run bubble. It is kind of a
+// dialog-ish view, but is not a true dialog.
+class FirstRunBubbleView : public views::View,
+ public views::ButtonListener,
+ public views::FocusChangeListener {
public:
FirstRunBubbleView(FirstRunBubble* bubble_window, Profile* profile)
: bubble_window_(bubble_window),
@@ -123,6 +103,7 @@ class FirstRunBubbleView : public FirstRunBubbleViewBase {
keep_button_->RequestFocus();
}
+ // Overridden from ButtonListener.
virtual void ButtonPressed(views::Button* sender) {
bubble_window_->Close();
if (change_button_ == sender) {
@@ -134,6 +115,7 @@ class FirstRunBubbleView : public FirstRunBubbleViewBase {
}
}
+ // Overridden from views::View.
virtual void Layout() {
gfx::Size canvas = GetPreferredSize();
@@ -175,6 +157,7 @@ class FirstRunBubbleView : public FirstRunBubbleViewBase {
pref_size.width(), pref_size.height());
}
+ // Overridden from views::View.
virtual gfx::Size GetPreferredSize() {
return gfx::Size(views::Window::GetLocalizedContentsSize(
IDS_FIRSTRUNBUBBLE_DIALOG_WIDTH_CHARS,
@@ -207,111 +190,6 @@ class FirstRunBubbleView : public FirstRunBubbleViewBase {
DISALLOW_COPY_AND_ASSIGN(FirstRunBubbleView);
};
-class FirstRunOEMBubbleView : public FirstRunBubbleViewBase {
- public:
- FirstRunOEMBubbleView(FirstRunBubble* bubble_window, Profile* profile)
- : bubble_window_(bubble_window),
- label1_(NULL),
- label2_(NULL),
- label3_(NULL),
- close_button_(NULL) {
- ResourceBundle& rb = ResourceBundle::GetSharedInstance();
- ChromeFont& font = rb.GetFont(ResourceBundle::MediumFont);
-
- label1_ = new views::Label(
- l10n_util::GetString(IDS_FR_OEM_BUBBLE_TITLE_1));
- label1_->SetFont(font.DeriveFont(3, ChromeFont::BOLD));
- label1_->SetColor(SK_ColorRED);
- label1_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- AddChildView(label1_);
-
- label2_ = new views::Label(
- l10n_util::GetString(IDS_FR_OEM_BUBBLE_TITLE_2));
- label2_->SetFont(font.DeriveFont(3, ChromeFont::BOLD));
- label2_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- AddChildView(label2_);
-
- gfx::Size ps = GetPreferredSize();
-
- label3_ = new views::Label(
- l10n_util::GetString(IDS_FR_OEM_BUBBLE_SUBTEXT));
- label3_->SetMultiLine(true);
- label3_->SetFont(font);
- label3_->SetHorizontalAlignment(views::Label::ALIGN_LEFT);
- label3_->SizeToFit(ps.width() - kOEMBubblePadding * 2);
- AddChildView(label3_);
-
- close_button_ = new views::ImageButton(this);
- close_button_->SetImage(views::CustomButton::BS_NORMAL,
- rb.GetBitmapNamed(IDR_CLOSE_BAR));
- close_button_->SetImage(views::CustomButton::BS_HOT,
- rb.GetBitmapNamed(IDR_CLOSE_BAR_H));
- close_button_->SetImage(views::CustomButton::BS_PUSHED,
- rb.GetBitmapNamed(IDR_CLOSE_BAR_P));
-
- AddChildView(close_button_);
- }
-
- void BubbleShown() {
- // No button in oem_bubble to request focus.
- }
-
- virtual void ButtonPressed(views::Button* sender) {
- bubble_window_->Close();
- }
-
- virtual void Layout() {
- gfx::Size canvas = GetPreferredSize();
-
- // First, draw the close button on the far right.
- gfx::Size sz = close_button_->GetPreferredSize();
- close_button_->SetBounds(canvas.width() - sz.width() -
- kMarginRightOfCloseButton,
- kOEMBubblePadding,
- sz.width(),
- sz.height());
-
- gfx::Size pref_size = label1_->GetPreferredSize();
- label1_->SetBounds(kOEMBubblePadding, kOEMBubblePadding,
- pref_size.width() + kOEMBubblePadding * 2,
- pref_size.height());
-
- pref_size = label2_->GetPreferredSize();
- label2_->SetBounds(kOEMBubblePadding * 2 + label1_->
- GetPreferredSize().width(),
- kOEMBubblePadding,
- canvas.width() - kOEMBubblePadding * 2,
- pref_size.height());
-
- int next_v_space = label1_->y() + pref_size.height() +
- kRelatedControlSmallVerticalSpacing;
-
- pref_size = label3_->GetPreferredSize();
- label3_->SetBounds(kOEMBubblePadding, next_v_space,
- canvas.width() - kOEMBubblePadding * 2,
- pref_size.height());
- }
-
- virtual gfx::Size GetPreferredSize() {
- return gfx::Size(views::Window::GetLocalizedContentsSize(
- IDS_FIRSTRUNOEMBUBBLE_DIALOG_WIDTH_CHARS,
- IDS_FIRSTRUNOEMBUBBLE_DIALOG_HEIGHT_LINES));
- }
-
- virtual void FocusWillChange(View* focused_before, View* focused_now) {
- // No buttons in oem_bubble to register focus changes.
- }
-
- private:
- FirstRunBubble* bubble_window_;
- views::Label* label1_;
- views::Label* label2_;
- views::Label* label3_;
- views::ImageButton* close_button_;
-
- DISALLOW_COPY_AND_ASSIGN(FirstRunOEMBubbleView);
-};
-
// Keep the bubble around for kLingerTime milliseconds, to prevent accidental
// closure.
static const int kLingerTime = 1000;
@@ -323,6 +201,8 @@ void FirstRunBubble::OnActivate(UINT action, BOOL minimized, HWND window) {
if (action == WA_ACTIVE && !has_been_activated_) {
has_been_activated_ = true;
+ // Disable the browser to prevent accidental rapid clicks from closing the
+ // bubble.
::EnableWindow(GetParent(), false);
MessageLoop::current()->PostDelayedTask(FROM_HERE,
@@ -330,7 +210,6 @@ void FirstRunBubble::OnActivate(UINT action, BOOL minimized, HWND window) {
&FirstRunBubble::EnableParent),
kLingerTime);
}
-
InfoBubble::OnActivate(action, minimized, window);
}
@@ -347,14 +226,9 @@ void FirstRunBubble::InfoBubbleClosing(InfoBubble* info_bubble,
// static
FirstRunBubble* FirstRunBubble::Show(Profile* profile, HWND parent_hwnd,
- const gfx::Rect& position_relative_to,
- bool use_OEM_bubble) {
+ const gfx::Rect& position_relative_to) {
FirstRunBubble* window = new FirstRunBubble();
- FirstRunBubbleViewBase* view = NULL;
- if (use_OEM_bubble)
- view = new FirstRunOEMBubbleView(window, profile);
- else
- view = new FirstRunBubbleView(window, profile);
+ FirstRunBubbleView* view = new FirstRunBubbleView(window, profile);
window->SetDelegate(window);
window->set_view(view);
window->Init(parent_hwnd, position_relative_to, view);