blob: 755485a7af37bda8fb8e9fb30f53ae1a6e38828e [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the 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, sal_uInt8 nMemberId = 0 ) const;
virtual sal_Bool PutValue( const com::sun::star::uno::Any& rVal, sal_uInt8 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 (sal_Int16) aSearchOpt.changedChars;
}
void SvxSearchItem::SetLEVOther( sal_uInt16 nVal )
{
aSearchOpt.changedChars = nVal;
}
sal_uInt16 SvxSearchItem::GetLEVShorter() const
{
return (sal_Int16) aSearchOpt.insertedChars;
}
void SvxSearchItem::SetLEVShorter( sal_uInt16 nVal )
{
aSearchOpt.insertedChars = nVal;
}
sal_uInt16 SvxSearchItem::GetLEVLonger() const
{
return (sal_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