mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add spell checking support (issue #137).
This includes: - Red underline of misspelled words in html text areas. - Right-click context menu options to correct the misspelled word. - New CefBrowser::ReplaceMisspelling method for accepting a word replacement. - Methods added to CefContextMenuParams for retrieving spelling-related information. - Uses the unified text checker when auto-correct is not enabled to match Google Chrome behavior. - On Windows and Linux a hunspell dictionary file will be downloaded to the "<cache_path>/Dictionaries" directory as needed, or used from the <cache_path> directory if the file already exists there. The dictionary file will be downloaded from http://cache.pack.google.com/edgedl/chrome/dict/<LANG>-3-0.bdic where <LANG> is the language abbreviation. - On OS X the spell checking implementation will use the system NSSpellChecker implementation. The following command-line flags have been added: --disable-spell-checking => Disable spell-checking support (no red underline, no dictionary file download, etc). --enable-spelling-auto-correct => Automatically correct common misspellings while typing (like 'omre' to 'more' on Windows/Linux or 'ehlo' to 'helo' on OS X). --enable-spelling-service => Enable use of the remote Google spelling service (this requires Google API keys). --override-spell-check-lang=<LANG> => Use the specified dictionary language <LANG> instead of the language specified in the locales.pak file. To see the default/supported dictionary languages: https://code.google.com/p/chromium/codesearch#search/&q=IDS_SPELLCHECK_DICTIONARY%20xtb&sq=package:chromium git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1859 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
//
|
||||
|
||||
#include "libcef_dll/ctocpp/context_menu_params_ctocpp.h"
|
||||
#include "libcef_dll/transfer_util.h"
|
||||
|
||||
|
||||
// VIRTUAL METHODS - Body may be edited by hand.
|
||||
@@ -200,6 +201,62 @@ CefString CefContextMenuParamsCToCpp::GetSelectionText() {
|
||||
return _retvalStr;
|
||||
}
|
||||
|
||||
CefString CefContextMenuParamsCToCpp::GetMisspelledWord() {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_misspelled_word))
|
||||
return CefString();
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
cef_string_userfree_t _retval = struct_->get_misspelled_word(struct_);
|
||||
|
||||
// Return type: string
|
||||
CefString _retvalStr;
|
||||
_retvalStr.AttachToUserFree(_retval);
|
||||
return _retvalStr;
|
||||
}
|
||||
|
||||
int CefContextMenuParamsCToCpp::GetMisspellingHash() {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_misspelling_hash))
|
||||
return 0;
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
int _retval = struct_->get_misspelling_hash(struct_);
|
||||
|
||||
// Return type: simple
|
||||
return _retval;
|
||||
}
|
||||
|
||||
bool CefContextMenuParamsCToCpp::GetDictionarySuggestions(
|
||||
std::vector<CefString>& suggestions) {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_dictionary_suggestions))
|
||||
return false;
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Translate param: suggestions; type: string_vec_byref
|
||||
cef_string_list_t suggestionsList = cef_string_list_alloc();
|
||||
DCHECK(suggestionsList);
|
||||
if (suggestionsList)
|
||||
transfer_string_list_contents(suggestions, suggestionsList);
|
||||
|
||||
// Execute
|
||||
int _retval = struct_->get_dictionary_suggestions(struct_,
|
||||
suggestionsList);
|
||||
|
||||
// Restore param:suggestions; type: string_vec_byref
|
||||
if (suggestionsList) {
|
||||
suggestions.clear();
|
||||
transfer_string_list_contents(suggestionsList, suggestions);
|
||||
cef_string_list_free(suggestionsList);
|
||||
}
|
||||
|
||||
// Return type: bool
|
||||
return _retval?true:false;
|
||||
}
|
||||
|
||||
bool CefContextMenuParamsCToCpp::IsEditable() {
|
||||
if (CEF_MEMBER_MISSING(struct_, is_editable))
|
||||
return false;
|
||||
@@ -213,6 +270,19 @@ bool CefContextMenuParamsCToCpp::IsEditable() {
|
||||
return _retval?true:false;
|
||||
}
|
||||
|
||||
bool CefContextMenuParamsCToCpp::IsSpellCheckEnabled() {
|
||||
if (CEF_MEMBER_MISSING(struct_, is_spell_check_enabled))
|
||||
return false;
|
||||
|
||||
// AUTO-GENERATED CONTENT - DELETE THIS COMMENT BEFORE MODIFYING
|
||||
|
||||
// Execute
|
||||
int _retval = struct_->is_spell_check_enabled(struct_);
|
||||
|
||||
// Return type: bool
|
||||
return _retval?true:false;
|
||||
}
|
||||
|
||||
CefContextMenuParams::EditStateFlags CefContextMenuParamsCToCpp::GetEditStateFlags(
|
||||
) {
|
||||
if (CEF_MEMBER_MISSING(struct_, get_edit_state_flags))
|
||||
|
Reference in New Issue
Block a user