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

Side by Side Diff: ash/shelf/shelf_layout_manager.cc

Issue 2823133002: Clean up some ash constants. (Closed)
Patch Set: updates Created 3 years, 8 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
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 #include "ash/shelf/shelf_layout_manager.h" 5 #include "ash/shelf/shelf_layout_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 bool ShelfLayoutManager::IsVisible() const { 185 bool ShelfLayoutManager::IsVisible() const {
186 // status_area_widget() may be nullptr during the shutdown. 186 // status_area_widget() may be nullptr during the shutdown.
187 return shelf_widget_->status_area_widget() && 187 return shelf_widget_->status_area_widget() &&
188 shelf_widget_->status_area_widget()->IsVisible() && 188 shelf_widget_->status_area_widget()->IsVisible() &&
189 (state_.visibility_state == SHELF_VISIBLE || 189 (state_.visibility_state == SHELF_VISIBLE ||
190 (state_.visibility_state == SHELF_AUTO_HIDE && 190 (state_.visibility_state == SHELF_AUTO_HIDE &&
191 state_.auto_hide_state == SHELF_AUTO_HIDE_SHOWN)); 191 state_.auto_hide_state == SHELF_AUTO_HIDE_SHOWN));
192 } 192 }
193 193
194 gfx::Rect ShelfLayoutManager::GetIdealBounds() { 194 gfx::Rect ShelfLayoutManager::GetIdealBounds() {
195 const int shelf_size = GetShelfConstant(SHELF_SIZE); 195 const int shelf_size = kShelfSize;
James Cook 2017/04/18 15:31:52 nit: inline uses of kShelfSize
Evan Stade 2017/04/18 16:41:09 Done.
196 WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow()); 196 WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
197 gfx::Rect rect(wm::GetDisplayBoundsInParent(shelf_window)); 197 gfx::Rect rect(wm::GetDisplayBoundsInParent(shelf_window));
198 return SelectValueForShelfAlignment( 198 return SelectValueForShelfAlignment(
199 gfx::Rect(rect.x(), rect.bottom() - shelf_size, rect.width(), shelf_size), 199 gfx::Rect(rect.x(), rect.bottom() - shelf_size, rect.width(), shelf_size),
200 gfx::Rect(rect.x(), rect.y(), shelf_size, rect.height()), 200 gfx::Rect(rect.x(), rect.y(), shelf_size, rect.height()),
201 gfx::Rect(rect.right() - shelf_size, rect.y(), shelf_size, 201 gfx::Rect(rect.right() - shelf_size, rect.y(), shelf_size,
202 rect.height())); 202 rect.height()));
203 } 203 }
204 204
205 gfx::Size ShelfLayoutManager::GetPreferredSize() { 205 gfx::Size ShelfLayoutManager::GetPreferredSize() {
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 shelf_widget_->status_area_widget()->Show(); 653 shelf_widget_->status_area_widget()->Show();
654 } 654 }
655 655
656 void ShelfLayoutManager::StopAnimating() { 656 void ShelfLayoutManager::StopAnimating() {
657 GetLayer(shelf_widget_)->GetAnimator()->StopAnimating(); 657 GetLayer(shelf_widget_)->GetAnimator()->StopAnimating();
658 GetLayer(shelf_widget_->status_area_widget())->GetAnimator()->StopAnimating(); 658 GetLayer(shelf_widget_->status_area_widget())->GetAnimator()->StopAnimating();
659 } 659 }
660 660
661 void ShelfLayoutManager::CalculateTargetBounds(const State& state, 661 void ShelfLayoutManager::CalculateTargetBounds(const State& state,
662 TargetBounds* target_bounds) { 662 TargetBounds* target_bounds) {
663 int shelf_size = GetShelfConstant(SHELF_SIZE); 663 int shelf_size = kShelfSize;
664 if (state.visibility_state == SHELF_AUTO_HIDE && 664 if (state.visibility_state == SHELF_AUTO_HIDE &&
665 state.auto_hide_state == SHELF_AUTO_HIDE_HIDDEN) { 665 state.auto_hide_state == SHELF_AUTO_HIDE_HIDDEN) {
666 // Auto-hidden shelf always starts with the default size. If a gesture-drag 666 // Auto-hidden shelf always starts with the default size. If a gesture-drag
667 // is in progress, then the call to UpdateTargetBoundsForGesture() below 667 // is in progress, then the call to UpdateTargetBoundsForGesture() below
668 // takes care of setting the height properly. 668 // takes care of setting the height properly.
669 shelf_size = kShelfAutoHideSize; 669 shelf_size = kShelfAutoHideSize;
670 } else if (state.visibility_state == SHELF_HIDDEN || 670 } else if (state.visibility_state == SHELF_HIDDEN ||
671 (!keyboard_bounds_.IsEmpty() && 671 (!keyboard_bounds_.IsEmpty() &&
672 !keyboard::IsKeyboardOverscrollEnabled())) { 672 !keyboard::IsKeyboardOverscrollEnabled())) {
673 shelf_size = 0; 673 shelf_size = 0;
(...skipping 13 matching lines...) Expand all
687 gfx::Point shelf_origin = SelectValueForShelfAlignment( 687 gfx::Point shelf_origin = SelectValueForShelfAlignment(
688 gfx::Point(available_bounds.x(), bottom_shelf_vertical_offset), 688 gfx::Point(available_bounds.x(), bottom_shelf_vertical_offset),
689 gfx::Point(available_bounds.x(), available_bounds.y()), 689 gfx::Point(available_bounds.x(), available_bounds.y()),
690 gfx::Point(available_bounds.right() - shelf_width, available_bounds.y())); 690 gfx::Point(available_bounds.right() - shelf_width, available_bounds.y()));
691 target_bounds->shelf_bounds_in_root = 691 target_bounds->shelf_bounds_in_root =
692 gfx::Rect(shelf_origin.x(), shelf_origin.y(), shelf_width, shelf_height); 692 gfx::Rect(shelf_origin.x(), shelf_origin.y(), shelf_width, shelf_height);
693 693
694 gfx::Size status_size( 694 gfx::Size status_size(
695 shelf_widget_->status_area_widget()->GetWindowBoundsInScreen().size()); 695 shelf_widget_->status_area_widget()->GetWindowBoundsInScreen().size());
696 if (wm_shelf_->IsHorizontalAlignment()) 696 if (wm_shelf_->IsHorizontalAlignment())
697 status_size.set_height(GetShelfConstant(SHELF_SIZE)); 697 status_size.set_height(kShelfSize);
698 else 698 else
699 status_size.set_width(GetShelfConstant(SHELF_SIZE)); 699 status_size.set_width(kShelfSize);
700 700
701 gfx::Point status_origin = SelectValueForShelfAlignment( 701 gfx::Point status_origin = SelectValueForShelfAlignment(
702 gfx::Point(0, 0), gfx::Point(shelf_width - status_size.width(), 702 gfx::Point(0, 0), gfx::Point(shelf_width - status_size.width(),
703 shelf_height - status_size.height()), 703 shelf_height - status_size.height()),
704 gfx::Point(0, shelf_height - status_size.height())); 704 gfx::Point(0, shelf_height - status_size.height()));
705 if (wm_shelf_->IsHorizontalAlignment() && !base::i18n::IsRTL()) 705 if (wm_shelf_->IsHorizontalAlignment() && !base::i18n::IsRTL())
706 status_origin.set_x(shelf_width - status_size.width()); 706 status_origin.set_x(shelf_width - status_size.width());
707 target_bounds->status_bounds_in_shelf = gfx::Rect(status_origin, status_size); 707 target_bounds->status_bounds_in_shelf = gfx::Rect(status_origin, status_size);
708 708
709 target_bounds->work_area_insets = SelectValueForShelfAlignment( 709 target_bounds->work_area_insets = SelectValueForShelfAlignment(
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 gfx::Rect available_bounds = wm::GetDisplayBoundsWithShelf(window); 763 gfx::Rect available_bounds = wm::GetDisplayBoundsWithShelf(window);
764 int resistance_free_region = 0; 764 int resistance_free_region = 0;
765 765
766 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN && 766 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN &&
767 visibility_state() == SHELF_AUTO_HIDE && 767 visibility_state() == SHELF_AUTO_HIDE &&
768 auto_hide_state() != SHELF_AUTO_HIDE_SHOWN) { 768 auto_hide_state() != SHELF_AUTO_HIDE_SHOWN) {
769 // If the shelf was hidden when the drag started (and the state hasn't 769 // If the shelf was hidden when the drag started (and the state hasn't
770 // changed since then, e.g. because the tray-menu was shown because of the 770 // changed since then, e.g. because the tray-menu was shown because of the
771 // drag), then allow the drag some resistance-free region at first to make 771 // drag), then allow the drag some resistance-free region at first to make
772 // sure the shelf sticks with the finger until the shelf is visible. 772 // sure the shelf sticks with the finger until the shelf is visible.
773 resistance_free_region = GetShelfConstant(SHELF_SIZE) - kShelfAutoHideSize; 773 resistance_free_region = kShelfSize - kShelfAutoHideSize;
774 } 774 }
775 775
776 bool resist = SelectValueForShelfAlignment( 776 bool resist = SelectValueForShelfAlignment(
777 gesture_drag_amount_<-resistance_free_region, gesture_drag_amount_> 777 gesture_drag_amount_<-resistance_free_region, gesture_drag_amount_>
778 resistance_free_region, 778 resistance_free_region,
779 gesture_drag_amount_ < -resistance_free_region); 779 gesture_drag_amount_ < -resistance_free_region);
780 780
781 float translate = 0.f; 781 float translate = 0.f;
782 if (resist) { 782 if (resist) {
783 float diff = fabsf(gesture_drag_amount_) - resistance_free_region; 783 float diff = fabsf(gesture_drag_amount_) - resistance_free_region;
784 diff = std::min(diff, sqrtf(diff)); 784 diff = std::min(diff, sqrtf(diff));
785 if (gesture_drag_amount_ < 0) 785 if (gesture_drag_amount_ < 0)
786 translate = -resistance_free_region - diff; 786 translate = -resistance_free_region - diff;
787 else 787 else
788 translate = resistance_free_region + diff; 788 translate = resistance_free_region + diff;
789 } else { 789 } else {
790 translate = gesture_drag_amount_; 790 translate = gesture_drag_amount_;
791 } 791 }
792 int shelf_insets = GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE);
793 if (horizontal) { 792 if (horizontal) {
794 // Move and size the shelf with the gesture. 793 // Move and size the shelf with the gesture.
795 int shelf_height = target_bounds->shelf_bounds_in_root.height() - translate; 794 int shelf_height = target_bounds->shelf_bounds_in_root.height() - translate;
796 shelf_height = std::max(shelf_height, shelf_insets); 795 shelf_height = std::max(shelf_height, 0);
797 target_bounds->shelf_bounds_in_root.set_height(shelf_height); 796 target_bounds->shelf_bounds_in_root.set_height(shelf_height);
798 if (wm_shelf_->IsHorizontalAlignment()) { 797 if (wm_shelf_->IsHorizontalAlignment()) {
799 target_bounds->shelf_bounds_in_root.set_y(available_bounds.bottom() - 798 target_bounds->shelf_bounds_in_root.set_y(available_bounds.bottom() -
800 shelf_height); 799 shelf_height);
801 } 800 }
802 801
803 target_bounds->status_bounds_in_shelf.set_y(0); 802 target_bounds->status_bounds_in_shelf.set_y(0);
804 } else { 803 } else {
805 // Move and size the shelf with the gesture. 804 // Move and size the shelf with the gesture.
806 int shelf_width = target_bounds->shelf_bounds_in_root.width(); 805 int shelf_width = target_bounds->shelf_bounds_in_root.width();
807 bool right_aligned = wm_shelf_->GetAlignment() == SHELF_ALIGNMENT_RIGHT; 806 bool right_aligned = wm_shelf_->GetAlignment() == SHELF_ALIGNMENT_RIGHT;
808 if (right_aligned) 807 if (right_aligned)
809 shelf_width -= translate; 808 shelf_width -= translate;
810 else 809 else
811 shelf_width += translate; 810 shelf_width += translate;
812 shelf_width = std::max(shelf_width, shelf_insets); 811 shelf_width = std::max(shelf_width, 0);
813 target_bounds->shelf_bounds_in_root.set_width(shelf_width); 812 target_bounds->shelf_bounds_in_root.set_width(shelf_width);
814 if (right_aligned) { 813 if (right_aligned) {
815 target_bounds->shelf_bounds_in_root.set_x(available_bounds.right() - 814 target_bounds->shelf_bounds_in_root.set_x(available_bounds.right() -
816 shelf_width); 815 shelf_width);
817 } 816 }
818 817
819 if (right_aligned) { 818 if (right_aligned) {
820 target_bounds->status_bounds_in_shelf.set_x(0); 819 target_bounds->status_bounds_in_shelf.set_x(0);
821 } else { 820 } else {
822 target_bounds->status_bounds_in_shelf.set_x( 821 target_bounds->status_bounds_in_shelf.set_x(
823 target_bounds->shelf_bounds_in_root.width() - 822 target_bounds->shelf_bounds_in_root.width() - kShelfSize);
824 GetShelfConstant(SHELF_SIZE));
825 } 823 }
826 } 824 }
827 } 825 }
828 826
829 void ShelfLayoutManager::MaybeUpdateShelfBackground(AnimationChangeType type) { 827 void ShelfLayoutManager::MaybeUpdateShelfBackground(AnimationChangeType type) {
830 const ShelfBackgroundType new_background_type(GetShelfBackgroundType()); 828 const ShelfBackgroundType new_background_type(GetShelfBackgroundType());
831 829
832 if (new_background_type == shelf_background_type_) 830 if (new_background_type == shelf_background_type_)
833 return; 831 return;
834 832
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
970 WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow()); 968 WmWindow* shelf_window = WmWindow::Get(shelf_widget_->GetNativeWindow());
971 WmWindow* status_window = 969 WmWindow* status_window =
972 WmWindow::Get(shelf_widget_->status_area_widget()->GetNativeWindow()); 970 WmWindow::Get(shelf_widget_->status_area_widget()->GetNativeWindow());
973 return (shelf_window && shelf_window->Contains(window)) || 971 return (shelf_window && shelf_window->Contains(window)) ||
974 (status_window && status_window->Contains(window)); 972 (status_window && status_window->Contains(window));
975 } 973 }
976 974
977 int ShelfLayoutManager::GetWorkAreaInsets(const State& state, int size) const { 975 int ShelfLayoutManager::GetWorkAreaInsets(const State& state, int size) const {
978 if (state.visibility_state == SHELF_VISIBLE) 976 if (state.visibility_state == SHELF_VISIBLE)
979 return size; 977 return size;
980 if (state.visibility_state == SHELF_AUTO_HIDE)
981 return GetShelfConstant(SHELF_INSETS_FOR_AUTO_HIDE);
982 return 0; 978 return 0;
983 } 979 }
984 980
985 void ShelfLayoutManager::OnLockStateEvent(LockStateObserver::EventType event) { 981 void ShelfLayoutManager::OnLockStateEvent(LockStateObserver::EventType event) {
986 if (event == EVENT_LOCK_ANIMATION_STARTED) { 982 if (event == EVENT_LOCK_ANIMATION_STARTED) {
987 // Enter the screen locked state and update the visibility to avoid an odd 983 // Enter the screen locked state and update the visibility to avoid an odd
988 // animation when transitioning the orientation from L/R to bottom. 984 // animation when transitioning the orientation from L/R to bottom.
989 state_.pre_lock_screen_animation_active = true; 985 state_.pre_lock_screen_animation_active = true;
990 UpdateShelfVisibilityAfterLoginUIChange(); 986 UpdateShelfVisibilityAfterLoginUIChange();
991 } else { 987 } else {
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1139 gesture_drag_status_ = GESTURE_DRAG_NONE; 1135 gesture_drag_status_ = GESTURE_DRAG_NONE;
1140 } 1136 }
1141 1137
1142 void ShelfLayoutManager::CancelGestureDrag() { 1138 void ShelfLayoutManager::CancelGestureDrag() {
1143 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS; 1139 gesture_drag_status_ = GESTURE_DRAG_CANCEL_IN_PROGRESS;
1144 UpdateVisibilityState(); 1140 UpdateVisibilityState();
1145 gesture_drag_status_ = GESTURE_DRAG_NONE; 1141 gesture_drag_status_ = GESTURE_DRAG_NONE;
1146 } 1142 }
1147 1143
1148 } // namespace ash 1144 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698