Rev 12895 |
Rev 20606 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
/***************************************************************************
* Copyright (C) 2004 by Riku Leino *
* tsoots@gmail.com *
* *
* 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 Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
#ifndef GTFONT_H
#define GTFONT_H
#include <vector>
#include <QString>
#include "scribusapi.h"
enum FontEffect {
NORMAL,
UNDERLINE,
STRIKETHROUGH,
SMALL_CAPS,
SUPERSCRIPT,
SUBSCRIPT,
OUTLINE,
FontEffectMAX
};
enum FontWeight {
NO_WEIGHT,
DEMIBOLD,
EXTRABLACK,
EXTRABOLD,
EXTRAHEAVY,
EXTRALIGHT,
SEMIBOLD,
BLACK,
BOLD,
BOOK,
DEMI,
HEAVY,
LIGHT,
LITE,
MEDIUM,
REGULAR,
ROMAN,
FontWeightMAX
};
enum FontSlant {
NO_SLANT,
ITALIC,
OBLIQUE,
FontSlantMAX
};
enum FontWidth {
NO_WIDTH,
EXTRACONDENSED,
SEMICONDENSED,
ULTRACONDENSED,
EXTRACOMPRESSED,
SEMICOMPRESSED,
ULTRACOMPRESSED,
CONDENSED,
COMPRESSED,
FontWidthMAX
};
/*
Font will do the font search in Scribus and in case a font
cannot be found it will launch the font substitution dialog.
*/
class SCRIBUS_API gtFont
{
private:
int setflags;
QString name;
QString family;
QString weight;
QString slant;
QString width;
QString append;
int size;
bool fontEffects[FontEffectMAX];
QString color;
int shade;
QString strokeColor;
int strokeShade;
/* Width of a character in percentages to it's "real width" */
int hscale;
int kerning;
bool useFullName;
int weightIndex;
int slantIndex;
int widthIndex;
int smallestIndex;
int biggestIndex;
int index;
int tmpWeightIndex;
int tmpSlantIndex;
int tmpWidthIndex;
void initArrays();
void parseName();
void parseWeight();
void parseSlant();
void parseWidth();
void parseFamily();
int find(const QString& where, const QString& what);
public:
typedef enum
{
familyWasSet = 1,
weightWasSet = 2,
slantWasSet = 4,
widthWasSet = 8,
sizeWasSet = 16,
effectWasSet = 32,
fillColorWasSet = 64,
fillShadeWasSet = 128,
strokeColorWasSet = 256,
strokeShadeWasSet = 512,
hscaleWasSet = 1024,
kerningWasSet = 2048
} wasSetFlags;
static const QString fontWeights[];
static const QString fontSlants[];
static const QString fontWidths[];
void noEffects();
bool isToggled(FontEffect fe);
bool toggleEffect(FontEffect fe);
int getFlags();
int getEffectsValue();
void setName(QString newName);
void setFamily(QString newFamily);
QString getFamily();
void setWeight(FontWeight newWeight);
void setWeight(QString newWeight);
QString getWeight();
void setSlant(FontSlant newSlant);
void setSlant(QString newSlant);
QString getSlant();
void setWidth(FontWidth newWidth);
void setWidth(QString newWidth);
QString getWidth();
void setSize(int newSize);
void setSize(double newSize);
void setColor(QString newColor);
void setShade(int newShade);
void setStrokeColor(QString newColor);
void setStrokeShade(int newShade);
QString getName();
QString getName(uint i);
static const int NAMECOUNT = 14;
int getSize();
QString getColor();
int getShade();
QString getStrokeColor();
int getStrokeShade();
int getHscale();
void setHscale(int newHscale);
int getKerning();
void setKerning(int newKerning);
gtFont();
gtFont(const gtFont& f);
~gtFont();
};
#endif // GTFONT_H