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

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

Issue 2898743002: Draggable peeking/fullscreen launcher with transparent background. (Closed)
Patch Set: Removed header include in shell.h that was causing gn check failure. Created 3 years, 6 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
« no previous file with comments | « ash/shelf/app_list_button.h ('k') | ash/shelf/shelf_layout_manager.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/app_list_button.h" 5 #include "ash/shelf/app_list_button.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "ash/public/cpp/shelf_types.h" 10 #include "ash/public/cpp/shelf_types.h"
(...skipping 26 matching lines...) Expand all
37 Shelf* shelf) 37 Shelf* shelf)
38 : views::ImageButton(nullptr), 38 : views::ImageButton(nullptr),
39 is_showing_app_list_(false), 39 is_showing_app_list_(false),
40 background_color_(kShelfDefaultBaseColor), 40 background_color_(kShelfDefaultBaseColor),
41 listener_(listener), 41 listener_(listener),
42 shelf_view_(shelf_view), 42 shelf_view_(shelf_view),
43 shelf_(shelf) { 43 shelf_(shelf) {
44 DCHECK(listener_); 44 DCHECK(listener_);
45 DCHECK(shelf_view_); 45 DCHECK(shelf_view_);
46 DCHECK(shelf_); 46 DCHECK(shelf_);
47 47 Shell::Get()->AddShellObserver(this);
48 SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER); 48 SetInkDropMode(InkDropMode::ON_NO_GESTURE_HANDLER);
49 set_ink_drop_base_color(kShelfInkDropBaseColor); 49 set_ink_drop_base_color(kShelfInkDropBaseColor);
50 set_ink_drop_visible_opacity(kShelfInkDropVisibleOpacity); 50 set_ink_drop_visible_opacity(kShelfInkDropVisibleOpacity);
51 SetAccessibleName( 51 SetAccessibleName(
52 l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE)); 52 l10n_util::GetStringUTF16(IDS_ASH_SHELF_APP_LIST_LAUNCHER_TITLE));
53 SetSize(gfx::Size(kShelfSize, kShelfSize)); 53 SetSize(gfx::Size(kShelfSize, kShelfSize));
54 SetFocusPainter(TrayPopupUtils::CreateFocusPainter()); 54 SetFocusPainter(TrayPopupUtils::CreateFocusPainter());
55 set_notify_action(CustomButton::NOTIFY_ON_PRESS); 55 set_notify_action(CustomButton::NOTIFY_ON_PRESS);
56 } 56 }
57 57
58 AppListButton::~AppListButton() {} 58 AppListButton::~AppListButton() {
59 Shell::Get()->RemoveShellObserver(this);
60 }
59 61
60 void AppListButton::OnAppListShown() { 62 void AppListButton::OnAppListShown() {
61 AnimateInkDrop(views::InkDropState::ACTIVATED, nullptr); 63 AnimateInkDrop(views::InkDropState::ACTIVATED, nullptr);
62 is_showing_app_list_ = true; 64 is_showing_app_list_ = true;
63 shelf_->UpdateAutoHideState(); 65 shelf_->UpdateAutoHideState();
64 } 66 }
65 67
66 void AppListButton::OnAppListDismissed() { 68 void AppListButton::OnAppListDismissed() {
67 AnimateInkDrop(views::InkDropState::DEACTIVATED, nullptr); 69 AnimateInkDrop(views::InkDropState::DEACTIVATED, nullptr);
68 is_showing_app_list_ = false; 70 is_showing_app_list_ = false;
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 alignment == SHELF_ALIGNMENT_BOTTOM_LOCKED) { 234 alignment == SHELF_ALIGNMENT_BOTTOM_LOCKED) {
233 return gfx::Point(x_mid, x_mid); 235 return gfx::Point(x_mid, x_mid);
234 } else if (alignment == SHELF_ALIGNMENT_RIGHT) { 236 } else if (alignment == SHELF_ALIGNMENT_RIGHT) {
235 return gfx::Point(y_mid, y_mid); 237 return gfx::Point(y_mid, y_mid);
236 } else { 238 } else {
237 DCHECK_EQ(alignment, SHELF_ALIGNMENT_LEFT); 239 DCHECK_EQ(alignment, SHELF_ALIGNMENT_LEFT);
238 return gfx::Point(width() - y_mid, y_mid); 240 return gfx::Point(width() - y_mid, y_mid);
239 } 241 }
240 } 242 }
241 243
244 void AppListButton::OnAppListVisibilityChanged(bool shown,
245 aura::Window* root_window) {
246 if (shelf_ != Shelf::ForWindow(root_window))
247 return;
248
249 if (shown)
250 OnAppListShown();
251 else
252 OnAppListDismissed();
253 }
254
242 } // namespace ash 255 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/app_list_button.h ('k') | ash/shelf/shelf_layout_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698