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

Unified Diff: ash/display/display_change_observer_chromeos.cc

Issue 187073002: Refactoring display configuration state to allow generic state objects (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
Index: ash/display/display_change_observer_chromeos.cc
diff --git a/ash/display/display_change_observer_chromeos.cc b/ash/display/display_change_observer_chromeos.cc
index d201c9647bb35164bc9554d20af7d2a374194050..30afc5e922fa12153ff238e1e9a487a952a3cc3e 100644
--- a/ash/display/display_change_observer_chromeos.cc
+++ b/ash/display/display_change_observer_chromeos.cc
@@ -16,11 +16,12 @@
#include "ash/shell.h"
#include "base/command_line.h"
#include "base/logging.h"
-#include "chromeos/display/output_util.h"
#include "grit/ash_strings.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/x/x11_util.h"
#include "ui/compositor/dip_util.h"
+#include "ui/display/chromeos/display_mode.h"
+#include "ui/display/chromeos/display_snapshot.h"
#include "ui/gfx/display.h"
namespace ash {
@@ -52,18 +53,21 @@ struct DisplayModeSorter {
// static
std::vector<DisplayMode> DisplayChangeObserver::GetDisplayModeList(
- const OutputConfigurator::OutputSnapshot& output) {
+ const OutputConfigurator::InternalDisplayState& output) {
typedef std::map<std::pair<int, int>, DisplayMode> DisplayModeMap;
DisplayModeMap display_mode_map;
- for (std::map<RRMode, OutputConfigurator::ModeInfo>::const_iterator it =
- output.mode_infos.begin(); it != output.mode_infos.end(); ++it) {
- const OutputConfigurator::ModeInfo& mode_info = it->second;
- const std::pair<int, int> size(mode_info.width, mode_info.height);
- const DisplayMode display_mode(gfx::Size(mode_info.width, mode_info.height),
- mode_info.refresh_rate,
- mode_info.interlaced,
- output.native_mode == it->first);
+ for (OutputConfigurator::DisplayModeList::const_iterator it =
+ output.display->modes().begin();
+ it != output.display->modes().end();
+ ++it) {
+ const ui::DisplayMode& mode_info = **it;
+ const std::pair<int, int> size(mode_info.size().width(),
+ mode_info.size().height());
+ const DisplayMode display_mode(mode_info.size(),
+ mode_info.refresh_rate(),
+ mode_info.is_interlaced(),
+ output.display->native_mode() == *it);
// Add the display mode if it isn't already present and override interlaced
// display modes with non-interlaced ones.
@@ -104,62 +108,53 @@ ui::OutputState DisplayChangeObserver::GetStateForDisplayIds(
}
bool DisplayChangeObserver::GetResolutionForDisplayId(int64 display_id,
- int* width,
- int* height) const {
+ gfx::Size* size) const {
DisplayMode mode;
if (!Shell::GetInstance()->display_manager()->GetSelectedModeForDisplayId(
display_id, &mode))
return false;
- *width = mode.size.width();
- *height = mode.size.height();
+ *size = mode.size;
return true;
}
void DisplayChangeObserver::OnDisplayModeChanged(
- const std::vector<OutputConfigurator::OutputSnapshot>& outputs) {
+ const std::vector<OutputConfigurator::InternalDisplayState>& outputs) {
std::vector<DisplayInfo> displays;
std::set<int64> ids;
for (size_t i = 0; i < outputs.size(); ++i) {
- const OutputConfigurator::OutputSnapshot& output = outputs[i];
+ const OutputConfigurator::InternalDisplayState& output = outputs[i];
- if (output.type == ui::OUTPUT_TYPE_INTERNAL &&
+ if (output.display->type() == ui::OUTPUT_TYPE_INTERNAL &&
gfx::Display::InternalDisplayId() == gfx::Display::kInvalidDisplayID) {
- // Fall back to output index. crbug.com/180100
- gfx::Display::SetInternalDisplayId(
- output.display_id == gfx::Display::kInvalidDisplayID ? output.index :
- output.display_id);
+ gfx::Display::SetInternalDisplayId(output.display->display_id());
dnicoara 2014/03/05 00:06:34 Rather than have this here, I assign the display_i
}
- const OutputConfigurator::ModeInfo* mode_info =
- OutputConfigurator::GetModeInfo(output, output.current_mode);
+ const ui::DisplayMode* mode_info = output.display->current_mode();
if (!mode_info)
continue;
float device_scale_factor = 1.0f;
- if (!ui::IsXDisplaySizeBlackListed(output.width_mm, output.height_mm) &&
- (kInchInMm * mode_info->width / output.width_mm) >
- kHighDensityDPIThreshold) {
+ if (!ui::IsXDisplaySizeBlackListed(
+ output.display->physical_size().width(),
+ output.display->physical_size().height()) &&
+ (kInchInMm * mode_info->size().width() /
+ output.display->physical_size().width()) > kHighDensityDPIThreshold) {
device_scale_factor = 2.0f;
}
- gfx::Rect display_bounds(
- output.x, output.y, mode_info->width, mode_info->height);
+ gfx::Rect display_bounds(output.display->origin(), mode_info->size());
std::vector<DisplayMode> display_modes = GetDisplayModeList(output);
std::string name =
- output.type == ui::OUTPUT_TYPE_INTERNAL
+ output.display->type() == ui::OUTPUT_TYPE_INTERNAL
? l10n_util::GetStringUTF8(IDS_ASH_INTERNAL_DISPLAY_NAME)
- : chromeos::GetDisplayName(output.output);
+ : output.display->GetDisplayName();
if (name.empty())
name = l10n_util::GetStringUTF8(IDS_ASH_STATUS_TRAY_UNKNOWN_DISPLAY_NAME);
- bool has_overscan = false;
- chromeos::GetOutputOverscanFlag(output.output, &has_overscan);
-
- int64 id = output.display_id;
- if (id == gfx::Display::kInvalidDisplayID || ids.find(id) != ids.end())
- id = output.index;
+ bool has_overscan = output.display->GetOverscanFlag();
+ int64 id = output.display->display_id();
dnicoara 2014/03/05 00:06:34 Same as above.
ids.insert(id);
displays.push_back(DisplayInfo(id, name, has_overscan));

Powered by Google App Engine
This is Rietveld 408576698