1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- // Copyright 2015 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 COMPONENTS_FLAGS_UI_FEATURE_ENTRY_MACROS_H_
- #define COMPONENTS_FLAGS_UI_FEATURE_ENTRY_MACROS_H_
- #include "build/chromeos_buildflags.h"
- // Macros to simplify specifying the type of FeatureEntry. Please refer to
- // the comments on FeatureEntry::Type in feature_entry.h, which explain the
- // different entry types and when they should be used.
- #define SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \
- flags_ui::FeatureEntry::SINGLE_VALUE, { \
- .switches = { command_line_switch, switch_value, nullptr, nullptr } \
- }
- #define SINGLE_VALUE_TYPE(command_line_switch) \
- SINGLE_VALUE_TYPE_AND_VALUE(command_line_switch, "")
- #define ORIGIN_LIST_VALUE_TYPE(command_line_switch, switch_value) \
- flags_ui::FeatureEntry::ORIGIN_LIST_VALUE, { \
- .switches = { command_line_switch, switch_value, nullptr, nullptr } \
- }
- #define SINGLE_DISABLE_VALUE_TYPE_AND_VALUE(command_line_switch, switch_value) \
- flags_ui::FeatureEntry::SINGLE_DISABLE_VALUE, { \
- .switches = { command_line_switch, switch_value, nullptr, nullptr } \
- }
- #define SINGLE_DISABLE_VALUE_TYPE(command_line_switch) \
- SINGLE_DISABLE_VALUE_TYPE_AND_VALUE(command_line_switch, "")
- #define ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, enable_value, \
- disable_switch, disable_value) \
- flags_ui::FeatureEntry::ENABLE_DISABLE_VALUE, { \
- .switches = { enable_switch, enable_value, disable_switch, disable_value } \
- }
- #define ENABLE_DISABLE_VALUE_TYPE(enable_switch, disable_switch) \
- ENABLE_DISABLE_VALUE_TYPE_AND_VALUE(enable_switch, "", disable_switch, "")
- #define MULTI_VALUE_TYPE(choices_list) \
- flags_ui::FeatureEntry::MULTI_VALUE, { .choices = choices_list }
- #define FEATURE_VALUE_TYPE(feature_entry) \
- flags_ui::FeatureEntry::FEATURE_VALUE, { \
- .feature = { &feature_entry, {}, nullptr } \
- }
- #define FEATURE_WITH_PARAMS_VALUE_TYPE(feature_entry, feature_variations, \
- feature_trial) \
- flags_ui::FeatureEntry::FEATURE_WITH_PARAMS_VALUE, { \
- .feature = { &feature_entry, feature_variations, feature_trial } \
- }
- #if BUILDFLAG(IS_CHROMEOS_ASH)
- #define PLATFORM_FEATURE_NAME_TYPE(name) \
- flags_ui::FeatureEntry::PLATFORM_FEATURE_NAME_VALUE, { \
- .platform_feature_name = { name, {}, nullptr } \
- }
- #define PLATFORM_FEATURE_WITH_PARAMS_VALUE_TYPE(name, feature_variations, \
- feature_trial) \
- flags_ui::FeatureEntry::PLATFORM_FEATURE_NAME_WITH_PARAMS_VALUE, { \
- .platform_feature_name = { name, feature_variations, feature_trial } \
- }
- #endif // BUILDFLAG(IS_CHROMEOS_ASH)
- #endif // COMPONENTS_FLAGS_UI_FEATURE_ENTRY_MACROS_H_
|