Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / display / types / display_snapshot.h
blobc59ecded646827b2c5d7e396bb723a72b4cf4d0b
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
3 // found in the LICENSE file.
5 #ifndef UI_DISPLAY_TYPES_DISPLAY_SNAPSHOT_H_
6 #define UI_DISPLAY_TYPES_DISPLAY_SNAPSHOT_H_
8 #include <vector>
10 #include "ui/display/types/display_constants.h"
11 #include "ui/display/types/display_mode.h"
12 #include "ui/gfx/geometry/point.h"
13 #include "ui/gfx/geometry/size.h"
15 namespace ui {
17 // This class represents the state of a display at one point in time. Platforms
18 // will extend this class in order to add platform specific configuration and
19 // identifiers required to configure this display.
20 class DISPLAY_TYPES_EXPORT DisplaySnapshot {
21 public:
22 DisplaySnapshot(int64_t display_id,
23 const gfx::Point& origin,
24 const gfx::Size& physical_size,
25 DisplayConnectionType type,
26 bool is_aspect_preserving_scaling,
27 bool has_overscan,
28 std::string display_name,
29 const std::vector<const DisplayMode*>& modes,
30 const DisplayMode* current_mode,
31 const DisplayMode* native_mode);
32 virtual ~DisplaySnapshot();
34 const gfx::Point& origin() const { return origin_; }
35 const gfx::Size& physical_size() const { return physical_size_; }
36 ui::DisplayConnectionType type() const { return type_; }
37 bool is_aspect_preserving_scaling() const {
38 return is_aspect_preserving_scaling_;
40 bool has_overscan() const { return has_overscan_; }
41 std::string display_name() const { return display_name_; }
43 int64_t display_id() const { return display_id_; }
45 const DisplayMode* current_mode() const { return current_mode_; }
46 const DisplayMode* native_mode() const { return native_mode_; }
47 int64_t product_id() const { return product_id_; }
49 const std::vector<const DisplayMode*>& modes() const { return modes_; }
51 void set_current_mode(const DisplayMode* mode) { current_mode_ = mode; }
52 void set_origin(const gfx::Point& origin) { origin_ = origin; }
53 void add_mode(const DisplayMode* mode) { modes_.push_back(mode); }
55 // Returns a textual representation of this display state.
56 virtual std::string ToString() const = 0;
58 // Used when no product id known.
59 static const int64_t kInvalidProductID = -1;
61 protected:
62 // Display id for this output.
63 int64_t display_id_;
65 // Display's origin on the framebuffer.
66 gfx::Point origin_;
68 gfx::Size physical_size_;
70 DisplayConnectionType type_;
72 bool is_aspect_preserving_scaling_;
74 bool has_overscan_;
76 std::string display_name_;
78 std::vector<const DisplayMode*> modes_; // Not owned.
80 // Mode currently being used by the output.
81 const DisplayMode* current_mode_;
83 // "Best" mode supported by the output.
84 const DisplayMode* native_mode_;
86 // Combination of manufacturer and product code.
87 int64_t product_id_;
89 DISALLOW_COPY_AND_ASSIGN(DisplaySnapshot);
92 } // namespace ui
94 #endif // UI_DISPLAY_TYPES_DISPLAY_SNAPSHOT_H_