configuration_shared.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2016 Citra Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <QCheckBox>
  6. #include <QComboBox>
  7. #include <QString>
  8. #include "core/settings.h"
  9. namespace ConfigurationShared {
  10. constexpr int USE_GLOBAL_INDEX = 0;
  11. constexpr int USE_GLOBAL_SEPARATOR_INDEX = 1;
  12. constexpr int USE_GLOBAL_OFFSET = 2;
  13. enum class CheckState {
  14. Off,
  15. On,
  16. Global,
  17. Count,
  18. };
  19. // Global-aware apply and set functions
  20. void ApplyPerGameSetting(Settings::Setting<bool>* setting, const QCheckBox* checkbox,
  21. const CheckState& tracker);
  22. void ApplyPerGameSetting(Settings::Setting<int>* setting, const QComboBox* combobox);
  23. void ApplyPerGameSetting(Settings::Setting<Settings::RendererBackend>* setting,
  24. const QComboBox* combobox);
  25. void ApplyPerGameSetting(Settings::Setting<Settings::GPUAccuracy>* setting,
  26. const QComboBox* combobox);
  27. void SetPerGameSetting(QCheckBox* checkbox, const Settings::Setting<bool>* setting);
  28. void SetPerGameSetting(QComboBox* combobox, const Settings::Setting<int>* setting);
  29. void SetPerGameSetting(QComboBox* combobox,
  30. const Settings::Setting<Settings::RendererBackend>* setting);
  31. void SetPerGameSetting(QComboBox* combobox,
  32. const Settings::Setting<Settings::GPUAccuracy>* setting);
  33. void SetHighlight(QWidget* widget, const std::string& name, bool highlighted);
  34. void SetColoredTristate(QCheckBox* checkbox, const std::string& name,
  35. const Settings::Setting<bool>& setting, CheckState& tracker);
  36. void SetColoredTristate(QCheckBox* checkbox, const std::string& name, bool global, bool state,
  37. bool global_state, CheckState& tracker);
  38. void SetColoredComboBox(QComboBox* combobox, QWidget* target, const std::string& target_name,
  39. int global);
  40. void InsertGlobalItem(QComboBox* combobox, int global_index);
  41. } // namespace ConfigurationShared