chromium/ui/ozone/public/platform_global_shortcut_listener.h

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_OZONE_PUBLIC_PLATFORM_GLOBAL_SHORTCUT_LISTENER_H_
#define UI_OZONE_PUBLIC_PLATFORM_GLOBAL_SHORTCUT_LISTENER_H_

#include "base/component_export.h"
#include "base/memory/raw_ptr.h"
#include "ui/events/keycodes/keyboard_codes.h"

namespace ui {

// The platform implementation should notify the wrapper through this
// interface when the registered shortcut is activated, or when the
// implementation is destroyed.
class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListenerDelegate {};

// The interface to Ozone platform's functionality exposed to Chrome via
// extensions::GlobalShortcutListenerOzone.
//
// Lifetimes of extensions::GlobalShortcutListenerOzone and the platform
// implementation are independent, so these entities should decouple
// explicitly upon destruction through OnPlatformListenerDestroyed() and
// ResetDelegate(), depending on which object is destroyed first.
class COMPONENT_EXPORT(OZONE_BASE) PlatformGlobalShortcutListener {};

}  // namespace ui

#endif  // UI_OZONE_PUBLIC_PLATFORM_GLOBAL_SHORTCUT_LISTENER_H_