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

Side by Side Diff: ash/shell.cc

Issue 9808026: Layout panels on top of their launcher icons (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Patch for review Created 8 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 | 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 #include "ash/shell.h" 5 #include "ash/shell.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/app_list/app_list.h" 9 #include "ash/app_list/app_list.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 SetChildWindowVisibilityChangesAnimated(default_container); 152 SetChildWindowVisibilityChangesAnimated(default_container);
153 153
154 aura::Window* always_on_top_container = CreateContainer( 154 aura::Window* always_on_top_container = CreateContainer(
155 internal::kShellWindowId_AlwaysOnTopContainer, 155 internal::kShellWindowId_AlwaysOnTopContainer,
156 "AlwaysOnTopContainer", 156 "AlwaysOnTopContainer",
157 non_lock_screen_containers); 157 non_lock_screen_containers);
158 always_on_top_container->SetEventFilter( 158 always_on_top_container->SetEventFilter(
159 new ToplevelWindowEventFilter(always_on_top_container)); 159 new ToplevelWindowEventFilter(always_on_top_container));
160 SetChildWindowVisibilityChangesAnimated(always_on_top_container); 160 SetChildWindowVisibilityChangesAnimated(always_on_top_container);
161 161
162 aura::Window* panel_container = CreateContainer( 162 CreateContainer(internal::kShellWindowId_PanelContainer,
163 internal::kShellWindowId_PanelContainer, 163 "PanelContainer",
164 "PanelContainer", 164 non_lock_screen_containers);
165 non_lock_screen_containers);
166 if (CommandLine::ForCurrentProcess()->
167 HasSwitch(switches::kAuraPanelManager)) {
168 internal::PanelLayoutManager* layout_manager =
169 new internal::PanelLayoutManager(panel_container);
170 panel_container->SetEventFilter(
171 new internal::PanelWindowEventFilter(panel_container, layout_manager));
172 panel_container->SetLayoutManager(layout_manager);
173 }
174 165
175 CreateContainer(internal::kShellWindowId_AppListContainer, 166 CreateContainer(internal::kShellWindowId_AppListContainer,
176 "AppListContainer", 167 "AppListContainer",
177 non_lock_screen_containers); 168 non_lock_screen_containers);
178 169
179 CreateContainer(internal::kShellWindowId_LauncherContainer, 170 CreateContainer(internal::kShellWindowId_LauncherContainer,
180 "LauncherContainer", 171 "LauncherContainer",
181 non_lock_screen_containers); 172 non_lock_screen_containers);
182 173
183 aura::Window* modal_container = CreateContainer( 174 aura::Window* modal_container = CreateContainer(
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 747
757 tooltip_controller_.reset(new internal::TooltipController); 748 tooltip_controller_.reset(new internal::TooltipController);
758 AddRootWindowEventFilter(tooltip_controller_.get()); 749 AddRootWindowEventFilter(tooltip_controller_.get());
759 750
760 drag_drop_controller_.reset(new internal::DragDropController); 751 drag_drop_controller_.reset(new internal::DragDropController);
761 power_button_controller_.reset(new PowerButtonController); 752 power_button_controller_.reset(new PowerButtonController);
762 video_detector_.reset(new VideoDetector); 753 video_detector_.reset(new VideoDetector);
763 window_cycle_controller_.reset(new WindowCycleController); 754 window_cycle_controller_.reset(new WindowCycleController);
764 monitor_controller_.reset(new internal::MonitorController); 755 monitor_controller_.reset(new internal::MonitorController);
765 } 756 }
766 757
sky 2012/04/03 20:39:37 Remove this line.
758
767 aura::Window* Shell::GetContainer(int container_id) { 759 aura::Window* Shell::GetContainer(int container_id) {
768 return const_cast<aura::Window*>( 760 return const_cast<aura::Window*>(
769 const_cast<const Shell*>(this)->GetContainer(container_id)); 761 const_cast<const Shell*>(this)->GetContainer(container_id));
770 } 762 }
771 763
772 const aura::Window* Shell::GetContainer(int container_id) const { 764 const aura::Window* Shell::GetContainer(int container_id) const {
773 return GetRootWindow()->GetChildById(container_id); 765 return GetRootWindow()->GetChildById(container_id);
774 } 766 }
775 767
776 void Shell::AddRootWindowEventFilter(aura::EventFilter* filter) { 768 void Shell::AddRootWindowEventFilter(aura::EventFilter* filter) {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 void Shell::CreateLauncher() { 838 void Shell::CreateLauncher() {
847 if (launcher_.get()) 839 if (launcher_.get())
848 return; 840 return;
849 841
850 aura::Window* default_container = 842 aura::Window* default_container =
851 GetContainer(internal::kShellWindowId_DefaultContainer); 843 GetContainer(internal::kShellWindowId_DefaultContainer);
852 launcher_.reset(new Launcher(default_container)); 844 launcher_.reset(new Launcher(default_container));
853 845
854 launcher_->SetFocusCycler(focus_cycler_.get()); 846 launcher_->SetFocusCycler(focus_cycler_.get());
855 shelf_->SetLauncher(launcher_.get()); 847 shelf_->SetLauncher(launcher_.get());
848 if (panel_layout_manager_ != NULL)
849 panel_layout_manager_->SetLauncher(launcher_.get());
856 850
857 launcher_->widget()->Show(); 851 launcher_->widget()->Show();
858 } 852 }
859 853
860 void Shell::AddShellObserver(ShellObserver* observer) { 854 void Shell::AddShellObserver(ShellObserver* observer) {
861 observers_.AddObserver(observer); 855 observers_.AddObserver(observer);
862 } 856 }
863 857
864 void Shell::RemoveShellObserver(ShellObserver* observer) { 858 void Shell::RemoveShellObserver(ShellObserver* observer) {
865 observers_.RemoveObserver(observer); 859 observers_.RemoveObserver(observer);
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
913 always_on_top_container->SetLayoutManager( 907 always_on_top_container->SetLayoutManager(
914 new internal::AlwaysOnTopLayoutManager( 908 new internal::AlwaysOnTopLayoutManager(
915 always_on_top_container->GetRootWindow())); 909 always_on_top_container->GetRootWindow()));
916 910
917 // Create desktop background widget. 911 // Create desktop background widget.
918 // TODO(bshe): We should be able to use OnDesktopBackgroundChanged function 912 // TODO(bshe): We should be able to use OnDesktopBackgroundChanged function
919 // here after issue 117244 got fixed. 913 // here after issue 117244 got fixed.
920 int index = user_wallpaper_delegate_->GetUserWallpaperIndex(); 914 int index = user_wallpaper_delegate_->GetUserWallpaperIndex();
921 desktop_background_controller_->SetDesktopBackgroundImageMode( 915 desktop_background_controller_->SetDesktopBackgroundImageMode(
922 GetWallpaper(index), GetWallpaperInfo(index).layout); 916 GetWallpaper(index), GetWallpaperInfo(index).layout);
917
918 // Create Panel layout manager
919 if (CommandLine::ForCurrentProcess()->
920 HasSwitch(switches::kAuraPanelManager)) {
921 aura::Window* panel_container = GetContainer(
922 internal::kShellWindowId_PanelContainer);
923 panel_layout_manager_ =
924 new internal::PanelLayoutManager(panel_container);
925 panel_container->SetEventFilter(
926 new internal::PanelWindowEventFilter(
927 panel_container, panel_layout_manager_));
928 panel_container->SetLayoutManager(panel_layout_manager_);
929 }
923 } 930 }
924 931
925 void Shell::DisableWorkspaceGridLayout() { 932 void Shell::DisableWorkspaceGridLayout() {
926 if (workspace_controller_.get()) 933 if (workspace_controller_.get())
927 workspace_controller_->workspace_manager()->set_grid_size(0); 934 workspace_controller_->workspace_manager()->set_grid_size(0);
928 } 935 }
929 936
930 } // namespace ash 937 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698