1// Copyright (c) 2011 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#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_OPTIONS_MANAGED_BANNER_HANDLER_H_
6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_OPTIONS_MANAGED_BANNER_HANDLER_H_
7#pragma once
8
9#include "base/string16.h"
10#include "chrome/browser/policy/managed_prefs_banner_base.h"
11#include "chrome/browser/ui/options/options_window.h"
12
13class WebUI;
14
15// Managed options banner handler.
16// Controls the display of a banner if an options panel contains options
17// that are under administator control.
18class OptionsManagedBannerHandler : public policy::ManagedPrefsBannerBase {
19 public:
20  OptionsManagedBannerHandler(WebUI* web_ui, const string16& page_name,
21                              OptionsPage page);
22  virtual ~OptionsManagedBannerHandler();
23
24 protected:
25  // ManagedPrefsBannerBase implementation.
26  virtual void OnUpdateVisibility();
27
28 private:
29  // Set the managed options banner to be visible or invisible.
30  void SetupBannerVisibility();
31
32  WebUI* web_ui_;  // weak reference to the WebUI.
33  string16 page_name_;  // current options page name.
34  OptionsPage page_;  // current options page value.
35
36  DISALLOW_COPY_AND_ASSIGN(OptionsManagedBannerHandler);
37};
38
39#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_OPTIONS_MANAGED_BANNER_HANDLER_H_
40