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

Unified Diff: ash/shelf/shelf_button.cc

Issue 198063003: Revert of Shelf Cleanup (- binary files) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ash/shelf/overflow_button.cc ('k') | ash/shelf/shelf_constants.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/shelf/shelf_button.cc
diff --git a/ash/shelf/shelf_button.cc b/ash/shelf/shelf_button.cc
index 6be45e7e9a3d22cd28c3a76929791693cbfd3539..ebd81106fce173e47b6ed20a1b7fc245897d5866 100644
--- a/ash/shelf/shelf_button.cc
+++ b/ash/shelf/shelf_button.cc
@@ -31,9 +31,19 @@
// if the shelf is aligned horizontally then this is the height of the bar.
const int kBarSize = 3;
const int kIconSize = 32;
-const int kIconPad = 5;
-const int kIconPadVertical = 6;
+const int kHopSpacing = 2;
+const int kIconPad = 8;
+const int kAlternateIconPad = 5;
+const int kAlternateIconPadVertical = 6;
+const int kHopUpMS = 0;
+const int kHopDownMS = 200;
const int kAttentionThrobDurationMS = 800;
+
+bool ShouldHop(int state) {
+ return state & ash::internal::ShelfButton::STATE_HOVERED ||
+ state & ash::internal::ShelfButton::STATE_ACTIVE ||
+ state & ash::internal::ShelfButton::STATE_FOCUSED;
+}
// Simple AnimationDelegate that owns a single ThrobAnimation instance to
// keep all Draw Attention animations in sync.
@@ -288,6 +298,13 @@
void ShelfButton::AddState(State state) {
if (!(state_ & state)) {
+ if (!ash::switches::UseAlternateShelfLayout() &&
+ (ShouldHop(state) || !ShouldHop(state_))) {
+ ui::ScopedLayerAnimationSettings scoped_setter(
+ icon_view_->layer()->GetAnimator());
+ scoped_setter.SetTransitionDuration(
+ base::TimeDelta::FromMilliseconds(kHopUpMS));
+ }
state_ |= state;
Layout();
if (state & STATE_ATTENTION)
@@ -297,6 +314,14 @@
void ShelfButton::ClearState(State state) {
if (state_ & state) {
+ if (!ash::switches::UseAlternateShelfLayout() &&
+ (!ShouldHop(state) || ShouldHop(state_))) {
+ ui::ScopedLayerAnimationSettings scoped_setter(
+ icon_view_->layer()->GetAnimator());
+ scoped_setter.SetTweenType(gfx::Tween::LINEAR);
+ scoped_setter.SetTransitionDuration(
+ base::TimeDelta::FromMilliseconds(kHopDownMS));
+ }
state_ &= ~state;
Layout();
if (state & STATE_ATTENTION)
@@ -375,9 +400,11 @@
void ShelfButton::Layout() {
const gfx::Rect button_bounds(GetContentsBounds());
int icon_pad = kIconPad;
- icon_pad =
- shelf_layout_manager_->GetAlignment() != SHELF_ALIGNMENT_BOTTOM ?
- kIconPadVertical : kIconPad;
+ if (ash::switches::UseAlternateShelfLayout()) {
+ icon_pad =
+ shelf_layout_manager_->GetAlignment() != SHELF_ALIGNMENT_BOTTOM ?
+ kAlternateIconPadVertical : kAlternateIconPad;
+ }
int x_offset = shelf_layout_manager_->PrimaryAxisValue(0, icon_pad);
int y_offset = shelf_layout_manager_->PrimaryAxisValue(icon_pad, 0);
@@ -393,6 +420,13 @@
if (SHELF_ALIGNMENT_TOP == shelf_layout_manager_->GetAlignment())
y_offset = button_bounds.height() - (kIconSize + icon_pad);
+
+ if (ShouldHop(state_) && !ash::switches::UseAlternateShelfLayout()) {
+ x_offset += shelf_layout_manager_->SelectValueForShelfAlignment(
+ 0, kHopSpacing, -kHopSpacing, 0);
+ y_offset += shelf_layout_manager_->SelectValueForShelfAlignment(
+ -kHopSpacing, 0, 0, kHopSpacing);
+ }
// Center icon with respect to the secondary axis, and ensure
// that the icon doesn't occlude the bar highlight.
@@ -511,10 +545,19 @@
}
int bar_id = 0;
- if (state_ & STATE_ACTIVE)
- bar_id = IDR_AURA_LAUNCHER_UNDERLINE_ACTIVE;
- else if (state_ & STATE_RUNNING)
- bar_id = IDR_AURA_LAUNCHER_UNDERLINE_RUNNING;
+ if (ash::switches::UseAlternateShelfLayout()) {
+ if (state_ & STATE_ACTIVE)
+ bar_id = IDR_AURA_LAUNCHER_UNDERLINE_ACTIVE_ALTERNATE;
+ else if (state_ & STATE_RUNNING)
+ bar_id = IDR_AURA_LAUNCHER_UNDERLINE_RUNNING_ALTERNATE;
+ } else {
+ if (state_ & (STATE_ACTIVE | STATE_ATTENTION))
+ bar_id = IDR_AURA_LAUNCHER_UNDERLINE_ACTIVE;
+ else if (state_ & (STATE_HOVERED | STATE_FOCUSED))
+ bar_id = IDR_AURA_LAUNCHER_UNDERLINE_HOVER;
+ else
+ bar_id = IDR_AURA_LAUNCHER_UNDERLINE_RUNNING;
+ }
if (bar_id != 0) {
ResourceBundle& rb = ResourceBundle::GetSharedInstance();
« no previous file with comments | « ash/shelf/overflow_button.cc ('k') | ash/shelf/shelf_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698