blob: 5b234ad12e1d2a7aa08b328e81faf094f6034336 [file] [log] [blame]
// Copyright (c) 2012 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_UI_METRO_DRIVER_SETTINGS_HANDLER_H_
#define CHROME_BROWSER_UI_METRO_DRIVER_SETTINGS_HANDLER_H_
#include <windows.ui.applicationsettings.h>
#include <windows.ui.popups.h>
#include "winrt_utils.h"
// This class handles the settings charm.
class SettingsHandler {
public:
SettingsHandler();
~SettingsHandler();
HRESULT Initialize();
private:
typedef winfoundtn::Collections::IVector<
winui::ApplicationSettings::SettingsCommand*> ISettingsCommandVector;
HRESULT OnSettingsCommandsRequested(
winui::ApplicationSettings::ISettingsPane* settings_pane,
winui::ApplicationSettings::
ISettingsPaneCommandsRequestedEventArgs* args);
HRESULT AppendNewSettingsCommand(
const wchar_t* id,
const wchar_t* name,
winui::ApplicationSettings::ISettingsCommandFactory*
settings_command_factory,
ISettingsCommandVector* settings_command_vector);
static HRESULT OnSettings(winui::Popups::IUICommand* command);
static HRESULT GetSettingsId(const wchar_t* value,
winfoundtn::IPropertyValue** settings_id);
EventRegistrationToken settings_token_;
};
#endif // CHROME_BROWSER_UI_METRO_DRIVER_SETTINGS_HANDLER_H_