summaryrefslogtreecommitdiff
path: root/cui/source/options/optasian.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'cui/source/options/optasian.cxx')
-rw-r--r--cui/source/options/optasian.cxx439
1 files changed, 0 insertions, 439 deletions
diff --git a/cui/source/options/optasian.cxx b/cui/source/options/optasian.cxx
deleted file mode 100644
index 5a338aa11..000000000
--- a/cui/source/options/optasian.cxx
+++ /dev/null
@@ -1,439 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * 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.
- *
- ************************************************************************/
-
-#include <optasian.hxx>
-#include <editeng/langitem.hxx>
-#include <editeng/unolingu.hxx>
-#include <optasian.hrc>
-#include <dialmgr.hxx>
-#include <cuires.hrc>
-#include <tools/table.hxx>
-#include <tools/shl.hxx>
-#include <svl/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);
-};
-
-SvxForbiddenCharacterTable_Impl::~SvxForbiddenCharacterTable_Impl()
-{
- for( SvxForbiddenChars_Impl* pDel = First(); pDel; pDel = Next() )
- {
- delete pDel->pCharacters;
- delete pDel;
- }
-}
-
-sal_Bool SvxAsianLayoutPage_Impl::hasForbiddenCharacters(LanguageType eLang)
-{
- return 0 != aChangedLanguagesTbl.Get(eLang);
-}
-
-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;
-}
-
-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;
- }
-
-}
-
-static LanguageType eLastUsedLanguageTypeForForbiddenCharacters = USHRT_MAX;
-
-SvxAsianLayoutPage::SvxAsianLayoutPage( Window* pParent, const SfxItemSet& rSet ) :
- SfxTabPage(pParent, CUI_RES( RID_SVXPAGE_ASIAN_LAYOUT ), rSet),
- aKerningGB( this, CUI_RES(GB_KERNING )),
- aCharKerningRB( this, CUI_RES(RB_CHAR_KERNING )),
- aCharPunctKerningRB( this, CUI_RES(RB_CHAR_PUNCT )),
- aCharDistGB( this, CUI_RES(GB_CHAR_DIST )),
- aNoCompressionRB( this, CUI_RES(RB_NO_COMP )),
- aPunctCompressionRB( this, CUI_RES(RB_PUNCT_COMP )),
- aPunctKanaCompressionRB(this, CUI_RES(RB_PUNCT_KANA_COMP )),
- aStartEndGB( this, CUI_RES(GB_START_END )),
- aLanguageFT( this, CUI_RES(FT_LANGUAGE )),
- aLanguageLB( this, CUI_RES(LB_LANGUAGE )),
- aStandardCB( this, CUI_RES(CB_STANDARD )),
- aStartFT( this, CUI_RES(FT_START )),
- aStartED( this, CUI_RES(ED_START )),
- aEndFT( this, CUI_RES(FT_END )),
- aEndED( this, CUI_RES(ED_END )),
- aHintFT( this, CUI_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, sal_False, sal_False );
-}
-
-SvxAsianLayoutPage::~SvxAsianLayoutPage()
-{
- delete pImpl;
-}
-
-SfxTabPage* SvxAsianLayoutPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
-{
- return new SvxAsianLayoutPage(pParent, rAttrSet);
-}
-
-sal_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;
- sal_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() )
- {
- sal_uLong nLang = pImpl->aChangedLanguagesTbl.GetKey( pElem );
- Locale aLocale;
- SvxLanguageToLocale(aLocale, (sal_uInt16)nLang );
- if(pElem->bRemoved)
- pImpl->xForbidden->removeForbiddenCharacters( aLocale );
- else if(pElem->pCharacters)
- pImpl->xForbidden->setForbiddenCharacters( aLocale, *pElem->pCharacters );
- }
- }
- catch(Exception&)
- {
- OSL_FAIL("exception in XForbiddenCharacters");
- }
- }
- eLastUsedLanguageTypeForForbiddenCharacters = aLanguageLB.GetSelectLanguage();
-
- return sal_False;
-}
-
-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(sal_False);
- aLanguageFT.Enable(sal_False);
- aLanguageLB.Enable(sal_False);
- aStandardCB.Enable(sal_False);
- aStartFT.Enable(sal_False);
- aStartED.Enable(sal_False);
- aEndFT.Enable(sal_False);
- aEndED.Enable(sal_False);
- aHintFT.Enable(sal_False);
- }
- if(bKernWesternText)
- aCharKerningRB.Check(sal_True);
- else
- aCharPunctKerningRB.Check(sal_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);
-}
-
-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 = sal_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&)
- {
- OSL_FAIL("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;
-}
-
-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;
-}
-
-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->addForbiddenCharacters(eSelectLanguage, &aSet);
- }
- else
- pImpl->addForbiddenCharacters(eSelectLanguage, 0);
- }
- catch(Exception&)
- {
- OSL_FAIL("exception in XForbiddenCharacters");
- }
- }
- pImpl->aConfig.SetStartEndChars( aLocale, bEnable ? &sStart : 0, bEnable ? &sEnd : 0);
- return 0;
-}
-
-sal_uInt16* SvxAsianLayoutPage::GetRanges()
-{
- //no items are used
- static sal_uInt16 pAsianLayoutRanges[] = { 0 };
- return pAsianLayoutRanges;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */