#ifndef CHROME_BROWSER_UI_WEBUI_OPTIONS_FONT_SETTINGS_HANDLER_H_
#define CHROME_BROWSER_UI_WEBUI_OPTIONS_FONT_SETTINGS_HANDLER_H_
#include "base/memory/scoped_ptr.h"
#include "base/prefs/pref_member.h"
#include "chrome/browser/ui/webui/options/options_ui.h"
#include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h"
namespace base {
class ListValue;
}
namespace extensions {
class Extension;
}
namespace options {
class FontSettingsHandler : public OptionsPageUIHandler,
public content::NotificationObserver {
public:
FontSettingsHandler();
virtual ~FontSettingsHandler();
virtual void GetLocalizedValues(
base::DictionaryValue* localized_strings) OVERRIDE;
virtual void InitializeHandler() OVERRIDE;
virtual void InitializePage() OVERRIDE;
virtual void RegisterMessages() OVERRIDE;
private:
virtual void Observe(int type,
const content::NotificationSource& source,
const content::NotificationDetails& details) OVERRIDE;
void HandleFetchFontsData(const base::ListValue* args);
void FontsListHasLoaded(scoped_ptr<base::ListValue> list);
void SetUpStandardFontSample();
void SetUpSerifFontSample();
void SetUpSansSerifFontSample();
void SetUpFixedFontSample();
void SetUpMinimumFontSample();
const extensions::Extension* GetAdvancedFontSettingsExtension();
void NotifyAdvancedFontSettingsAvailability();
void HandleOpenAdvancedFontSettingsOptions(const base::ListValue* args);
void OnWebKitDefaultFontSizeChanged();
StringPrefMember standard_font_;
StringPrefMember serif_font_;
StringPrefMember sans_serif_font_;
StringPrefMember fixed_font_;
StringPrefMember font_encoding_;
IntegerPrefMember default_font_size_;
IntegerPrefMember default_fixed_font_size_;
IntegerPrefMember minimum_font_size_;
content::NotificationRegistrar registrar_;
DISALLOW_COPY_AND_ASSIGN(FontSettingsHandler);
};
}
#endif