// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_ #define CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_ #pragma once #include "ui/gfx/native_widget_types.h" namespace views { class View; } // namespace views class Profile; namespace chromeos { // This class is an abstraction decoupling StatusAreaView from its host // window. class StatusAreaHost { public: // Different text styles for different types of backgrounds. enum TextStyle { kWhitePlain, kWhiteHaloed, kGrayEmbossed }; // The type of screen the host window is on. enum ScreenMode { kLoginMode, // The host is for the OOBE/login screens. kBrowserMode, // The host is for browser. kScreenLockerMode, // The host is for screen locker. }; // Returns the Profile if this status area is inside the browser and has a // profile. Otherwise, returns NULL. virtual Profile* GetProfile() const = 0; // Returns native window hosting the status area. virtual gfx::NativeWindow GetNativeWindow() const = 0; // Indicates if options dialog related to the button specified should be // shown. virtual bool ShouldOpenButtonOptions( const views::View* button_view) const = 0; // Opens options dialog related to the button specified. virtual void OpenButtonOptions(const views::View* button_view) = 0; // Executes browser command. virtual void ExecuteBrowserCommand(int id) const = 0; // Returns the text style. virtual TextStyle GetTextStyle() const = 0; // Returns the type of screen. virtual ScreenMode GetScreenMode() const = 0; protected: virtual ~StatusAreaHost() {} }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_STATUS_STATUS_AREA_HOST_H_