1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// found in the LICENSE file.
4513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
5513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/chromeos/login/proxy_settings_dialog.h"
6513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
7513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch#include "chrome/browser/chromeos/login/helper.h"
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/common/url_constants.h"
972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/rect.h"
1072a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/size.h"
11513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
12513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace {
13513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
14513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch// Hints for size of proxy settings dialog.
15513209b27ff55e2841eac0e4120199c23acce758Ben Murdochconst int kProxySettingsDialogReasonableWidth = 750;
16201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdochconst int kProxySettingsDialogReasonableHeight = 550;
17513209b27ff55e2841eac0e4120199c23acce758Ben Murdochconst float kProxySettingsDialogReasonableWidthRatio = 0.4f;
18513209b27ff55e2841eac0e4120199c23acce758Ben Murdochconst float kProxySettingsDialogReasonableHeightRatio = 0.4f;
19513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenint CalculateSize(int screen_size, int min_comfortable, float desired_ratio) {
21513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  int desired_size = static_cast<int>(desired_ratio * screen_size);
22513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  desired_size = std::max(min_comfortable, desired_size);
23513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  return std::min(screen_size, desired_size);
24513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
25513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
26513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace
27513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
28513209b27ff55e2841eac0e4120199c23acce758Ben Murdochnamespace chromeos {
29513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
30513209b27ff55e2841eac0e4120199c23acce758Ben MurdochProxySettingsDialog::ProxySettingsDialog(LoginHtmlDialog::Delegate* delegate,
31513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                                         gfx::NativeWindow window)
32513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch    : LoginHtmlDialog(
33513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch          delegate,
34513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch          window,
35513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch          std::wstring(),
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen          GURL(chrome::kChromeUIProxySettingsURL),
37513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch          LoginHtmlDialog::STYLE_BUBBLE) {
38513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch  gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(gfx::Size()));
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  SetDialogSize(CalculateSize(screen_bounds.width(),
40513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                               kProxySettingsDialogReasonableWidth,
41513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                               kProxySettingsDialogReasonableWidthRatio),
42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                CalculateSize(screen_bounds.height(),
43513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                               kProxySettingsDialogReasonableHeight,
44513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch                               kProxySettingsDialogReasonableHeightRatio));
45513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}
46513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch
47513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch}  // namespace chromeos
48