OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ | 5 #ifndef CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ |
6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ | 6 #define CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/scoped_ptr.h" | 9 #include "base/scoped_ptr.h" |
10 #include "base/string16.h" | 10 #include "base/string16.h" |
11 #include "chrome/browser/autocomplete/autocomplete_controller_delegate.h" | 11 #include "chrome/browser/autocomplete/autocomplete_controller_delegate.h" |
12 #include "chrome/browser/autocomplete/autocomplete_match.h" | 12 #include "chrome/browser/autocomplete/autocomplete_match.h" |
| 13 #include "chrome/common/instant_types.h" |
13 #include "chrome/common/page_transition_types.h" | 14 #include "chrome/common/page_transition_types.h" |
14 #include "googleurl/src/gurl.h" | 15 #include "googleurl/src/gurl.h" |
15 #include "ui/gfx/native_widget_types.h" | 16 #include "ui/gfx/native_widget_types.h" |
16 #include "webkit/glue/window_open_disposition.h" | 17 #include "webkit/glue/window_open_disposition.h" |
17 | 18 |
18 class AutocompleteController; | 19 class AutocompleteController; |
19 class AutocompleteEditController; | 20 class AutocompleteEditController; |
20 class AutocompleteEditModel; | 21 class AutocompleteEditModel; |
21 class AutocompleteEditView; | 22 class AutocompleteEditView; |
22 class AutocompletePopupModel; | 23 class AutocompletePopupModel; |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 void SetUserText(const string16& text); | 185 void SetUserText(const string16& text); |
185 | 186 |
186 // Calls through to SearchProvider::FinalizeInstantQuery. | 187 // Calls through to SearchProvider::FinalizeInstantQuery. |
187 // If |skip_inline_autocomplete| is true then the |suggest_text| will be | 188 // If |skip_inline_autocomplete| is true then the |suggest_text| will be |
188 // turned into final text instead of inline autocomplete suggest. | 189 // turned into final text instead of inline autocomplete suggest. |
189 void FinalizeInstantQuery(const string16& input_text, | 190 void FinalizeInstantQuery(const string16& input_text, |
190 const string16& suggest_text, | 191 const string16& suggest_text, |
191 bool skip_inline_autocomplete); | 192 bool skip_inline_autocomplete); |
192 | 193 |
193 // Sets the suggestion text. | 194 // Sets the suggestion text. |
194 void SetSuggestedText(const string16& text); | 195 void SetSuggestedText(const string16& text, |
| 196 InstantCompleteBehavior behavior); |
195 | 197 |
196 // Commits the suggested text. If |skip_inline_autocomplete| is true then the | 198 // Commits the suggested text. If |skip_inline_autocomplete| is true then the |
197 // suggested text will be committed as final text as if it's inputted by the | 199 // suggested text will be committed as final text as if it's inputted by the |
198 // user, rather than as inline autocomplete suggest. | 200 // user, rather than as inline autocomplete suggest. |
199 // Returns true if the text was committed. | 201 // Returns true if the text was committed. |
200 // TODO: can the return type be void? | 202 // TODO: can the return type be void? |
201 bool CommitSuggestedText(bool skip_inline_autocomplete); | 203 bool CommitSuggestedText(bool skip_inline_autocomplete); |
202 | 204 |
203 // Accepts the currently showing instant preview, if any, and returns true. | 205 // Accepts the currently showing instant preview, if any, and returns true. |
204 // Returns false if there is no instant preview showing. | 206 // Returns false if there is no instant preview showing. |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 // 2) The user is composing a text with an IME | 328 // 2) The user is composing a text with an IME |
327 bool OnAfterPossibleChange(const string16& new_text, | 329 bool OnAfterPossibleChange(const string16& new_text, |
328 bool selection_differs, | 330 bool selection_differs, |
329 bool text_differs, | 331 bool text_differs, |
330 bool just_deleted_text, | 332 bool just_deleted_text, |
331 bool allow_keyword_ui_change); | 333 bool allow_keyword_ui_change); |
332 | 334 |
333 // Invoked when the popup is going to change its bounds to |bounds|. | 335 // Invoked when the popup is going to change its bounds to |bounds|. |
334 void PopupBoundsChangedTo(const gfx::Rect& bounds); | 336 void PopupBoundsChangedTo(const gfx::Rect& bounds); |
335 | 337 |
| 338 #if defined(UNIT_TEST) |
| 339 InstantCompleteBehavior instant_complete_behavior() const { |
| 340 return instant_complete_behavior_; |
| 341 } |
| 342 #endif |
| 343 |
336 private: | 344 private: |
337 enum PasteState { | 345 enum PasteState { |
338 NONE, // Most recent edit was not a paste. | 346 NONE, // Most recent edit was not a paste. |
339 PASTING, // In the middle of doing a paste. We need this intermediate | 347 PASTING, // In the middle of doing a paste. We need this intermediate |
340 // state because OnPaste() does the actual detection of | 348 // state because OnPaste() does the actual detection of |
341 // paste, but OnAfterPossibleChange() has to update the | 349 // paste, but OnAfterPossibleChange() has to update the |
342 // paste state for every edit. If OnPaste() set the state | 350 // paste state for every edit. If OnPaste() set the state |
343 // directly to PASTED, OnAfterPossibleChange() wouldn't know | 351 // directly to PASTED, OnAfterPossibleChange() wouldn't know |
344 // whether that represented the current edit or a past one. | 352 // whether that represented the current edit or a past one. |
345 PASTED, // Most recent edit was a paste. | 353 PASTED, // Most recent edit was a paste. |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 mutable GURL paste_and_go_alternate_nav_url_; | 524 mutable GURL paste_and_go_alternate_nav_url_; |
517 | 525 |
518 Profile* profile_; | 526 Profile* profile_; |
519 | 527 |
520 // Should instant be updated? This is needed as prior to accepting the current | 528 // Should instant be updated? This is needed as prior to accepting the current |
521 // text the model is reverted, which triggers resetting instant. We don't want | 529 // text the model is reverted, which triggers resetting instant. We don't want |
522 // to update instant in this case, so we use the flag to determine if this is | 530 // to update instant in this case, so we use the flag to determine if this is |
523 // happening. | 531 // happening. |
524 bool update_instant_; | 532 bool update_instant_; |
525 | 533 |
| 534 // Last value of InstantCompleteBehavior supplied to |SetSuggestedText|. |
| 535 InstantCompleteBehavior instant_complete_behavior_; |
| 536 |
526 DISALLOW_COPY_AND_ASSIGN(AutocompleteEditModel); | 537 DISALLOW_COPY_AND_ASSIGN(AutocompleteEditModel); |
527 }; | 538 }; |
528 | 539 |
529 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ | 540 #endif // CHROME_BROWSER_AUTOCOMPLETE_AUTOCOMPLETE_EDIT_H_ |
OLD | NEW |