Files
recycled-ni-neutrino/src/driver/neutrinofonts.h
Michael Liebmann c30e9427c6 CComponentsFrmClock: Rework font handling
- Use setClockFont(enum FONT_TYPES) for selection of neutrino fonts
- Use setClockFontSize(size) for Dynamic Font


Origin commit data
------------------
Branch: ni/coolstream
Commit: 1bfb6d2cd3
Author: Michael Liebmann <tuxcode.bbg@gmail.com>
Date: 2013-11-27 (Wed, 27 Nov 2013)



------------------
This commit was generated by Migit
2013-11-28 16:07:48 +01:00

123 lines
3.4 KiB
C++

/*
Neutrino-GUI - DBoxII-Project
Copyright (C) 2001 Steffen Hehn 'McClean'
CNeutrinoFonts class for gui.
Copyright (C) 2013, M. Liebmann (micha-bbg)
License: GPL
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __neutrinofonts__
#define __neutrinofonts__
#include <src/system/settings.h>
typedef struct neutrino_font_descr {
std::string name;
std::string filename;
int size_offset;
} neutrino_font_descr_struct;
typedef struct font_sizes {
const neutrino_locale_t name;
const unsigned int defaultsize;
const unsigned int style;
const unsigned int size_offset;
} font_sizes_struct;
typedef struct font_sizes_groups {
const neutrino_locale_t groupname;
const unsigned int count;
const SNeutrinoSettings::FONT_TYPES *const content;
const char * const actionkey;
const neutrino_locale_t hint;
} font_sizes_groups_struct;
class CNeutrinoFonts
{
private:
std::string fontStyle[3];
std::string dynFontStyle[3];
typedef struct dyn_font_t
{
int dx;
int dy;
int size;
int style;
std::string text;
Font* font;
bool useDigitOffset;
} dyn_font_struct_t;
typedef std::vector<dyn_font_t> v_dyn_fonts_t;
v_dyn_fonts_t v_share_fonts;
v_dyn_fonts_t v_dyn_fonts;
bool useDigitOffset;
void InitDynFonts();
void refreshDynFont(int dx, int dy, std::string text, int style, int index, bool isShare);
int getFontHeight(Font* fnt);
int getDynFontSize(int dx, int dy, std::string text, int style);
Font **getDynFontShare(int &dx, int &dy, std::string text, int style);
Font **getDynFontWithID(int &dx, int &dy, std::string text, int style, unsigned int f_id);
public:
enum {
FONT_STYLE_REGULAR = 0,
FONT_STYLE_BOLD = 1,
FONT_STYLE_ITALIC = 2
};
enum {
FONT_ID_SHARE = -1
};
enum {
FONT_ID_VOLBAR,
FONT_ID_INFOCLOCK,
FONT_ID_MAX
};
enum {
FONTSETUP_NEUTRINO_FONT = 1, /* refresh neutrino fonts */
FONTSETUP_NEUTRINO_FONT_INST = 2, /* delete & initialize font renderer class */
FONTSETUP_DYN_FONT = 4, /* refresh dynamic fonts */
FONTSETUP_DYN_FONT_INST = 8, /* delete & initialize font renderer class */
FONTSETUP_ALL = FONTSETUP_NEUTRINO_FONT | FONTSETUP_NEUTRINO_FONT_INST | FONTSETUP_DYN_FONT | FONTSETUP_DYN_FONT_INST
};
CNeutrinoFonts();
~CNeutrinoFonts();
static CNeutrinoFonts* getInstance();
neutrino_font_descr_struct fontDescr;
neutrino_font_descr_struct old_fontDescr;
void SetupNeutrinoFonts(bool initRenderClass = true);
void SetupDynamicFonts(bool initRenderClass = true);
void refreshDynFonts();
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;}
};
#endif //__neutrinofonts__