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

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

Issue 176883022: 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/shelf_model.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <cstring> 9 #include <cstring>
10 #include <string> 10 #include <string>
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 // static 89 // static
90 const int ShelfLayoutManager::kWorkspaceAreaVisibleInset = 2; 90 const int ShelfLayoutManager::kWorkspaceAreaVisibleInset = 2;
91 91
92 // static 92 // static
93 const int ShelfLayoutManager::kWorkspaceAreaAutoHideInset = 5; 93 const int ShelfLayoutManager::kWorkspaceAreaAutoHideInset = 5;
94 94
95 // static 95 // static
96 const int ShelfLayoutManager::kAutoHideSize = 3; 96 const int ShelfLayoutManager::kAutoHideSize = 3;
97 97
98 // static 98 // static
99 const int ShelfLayoutManager::kShelfSize = 47;
100
101 // static
102 const int ShelfLayoutManager::kShelfItemInset = 3; 99 const int ShelfLayoutManager::kShelfItemInset = 3;
103 100
104 int ShelfLayoutManager::GetPreferredShelfSize() {
105 return ash::switches::UseAlternateShelfLayout() ?
106 ShelfLayoutManager::kShelfSize : kShelfPreferredSize;
107 }
108
109 // ShelfLayoutManager::AutoHideEventFilter ------------------------------------- 101 // ShelfLayoutManager::AutoHideEventFilter -------------------------------------
110 102
111 // Notifies ShelfLayoutManager any time the mouse moves. 103 // Notifies ShelfLayoutManager any time the mouse moves.
112 class ShelfLayoutManager::AutoHideEventFilter : public ui::EventHandler { 104 class ShelfLayoutManager::AutoHideEventFilter : public ui::EventHandler {
113 public: 105 public:
114 explicit AutoHideEventFilter(ShelfLayoutManager* shelf); 106 explicit AutoHideEventFilter(ShelfLayoutManager* shelf);
115 virtual ~AutoHideEventFilter(); 107 virtual ~AutoHideEventFilter();
116 108
117 // Returns true if the last mouse event was a mouse drag. 109 // Returns true if the last mouse event was a mouse drag.
118 bool in_mouse_drag() const { return in_mouse_drag_; } 110 bool in_mouse_drag() const { return in_mouse_drag_; }
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 void ShelfLayoutManager::StopAnimating() { 721 void ShelfLayoutManager::StopAnimating() {
730 GetLayer(shelf_)->GetAnimator()->StopAnimating(); 722 GetLayer(shelf_)->GetAnimator()->StopAnimating();
731 GetLayer(shelf_->status_area_widget())->GetAnimator()->StopAnimating(); 723 GetLayer(shelf_->status_area_widget())->GetAnimator()->StopAnimating();
732 } 724 }
733 725
734 void ShelfLayoutManager::GetShelfSize(int* width, int* height) { 726 void ShelfLayoutManager::GetShelfSize(int* width, int* height) {
735 *width = *height = 0; 727 *width = *height = 0;
736 gfx::Size status_size( 728 gfx::Size status_size(
737 shelf_->status_area_widget()->GetWindowBoundsInScreen().size()); 729 shelf_->status_area_widget()->GetWindowBoundsInScreen().size());
738 if (IsHorizontalAlignment()) 730 if (IsHorizontalAlignment())
739 *height = GetPreferredShelfSize(); 731 *height = kShelfSize;
740 else 732 else
741 *width = GetPreferredShelfSize(); 733 *width = kShelfSize;
742 } 734 }
743 735
744 void ShelfLayoutManager::AdjustBoundsBasedOnAlignment(int inset, 736 void ShelfLayoutManager::AdjustBoundsBasedOnAlignment(int inset,
745 gfx::Rect* bounds) const { 737 gfx::Rect* bounds) const {
746 bounds->Inset(SelectValueForShelfAlignment( 738 bounds->Inset(SelectValueForShelfAlignment(
747 gfx::Insets(0, 0, inset, 0), 739 gfx::Insets(0, 0, inset, 0),
748 gfx::Insets(0, inset, 0, 0), 740 gfx::Insets(0, inset, 0, 0),
749 gfx::Insets(0, 0, 0, inset), 741 gfx::Insets(0, 0, 0, inset),
750 gfx::Insets(inset, 0, 0, 0))); 742 gfx::Insets(inset, 0, 0, 0)));
751 } 743 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
783 target_bounds->shelf_bounds_in_root = SelectValueForShelfAlignment( 775 target_bounds->shelf_bounds_in_root = SelectValueForShelfAlignment(
784 gfx::Rect(available_bounds.x(), available_bounds.bottom() - shelf_height, 776 gfx::Rect(available_bounds.x(), available_bounds.bottom() - shelf_height,
785 available_bounds.width(), shelf_height), 777 available_bounds.width(), shelf_height),
786 gfx::Rect(available_bounds.x(), available_bounds.y(), 778 gfx::Rect(available_bounds.x(), available_bounds.y(),
787 shelf_width, available_bounds.height()), 779 shelf_width, available_bounds.height()),
788 gfx::Rect(available_bounds.right() - shelf_width, available_bounds.y(), 780 gfx::Rect(available_bounds.right() - shelf_width, available_bounds.y(),
789 shelf_width, available_bounds.height()), 781 shelf_width, available_bounds.height()),
790 gfx::Rect(available_bounds.x(), available_bounds.y(), 782 gfx::Rect(available_bounds.x(), available_bounds.y(),
791 available_bounds.width(), shelf_height)); 783 available_bounds.width(), shelf_height));
792 784
793 int status_inset = std::max(0, GetPreferredShelfSize() - 785 int status_inset = 0;
794 PrimaryAxisValue(status_size.height(), status_size.width())); 786 if (IsHorizontalAlignment())
795 787 status_size.set_height(kShelfSize);
796 if (ash::switches::UseAlternateShelfLayout()) { 788 else
797 status_inset = 0; 789 status_size.set_width(kShelfSize);
798 if (IsHorizontalAlignment())
799 status_size.set_height(kShelfSize);
800 else
801 status_size.set_width(kShelfSize);
802 }
803 790
804 target_bounds->status_bounds_in_shelf = SelectValueForShelfAlignment( 791 target_bounds->status_bounds_in_shelf = SelectValueForShelfAlignment(
805 gfx::Rect(base::i18n::IsRTL() ? 0 : shelf_width - status_size.width(), 792 gfx::Rect(base::i18n::IsRTL() ? 0 : shelf_width - status_size.width(),
806 status_inset, status_size.width(), status_size.height()), 793 status_inset, status_size.width(), status_size.height()),
807 gfx::Rect(shelf_width - (status_size.width() + status_inset), 794 gfx::Rect(shelf_width - (status_size.width() + status_inset),
808 shelf_height - status_size.height(), status_size.width(), 795 shelf_height - status_size.height(), status_size.width(),
809 status_size.height()), 796 status_size.height()),
810 gfx::Rect(status_inset, shelf_height - status_size.height(), 797 gfx::Rect(status_inset, shelf_height - status_size.height(),
811 status_size.width(), status_size.height()), 798 status_size.width(), status_size.height()),
812 gfx::Rect(base::i18n::IsRTL() ? 0 : shelf_width - status_size.width(), 799 gfx::Rect(base::i18n::IsRTL() ? 0 : shelf_width - status_size.width(),
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
872 const gfx::Rect& available_bounds(root_window_->bounds()); 859 const gfx::Rect& available_bounds(root_window_->bounds());
873 int resistance_free_region = 0; 860 int resistance_free_region = 0;
874 861
875 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN && 862 if (gesture_drag_auto_hide_state_ == SHELF_AUTO_HIDE_HIDDEN &&
876 visibility_state() == SHELF_AUTO_HIDE && 863 visibility_state() == SHELF_AUTO_HIDE &&
877 auto_hide_state() != SHELF_AUTO_HIDE_SHOWN) { 864 auto_hide_state() != SHELF_AUTO_HIDE_SHOWN) {
878 // If the shelf was hidden when the drag started (and the state hasn't 865 // If the shelf was hidden when the drag started (and the state hasn't
879 // changed since then, e.g. because the tray-menu was shown because of the 866 // changed since then, e.g. because the tray-menu was shown because of the
880 // drag), then allow the drag some resistance-free region at first to make 867 // drag), then allow the drag some resistance-free region at first to make
881 // sure the shelf sticks with the finger until the shelf is visible. 868 // sure the shelf sticks with the finger until the shelf is visible.
882 resistance_free_region = GetPreferredShelfSize() - kAutoHideSize; 869 resistance_free_region = kShelfSize - kAutoHideSize;
883 } 870 }
884 871
885 bool resist = SelectValueForShelfAlignment( 872 bool resist = SelectValueForShelfAlignment(
886 gesture_drag_amount_ < -resistance_free_region, 873 gesture_drag_amount_ < -resistance_free_region,
887 gesture_drag_amount_ > resistance_free_region, 874 gesture_drag_amount_ > resistance_free_region,
888 gesture_drag_amount_ < -resistance_free_region, 875 gesture_drag_amount_ < -resistance_free_region,
889 gesture_drag_amount_ > resistance_free_region); 876 gesture_drag_amount_ > resistance_free_region);
890 877
891 float translate = 0.f; 878 float translate = 0.f;
892 if (resist) { 879 if (resist) {
(...skipping 10 matching lines...) Expand all
903 if (horizontal) { 890 if (horizontal) {
904 // Move and size the shelf with the gesture. 891 // Move and size the shelf with the gesture.
905 int shelf_height = target_bounds->shelf_bounds_in_root.height() - translate; 892 int shelf_height = target_bounds->shelf_bounds_in_root.height() - translate;
906 shelf_height = std::max(shelf_height, kAutoHideSize); 893 shelf_height = std::max(shelf_height, kAutoHideSize);
907 target_bounds->shelf_bounds_in_root.set_height(shelf_height); 894 target_bounds->shelf_bounds_in_root.set_height(shelf_height);
908 if (GetAlignment() == SHELF_ALIGNMENT_BOTTOM) { 895 if (GetAlignment() == SHELF_ALIGNMENT_BOTTOM) {
909 target_bounds->shelf_bounds_in_root.set_y( 896 target_bounds->shelf_bounds_in_root.set_y(
910 available_bounds.bottom() - shelf_height); 897 available_bounds.bottom() - shelf_height);
911 } 898 }
912 899
913 if (ash::switches::UseAlternateShelfLayout()) { 900 target_bounds->status_bounds_in_shelf.set_y(0);
914 target_bounds->status_bounds_in_shelf.set_y(0);
915 } else {
916 // The statusbar should be in the center of the shelf.
917 gfx::Rect status_y = target_bounds->shelf_bounds_in_root;
918 status_y.set_y(0);
919 status_y.ClampToCenteredSize(
920 target_bounds->status_bounds_in_shelf.size());
921 target_bounds->status_bounds_in_shelf.set_y(status_y.y());
922 }
923 } else { 901 } else {
924 // Move and size the shelf with the gesture. 902 // Move and size the shelf with the gesture.
925 int shelf_width = target_bounds->shelf_bounds_in_root.width(); 903 int shelf_width = target_bounds->shelf_bounds_in_root.width();
926 bool right_aligned = GetAlignment() == SHELF_ALIGNMENT_RIGHT; 904 bool right_aligned = GetAlignment() == SHELF_ALIGNMENT_RIGHT;
927 if (right_aligned) 905 if (right_aligned)
928 shelf_width -= translate; 906 shelf_width -= translate;
929 else 907 else
930 shelf_width += translate; 908 shelf_width += translate;
931 shelf_width = std::max(shelf_width, kAutoHideSize); 909 shelf_width = std::max(shelf_width, kAutoHideSize);
932 target_bounds->shelf_bounds_in_root.set_width(shelf_width); 910 target_bounds->shelf_bounds_in_root.set_width(shelf_width);
933 if (right_aligned) { 911 if (right_aligned) {
934 target_bounds->shelf_bounds_in_root.set_x( 912 target_bounds->shelf_bounds_in_root.set_x(
935 available_bounds.right() - shelf_width); 913 available_bounds.right() - shelf_width);
936 } 914 }
937 915
938 if (ash::switches::UseAlternateShelfLayout()) { 916 if (right_aligned)
939 if (right_aligned) 917 target_bounds->status_bounds_in_shelf.set_x(0);
940 target_bounds->status_bounds_in_shelf.set_x(0); 918 else
941 else 919 target_bounds->status_bounds_in_shelf.set_x(
942 target_bounds->status_bounds_in_shelf.set_x( 920 target_bounds->shelf_bounds_in_root.width() -
943 target_bounds->shelf_bounds_in_root.width() - 921 kShelfSize);
944 kShelfSize);
945 } else {
946 // The statusbar should be in the center of the shelf.
947 gfx::Rect status_x = target_bounds->shelf_bounds_in_root;
948 status_x.set_x(0);
949 status_x.ClampToCenteredSize(
950 target_bounds->status_bounds_in_shelf.size());
951 target_bounds->status_bounds_in_shelf.set_x(status_x.x());
952 }
953 } 922 }
954 } 923 }
955 924
956 void ShelfLayoutManager::UpdateShelfBackground( 925 void ShelfLayoutManager::UpdateShelfBackground(
957 BackgroundAnimatorChangeType type) { 926 BackgroundAnimatorChangeType type) {
958 const ShelfBackgroundType background_type(GetShelfBackgroundType()); 927 const ShelfBackgroundType background_type(GetShelfBackgroundType());
959 shelf_->SetPaintsBackground(background_type, type); 928 shelf_->SetPaintsBackground(background_type, type);
960 FOR_EACH_OBSERVER(ShelfLayoutManagerObserver, observers_, 929 FOR_EACH_OBSERVER(ShelfLayoutManagerObserver, observers_,
961 OnBackgroundUpdated(background_type, type)); 930 OnBackgroundUpdated(background_type, type));
962 } 931 }
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 SHELF_HIDDEN); 1125 SHELF_HIDDEN);
1157 TargetBounds target_bounds; 1126 TargetBounds target_bounds;
1158 CalculateTargetBounds(state_, &target_bounds); 1127 CalculateTargetBounds(state_, &target_bounds);
1159 UpdateBoundsAndOpacity(target_bounds, true, NULL); 1128 UpdateBoundsAndOpacity(target_bounds, true, NULL);
1160 UpdateVisibilityState(); 1129 UpdateVisibilityState();
1161 } 1130 }
1162 } 1131 }
1163 1132
1164 } // namespace internal 1133 } // namespace internal
1165 } // namespace ash 1134 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/shelf_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698