| Index: chrome/browser/autocomplete/autocomplete_popup_model.h
|
| ===================================================================
|
| --- chrome/browser/autocomplete/autocomplete_popup_model.h (revision 119905)
|
| +++ chrome/browser/autocomplete/autocomplete_popup_model.h (working copy)
|
| @@ -15,6 +15,12 @@
|
|
|
| class AutocompletePopupModel {
|
| public:
|
| + // See selected_line_state_ for details.
|
| + enum LineState {
|
| + NORMAL = 0,
|
| + KEYWORD
|
| + };
|
| +
|
| AutocompletePopupModel(AutocompletePopupView* popup_view,
|
| AutocompleteEditModel* edit_model);
|
| ~AutocompletePopupModel();
|
| @@ -45,6 +51,10 @@
|
| return selected_line_;
|
| }
|
|
|
| + LineState selected_line_state() const {
|
| + return selected_line_state_;
|
| + }
|
| +
|
| // Call to change the selected line. This will update all state and repaint
|
| // the necessary parts of the window, as well as updating the edit with the
|
| // new temporary text. |line| will be clamped to the range of valid lines.
|
| @@ -61,19 +71,6 @@
|
| // will change the selected line back to the default match and redraw.
|
| void ResetToDefaultMatch();
|
|
|
| - // Gets the selected keyword or keyword hint for the given match. If the match
|
| - // is already keyword, then the keyword will be returned directly. Otherwise,
|
| - // it returns GetKeywordForText(match.fill_into_edit, keyword).
|
| - bool GetKeywordForMatch(const AutocompleteMatch& match,
|
| - string16* keyword) const;
|
| -
|
| - // Gets the selected keyword or keyword hint for the given text. Returns
|
| - // true if |keyword| represents a keyword hint, or false if |keyword|
|
| - // represents a selected keyword. (|keyword| will always be set [though
|
| - // possibly to the empty string], and you cannot have both a selected keyword
|
| - // and a keyword hint simultaneously.)
|
| - bool GetKeywordForText(const string16& text, string16* keyword) const;
|
| -
|
| // Immediately updates and opens the popup if necessary, then moves the
|
| // current selection down (|count| > 0) or up (|count| < 0), clamping to the
|
| // first or last result if necessary. If |count| == 0, the selection will be
|
| @@ -81,6 +78,11 @@
|
| // AutocompleteEditModel.
|
| void Move(int count);
|
|
|
| + // If the selected line has both a normal match and a keyword match, this can
|
| + // be used to choose which to select. It is an error to call this when the
|
| + // selected line does not have both matches (or there is no selection).
|
| + void SetSelectedLineState(LineState state);
|
| +
|
| // Called when the user hits shift-delete. This should determine if the item
|
| // can be removed from history, and if so, remove it and update the popup.
|
| void TryDeletingCurrentItem();
|
| @@ -100,7 +102,7 @@
|
|
|
| // The token value for selected_line_, hover_line_ and functions dealing with
|
| // a "line number" that indicates "no line".
|
| - static const size_t kNoMatch = -1;
|
| + static const size_t kNoMatch;
|
|
|
| private:
|
| AutocompletePopupView* view_;
|
| @@ -115,6 +117,11 @@
|
| // which should only be true when the popup is closed.
|
| size_t selected_line_;
|
|
|
| + // If the selected line has both a normal match and a keyword match, this
|
| + // determines whether the normal match (if NORMAL) or the keyword match
|
| + // (if KEYWORD) is selected.
|
| + LineState selected_line_state_;
|
| +
|
| // The match the user has manually chosen, if any.
|
| AutocompleteResult::Selection manually_selected_match_;
|
|
|
|
|