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

Side by Side Diff: ash/system/chromeos/tray_display.h

Issue 2217713002: Remove the system menu display settings row (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge Created 4 years, 3 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 (c) 2012 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 #ifndef ASH_SYSTEM_CHROMEOS_TRAY_DISPLAY_H_
6 #define ASH_SYSTEM_CHROMEOS_TRAY_DISPLAY_H_
7
8 #include <stdint.h>
9
10 #include <map>
11
12 #include "ash/ash_export.h"
13 #include "ash/common/system/tray/system_tray_item.h"
14 #include "ash/common/wm_display_observer.h"
15 #include "base/macros.h"
16 #include "base/strings/string16.h"
17 #include "ui/display/manager/managed_display_info.h"
18 #include "ui/views/view.h"
19
20 namespace ash {
21
22 class DisplayView;
23
24 class ASH_EXPORT TrayDisplay : public SystemTrayItem, public WmDisplayObserver {
25 public:
26 explicit TrayDisplay(SystemTray* system_tray);
27 ~TrayDisplay() override;
28
29 // Overridden from WmDisplayObserver:
30 void OnDisplayConfigurationChanged() override;
31
32 private:
33 friend class TrayDisplayTest;
34
35 using DisplayInfoMap = std::map<int64_t, display::ManagedDisplayInfo>;
36
37 static const char kNotificationId[];
38
39 // Scans the current display info and updates |display_info_|. Sets the
40 // previous data to |old_info| if it's not NULL.
41 void UpdateDisplayInfo(DisplayInfoMap* old_info);
42
43 // Compares the current display settings with |old_info| and determine what
44 // message should be shown for notification. Returns true if there's a
45 // meaningful change. Note that it's possible to return true and set
46 // |message_out| to empty, which means the notification should be removed. It
47 // also sets |additional_message_out| which appears in the notification with
48 // the |message_out|.
49 bool GetDisplayMessageForNotification(const DisplayInfoMap& old_info,
50 base::string16* message_out,
51 base::string16* additional_message_out);
52
53 // Creates or updates the display notification.
54 void CreateOrUpdateNotification(const base::string16& message,
55 const base::string16& additional_message);
56
57 // Overridden from SystemTrayItem.
58 views::View* CreateDefaultView(LoginStatus status) override;
59 void DestroyDefaultView() override;
60
61 // Test accessors.
62 base::string16 GetDefaultViewMessage() const;
63 bool GetAccessibleStateForTesting(ui::AXViewState* state);
64 const views::View* default_view() const {
65 return reinterpret_cast<views::View*>(default_);
66 }
67
68 DisplayView* default_;
69 DisplayInfoMap display_info_;
70
71 DISALLOW_COPY_AND_ASSIGN(TrayDisplay);
72 };
73
74 } // namespace ash
75
76 #endif // ASH_SYSTEM_CHROMEOS_TRAY_DISPLAY_H_
OLDNEW
« no previous file with comments | « ash/system/chromeos/screen_layout_observer_unittest.cc ('k') | ash/system/chromeos/tray_display_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698