You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
koffice/filters/kword/latex/export/textformat.h

165 lines
4.7 KiB

/*
** Header file for inclusion with kword_xml2latex.c
**
** Copyright (C) 2000 Robert JACOLIN
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Library General Public
** License as published by the Free Software Foundation; either
** version 2 of the License, or (at your option) any later version.
**
** This library 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
** Library General Public License for more details.
**
** To receive a copy of the GNU Library General Public License, write to the
** Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
**
*/
#ifndef __KWORD_TEXTFORMAT_H__
#define __KWORD_TEXTFORMAT_H__
#include <tqstring.h>
#include <tqcolor.h>
#include "format.h"
enum _EAlign
{
EA_NONE,
EA_SUB,
EA_SUPER
};
typedef enum _EAlign EAlign;
enum _ETypeUnderline
{
UNDERLINE_NONE,
UNDERLINE_SIMPLE,
UNDERLINE_DOUBLE,
UNDERLINE_WAVE
};
typedef enum _ETypeUnderline ETypeUnderline;
enum _ETypeLinespacing
{
LINESPACING_NONE,
LINESPACING_ONEANDHALF,
LINESPACING_DOUBLE,
LINESPACING_CUSTOM,
LINESPACING_ATLEAST,
LINESPACING_MULTIPLE
};
typedef enum _ETypeLinespacing ETypeLinespacing;
/***********************************************************************/
/* Class: TextFormat */
/***********************************************************************/
/**
* This class holds information formating the textzone. It may be incorporated
* in few time in textzone.
*/
class TextFormat: public Format
{
TQString _police;
unsigned int _size; /* Size of the police */
unsigned int _weight; /* bold */
bool _italic;
ETypeUnderline _underline;
bool _strikeout;
EAlign _vertalign;
TQColor* _textcolor;
TQColor* _backcolor;
ETypeLinespacing _linespacingType;
int _spacingValue;
public:
/**
* Constructors
*
* Creates a new instance of TextFormat.
*
*/
TextFormat(): _weight(0), _italic(false),
_strikeout(0)
{
_textcolor = 0;
_backcolor = 0;
_size = Config::instance()->getDefaultFontSize();
setPos(0);
setLength(0);
setUnderlined("0");
}
/*
* Destructor
*
* The destructor must remove the list of little zones.
*
*/
virtual ~TextFormat() {}
/* ==== Getters ==== */
unsigned int getSize () const { return _size; }
unsigned int getWeight () const { return _weight; }
EAlign getAlign () const { return _vertalign; }
int getColorBlue () const;
int getColorGreen() const;
int getColorRed () const;
ETypeUnderline getUnderlineType() const { return _underline; }
int getBkColorBlue () const;
int getBkColorGreen() const;
int getBkColorRed () const;
bool isItalic () const { return (_italic == true); }
bool isUnderlined () const { return (_underline != UNDERLINE_NONE); }
bool isStrikeout () const { return (_strikeout == true); }
bool isColor () const { return (_textcolor != 0); }
bool isBkColored () const { return (_backcolor != 0); }
/* ==== Setters ==== */
void setSize (const unsigned int t) { _size = t; }
void setWeight (const unsigned int w) { _weight = w; }
void setItalic (bool i) { _italic = i; }
void setUnderlined (ETypeUnderline u) { _underline = u; }
void setUnderlined (TQString u)
{
if(u == "double")
_underline = UNDERLINE_DOUBLE;
else if(u == "wave")
_underline = UNDERLINE_WAVE;
else if (u == "1")
_underline = UNDERLINE_SIMPLE;
else
_underline = UNDERLINE_NONE;
}
void setStrikeout (bool s) { _strikeout = s; }
void setPolice (TQString p) { _police = p; }
void setAlign (const int a) { _vertalign = (EAlign) a; }
void setColor (const int, const int, const int);
void setBkColor (const int, const int, const int);
/* ==== Helpfull functions ==== */
void analyseFormat (const TQDomNode);
void analyseParam (const TQDomNode);
void analyseFont (const TQDomNode);
void analyseItalic (const TQDomNode);
void analyseUnderlined(const TQDomNode);
void analyseStrikeout (const TQDomNode);
void analyseWeight (const TQDomNode);
void analyseAlign (const TQDomNode);
void analyseColor (const TQDomNode);
void analyseSize (const TQDomNode);
void analyseBackgroundColor(const TQDomNode);
};
#endif /* __KWORD_TEXTFORMAT_H__ */