Home | History | Annotate | Download | only in login
      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