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

Unified Diff: ui/display/display.h

Issue 1965073002: Rename gfx::Display to display::Display (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/display/BUILD.gn ('k') | ui/display/display.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/display/display.h
diff --git a/ui/display/display.h b/ui/display/display.h
index 00c21bc5b5666bcb6b00e13e86dd508d4e247f53..72f8b8cb5a73dcf721bfe7fd0f6b37f47cf7d931 100644
--- a/ui/display/display.h
+++ b/ui/display/display.h
@@ -1,17 +1,169 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
+// 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_DISPLAY_DISPLAY_H_
#define UI_DISPLAY_DISPLAY_H_
-#include "ui/gfx/display.h"
+#include <stdint.h>
+
+#include "base/compiler_specific.h"
+#include "ui/display/display_export.h"
+#include "ui/gfx/geometry/rect.h"
namespace display {
-// TODO(oshima): move the gfx::Display to display::Display.
-using Display = gfx::Display;
+// This class typically, but does not always, correspond to a physical display
+// connected to the system. A fake Display may exist on a headless system, or a
+// Display may correspond to a remote, virtual display.
+//
+// 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 DISPLAY_EXPORT Display final {
+ public:
+ // Screen Rotation in clock-wise degrees.
+ // This enum corresponds to DisplayRotationDefaultProto::Rotation in
+ // chrome/browser/chromeos/policy/proto/chrome_device_policy.proto.
+ enum Rotation {
+ ROTATE_0 = 0,
+ ROTATE_90,
+ ROTATE_180,
+ ROTATE_270,
+ };
+
+ // The display rotation can have multiple causes for change. A user can set a
+ // preference. On devices with accelerometers, they can change the rotation.
+ // RotationSource allows for the tracking of a Rotation per source of the
+ // change. ROTATION_SOURCE_ACTIVE is the current rotation of the display.
+ // Rotation changes not due to an accelerometer, nor the user, are to use this
+ // source directly. ROTATION_SOURCE_UNKNOWN is when no rotation source has
+ // been provided.
+ enum RotationSource {
+ ROTATION_SOURCE_ACCELEROMETER = 0,
+ ROTATION_SOURCE_ACTIVE,
+ ROTATION_SOURCE_USER,
+ ROTATION_SOURCE_UNKNOWN,
+ };
+
+ // Touch support for the display.
+ enum TouchSupport {
+ TOUCH_SUPPORT_UNKNOWN,
+ TOUCH_SUPPORT_AVAILABLE,
+ TOUCH_SUPPORT_UNAVAILABLE,
+ };
+
+ enum : int64_t { kInvalidDisplayID = -1 };
+
+ // Creates a display with kInvalidDisplayID as default.
+ Display();
+ explicit Display(int64_t id);
+ Display(int64_t id, const gfx::Rect& bounds);
+ Display(const Display& other);
+ ~Display();
+
+ // Returns the forced device scale factor, which is given by
+ // "--force-device-scale-factor".
+ static float GetForcedDeviceScaleFactor();
+
+ // Indicates if a device scale factor is being explicitly enforced from the
+ // command line via "--force-device-scale-factor".
+ static bool HasForceDeviceScaleFactor();
+
+ // Resets the caches used to determine if a device scale factor is being
+ // forced from the command line via "--force-device-scale-factor", and thus
+ // ensures that the command line is reevaluated.
+ static void ResetForceDeviceScaleFactorForTesting();
+
+ // Sets/Gets unique identifier associated with the display.
+ // -1 means invalid display and it doesn't not exit.
+ int64_t id() const { return id_; }
+ void set_id(int64_t id) { id_ = id; }
+
+ // Gets/Sets the display's bounds in display::Screen's coordinates.
+ const gfx::Rect& bounds() const { return bounds_; }
+ void set_bounds(const gfx::Rect& bounds) { bounds_ = bounds; }
+
+ // Gets/Sets the display's work area in display::Screen's coordinates.
+ const gfx::Rect& work_area() const { return work_area_; }
+ void set_work_area(const gfx::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; }
+
+ Rotation rotation() const { return rotation_; }
+ void set_rotation(Rotation rotation) { rotation_ = rotation; }
+ int RotationAsDegree() const;
+ void SetRotationAsDegree(int rotation);
+
+ TouchSupport touch_support() const { return touch_support_; }
+ void set_touch_support(TouchSupport support) { touch_support_ = support; }
+
+ // Utility functions that just return the size of display and
+ // work area.
+ const gfx::Size& size() const { return bounds_.size(); }
+ const gfx::Size& work_area_size() const { return work_area_.size(); }
+
+ // Returns the work area insets.
+ gfx::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;
+
+ // Returns a string representation of the display;
+ std::string ToString() const;
+
+ // True if the display contains valid display id.
+ bool is_valid() const { return id_ != kInvalidDisplayID; }
+
+ // True if the display corresponds to internal panel.
+ bool IsInternal() const;
+
+ // Gets/Sets an id of display corresponding to internal panel.
+ static int64_t InternalDisplayId();
+ static void SetInternalDisplayId(int64_t internal_display_id);
+
+ // Test if the |id| is for the internal display if any.
+ static bool IsInternalDisplayId(int64_t id);
+
+ // True if there is an internal display.
+ static bool HasInternalDisplay();
+
+ // Maximum cursor size in native pixels.
+ const gfx::Size& maximum_cursor_size() const { return maximum_cursor_size_; }
+ void set_maximum_cursor_size(const gfx::Size& size) {
+ maximum_cursor_size_ = size;
+ }
+
+ private:
+ int64_t id_;
+ gfx::Rect bounds_;
+ gfx::Rect work_area_;
+ float device_scale_factor_;
+ Rotation rotation_;
+ TouchSupport touch_support_;
+ gfx::Size maximum_cursor_size_;
+};
-} // display
+} // namespace display
#endif // UI_DISPLAY_DISPLAY_H_
« no previous file with comments | « ui/display/BUILD.gn ('k') | ui/display/display.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698