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_CHROMEOS_DISPLAY_SNAPSHOT_H_
6 #define UI_DISPLAY_TYPES_CHROMEOS_DISPLAY_SNAPSHOT_H_
10 #include "ui/display/types/chromeos/display_mode.h"
11 #include "ui/display/types/display_constants.h"
12 #include "ui/gfx/geometry/point.h"
13 #include "ui/gfx/geometry/size.h"
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 {
22 DisplaySnapshot(int64_t display_id,
23 bool has_proper_display_id,
24 const gfx::Point& origin,
25 const gfx::Size& physical_size,
26 DisplayConnectionType type,
27 bool is_aspect_preserving_scaling,
29 std::string display_name,
30 const std::vector<const DisplayMode*>& modes,
31 const DisplayMode* current_mode,
32 const DisplayMode* native_mode);
33 virtual ~DisplaySnapshot();
35 const gfx::Point& origin() const { return origin_; }
36 const gfx::Size& physical_size() const { return physical_size_; }
37 ui::DisplayConnectionType type() const { return type_; }
38 bool is_aspect_preserving_scaling() const {
39 return is_aspect_preserving_scaling_;
41 bool has_overscan() const { return has_overscan_; }
42 std::string display_name() const { return display_name_; }
44 int64_t display_id() const { return display_id_; }
45 bool has_proper_display_id() const { return has_proper_display_id_; }
47 const DisplayMode* current_mode() const { return current_mode_; }
48 const DisplayMode* native_mode() const { return native_mode_; }
50 const std::vector<const DisplayMode*>& modes() const { return modes_; }
52 void set_current_mode(const DisplayMode* mode) { current_mode_ = mode; }
53 void set_origin(const gfx::Point& origin) { origin_ = origin; }
54 void add_mode(const DisplayMode* mode) { modes_.push_back(mode); }
56 // Returns a textual representation of this display state.
57 virtual std::string ToString() const = 0;
60 // Display id for this output.
62 bool has_proper_display_id_;
64 // Display's origin on the framebuffer.
67 gfx::Size physical_size_;
69 DisplayConnectionType type_;
71 bool is_aspect_preserving_scaling_;
75 std::string display_name_;
77 std::vector<const DisplayMode*> modes_; // Not owned.
79 // Mode currently being used by the output.
80 const DisplayMode* current_mode_;
82 // "Best" mode supported by the output.
83 const DisplayMode* native_mode_;
85 DISALLOW_COPY_AND_ASSIGN(DisplaySnapshot);
90 #endif // UI_DISPLAY_TYPES_CHROMEOS_DISPLAY_SNAPSHOT_H_