mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-30 17:01:15 +02:00
- yaft: allow new shell.ttf in yaft-widget too
Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
@@ -193,6 +193,17 @@ void CNeutrinoFonts::SetupNeutrinoFonts(bool initRenderClass/*=true*/)
|
|||||||
g_SignalFont = g_fontRenderer->getFont(fontDescr.name.c_str(), fontStyle[signal_font.style].c_str(), fontSize);
|
g_SignalFont = g_fontRenderer->getFont(fontDescr.name.c_str(), fontStyle[signal_font.style].c_str(), fontSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string CNeutrinoFonts::getShellTTF()
|
||||||
|
{
|
||||||
|
const char *shell_ttf[2] = { FONTDIR_VAR "/shell.ttf", FONTDIR "/shell.ttf" };
|
||||||
|
for (unsigned int i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
if (access(shell_ttf[i], F_OK) == 0)
|
||||||
|
return (std::string)shell_ttf[i];
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
void CNeutrinoFonts::SetupShellFont()
|
void CNeutrinoFonts::SetupShellFont()
|
||||||
{
|
{
|
||||||
if (g_ShellFont)
|
if (g_ShellFont)
|
||||||
@@ -201,10 +212,8 @@ void CNeutrinoFonts::SetupShellFont()
|
|||||||
g_ShellFont = NULL;
|
g_ShellFont = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string shell_ttf = FONTDIR_VAR "/shell.ttf";
|
std::string shell_ttf = getShellTTF();
|
||||||
if (access(shell_ttf.c_str(), F_OK) != 0)
|
if (shell_ttf.empty())
|
||||||
shell_ttf = FONTDIR "/shell.ttf";
|
|
||||||
if (access(shell_ttf.c_str(), F_OK) != 0)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (g_shellFontRenderer != NULL)
|
if (g_shellFontRenderer != NULL)
|
||||||
|
@@ -131,6 +131,7 @@ class CNeutrinoFonts
|
|||||||
void SetupNeutrinoFonts(bool initRenderClass = true);
|
void SetupNeutrinoFonts(bool initRenderClass = true);
|
||||||
void SetupDynamicFonts(bool initRenderClass = true);
|
void SetupDynamicFonts(bool initRenderClass = true);
|
||||||
void SetupShellFont();
|
void SetupShellFont();
|
||||||
|
std::string getShellTTF();
|
||||||
void refreshDynFonts();
|
void refreshDynFonts();
|
||||||
Font **getDynFont(int &dx, int &dy, std::string text="", int style=FONT_STYLE_REGULAR, int share=FONT_ID_SHARE);
|
Font **getDynFont(int &dx, int &dy, std::string text="", int style=FONT_STYLE_REGULAR, int share=FONT_ID_SHARE);
|
||||||
void setFontUseDigitHeight(bool set=true) {useDigitOffset = set;}
|
void setFontUseDigitHeight(bool set=true) {useDigitOffset = set;}
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
#include "yaft_priv.h"
|
#include "yaft_priv.h"
|
||||||
#include <driver/framebuffer.h>
|
#include <driver/framebuffer.h>
|
||||||
|
#include <driver/neutrinofonts.h>
|
||||||
#include <driver/abstime.h>
|
#include <driver/abstime.h>
|
||||||
#include <xmltree/xmlinterface.h> /* UTF8 conversion */
|
#include <xmltree/xmlinterface.h> /* UTF8 conversion */
|
||||||
|
|
||||||
@@ -124,13 +125,16 @@ bool YaFT_p::init()
|
|||||||
* try to get a font size that fits about LINES x COLS into the terminal.
|
* try to get a font size that fits about LINES x COLS into the terminal.
|
||||||
* NOTE: this is not guaranteed to work! Terminal might be smaller or bigger
|
* NOTE: this is not guaranteed to work! Terminal might be smaller or bigger
|
||||||
*/
|
*/
|
||||||
|
std::string shell_ttf = CNeutrinoFonts::getInstance()->getShellTTF();
|
||||||
|
if (shell_ttf.empty())
|
||||||
|
shell_ttf = ttx_font_file;
|
||||||
if (paint) {
|
if (paint) {
|
||||||
for (int i = 0; i < 2; i++) {
|
for (int i = 0; i < 2; i++) {
|
||||||
delete font;
|
delete font;
|
||||||
delete fr;
|
delete fr;
|
||||||
fr = new FBFontRenderClass(scalex, scaley);
|
fr = new FBFontRenderClass(scalex, scaley);
|
||||||
fontstyle = fr->AddFont(ttx_font_file.c_str());
|
fontstyle = fr->AddFont(shell_ttf.c_str());
|
||||||
font = fr->getFont(fr->getFamily(ttx_font_file.c_str()).c_str(), fontstyle, height / LINES);
|
font = fr->getFont(fr->getFamily(shell_ttf.c_str()).c_str(), fontstyle, height / LINES);
|
||||||
/* getWidth() does not return good values, leading to "out of box" rendering later
|
/* getWidth() does not return good values, leading to "out of box" rendering later
|
||||||
fw = font->getWidth();
|
fw = font->getWidth();
|
||||||
... so just let's get the width of a wide glyph (it's a monospace font after all */
|
... so just let's get the width of a wide glyph (it's a monospace font after all */
|
||||||
|
Reference in New Issue
Block a user