blob: 9212eb019f35529a0ebe811bd4648dd09d467479 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _SFONTITM_HXX
#define _SFONTITM_HXX
#include <tools/color.hxx>
#include <tools/gen.hxx>
#include <i18npool/lang.h>
#include <svl/poolitem.hxx>
//============================================================================
class SfxFontItem: public SfxPoolItem
{
XubString m_aName;
XubString m_aStyleName;
Size m_aSize;
Color m_aColor;
Color m_aFillColor;
rtl_TextEncoding m_nCharSet;
LanguageType m_nLanguage;
sal_Int16 m_nFamily;
sal_Int16 m_nPitch;
sal_Int16 m_nWeight;
sal_Int16 m_nWidthType;
sal_Int16 m_nItalic;
sal_Int16 m_nUnderline;
sal_Int16 m_nStrikeout;
sal_Int16 m_nOrientation;
unsigned m_bWordLine: 1;
unsigned m_bOutline: 1;
unsigned m_bShadow: 1;
unsigned m_bKerning: 1;
unsigned m_bHasFont: 1;
unsigned m_bHasColor: 1;
unsigned m_bHasFillColor: 1;
public:
TYPEINFO();
inline SfxFontItem(sal_uInt16 nWhich);
virtual int operator ==(const SfxPoolItem & rItem) const;
virtual SfxPoolItem * Create(SvStream & rStream, sal_uInt16) const;
virtual SvStream & Store(SvStream & rStream, sal_uInt16) const;
virtual SfxPoolItem * Clone(SfxItemPool * = 0) const
{ return new SfxFontItem(*this); }
sal_Bool hasFont() const { return m_bHasFont; }
sal_Bool hasColor() const { return m_bHasColor; }
sal_Bool hasFillColor() const { return m_bHasFillColor; }
const XubString & getName() const { return m_aName; }
const XubString & getStyleName() const { return m_aStyleName; }
const Size & getSize() const { return m_aSize; }
const Color & getColor() const { return m_aColor; }
const Color & getFillColor() const { return m_aFillColor; }
rtl_TextEncoding getCharSet() const { return m_nCharSet; }
LanguageType getLanguage() const { return m_nLanguage; }
sal_Int16 getFamily() const { return m_nFamily; }
sal_Int16 getPitch() const { return m_nPitch; }
sal_Int16 getWeight() const { return m_nWeight; }
sal_Int16 getWidthType() const { return m_nWidthType; }
sal_Int16 getItalic() const { return m_nItalic; }
sal_Int16 getUnderline() const { return m_nUnderline; }
sal_Int16 getStrikeout() const { return m_nStrikeout; }
sal_Int16 getOrientation() const { return m_nOrientation; }
sal_Bool getWordLine() const { return m_bWordLine; }
sal_Bool getOutline() const { return m_bOutline; }
sal_Bool getShadow() const { return m_bShadow; }
sal_Bool getKerning() const { return m_bKerning; }
inline void setFont(sal_Int16 nTheFamily, const XubString & rTheName,
const XubString & rTheStyleName, sal_Int16 nThePitch,
rtl_TextEncoding nTheCharSet);
inline void setWeight(sal_Int16 nTheWeight);
inline void setItalic(sal_Int16 nTheItalic);
inline void setHeight(sal_Int32 nHeight);
inline void setColor(const Color & rTheColor);
inline void setFillColor(const Color & rTheFillColor);
inline void setUnderline(sal_Int16 nTheUnderline);
inline void setStrikeout(sal_Int16 nTheStrikeout);
inline void setOutline(sal_Bool bTheOutline);
inline void setShadow(sal_Bool bTheShadow);
inline void setLanguage(LanguageType nTheLanguage);
};
inline SfxFontItem::SfxFontItem(sal_uInt16 which):
SfxPoolItem(which),
m_nCharSet(RTL_TEXTENCODING_DONTKNOW),
m_nLanguage(LANGUAGE_DONTKNOW),
m_nFamily(0), // FAMILY_DONTKNOW
m_nPitch(0), // PITCH_DONTKNOW
m_nWeight(0), // WEIGHT_DONTKNOW
m_nWidthType(0), // WIDTH_DONTKNOW
m_nItalic(3), // ITALIC_DONTKNOW
m_nUnderline(4), // UNDERLINE_DONTKNOW
m_nStrikeout(3), // STRIKEOUT_DONTKNOW
m_nOrientation(0),
m_bWordLine(sal_False),
m_bOutline(sal_False),
m_bShadow(sal_False),
m_bKerning(sal_False),
m_bHasFont(sal_False),
m_bHasColor(sal_False),
m_bHasFillColor(sal_False)
{}
inline void SfxFontItem::setFont(sal_Int16 nTheFamily,
const XubString & rTheName,
const XubString & rTheStyleName,
sal_Int16 nThePitch,
rtl_TextEncoding nTheCharSet)
{
m_nFamily = nTheFamily;
m_aName = rTheName;
m_aStyleName = rTheStyleName;
m_nPitch = nThePitch;
m_nCharSet = nTheCharSet;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setWeight(sal_Int16 nTheWeight)
{
m_nWeight = nTheWeight;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setItalic(sal_Int16 nTheItalic)
{
m_nItalic = nTheItalic;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setHeight(sal_Int32 nHeight)
{
m_aSize.setHeight(nHeight);
m_bHasFont = sal_True;
}
inline void SfxFontItem::setColor(const Color & rTheColor)
{
m_aColor = rTheColor;
m_bHasColor = sal_True;
}
inline void SfxFontItem::setFillColor(const Color & rTheFillColor)
{
m_aFillColor = rTheFillColor;
m_bHasFillColor = sal_True;
}
inline void SfxFontItem::setUnderline(sal_Int16 nTheUnderline)
{
m_nUnderline = nTheUnderline;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setStrikeout(sal_Int16 nTheStrikeout)
{
m_nStrikeout = nTheStrikeout;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setOutline(sal_Bool bTheOutline)
{
m_bOutline = bTheOutline;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setShadow(sal_Bool bTheShadow)
{
m_bShadow = bTheShadow;
m_bHasFont = sal_True;
}
inline void SfxFontItem::setLanguage(LanguageType nTheLanguage)
{
m_nLanguage = nTheLanguage;
m_bHasFont = sal_True;
}
#endif // _SFONTITM_HXX