Home | History | Annotate | Download | only in spellchecker
      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.
     11 
     12 #ifndef CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_
     13 #define CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_
     14 
     15 #include <vector>
     16 
     17 #include "base/time/time.h"
     18 #include "chrome/browser/spellchecker/spellcheck_action.h"
     19 
     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.type = SpellcheckAction::TYPE_SELECT;
     29 //    misspelling.action.index = 0;
     30 //    Process(misspelling.Serialize());
     31 class Misspelling {
     32  public:
     33   Misspelling();
     34   Misspelling(const base::string16& context,
     35               size_t location,
     36               size_t length,
     37               const std::vector<base::string16>& suggestions,
     38               uint32 hash);
     39   ~Misspelling();
     40 
     41   // Serializes the data in this object into a dictionary value. The caller owns
     42   // the result.
     43   base::DictionaryValue* Serialize() const;
     44 
     45   // Returns the substring of |context| that begins at |location| and contains
     46   // |length| characters.
     47   base::string16 GetMisspelledString() const;
     48 
     49   // A several-word text snippet that immediately surrounds the misspelling.
     50   base::string16 context;
     51 
     52   // The number of characters between the beginning of |context| and the first
     53   // misspelled character.
     54   size_t location;
     55 
     56   // The number of characters in the misspelling.
     57   size_t length;
     58 
     59   // Spelling suggestions.
     60   std::vector<base::string16> suggestions;
     61 
     62   // The hash that identifies the misspelling.
     63   uint32 hash;
     64 
     65   // User action.
     66   SpellcheckAction action;
     67 
     68   // The time when the user applied the action.
     69   base::Time timestamp;
     70 };
     71 
     72 #endif  // CHROME_BROWSER_SPELLCHECKER_MISSPELLING_H_
     73