#ifndef CHROME_BROWSER_BACKGROUND_GLIC_GLIC_LAUNCHER_CONFIGURATION_H_
#define CHROME_BROWSER_BACKGROUND_GLIC_GLIC_LAUNCHER_CONFIGURATION_H_
#include "base/memory/raw_ptr.h"
#include "base/observer_list.h"
#include "base/observer_list_types.h"
#include "components/prefs/pref_change_registrar.h"
#include "ui/base/accelerators/accelerator.h"
namespace glic {
class GlicLauncherConfiguration {
public:
class Observer : public base::CheckedObserver {
public:
virtual void OnEnabledChanged(bool enabled) {}
virtual void OnGlobalHotkeyChanged(ui::Accelerator hotkey) {}
};
explicit GlicLauncherConfiguration(Observer* manager);
~GlicLauncherConfiguration();
static bool IsEnabled(bool* is_default_value = nullptr);
static ui::Accelerator GetGlobalHotkey();
static ui::Accelerator GetDefaultHotkey();
private:
void OnEnabledPrefChanged();
void OnGlobalHotkeyPrefChanged();
PrefChangeRegistrar pref_registrar_;
raw_ptr<Observer> manager_;
};
}
#endif