chromium/ui/events/ash/top_row_action_keys.h

// Copyright 2024 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_EVENTS_ASH_TOP_ROW_ACTION_KEYS_H_
#define UI_EVENTS_ASH_TOP_ROW_ACTION_KEYS_H_

namespace ui {

// TODO(dpad): Handle display mirror top row keys.
// This enum should mirror the enum `KeyboardTopRowLayout` in
// tools/metrics/histograms/enums.xml and values should not be changed.
#define TOP_ROW_ACTION_KEYS                          \
  TOP_ROW_ACTION_KEYS_ENTRY(None)                    \
  TOP_ROW_ACTION_KEYS_ENTRY(Unknown)                 \
  TOP_ROW_ACTION_KEYS_ENTRY(Back)                    \
  TOP_ROW_ACTION_KEYS_ENTRY(Forward)                 \
  TOP_ROW_ACTION_KEYS_ENTRY(Refresh)                 \
  TOP_ROW_ACTION_KEYS_ENTRY(Fullscreen)              \
  TOP_ROW_ACTION_KEYS_ENTRY(Overview)                \
  TOP_ROW_ACTION_KEYS_ENTRY(Screenshot)              \
  TOP_ROW_ACTION_KEYS_ENTRY(ScreenBrightnessDown)    \
  TOP_ROW_ACTION_KEYS_ENTRY(ScreenBrightnessUp)      \
  TOP_ROW_ACTION_KEYS_ENTRY(MicrophoneMute)          \
  TOP_ROW_ACTION_KEYS_ENTRY(VolumeMute)              \
  TOP_ROW_ACTION_KEYS_ENTRY(VolumeDown)              \
  TOP_ROW_ACTION_KEYS_ENTRY(VolumeUp)                \
  TOP_ROW_ACTION_KEYS_ENTRY(KeyboardBacklightToggle) \
  TOP_ROW_ACTION_KEYS_ENTRY(KeyboardBacklightDown)   \
  TOP_ROW_ACTION_KEYS_ENTRY(KeyboardBacklightUp)     \
  TOP_ROW_ACTION_KEYS_ENTRY(NextTrack)               \
  TOP_ROW_ACTION_KEYS_ENTRY(PreviousTrack)           \
  TOP_ROW_ACTION_KEYS_ENTRY(PlayPause)               \
  TOP_ROW_ACTION_KEYS_ENTRY(AllApplications)         \
  TOP_ROW_ACTION_KEYS_ENTRY(EmojiPicker)             \
  TOP_ROW_ACTION_KEYS_ENTRY(Dictation)               \
  TOP_ROW_ACTION_KEYS_ENTRY(PrivacyScreenToggle)     \
  TOP_ROW_ACTION_KEYS_LAST_ENTRY(Accessibility)

enum class TopRowActionKey {
#define TOP_ROW_ACTION_KEYS_ENTRY(top_row_key) k##top_row_key,
#define TOP_ROW_ACTION_KEYS_LAST_ENTRY(top_row_key) \
  k##top_row_key, kMaxValue = k##top_row_key,
  TOP_ROW_ACTION_KEYS
#undef TOP_ROW_ACTION_KEYS_LAST_ENTRY
#undef TOP_ROW_ACTION_KEYS_ENTRY
};

const char* GetTopRowActionKeyName(TopRowActionKey action);

}  // namespace ui

#endif  // UI_EVENTS_ASH_TOP_ROW_ACTION_KEYS_H_