30dfd89126
Placing the array wholesale into the header places a copy of the whole array into every translation unit that uses the data, which is wasteful. Particularly given that this array is referenced from three different translation units. This also changes the array to contain pairs of const char*, rather than QString instances. This way, the string data is able to be fixed into the read-only segment of the program, as well as eliminate static constructors/heap allocation immediately on program start.
65 lines
1.3 KiB
C++
65 lines
1.3 KiB
C++
// Copyright 2016 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <array>
|
|
#include <vector>
|
|
#include <QByteArray>
|
|
#include <QString>
|
|
#include <QStringList>
|
|
|
|
namespace UISettings {
|
|
|
|
using ContextualShortcut = std::pair<QString, int>;
|
|
using Shortcut = std::pair<QString, ContextualShortcut>;
|
|
|
|
using Themes = std::array<std::pair<const char*, const char*>, 2>;
|
|
extern const Themes themes;
|
|
|
|
struct Values {
|
|
QByteArray geometry;
|
|
QByteArray state;
|
|
|
|
QByteArray renderwindow_geometry;
|
|
|
|
QByteArray gamelist_header_state;
|
|
|
|
QByteArray microprofile_geometry;
|
|
bool microprofile_visible;
|
|
|
|
bool single_window_mode;
|
|
bool fullscreen;
|
|
bool display_titlebar;
|
|
bool show_filter_bar;
|
|
bool show_status_bar;
|
|
|
|
bool confirm_before_closing;
|
|
bool first_start;
|
|
|
|
QString roms_path;
|
|
QString symbols_path;
|
|
QString gamedir;
|
|
bool gamedir_deepscan;
|
|
QStringList recent_files;
|
|
|
|
QString theme;
|
|
|
|
// Shortcut name <Shortcut, context>
|
|
std::vector<Shortcut> shortcuts;
|
|
|
|
uint32_t callout_flags;
|
|
|
|
// logging
|
|
bool show_console;
|
|
|
|
// Game List
|
|
bool show_unknown;
|
|
uint32_t icon_size;
|
|
uint8_t row_1_text_id;
|
|
uint8_t row_2_text_id;
|
|
};
|
|
|
|
extern Values values;
|
|
} // namespace UISettings
|