diff options
Diffstat (limited to 'bf_sfx2/source/control/sfx2_srchitem.cxx')
-rw-r--r-- | bf_sfx2/source/control/sfx2_srchitem.cxx | 287 |
1 files changed, 287 insertions, 0 deletions
diff --git a/bf_sfx2/source/control/sfx2_srchitem.cxx b/bf_sfx2/source/control/sfx2_srchitem.cxx new file mode 100644 index 000000000..e0f83f9d9 --- /dev/null +++ b/bf_sfx2/source/control/sfx2_srchitem.cxx @@ -0,0 +1,287 @@ +/* -*- 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 "bf_basic/sbxvar.hxx" +#include <bf_svtools/searchopt.hxx> +#include <sal/macros.h> + +#include <bf_svtools/memberid.hrc> + +#ifdef _MSC_VER +#pragma hdrstop +#endif + +#define _SVX_SRCHITEM_CXX + +#include "sfxsids.hrc" +#define ITEMID_SEARCH SID_SEARCH_ITEM +#include "srchitem.hxx" + +namespace binfilter { + +using namespace utl; +using namespace ::com::sun::star::util; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::i18n; +using namespace ::com::sun::star::uno; + +using ::rtl::OUString; + +#define CFG_ROOT_NODE "Office.Common/SearchOptions" + +// STATIC DATA ----------------------------------------------------------- + +/*N*/ TYPEINIT1_AUTOFACTORY(SvxSearchItem, SfxPoolItem); + +// ----------------------------------------------------------------------- + +/*N*/ static Sequence< OUString > lcl_GetNotifyNames() +/*N*/ { +/*N*/ // names of transliteration relevant properties +/*N*/ static const char* aTranslitNames[] = +/*N*/ { +/*N*/ "IsMatchCase", // 0 +/*N*/ "Japanese/IsMatchFullHalfWidthForms", // 1 +/*N*/ "Japanese/IsMatchHiraganaKatakana", // 2 +/*N*/ "Japanese/IsMatchContractions", // 3 +/*N*/ "Japanese/IsMatchMinusDashCho-on", // 4 +/*N*/ "Japanese/IsMatchRepeatCharMarks", // 5 +/*N*/ "Japanese/IsMatchVariantFormKanji", // 6 +/*N*/ "Japanese/IsMatchOldKanaForms", // 7 +/*N*/ "Japanese/IsMatch_DiZi_DuZu", // 8 +/*N*/ "Japanese/IsMatch_BaVa_HaFa", // 9 +/*N*/ "Japanese/IsMatch_TsiThiChi_DhiZi", // 10 +/*N*/ "Japanese/IsMatch_HyuIyu_ByuVyu", // 11 +/*N*/ "Japanese/IsMatch_SeShe_ZeJe", // 12 +/*N*/ "Japanese/IsMatch_IaIya", // 13 +/*N*/ "Japanese/IsMatch_KiKu", // 14 +/*N*/ "Japanese/IsIgnorePunctuation", // 15 +/*N*/ "Japanese/IsIgnoreWhitespace", // 16 +/*N*/ "Japanese/IsIgnoreProlongedSoundMark", // 17 +/*N*/ "Japanese/IsIgnoreMiddleDot" // 18 +/*N*/ }; +/*N*/ +/*N*/ const int nCount = SAL_N_ELEMENTS( aTranslitNames ); +/*N*/ Sequence< OUString > aNames( nCount ); +/*N*/ OUString* pNames = aNames.getArray(); +/*N*/ for (INT32 i = 0; i < nCount; ++i) +/*N*/ pNames[i] = OUString::createFromAscii( aTranslitNames[i] ); +/*N*/ +/*N*/ return aNames; +/*N*/ } + +// ----------------------------------------------------------------------- +/*N*/ SvxSearchItem::SvxSearchItem( const sal_uInt16 nId ) : +/*N*/ +/*N*/ SfxPoolItem( nId ), +/*N*/ ConfigItem( OUString(RTL_CONSTASCII_USTRINGPARAM( CFG_ROOT_NODE )) ), +/*N*/ +/*N*/ aSearchOpt ( SearchAlgorithms_ABSOLUTE, +/*N*/ SearchFlags::LEV_RELAXED, +/*N*/ OUString(), +/*N*/ OUString(), +/*N*/ Locale(), +/*N*/ 2, 2, 2, +/*N*/ TransliterationModules_IGNORE_CASE ), +/*N*/ eFamily ( SFX_STYLE_FAMILY_PARA ), +/*N*/ nCommand ( 0 ), +/*N*/ nCellType ( SVX_SEARCHIN_FORMULA ), +/*N*/ nAppFlag ( SVX_SEARCHAPP_WRITER ), +/*N*/ bRowDirection ( sal_True ), +/*N*/ bAllTables ( sal_False ), +/*N*/ bBackward ( sal_False ), +/*N*/ bPattern ( sal_False ), +/*N*/ bContent ( sal_False ), +/*N*/ bAsianOptions ( FALSE ) +/*N*/ { +/*N*/ EnableNotification( lcl_GetNotifyNames() ); +/*N*/ +/*N*/ SvtSearchOptions aOpt; +/*N*/ +/*N*/ bBackward = aOpt.IsBackwards(); +/*N*/ bAsianOptions = aOpt.IsUseAsianOptions(); +/*N*/ +/*N*/ if (aOpt.IsUseRegularExpression()) +/*N*/ aSearchOpt.algorithmType = SearchAlgorithms_REGEXP; +/*N*/ if (aOpt.IsSimilaritySearch()) +/*N*/ aSearchOpt.algorithmType = SearchAlgorithms_APPROXIMATE; +/*N*/ if (aOpt.IsWholeWordsOnly()) +/*N*/ aSearchOpt.searchFlag |= SearchFlags::NORM_WORD_ONLY; +/*N*/ +/*N*/ INT32 &rFlags = aSearchOpt.transliterateFlags; +/*N*/ +/*N*/ if (!aOpt.IsMatchCase()) +/*N*/ rFlags |= TransliterationModules_IGNORE_CASE; +/*N*/ if ( aOpt.IsMatchFullHalfWidthForms()) +/*N*/ rFlags |= TransliterationModules_IGNORE_WIDTH; +/*N*/ if ( aOpt.IsMatchHiraganaKatakana()) +/*N*/ rFlags |= TransliterationModules_IGNORE_KANA; +/*N*/ if ( aOpt.IsMatchContractions()) +/*N*/ rFlags |= TransliterationModules_ignoreSize_ja_JP; +/*N*/ if ( aOpt.IsMatchMinusDashChoon()) +/*N*/ rFlags |= TransliterationModules_ignoreMinusSign_ja_JP; +/*N*/ if ( aOpt.IsMatchRepeatCharMarks()) +/*N*/ rFlags |= TransliterationModules_ignoreIterationMark_ja_JP; +/*N*/ if ( aOpt.IsMatchVariantFormKanji()) +/*N*/ rFlags |= TransliterationModules_ignoreTraditionalKanji_ja_JP; +/*N*/ if ( aOpt.IsMatchOldKanaForms()) +/*N*/ rFlags |= TransliterationModules_ignoreTraditionalKana_ja_JP; +/*N*/ if ( aOpt.IsMatchDiziDuzu()) +/*N*/ rFlags |= TransliterationModules_ignoreZiZu_ja_JP; +/*N*/ if ( aOpt.IsMatchBavaHafa()) +/*N*/ rFlags |= TransliterationModules_ignoreBaFa_ja_JP; +/*N*/ if ( aOpt.IsMatchTsithichiDhizi()) +/*N*/ rFlags |= TransliterationModules_ignoreTiJi_ja_JP; +/*N*/ if ( aOpt.IsMatchHyuiyuByuvyu()) +/*N*/ rFlags |= TransliterationModules_ignoreHyuByu_ja_JP; +/*N*/ if ( aOpt.IsMatchSesheZeje()) +/*N*/ rFlags |= TransliterationModules_ignoreSeZe_ja_JP; +/*N*/ if ( aOpt.IsMatchIaiya()) +/*N*/ rFlags |= TransliterationModules_ignoreIandEfollowedByYa_ja_JP; +/*N*/ if ( aOpt.IsMatchKiku()) +/*N*/ rFlags |= TransliterationModules_ignoreKiKuFollowedBySa_ja_JP; +/*N*/ if ( aOpt.IsIgnorePunctuation()) +/*N*/ rFlags |= TransliterationModules_ignoreSeparator_ja_JP; +/*N*/ if ( aOpt.IsIgnoreWhitespace()) +/*N*/ rFlags |= TransliterationModules_ignoreSpace_ja_JP; +/*N*/ if ( aOpt.IsIgnoreProlongedSoundMark()) +/*N*/ rFlags |= TransliterationModules_ignoreProlongedSoundMark_ja_JP; +/*N*/ if ( aOpt.IsIgnoreMiddleDot()) +/*N*/ rFlags |= TransliterationModules_ignoreMiddleDot_ja_JP; +/*N*/ } + +// ----------------------------------------------------------------------- + +/*N*/ SvxSearchItem::SvxSearchItem( const SvxSearchItem& rItem ) : +/*N*/ +/*N*/ SfxPoolItem ( rItem ), +/*N*/ ConfigItem( OUString(RTL_CONSTASCII_USTRINGPARAM( CFG_ROOT_NODE )) ), +/*N*/ +/*N*/ aSearchOpt ( rItem.aSearchOpt ), +/*N*/ eFamily ( rItem.eFamily ), +/*N*/ nCommand ( rItem.nCommand ), +/*N*/ nCellType ( rItem.nCellType ), +/*N*/ nAppFlag ( rItem.nAppFlag ), +/*N*/ bRowDirection ( rItem.bRowDirection ), +/*N*/ bAllTables ( rItem.bAllTables ), +/*N*/ bBackward ( rItem.bBackward ), +/*N*/ bPattern ( rItem.bPattern ), +/*N*/ bContent ( rItem.bContent ), +/*N*/ bAsianOptions ( rItem.bAsianOptions ) +/*N*/ { +/*N*/ EnableNotification( lcl_GetNotifyNames() ); +/*N*/ } + +// ----------------------------------------------------------------------- + +SvxSearchItem::~SvxSearchItem() +{ + DBG_BF_ASSERT(0, "STRIP"); // VIRTUAL +} + +// ----------------------------------------------------------------------- +/*N*/ SfxPoolItem* SvxSearchItem::Clone( SfxItemPool * /*pPool*/) const +/*N*/ { +/*N*/ return new SvxSearchItem(*this); +/*N*/ } + +// ----------------------------------------------------------------------- + +//! used below +/*N*/ static BOOL operator == ( const SearchOptions& rItem1, const SearchOptions& rItem2 ) +/*N*/ { +/*N*/ return rItem1.algorithmType == rItem2.algorithmType && +/*N*/ rItem1.searchFlag == rItem2.searchFlag && +/*N*/ rItem1.searchString == rItem2.searchString && +/*N*/ rItem1.replaceString == rItem2.replaceString && +/*N*/ rItem1.changedChars == rItem2.changedChars && +/*N*/ rItem1.deletedChars == rItem2.deletedChars && +/*N*/ rItem1.insertedChars == rItem2.insertedChars && +/*N*/ rItem1.transliterateFlags == rItem2.transliterateFlags; +/*N*/ } + + +/*N*/ int SvxSearchItem::operator==( const SfxPoolItem& rItem ) const +/*N*/ { +/*N*/ DBG_ASSERT( SfxPoolItem::operator==( rItem ), "unequal which or type" ); +/*N*/ const SvxSearchItem &rSItem = (SvxSearchItem &) rItem; +/*N*/ return ( nCommand == rSItem.nCommand ) && +/*N*/ ( bBackward == rSItem.bBackward ) && +/*N*/ ( bPattern == rSItem.bPattern ) && +/*N*/ ( bContent == rSItem.bContent ) && +/*N*/ ( eFamily == rSItem.eFamily ) && +/*N*/ ( bRowDirection == rSItem.bRowDirection ) && +/*N*/ ( bAllTables == rSItem.bAllTables ) && +/*N*/ ( nCellType == rSItem.nCellType ) && +/*N*/ ( nAppFlag == rSItem.nAppFlag ) && +/*N*/ ( bAsianOptions == rSItem.bAsianOptions ) && +/*N*/ ( aSearchOpt == rSItem.aSearchOpt ); +/*N*/ } + + +//------------------------------------------------------------------------ + +/*N*/ SfxItemPresentation SvxSearchItem::GetPresentation +/*N*/ ( +/*N*/ SfxItemPresentation /*ePres*/, +/*N*/ SfxMapUnit /*eCoreUnit*/, +/*N*/ SfxMapUnit /*ePresUnit*/, +/*N*/ XubString& /*rText*/, +/*N*/ const ::IntlWrapper * +/*N*/ ) const +/*N*/ { +/*N*/ return SFX_ITEM_PRESENTATION_NONE; +/*N*/ } + +void SvxSearchItem::Notify( const Sequence< OUString > & /*rPropertyNames*/ ) +{ + DBG_BF_ASSERT(0, "STRIP"); // VIRTUAL +} + +bool SvxSearchItem::QueryValue( ::com::sun::star::uno::Any& /*rVal*/, BYTE /*nMemberId*/ ) const +{ + DBG_BF_ASSERT(0, "STRIP"); // VIRTUAL + return true; +} + +// ----------------------------------------------------------------------- + +bool SvxSearchItem::PutValue( const ::com::sun::star::uno::Any& /*rVal*/, BYTE /*nMemberId*/ ) +{ + DBG_BF_ASSERT(0, "STRIP"); // VIRTUAL + return true; +} + +void SvxSearchItem::Commit() +{ + DBG_BF_ASSERT(0, "STRIP"); // VIRTUAL +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |