1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/chromeos/login/proxy_settings_dialog.h" 6 7 #include "chrome/browser/chromeos/login/helper.h" 8 #include "chrome/common/url_constants.h" 9 #include "ui/gfx/rect.h" 10 #include "ui/gfx/size.h" 11 12 namespace { 13 14 // Hints for size of proxy settings dialog. 15 const int kProxySettingsDialogReasonableWidth = 750; 16 const int kProxySettingsDialogReasonableHeight = 550; 17 const float kProxySettingsDialogReasonableWidthRatio = 0.4f; 18 const float kProxySettingsDialogReasonableHeightRatio = 0.4f; 19 20 int CalculateSize(int screen_size, int min_comfortable, float desired_ratio) { 21 int desired_size = static_cast<int>(desired_ratio * screen_size); 22 desired_size = std::max(min_comfortable, desired_size); 23 return std::min(screen_size, desired_size); 24 } 25 26 } // namespace 27 28 namespace chromeos { 29 30 ProxySettingsDialog::ProxySettingsDialog(LoginHtmlDialog::Delegate* delegate, 31 gfx::NativeWindow window) 32 : LoginHtmlDialog( 33 delegate, 34 window, 35 std::wstring(), 36 GURL(chrome::kChromeUIProxySettingsURL), 37 LoginHtmlDialog::STYLE_BUBBLE) { 38 gfx::Rect screen_bounds(chromeos::CalculateScreenBounds(gfx::Size())); 39 SetDialogSize(CalculateSize(screen_bounds.width(), 40 kProxySettingsDialogReasonableWidth, 41 kProxySettingsDialogReasonableWidthRatio), 42 CalculateSize(screen_bounds.height(), 43 kProxySettingsDialogReasonableHeight, 44 kProxySettingsDialogReasonableHeightRatio)); 45 } 46 47 } // namespace chromeos 48