1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_ 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/native_widget_types.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace views { 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass View; 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace views 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass Profile; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace chromeos { 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// This class is an abstraction decoupling StatusAreaView from its host 20c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// window. 21c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass StatusAreaHost { 22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public: 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Different text styles for different types of backgrounds. 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen enum TextStyle { 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kWhitePlain, 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kWhiteHaloed, 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kGrayEmbossed 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen }; 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // The type of screen the host window is on. 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen enum ScreenMode { 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kLoginMode, // The host is for the OOBE/login screens. 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kBrowserMode, // The host is for browser. 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen kScreenLockerMode, // The host is for screen locker. 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen }; 36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 37c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns the Profile if this status area is inside the browser and has a 38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // profile. Otherwise, returns NULL. 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual Profile* GetProfile() const = 0; 40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Returns native window hosting the status area. 42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual gfx::NativeWindow GetNativeWindow() const = 0; 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Indicates if options dialog related to the button specified should be 45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // shown. 46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual bool ShouldOpenButtonOptions( 47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch const views::View* button_view) const = 0; 48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Opens options dialog related to the button specified. 50513209b27ff55e2841eac0e4120199c23acce758Ben Murdoch virtual void OpenButtonOptions(const views::View* button_view) = 0; 51c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 52c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch // Executes browser command. 53c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual void ExecuteBrowserCommand(int id) const = 0; 54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // Returns the text style. 56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual TextStyle GetTextStyle() const = 0; 57c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen // Returns the type of screen. 5972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen virtual ScreenMode GetScreenMode() const = 0; 60c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch protected: 62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch virtual ~StatusAreaHost() {} 63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} // namespace chromeos 66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif // CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_ 68