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

Side by Side Diff: chrome/browser/ui/gtk/location_bar_view_gtk.h

Issue 10796116: [Web Intents] Basic location bar UI for window disposition picker affordance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refactor content settings to PageTool base class. Add stubs for mac/win. 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_LOCATION_BAR_VIEW_GTK_H_ 5 #ifndef CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
6 #define CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_ 6 #define CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
7 7
8 #include <gtk/gtk.h> 8 #include <gtk/gtk.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 InstantCompleteBehavior behavior) OVERRIDE; 137 InstantCompleteBehavior behavior) OVERRIDE;
138 virtual string16 GetInputString() const OVERRIDE; 138 virtual string16 GetInputString() const OVERRIDE;
139 virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE; 139 virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE;
140 virtual content::PageTransition GetPageTransition() const OVERRIDE; 140 virtual content::PageTransition GetPageTransition() const OVERRIDE;
141 virtual void AcceptInput() OVERRIDE; 141 virtual void AcceptInput() OVERRIDE;
142 virtual void FocusLocation(bool select_all) OVERRIDE; 142 virtual void FocusLocation(bool select_all) OVERRIDE;
143 virtual void FocusSearch() OVERRIDE; 143 virtual void FocusSearch() OVERRIDE;
144 virtual void UpdateContentSettingsIcons() OVERRIDE; 144 virtual void UpdateContentSettingsIcons() OVERRIDE;
145 virtual void UpdatePageActions() OVERRIDE; 145 virtual void UpdatePageActions() OVERRIDE;
146 virtual void InvalidatePageActions() OVERRIDE; 146 virtual void InvalidatePageActions() OVERRIDE;
147 virtual void UpdateWebIntentsTool() OVERRIDE;
147 virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE; 148 virtual void SaveStateToContents(content::WebContents* contents) OVERRIDE;
148 virtual void Revert() OVERRIDE; 149 virtual void Revert() OVERRIDE;
149 virtual const OmniboxView* GetLocationEntry() const OVERRIDE; 150 virtual const OmniboxView* GetLocationEntry() const OVERRIDE;
150 virtual OmniboxView* GetLocationEntry() OVERRIDE; 151 virtual OmniboxView* GetLocationEntry() OVERRIDE;
151 virtual LocationBarTesting* GetLocationBarForTesting() OVERRIDE; 152 virtual LocationBarTesting* GetLocationBarForTesting() OVERRIDE;
152 153
153 // LocationBarTesting: 154 // LocationBarTesting:
154 virtual int PageActionCount() OVERRIDE; 155 virtual int PageActionCount() OVERRIDE;
155 virtual int PageActionVisibleCount() OVERRIDE; 156 virtual int PageActionVisibleCount() OVERRIDE;
156 virtual ExtensionAction* GetPageAction(size_t index) OVERRIDE; 157 virtual ExtensionAction* GetPageAction(size_t index) OVERRIDE;
157 virtual ExtensionAction* GetVisiblePageAction(size_t index) OVERRIDE; 158 virtual ExtensionAction* GetVisiblePageAction(size_t index) OVERRIDE;
158 virtual void TestPageActionPressed(size_t index) OVERRIDE; 159 virtual void TestPageActionPressed(size_t index) OVERRIDE;
159 160
160 // content::NotificationObserver: 161 // content::NotificationObserver:
161 virtual void Observe(int type, 162 virtual void Observe(int type,
162 const content::NotificationSource& source, 163 const content::NotificationSource& source,
163 const content::NotificationDetails& details) OVERRIDE; 164 const content::NotificationDetails& details) OVERRIDE;
164 165
165 // CommandObserver: 166 // CommandObserver:
166 virtual void EnabledStateChangedForCommand(int id, bool enabled) OVERRIDE; 167 virtual void EnabledStateChangedForCommand(int id, bool enabled) OVERRIDE;
167 168
168 // Edit background color. 169 // Edit background color.
169 static const GdkColor kBackgroundColor; 170 static const GdkColor kBackgroundColor;
170 171
171 private: 172 private:
172 class ContentSettingImageViewGtk : public BubbleDelegateGtk, 173 // TODO(gbillock): cause this public interface to be a platform-independent
173 public ui::AnimationDelegate { 174 // model interface for all the tools displayed in the location bar.
175 class PageToolViewGtk : public ui::AnimationDelegate {
174 public: 176 public:
175 ContentSettingImageViewGtk(ContentSettingsType content_type, 177 PageToolViewGtk(const LocationBarViewGtk* parent);
176 const LocationBarViewGtk* parent); 178 virtual ~PageToolViewGtk();
177 virtual ~ContentSettingImageViewGtk();
178 179
179 GtkWidget* widget() { return alignment_.get(); } 180 GtkWidget* widget();
180 181
181 bool IsVisible(); 182 bool IsVisible();
182 void UpdateFromWebContents(content::WebContents* web_contents); 183 virtual void Update(TabContents* tab_contents);
183 184
184 // Overridden from ui::AnimationDelegate: 185 // Overridden from ui::AnimationDelegate:
185 virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE; 186 virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE;
186 virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE; 187 virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE;
187 virtual void AnimationCanceled(const ui::Animation* animation) OVERRIDE; 188 virtual void AnimationCanceled(const ui::Animation* animation) OVERRIDE;
188 189
189 private: 190 protected:
191 // Theme constants for solid background elements.
192 virtual GdkColor button_border_color() const;
193 virtual GdkColor gradient_top_color() const;
194 virtual GdkColor gradient_bottom_color() const;
195
190 // Start the process of showing the label. 196 // Start the process of showing the label.
191 void StartAnimating(); 197 void StartAnimating();
192 198
193 // Slide the label shut. 199 // Slide the label shut.
194 void CloseAnimation(); 200 void CloseAnimation();
195 201
196 CHROMEGTK_CALLBACK_1(ContentSettingImageViewGtk, gboolean, OnButtonPressed, 202 CHROMEGTK_CALLBACK_1(PageToolViewGtk, gboolean, OnButtonPressed, GdkEvent*);
197 GdkEvent*); 203 CHROMEGTK_CALLBACK_1(PageToolViewGtk, gboolean, OnExpose, GdkEventExpose*);
198 CHROMEGTK_CALLBACK_1(ContentSettingImageViewGtk, gboolean, OnExpose, 204
199 GdkEventExpose*); 205 // Delegate for ButtonPressed message.
206 virtual void OnClick(GtkWidget* sender);
207
208 // The widgets for this view.
209 ui::OwnedWidgetGtk alignment_;
210 ui::OwnedWidgetGtk event_box_;
211 GtkWidget* hbox_;
212 ui::OwnedWidgetGtk image_;
213
214 // Explanatory text (e.g. "popup blocked").
215 ui::OwnedWidgetGtk label_;
216
217 // The owning LocationBarViewGtk.
218 const LocationBarViewGtk* parent_;
219
220 // When we show explanatory text, we slide it in/out.
221 ui::SlideAnimation animation_;
222
223 // The label's default requisition (cached so we can animate accordingly).
224 GtkRequisition label_req_;
225
226 base::WeakPtrFactory<PageToolViewGtk> weak_factory_;
227
228 private:
229 DISALLOW_COPY_AND_ASSIGN(PageToolViewGtk);
230 };
231
232 class ContentSettingImageViewGtk : public PageToolViewGtk,
233 public BubbleDelegateGtk {
234 public:
235 ContentSettingImageViewGtk(ContentSettingsType content_type,
236 const LocationBarViewGtk* parent);
237 virtual ~ContentSettingImageViewGtk();
238
239 virtual void Update(TabContents* tab_contents) OVERRIDE;
Bernhard Bauer 2012/07/27 00:35:38 Add a comment which class this overrides?
240
241 virtual void AnimationEnded(const ui::Animation* animation) OVERRIDE;
242
243 private:
244 virtual GdkColor button_border_color() const OVERRIDE;
245 virtual GdkColor gradient_top_color() const OVERRIDE;
246 virtual GdkColor gradient_bottom_color() const OVERRIDE;
247 virtual void OnClick(GtkWidget* sender) OVERRIDE;
200 248
201 // BubbleDelegateGtk overrides: 249 // BubbleDelegateGtk overrides:
202 virtual void BubbleClosing(BubbleGtk* bubble, 250 virtual void BubbleClosing(BubbleGtk* bubble,
203 bool closed_by_escape) OVERRIDE; 251 bool closed_by_escape) OVERRIDE;
204 252
205 scoped_ptr<ContentSettingImageModel> content_setting_image_model_; 253 scoped_ptr<ContentSettingImageModel> content_setting_image_model_;
206 254
207 // The widgets for this content settings view.
208 ui::OwnedWidgetGtk alignment_;
209 ui::OwnedWidgetGtk event_box_;
210 GtkWidget* hbox_;
211 ui::OwnedWidgetGtk image_;
212
213 // Explanatory text ("popup blocked").
214 ui::OwnedWidgetGtk label_;
215
216 // The owning LocationBarViewGtk.
217 const LocationBarViewGtk* parent_;
218
219 // The currently shown bubble if any. 255 // The currently shown bubble if any.
220 ContentSettingBubbleGtk* content_setting_bubble_; 256 ContentSettingBubbleGtk* content_setting_bubble_;
221 257
222 // When we show explanatory text, we slide it in/out.
223 ui::SlideAnimation animation_;
224
225 // The label's default requisition (cached so we can animate accordingly).
226 GtkRequisition label_req_;
227
228 base::WeakPtrFactory<ContentSettingImageViewGtk> weak_factory_;
229
230 DISALLOW_COPY_AND_ASSIGN(ContentSettingImageViewGtk); 258 DISALLOW_COPY_AND_ASSIGN(ContentSettingImageViewGtk);
231 }; 259 };
232 260
233 class PageActionViewGtk : 261 class PageActionViewGtk :
234 public ImageLoadingTracker::Observer, 262 public ImageLoadingTracker::Observer,
235 public content::NotificationObserver, 263 public content::NotificationObserver,
236 public ExtensionContextMenuModel::PopupDelegate, 264 public ExtensionContextMenuModel::PopupDelegate,
237 public ExtensionAction::IconAnimation::Observer { 265 public ExtensionAction::IconAnimation::Observer {
238 public: 266 public:
239 PageActionViewGtk(LocationBarViewGtk* owner, ExtensionAction* page_action); 267 PageActionViewGtk(LocationBarViewGtk* owner, ExtensionAction* page_action);
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 ui::OwnedWidgetGtk content_setting_hbox_; 492 ui::OwnedWidgetGtk content_setting_hbox_;
465 ScopedVector<ContentSettingImageViewGtk> content_setting_views_; 493 ScopedVector<ContentSettingImageViewGtk> content_setting_views_;
466 494
467 // Extension page actions. 495 // Extension page actions.
468 std::vector<ExtensionAction*> page_actions_; 496 std::vector<ExtensionAction*> page_actions_;
469 497
470 // Extension page action icons. 498 // Extension page action icons.
471 ui::OwnedWidgetGtk page_action_hbox_; 499 ui::OwnedWidgetGtk page_action_hbox_;
472 ScopedVector<PageActionViewGtk> page_action_views_; 500 ScopedVector<PageActionViewGtk> page_action_views_;
473 501
502 // Control for web intents window disposition picker control.
503 ui::OwnedWidgetGtk web_intents_hbox_;
504 PageToolViewGtk web_intents_tool_view_;
505
474 // The widget that contains our tab hints and the location bar. 506 // The widget that contains our tab hints and the location bar.
475 GtkWidget* entry_box_; 507 GtkWidget* entry_box_;
476 508
477 // Area on the left shown when in tab to search mode. 509 // Area on the left shown when in tab to search mode.
478 GtkWidget* tab_to_search_alignment_; 510 GtkWidget* tab_to_search_alignment_;
479 GtkWidget* tab_to_search_box_; 511 GtkWidget* tab_to_search_box_;
480 GtkWidget* tab_to_search_magnifier_; 512 GtkWidget* tab_to_search_magnifier_;
481 GtkWidget* tab_to_search_full_label_; 513 GtkWidget* tab_to_search_full_label_;
482 GtkWidget* tab_to_search_partial_label_; 514 GtkWidget* tab_to_search_partial_label_;
483 515
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
539 BooleanPrefMember edit_bookmarks_enabled_; 571 BooleanPrefMember edit_bookmarks_enabled_;
540 572
541 // Used to remember the URL and title text when drag&drop has begun. 573 // Used to remember the URL and title text when drag&drop has begun.
542 GURL drag_url_; 574 GURL drag_url_;
543 string16 drag_title_; 575 string16 drag_title_;
544 576
545 DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk); 577 DISALLOW_COPY_AND_ASSIGN(LocationBarViewGtk);
546 }; 578 };
547 579
548 #endif // CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_ 580 #endif // CHROME_BROWSER_UI_GTK_LOCATION_BAR_VIEW_GTK_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698