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

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

Issue 302453002: New animation for the origin chip URL showing/hiding. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix test failure by checking for NULL extension Created 6 years, 6 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 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 249
250 // views::View: 250 // views::View:
251 virtual bool HasFocus() const OVERRIDE; 251 virtual bool HasFocus() const OVERRIDE;
252 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; 252 virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE;
253 virtual gfx::Size GetPreferredSize() const OVERRIDE; 253 virtual gfx::Size GetPreferredSize() const OVERRIDE;
254 virtual void Layout() OVERRIDE; 254 virtual void Layout() OVERRIDE;
255 255
256 // OmniboxEditController: 256 // OmniboxEditController:
257 virtual void Update(const content::WebContents* contents) OVERRIDE; 257 virtual void Update(const content::WebContents* contents) OVERRIDE;
258 virtual void ShowURL() OVERRIDE; 258 virtual void ShowURL() OVERRIDE;
259 virtual void EndOriginChipAnimations(bool cancel_fade) OVERRIDE;
259 virtual ToolbarModel* GetToolbarModel() OVERRIDE; 260 virtual ToolbarModel* GetToolbarModel() OVERRIDE;
260 virtual content::WebContents* GetWebContents() OVERRIDE; 261 virtual content::WebContents* GetWebContents() OVERRIDE;
261 262
262 // Thickness of the edges of the omnibox background images, in normal mode. 263 // Thickness of the edges of the omnibox background images, in normal mode.
263 static const int kNormalEdgeThickness; 264 static const int kNormalEdgeThickness;
264 // The same, but for popup mode. 265 // The same, but for popup mode.
265 static const int kPopupEdgeThickness; 266 static const int kPopupEdgeThickness;
266 // Space between items in the location bar, as well as between items and the 267 // Space between items in the location bar, as well as between items and the
267 // edges. 268 // edges.
268 static const int kItemPadding; 269 static const int kItemPadding;
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 // using an accessibility API (typically automation software, screen readers 330 // using an accessibility API (typically automation software, screen readers
330 // don't normally use this). Sets the value and clears the selection. 331 // don't normally use this). Sets the value and clears the selection.
331 void AccessibilitySetValue(const base::string16& new_value); 332 void AccessibilitySetValue(const base::string16& new_value);
332 333
333 // Returns true if the suggest text is valid. 334 // Returns true if the suggest text is valid.
334 bool HasValidSuggestText() const; 335 bool HasValidSuggestText() const;
335 336
336 bool ShouldShowKeywordBubble() const; 337 bool ShouldShowKeywordBubble() const;
337 bool ShouldShowEVBubble() const; 338 bool ShouldShowEVBubble() const;
338 339
339 // Origin chip animation control methods. 340 // Used to "reverse" the URL showing/hiding animations, since we use separate
340 void OnShowURLAnimationEnded(); 341 // animations whose curves are not true inverses of each other. Based on the
341 void OnHideURLAnimationEnded(); 342 // current position of the omnibox, calculates what value the desired
343 // animation (|hide_url_animation_| if |hide| is true, |show_url_animation_|
344 // if it's false) should be set to in order to produce the same omnibox
345 // position. This way we can stop the old animation, set the new animation to
346 // this value, and start it running, and the text will appear to reverse
347 // directions from its current location.
348 double GetValueForAnimation(bool hide) const;
349
350 // Resets |show_url_animation_| and the color changes it causes.
351 void ResetShowAnimationAndColors();
342 352
343 // LocationBar: 353 // LocationBar:
344 virtual void ShowFirstRunBubble() OVERRIDE; 354 virtual void ShowFirstRunBubble() OVERRIDE;
345 virtual GURL GetDestinationURL() const OVERRIDE; 355 virtual GURL GetDestinationURL() const OVERRIDE;
346 virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE; 356 virtual WindowOpenDisposition GetWindowOpenDisposition() const OVERRIDE;
347 virtual content::PageTransition GetPageTransition() const OVERRIDE; 357 virtual content::PageTransition GetPageTransition() const OVERRIDE;
348 virtual void AcceptInput() OVERRIDE; 358 virtual void AcceptInput() OVERRIDE;
349 virtual void FocusSearch() OVERRIDE; 359 virtual void FocusSearch() OVERRIDE;
350 virtual void UpdateContentSettingsIcons() OVERRIDE; 360 virtual void UpdateContentSettingsIcons() OVERRIDE;
351 virtual void UpdateManagePasswordsIconAndBubble() OVERRIDE; 361 virtual void UpdateManagePasswordsIconAndBubble() OVERRIDE;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 // Tracks this preference to determine whether bookmark editing is allowed. 515 // Tracks this preference to determine whether bookmark editing is allowed.
506 BooleanPrefMember edit_bookmarks_enabled_; 516 BooleanPrefMember edit_bookmarks_enabled_;
507 517
508 // During dropdown animation, the host clips the widget and draws only the 518 // During dropdown animation, the host clips the widget and draws only the
509 // bottom part of it. The view needs to know the pixel offset at which we are 519 // bottom part of it. The view needs to know the pixel offset at which we are
510 // drawing the widget so that we can draw the curved edges that attach to the 520 // drawing the widget so that we can draw the curved edges that attach to the
511 // toolbar in the right location. 521 // toolbar in the right location.
512 int dropdown_animation_offset_; 522 int dropdown_animation_offset_;
513 523
514 // Origin chip animations. 524 // Origin chip animations.
525 //
526 // For the "show URL" animation, we instantly hide the origin chip and show
Justin Donnelly 2014/06/02 15:07:33 Great description, thanks.
527 // the |omnibox_view_| in its place, containing the complete URL. However, we
528 // clip that view (using the XXX_leading_inset_ and XXX_width_ members) so
529 // that only the hostname is visible. We also offset the omnibox (using the
530 // XXX_offset_ members) so the hostname is in the same place as it was in the
531 // origin chip. Finally, we set the selection text and background color of
532 // the text to match the pressed origin chip. Then, as the animation runs,
533 // all of these values are animated to their steady-state values (no omnibox
534 // offset, no inset, width equal to the full omnibox text [which is reset to
535 // "no width clamp" after the animation ends], and standard selection colors).
536 //
537 // For the hide animation, we run the positioning and clipping parts of the
538 // animation in reverse, but instead of changing the selection color, because
539 // there usually isn't a selection when hiding, we leave the omnibox colors
540 // alone, and when the hide animation has ended, tell the origin chip to
541 // fade-in its background.
515 scoped_ptr<gfx::SlideAnimation> show_url_animation_; 542 scoped_ptr<gfx::SlideAnimation> show_url_animation_;
516 scoped_ptr<gfx::SlideAnimation> hide_url_animation_; 543 scoped_ptr<gfx::SlideAnimation> hide_url_animation_;
517 544 // The omnibox offset may be positive or negative. The starting offset is the
518 // Text label shown only during origin chip animations. 545 // amount necessary to shift the |omnibox_view_| by such that the hostname
519 views::Label* animated_host_label_; 546 // portion of the URL aligns with the hostname in the origin chip. As the
547 // show animation runs, the current offset gradually moves to 0.
548 int starting_omnibox_offset_;
549 int current_omnibox_offset_;
550 // The leading inset is always positive. The starting inset is the width of
551 // the text between the leading edge of the omnibox and the edge of the
552 // hostname, which is clipped off at the start of the show animation. Note
553 // that in RTL mode, this will be the part of the URL that is logically after
554 // the hostname. As the show animation runs, the current inset gradually
555 // moves to 0.
556 int starting_omnibox_leading_inset_;
557 int current_omnibox_leading_inset_;
558 // The width is always positive. The ending width is the width of the entire
559 // omnibox URL. As the show animation runs, the current width gradually moves
560 // from the width of the hostname to the ending value.
561 int current_omnibox_width_;
562 int ending_omnibox_width_;
520 563
521 // Used to register for notifications received by NotificationObserver. 564 // Used to register for notifications received by NotificationObserver.
522 content::NotificationRegistrar registrar_; 565 content::NotificationRegistrar registrar_;
523 566
524 // Used to bind callback functions to this object. 567 // Used to bind callback functions to this object.
525 base::WeakPtrFactory<LocationBarView> weak_ptr_factory_; 568 base::WeakPtrFactory<LocationBarView> weak_ptr_factory_;
526 569
527 DISALLOW_COPY_AND_ASSIGN(LocationBarView); 570 DISALLOW_COPY_AND_ASSIGN(LocationBarView);
528 }; 571 };
529 572
530 #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_ 573 #endif // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_VIEW_H_
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/toolbar_model_impl.cc ('k') | chrome/browser/ui/views/location_bar/location_bar_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698