summaryrefslogtreecommitdiffstats
path: root/ui/gfx/display.h
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-12 14:43:01 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-12 14:43:01 +0000
commit7da9c4cf0e9f949dd1f2a3322118344c5d7369c7 (patch)
treeec91a8b4f8a211bc557a9bb28b61c17f90749d02 /ui/gfx/display.h
parentc5ba8a93317a8363bcaf4b17cab96a296782803c (diff)
downloadchromium_src-7da9c4cf0e9f949dd1f2a3322118344c5d7369c7.zip
chromium_src-7da9c4cf0e9f949dd1f2a3322118344c5d7369c7.tar.gz
chromium_src-7da9c4cf0e9f949dd1f2a3322118344c5d7369c7.tar.bz2
Rename gfx::Monitor to gfx::Display
BUG=130828 R=oshima@chromium.org TBR=sky@chromium.org Review URL: https://chromiumcodereview.appspot.com/10540091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@141659 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/display.h')
-rw-r--r--ui/gfx/display.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/ui/gfx/display.h b/ui/gfx/display.h
new file mode 100644
index 0000000..13aaa8f
--- /dev/null
+++ b/ui/gfx/display.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_GFX_DISPLAY_H_
+#define UI_GFX_DISPLAY_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "ui/base/ui_export.h"
+#include "ui/gfx/rect.h"
+
+namespace gfx {
+
+// Note: The screen and display currently uses pixel coordinate
+// system. For platforms that support DIP (density independent pixel),
+// |bounds()| and |work_area| will return values in DIP coordinate
+// system, not in backing pixels.
+class UI_EXPORT Display {
+ public:
+ // Returns the default value for the device scale factor, which is
+ // given by "--default-device-scale-factor".
+ static float GetDefaultDeviceScaleFactor();
+
+ // Creates a display with invalid id(-1) as default.
+ Display();
+ explicit Display(int id);
+ Display(int id, const Rect& bounds);
+ ~Display();
+
+ // Sets/Gets unique identifier associated with the display.
+ int id() const { return id_; }
+ void set_id(int id) { id_ = id; }
+
+ // Gets/Sets the display's bounds in gfx::Screen's coordinates.
+ // -1 means invalid display and it doesn't not exit.
+ const Rect& bounds() const { return bounds_; }
+ void set_bounds(const Rect& bounds) { bounds_ = bounds; }
+
+ // Gets/Sets the display's work area in gfx::Screen's coordinates.
+ const Rect& work_area() const { return work_area_; }
+ void set_work_area(const Rect& work_area) { work_area_ = work_area; }
+
+ // Output device's pixel scale factor. This specifies how much the
+ // UI should be scaled when the actual output has more pixels than
+ // standard displays (which is around 100~120dpi.) The potential return
+ // values depend on each platforms.
+ float device_scale_factor() const { return device_scale_factor_; }
+ void set_device_scale_factor(float scale) { device_scale_factor_ = scale; }
+
+ // Utility functions that just return the size of display and
+ // work area.
+ const Size& size() const { return bounds_.size(); }
+ const Size& work_area_size() const { return work_area_.size(); }
+
+ // Returns the work area insets.
+ Insets GetWorkAreaInsets() const;
+
+ // Sets the device scale factor and display bounds in pixel. This
+ // updates the work are using the same insets between old bounds and
+ // work area.
+ void SetScaleAndBounds(float device_scale_factor,
+ const gfx::Rect& bounds_in_pixel);
+
+ // Sets the display's size. This updates the work area using the same insets
+ // between old bounds and work area.
+ void SetSize(const gfx::Size& size_in_pixel);
+
+ // Computes and updates the display's work are using
+ // |work_area_insets| and the bounds.
+ void UpdateWorkAreaFromInsets(const gfx::Insets& work_area_insets);
+
+ // Returns the display's size in pixel coordinates.
+ gfx::Size GetSizeInPixel() const;
+
+#if defined(USE_AURA)
+ // TODO(oshima): |bounds()| on ash is not screen's coordinate and
+ // this is an workaround for this. This will be removed when ash
+ // has true multi display support. crbug.com/119268.
+ // Returns the display's bounds in pixel coordinates.
+ const Rect& bounds_in_pixel() const { return bounds_in_pixel_; }
+#endif
+
+ // Returns a string representation of the display;
+ std::string ToString() const;
+
+ private:
+ int id_;
+ Rect bounds_;
+ Rect work_area_;
+#if defined(USE_AURA)
+ Rect bounds_in_pixel_;
+#endif
+ float device_scale_factor_;
+};
+
+} // namespace gfx
+
+#endif // UI_GFX_DISPLAY_H_