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