3
0
Fork 0
forked from suyu/suyu
suyu/src/yuzu/ui_settings.h
Lioncash 30dfd89126 ui_settings: Place definition of the theme array within the cpp file
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.
2018-10-04 09:43:51 -04:00

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