OLD | NEW |
---|---|
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/desktop_background/desktop_background_controller.h" | 5 #include "ash/desktop_background/desktop_background_controller.h" |
6 | 6 |
7 #include "ash/desktop_background/desktop_background_view.h" | 7 #include "ash/desktop_background/desktop_background_view.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/shell_factory.h" | 9 #include "ash/shell_factory.h" |
10 #include "ash/shell_window_ids.h" | 10 #include "ash/shell_window_ids.h" |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
49 } | 49 } |
50 | 50 |
51 void Cancel() { | 51 void Cancel() { |
52 cancel_flag_.Set(); | 52 cancel_flag_.Set(); |
53 } | 53 } |
54 | 54 |
55 const SkBitmap* wallpaper() { | 55 const SkBitmap* wallpaper() { |
56 return wallpaper_; | 56 return wallpaper_; |
57 } | 57 } |
58 | 58 |
59 ImageLayout image_layout() { | 59 WallpaperLayout wallpaper_layout() { |
60 return layout_; | 60 return layout_; |
61 } | 61 } |
62 | 62 |
63 int index() { | 63 int index() { |
64 return index_; | 64 return index_; |
65 } | 65 } |
66 | 66 |
67 private: | 67 private: |
68 friend class base::RefCountedThreadSafe< | 68 friend class base::RefCountedThreadSafe< |
69 DesktopBackgroundController::WallpaperOperation>; | 69 DesktopBackgroundController::WallpaperOperation>; |
70 | 70 |
71 base::CancellationFlag cancel_flag_; | 71 base::CancellationFlag cancel_flag_; |
72 | 72 |
73 const SkBitmap* wallpaper_; | 73 const SkBitmap* wallpaper_; |
74 ImageLayout layout_; | 74 WallpaperLayout layout_; |
75 int index_; | 75 int index_; |
76 | 76 |
77 DISALLOW_COPY_AND_ASSIGN(WallpaperOperation); | 77 DISALLOW_COPY_AND_ASSIGN(WallpaperOperation); |
78 }; | 78 }; |
79 | 79 |
80 DesktopBackgroundController::DesktopBackgroundController() | 80 DesktopBackgroundController::DesktopBackgroundController() |
81 : desktop_background_mode_(BACKGROUND_IMAGE), | 81 : desktop_background_mode_(BACKGROUND_IMAGE), |
82 previous_index_(-1), | 82 previous_index_(-1), |
83 weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { | 83 weak_ptr_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
84 } | 84 } |
(...skipping 11 matching lines...) Expand all Loading... | |
96 wallpaper_op_ = new WallpaperOperation(index); | 96 wallpaper_op_ = new WallpaperOperation(index); |
97 base::WorkerPool::PostTaskAndReply( | 97 base::WorkerPool::PostTaskAndReply( |
98 FROM_HERE, | 98 FROM_HERE, |
99 base::Bind(&WallpaperOperation::Run, wallpaper_op_), | 99 base::Bind(&WallpaperOperation::Run, wallpaper_op_), |
100 base::Bind(&DesktopBackgroundController::OnWallpaperLoadCompleted, | 100 base::Bind(&DesktopBackgroundController::OnWallpaperLoadCompleted, |
101 weak_ptr_factory_.GetWeakPtr(), | 101 weak_ptr_factory_.GetWeakPtr(), |
102 wallpaper_op_), | 102 wallpaper_op_), |
103 true /* task_is_slow */); | 103 true /* task_is_slow */); |
104 } | 104 } |
105 | 105 |
106 void DesktopBackgroundController::SetCustomWallpaper( | |
107 const SkBitmap& wallpaper, WallpaperLayout layout) { | |
flackr
2012/05/04 19:06:17
I believe we want 1 argument per line in function
bshe
2012/05/08 22:22:18
Done.
| |
108 internal::RootWindowLayoutManager* root_window_layout = | |
109 Shell::GetInstance()->root_window_layout(); | |
110 root_window_layout->SetBackgroundLayer(NULL); | |
111 internal::CreateDesktopBackground(wallpaper, layout); | |
112 desktop_background_mode_ = BACKGROUND_IMAGE; | |
113 } | |
114 | |
106 void DesktopBackgroundController::CancelPendingWallpaperOperation() { | 115 void DesktopBackgroundController::CancelPendingWallpaperOperation() { |
107 // Set canceled flag of previous request to skip unneeded loading. | 116 // Set canceled flag of previous request to skip unneeded loading. |
108 if (wallpaper_op_.get()) | 117 if (wallpaper_op_.get()) |
109 wallpaper_op_->Cancel(); | 118 wallpaper_op_->Cancel(); |
110 | 119 |
111 // Cancel reply callback for previous request. | 120 // Cancel reply callback for previous request. |
112 weak_ptr_factory_.InvalidateWeakPtrs(); | 121 weak_ptr_factory_.InvalidateWeakPtrs(); |
113 } | 122 } |
114 | 123 |
115 void DesktopBackgroundController::SetLoggedInUserWallpaper() { | 124 void DesktopBackgroundController::SetLoggedInUserWallpaper() { |
(...skipping 22 matching lines...) Expand all Loading... | |
138 shell->root_window_layout()->SetBackgroundWidget(NULL); | 147 shell->root_window_layout()->SetBackgroundWidget(NULL); |
139 desktop_background_mode_ = BACKGROUND_SOLID_COLOR; | 148 desktop_background_mode_ = BACKGROUND_SOLID_COLOR; |
140 } | 149 } |
141 | 150 |
142 void DesktopBackgroundController::SetDesktopBackgroundImageMode( | 151 void DesktopBackgroundController::SetDesktopBackgroundImageMode( |
143 scoped_refptr<WallpaperOperation> wo) { | 152 scoped_refptr<WallpaperOperation> wo) { |
144 internal::RootWindowLayoutManager* root_window_layout = | 153 internal::RootWindowLayoutManager* root_window_layout = |
145 Shell::GetInstance()->root_window_layout(); | 154 Shell::GetInstance()->root_window_layout(); |
146 root_window_layout->SetBackgroundLayer(NULL); | 155 root_window_layout->SetBackgroundLayer(NULL); |
147 if(wo->wallpaper()) { | 156 if(wo->wallpaper()) { |
148 internal::CreateDesktopBackground(*wo->wallpaper(), wo->image_layout()); | 157 internal::CreateDesktopBackground(*wo->wallpaper(), |
Ben Goodger (Google)
2012/05/07 15:35:08
seems unnecessary?
bshe
2012/05/09 18:51:54
Sorry, just to clarify, do you mean two parameters
Ben Goodger (Google)
2012/05/09 19:53:13
The linewrapping is unnecessary.
| |
158 wo->wallpaper_layout()); | |
149 desktop_background_mode_ = BACKGROUND_IMAGE; | 159 desktop_background_mode_ = BACKGROUND_IMAGE; |
150 } | 160 } |
151 } | 161 } |
152 | 162 |
153 void DesktopBackgroundController::OnWallpaperLoadCompleted( | 163 void DesktopBackgroundController::OnWallpaperLoadCompleted( |
154 scoped_refptr<WallpaperOperation> wo) { | 164 scoped_refptr<WallpaperOperation> wo) { |
155 SetDesktopBackgroundImageMode(wo); | 165 SetDesktopBackgroundImageMode(wo); |
156 previous_index_ = wo->index(); | 166 previous_index_ = wo->index(); |
157 | 167 |
158 DCHECK(wo.get() == wallpaper_op_.get()); | 168 DCHECK(wo.get() == wallpaper_op_.get()); |
159 wallpaper_op_ = NULL; | 169 wallpaper_op_ = NULL; |
160 } | 170 } |
161 | 171 |
162 } // namespace ash | 172 } // namespace ash |
OLD | NEW |