diff options
author | Release Engineers <releng@openoffice.org> | 2009-05-06 10:59:57 +0000 |
---|---|---|
committer | Release Engineers <releng@openoffice.org> | 2009-05-06 10:59:57 +0000 |
commit | 4d3148e0b7ee607de9c86e9e9aa79e9cd423f1f1 (patch) | |
tree | 5c5025d215f13e88b0ab36d10e91b6c064bce7a9 /svx/source/cui/optasian.cxx | |
parent | 924c156e4a9333ac972a91d185380220860cc91b (diff) |
CWS-TOOLING: integrate CWS mba32issues01
2009-05-05 18:23:27 +0200 mba r271547 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-05-05 18:22:02 +0200 mba r271545 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-05-05 18:16:42 +0200 mba r271544 : apply diffs from m45->m47 for all files moved from dialog to cui
2009-04-29 19:35:58 +0200 mba r271392 : #i73672#: unify commands for inserting special characters
2009-04-29 18:01:27 +0200 mba r271391 : #i101337#: missing string resources
2009-04-29 18:01:10 +0200 mba r271390 : #i101337#: missing string resources
2009-04-29 15:42:47 +0200 mba r271380 : concurrency problem in multithreaded dmake due to missing dependency
2009-04-28 17:36:03 +0200 tbo r271336 : #i99432#
2009-04-28 13:57:52 +0200 mba r271322 : #i101302#: ctor might be called with pSet=0
2009-04-22 19:32:39 +0200 tbo r271138 : #i99432#
2009-04-09 14:46:03 +0200 mba r270709 : make sendreportw32.cxx compile with pch
2009-04-06 16:05:07 +0200 mba r270568 : #i99432#: some tweaks for build order
2009-04-06 15:38:52 +0200 mba r270558 : typo
2009-04-06 13:36:19 +0200 mba r270542 : #i99432#: split of localization also
2009-04-06 13:19:06 +0200 mba r270539 : #i99432#: split up srs files also
2009-04-03 17:57:59 +0200 mba r270513 : #i99432#: split dialog folder into two
2009-04-03 17:56:46 +0200 mba r270512 : #i99432#: split dialog folder into two
2009-04-01 22:15:00 +0200 mba r270364 : warnings on Linux
2009-04-01 22:10:44 +0200 mba r270363 : warnings on Linux
2009-04-01 21:43:54 +0200 mba r270362 : warning fixed
2009-04-01 21:41:27 +0200 mba r270361 : warning on Linux fixed
2009-04-01 21:35:44 +0200 mba r270360 : warning fixed
2009-04-01 20:19:59 +0200 mba r270358 : warning found on Linux fixed
2009-04-01 19:23:38 +0200 mba r270354 : warning due to missing eof
2009-04-01 18:56:25 +0200 mba r270352 : linking problem fixed that appeared only on mac
2009-04-01 18:41:30 +0200 mba r270350 : warnings discovered on Linux fixed
2009-04-01 18:34:28 +0200 mba r270349 : some fixes for warnings and include problems discoverd after resync and build on mac
2009-04-01 14:08:22 +0200 mba r270328 : CWS-TOOLING: rebase CWS mba32issues01 to trunk@270033 (milestone: DEV300:m45)
2009-03-04 18:13:35 +0100 mba r268858 : #i99432#: more dialogs moved to cui
2009-03-04 17:47:41 +0100 mba r268854 : #i99432#: more dialogs moved to cui
2009-03-04 17:32:39 +0100 mba r268851 : warning fixed
2009-03-04 12:59:26 +0100 mba r268814 : #i99432#: more dialogs moved to cui
2009-03-04 11:49:03 +0100 mba r268802 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:46:00 +0100 mba r268795 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:43:50 +0100 mba r268794 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:00:29 +0100 mba r268792 : #i99432#: CharmapDialog moved to cui
2009-03-04 10:00:03 +0100 mba r268791 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:59:43 +0100 mba r268790 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:58:51 +0100 mba r268789 : #i99432#: CharmapDialog moved to cui
2009-03-04 09:58:16 +0100 mba r268788 : #i99432#: CharmapDialog moved to cui
2009-03-03 16:33:14 +0100 mba r268763 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:32:28 +0100 mba r268762 : #i99432#: some tabpages moved to cui
2009-03-03 16:32:09 +0100 mba r268761 : #i99432#: some tabpages moved to cui
2009-03-03 16:29:40 +0100 mba r268760 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:29:08 +0100 mba r268759 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:28:41 +0100 mba r268758 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:28:18 +0100 mba r268757 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:27:36 +0100 mba r268756 : #i99465#: replace FN_SYMBOL by SID_CHARMAP
2009-03-03 16:27:02 +0100 mba r268755 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:26:23 +0100 mba r268754 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:25:30 +0100 mba r268753 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:24:49 +0100 mba r268752 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:24:35 +0100 mba r268751 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:23:20 +0100 mba r268750 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:23:04 +0100 mba r268749 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:21:56 +0100 mba r268748 : #i99465#: new SfxAbstractDialog interface and creation methods
2009-03-03 16:18:39 +0100 mba r268747 : #i99432#: MacroAssignment page moved to cui
2009-03-03 16:13:14 +0100 mba r268745 : #i99465#: replace FN_SYMBOL by SID_CHARMAP
2009-03-03 16:02:54 +0100 mba r268738 : #i99432#: moved MacroAssignment TabPage from sfx2
2009-03-03 14:57:58 +0100 mba r268729 : #i99465#: transport return value via ItemSet
2009-03-03 00:08:10 +0100 mba r268701 : #i99432#: move acccfg to cuilib
2009-03-03 00:07:32 +0100 mba r268700 : #i99432#: move acccfg to cuilib
2009-03-03 00:02:01 +0100 mba r268699 : #i99432#: move acccfg to cuilib
2009-03-03 00:01:38 +0100 mba r268698 : #i99432#: move acccfg to cuilib
2009-03-03 00:01:11 +0100 mba r268697 : #i99432#: move acccfg to cuilib
2009-03-03 00:00:40 +0100 mba r268696 : #i99432#: move acccfg to cuilib
2009-03-03 00:00:06 +0100 mba r268695 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog
2009-03-02 23:59:22 +0100 mba r268694 : #i99432#: move acccfg to cuilib
2009-03-02 23:57:19 +0100 mba r268693 : #i99432#: move acccfg to svx
2009-03-02 23:56:14 +0100 mba r268692 : #i99432#: replace SfxAbstractSingleTabDialog by SfxAbstractDialog
2009-03-02 23:49:37 +0100 mba r268691 : #i99785#: consolidate dialogs library
2009-03-02 17:26:40 +0100 mba r268683 : #i99785#: consolidate dialogs library
2009-03-02 17:24:28 +0100 mba r268682 : i99465#: consolidate slot for InsertSymbol command
2009-03-02 17:22:29 +0100 mba r268681 : #i99785#: consolidate dialogs library
2009-03-02 17:18:11 +0100 mba r268680 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 17:08:30 +0100 mba r268679 : #i99785#: consolidate dialogs library
2009-03-02 17:06:57 +0100 mba r268678 : #i99785#: consolidate dialogs library
2009-03-02 17:06:30 +0100 mba r268677 : #i99785#: consolidate dialogs library
2009-03-02 17:05:02 +0100 mba r268676 : #i99785#: consolidate dialogs library
2009-03-02 17:04:35 +0100 mba r268675 : #i99785#: consolidate dialogs library
2009-03-02 16:47:53 +0100 mba r268673 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:45:17 +0100 mba r268671 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:39:59 +0100 mba r268670 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:38:59 +0100 mba r268668 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:38:28 +0100 mba r268667 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:36:06 +0100 mba r268666 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:29:50 +0100 mba r268663 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:24:00 +0100 mba r268659 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:23:31 +0100 mba r268658 : i99432#: move accelconfig and macroassignment to cui
2009-03-02 16:22:41 +0100 mba r268657 : i99432#: move accelconfig and macroassignment to cui
2009-02-25 16:57:26 +0100 mba r268453 : obsolete
2009-02-17 10:50:51 +0100 mba r267846 : obsolete
2009-02-12 16:33:54 +0100 mba r267676 : #i96834#: warning fixed
2009-02-11 19:28:47 +0100 mba r267626 : #i91978#: unused code
2009-02-11 18:37:47 +0100 mba r267625 : metafile output, fixes for 3 layer office
2009-02-11 12:56:28 +0100 mba r267593 : selective trees; incomplete build lists; metafile output
Diffstat (limited to 'svx/source/cui/optasian.cxx')
-rw-r--r-- | svx/source/cui/optasian.cxx | 475 |
1 files changed, 475 insertions, 0 deletions
diff --git a/svx/source/cui/optasian.cxx b/svx/source/cui/optasian.cxx new file mode 100644 index 000000000000..d96dcdd13c1f --- /dev/null +++ b/svx/source/cui/optasian.cxx @@ -0,0 +1,475 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: optasian.cxx,v $ + * $Revision: 1.12 $ + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org 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 Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +// MARKER(update_precomp.py): autogen include statement, do not remove +#include "precompiled_svx.hxx" + +#ifdef SVX_DLLIMPLEMENTATION +#undef SVX_DLLIMPLEMENTATION +#endif +#include <optasian.hxx> +#include <svx/langitem.hxx> +#include <unolingu.hxx> +#include <optasian.hrc> +#include <svx/dialmgr.hxx> +#include <svx/dialogs.hrc> +#ifndef _TABLE_HXX //autogen +#include <tools/table.hxx> +#endif +#include <tools/shl.hxx> +#include <asiancfg.hxx> +#include <com/sun/star/lang/Locale.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/i18n/XForbiddenCharacters.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> +#include <sfx2/viewfrm.hxx> +#include <sfx2/objsh.hxx> +#include <vcl/svapp.hxx> +#include <comphelper/processfactory.hxx> +#include <unotools/localedatawrapper.hxx> + +using namespace com::sun::star::uno; +using namespace com::sun::star::lang; +using namespace com::sun::star::i18n; +using namespace com::sun::star::frame; +using namespace com::sun::star::beans; +using rtl::OUString; + +#define C2U(cChar) rtl::OUString::createFromAscii(cChar) + +const sal_Char cIsKernAsianPunctuation[] = "IsKernAsianPunctuation"; +const sal_Char cCharacterCompressionType[] = "CharacterCompressionType"; + +struct SvxForbiddenChars_Impl +{ + sal_Bool bRemoved; + ForbiddenCharacters* pCharacters; +}; + +DECLARE_TABLE( _SvxForbiddenCharacterTable_Impl, SvxForbiddenChars_Impl* ) + +class SvxForbiddenCharacterTable_Impl : public _SvxForbiddenCharacterTable_Impl +{ +public: + SvxForbiddenCharacterTable_Impl() + : _SvxForbiddenCharacterTable_Impl( 4, 4 ) + {} + ~SvxForbiddenCharacterTable_Impl(); +}; + +struct SvxAsianLayoutPage_Impl +{ + SvxAsianConfig aConfig; + SvxAsianLayoutPage_Impl() : + aConfig(sal_False){} + + Reference< XForbiddenCharacters > xForbidden; + Reference< XPropertySet > xPrSet; + Reference< XPropertySetInfo > xPrSetInfo; + SvxForbiddenCharacterTable_Impl aChangedLanguagesTbl; + + sal_Bool hasForbiddenCharacters(LanguageType eLang); + SvxForbiddenChars_Impl* getForbiddenCharacters(LanguageType eLang); + void addForbiddenCharacters(LanguageType eLang, ForbiddenCharacters* pForbidden); +}; +/* -----------------------------24.01.01 14:50-------------------------------- + + ---------------------------------------------------------------------------*/ +SvxForbiddenCharacterTable_Impl::~SvxForbiddenCharacterTable_Impl() +{ + for( SvxForbiddenChars_Impl* pDel = First(); pDel; pDel = Next() ) + { + delete pDel->pCharacters; + delete pDel; + } +} +/* -----------------------------24.01.01 14:50-------------------------------- + + ---------------------------------------------------------------------------*/ +sal_Bool SvxAsianLayoutPage_Impl::hasForbiddenCharacters(LanguageType eLang) +{ + return 0 != aChangedLanguagesTbl.Get(eLang); +} +/* -----------------------------24.01.01 14:50-------------------------------- + + ---------------------------------------------------------------------------*/ +SvxForbiddenChars_Impl* SvxAsianLayoutPage_Impl::getForbiddenCharacters(LanguageType eLang) +{ + SvxForbiddenChars_Impl* pImp = aChangedLanguagesTbl.Get(eLang); + DBG_ASSERT(pImp, "language not available"); + if(pImp) + return pImp; + return 0; +} +/* -----------------------------24.01.01 14:50-------------------------------- + + ---------------------------------------------------------------------------*/ +void SvxAsianLayoutPage_Impl::addForbiddenCharacters( + LanguageType eLang, ForbiddenCharacters* pForbidden) +{ + SvxForbiddenChars_Impl* pOld = aChangedLanguagesTbl.Get(eLang); + if( !pOld ) + { + pOld = new SvxForbiddenChars_Impl; + pOld->bRemoved = 0 == pForbidden; + pOld->pCharacters = pForbidden ? new ForbiddenCharacters(*pForbidden) : 0; + aChangedLanguagesTbl.Insert( eLang, pOld ); + } + else + { + pOld->bRemoved = 0 == pForbidden; + delete pOld->pCharacters; + pOld->pCharacters = pForbidden ? new ForbiddenCharacters(*pForbidden) : 0; + } + +} +/*-- 09.01.01 13:29:02--------------------------------------------------- + + -----------------------------------------------------------------------*/ +static LanguageType eLastUsedLanguageTypeForForbiddenCharacters = USHRT_MAX; + +SvxAsianLayoutPage::SvxAsianLayoutPage( Window* pParent, const SfxItemSet& rSet ) : + SfxTabPage(pParent, SVX_RES( RID_SVXPAGE_ASIAN_LAYOUT ), rSet), + aKerningGB( this, SVX_RES(GB_KERNING )), + aCharKerningRB( this, SVX_RES(RB_CHAR_KERNING )), + aCharPunctKerningRB( this, SVX_RES(RB_CHAR_PUNCT )), + aCharDistGB( this, SVX_RES(GB_CHAR_DIST )), + aNoCompressionRB( this, SVX_RES(RB_NO_COMP )), + aPunctCompressionRB( this, SVX_RES(RB_PUNCT_COMP )), + aPunctKanaCompressionRB(this, SVX_RES(RB_PUNCT_KANA_COMP )), + aStartEndGB( this, SVX_RES(GB_START_END )), + aLanguageFT( this, SVX_RES(FT_LANGUAGE )), + aLanguageLB( this, SVX_RES(LB_LANGUAGE )), + aStandardCB( this, SVX_RES(CB_STANDARD )), + aStartFT( this, SVX_RES(FT_START )), + aStartED( this, SVX_RES(ED_START )), + aEndFT( this, SVX_RES(FT_END )), + aEndED( this, SVX_RES(ED_END )), + aHintFT( this, SVX_RES(FT_HINT )), + pImpl(new SvxAsianLayoutPage_Impl) +{ + FreeResource(); + LanguageHdl(&aLanguageLB); + aLanguageLB.SetSelectHdl(LINK(this, SvxAsianLayoutPage, LanguageHdl)); + aStandardCB.SetClickHdl(LINK(this, SvxAsianLayoutPage, ChangeStandardHdl)); + Link aLk(LINK(this, SvxAsianLayoutPage, ModifyHdl)); + aStartED.SetModifyHdl(aLk); + aEndED.SetModifyHdl(aLk); + + aLanguageLB.SetLanguageList( LANG_LIST_FBD_CHARS, FALSE, FALSE ); +} +/*-- 09.01.01 13:29:02--------------------------------------------------- + + -----------------------------------------------------------------------*/ +SvxAsianLayoutPage::~SvxAsianLayoutPage() +{ + delete pImpl; +} +/*-- 09.01.01 13:29:02--------------------------------------------------- + + -----------------------------------------------------------------------*/ +SfxTabPage* SvxAsianLayoutPage::Create( Window* pParent, const SfxItemSet& rAttrSet ) +{ + return new SvxAsianLayoutPage(pParent, rAttrSet); +} +/*-- 09.01.01 13:29:03--------------------------------------------------- + + -----------------------------------------------------------------------*/ +BOOL SvxAsianLayoutPage::FillItemSet( SfxItemSet& ) +{ + if(aCharKerningRB.IsChecked() != aCharKerningRB.GetSavedValue()) + { + pImpl->aConfig.SetKerningWesternTextOnly(aCharKerningRB.IsChecked()); + OUString sPunct(C2U(cIsKernAsianPunctuation)); + if(pImpl->xPrSetInfo.is() && pImpl->xPrSetInfo->hasPropertyByName(sPunct)) + { + Any aVal; + BOOL bVal = !aCharKerningRB.IsChecked(); + aVal.setValue(&bVal, ::getBooleanCppuType()); + pImpl->xPrSet->setPropertyValue(sPunct, aVal); + } + } + + if(aNoCompressionRB.IsChecked() != aNoCompressionRB.GetSavedValue() || + aPunctCompressionRB.IsChecked() != aPunctCompressionRB.GetSavedValue()) + { + sal_Int16 nSet = aNoCompressionRB.IsChecked() ? 0 : + aPunctCompressionRB.IsChecked() ? 1 : 2; + pImpl->aConfig.SetCharDistanceCompression(nSet); + OUString sCompress(C2U(cCharacterCompressionType)); + if(pImpl->xPrSetInfo.is() && pImpl->xPrSetInfo->hasPropertyByName(sCompress)) + { + Any aVal; + aVal <<= nSet; + pImpl->xPrSet->setPropertyValue(sCompress, aVal); + } + } + if(pImpl->aConfig.IsModified()) + pImpl->aConfig.Commit(); + if(pImpl->xForbidden.is()) + { + try + { + for( SvxForbiddenChars_Impl* pElem = pImpl->aChangedLanguagesTbl.First(); + pElem; pElem = pImpl->aChangedLanguagesTbl.Next() ) + { + ULONG nLang = pImpl->aChangedLanguagesTbl.GetKey( pElem ); + Locale aLocale; + SvxLanguageToLocale(aLocale, (USHORT)nLang ); + if(pElem->bRemoved) + pImpl->xForbidden->removeForbiddenCharacters( aLocale ); + else if(pElem->pCharacters) + pImpl->xForbidden->setForbiddenCharacters( aLocale, *pElem->pCharacters ); + } + } + catch(Exception&) + { + DBG_ERROR("exception in XForbiddenCharacters"); + } + } + eLastUsedLanguageTypeForForbiddenCharacters = aLanguageLB.GetSelectLanguage(); + + return FALSE; +} +/*-- 09.01.01 13:29:03--------------------------------------------------- + + -----------------------------------------------------------------------*/ +void SvxAsianLayoutPage::Reset( const SfxItemSet& ) +{ + SfxViewFrame* pCurFrm = SfxViewFrame::Current(); + SfxObjectShell* pDocSh = pCurFrm ? pCurFrm->GetObjectShell() : 0; + Reference< XModel > xModel; + if(pDocSh) + xModel = pDocSh->GetModel(); + Reference<XMultiServiceFactory> xFact(xModel, UNO_QUERY); + if(xFact.is()) + { + pImpl->xPrSet = Reference<XPropertySet>( + xFact->createInstance(C2U("com.sun.star.document.Settings")), UNO_QUERY); + } + if( pImpl->xPrSet.is() ) + pImpl->xPrSetInfo = pImpl->xPrSet->getPropertySetInfo(); + OUString sForbidden(C2U("ForbiddenCharacters")); + sal_Bool bKernWesternText = pImpl->aConfig.IsKerningWesternTextOnly(); + sal_Int16 nCompress = pImpl->aConfig.GetCharDistanceCompression(); + if(pImpl->xPrSetInfo.is()) + { + if(pImpl->xPrSetInfo->hasPropertyByName(sForbidden)) + { + Any aForbidden = pImpl->xPrSet->getPropertyValue(sForbidden); + aForbidden >>= pImpl->xForbidden; + } + OUString sCompress(C2U(cCharacterCompressionType)); + if(pImpl->xPrSetInfo->hasPropertyByName(sCompress)) + { + Any aVal = pImpl->xPrSet->getPropertyValue(sCompress); + aVal >>= nCompress; + } + OUString sPunct(C2U(cIsKernAsianPunctuation)); + if(pImpl->xPrSetInfo->hasPropertyByName(sPunct)) + { + Any aVal = pImpl->xPrSet->getPropertyValue(sPunct); + bKernWesternText = !*(sal_Bool*)aVal.getValue(); + } + } + else + { + aStartEndGB.Enable(FALSE); + aLanguageFT.Enable(FALSE); + aLanguageLB.Enable(FALSE); + aStandardCB.Enable(FALSE); + aStartFT.Enable(FALSE); + aStartED.Enable(FALSE); + aEndFT.Enable(FALSE); + aEndED.Enable(FALSE); + aHintFT.Enable(FALSE); + } + if(bKernWesternText) + aCharKerningRB.Check(TRUE); + else + aCharPunctKerningRB.Check(TRUE); + switch(nCompress) + { + case 0 : aNoCompressionRB.Check(); break; + case 1 : aPunctCompressionRB.Check(); break; + default: aPunctKanaCompressionRB.Check(); + } + aCharKerningRB.SaveValue(); + aNoCompressionRB.SaveValue(); + aPunctCompressionRB.SaveValue(); + aPunctKanaCompressionRB.SaveValue(); + + aLanguageLB.SelectEntryPos(0); + //preselect the system language in the box - if available + if(USHRT_MAX == eLastUsedLanguageTypeForForbiddenCharacters) + { + eLastUsedLanguageTypeForForbiddenCharacters = SvxLocaleToLanguage( + Application::GetSettings().GetLocale() ); + switch(eLastUsedLanguageTypeForForbiddenCharacters) + { + case LANGUAGE_CHINESE : + case LANGUAGE_CHINESE_SINGAPORE : + eLastUsedLanguageTypeForForbiddenCharacters = LANGUAGE_CHINESE_SIMPLIFIED; + break; + case LANGUAGE_CHINESE_HONGKONG : + case LANGUAGE_CHINESE_MACAU : + eLastUsedLanguageTypeForForbiddenCharacters = LANGUAGE_CHINESE_TRADITIONAL; + break; + } + } + aLanguageLB.SelectLanguage( eLastUsedLanguageTypeForForbiddenCharacters ); + LanguageHdl(&aLanguageLB); +} +/* -----------------------------17.01.01 11:02-------------------------------- + + ---------------------------------------------------------------------------*/ +IMPL_LINK(SvxAsianLayoutPage, LanguageHdl, SvxLanguageBox*, EMPTYARG ) +{ + //set current value + Locale aLocale; + LanguageType eSelectLanguage = aLanguageLB.GetSelectLanguage(); + SvxLanguageToLocale(aLocale, eSelectLanguage ); + + OUString sStart, sEnd; + sal_Bool bAvail; + if(pImpl->xForbidden.is()) + { + bAvail = pImpl->hasForbiddenCharacters(eSelectLanguage); + if(bAvail) + { + SvxForbiddenChars_Impl* pElement = pImpl->getForbiddenCharacters(eSelectLanguage); + if(pElement->bRemoved || !pElement->pCharacters) + { + bAvail = FALSE; + } + else + { + sStart = pElement->pCharacters->beginLine; + sEnd = pElement->pCharacters->endLine; + } + } + else + { + try + { + bAvail = pImpl->xForbidden->hasForbiddenCharacters(aLocale); + if(bAvail) + { + ForbiddenCharacters aForbidden = pImpl->xForbidden->getForbiddenCharacters( aLocale ); + sStart = aForbidden.beginLine; + sEnd = aForbidden.endLine; + } + } + catch(Exception&) + { + DBG_ERROR("exception in XForbiddenCharacters"); + } + } + } + else + { + bAvail = pImpl->aConfig.GetStartEndChars( aLocale, sStart, sEnd ); + } + if(!bAvail) + { + Reference< XMultiServiceFactory > xMSF = ::comphelper::getProcessServiceFactory(); + LocaleDataWrapper aWrap( xMSF, aLocale ); + ForbiddenCharacters aForbidden = aWrap.getForbiddenCharacters(); + sStart = aForbidden.beginLine; + sEnd = aForbidden.endLine; + } + aStandardCB.Check(!bAvail); + aStartED.Enable(bAvail); + aEndED.Enable(bAvail); + aStartFT.Enable(bAvail); + aEndFT.Enable(bAvail); + aStartED.SetText(sStart); + aEndED.SetText(sEnd); + + return 0; +} +/* -----------------------------17.01.01 11:02-------------------------------- + + ---------------------------------------------------------------------------*/ +IMPL_LINK(SvxAsianLayoutPage, ChangeStandardHdl, CheckBox*, pBox) +{ + sal_Bool bCheck = pBox->IsChecked(); + aStartED.Enable(!bCheck); + aEndED.Enable(!bCheck); + aStartFT.Enable(!bCheck); + aEndFT.Enable(!bCheck); + + ModifyHdl(&aStartED); + return 0; +} +/* -----------------------------17.01.01 12:26-------------------------------- + + ---------------------------------------------------------------------------*/ +IMPL_LINK(SvxAsianLayoutPage, ModifyHdl, Edit*, pEdit) +{ + Locale aLocale; + LanguageType eSelectLanguage = aLanguageLB.GetSelectLanguage(); + SvxLanguageToLocale(aLocale, eSelectLanguage ); + OUString sStart = aStartED.GetText(); + OUString sEnd = aEndED.GetText(); + sal_Bool bEnable = pEdit->IsEnabled(); + if(pImpl->xForbidden.is()) + { + try + { + if(bEnable) + { + ForbiddenCharacters aSet; + aSet.beginLine = sStart; + aSet.endLine = sEnd; +// pImpl->xForbidden->setForbiddenCharacters( aLocale, aSet ); + pImpl->addForbiddenCharacters(eSelectLanguage, &aSet); + } + else + pImpl->addForbiddenCharacters(eSelectLanguage, 0); +// pImpl->xForbidden->removeForbiddenCharacters( aLocale ); + } + catch(Exception&) + { + DBG_ERROR("exception in XForbiddenCharacters"); + } + } + pImpl->aConfig.SetStartEndChars( aLocale, bEnable ? &sStart : 0, bEnable ? &sEnd : 0); + return 0; +} +/*-- 07.09.2007 12:05:09--------------------------------------------------- + + -----------------------------------------------------------------------*/ +USHORT* SvxAsianLayoutPage::GetRanges() +{ + //no items are used + static USHORT pAsianLayoutRanges[] = { 0 }; + return pAsianLayoutRanges; +} |