summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/layout/geometry/physical_offset.cc
blob: a151caea379bfad3bafaebe90bbce713df04422d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright 2016 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.

#include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"

#include "third_party/blink/renderer/core/layout/geometry/logical_offset.h"
#include "third_party/blink/renderer/core/layout/geometry/physical_size.h"
#include "third_party/blink/renderer/core/layout/geometry/writing_mode_converter.h"
#include "third_party/blink/renderer/platform/geometry/layout_point.h"
#include "third_party/blink/renderer/platform/geometry/layout_size.h"
#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h"

namespace blink {

LogicalOffset PhysicalOffset::ConvertToLogical(
    WritingDirectionMode writing_direction,
    PhysicalSize outer_size,
    PhysicalSize inner_size) const {
  return WritingModeConverter(writing_direction, outer_size)
      .ToLogical(*this, inner_size);
}

LogicalOffset PhysicalOffset::ConvertToLogical(WritingMode writing_mode,
                                               TextDirection direction,
                                               PhysicalSize outer_size,
                                               PhysicalSize inner_size) const {
  return ConvertToLogical({writing_mode, direction}, outer_size, inner_size);
}

String PhysicalOffset::ToString() const {
  return String::Format("%s,%s", left.ToString().Ascii().c_str(),
                        top.ToString().Ascii().c_str());
}

std::ostream& operator<<(std::ostream& os, const PhysicalOffset& value) {
  return os << value.ToString();
}

}  // namespace blink