blob: a53d8790ad7b5502ce0d5102d67cdde2a63cc821 [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 _FMSRCCF_HXX_
#define _FMSRCCF_HXX_
#include <tools/string.hxx>
#include <unotools/configvaluecontainer.hxx>
#include <com/sun/star/uno/Sequence.hxx>
#include "svx/svxdllapi.h"
// ===================================================================================================
#define MATCHING_ANYWHERE 0
#define MATCHING_BEGINNING 1
#define MATCHING_END 2
#define MATCHING_WHOLETEXT 3
// diese Konstanten duerfen NICHT einfach geaendert werden, da der SearchDialog aus den Einstellungen seiner ListBox
// keine Umrechnungen vornimmt, sondern die einfach in die entsprechenden Methoden der SearchEngine steckt
// (wenn man also die Konstanten oder die Reihenfolge der Listbox-Eintraege im Dialog aendert, muss das jeweils andere
// angepasst werden)
//........................................................................
namespace svxform
{
//........................................................................
// ===================================================================================================
// = struct FmSearchParams - Parameter einer Suche
// ===================================================================================================
struct SVX_DLLPUBLIC FmSearchParams
{
protected:
sal_Int32 nTransliterationFlags;
// they're way too sensitive for direct access ....
public:
// no bit fields at all (want to pass the addresses to the OConfigurationValueContainer)
::com::sun::star::uno::Sequence< ::rtl::OUString >
aHistory;
::rtl::OUString sSingleSearchField;
sal_Int16 nSearchForType;
sal_Int16 nPosition;
sal_Int16 nLevOther;
sal_Int16 nLevShorter;
sal_Int16 nLevLonger;
sal_Bool bLevRelaxed;
sal_Bool bAllFields;
sal_Bool bUseFormatter;
sal_Bool bBackwards;
sal_Bool bWildcard;
sal_Bool bRegular;
sal_Bool bApproxSearch;
// the last three are mutually exclusive
sal_Bool bSoundsLikeCJK;
// ......................................
FmSearchParams();
sal_Bool isIgnoreWidthCJK( ) const;
void setIgnoreWidthCJK( sal_Bool _bIgnore );
sal_Int32 getTransliterationFlags( ) const { return nTransliterationFlags; }
void setTransliterationFlags( sal_Int32 _nFlags ) { nTransliterationFlags = _nFlags; }
sal_Bool isCaseSensitive( ) const;
void setCaseSensitive( sal_Bool _bCase );
};
// ===================================================================================================
// = class FmSearchConfigItem - ein ConfigItem, dass sich Suchparameter merkt
// ===================================================================================================
class SVX_DLLPUBLIC FmSearchConfigItem
:protected FmSearchParams
,public ::utl::OConfigurationValueContainer
// order matters!
{
private:
::osl::Mutex m_aMutex;
// wrapper properties:
// some of the members of FmSearchParams are must be translated to be stored in the configuration
::rtl::OUString m_sSearchForType;
::rtl::OUString m_sSearchPosition;
sal_Bool m_bIsMatchCase;
sal_Bool m_bIsMatchFullHalfWidthForms;
sal_Bool m_bIsMatchHiraganaKatakana;
sal_Bool m_bIsMatchContractions;
sal_Bool m_bIsMatchMinusDashCho_on;
sal_Bool m_bIsMatchRepeatCharMarks;
sal_Bool m_bIsMatchVariantFormKanji;
sal_Bool m_bIsMatchOldKanaForms;
sal_Bool m_bIsMatch_DiZi_DuZu;
sal_Bool m_bIsMatch_BaVa_HaFa;
sal_Bool m_bIsMatch_TsiThiChi_DhiZi;
sal_Bool m_bIsMatch_HyuIyu_ByuVyu;
sal_Bool m_bIsMatch_SeShe_ZeJe;
sal_Bool m_bIsMatch_IaIya;
sal_Bool m_bIsMatch_KiKu;
sal_Bool m_bIsIgnorePunctuation;
sal_Bool m_bIsIgnoreWhitespace;
sal_Bool m_bIsIgnoreProlongedSoundMark;
sal_Bool m_bIsIgnoreMiddleDot;
public:
FmSearchConfigItem();
~FmSearchConfigItem();
const FmSearchParams& getParams( ) const;
void setParams( const FmSearchParams& _rParams );
private:
SVX_DLLPRIVATE void implTranslateFromConfig( );
SVX_DLLPRIVATE void implTranslateToConfig( );
};
//........................................................................
} // namespace svxform
//........................................................................
// ===================================================================================================
#endif // _FMSRCCF_HXX_