CComponentsFrmClock/CInfoClock: simplify font init

This commit is contained in:
2017-01-08 14:39:38 +01:00
parent c60accaeae
commit ffeb2d6459
3 changed files with 23 additions and 24 deletions

View File

@@ -75,11 +75,8 @@ CComponentsFrmClock::CComponentsFrmClock( const int& x_pos,
//init default font
cl_font = font;
cl_font_style = font_style;
if (cl_font == NULL){
int dx = 0;
int dy = 30;
setClockFont(*CNeutrinoFonts::getInstance()->getDynFont(dx, dy, cl_format_str, cl_font_style));
}
if (cl_font == NULL)
initClockFont(0, g_Font[SNeutrinoSettings::FONT_TYPE_MENU_TITLE]->getHeight());
//init general clock dimensions
height = cl_font->getHeight();
@@ -114,6 +111,11 @@ CComponentsFrmClock::~CComponentsFrmClock()
delete cl_timer;
}
void CComponentsFrmClock::initClockFont(int dx, int dy)
{
setClockFont(*CNeutrinoFonts::getInstance()->getDynFont(dx, dy, cl_format_str, cl_font_style));
}
void CComponentsFrmClock::initTimeString()
{
@@ -380,15 +382,13 @@ void CComponentsFrmClock::paint(bool do_save_bg)
void CComponentsFrmClock::setClockFont(Font *font, const int& style)
{
if (cl_font != font || (cl_font != font)){
if (cl_font != font)
cl_font = font;
if (style != -1)
cl_font_style = style;
// setHeight(cl_font->getHeight());
// setWidth(cl_font->getRenderWidth(cl_format_str));
initCCLockItems();
//initCCLockItems();
}
}
Font* CComponentsFrmClock::getClockFont()

View File

@@ -88,9 +88,8 @@ class CComponentsFrmClock : public CComponentsForm, public CCTextScreen
bool stopClock();
///switch between primary and secondary format
void toggleFormat();
///return pointer of font object
Font* getClockFont();
///init internal font
void initClockFont(int dx, int dy);
public:
@@ -121,6 +120,9 @@ class CComponentsFrmClock : public CComponentsForm, public CCTextScreen
*/
void setClockFont(Font * font, const int& style = -1);
///return pointer of font object
Font* getClockFont();
///set text color
virtual void setTextColor(fb_pixel_t color_text){ cl_col_text = color_text;}
@@ -132,6 +134,8 @@ class CComponentsFrmClock : public CComponentsForm, public CCTextScreen
///use string expession: "%H:%M" = 12:22, "%H:%M:%S" = 12:22:12
///set current time format string, 1st parameter set the default format, 2nd parameter sets an alternatively format for use as blink effect
virtual void setClockFormat(const char* prformat_str, const char* secformat_str = NULL);
///get current time format string,
std::string getClockFormat(){return cl_format;}
///start and paint ticking clock
virtual bool Start();

View File

@@ -73,17 +73,12 @@ void CInfoClock::initCCLockItems()
setClockFormat("%H:%M", "%H %M");
//set height, NOTE: height is strictly bound to settings
if (g_settings.infoClockFontSize != height){
height = g_settings.infoClockFontSize;
int dx = 0;
int dy = height;
setClockFont(*CNeutrinoFonts::getInstance()->getDynFont(dx, dy, cl_format_str, cl_font_style));
}
initClockFont(0, height);
// set corner radius depending on clock height
corner_rad = (g_settings.rounded_corners) ? std::max(height/10, CORNER_RADIUS_SMALL) : 0;
CComponentsFrmClock::initCCLockItems();
CVolumeHelper::getInstance()->refresh(cl_font);
CVolumeHelper::getInstance()->getInfoClockDimensions(&x, &y, &width, &height);
}