chromium/components/app_restore/window_info.cc

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "components/app_restore/window_info.h"

#include "base/strings/stringprintf.h"
#include "base/strings/utf_string_conversions.h"

namespace app_restore {

namespace {

std::string ToPrefixedString(std::optional<int32_t> val,
                             const std::string& prefix) {
  return prefix + base::StringPrintf(": %d \n", val.value_or(-1));
}

std::string ToPrefixedString(std::optional<gfx::Rect> val,
                             const std::string& prefix) {
  return prefix + ": " + val.value_or(gfx::Rect()).ToString() + " \n";
}

std::string ToPrefixedString(std::optional<chromeos::WindowStateType> val,
                             const std::string& prefix) {
  std::optional<int> new_val =
      val ? std::make_optional(static_cast<int32_t>(*val)) : std::nullopt;
  return ToPrefixedString(new_val, prefix);
}

std::string ToPrefixedString(std::optional<ui::WindowShowState> val,
                             const std::string& prefix) {
  std::optional<int> new_val =
      val ? std::make_optional(static_cast<int32_t>(*val)) : std::nullopt;
  return ToPrefixedString(new_val, prefix);
}

std::string ToPrefixedString(std::optional<std::u16string> val,
                             const std::string& prefix) {
  return prefix + ": " + base::UTF16ToASCII(val.value_or(u""));
}

std::string ToPrefixedString(base::Uuid val, const std::string& prefix) {
  return prefix + ": " + val.AsLowercaseString() + " \n";
}

}  // namespace

BrowserExtraInfo::BrowserExtraInfo() = default;

BrowserExtraInfo::BrowserExtraInfo(BrowserExtraInfo&& other) = default;

BrowserExtraInfo::BrowserExtraInfo(const BrowserExtraInfo&) = default;

BrowserExtraInfo& BrowserExtraInfo::operator=(BrowserExtraInfo&& other) =
    default;

BrowserExtraInfo& BrowserExtraInfo::operator=(const BrowserExtraInfo&) =
    default;

BrowserExtraInfo::~BrowserExtraInfo() = default;

bool BrowserExtraInfo::operator==(const BrowserExtraInfo& other) const =
    default;

WindowInfo::WindowInfo() = default;

WindowInfo::WindowInfo(WindowInfo&& other) = default;

WindowInfo::WindowInfo(const WindowInfo&) = default;

WindowInfo& WindowInfo::operator=(WindowInfo&& other) = default;

WindowInfo& WindowInfo::operator=(const WindowInfo&) = default;

WindowInfo::~WindowInfo() = default;

bool WindowInfo::operator==(const WindowInfo& other) const = default;

std::string WindowInfo::ToString() const {
  return ToPrefixedString(activation_index, "Activation index") +
         ToPrefixedString(desk_id, "Desk") +
         ToPrefixedString(desk_guid, "Desk guid") +
         ToPrefixedString(current_bounds, "Current bounds") +
         ToPrefixedString(window_state_type, "Window state") +
         ToPrefixedString(pre_minimized_show_state_type,
                          "Pre minimized show state") +
         ToPrefixedString(snap_percentage, "Snap percentage") +
         ToPrefixedString(display_id, "Display id") +
         ToPrefixedString(app_title, "App Title");
}

}  // namespace app_restore