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

Side by Side Diff: ash/common/system/tray/tray_popup_header_button.cc

Issue 2734653002: chromeos: Move files in //ash/common to //ash (Closed)
Patch Set: fix a11y tests, fix docs Created 3 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
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ash/common/system/tray/tray_popup_header_button.h"
6
7 #include "ash/common/ash_constants.h"
8 #include "ash/common/system/tray/tray_constants.h"
9 #include "ui/base/resource/resource_bundle.h"
10 #include "ui/views/background.h"
11 #include "ui/views/painter.h"
12
13 namespace ash {
14
15 namespace {
16
17 const gfx::ImageSkia* GetImageForResourceId(int resource_id) {
18 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
19 return bundle.GetImageNamed(resource_id).ToImageSkia();
20 }
21
22 } // namespace
23
24 // static
25 const char TrayPopupHeaderButton::kViewClassName[] =
26 "tray/TrayPopupHeaderButton";
27
28 TrayPopupHeaderButton::TrayPopupHeaderButton(views::ButtonListener* listener,
29 const gfx::ImageSkia& icon,
30 int accessible_name_id)
31 : views::ToggleImageButton(listener) {
32 Initialize(icon, accessible_name_id);
33 }
34
35 TrayPopupHeaderButton::TrayPopupHeaderButton(views::ButtonListener* listener,
36 int enabled_resource_id,
37 int disabled_resource_id,
38 int enabled_resource_id_hover,
39 int disabled_resource_id_hover,
40 int accessible_name_id)
41 : views::ToggleImageButton(listener) {
42 Initialize(*GetImageForResourceId(enabled_resource_id), accessible_name_id);
43 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
44 SetToggledImage(views::Button::STATE_NORMAL,
45 bundle.GetImageNamed(disabled_resource_id).ToImageSkia());
46 SetImage(views::Button::STATE_HOVERED,
47 *bundle.GetImageNamed(enabled_resource_id_hover).ToImageSkia());
48 SetToggledImage(
49 views::Button::STATE_HOVERED,
50 bundle.GetImageNamed(disabled_resource_id_hover).ToImageSkia());
51 }
52
53 TrayPopupHeaderButton::~TrayPopupHeaderButton() {}
54
55 const char* TrayPopupHeaderButton::GetClassName() const {
56 return kViewClassName;
57 }
58
59 gfx::Size TrayPopupHeaderButton::GetPreferredSize() const {
60 return gfx::Size(kTrayPopupItemMinHeight, kTrayPopupItemMinHeight);
61 }
62
63 void TrayPopupHeaderButton::StateChanged(ButtonState old_state) {
64 if (state() == STATE_HOVERED || state() == STATE_PRESSED) {
65 set_background(views::Background::CreateSolidBackground(
66 kTrayPopupHoverBackgroundColor));
67 } else {
68 set_background(nullptr);
69 }
70 SchedulePaint();
71 }
72
73 void TrayPopupHeaderButton::Initialize(const gfx::ImageSkia& icon,
74 int accessible_name_id) {
75 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
76 SetImage(views::Button::STATE_NORMAL, icon);
77 SetImageAlignment(views::ImageButton::ALIGN_CENTER,
78 views::ImageButton::ALIGN_MIDDLE);
79 SetAccessibleName(bundle.GetLocalizedString(accessible_name_id));
80 SetFocusForPlatform();
81
82 SetFocusPainter(views::Painter::CreateSolidFocusPainter(
83 kFocusBorderColor, gfx::Insets(1, 2, 2, 3)));
84 }
85
86 } // namespace ash
OLDNEW
« no previous file with comments | « ash/common/system/tray/tray_popup_header_button.h ('k') | ash/common/system/tray/tray_popup_ink_drop_style.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698