1 // Copyright (c) 2012 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/helper.h" 6 7 #include "ash/shell.h" 8 #include "base/command_line.h" 9 #include "base/strings/utf_string_conversions.h" 10 #include "chrome/grit/generated_resources.h" 11 #include "chromeos/chromeos_switches.h" 12 #include "chromeos/network/network_handler.h" 13 #include "chromeos/network/network_state.h" 14 #include "chromeos/network/network_state_handler.h" 15 #include "third_party/cros_system_api/dbus/service_constants.h" 16 #include "ui/base/l10n/l10n_util.h" 17 #include "ui/gfx/image/image_skia.h" 18 #include "ui/gfx/screen.h" 19 20 namespace chromeos { 21 CalculateScreenBounds(const gfx::Size & size)22gfx::Rect CalculateScreenBounds(const gfx::Size& size) { 23 gfx::Rect bounds(ash::Shell::GetScreen()->GetPrimaryDisplay().bounds()); 24 if (!size.IsEmpty()) { 25 int horizontal_diff = bounds.width() - size.width(); 26 int vertical_diff = bounds.height() - size.height(); 27 bounds.Inset(horizontal_diff / 2, vertical_diff / 2); 28 } 29 return bounds; 30 } 31 GetCurrentUserImageSize()32int GetCurrentUserImageSize() { 33 // The biggest size that the profile picture is displayed at is currently 34 // 220px, used for the big preview on OOBE and Change Picture options page. 35 static const int kBaseUserImageSize = 220; 36 float scale_factor = gfx::Display::GetForcedDeviceScaleFactor(); 37 if (scale_factor > 1.0f) 38 return static_cast<int>(scale_factor * kBaseUserImageSize); 39 return kBaseUserImageSize * gfx::ImageSkia::GetMaxSupportedScale(); 40 } 41 42 namespace login { 43 LoginScrollIntoViewEnabled()44bool LoginScrollIntoViewEnabled() { 45 #if defined(USE_ATHENA) 46 // TODO(nkostylev): temporary always enable overscroll mode for Athena, 47 // later we will need special API in Blink to specify which element need to 48 // be centered when virtual keyboard shown, crbug.com/411879 49 return false; 50 #else 51 return !CommandLine::ForCurrentProcess()->HasSwitch( 52 chromeos::switches::kDisableLoginScrollIntoView); 53 #endif 54 } 55 NetworkStateHelper()56NetworkStateHelper::NetworkStateHelper() {} ~NetworkStateHelper()57NetworkStateHelper::~NetworkStateHelper() {} 58 GetCurrentNetworkName() const59base::string16 NetworkStateHelper::GetCurrentNetworkName() const { 60 NetworkStateHandler* nsh = NetworkHandler::Get()->network_state_handler(); 61 const NetworkState* network = 62 nsh->ConnectedNetworkByType(NetworkTypePattern::NonVirtual()); 63 if (network) { 64 if (network->Matches(NetworkTypePattern::Ethernet())) 65 return l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); 66 return base::UTF8ToUTF16(network->name()); 67 } 68 69 network = nsh->ConnectingNetworkByType(NetworkTypePattern::NonVirtual()); 70 if (network) { 71 if (network->Matches(NetworkTypePattern::Ethernet())) 72 return l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); 73 return base::UTF8ToUTF16(network->name()); 74 } 75 return base::string16(); 76 } 77 IsConnected() const78bool NetworkStateHelper::IsConnected() const { 79 chromeos::NetworkStateHandler* nsh = 80 chromeos::NetworkHandler::Get()->network_state_handler(); 81 return nsh->ConnectedNetworkByType(chromeos::NetworkTypePattern::Default()) != 82 NULL; 83 } 84 IsConnecting() const85bool NetworkStateHelper::IsConnecting() const { 86 chromeos::NetworkStateHandler* nsh = 87 chromeos::NetworkHandler::Get()->network_state_handler(); 88 return nsh->ConnectingNetworkByType( 89 chromeos::NetworkTypePattern::Default()) != NULL; 90 } 91 92 } // namespace login 93 94 } // namespace chromeos 95