Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(469)

Side by Side Diff: chrome/browser/ui/gtk/omnibox/omnibox_view_gtk.h

Issue 10810062: Moving common code into OmniboxView from OmniboxView* (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix final nits Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_ 5 #ifndef CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_
7 7
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <string> 11 #include <string>
12 12
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/memory/scoped_ptr.h" 14 #include "base/memory/scoped_ptr.h"
15 #include "base/string_util.h" 15 #include "base/string_util.h"
16 #include "chrome/browser/ui/omnibox/omnibox_view.h" 16 #include "chrome/browser/ui/omnibox/omnibox_view.h"
17 #include "chrome/browser/ui/toolbar/toolbar_model.h" 17 #include "chrome/browser/ui/toolbar/toolbar_model.h"
18 #include "content/public/browser/notification_observer.h" 18 #include "content/public/browser/notification_observer.h"
19 #include "content/public/browser/notification_registrar.h" 19 #include "content/public/browser/notification_registrar.h"
20 #include "ui/base/animation/animation_delegate.h" 20 #include "ui/base/animation/animation_delegate.h"
21 #include "ui/base/gtk/gtk_signal.h" 21 #include "ui/base/gtk/gtk_signal.h"
22 #include "ui/base/gtk/gtk_signal_registrar.h" 22 #include "ui/base/gtk/gtk_signal_registrar.h"
23 #include "ui/base/gtk/owned_widget_gtk.h" 23 #include "ui/base/gtk/owned_widget_gtk.h"
24 #include "ui/gfx/rect.h" 24 #include "ui/gfx/rect.h"
25 #include "webkit/glue/window_open_disposition.h" 25 #include "webkit/glue/window_open_disposition.h"
26 26
27 class Browser; 27 class Browser;
28 class OmniboxEditController;
29 class OmniboxEditModel;
30 class OmniboxPopupView; 28 class OmniboxPopupView;
31 class Profile; 29 class Profile;
32 30
33 namespace gfx { 31 namespace gfx {
34 class Font; 32 class Font;
35 } 33 }
36 34
37 namespace ui { 35 namespace ui {
38 class MultiAnimation; 36 class MultiAnimation;
39 } 37 }
(...skipping 29 matching lines...) Expand all
69 virtual ~OmniboxViewGtk(); 67 virtual ~OmniboxViewGtk();
70 68
71 // Initialize, create the underlying widgets, etc. 69 // Initialize, create the underlying widgets, etc.
72 void Init(); 70 void Init();
73 // Returns the width in pixels needed to display the text from one character 71 // Returns the width in pixels needed to display the text from one character
74 // before the caret to the end of the string. See comments in 72 // before the caret to the end of the string. See comments in
75 // LocationBarView::Layout as to why this uses -1. 73 // LocationBarView::Layout as to why this uses -1.
76 int WidthOfTextAfterCursor(); 74 int WidthOfTextAfterCursor();
77 75
78 // OmniboxView: 76 // OmniboxView:
79 virtual OmniboxEditModel* model() OVERRIDE;
80 virtual const OmniboxEditModel* model() const OVERRIDE;
81 virtual void SaveStateToTab(content::WebContents* tab) OVERRIDE; 77 virtual void SaveStateToTab(content::WebContents* tab) OVERRIDE;
82 virtual void Update( 78 virtual void Update(
83 const content::WebContents* tab_for_state_restoring) OVERRIDE; 79 const content::WebContents* tab_for_state_restoring) OVERRIDE;
84 virtual void OpenMatch(const AutocompleteMatch& match,
85 WindowOpenDisposition disposition,
86 const GURL& alternate_nav_url,
87 size_t index) OVERRIDE;
88 virtual string16 GetText() const OVERRIDE; 80 virtual string16 GetText() const OVERRIDE;
89 virtual bool IsEditingOrEmpty() const OVERRIDE;
90 virtual int GetIcon() const OVERRIDE;
91 virtual void SetUserText(const string16& text) OVERRIDE;
92 virtual void SetUserText(const string16& text,
93 const string16& display_text,
94 bool update_popup) OVERRIDE;
95 virtual void SetWindowTextAndCaretPos(const string16& text, 81 virtual void SetWindowTextAndCaretPos(const string16& text,
96 size_t caret_pos, 82 size_t caret_pos,
97 bool update_popup, 83 bool update_popup,
98 bool notify_text_changed) OVERRIDE; 84 bool notify_text_changed) OVERRIDE;
99 virtual void SetForcedQuery() OVERRIDE; 85 virtual void SetForcedQuery() OVERRIDE;
100 virtual bool IsSelectAll() const OVERRIDE; 86 virtual bool IsSelectAll() const OVERRIDE;
101 virtual bool DeleteAtEndPressed() OVERRIDE; 87 virtual bool DeleteAtEndPressed() OVERRIDE;
102 virtual void GetSelectionBounds(string16::size_type* start, 88 virtual void GetSelectionBounds(string16::size_type* start,
103 string16::size_type* end) const OVERRIDE; 89 string16::size_type* end) const OVERRIDE;
104 virtual void SelectAll(bool reversed) OVERRIDE; 90 virtual void SelectAll(bool reversed) OVERRIDE;
105 virtual void RevertAll() OVERRIDE;
106 virtual void UpdatePopup() OVERRIDE; 91 virtual void UpdatePopup() OVERRIDE;
107 virtual void ClosePopup() OVERRIDE;
108 virtual void SetFocus() OVERRIDE; 92 virtual void SetFocus() OVERRIDE;
109 virtual void OnTemporaryTextMaybeChanged( 93 virtual void OnTemporaryTextMaybeChanged(
110 const string16& display_text, 94 const string16& display_text,
111 bool save_original_selection) OVERRIDE; 95 bool save_original_selection) OVERRIDE;
112 virtual bool OnInlineAutocompleteTextMaybeChanged( 96 virtual bool OnInlineAutocompleteTextMaybeChanged(
113 const string16& display_text, size_t user_text_length) OVERRIDE; 97 const string16& display_text, size_t user_text_length) OVERRIDE;
114 virtual void OnRevertTemporaryText() OVERRIDE; 98 virtual void OnRevertTemporaryText() OVERRIDE;
115 virtual void OnBeforePossibleChange() OVERRIDE; 99 virtual void OnBeforePossibleChange() OVERRIDE;
116 virtual bool OnAfterPossibleChange() OVERRIDE; 100 virtual bool OnAfterPossibleChange() OVERRIDE;
117 virtual gfx::NativeView GetNativeView() const OVERRIDE; 101 virtual gfx::NativeView GetNativeView() const OVERRIDE;
118 virtual gfx::NativeView GetRelativeWindowForPopup() const OVERRIDE; 102 virtual gfx::NativeView GetRelativeWindowForPopup() const OVERRIDE;
119 virtual CommandUpdater* GetCommandUpdater() OVERRIDE;
120 virtual void SetInstantSuggestion(const string16& suggestion, 103 virtual void SetInstantSuggestion(const string16& suggestion,
121 bool animate_to_complete) OVERRIDE; 104 bool animate_to_complete) OVERRIDE;
122 virtual string16 GetInstantSuggestion() const OVERRIDE; 105 virtual string16 GetInstantSuggestion() const OVERRIDE;
123 virtual int TextWidth() const OVERRIDE; 106 virtual int TextWidth() const OVERRIDE;
124 virtual bool IsImeComposing() const OVERRIDE; 107 virtual bool IsImeComposing() const OVERRIDE;
125 108
126 // Overridden from content::NotificationObserver: 109 // Overridden from content::NotificationObserver:
127 virtual void Observe(int type, 110 virtual void Observe(int type,
128 const content::NotificationSource& source, 111 const content::NotificationSource& source,
129 const content::NotificationDetails& details) OVERRIDE; 112 const content::NotificationDetails& details) OVERRIDE;
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 static void ClipboardGetSelectionThunk(GtkClipboard* clipboard, 210 static void ClipboardGetSelectionThunk(GtkClipboard* clipboard,
228 GtkSelectionData* selection_data, 211 GtkSelectionData* selection_data,
229 guint info, 212 guint info,
230 gpointer object); 213 gpointer object);
231 void ClipboardGetSelection(GtkClipboard* clipboard, 214 void ClipboardGetSelection(GtkClipboard* clipboard,
232 GtkSelectionData* selection_data, 215 GtkSelectionData* selection_data,
233 guint info); 216 guint info);
234 217
235 void HandleCopyOrCutClipboard(bool copy); 218 void HandleCopyOrCutClipboard(bool copy);
236 219
220 // OmniboxView overrides.
221 virtual int GetOmniboxTextLength() const OVERRIDE;
222 virtual void EmphasizeURLComponents() OVERRIDE;
223
237 // Common implementation for performing a drop on the edit view. 224 // Common implementation for performing a drop on the edit view.
238 bool OnPerformDropImpl(const string16& text); 225 bool OnPerformDropImpl(const string16& text);
239 226
240 // Returns the font used in |text_view_|. 227 // Returns the font used in |text_view_|.
241 gfx::Font GetFont(); 228 gfx::Font GetFont();
242 229
243 // Take control of the PRIMARY selection clipboard with |text|. Use 230 // Take control of the PRIMARY selection clipboard with |text|. Use
244 // |text_buffer_| as the owner, so that this doesn't remove the selection on 231 // |text_buffer_| as the owner, so that this doesn't remove the selection on
245 // it. This makes use of the above callbacks. 232 // it. This makes use of the above callbacks.
246 void OwnPrimarySelection(const std::string& text); 233 void OwnPrimarySelection(const std::string& text);
(...skipping 19 matching lines...) Expand all
266 253
267 // Get the character indices of the current selection. This honors 254 // Get the character indices of the current selection. This honors
268 // direction, cp_max is the insertion point, and cp_min is the bound. 255 // direction, cp_max is the insertion point, and cp_min is the bound.
269 CharRange GetSelection() const; 256 CharRange GetSelection() const;
270 257
271 // Translate from character positions to iterators for the current buffer. 258 // Translate from character positions to iterators for the current buffer.
272 void ItersFromCharRange(const CharRange& range, 259 void ItersFromCharRange(const CharRange& range,
273 GtkTextIter* iter_min, 260 GtkTextIter* iter_min,
274 GtkTextIter* iter_max); 261 GtkTextIter* iter_max);
275 262
276 // Return the number of characters in the current buffer.
277 int GetTextLength() const;
278
279 // Places the caret at the given position. This clears any selection.
280 void PlaceCaretAt(int pos);
281
282 // Returns true if the caret is at the end of the content. 263 // Returns true if the caret is at the end of the content.
283 bool IsCaretAtEnd() const; 264 bool IsCaretAtEnd() const;
284 265
285 // Try to parse the current text as a URL and colorize the components.
286 void EmphasizeURLComponents();
287
288 // Internally invoked whenever the text changes in some way.
289 void TextChanged();
290
291 // Save |selected_text| as the PRIMARY X selection. Unlike 266 // Save |selected_text| as the PRIMARY X selection. Unlike
292 // OwnPrimarySelection(), this won't set an owner or use callbacks. 267 // OwnPrimarySelection(), this won't set an owner or use callbacks.
293 void SavePrimarySelection(const std::string& selected_text); 268 void SavePrimarySelection(const std::string& selected_text);
294 269
295 // Update the field with |text| and set the selection. 270 // Update the field with |text| and set the selection.
296 void SetTextAndSelectedRange(const string16& text, 271 void SetTextAndSelectedRange(const string16& text,
297 const CharRange& range); 272 const CharRange& range);
298 273
299 // Set the selection to |range|. 274 // Set the selection to |range|.
300 void SetSelectedRange(const CharRange& range); 275 void SetSelectedRange(const CharRange& range);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 GtkWidget* instant_view_; 332 GtkWidget* instant_view_;
358 // Animation from instant suggest (faded text) to autocomplete (selected 333 // Animation from instant suggest (faded text) to autocomplete (selected
359 // text). 334 // text).
360 scoped_ptr<ui::MultiAnimation> instant_animation_; 335 scoped_ptr<ui::MultiAnimation> instant_animation_;
361 336
362 // A mark to split the content and the instant anchor. Wherever the end 337 // A mark to split the content and the instant anchor. Wherever the end
363 // iterator of the text buffer is required, the iterator to this mark should 338 // iterator of the text buffer is required, the iterator to this mark should
364 // be used. 339 // be used.
365 GtkTextMark* instant_mark_; 340 GtkTextMark* instant_mark_;
366 341
367 scoped_ptr<OmniboxEditModel> model_;
368 scoped_ptr<OmniboxPopupView> popup_view_; 342 scoped_ptr<OmniboxPopupView> popup_view_;
369 OmniboxEditController* controller_;
370 ToolbarModel* toolbar_model_;
371
372 // The object that handles additional command functionality exposed on the
373 // edit, such as invoking the keyword editor.
374 CommandUpdater* command_updater_;
375 343
376 // When true, the location bar view is read only and also is has a slightly 344 // When true, the location bar view is read only and also is has a slightly
377 // different presentation (smaller font size). This is used for popups. 345 // different presentation (smaller font size). This is used for popups.
378 bool popup_window_mode_; 346 bool popup_window_mode_;
379 347
380 ToolbarModel::SecurityLevel security_level_; 348 ToolbarModel::SecurityLevel security_level_;
381 349
382 // Selection at the point where the user started using the 350 // Selection at the point where the user started using the
383 // arrows to move around in the popup. 351 // arrows to move around in the popup.
384 CharRange saved_temporary_selection_; 352 CharRange saved_temporary_selection_;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 // The view that is going to be focused next. Only valid while handling 463 // The view that is going to be focused next. Only valid while handling
496 // "focus-out" events. 464 // "focus-out" events.
497 GtkWidget* going_to_focus_; 465 GtkWidget* going_to_focus_;
498 466
499 ui::GtkSignalRegistrar signals_; 467 ui::GtkSignalRegistrar signals_;
500 468
501 DISALLOW_COPY_AND_ASSIGN(OmniboxViewGtk); 469 DISALLOW_COPY_AND_ASSIGN(OmniboxViewGtk);
502 }; 470 };
503 471
504 #endif // CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_ 472 #endif // CHROME_BROWSER_UI_GTK_OMNIBOX_OMNIBOX_VIEW_GTK_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/browser_window_gtk.cc ('k') | chrome/browser/ui/gtk/omnibox/omnibox_view_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698