summaryrefslogtreecommitdiff
path: root/svx/source/cui/optasian.cxx
diff options
context:
space:
mode:
authorRelease Engineers <releng@openoffice.org>2009-05-06 10:59:57 +0000
committerRelease Engineers <releng@openoffice.org>2009-05-06 10:59:57 +0000
commit4d3148e0b7ee607de9c86e9e9aa79e9cd423f1f1 (patch)
tree5c5025d215f13e88b0ab36d10e91b6c064bce7a9 /svx/source/cui/optasian.cxx
parent924c156e4a9333ac972a91d185380220860cc91b (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.cxx475
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;
+}