Skip to content

Commit bb79c3a

Browse files
authored
Added a setting to select font size in the editor (#585)
1 parent 2d6cd5a commit bb79c3a

File tree

6 files changed

+61
-6
lines changed

6 files changed

+61
-6
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* @project: Overload
3+
* @author: Overload Tech.
4+
* @licence: MIT
5+
*/
6+
7+
#pragma once
8+
9+
namespace OvEditor::Settings
10+
{
11+
enum class EFontSize
12+
{
13+
SMALL = 0,
14+
MEDIUM = 1,
15+
BIG = 2,
16+
DEFAULT = MEDIUM
17+
};
18+
19+
constexpr std::string_view GetFontID(EFontSize p_size)
20+
{
21+
switch (p_size)
22+
{
23+
case EFontSize::SMALL: return "Small";
24+
case EFontSize::MEDIUM: return "Medium";
25+
case EFontSize::BIG: return "Big";
26+
}
27+
28+
return {};
29+
}
30+
}

Sources/Overload/OvEditor/include/OvEditor/Settings/EditorSettings.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#pragma once
88

9+
#include <OvEditor/Settings/EFontSize.h>
910
#include <OvTools/Eventing/Event.h>
1011
#include <OvUI/Styling/EStyle.h>
1112

@@ -96,5 +97,6 @@ namespace OvEditor::Settings
9697
inline static Property<float> ScalingSnapUnit = { 1.0f };
9798
inline static Property<int> ColorTheme = { static_cast<int>(OvUI::Styling::EStyle::DEFAULT_DARK) };
9899
inline static Property<int> ConsoleMaxLogs = { 500 };
100+
inline static Property<int> FontSize = { static_cast<int>(EFontSize::DEFAULT) };
99101
};
100102
}

Sources/Overload/OvEditor/src/OvEditor/Core/Context.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,13 @@ OvEditor::Core::Context::Context(const std::filesystem::path& p_projectFolder) :
126126
uiManager->ResetLayout(defaultLayoutPath.string());
127127
}
128128

129-
uiManager->LoadFont("Ruda_Big", fontPath.string(), 16);
130-
uiManager->LoadFont("Ruda_Small", fontPath.string(), 12);
131-
uiManager->LoadFont("Ruda_Medium", fontPath.string(), 14);
132-
uiManager->UseFont("Ruda_Medium");
129+
uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::BIG) }, fontPath.string(), 18);
130+
uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::MEDIUM) }, fontPath.string(), 15);
131+
uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::SMALL) }, fontPath.string(), 12);
132+
uiManager->UseFont(std::string{ Settings::GetFontID(
133+
static_cast<Settings::EFontSize>(Settings::EditorSettings::FontSize.Get())
134+
) });
135+
133136
uiManager->SetEditorLayoutSaveFilename(OvEditor::Utils::FileSystem::kLayoutFilePath.string());
134137
uiManager->SetEditorLayoutAutosaveFrequency(60.0f);
135138
uiManager->EnableEditorLayoutSave(true);

Sources/Overload/OvEditor/src/OvEditor/Core/ProjectHub.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,13 @@ void OvEditor::Core::ProjectHub::SetupContext()
288288

289289
const auto fontPath = std::filesystem::current_path() / "Data" / "Editor" / "Fonts" / "Ruda-Bold.ttf";
290290

291-
m_uiManager->LoadFont("Ruda", fontPath.string(), 18);
292-
m_uiManager->UseFont("Ruda");
291+
m_uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::BIG) }, fontPath.string(), 20);
292+
m_uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::MEDIUM) }, fontPath.string(), 18);
293+
m_uiManager->LoadFont(std::string{ Settings::GetFontID(Settings::EFontSize::SMALL) }, fontPath.string(), 16);
294+
m_uiManager->UseFont(std::string{ Settings::GetFontID(
295+
static_cast<Settings::EFontSize>(Settings::EditorSettings::FontSize.Get())
296+
) });
297+
293298
m_uiManager->EnableEditorLayoutSave(false);
294299
m_uiManager->EnableDocking(false);
295300
}

Sources/Overload/OvEditor/src/OvEditor/Panels/MenuBar.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,19 @@ void OvEditor::Panels::MenuBar::InitializeSettingsMenu()
9090
EDITOR_CONTEXT(uiManager)->ApplyStyle(static_cast<OvUI::Styling::EStyle>(p_value));
9191
};
9292

93+
auto& fontSizeMenu = m_settingsMenu->CreateWidget<MenuList>("Font Size");
94+
auto& fontSizeSelector = fontSizeMenu.CreateWidget<Selection::ComboBox>(static_cast<int>(Settings::EditorSettings::FontSize.Get()));
95+
fontSizeSelector.choices = {
96+
{ static_cast<int>(Settings::EFontSize::SMALL), "Small"},
97+
{ static_cast<int>(Settings::EFontSize::MEDIUM), "Medium"},
98+
{ static_cast<int>(Settings::EFontSize::BIG), "Big"}
99+
};
100+
fontSizeSelector.ValueChangedEvent += [this](int p_value) {
101+
Settings::EditorSettings::FontSize = p_value;
102+
const auto fontID = std::string{ Settings::GetFontID(static_cast<Settings::EFontSize>(p_value)) };
103+
EDITOR_CONTEXT(uiManager)->UseFont(fontID);
104+
};
105+
93106
m_settingsMenu->CreateWidget<MenuItem>("Spawn actors at origin", "", true, true).ValueChangedEvent += EDITOR_BIND(SetActorSpawnAtOrigin, std::placeholders::_1);
94107
m_settingsMenu->CreateWidget<MenuItem>("Vertical Synchronization", "", true, true).ValueChangedEvent += [this](bool p_value) { EDITOR_CONTEXT(device)->SetVsync(p_value); };
95108
auto& cameraSpeedMenu = m_settingsMenu->CreateWidget<MenuList>("Camera Speed");

Sources/Overload/OvEditor/src/OvEditor/Settings/EditorSettings.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ void OvEditor::Settings::EditorSettings::Save()
4545
iniFile.Add("scaling_snap_unit", ScalingSnapUnit.Get());
4646
iniFile.Add("color_theme", ColorTheme.Get());
4747
iniFile.Add("console_max_logs", ConsoleMaxLogs.Get());
48+
iniFile.Add("font_size", FontSize.Get());
4849
iniFile.Rewrite();
4950
}
5051

@@ -63,4 +64,5 @@ void OvEditor::Settings::EditorSettings::Load()
6364
LoadIniEntry<float>(iniFile, "scaling_snap_unit", ScalingSnapUnit);
6465
LoadIniEntry<int>(iniFile, "color_theme", ColorTheme);
6566
LoadIniEntry<int>(iniFile, "console_max_logs", ConsoleMaxLogs);
67+
LoadIniEntry<int>(iniFile, "font_size", FontSize);
6668
}

0 commit comments

Comments
 (0)