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// This file contains helper functions used by Chromium OS login.
6
7#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_
8#define CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_
9
10#include <string>
11
12#include "base/compiler_specific.h"
13#include "base/strings/string16.h"
14#include "third_party/skia/include/core/SkColor.h"
15#include "ui/views/view.h"
16
17class GURL;
18
19namespace gfx {
20class Rect;
21class Size;
22}  // namespace gfx
23
24namespace chromeos {
25
26// Returns bounds of the screen to use for login wizard.
27// The rect is centered within the default monitor and sized accordingly if
28// |size| is not empty. Otherwise the whole monitor is occupied.
29gfx::Rect CalculateScreenBounds(const gfx::Size& size);
30
31// Returns the size of user image required for proper display under current DPI.
32int GetCurrentUserImageSize();
33
34// Define the constants in |login| namespace to avoid potential
35// conflict with other chromeos components.
36namespace login {
37
38// Maximum size of user image, in which it should be saved to be properly
39// displayed under all possible DPI values.
40const int kMaxUserImageSize = 512;
41
42// Returns true if lock/login should scroll user pods into view itself when
43// virtual keyboard is shown and disable vk overscroll.
44bool LoginScrollIntoViewEnabled();
45
46// A helper class for easily mocking out Network*Handler calls for tests.
47class NetworkStateHelper {
48 public:
49  NetworkStateHelper();
50  virtual ~NetworkStateHelper();
51
52  // Returns name of the currently connected network.
53  // If there are no connected networks, returns name of the network
54  // that is in the "connecting" state. Otherwise empty string is returned.
55  // If there are multiple connected networks, network priority:
56  // Ethernet > WiFi > Cellular. Same for connecting network.
57  virtual base::string16 GetCurrentNetworkName() const;
58
59  // Returns true if the default network is in connected state.
60  virtual bool IsConnected() const;
61
62  // Returns true if the default network is in connecting state.
63  virtual bool IsConnecting() const;
64
65 private:
66  DISALLOW_COPY_AND_ASSIGN(NetworkStateHelper);
67};
68
69}  // namespace login
70
71}  // namespace chromeos
72
73#endif  // CHROME_BROWSER_CHROMEOS_LOGIN_HELPER_H_
74