1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _SVX_SPELL_ATTRIB 24 #define _SVX_SPELL_ATTRIB 25 26 #include <svtools/txtattr.hxx> 27 #include <i18npool/lang.h> 28 #include <com/sun/star/uno/Reference.h> 29 #include <com/sun/star/uno/Sequence.h> 30 #include <com/sun/star/lang/Locale.hpp> 31 #include <com/sun/star/linguistic2/XProofreader.hpp> 32 #include <tools/color.hxx> 33 //namespace com{ namespace sun{ namespace star{ namespace linguistic2{ 34 // class XSpellAlternatives; 35 //}}}} 36 37 #define TEXTATTR_SPELL_ERROR (TEXTATTR_USER_START + 1) 38 #define TEXTATTR_SPELL_LANGUAGE (TEXTATTR_USER_START + 2) 39 #define TEXTATTR_SPELL_BACKGROUND (TEXTATTR_USER_START + 3) 40 41 namespace svx{ 42 struct SpellErrorDescription 43 { 44 bool bIsGrammarError; 45 ::rtl::OUString sErrorText; 46 ::rtl::OUString sDialogTitle; 47 ::rtl::OUString sExplanation; 48 ::com::sun::star::lang::Locale aLocale; 49 ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XProofreader > xGrammarChecker; 50 ::rtl::OUString sServiceName; //service name of GrammarChecker/SpellChecker 51 ::com::sun::star::uno::Sequence< ::rtl::OUString > aSuggestions; 52 ::rtl::OUString sRuleId; 53 SpellErrorDescriptionsvx::SpellErrorDescription54 SpellErrorDescription() : 55 bIsGrammarError( false ){} 56 SpellErrorDescriptionsvx::SpellErrorDescription57 SpellErrorDescription( bool bGrammar, 58 const ::rtl::OUString& rText, 59 const ::com::sun::star::lang::Locale& rLocale, 60 const ::com::sun::star::uno::Sequence< ::rtl::OUString >& rSuggestions, 61 ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XProofreader > rxGrammarChecker, 62 const ::rtl::OUString& rServiceName, 63 const ::rtl::OUString* pDialogTitle = 0, 64 const ::rtl::OUString* pExplanation = 0, 65 const ::rtl::OUString* pRuleId = 0 ) : 66 bIsGrammarError( bGrammar ), 67 sErrorText( rText ), 68 aLocale( rLocale ), 69 xGrammarChecker( rxGrammarChecker ), 70 sServiceName( rServiceName ), 71 aSuggestions( rSuggestions ) 72 { 73 if( pDialogTitle ) 74 sDialogTitle = *pDialogTitle; 75 if( pExplanation ) 76 sExplanation = *pExplanation; 77 if( pRuleId ) 78 sRuleId = *pRuleId; 79 }; 80 operator ==svx::SpellErrorDescription81 int operator==( const SpellErrorDescription& rDesc ) const 82 { 83 return bIsGrammarError == rDesc.bIsGrammarError && 84 sErrorText.equals( rDesc.sErrorText ) && 85 aLocale.Language.equals( rDesc.aLocale.Language ) && 86 aLocale.Country.equals( rDesc.aLocale.Country ) && 87 aLocale.Variant.equals( rDesc.aLocale.Variant ) && 88 aSuggestions == rDesc.aSuggestions && 89 xGrammarChecker == rDesc.xGrammarChecker && 90 sDialogTitle.equals( rDesc.sDialogTitle ) && 91 sExplanation.equals( rDesc.sExplanation ) && 92 sRuleId == rDesc.sRuleId; 93 } 94 }; 95 /* -----------------10.09.2003 14:23----------------- 96 97 --------------------------------------------------*/ 98 class SpellErrorAttrib : public TextAttrib 99 { 100 public: 101 102 private: 103 //com::sun::star::uno::Reference<com::sun::star::linguistic2::XSpellAlternatives> m_xAlternatives; 104 SpellErrorDescription m_aSpellErrorDescription; 105 106 //not accessible 107 SpellErrorAttrib(); 108 public: 109 // SpellErrorAttrib(com::sun::star::uno::Reference<com::sun::star::linguistic2::XSpellAlternatives> xAlternatives); 110 SpellErrorAttrib( const SpellErrorDescription& ); 111 SpellErrorAttrib( const SpellErrorAttrib& rAttr ); 112 ~SpellErrorAttrib(); 113 GetErrorDescription() const114 const SpellErrorDescription& GetErrorDescription() const { return m_aSpellErrorDescription; } 115 116 117 virtual void SetFont( Font& rFont ) const; 118 virtual TextAttrib* Clone() const; 119 virtual int operator==( const TextAttrib& rAttr ) const; 120 }; 121 /* -----------------10.09.2003 14:23----------------- 122 123 --------------------------------------------------*/ 124 class SpellLanguageAttrib : public TextAttrib 125 { 126 LanguageType m_eLanguage; 127 128 //not accessible 129 SpellLanguageAttrib(); 130 131 public: 132 SpellLanguageAttrib(LanguageType eLanguage); 133 SpellLanguageAttrib( const SpellLanguageAttrib& rAttr ); 134 ~SpellLanguageAttrib(); 135 GetLanguage() const136 LanguageType GetLanguage() const {return m_eLanguage;} SetLanguage(LanguageType eLang)137 void SetLanguage(LanguageType eLang) 138 {m_eLanguage = eLang;} 139 140 141 virtual void SetFont( Font& rFont ) const; 142 virtual TextAttrib* Clone() const; 143 virtual int operator==( const TextAttrib& rAttr ) const; 144 }; 145 /* -----------------31.10.2003 16:01----------------- 146 147 --------------------------------------------------*/ 148 class SpellBackgroundAttrib : public TextAttrib 149 { 150 Color m_aBackgroundColor; 151 152 //not accessible 153 SpellBackgroundAttrib(); 154 155 public: 156 SpellBackgroundAttrib(const Color& rCol); 157 SpellBackgroundAttrib( const SpellBackgroundAttrib& rAttr ); 158 ~SpellBackgroundAttrib(); 159 GetColor() const160 const Color& GetColor() const { return m_aBackgroundColor;} SetColor(const Color & rNewCol)161 void SetColor( const Color& rNewCol ){m_aBackgroundColor = rNewCol;} 162 163 164 virtual void SetFont( Font& rFont ) const; 165 virtual TextAttrib* Clone() const; 166 virtual int operator==( const TextAttrib& rAttr ) const; 167 }; 168 }//namespace svx 169 #endif 170