1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
19 #ifndef INCLUDED_CUI_SOURCE_DIALOGS_SPELLATTRIB_HXX
20 #define INCLUDED_CUI_SOURCE_DIALOGS_SPELLATTRIB_HXX
22 #include <com/sun/star/uno/Reference.h>
23 #include <com/sun/star/uno/Sequence.h>
24 #include <com/sun/star/lang/Locale.hpp>
25 #include <com/sun/star/linguistic2/XProofreader.hpp>
28 struct SpellErrorDescription
32 OUString sDialogTitle
;
33 OUString sExplanation
;
34 OUString sExplanationURL
;
35 css::lang::Locale aLocale
;
36 css::uno::Reference
< css::linguistic2::XProofreader
> xGrammarChecker
;
37 css::uno::Sequence
< OUString
> aSuggestions
;
40 SpellErrorDescription( bool bGrammar
,
41 const OUString
& rText
,
42 const css::lang::Locale
& rLocale
,
43 const css::uno::Sequence
< OUString
>& rSuggestions
,
44 css::uno::Reference
< css::linguistic2::XProofreader
> const & rxGrammarChecker
,
45 const OUString
* pDialogTitle
= nullptr,
46 const OUString
* pExplanation
= nullptr,
47 const OUString
* pRuleId
= nullptr,
48 const OUString
* pExplanationURL
= nullptr ) :
49 bIsGrammarError( bGrammar
),
55 xGrammarChecker( rxGrammarChecker
),
56 aSuggestions( rSuggestions
)
59 sDialogTitle
= *pDialogTitle
;
61 sExplanation
= *pExplanation
;
63 sExplanationURL
= *pExplanationURL
;
68 SpellErrorDescription()
69 : bIsGrammarError(false)
73 bool operator==( const SpellErrorDescription
& rDesc
) const
75 return bIsGrammarError
== rDesc
.bIsGrammarError
&&
76 sErrorText
== rDesc
.sErrorText
&&
77 aLocale
.Language
== rDesc
.aLocale
.Language
&&
78 aLocale
.Country
== rDesc
.aLocale
.Country
&&
79 aLocale
.Variant
== rDesc
.aLocale
.Variant
&&
80 aSuggestions
== rDesc
.aSuggestions
&&
81 xGrammarChecker
== rDesc
.xGrammarChecker
&&
82 sDialogTitle
== rDesc
.sDialogTitle
&&
83 sExplanation
== rDesc
.sExplanation
&&
84 sExplanationURL
== rDesc
.sExplanationURL
&&
85 sRuleId
== rDesc
.sRuleId
;
88 css::uno::Sequence
<css::uno::Any
> toSequence() const
90 css::uno::Sequence
<css::uno::Any
> aEntries(9);
91 aEntries
[0] <<= bIsGrammarError
;
92 aEntries
[1] <<= sErrorText
;
93 aEntries
[2] <<= sDialogTitle
;
94 aEntries
[3] <<= sExplanation
;
95 aEntries
[4] <<= sExplanationURL
;
96 aEntries
[5] <<= aLocale
;
97 aEntries
[6] <<= xGrammarChecker
;
98 aEntries
[7] <<= aSuggestions
;
99 aEntries
[8] <<= sRuleId
;
103 void fromSequence(const css::uno::Sequence
<css::uno::Any
>& rEntries
)
105 rEntries
[0] >>= bIsGrammarError
;
106 rEntries
[1] >>= sErrorText
;
107 rEntries
[2] >>= sDialogTitle
;
108 rEntries
[3] >>= sExplanation
;
109 rEntries
[4] >>= sExplanationURL
;
110 rEntries
[5] >>= aLocale
;
111 rEntries
[6] >>= xGrammarChecker
;
112 rEntries
[7] >>= aSuggestions
;
113 rEntries
[8] >>= sRuleId
;
120 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */