mirror of https://github.com/PCSX2/pcsx2.git
ImGuiManager: Localization support
This commit is contained in:
parent
c4c7d26bb3
commit
c359223fd4
|
@ -31,6 +31,7 @@
|
|||
#include "Recording/InputRecording.h"
|
||||
#include "VMManager.h"
|
||||
|
||||
#include "common/FileSystem.h"
|
||||
#include "common/StringUtil.h"
|
||||
#include "common/Timer.h"
|
||||
|
||||
|
@ -60,6 +61,9 @@ namespace ImGuiManager
|
|||
|
||||
static float s_global_scale = 1.0f;
|
||||
|
||||
static std::string s_font_path;
|
||||
static const ImWchar* s_font_range = nullptr;
|
||||
|
||||
static ImFont* s_standard_font;
|
||||
static ImFont* s_fixed_font;
|
||||
static ImFont* s_medium_font;
|
||||
|
@ -82,6 +86,18 @@ static std::unordered_map<u32, ImGuiKey> s_imgui_key_map;
|
|||
// need to keep track of this, so we can reinitialize on renderer switch
|
||||
static bool s_fullscreen_ui_was_initialized = false;
|
||||
|
||||
void ImGuiManager::SetFontPath(std::string path)
|
||||
{
|
||||
s_font_path = std::move(path);
|
||||
s_standard_font_data = {};
|
||||
}
|
||||
|
||||
void ImGuiManager::SetFontRange(const u16* range)
|
||||
{
|
||||
s_font_range = range;
|
||||
s_standard_font_data = {};
|
||||
}
|
||||
|
||||
bool ImGuiManager::Initialize()
|
||||
{
|
||||
if (!LoadFontData())
|
||||
|
@ -333,7 +349,9 @@ bool ImGuiManager::LoadFontData()
|
|||
{
|
||||
if (s_standard_font_data.empty())
|
||||
{
|
||||
std::optional<std::vector<u8>> font_data = Host::ReadResourceFile("fonts/Roboto-Regular.ttf");
|
||||
std::optional<std::vector<u8>> font_data = s_font_path.empty() ?
|
||||
Host::ReadResourceFile("fonts/Roboto-Regular.ttf") :
|
||||
FileSystem::ReadBinaryFile(s_font_path.c_str());
|
||||
if (!font_data.has_value())
|
||||
return false;
|
||||
|
||||
|
@ -393,7 +411,7 @@ ImFont* ImGuiManager::AddTextFont(float size)
|
|||
ImFontConfig cfg;
|
||||
cfg.FontDataOwnedByAtlas = false;
|
||||
return ImGui::GetIO().Fonts->AddFontFromMemoryTTF(
|
||||
s_standard_font_data.data(), static_cast<int>(s_standard_font_data.size()), size, &cfg, default_ranges);
|
||||
s_standard_font_data.data(), static_cast<int>(s_standard_font_data.size()), size, &cfg, s_font_range ? s_font_range : default_ranges);
|
||||
}
|
||||
|
||||
ImFont* ImGuiManager::AddFixedFont(float size)
|
||||
|
|
|
@ -26,6 +26,12 @@ enum class GenericInputBinding : u8;
|
|||
|
||||
namespace ImGuiManager
|
||||
{
|
||||
/// Sets the path to the font to use. Empty string means to use the default.
|
||||
void SetFontPath(std::string path);
|
||||
|
||||
/// Sets the glyph range to use when loading fonts.
|
||||
void SetFontRange(const u16* range);
|
||||
|
||||
/// Initializes ImGui, creates fonts, etc.
|
||||
bool Initialize();
|
||||
|
||||
|
@ -106,4 +112,4 @@ namespace Host
|
|||
|
||||
/// Called by ImGuiManager when the cursor leaves a text field.
|
||||
void EndTextInput();
|
||||
}
|
||||
} // namespace Host
|
|
@ -42,7 +42,7 @@
|
|||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\libpng</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\libchdr\libchdr\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\cubeb\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\imgui\include;$(SolutionDir)3rdparty\imgui\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\imgui\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\simpleini\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\sdl2\include;$(SolutionDir)3rdparty\sdl2\SDL\include</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(SolutionDir)3rdparty\libzip;$(SolutionDir)3rdparty\libzip\libzip\lib</AdditionalIncludeDirectories>
|
||||
|
|
Loading…
Reference in New Issue