omnibox_view_views.h revision f2477e01787aa58f445919b809d89e252beef54f
1d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis// Copyright (c) 2012 The Chromium Authors. All rights reserved. 21eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump// Use of this source code is governed by a BSD-style license that can be 3f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek// found in the LICENSE file. 4f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 5f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#ifndef CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_VIEW_VIEWS_H_ 6f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#define CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_VIEW_VIEWS_H_ 7f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 8f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include <string> 9f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 10f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include "base/basictypes.h" 118e49dd6e7e73b275a74338a5127a524f0765303cTed Kremenek#include "base/memory/scoped_ptr.h" 12f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include "chrome/browser/ui/omnibox/omnibox_view.h" 13f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include "chrome/browser/ui/toolbar/toolbar_model.h" 14f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include "ui/base/window_open_disposition.h" 15d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis#include "ui/gfx/range/range.h" 16d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis#include "ui/views/controls/textfield/textfield.h" 17f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek#include "ui/views/controls/textfield/textfield_controller.h" 1899c6ad3f22b865d0f4cce52bc36904403c9ed4c4Ted Kremenek 199b663716449b618ba0390b1dbebc54fa8e971124Ted Kremenek#if defined(OS_CHROMEOS) 209b663716449b618ba0390b1dbebc54fa8e971124Ted Kremenek#include "chromeos/ime/input_method_manager.h" 219b663716449b618ba0390b1dbebc54fa8e971124Ted Kremenek#endif 22f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 23f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenekclass LocationBarView; 24f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenekclass OmniboxPopupView; 250111f575b968e423dccae439e501225b8314b257Zhongxing Xuclass Profile; 26ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremenek 27ca804539d908d3a0e8c72a0df5f1f571d29490bbTed Kremeneknamespace ui { 289ef6537a894c33003359b1f9b9676e9178e028b7Ted Kremenekclass OSExchangeData; 295a4f98ff943e6a501b0fe47ade007c9bbf96cb88Argyrios Kyrtzidis} // namespace ui 30a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks 31a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks// Views-implementation of OmniboxView, based on the gtk implementation. 3224f1a967741ff9f8025ee23be12ba6feacc31f77Ted Kremenekclass OmniboxViewViews 33d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis : public views::Textfield, 34922059dec59c7bed235da01aff75ae522a369811Ted Kremenek public OmniboxView, 35922059dec59c7bed235da01aff75ae522a369811Ted Kremenek#if defined(OS_CHROMEOS) 36d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis public 37922059dec59c7bed235da01aff75ae522a369811Ted Kremenek chromeos::input_method::InputMethodManager::CandidateWindowObserver, 38922059dec59c7bed235da01aff75ae522a369811Ted Kremenek#endif 39922059dec59c7bed235da01aff75ae522a369811Ted Kremenek public views::TextfieldController { 40922059dec59c7bed235da01aff75ae522a369811Ted Kremenek public: 41d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis // The internal view class name. 42ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks static const char kViewClassName[]; 43f05aac8472d8ed081a361a218fd14d59ddc91b85Anna Zaks 44ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks OmniboxViewViews(OmniboxEditController* controller, 45d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis Profile* profile, 46d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis CommandUpdater* command_updater, 47e36de1fe51c39d9161915dd3dbef880954af6476Ted Kremenek bool popup_window_mode, 48d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis LocationBarView* location_bar, 49d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis const gfx::FontList& font_list); 500111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual ~OmniboxViewViews(); 51a7a8a450d908b34fa5f569f2e694ebd4b61aae2fTom Care 52a7a8a450d908b34fa5f569f2e694ebd4b61aae2fTom Care // Initialize, create the underlying views, etc; 5366750fa464ace9f8c41666c8585ec71a248c1ccaTed Kremenek void Init(); 54422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 55422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Sets the colors of the text view according to the theme. 56422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek void SetBaseColor(); 57422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 58a7a8a450d908b34fa5f569f2e694ebd4b61aae2fTom Care // views::Textfield: 59a7a8a450d908b34fa5f569f2e694ebd4b61aae2fTom Care virtual const char* GetClassName() const OVERRIDE; 60d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; 610111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; 62f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; 6338b02b912e1a55c912f603c4369431264d36a381Zhongxing Xu virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE; 641eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE; 65f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual bool OnKeyPressed(const ui::KeyEvent& event) OVERRIDE; 66f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual bool OnKeyReleased(const ui::KeyEvent& event) OVERRIDE; 67f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual bool SkipDefaultKeyEventProcessing( 68d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis const ui::KeyEvent& event) OVERRIDE; 691eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual void OnFocus() OVERRIDE; 70d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void OnBlur() OVERRIDE; 718e49dd6e7e73b275a74338a5127a524f0765303cTed Kremenek 728e49dd6e7e73b275a74338a5127a524f0765303cTed Kremenek // OmniboxView: 73d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void SaveStateToTab(content::WebContents* tab) OVERRIDE; 74f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek virtual void OnTabChanged(const content::WebContents* web_contents) OVERRIDE; 75f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek virtual void Update() OVERRIDE; 76f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek virtual string16 GetText() const OVERRIDE; 7766750fa464ace9f8c41666c8585ec71a248c1ccaTed Kremenek virtual void SetUserText(const string16& text, 78422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek const string16& display_text, 79422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek bool update_popup) OVERRIDE; 80422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek virtual void SetWindowTextAndCaretPos(const string16& text, 81422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek size_t caret_pos, 821eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump bool update_popup, 8318c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek bool notify_text_changed) OVERRIDE; 8418c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek virtual void SetForcedQuery() OVERRIDE; 859c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual bool IsSelectAll() const OVERRIDE; 861eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual bool DeleteAtEndPressed() OVERRIDE; 879c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual void GetSelectionBounds(string16::size_type* start, 889c378f705405d37f49795d5e915989de774fe11fTed Kremenek string16::size_type* end) const OVERRIDE; 899c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual void SelectAll(bool reversed) OVERRIDE; 909c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual void RevertAll() OVERRIDE; 911eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual void UpdatePopup() OVERRIDE; 929c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual void SetFocus() OVERRIDE; 939c378f705405d37f49795d5e915989de774fe11fTed Kremenek virtual void ApplyCaretVisibility() OVERRIDE; 94102acd5369bbb17c0d6ab868af376671acff7a93Douglas Gregor virtual void OnTemporaryTextMaybeChanged( 95102acd5369bbb17c0d6ab868af376671acff7a93Douglas Gregor const string16& display_text, 96102acd5369bbb17c0d6ab868af376671acff7a93Douglas Gregor bool save_original_selection, 970111f575b968e423dccae439e501225b8314b257Zhongxing Xu bool notify_text_changed) OVERRIDE; 98f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual bool OnInlineAutocompleteTextMaybeChanged( 99d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis const string16& display_text, size_t user_text_length) OVERRIDE; 100d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void OnInlineAutocompleteTextCleared() OVERRIDE; 1011eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual void OnRevertTemporaryText() OVERRIDE; 102dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks virtual void OnBeforePossibleChange() OVERRIDE; 103dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks virtual bool OnAfterPossibleChange() OVERRIDE; 104dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks virtual gfx::NativeView GetNativeView() const OVERRIDE; 1054d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks virtual gfx::NativeView GetRelativeWindowForPopup() const OVERRIDE; 1064d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks virtual void SetGrayTextAutocompletion(const string16& input) OVERRIDE; 107f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual string16 GetGrayTextAutocompletion() const OVERRIDE; 108d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual int TextWidth() const OVERRIDE; 1090111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual bool IsImeComposing() const OVERRIDE; 110d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual bool IsImeShowingPopup() const OVERRIDE; 111d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual int GetMaxEditWidth(int entry_width) const OVERRIDE; 11255825aa2d88fe82bf3622f195046ae48532d3106Ted Kremenek virtual int OnPerformDrop(const ui::DropTargetEvent& event) OVERRIDE; 113f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek 1140111f575b968e423dccae439e501225b8314b257Zhongxing Xu // views::TextfieldController: 115d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void ContentsChanged(views::Textfield* sender, 1160111f575b968e423dccae439e501225b8314b257Zhongxing Xu const string16& new_contents) OVERRIDE; 117d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual bool HandleKeyEvent(views::Textfield* sender, 118d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis const ui::KeyEvent& key_event) OVERRIDE; 119d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void OnBeforeUserAction(views::Textfield* sender) OVERRIDE; 120f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek virtual void OnAfterUserAction(views::Textfield* sender) OVERRIDE; 1210111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual void OnAfterCutOrCopy() OVERRIDE; 122d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis virtual void OnWriteDragData(ui::OSExchangeData* data) OVERRIDE; 1230111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual void OnGetDragOperationsForTextfield(int* drag_operations) OVERRIDE; 1240111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual void AppendDropFormats( 1250111f575b968e423dccae439e501225b8314b257Zhongxing Xu int* formats, 1260111f575b968e423dccae439e501225b8314b257Zhongxing Xu std::set<ui::OSExchangeData::CustomFormat>* custom_formats) OVERRIDE; 127031ccc0555a82afc2e8afe29e19dd57ff204e2deZhongxing Xu virtual int OnDrop(const ui::OSExchangeData& data) OVERRIDE; 1281eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump virtual void UpdateContextMenu(ui::SimpleMenuModel* menu_contents) OVERRIDE; 1290111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE; 130fc8f0e14ad142ed811e90fbd9a30e419e301c717Chris Lattner virtual bool IsItemForCommandIdDynamic(int command_id) const OVERRIDE; 131031ccc0555a82afc2e8afe29e19dd57ff204e2deZhongxing Xu virtual string16 GetLabelForCommandId(int command_id) const OVERRIDE; 1320111f575b968e423dccae439e501225b8314b257Zhongxing Xu virtual bool HandlesCommand(int command_id) const OVERRIDE; 133f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE; 134f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 1352ce43c8f43254a9edea53a20dc0e69195bc82ae0Zhongxing Xu#if defined(OS_CHROMEOS) 13618c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek // chromeos::input_method::InputMethodManager::CandidateWindowObserver: 13718c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek virtual void CandidateWindowOpened( 13818c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek chromeos::input_method::InputMethodManager* manager) OVERRIDE; 13918c66fdc3c4008d335885695fe36fb5353c5f672Ted Kremenek virtual void CandidateWindowClosed( 1402ce43c8f43254a9edea53a20dc0e69195bc82ae0Zhongxing Xu chromeos::input_method::InputMethodManager* manager) OVERRIDE; 141bc42c533e7d3d946704a49e242939dd232f33072Tom Care#endif 142bc42c533e7d3d946704a49e242939dd232f33072Tom Care 143422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek private: 144422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Return the number of characers in the current buffer. 145422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek virtual int GetOmniboxTextLength() const OVERRIDE; 146422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 147422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Try to parse the current text as a URL and colorize the components. 148422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek virtual void EmphasizeURLComponents() OVERRIDE; 149422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 150422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Update the field with |text| and set the selection. 151422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek void SetTextAndSelectedRange(const string16& text, 152422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek const gfx::Range& range); 153422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 154422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Returns the selected text. 155d2592a34a059e7cbb2b11dc53649ac4912422909Argyrios Kyrtzidis string16 GetSelectedText() const; 156f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek 157422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Paste text from the clipboard into the omnibox. 15866750fa464ace9f8c41666c8585ec71a248c1ccaTed Kremenek // Textfields implementation of Paste() pastes the contents of the clipboard 159f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek // as is. We want to strip whitespace and other things (see GetClipboardText() 160422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // for details). 16166750fa464ace9f8c41666c8585ec71a248c1ccaTed Kremenek // It is assumed this is invoked after a call to OnBeforePossibleChange() and 162f598087b4adfea164acdd5b53ea2951bde740a2dTed Kremenek // that after invoking this OnAfterPossibleChange() is invoked. 163422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek void OnPaste(); 164422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 165422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // Handle keyword hint tab-to-search and tabbing through dropdown results. 166422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek bool HandleEarlyTabActions(const ui::KeyEvent& event); 167422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek 168422ab7a49a9a4252dbc6350e49d7a5708337b9c7Ted Kremenek // When true, the location bar view is read only and also is has a slightly 169a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks // different presentation (smaller font size). This is used for popups. 170dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks bool popup_window_mode_; 1714d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks 172dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks scoped_ptr<OmniboxPopupView> popup_view_; 173dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks 174dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks ToolbarModel::SecurityLevel security_level_; 175dd7ddf2b2296f95e7591ca3f9791f0eb9a15ee42Anna Zaks 1764d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks // Selection persisted across temporary text changes, like popup suggestions. 1774d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks gfx::Range saved_temporary_selection_; 1784d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks 1794d2ae4a70336dc2aa11389b34946be152bb454c9Anna Zaks // Holds the user's selection across focus changes. There is only a saved 180a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks // selection if this range IsValid(). 181a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks gfx::Range saved_selection_for_focus_change_; 182c03a39e16762627b421247b12a2658be630a3300Anna Zaks 183a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks // Tracking state before and after a possible change. 184a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks string16 text_before_change_; 185a19f4af7a94835ce4693bfe12d6270754e79eb56Anna Zaks gfx::Range sel_before_change_; 186af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks bool ime_composing_before_change_; 187c9003c89c7aead1686aba89c8e3ddcea1f2bec54Anna Zaks 188af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks // Was the delete key pressed with an empty selection at the end of the edit? 189ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks bool delete_at_end_pressed_; 190c03a39e16762627b421247b12a2658be630a3300Anna Zaks LocationBarView* location_bar_view_; 191c03a39e16762627b421247b12a2658be630a3300Anna Zaks 192ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // True if the IME candidate window is open. When this is true, we want to 193ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // avoid showing the popup. So far, the candidate window is detected only 194ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // on Chrome OS. 195ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks bool ime_candidate_window_open_; 196ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks 197ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // Should we select all the text when we see the mouse button get released? 198ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // We select in response to a click that focuses the omnibox, but we defer 199af498a28797c075c48d7e943df5f5a8e78ed8eb0Anna Zaks // until release, setting this variable back to false if we saw a drag, to 200ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks // allow the user to select just a portion of the text. 201ebae6d0209e1ec3d5ea14f9e63bd0d740218ed14Anna Zaks bool select_all_on_mouse_release_; 202f24af5bc2e01ca8e7396ed997378a77fddfa521eTed Kremenek 2031eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump // Indicates if we want to select all text in the omnibox when we get a 204aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks // GESTURE_TAP. We want to select all only when the textfield is not in focus 205aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks // and gets a tap. So we use this variable to remember focus state before tap. 206aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks bool select_all_on_gesture_tap_; 207aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks 208aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks DISALLOW_COPY_AND_ASSIGN(OmniboxViewViews); 209aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks}; 210aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks 211aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks#endif // CHROME_BROWSER_UI_VIEWS_OMNIBOX_OMNIBOX_VIEW_VIEWS_H_ 212aa0aeb1cbe117db68d35700cb3a34aace0f99b99Anna Zaks