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.
4
5#ifndef UI_DISPLAY_TYPES_DISPLAY_MODE_H_
6#define UI_DISPLAY_TYPES_DISPLAY_MODE_H_
7
8#include <string>
9
10#include "base/macros.h"
11#include "ui/display/types/display_types_export.h"
12#include "ui/gfx/geometry/size.h"
13
14namespace ui {
15
16// This class represents the basic information for a native mode. Platforms will
17// extend this class to add platform specific information about the mode.
18class DISPLAY_TYPES_EXPORT DisplayMode {
19 public:
20  DisplayMode(const gfx::Size& size, bool interlaced, float refresh_rate);
21  virtual ~DisplayMode();
22
23  const gfx::Size& size() const { return size_; }
24  bool is_interlaced() const { return is_interlaced_; }
25  float refresh_rate() const { return refresh_rate_; }
26
27  virtual std::string ToString() const;
28
29 private:
30  gfx::Size size_;
31  bool is_interlaced_;
32  float refresh_rate_;
33
34  DISALLOW_COPY_AND_ASSIGN(DisplayMode);
35};
36
37}  // namespace ui
38
39#endif  // UI_DISPLAY_TYPES_DISPLAY_MODE_H_
40