15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file contains helper functions used by Chromium OS login. 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_ 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include <string> 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h" 135e3f23d412006dc4db4e659864679f29341e113fTorne (Richard Coles)#include "base/strings/string16.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "third_party/skia/include/core/SkColor.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/view.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GURL; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gfx { 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Rect; 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Size; 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace gfx 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace chromeos { 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns bounds of the screen to use for login wizard. 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The rect is centered within the default monitor and sized accordingly if 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// |size| is not empty. Otherwise the whole monitor is occupied. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)gfx::Rect CalculateScreenBounds(const gfx::Size& size); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Returns the size of user image required for proper display under current DPI. 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int GetCurrentUserImageSize(); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Define the constants in |login| namespace to avoid potential 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// conflict with other chromeos components. 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace login { 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Maximum size of user image, in which it should be saved to be properly 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// displayed under all possible DPI values. 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const int kMaxUserImageSize = 512; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Returns true if lock/login should scroll user pods into view itself when 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// virtual keyboard is shown and disable vk overscroll. 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)bool LoginScrollIntoViewEnabled(); 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 46ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// A helper class for easily mocking out Network*Handler calls for tests. 47ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass NetworkStateHelper { 48ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch public: 49ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch NetworkStateHelper(); 50ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual ~NetworkStateHelper(); 51ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 52ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Returns name of the currently connected network. 53ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // If there are no connected networks, returns name of the network 54ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // that is in the "connecting" state. Otherwise empty string is returned. 55ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // If there are multiple connected networks, network priority: 56ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Ethernet > WiFi > Cellular. Same for connecting network. 57a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) virtual base::string16 GetCurrentNetworkName() const; 58ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 59ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Returns true if the default network is in connected state. 60ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual bool IsConnected() const; 61ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 62ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Returns true if the default network is in connecting state. 63ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual bool IsConnecting() const; 64ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 65ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch private: 66ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch DISALLOW_COPY_AND_ASSIGN(NetworkStateHelper); 67ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}; 68ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace login 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace chromeos 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_ 74