diff options
Diffstat (limited to 'svl/inc/svl/srchitem.hxx')
-rw-r--r-- | svl/inc/svl/srchitem.hxx | 293 |
1 files changed, 293 insertions, 0 deletions
diff --git a/svl/inc/svl/srchitem.hxx b/svl/inc/svl/srchitem.hxx new file mode 100644 index 000000000000..3974a8f57b80 --- /dev/null +++ b/svl/inc/svl/srchitem.hxx @@ -0,0 +1,293 @@ +/************************************************************************* + * + * 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. + * + ************************************************************************/ +#ifndef _SFX_SRCHITEM_HXX +#define _SFX_SRCHITEM_HXX + +#include "sal/config.h" +#include "svl/svldllapi.h" +#include <com/sun/star/util/XSearchDescriptor.hpp> +#include <com/sun/star/util/SearchOptions.hpp> +#include <com/sun/star/util/SearchFlags.hpp> +#include <com/sun/star/i18n/TransliterationModules.hpp> +#include <unotools/configitem.hxx> +#include <rsc/rscsfx.hxx> +#include <tools/string.hxx> +#include <svl/poolitem.hxx> +#include <svl/srchdefs.hxx> + +// defines --------------------------------------------------------------- + +// commands +#define SVX_SEARCHCMD_FIND ((sal_uInt16)0) +#define SVX_SEARCHCMD_FIND_ALL ((sal_uInt16)1) +#define SVX_SEARCHCMD_REPLACE ((sal_uInt16)2) +#define SVX_SEARCHCMD_REPLACE_ALL ((sal_uInt16)3) + +// search flags +#define SVX_SEARCHIN_FORMULA ((sal_uInt16)0) +#define SVX_SEARCHIN_VALUE ((sal_uInt16)1) +#define SVX_SEARCHIN_NOTE ((sal_uInt16)2) +#define SVX_SEARCHAPP_WRITER ((sal_uInt16)0) +#define SVX_SEARCHAPP_CALC ((sal_uInt16)1) +#define SVX_SEARCHAPP_DRAW ((sal_uInt16)2) +#define SVX_SEARCHAPP_BASE ((sal_uInt16)3) + +// class SvxSearchItem --------------------------------------------------- + +class SVL_DLLPUBLIC SvxSearchItem : + public SfxPoolItem, + public utl::ConfigItem +{ + com::sun::star::util::SearchOptions aSearchOpt; + + SfxStyleFamily eFamily; // Vorlagen-Familie + + sal_uInt16 nCommand; // Kommando (Suchen, Alle Suchen, Ersetzen, Alle Ersetzen) + + // Calc-Spezifische Daten + sal_uInt16 nCellType; // Suche in Formeln/Werten/Notizen + sal_uInt16 nAppFlag; // Fuer welche Applikation ist der Dialog ueberhaupt + sal_Bool bRowDirection; // Suchrichtung Zeilenweise/Spaltenweise + sal_Bool bAllTables; // in alle Tabellen suchen + + // Writer-spezifisch + sal_Bool bNotes; + + sal_Bool bBackward; // Suche Rueckwaerts + sal_Bool bPattern; // Suche nach Vorlagen + sal_Bool bContent; // Suche im Inhalt + sal_Bool bAsianOptions; // use asian options? + +public: + TYPEINFO(); + + SvxSearchItem( const sal_uInt16 nId ); + SvxSearchItem( const SvxSearchItem& rItem ); + virtual ~SvxSearchItem(); + + virtual sal_Bool QueryValue( com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ) const; + virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, BYTE nMemberId = 0 ); + virtual int operator == ( const SfxPoolItem& ) const; + virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const; + virtual SfxItemPresentation GetPresentation( SfxItemPresentation ePres, + SfxMapUnit eCoreMetric, + SfxMapUnit ePresMetric, + String &rText, const IntlWrapper * = 0 ) const; + + // ConfigItem + virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames ); + virtual void Commit(); + + sal_uInt16 GetCommand() const { return nCommand; } + void SetCommand(sal_uInt16 nNewCommand) { nCommand = nNewCommand; } + + inline const String GetSearchString() const; + inline void SetSearchString(const String& rNewString); + + inline const String GetReplaceString() const; + inline void SetReplaceString(const String& rNewString); + + inline sal_Bool GetWordOnly() const; + void SetWordOnly(sal_Bool bNewWordOnly); + + inline sal_Bool GetExact() const; + void SetExact(sal_Bool bNewExact); + + sal_Bool GetBackward() const { return bBackward; } + void SetBackward(sal_Bool bNewBackward) { bBackward = bNewBackward; } + + inline sal_Bool GetSelection() const; + void SetSelection(sal_Bool bNewSelection); + + inline sal_Bool GetRegExp() const; + void SetRegExp( sal_Bool bVal ); + + sal_Bool GetPattern() const { return bPattern; } + void SetPattern(sal_Bool bNewPattern) { bPattern = bNewPattern; } + + sal_Bool IsContent() const { return bContent; } + void SetContent( sal_Bool bNew ) { bContent = bNew; } + + SfxStyleFamily GetFamily() const { return eFamily; } + void SetFamily( SfxStyleFamily eNewFamily ) + { eFamily = eNewFamily; } + + sal_Bool GetRowDirection() const { return bRowDirection; } + void SetRowDirection(sal_Bool bNewRowDirection) { bRowDirection = bNewRowDirection; } + + sal_Bool IsAllTables() const { return bAllTables; } + void SetAllTables(sal_Bool bNew) { bAllTables = bNew; } + + sal_uInt16 GetCellType() const { return nCellType; } + void SetCellType(sal_uInt16 nNewCellType) { nCellType = nNewCellType; } + + sal_Bool GetNotes() const { return bNotes; } + void SetNotes(sal_Bool bNew) { bNotes = bNew; } + + sal_uInt16 GetAppFlag() const { return nAppFlag; } + void SetAppFlag(sal_uInt16 nNewAppFlag) { nAppFlag = nNewAppFlag; } + + inline sal_Bool IsLevenshtein() const; + void SetLevenshtein( sal_Bool bVal ); + + inline sal_Bool IsLEVRelaxed() const; + void SetLEVRelaxed(sal_Bool bSet); + + inline sal_uInt16 GetLEVOther() const; + inline void SetLEVOther(sal_uInt16 nSet); + + inline sal_uInt16 GetLEVShorter() const; + inline void SetLEVShorter(sal_uInt16 nSet); + + inline sal_uInt16 GetLEVLonger() const; + inline void SetLEVLonger(sal_uInt16 nSet); + + void GetFromDescriptor( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr ); + void SetToDescriptor( ::com::sun::star::uno::Reference< ::com::sun::star::util::XSearchDescriptor > & rDescr ); + + inline const com::sun::star::util::SearchOptions & + GetSearchOptions() const; + inline void SetSearchOptions( const com::sun::star::util::SearchOptions &rOpt ); + + inline sal_Int32 GetTransliterationFlags() const; + void SetTransliterationFlags( sal_Int32 nFlags ); + + inline sal_Bool IsMatchFullHalfWidthForms() const; + void SetMatchFullHalfWidthForms( sal_Bool bVal ); + + inline sal_Bool IsUseAsianOptions() const { return bAsianOptions; } + inline void SetUseAsianOptions( sal_Bool bVal ) { bAsianOptions = bVal; } +}; + +const String SvxSearchItem::GetSearchString() const +{ + return aSearchOpt.searchString; +} + +void SvxSearchItem::SetSearchString(const String& rNewString) +{ + aSearchOpt.searchString = rNewString; +} + +const String SvxSearchItem::GetReplaceString() const +{ + return aSearchOpt.replaceString; +} + +void SvxSearchItem::SetReplaceString(const String& rNewString) +{ + aSearchOpt.replaceString = rNewString; +} + +sal_Bool SvxSearchItem::GetWordOnly() const +{ + return 0 != (aSearchOpt.searchFlag & + com::sun::star::util::SearchFlags::NORM_WORD_ONLY); +} + +sal_Bool SvxSearchItem::GetExact() const +{ + return 0 == (aSearchOpt.transliterateFlags & + com::sun::star::i18n::TransliterationModules_IGNORE_CASE); +} + +sal_Bool SvxSearchItem::GetSelection() const +{ + return 0 != (aSearchOpt.searchFlag & + com::sun::star::util::SearchFlags::REG_NOT_BEGINOFLINE); +} + +sal_Bool SvxSearchItem::GetRegExp() const +{ + return aSearchOpt.algorithmType == com::sun::star::util::SearchAlgorithms_REGEXP ; +} + +sal_Bool SvxSearchItem::IsLEVRelaxed() const +{ + return 0 != (aSearchOpt.searchFlag & + com::sun::star::util::SearchFlags::LEV_RELAXED); +} + +sal_uInt16 SvxSearchItem::GetLEVOther() const +{ + return (INT16) aSearchOpt.changedChars; +} + +void SvxSearchItem::SetLEVOther( sal_uInt16 nVal ) +{ + aSearchOpt.changedChars = nVal; +} + +sal_uInt16 SvxSearchItem::GetLEVShorter() const +{ + return (INT16) aSearchOpt.insertedChars; +} + +void SvxSearchItem::SetLEVShorter( sal_uInt16 nVal ) +{ + aSearchOpt.insertedChars = nVal; +} + +sal_uInt16 SvxSearchItem::GetLEVLonger() const +{ + return (INT16) aSearchOpt.deletedChars; +} + +void SvxSearchItem::SetLEVLonger( sal_uInt16 nVal ) +{ + aSearchOpt.deletedChars = nVal; +} + +sal_Bool SvxSearchItem::IsLevenshtein() const +{ + return aSearchOpt.algorithmType == com::sun::star::util::SearchAlgorithms_APPROXIMATE; +} + +const com::sun::star::util::SearchOptions & SvxSearchItem::GetSearchOptions() const +{ + return aSearchOpt; +} + +void SvxSearchItem::SetSearchOptions( const com::sun::star::util::SearchOptions &rOpt ) +{ + aSearchOpt = rOpt; +} + +sal_Int32 SvxSearchItem::GetTransliterationFlags() const +{ + return aSearchOpt.transliterateFlags; +} + +sal_Bool SvxSearchItem::IsMatchFullHalfWidthForms() const +{ + return 0 != (aSearchOpt.transliterateFlags & + com::sun::star::i18n::TransliterationModules_IGNORE_WIDTH); +} + +#endif + + |