| /************************************************************** |
| * |
| * 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. |
| * |
| *************************************************************/ |
| |
| |
| |
| // MARKER(update_precomp.py): autogen include statement, do not remove |
| #include "precompiled_chart2.hxx" |
| #include "CharacterProperties.hxx" |
| #include "ContainerHelper.hxx" |
| #include "macros.hxx" |
| |
| #include <com/sun/star/beans/PropertyAttribute.hpp> |
| #include <com/sun/star/style/XStyle.hpp> |
| #include <com/sun/star/awt/FontSlant.hpp> |
| #include <com/sun/star/lang/Locale.hpp> |
| |
| #include <com/sun/star/awt/FontFamily.hpp> |
| #include <com/sun/star/awt/CharSet.hpp> |
| #include <com/sun/star/awt/FontPitch.hpp> |
| #include <com/sun/star/awt/FontUnderline.hpp> |
| #include <com/sun/star/awt/FontWeight.hpp> |
| #include <com/sun/star/awt/FontSlant.hpp> |
| #include <com/sun/star/style/CaseMap.hpp> |
| #include <com/sun/star/text/FontRelief.hpp> |
| #include <com/sun/star/text/FontEmphasis.hpp> |
| #include <com/sun/star/text/RubyAdjust.hpp> |
| #include <com/sun/star/awt/FontStrikeout.hpp> |
| #include <com/sun/star/text/WritingMode2.hpp> |
| #include <com/sun/star/i18n/ScriptType.hpp> |
| |
| #include <comphelper/InlineContainer.hxx> |
| |
| |
| // header for struct SvtLinguConfig |
| #ifndef _SVTOOLS_LINGUCFG_HXX_ |
| #include <unotools/lingucfg.hxx> |
| #endif |
| #ifndef INCLUDED_I18NPOOL_MSLANGID_HXX |
| #include <i18npool/mslangid.hxx> |
| #endif |
| #ifndef _SV_OUTDEV_HXX |
| #include <vcl/outdev.hxx> |
| #endif |
| |
| using namespace ::com::sun::star; |
| |
| using ::com::sun::star::beans::Property; |
| |
| using ::rtl::OUString; |
| |
| namespace chart |
| { |
| |
| void CharacterProperties::AddPropertiesToVector( |
| ::std::vector< Property > & rOutProperties ) |
| { |
| // CharacterProperties |
| rOutProperties.push_back( |
| Property( C2U( "CharFontName" ), |
| PROP_CHAR_FONT_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| rOutProperties.push_back( |
| Property( C2U( "CharFontStyleName" ), |
| PROP_CHAR_FONT_STYLE_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharFontFamily (see awt.FontFamily) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontFamily" ), |
| PROP_CHAR_FONT_FAMILY, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontCharSet (see awt.CharSet) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontCharSet" ), |
| PROP_CHAR_FONT_CHAR_SET, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontPitch (see awt.FontPitch) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontPitch" ), |
| PROP_CHAR_FONT_PITCH, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharColor |
| rOutProperties.push_back( |
| Property( C2U( "CharColor" ), |
| PROP_CHAR_COLOR, |
| ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharBackColor |
| // rOutProperties.push_back( |
| // Property( C2U( "CharBackColor" ), |
| // PROP_CHAR_BACKGROUND_COLOR, |
| // ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT)); |
| // CharEscapement |
| rOutProperties.push_back( |
| Property( C2U( "CharEscapement" ), |
| PROP_CHAR_ESCAPEMENT, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharHeight |
| rOutProperties.push_back( |
| Property( C2U( "CharHeight" ), |
| PROP_CHAR_CHAR_HEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharUnderline (see awt.FontUnderline) |
| rOutProperties.push_back( |
| Property( C2U( "CharUnderline" ), |
| PROP_CHAR_UNDERLINE, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharUnderlineColor |
| rOutProperties.push_back( |
| Property( C2U( "CharUnderlineColor" ), |
| PROP_CHAR_UNDERLINE_COLOR, |
| ::getCppuType( reinterpret_cast< const sal_Int32 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharUnderlineHasColor |
| rOutProperties.push_back( |
| Property( C2U( "CharUnderlineHasColor" ), |
| PROP_CHAR_UNDERLINE_HAS_COLOR, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharOverline (see awt.FontUnderline) |
| rOutProperties.push_back( |
| Property( C2U( "CharOverline" ), |
| PROP_CHAR_OVERLINE, |
| ::getCppuType( reinterpret_cast< const sal_Int16* >( 0 ) ), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT ) ); |
| // CharOverlineColor |
| rOutProperties.push_back( |
| Property( C2U( "CharOverlineColor" ), |
| PROP_CHAR_OVERLINE_COLOR, |
| ::getCppuType( reinterpret_cast< const sal_Int32* >( 0 ) ), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID ) ); |
| // CharOverlineHasColor |
| rOutProperties.push_back( |
| Property( C2U( "CharOverlineHasColor" ), |
| PROP_CHAR_OVERLINE_HAS_COLOR, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT ) ); |
| // CharWeight (see awt.FontWeight) |
| rOutProperties.push_back( |
| Property( C2U( "CharWeight" ), |
| PROP_CHAR_WEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharPosture |
| rOutProperties.push_back( |
| Property( C2U( "CharPosture" ), |
| PROP_CHAR_POSTURE, |
| ::getCppuType( reinterpret_cast< const awt::FontSlant * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| rOutProperties.push_back( |
| Property( C2U( "CharAutoKerning" ), |
| PROP_CHAR_AUTO_KERNING, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| rOutProperties.push_back( |
| Property( C2U( "CharKerning" ), |
| PROP_CHAR_KERNING, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharCaseMap (see style.CaseMap) |
| // rOutProperties.push_back( |
| // Property( C2U( "CharCaseMap" ), |
| // PROP_CHAR_CASE_MAPPING, |
| // ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| |
| // CharRotation |
| // rOutProperties.push_back( |
| // Property( C2U( "CharRotation" ), |
| // PROP_CHAR_ROTATION, |
| // ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| // // CharScaleWidth |
| // rOutProperties.push_back( |
| // Property( C2U( "CharScaleWidth" ), |
| // PROP_CHAR_SCALE_WIDTH, |
| // ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharEscapementHeight |
| rOutProperties.push_back( |
| Property( C2U( "CharEscapementHeight" ), |
| PROP_CHAR_ESCAPEMENT_HEIGHT, |
| ::getCppuType( reinterpret_cast< const sal_Int8 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEVOID )); |
| |
| // CharCrossedOut |
| // rOutProperties.push_back( |
| // Property( C2U( "CharCrossedOut" ), |
| // PROP_CHAR_CROSSED_OUT, |
| // ::getBooleanCppuType(), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharStrikeout (see awt.FontStrikeout) |
| rOutProperties.push_back( |
| Property( C2U( "CharStrikeout" ), |
| PROP_CHAR_STRIKE_OUT, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharWordMode |
| rOutProperties.push_back( |
| Property( C2U( "CharWordMode" ), |
| PROP_CHAR_WORD_MODE, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFlash |
| // rOutProperties.push_back( |
| // Property( C2U( "CharFlash" ), |
| // PROP_CHAR_FLASH, |
| // ::getBooleanCppuType(), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharLocale |
| rOutProperties.push_back( |
| Property( C2U( "CharLocale" ), |
| PROP_CHAR_LOCALE, |
| ::getCppuType( reinterpret_cast< const lang::Locale * >(0)), |
| //#i111967# no PropertyChangeEvent is fired on change so far |
| beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharShadowed |
| rOutProperties.push_back( |
| Property( C2U( "CharShadowed" ), |
| PROP_CHAR_SHADOWED, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharContoured |
| rOutProperties.push_back( |
| Property( C2U( "CharContoured" ), |
| PROP_CHAR_CONTOURED, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharRelief (see text.FontRelief) |
| rOutProperties.push_back( |
| Property( C2U( "CharRelief" ), |
| PROP_CHAR_RELIEF, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| // CharEmphasize (see text.FontEmphasis) |
| rOutProperties.push_back( |
| Property( C2U( "CharEmphasis" ), |
| PROP_CHAR_EMPHASIS, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // // RubyText |
| // rOutProperties.push_back( |
| // Property( C2U( "RubyText" ), |
| // PROP_CHAR_RUBY_TEXT, |
| // ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // // RubyAdjust (see text.RubyAdjust) |
| // rOutProperties.push_back( |
| // Property( C2U( "RubyAdjust" ), |
| // PROP_CHAR_RUBY_ADJUST, |
| // ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // // RubyCharStyleName |
| // rOutProperties.push_back( |
| // Property( C2U( "RubyStyleName" ), |
| // PROP_CHAR_RUBY_STYLE_NAME, |
| // ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // // RubyIsAbove |
| // rOutProperties.push_back( |
| // Property( C2U( "RubyIsAbove" ), |
| // PROP_CHAR_RUBY_IS_ABOVE, |
| // ::getBooleanCppuType(), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // // CharNoHyphenation |
| // rOutProperties.push_back( |
| // Property( C2U( "InhibitHyphenation" ), |
| // PROP_CHAR_INHIBIT_HYPHENATION, |
| // ::getBooleanCppuType(), |
| // beans::PropertyAttribute::BOUND |
| // | beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| // CharacterPropertiesAsian |
| // ===== |
| // CharFontNameAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharFontNameAsian" ), |
| PROP_CHAR_ASIAN_FONT_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontStyleNameAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharFontStyleNameAsian" ), |
| PROP_CHAR_ASIAN_FONT_STYLE_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharFontFamilyAsian (see awt.FontFamily) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontFamilyAsian" ), |
| PROP_CHAR_ASIAN_FONT_FAMILY, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontCharSetAsian (see awt.CharSet) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontCharSetAsian" ), |
| PROP_CHAR_ASIAN_CHAR_SET, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontPitchAsian (see awt.FontPitch) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontPitchAsian" ), |
| PROP_CHAR_ASIAN_FONT_PITCH, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharHeightAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharHeightAsian" ), |
| PROP_CHAR_ASIAN_CHAR_HEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharWeightAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharWeightAsian" ), |
| PROP_CHAR_ASIAN_WEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharPostureAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharPostureAsian" ), |
| PROP_CHAR_ASIAN_POSTURE, |
| ::getCppuType( reinterpret_cast< const awt::FontSlant * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharLocaleAsian |
| rOutProperties.push_back( |
| Property( C2U( "CharLocaleAsian" ), |
| PROP_CHAR_ASIAN_LOCALE, |
| ::getCppuType( reinterpret_cast< const lang::Locale * >(0)), |
| //#i111967# no PropertyChangeEvent is fired on change so far |
| beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| // CharacterPropertiesComplex |
| // === |
| // CharFontNameComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharFontNameComplex" ), |
| PROP_CHAR_COMPLEX_FONT_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontStyleNameComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharFontStyleNameComplex" ), |
| PROP_CHAR_COMPLEX_FONT_STYLE_NAME, |
| ::getCppuType( reinterpret_cast< const OUString * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT |
| | beans::PropertyAttribute::MAYBEVOID )); |
| // CharFontFamilyComplex (see awt.FontFamily) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontFamilyComplex" ), |
| PROP_CHAR_COMPLEX_FONT_FAMILY, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontCharSetComplex (see awt.CharSet) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontCharSetComplex" ), |
| PROP_CHAR_COMPLEX_CHAR_SET, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharFontPitchComplex (see awt.FontPitch) |
| rOutProperties.push_back( |
| Property( C2U( "CharFontPitchComplex" ), |
| PROP_CHAR_COMPLEX_FONT_PITCH, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharHeightComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharHeightComplex" ), |
| PROP_CHAR_COMPLEX_CHAR_HEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharWeightComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharWeightComplex" ), |
| PROP_CHAR_COMPLEX_WEIGHT, |
| ::getCppuType( reinterpret_cast< const float * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharPostureComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharPostureComplex" ), |
| PROP_CHAR_COMPLEX_POSTURE, |
| ::getCppuType( reinterpret_cast< const awt::FontSlant * >(0)), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| // CharLocaleComplex |
| rOutProperties.push_back( |
| Property( C2U( "CharLocaleComplex" ), |
| PROP_CHAR_COMPLEX_LOCALE, |
| ::getCppuType( reinterpret_cast< const lang::Locale * >(0)), |
| //#i111967# no PropertyChangeEvent is fired on change so far |
| beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| // Writing Mode left to right vs right to left |
| rOutProperties.push_back( |
| Property( C2U( "WritingMode" ), |
| PROP_WRITING_MODE, |
| ::getCppuType( reinterpret_cast< const sal_Int16 * >(0)), /*com::sun::star::text::WritingMode2*/ |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| |
| rOutProperties.push_back( |
| Property( C2U( "ParaIsCharacterDistance" ), |
| PROP_PARA_IS_CHARACTER_DISTANCE, |
| ::getBooleanCppuType(), |
| beans::PropertyAttribute::BOUND |
| | beans::PropertyAttribute::MAYBEDEFAULT )); |
| } |
| |
| void CharacterProperties::AddDefaultsToMap( |
| ::chart::tPropertyValueMap & rOutMap ) |
| { |
| const float fDefaultFontHeight = 13.0; |
| |
| SvtLinguConfig aLinguConfig; |
| lang::Locale aDefaultLocale; |
| aLinguConfig.GetProperty(C2U("DefaultLocale")) >>= aDefaultLocale; |
| lang::Locale aDefaultLocale_CJK; |
| aLinguConfig.GetProperty(C2U("DefaultLocale_CJK")) >>= aDefaultLocale_CJK; |
| lang::Locale aDefaultLocale_CTL; |
| aLinguConfig.GetProperty(C2U("DefaultLocale_CTL")) >>= aDefaultLocale_CTL; |
| |
| using namespace ::com::sun::star::i18n::ScriptType; |
| LanguageType nLang; |
| nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage(aDefaultLocale), LATIN); |
| Font aFont = OutputDevice::GetDefaultFont( DEFAULTFONT_LATIN_SPREADSHEET, nLang, DEFAULTFONT_FLAGS_ONLYONE, 0 ); |
| nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage( aDefaultLocale_CJK), ASIAN); |
| Font aFontCJK = OutputDevice::GetDefaultFont( DEFAULTFONT_CJK_SPREADSHEET, nLang, DEFAULTFONT_FLAGS_ONLYONE, 0 ); |
| nLang = MsLangId::resolveSystemLanguageByScriptType(MsLangId::convertLocaleToLanguage( aDefaultLocale_CTL), COMPLEX); |
| Font aFontCTL = OutputDevice::GetDefaultFont( DEFAULTFONT_CTL_SPREADSHEET, nLang, DEFAULTFONT_FLAGS_ONLYONE, 0 ); |
| |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_NAME, OUString( aFont.GetName() ) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_STYLE_NAME, OUString(aFont.GetStyleName()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_FAMILY, sal_Int16(aFont.GetFamily()) );//awt::FontFamily::SWISS |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_CHAR_SET, sal_Int16(aFont.GetCharSet()) );//use awt::CharSet::DONTKNOW instead of SYSTEM to avoid assertion issue 50249 |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FONT_PITCH, sal_Int16(aFont.GetPitch()) );//awt::FontPitch::VARIABLE |
| ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_CHAR_COLOR, -1 ); //automatic color (COL_AUTO) |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CHAR_HEIGHT, fDefaultFontHeight ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_UNDERLINE, awt::FontUnderline::NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_CHAR_UNDERLINE_COLOR, -1 ); //automatic color (COL_AUTO) |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_UNDERLINE_HAS_COLOR, false ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_OVERLINE, awt::FontUnderline::NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault< sal_Int32 >( rOutMap, PROP_CHAR_OVERLINE_COLOR, -1 ); //automatic color (COL_AUTO) |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_OVERLINE_HAS_COLOR, false ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_WEIGHT, awt::FontWeight::NORMAL ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_POSTURE, awt::FontSlant_NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_AUTO_KERNING, true ); |
| ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_KERNING, 0 ); |
| |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CASE_MAPPING, style::CaseMap::NONE ); |
| // ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_ROTATION, 0 ); |
| // ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_SCALE_WIDTH, 71 ); |
| |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CROSSED_OUT, false ); |
| ::chart::PropertyHelper::setPropertyValueDefault< sal_Int16 >( rOutMap, PROP_CHAR_STRIKE_OUT, awt::FontStrikeout::NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_WORD_MODE, false ); |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_FLASH, false ); |
| |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_LOCALE, aDefaultLocale ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_SHADOWED, false ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_CONTOURED, false ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RELIEF, text::FontRelief::NONE ); |
| |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_EMPHASIS, text::FontEmphasis::NONE ); |
| |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_ADJUST, text::RubyAdjust_INDENT_BLOCK ); |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_STYLE_NAME, ?? ); |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_RUBY_IS_ABOVE, true ); |
| // ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_INHIBIT_HYPHENATION, false ); |
| |
| // Asian (com.sun.star.style.CharacterPropertiesAsian) |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_CHAR_HEIGHT, fDefaultFontHeight ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_WEIGHT, awt::FontWeight::NORMAL ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_POSTURE, awt::FontSlant_NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_LOCALE, aDefaultLocale_CJK ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_NAME, OUString( aFontCJK.GetName() ) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_STYLE_NAME, OUString(aFontCJK.GetStyleName()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_FAMILY, sal_Int16(aFontCJK.GetFamily()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_CHAR_SET, sal_Int16(aFontCJK.GetCharSet()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_ASIAN_FONT_PITCH, sal_Int16(aFontCJK.GetPitch()) ); |
| |
| // Complex Text Layout (com.sun.star.style.CharacterPropertiesComplex) |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_CHAR_HEIGHT, fDefaultFontHeight ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_WEIGHT, awt::FontWeight::NORMAL ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_POSTURE, awt::FontSlant_NONE ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_LOCALE, aDefaultLocale_CTL ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_NAME, OUString( aFontCTL.GetName() ) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_STYLE_NAME, OUString(aFontCTL.GetStyleName()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_FAMILY, sal_Int16(aFontCTL.GetFamily()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_CHAR_SET, sal_Int16(aFontCTL.GetCharSet()) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_CHAR_COMPLEX_FONT_PITCH, sal_Int16(aFontCTL.GetPitch()) ); |
| |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_WRITING_MODE, sal_Int16( com::sun::star::text::WritingMode2::PAGE ) ); |
| ::chart::PropertyHelper::setPropertyValueDefault( rOutMap, PROP_PARA_IS_CHARACTER_DISTANCE, sal_True ); |
| } |
| |
| bool CharacterProperties::IsCharacterPropertyHandle( sal_Int32 nHandle ) |
| { |
| return ( FAST_PROPERTY_ID_START_CHAR_PROP <= nHandle && |
| nHandle < CharacterProperties::FAST_PROPERTY_ID_END_CHAR_PROP ); |
| } |
| |
| awt::FontDescriptor CharacterProperties::createFontDescriptorFromPropertySet( |
| const uno::Reference< beans::XMultiPropertySet > & xMultiPropSet ) |
| { |
| awt::FontDescriptor aResult; |
| // Note: keep this sorted! |
| ::comphelper::MakeVector< OUString > aPropNames |
| ( C2U("CharFontCharSet")); // CharSet |
| aPropNames |
| ( C2U("CharFontFamily")) // Family |
| ( C2U("CharFontName")) // Name |
| ( C2U("CharFontPitch")) // Pitch |
| ( C2U("CharFontStyleName")) // StyleName |
| ( C2U("CharHeight")) // Height |
| ( C2U("CharPosture")) // Slant |
| ( C2U("CharStrikeout")) // Strikeout |
| ( C2U("CharUnderline")) // Underline |
| ( C2U("CharWeight")) // Weight |
| ( C2U("CharWordMode")) // WordLineMode |
| ; |
| |
| uno::Sequence< OUString > aPropNameSeq( ContainerHelper::ContainerToSequence( aPropNames )); |
| uno::Sequence< uno::Any > aValues( xMultiPropSet->getPropertyValues( aPropNameSeq )); |
| |
| sal_Int32 i=0; |
| // Note keep this sorted according to the list above (comments are the fieldnames) |
| aValues[ i++ ] >>= aResult.CharSet; |
| aValues[ i++ ] >>= aResult.Family; |
| aValues[ i++ ] >>= aResult.Name; |
| aValues[ i++ ] >>= aResult.Pitch; |
| aValues[ i++ ] >>= aResult.StyleName; |
| float fCharHeight = 0; |
| aValues[ i++ ] >>= fCharHeight; |
| aResult.Height = static_cast< sal_Int16 >( fCharHeight ); |
| aValues[ i++ ] >>= aResult.Slant; |
| aValues[ i++ ] >>= aResult.Strikeout; |
| aValues[ i++ ] >>= aResult.Underline; |
| aValues[ i++ ] >>= aResult.Weight; |
| aValues[ i++ ] >>= aResult.WordLineMode; |
| OSL_ASSERT( i == aValues.getLength()); |
| |
| return aResult; |
| } |
| |
| } // namespace chart |