File: web_theme_engine_conversions.cc

package info (click to toggle)
chromium 142.0.7444.134-1~deb13u1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,295,436 kB
  • sloc: cpp: 35,487,404; ansic: 7,479,680; javascript: 4,259,373; python: 1,466,839; xml: 757,424; asm: 710,716; pascal: 187,980; sh: 89,247; perl: 88,690; objc: 79,984; sql: 56,984; cs: 42,192; fortran: 24,137; makefile: 22,913; tcl: 15,277; php: 14,018; yacc: 9,005; ruby: 7,553; awk: 3,720; lisp: 3,096; lex: 1,330; ada: 727; jsp: 228; sed: 36
file content (70 lines) | stat: -rw-r--r-- 2,916 bytes parent folder | download | duplicates (5)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Copyright 2019 The Chromium Authors
// 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/platform/theme/web_theme_engine_conversions.h"

#include "base/containers/fixed_flat_map.h"
#include "third_party/blink/public/mojom/css/preferred_contrast.mojom-shared.h"
#include "third_party/blink/public/mojom/frame/color_scheme.mojom-shared.h"
#include "ui/native_theme/native_theme.h"

namespace blink {

using WTE = WebThemeEngine;
using NT = ui::NativeTheme;

NT::Part NativeThemePart(WTE::Part part) {
  static constexpr auto kPartMap = base::MakeFixedFlatMap<WTE::Part, NT::Part>(
      {{WTE::kPartScrollbarDownArrow, NT::kScrollbarDownArrow},
       {WTE::kPartScrollbarLeftArrow, NT::kScrollbarLeftArrow},
       {WTE::kPartScrollbarRightArrow, NT::kScrollbarRightArrow},
       {WTE::kPartScrollbarUpArrow, NT::kScrollbarUpArrow},
       {WTE::kPartScrollbarHorizontalThumb, NT::kScrollbarHorizontalThumb},
       {WTE::kPartScrollbarVerticalThumb, NT::kScrollbarVerticalThumb},
       {WTE::kPartScrollbarHorizontalTrack, NT::kScrollbarHorizontalTrack},
       {WTE::kPartScrollbarVerticalTrack, NT::kScrollbarVerticalTrack},
       {WTE::kPartScrollbarCorner, NT::kScrollbarCorner},
       {WTE::kPartCheckbox, NT::kCheckbox},
       {WTE::kPartRadio, NT::kRadio},
       {WTE::kPartButton, NT::kPushButton},
       {WTE::kPartTextField, NT::kTextField},
       {WTE::kPartMenuList, NT::kMenuList},
       {WTE::kPartSliderTrack, NT::kSliderTrack},
       {WTE::kPartSliderThumb, NT::kSliderThumb},
       {WTE::kPartInnerSpinButton, NT::kInnerSpinButton},
       {WTE::kPartProgressBar, NT::kProgressBar}});
  return kPartMap.at(part);
}

NT::State NativeThemeState(WTE::State state) {
  static constexpr auto kStateMap =
      base::MakeFixedFlatMap<WTE::State, NT::State>(
          {{WTE::kStateDisabled, NT::kDisabled},
           {WTE::kStateHover, NT::kHovered},
           {WTE::kStateNormal, NT::kNormal},
           {WTE::kStatePressed, NT::kPressed}});
  return kStateMap.at(state);
}

NT::PreferredColorScheme NativeColorScheme(
    mojom::blink::ColorScheme color_scheme) {
  using MCS = mojom::blink::ColorScheme;
  using NTPCS = NT::PreferredColorScheme;
  static constexpr auto kColorSchemeMap = base::MakeFixedFlatMap<MCS, NTPCS>(
      {{MCS::kLight, NTPCS::kLight}, {MCS::kDark, NTPCS::kDark}});
  return kColorSchemeMap.at(color_scheme);
}

NT::PreferredContrast NativeContrast(mojom::blink::PreferredContrast contrast) {
  using MPC = mojom::blink::PreferredContrast;
  using NTPC = NT::PreferredContrast;
  static constexpr auto kContrastMap = base::MakeFixedFlatMap<MPC, NTPC>(
      {{MPC::kMore, NTPC::kMore},
       {MPC::kLess, NTPC::kLess},
       {MPC::kNoPreference, NTPC::kNoPreference},
       {MPC::kCustom, NTPC::kCustom}});
  return kContrastMap.at(contrast);
}

}  // namespace blink