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

Side by Side Diff: chrome/browser/ui/views/location_bar/location_bar_view.h

Issue 9479008: Re-factor location bar/toolbar code to get rid of the browser dependency. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: call right overloaded method Created 8 years, 9 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_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_ 6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 14 matching lines...) Expand all
25 #include "ui/views/drag_controller.h" 25 #include "ui/views/drag_controller.h"
26 26
27 #if defined(USE_AURA) 27 #if defined(USE_AURA)
28 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h" 28 #include "chrome/browser/ui/views/omnibox/omnibox_view_views.h"
29 #elif defined(OS_WIN) 29 #elif defined(OS_WIN)
30 #include "chrome/browser/ui/views/omnibox/omnibox_view_win.h" 30 #include "chrome/browser/ui/views/omnibox/omnibox_view_win.h"
31 #elif defined(TOOLKIT_USES_GTK) 31 #elif defined(TOOLKIT_USES_GTK)
32 #include "chrome/browser/ui/gtk/omnibox/omnibox_view_gtk.h" 32 #include "chrome/browser/ui/gtk/omnibox/omnibox_view_gtk.h"
33 #endif 33 #endif
34 34
35 class Browser;
36 class ChromeToMobileView; 35 class ChromeToMobileView;
36 class CommandUpdater;
37 class ContentSettingBubbleModelDelegate;
37 class ContentSettingImageView; 38 class ContentSettingImageView;
38 class EVBubbleView; 39 class EVBubbleView;
39 class ExtensionAction; 40 class ExtensionAction;
40 class GURL; 41 class GURL;
41 class InstantController; 42 class InstantController;
42 class KeywordHintView; 43 class KeywordHintView;
43 class LocationIconView; 44 class LocationIconView;
44 class PageActionWithBadgeView; 45 class PageActionWithBadgeView;
46 class PageActionImageView;
47 class Profile;
45 class SelectedKeywordView; 48 class SelectedKeywordView;
46 class StarView; 49 class StarView;
47 class TabContentsWrapper; 50 class TabContentsWrapper;
48 class TemplateURLService; 51 class TemplateURLService;
49 52
53 namespace views {
54 class BubbleDelegateView;
55 class Widget;
56 }
57
50 #if defined(OS_WIN) || defined(USE_AURA) 58 #if defined(OS_WIN) || defined(USE_AURA)
51 class SuggestedTextView; 59 class SuggestedTextView;
52 #endif 60 #endif
53 61
54 ///////////////////////////////////////////////////////////////////////////// 62 /////////////////////////////////////////////////////////////////////////////
55 // 63 //
56 // LocationBarView class 64 // LocationBarView class
57 // 65 //
58 // The LocationBarView class is a View subclass that paints the background 66 // The LocationBarView class is a View subclass that paints the background
59 // of the URL bar strip and contains its content. 67 // of the URL bar strip and contains its content.
(...skipping 19 matching lines...) Expand all
79 int animation_offset() const { return animation_offset_; } 87 int animation_offset() const { return animation_offset_; }
80 88
81 class Delegate { 89 class Delegate {
82 public: 90 public:
83 // Should return the current tab contents. 91 // Should return the current tab contents.
84 virtual TabContentsWrapper* GetTabContentsWrapper() const = 0; 92 virtual TabContentsWrapper* GetTabContentsWrapper() const = 0;
85 93
86 // Returns the InstantController, or NULL if there isn't one. 94 // Returns the InstantController, or NULL if there isn't one.
87 virtual InstantController* GetInstant() = 0; 95 virtual InstantController* GetInstant() = 0;
88 96
97 // Creates Widget for the given delegate.
98 virtual views::Widget* CreateViewsBubble(
99 views::BubbleDelegateView* bubble_delegate) = 0;
100
101 // Creates PageActionImageView. Caller gets an ownership.
102 virtual PageActionImageView* CreatePageActionImageView(
103 LocationBarView* owner,
104 ExtensionAction* action) = 0;
105
106 // Returns ContentSettingBubbleModelDelegate.
107 virtual ContentSettingBubbleModelDelegate*
108 GetContentSettingBubbleModelDelegate() = 0;
109
110 // Shows page information in the given web contents.
111 virtual void ShowPageInfo(content::WebContents* web_contents,
112 const GURL& url,
113 const content::SSLStatus& ssl,
114 bool show_history) = 0;
115
89 // Called by the location bar view when the user starts typing in the edit. 116 // Called by the location bar view when the user starts typing in the edit.
90 // This forces our security style to be UNKNOWN for the duration of the 117 // This forces our security style to be UNKNOWN for the duration of the
91 // editing. 118 // editing.
92 virtual void OnInputInProgress(bool in_progress) = 0; 119 virtual void OnInputInProgress(bool in_progress) = 0;
120
121 protected:
122 virtual ~Delegate() {}
93 }; 123 };
94 124
95 enum ColorKind { 125 enum ColorKind {
96 BACKGROUND = 0, 126 BACKGROUND = 0,
97 TEXT, 127 TEXT,
98 SELECTED_TEXT, 128 SELECTED_TEXT,
99 DEEMPHASIZED_TEXT, 129 DEEMPHASIZED_TEXT,
100 SECURITY_TEXT, 130 SECURITY_TEXT,
101 }; 131 };
102 132
103 // The modes reflect the different scenarios where a location bar can be used. 133 // The modes reflect the different scenarios where a location bar can be used.
104 // The normal mode is the mode used in a regular browser window. 134 // The normal mode is the mode used in a regular browser window.
105 // In popup mode, the location bar view is read only and has a slightly 135 // In popup mode, the location bar view is read only and has a slightly
106 // different presentation (font size / color). 136 // different presentation (font size / color).
107 // In app launcher mode, the location bar is empty and no security states or 137 // In app launcher mode, the location bar is empty and no security states or
108 // page/browser actions are displayed. 138 // page/browser actions are displayed.
109 enum Mode { 139 enum Mode {
110 NORMAL = 0, 140 NORMAL = 0,
111 POPUP, 141 POPUP,
112 APP_LAUNCHER 142 APP_LAUNCHER
113 }; 143 };
114 144
115 LocationBarView(Browser* browser, 145 LocationBarView(Profile* profile,
146 CommandUpdater* command_updater,
116 ToolbarModel* model, 147 ToolbarModel* model,
117 Delegate* delegate, 148 Delegate* delegate,
118 Mode mode); 149 Mode mode);
150
119 virtual ~LocationBarView(); 151 virtual ~LocationBarView();
120 152
121 void Init(); 153 void Init();
122 154
123 // True if this instance has been initialized by calling Init, which can only 155 // True if this instance has been initialized by calling Init, which can only
124 // be called when the receiving instance is attached to a view container. 156 // be called when the receiving instance is attached to a view container.
125 bool IsInitialized() const; 157 bool IsInitialized() const;
126 158
127 // Returns the appropriate color for the desired kind, based on the user's 159 // Returns the appropriate color for the desired kind, based on the user's
128 // system theme. 160 // system theme.
129 static SkColor GetColor(ToolbarModel::SecurityLevel security_level, 161 static SkColor GetColor(ToolbarModel::SecurityLevel security_level,
130 ColorKind kind); 162 ColorKind kind);
131 163
132 // Updates the location bar. We also reset the bar's permanent text and 164 // Updates the location bar. We also reset the bar's permanent text and
133 // security style, and, if |tab_for_state_restoring| is non-NULL, also restore 165 // security style, and, if |tab_for_state_restoring| is non-NULL, also restore
134 // saved state that the tab holds. 166 // saved state that the tab holds.
135 void Update(const content::WebContents* tab_for_state_restoring); 167 void Update(const content::WebContents* tab_for_state_restoring);
136 168
137 Browser* browser() const { return browser_; } 169 // Returns corresponding profile.
170 Profile* profile() const { return profile_; }
171
172 // Returns the delegate.
173 Delegate* delegate() const { return delegate_; }
138 174
139 // Sets |preview_enabled| for the PageAction View associated with this 175 // Sets |preview_enabled| for the PageAction View associated with this
140 // |page_action|. If |preview_enabled| is true, the view will display the 176 // |page_action|. If |preview_enabled| is true, the view will display the
141 // PageActions icon even though it has not been activated by the extension. 177 // PageActions icon even though it has not been activated by the extension.
142 // This is used by the ExtensionInstalledBubble to preview what the icon 178 // This is used by the ExtensionInstalledBubble to preview what the icon
143 // will look like for the user upon installation of the extension. 179 // will look like for the user upon installation of the extension.
144 void SetPreviewEnabledPageAction(ExtensionAction *page_action, 180 void SetPreviewEnabledPageAction(ExtensionAction *page_action,
145 bool preview_enabled); 181 bool preview_enabled);
146 182
147 // Retrieves the PageAction View which is associated with |page_action|. 183 // Retrieves the PageAction View which is associated with |page_action|.
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 OmniboxViewWin* GetOmniboxViewWin(); 381 OmniboxViewWin* GetOmniboxViewWin();
346 #endif 382 #endif
347 #endif 383 #endif
348 384
349 // Helper to show the first run info bubble. 385 // Helper to show the first run info bubble.
350 void ShowFirstRunBubbleInternal(); 386 void ShowFirstRunBubbleInternal();
351 387
352 // The Autocomplete Edit field. 388 // The Autocomplete Edit field.
353 scoped_ptr<OmniboxView> location_entry_; 389 scoped_ptr<OmniboxView> location_entry_;
354 390
355 // The Browser object that corresponds to this View. 391 // The profile which corresponds to this View.
356 Browser* browser_; 392 Profile* profile_;
393
394 // Command updater which corresponds to this View.
395 CommandUpdater* command_updater_;
357 396
358 // The model. 397 // The model.
359 ToolbarModel* model_; 398 ToolbarModel* model_;
360 399
361 // Our delegate. 400 // Our delegate.
362 Delegate* delegate_; 401 Delegate* delegate_;
363 402
364 // This is the string of text from the autocompletion session that the user 403 // This is the string of text from the autocompletion session that the user
365 // entered or selected. 404 // entered or selected.
366 string16 location_input_; 405 string16 location_input_;
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 // While animating, the host clips the widget and draws only the bottom 472 // While animating, the host clips the widget and draws only the bottom
434 // part of it. The view needs to know the pixel offset at which we are drawing 473 // part of it. The view needs to know the pixel offset at which we are drawing
435 // the widget so that we can draw the curved edges that attach to the toolbar 474 // the widget so that we can draw the curved edges that attach to the toolbar
436 // in the right location. 475 // in the right location.
437 int animation_offset_; 476 int animation_offset_;
438 477
439 DISALLOW_IMPLICIT_CONSTRUCTORS(LocationBarView); 478 DISALLOW_IMPLICIT_CONSTRUCTORS(LocationBarView);
440 }; 479 };
441 480
442 #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_ 481 #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698