Switch global error menu icon to vectorized MD asset
[chromium-blink-merge.git] / chrome / browser / spellchecker / misspelling.h
blob22feef94b4c22256fbc3157104af5c3e667aa2ba
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 //
5 // An object to store user feedback to a single spellcheck suggestion.
6 //
7 // Stores the spellcheck suggestion, its uint32 hash identifier, and user's
8 // feedback. The feedback is indirect, in the sense that we record user's
9 // |action| instead of asking them how they feel about a spellcheck suggestion.
10 // The object can serialize itself.
12 #ifndef CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_
13 #define CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_
15 #include <vector>
17 #include "base/time/time.h"
18 #include "chrome/browser/spellchecker/spellcheck_action.h"
20 // Stores user feedback to a spellcheck suggestion. Sample usage:
21 // Misspelling misspelling.
22 // misspelling.context = base::ASCIIToUTF16("Helllo world");
23 // misspelling.location = 0;
24 // misspelling.length = 6;
25 // misspelling.suggestions =
26 // std::vector<base::string16>(1, base::ASCIIToUTF16("Hello"));
27 // misspelling.hash = GenerateRandomHash();
28 // misspelling.action.set_type(SpellcheckAction::TYPE_SELECT);
29 // misspelling.action.set_index(0);
30 // Process(SerializeMisspelling(misspelling));
31 struct Misspelling {
32 Misspelling();
33 Misspelling(const base::string16& context,
34 size_t location,
35 size_t length,
36 const std::vector<base::string16>& suggestions,
37 uint32 hash);
38 ~Misspelling();
40 // A several-word text snippet that immediately surrounds the misspelling.
41 base::string16 context;
43 // The number of characters between the beginning of |context| and the first
44 // misspelled character.
45 size_t location;
47 // The number of characters in the misspelling.
48 size_t length;
50 // Spelling suggestions.
51 std::vector<base::string16> suggestions;
53 // The hash that identifies the misspelling.
54 uint32 hash;
56 // User action.
57 SpellcheckAction action;
59 // The time when the user applied the action.
60 base::Time timestamp;
63 // Serializes the data in this object into a dictionary value. The caller owns
64 // the result.
65 base::DictionaryValue* SerializeMisspelling(const Misspelling& misspelling);
67 // Returns the substring of |context| that begins at |location| and contains
68 // |length| characters.
69 base::string16 GetMisspelledString(const Misspelling& misspelling);
71 #endif // CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_