font_settings_handler.h revision dc0f95d653279beabeb9817299e2902918ba123e
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_FONT_SETTINGS_HANDLER_H_
6#define CHROME_BROWSER_UI_WEBUI_OPTIONS_FONT_SETTINGS_HANDLER_H_
7#pragma once
8
9#include "chrome/browser/prefs/pref_member.h"
10#include "chrome/browser/ui/webui/options/font_settings_fonts_list_loader.h"
11#include "chrome/browser/ui/webui/options/options_ui.h"
12
13// Font settings overlay page UI handler.
14class FontSettingsHandler : public OptionsPageUIHandler,
15                            public FontSettingsFontsListLoader::Observer {
16 public:
17  FontSettingsHandler();
18  virtual ~FontSettingsHandler();
19
20  // OptionsPageUIHandler implementation.
21  virtual void GetLocalizedValues(DictionaryValue* localized_strings);
22  virtual void Initialize();
23
24  // WebUIMessageHandler implementation.
25  virtual WebUIMessageHandler* Attach(WebUI* web_ui);
26  virtual void RegisterMessages();
27
28  // NotificationObserver implementation.
29  virtual void Observe(NotificationType type,
30                       const NotificationSource& source,
31                       const NotificationDetails& details);
32
33  // FontSettingsFontsListLoader::Observer implementation.
34  virtual void FontsListHasLoaded();
35
36 private:
37  void HandleFetchFontsData(const ListValue* args);
38
39  void SetupStandardFontSample();
40  void SetupFixedFontSample();
41  void SetupMinimumFontSample();
42
43  StringPrefMember standard_font_;
44  StringPrefMember fixed_font_;
45  StringPrefMember font_encoding_;
46  IntegerPrefMember default_font_size_;
47  IntegerPrefMember default_fixed_font_size_;
48  IntegerPrefMember minimum_font_size_;
49
50  scoped_refptr<FontSettingsFontsListLoader> fonts_list_loader_;
51
52  DISALLOW_COPY_AND_ASSIGN(FontSettingsHandler);
53};
54
55#endif  // CHROME_BROWSER_UI_WEBUI_OPTIONS_FONT_SETTINGS_HANDLER_H_
56