summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/first_run_view_base.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/first_run_view_base.cc')
-rw-r--r--chrome/browser/views/first_run_view_base.cc36
1 files changed, 33 insertions, 3 deletions
diff --git a/chrome/browser/views/first_run_view_base.cc b/chrome/browser/views/first_run_view_base.cc
index df1268b..81e72fee 100644
--- a/chrome/browser/views/first_run_view_base.cc
+++ b/chrome/browser/views/first_run_view_base.cc
@@ -12,6 +12,8 @@
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/first_run.h"
+#include "chrome/browser/shell_integration.h"
+#include "chrome/browser/user_metrics.h"
#include "chrome/browser/views/standard_layout.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/l10n_util.h"
@@ -19,6 +21,7 @@
#include "chrome/common/pref_service.h"
#include "chrome/common/resource_bundle.h"
#include "chrome/views/background.h"
+#include "chrome/views/checkbox.h"
#include "chrome/views/client_view.h"
#include "chrome/views/image_view.h"
#include "chrome/views/label.h"
@@ -26,12 +29,14 @@
#include "chrome/views/separator.h"
#include "chrome/views/window.h"
+#include "chromium_strings.h"
#include "generated_resources.h"
FirstRunViewBase::FirstRunViewBase(Profile* profile)
: preferred_width_(0),
background_image_(NULL),
separator_1_(NULL),
+ default_browser_(NULL),
separator_2_(NULL),
importer_host_(NULL),
profile_(profile) {
@@ -91,6 +96,12 @@ void FirstRunViewBase::SetupControls() {
separator_1_ = new ChromeViews::Separator;
AddChildView(separator_1_);
+ // The "make us default browser" check box.
+ default_browser_ = new ChromeViews::CheckBox(
+ l10n_util::GetString(IDS_FR_CUSTOMIZE_DEFAULT_BROWSER));
+ default_browser_->SetMultiLine(true);
+ AddChildView(default_browser_);
+
// The second separator marks the start of buttons.
separator_2_ = new ChromeViews::Separator;
AddChildView(separator_2_);
@@ -124,10 +135,17 @@ void FirstRunViewBase::Layout() {
separator_1_->GetPreferredSize(&pref_size);
separator_1_->SetBounds(0 , next_v_space, canvas.cx + 1, pref_size.cy);
- next_v_space = canvas.cy - kPanelSubVerticalSpacing;
+ next_v_space = canvas.cy - kPanelSubVerticalSpacing - 2 * kVertSpacing;
separator_2_->GetPreferredSize(&pref_size);
separator_2_->SetBounds(kPanelHorizMargin , next_v_space,
- canvas.cx - 2*kPanelHorizMargin, pref_size.cy);
+ canvas.cx - 2 * kPanelHorizMargin, pref_size.cy);
+
+ next_v_space = separator_2_->y() + separator_2_->height() + kVertSpacing;
+
+ int width = canvas.cx - 2 * kPanelHorizMargin;
+ int height = default_browser_->GetHeightForWidth(width);
+ default_browser_->SetBounds(kPanelHorizMargin, next_v_space, width, height);
+ AdjustDialogWidth(default_browser_);
}
bool FirstRunViewBase::CanResize() const {
@@ -146,6 +164,13 @@ bool FirstRunViewBase::HasAlwaysOnTopMenu() const {
return false;
}
+std::wstring FirstRunViewBase::GetDialogButtonLabel(DialogButton button) const {
+ if (DIALOGBUTTON_OK == button)
+ return l10n_util::GetString(IDS_FIRSTRUN_DLG_OK);
+ // The other buttons get the default text.
+ return std::wstring();
+}
+
int FirstRunViewBase::GetDefaultImportItems() const {
// It is best to avoid importing cookies because there is a bug that make
// the process take way too much time among other issues. So for the time
@@ -158,6 +183,7 @@ void FirstRunViewBase::DisableButtons() {
ChromeViews::DialogClientView* dcv = GetDialogClientView();
dcv->ok_button()->SetEnabled(false);
dcv->cancel_button()->SetEnabled(false);
+ default_browser_->SetEnabled(false);
}
bool FirstRunViewBase::CreateDesktopShortcut() {
@@ -168,7 +194,11 @@ bool FirstRunViewBase::CreateQuickLaunchShortcut() {
return FirstRun::CreateChromeQuickLaunchShortcut();
}
+bool FirstRunViewBase::SetDefaultBrowser() {
+ UserMetrics::RecordAction(L"FirstRun_Do_DefBrowser", profile_);
+ return ShellIntegration::SetAsDefaultBrowser();
+}
+
bool FirstRunViewBase::FirstRunComplete() {
return FirstRun::CreateSentinel();
}
-