mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-30 07:21:12 +00:00
Introduce font mappings
This commit is contained in:
parent
dd04bfccfb
commit
4ddba5142e
@ -11,6 +11,7 @@
|
|||||||
#include <components/vfs/manager.hpp>
|
#include <components/vfs/manager.hpp>
|
||||||
#include <components/misc/stringops.hpp>
|
#include <components/misc/stringops.hpp>
|
||||||
#include <components/misc/resourcehelpers.hpp>
|
#include <components/misc/resourcehelpers.hpp>
|
||||||
|
#include <components/fontloader/fontloader.hpp>
|
||||||
|
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
#include "../mwbase/windowmanager.hpp"
|
#include "../mwbase/windowmanager.hpp"
|
||||||
@ -367,7 +368,9 @@ namespace MWGui::Formatting
|
|||||||
if (attr.find("face") != attr.end())
|
if (attr.find("face") != attr.end())
|
||||||
{
|
{
|
||||||
std::string face = attr.at("face");
|
std::string face = attr.at("face");
|
||||||
mTextStyle.mFont = "Journalbook "+face;
|
std::string name = Gui::FontLoader::getFontForFace(face);
|
||||||
|
|
||||||
|
mTextStyle.mFont = "Journalbook "+name;
|
||||||
}
|
}
|
||||||
if (attr.find("size") != attr.end())
|
if (attr.find("size") != attr.end())
|
||||||
{
|
{
|
||||||
|
@ -14,7 +14,7 @@ namespace MWGui
|
|||||||
{
|
{
|
||||||
TextStyle() :
|
TextStyle() :
|
||||||
mColour(0,0,0)
|
mColour(0,0,0)
|
||||||
, mFont("Journalbook Magic Cards")
|
, mFont("Journalbook DefaultFont")
|
||||||
, mTextSize(16)
|
, mTextSize(16)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -304,13 +304,7 @@ namespace Gui
|
|||||||
fail(*bitmapFile, bitmapFilename, "File too small to be a valid bitmap");
|
fail(*bitmapFile, bitmapFilename, "File too small to be a valid bitmap");
|
||||||
bitmapFile.reset();
|
bitmapFile.reset();
|
||||||
|
|
||||||
std::string resourceName;
|
std::string resourceName = name;
|
||||||
if (name.size() >= 5 && Misc::StringUtils::ciEqual(name.substr(0, 5), "magic"))
|
|
||||||
resourceName = "Magic Cards";
|
|
||||||
else if (name.size() >= 7 && Misc::StringUtils::ciEqual(name.substr(0, 7), "century"))
|
|
||||||
resourceName = "Century Gothic";
|
|
||||||
else if (name.size() >= 7 && Misc::StringUtils::ciEqual(name.substr(0, 7), "daedric"))
|
|
||||||
resourceName = "Daedric";
|
|
||||||
|
|
||||||
if (exportToFile)
|
if (exportToFile)
|
||||||
{
|
{
|
||||||
@ -346,7 +340,9 @@ namespace Gui
|
|||||||
// We need to emulate loading from XML because the data members are private as of mygui 3.2.0
|
// We need to emulate loading from XML because the data members are private as of mygui 3.2.0
|
||||||
MyGUI::xml::Document xmlDocument;
|
MyGUI::xml::Document xmlDocument;
|
||||||
MyGUI::xml::ElementPtr root = xmlDocument.createRoot("ResourceManualFont");
|
MyGUI::xml::ElementPtr root = xmlDocument.createRoot("ResourceManualFont");
|
||||||
root->addAttribute("name", resourceName);
|
|
||||||
|
const std::string baseName = Misc::StringUtils::lowerCase(std::filesystem::path(mVFS->getAbsoluteFileName(fileName)).stem().string());
|
||||||
|
root->addAttribute("name", getInternalFontName(baseName));
|
||||||
|
|
||||||
MyGUI::xml::ElementPtr defaultHeight = root->createChild("Property");
|
MyGUI::xml::ElementPtr defaultHeight = root->createChild("Property");
|
||||||
defaultHeight->addAttribute("key", "DefaultHeight");
|
defaultHeight->addAttribute("key", "DefaultHeight");
|
||||||
@ -506,12 +502,11 @@ namespace Gui
|
|||||||
|
|
||||||
font->deserialization(root, MyGUI::Version(3,2,0));
|
font->deserialization(root, MyGUI::Version(3,2,0));
|
||||||
|
|
||||||
// Setup "book" version of font as fallback if we will not use TrueType fonts
|
|
||||||
MyGUI::ResourceManualFont* bookFont = static_cast<MyGUI::ResourceManualFont*>(
|
MyGUI::ResourceManualFont* bookFont = static_cast<MyGUI::ResourceManualFont*>(
|
||||||
MyGUI::FactoryManager::getInstance().createObject("Resource", "ResourceManualFont"));
|
MyGUI::FactoryManager::getInstance().createObject("Resource", "ResourceManualFont"));
|
||||||
mFonts.push_back(bookFont);
|
mFonts.push_back(bookFont);
|
||||||
bookFont->deserialization(root, MyGUI::Version(3,2,0));
|
bookFont->deserialization(root, MyGUI::Version(3,2,0));
|
||||||
bookFont->setResourceName("Journalbook " + resourceName);
|
bookFont->setResourceName("Journalbook " + getInternalFontName(baseName));
|
||||||
|
|
||||||
// Remove automatically registered fonts
|
// Remove automatically registered fonts
|
||||||
for (std::vector<MyGUI::ResourceManualFont*>::iterator it = mFonts.begin(); it != mFonts.end();)
|
for (std::vector<MyGUI::ResourceManualFont*>::iterator it = mFonts.begin(); it != mFonts.end();)
|
||||||
@ -564,6 +559,8 @@ namespace Gui
|
|||||||
MyGUI::xml::ElementPtr sizeNode = resourceNode->createChild("Property");
|
MyGUI::xml::ElementPtr sizeNode = resourceNode->createChild("Property");
|
||||||
sizeNode->addAttribute("key", "Size");
|
sizeNode->addAttribute("key", "Size");
|
||||||
sizeNode->addAttribute("value", std::to_string(mFontHeight));
|
sizeNode->addAttribute("value", std::to_string(mFontHeight));
|
||||||
|
|
||||||
|
resourceNode->setAttribute("name", getInternalFontName(name));
|
||||||
}
|
}
|
||||||
else if (Misc::StringUtils::ciEqual(type, "ResourceSkin") ||
|
else if (Misc::StringUtils::ciEqual(type, "ResourceSkin") ||
|
||||||
Misc::StringUtils::ciEqual(type, "AutoSizedResourceSkin"))
|
Misc::StringUtils::ciEqual(type, "AutoSizedResourceSkin"))
|
||||||
@ -611,7 +608,7 @@ namespace Gui
|
|||||||
resolutionNode->addAttribute("key", "Resolution");
|
resolutionNode->addAttribute("key", "Resolution");
|
||||||
resolutionNode->addAttribute("value", std::to_string(resolution));
|
resolutionNode->addAttribute("value", std::to_string(resolution));
|
||||||
|
|
||||||
copyFont->setAttribute("name", "Journalbook " + name);
|
copyFont->setAttribute("name", "Journalbook " + getInternalFontName(name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -623,4 +620,30 @@ namespace Gui
|
|||||||
{
|
{
|
||||||
return mFontHeight;
|
return mFontHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string FontLoader::getInternalFontName(const std::string& name)
|
||||||
|
{
|
||||||
|
if (name == Settings::Manager::getString("default font", "GUI"))
|
||||||
|
return "DefaultFont";
|
||||||
|
if (name == Settings::Manager::getString("scroll font", "GUI"))
|
||||||
|
return "ScrollFont";
|
||||||
|
if (name == Settings::Manager::getString("mono font", "GUI"))
|
||||||
|
return "MonoFont";
|
||||||
|
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string FontLoader::getFontForFace(const std::string& face)
|
||||||
|
{
|
||||||
|
const std::string lowerFace = Misc::StringUtils::lowerCase(face);
|
||||||
|
|
||||||
|
if (lowerFace == "magic cards")
|
||||||
|
return "DefaultFont";
|
||||||
|
if (lowerFace == "daedric")
|
||||||
|
return "ScrollFont";
|
||||||
|
if (lowerFace == "century gothic")
|
||||||
|
return "MonoFont";
|
||||||
|
|
||||||
|
return face;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,8 @@ namespace Gui
|
|||||||
|
|
||||||
int getFontHeight();
|
int getFontHeight();
|
||||||
|
|
||||||
|
static std::string getFontForFace(const std::string& face);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ToUTF8::FromType mEncoding;
|
ToUTF8::FromType mEncoding;
|
||||||
const VFS::Manager* mVFS;
|
const VFS::Manager* mVFS;
|
||||||
@ -46,6 +48,8 @@ namespace Gui
|
|||||||
std::vector<MyGUI::ITexture*> mTextures;
|
std::vector<MyGUI::ITexture*> mTextures;
|
||||||
std::vector<MyGUI::ResourceManualFont*> mFonts;
|
std::vector<MyGUI::ResourceManualFont*> mFonts;
|
||||||
|
|
||||||
|
std::string getInternalFontName(const std::string& name);
|
||||||
|
|
||||||
/// @param exportToFile export the converted font (Image and XML with glyph metrics) to files?
|
/// @param exportToFile export the converted font (Image and XML with glyph metrics) to files?
|
||||||
void loadBitmapFont (const std::string& fileName, bool exportToFile);
|
void loadBitmapFont (const std::string& fileName, bool exportToFile);
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MyGUI type="Resource" version="1.1">
|
<MyGUI type="Resource" version="1.1">
|
||||||
<Resource type="ResourceTrueTypeFont" name="MonoFont">
|
<Resource type="ResourceTrueTypeFont" name="dejavusansmono">
|
||||||
<Property key="Source" value="Fonts/DejaVuLGCSansMono.ttf"/>
|
<Property key="Source" value="Fonts/DejaVuLGCSansMono.ttf"/>
|
||||||
<Property key="Antialias" value="false"/>
|
<Property key="Antialias" value="false"/>
|
||||||
<Property key="TabWidth" value="8"/>
|
<Property key="TabWidth" value="8"/>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MyGUI type="Resource" version="1.1">
|
<MyGUI type="Resource" version="1.1">
|
||||||
<Resource type="ResourceTrueTypeFont" name="Daedric">
|
<Resource type="ResourceTrueTypeFont" name="ayembedt">
|
||||||
<Property key="Source" value="Fonts/OMWAyembedt.ttf"/>
|
<Property key="Source" value="Fonts/OMWAyembedt.ttf"/>
|
||||||
<Property key="Antialias" value="false"/>
|
<Property key="Antialias" value="false"/>
|
||||||
<Property key="TabWidth" value="8"/>
|
<Property key="TabWidth" value="8"/>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MyGUI type="Resource" version="1.1">
|
<MyGUI type="Resource" version="1.1">
|
||||||
<Resource type="ResourceTrueTypeFont" name="Magic Cards">
|
<Resource type="ResourceTrueTypeFont" name="pelagiad">
|
||||||
<Property key="Source" value="Fonts/Pelagiad.ttf"/>
|
<Property key="Source" value="Fonts/Pelagiad.ttf"/>
|
||||||
<Property key="Antialias" value="false"/>
|
<Property key="Antialias" value="false"/>
|
||||||
<Property key="TabWidth" value="8"/>
|
<Property key="TabWidth" value="8"/>
|
||||||
|
@ -32,13 +32,13 @@
|
|||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="TextBox" skin="NormalText" position="30 358 250 16" name="LeftPageNumber">
|
<Widget type="TextBox" skin="NormalText" position="30 358 250 16" name="LeftPageNumber">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextColour" value="0 0 0"/>
|
<Property key="TextColour" value="0 0 0"/>
|
||||||
<Property key="TextAlign" value="Center"/>
|
<Property key="TextAlign" value="Center"/>
|
||||||
<Property key="NeedMouse" value="false"/>
|
<Property key="NeedMouse" value="false"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
<Widget type="TextBox" skin="NormalText" position="310 358 250 16" name="RightPageNumber">
|
<Widget type="TextBox" skin="NormalText" position="310 358 250 16" name="RightPageNumber">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextColour" value="0 0 0"/>
|
<Property key="TextColour" value="0 0 0"/>
|
||||||
<Property key="TextAlign" value="Center"/>
|
<Property key="TextAlign" value="Center"/>
|
||||||
<Property key="NeedMouse" value="false"/>
|
<Property key="NeedMouse" value="false"/>
|
||||||
|
@ -25,12 +25,12 @@
|
|||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="TextBox" skin="NormalText" position="150 350 32 16" name="PageOneNum">
|
<Widget type="TextBox" skin="NormalText" position="150 350 32 16" name="PageOneNum">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextColour" value="0 0 0"/>
|
<Property key="TextColour" value="0 0 0"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
<Widget type="TextBox" skin="NormalText" position="410 350 32 16" name="PageTwoNum">
|
<Widget type="TextBox" skin="NormalText" position="410 350 32 16" name="PageTwoNum">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextColour" value="0 0 0"/>
|
<Property key="TextColour" value="0 0 0"/>
|
||||||
</Widget>
|
</Widget>
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<MyGUI type="Resource" version="1.1">
|
<MyGUI type="Resource" version="1.1">
|
||||||
<Resource type="ResourceSkin" name="MW_BookClient" size="10 10">
|
<Resource type="ResourceSkin" name="MW_BookClient" size="10 10">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextAlign" value="Left Top"/>
|
<Property key="TextAlign" value="Left Top"/>
|
||||||
<Property key="TextColour" value="0 0 0"/>
|
<Property key="TextColour" value="0 0 0"/>
|
||||||
<BasisSkin type="EditText" offset="0 0 10 10" align="Stretch"/>
|
<BasisSkin type="EditText" offset="0 0 10 10" align="Stretch"/>
|
||||||
@ -19,7 +19,7 @@
|
|||||||
</Resource>
|
</Resource>
|
||||||
|
|
||||||
<Resource type="ResourceSkin" name="MW_QuestLink" size="5 5">
|
<Resource type="ResourceSkin" name="MW_QuestLink" size="5 5">
|
||||||
<Property key="FontName" value="Journalbook Magic Cards"/>
|
<Property key="FontName" value="Journalbook DefaultFont"/>
|
||||||
<Property key="TextAlign" value="Left VCenter"/>
|
<Property key="TextAlign" value="Left VCenter"/>
|
||||||
|
|
||||||
<BasisSkin type="SimpleText" offset="2 0 1 5" align="Stretch">
|
<BasisSkin type="SimpleText" offset="2 0 1 5" align="Stretch">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<MyGUI>
|
<MyGUI>
|
||||||
<MyGUI type="Font">
|
<MyGUI type="Font">
|
||||||
<Property key="Default" value="Magic Cards"/>
|
<Property key="Default" value="DefaultFont"/>
|
||||||
|
|
||||||
</MyGUI>
|
</MyGUI>
|
||||||
<MyGUI type="Pointer">
|
<MyGUI type="Pointer">
|
||||||
|
@ -234,6 +234,15 @@ color topic specific = 0.45 0.5 0.8 1
|
|||||||
# Default to grey
|
# Default to grey
|
||||||
color topic exhausted = 0.3 0.3 0.3 1
|
color topic exhausted = 0.3 0.3 0.3 1
|
||||||
|
|
||||||
|
# Font used by UI and books
|
||||||
|
default font = pelagiad
|
||||||
|
|
||||||
|
# Font used by magic scrolls
|
||||||
|
scroll font = ayembedt
|
||||||
|
|
||||||
|
# Font used by console and debug log
|
||||||
|
mono font = dejavusansmono
|
||||||
|
|
||||||
[HUD]
|
[HUD]
|
||||||
|
|
||||||
# Displays the crosshair or reticle when not in GUI mode.
|
# Displays the crosshair or reticle when not in GUI mode.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user